def main(): snd1 = SoundSensor() snd2 = SoundSensor() temp = VoltageRatioInput() hum = VoltageRatioInput() light = VoltageInput() openChannels(snd1, snd2, temp, hum, light) for i in range(10): print(getJSONSensorValues(snd1, snd2, temp, hum, light)) print('') time.sleep(1) snd1.close() snd2.close() temp.close() hum.close() light.close()
class PowerSource(): def __init__(self, channel): self.volts = None self.device = VoltageInput() self.channel = channel this = self def start(self): """ * Add event handlers before calling open so that no events are missed. """ self.device.setOnAttachHandler(onAttachHandler) self.device.setOnDetachHandler(onDetachHandler) self.device.setOnErrorHandler(onErrorHandler) self.device.setOnVoltageChangeHandler(onVoltageChangeHandler) self.device.setOnSensorChangeHandler(onSensorChangeHandler) try: self.device.setDeviceSerialNumber(271638) self.device.setChannel(self.channel) self.device.openWaitForAttachment(5000) except PhidgetException as e: print("Program Terminated: Open PowerSource Failed") print(e) def getVolts(self): try: self.device.setDeviceSerialNumber(271638) self.device.setChannel(self.channel) self.device.openWaitForAttachment(5000) except PhidgetException as e: print("Program Terminated: Open PowerSource Failed") print(e) time.sleep(2) return self.device.getSensorValue() def closeDevice(self): self.device.close()
def _publish(self): """ * Allocate a new Phidget Channel object """ try: try: ch = VoltageInput() except PhidgetException as e: sys.stderr.write( "Runtime Error -> Creating VoltageInput: \n\t") DisplayError(e) raise except RuntimeError as e: sys.stderr.write( "Runtime Error -> Creating VoltageInput: \n\t" + e) raise def signal_handler(signal, frame): print("exiting...") raise EndProgramSignal("Program Terminated") signal.signal(signal.SIGINT, signal_handler) channelInfo = ChannelInfo() channelInfo.deviceSerialNumber = 539331 channelInfo.hubPort = 0 channelInfo.isHubPortDevice = 1 channelInfo.channel = 0 ch.setDeviceSerialNumber(channelInfo.deviceSerialNumber) ch.setHubPort(channelInfo.hubPort) ch.setIsHubPortDevice(channelInfo.isHubPortDevice) ch.setChannel(channelInfo.channel) """ * Add event handlers before calling open so that no events are missed. """ print(channelInfo.deviceSerialNumber) print(channelInfo.hubPort) ch.setOnAttachHandler(onAttachHandler) ch.setOnDetachHandler(onDetachHandler) ch.setOnErrorHandler(onErrorHandler) ch.setOnVoltageChangeHandler(onVoltageChangeHandler) ch.setOnSensorChangeHandler(onSensorChangeHandler) print("\nOpening and Waiting for Attachment...") try: ch.openWaitForAttachment(5000) except PhidgetException as e: PrintOpenErrorMessage(e, ch) raise EndProgramSign00al("Program Terminated: Open Failed") print("running...") rate = rospy.Rate(self._hz) while True: self.current_publisher.publish(str(current[0])) if current[0] > 14: playsound('/home/mars/Downloads/torture.wav') rate.sleep() except PhidgetException as e: sys.stderr.write("\nExiting with error(s)...") DisplayError(e) traceback.print_exc() print("Cleaning up...") ch.setOnVoltageChangeHandler(None) ch.setOnSensorChangeHandler(None) ch.close() return 1 except EndProgramSignal as e: print(e) print("Cleaning up...") ch.setOnVoltageChangeHandler(None) ch.setOnSensorChangeHandler(None) ch.close() return 1 except KeyboardInterrupt: ch.setOnVoltageChangeHandler(None) ch.setOnSensorChangeHandler(None) ch.close() return 1
print("Waiting for the Phidget VoltageInput Object to be attached...") ch1.openWaitForAttachment(5000) except PhidgetException as e: print("Phidget Exception %i: %s" % (e.code, e.details)) print("Press Enter to Exit...\n") readin = sys.stdin.read(1) exit(1) print("Gathering data for 100 seconds...") #time.sleep(100) while True: pass try: ch1.close() except PhidgetException as e: print("Phidget Exception %i: %s" % (e.code, e.details)) print("Press Enter to Exit...\n") readin = sys.stdin.read(1) exit(1) print("Closed VoltageInput device") exit(0)
def main(): global current, voltage, app, serverUpdateThread, hadPhidgetException, sessionFile hadPhidgetException = False voltage_sensor = None current_sensor = None serverUpdateThread = StoppableThread() sessionNum = 0 with open("numSessions.txt", "r+") as numSessionsFile: sessionNum = int(numSessionsFile.read()) + 1 print(sessionNum) numSessionsFile.seek(0) numSessionsFile.write(str(sessionNum)) numSessionsFile.truncate() numSessionsFile.close() timestamp = datetime.now() sessionFile = open( "Sessions/session" + str(sessionNum) + "_" + str(timestamp.month) + "-" + str(timestamp.day) + "_" + str(timestamp.hour) + "-" + str(timestamp.minute) + "-" + str(timestamp.second) + ".txt", "w+") print("Session File created") try: voltage_sensor = VoltageInput() current_sensor = VoltageRatioInput() voltage_sensor.setHubPort(0) voltage_sensor.setIsHubPortDevice(False) voltage_sensor.setOnVoltageChangeHandler(on_new_voltage_reading) current_sensor.setHubPort(1) current_sensor.setIsHubPortDevice(True) current_sensor.setOnVoltageRatioChangeHandler(on_new_current_reading) voltage_sensor.openWaitForAttachment(1000) current_sensor.openWaitForAttachment(1000) serverUpdateThread.start() atexit.register(exit_handler) app.run(host='0.0.0.0') voltage_sensor.close() current_sensor.close() except PhidgetException as e: print(e) hadPhidgetException = True exit_handler(voltage_sensor, current_sensor) except KeyboardInterrupt as key: print(key) exit_handler(voltage_sensor, current_sensor) except IOError as e: print(e) exit_handler(voltage_sensor, current_sensor)
def main(): try: """ * Allocate a new Phidget Channel object """ try: ch = VoltageInput() except PhidgetException as e: sys.stderr.write("Runtime Error -> Creating VoltageInput: \n\t") DisplayError(e) raise except RuntimeError as e: sys.stderr.write("Runtime Error -> Creating VoltageInput: \n\t" + e) raise """ * Set matching parameters to specify which channel to open """ #You may remove this line and hard-code the addressing parameters to fit your application channelInfo = AskForDeviceParameters(ch) ch.setDeviceSerialNumber(channelInfo.deviceSerialNumber) ch.setHubPort(channelInfo.hubPort) ch.setIsHubPortDevice(channelInfo.isHubPortDevice) ch.setChannel(channelInfo.channel) if(channelInfo.netInfo.isRemote): ch.setIsRemote(channelInfo.netInfo.isRemote) if(channelInfo.netInfo.serverDiscovery): try: Net.enableServerDiscovery(PhidgetServerType.PHIDGETSERVER_DEVICEREMOTE) except PhidgetException as e: PrintEnableServerDiscoveryErrorMessage(e) raise EndProgramSignal("Program Terminated: EnableServerDiscovery Failed") else: Net.addServer("Server", channelInfo.netInfo.hostname, channelInfo.netInfo.port, channelInfo.netInfo.password, 0) """ * Add event handlers before calling open so that no events are missed. """ print("\n--------------------------------------") print("\nSetting OnAttachHandler...") ch.setOnAttachHandler(onAttachHandler) print("Setting OnDetachHandler...") ch.setOnDetachHandler(onDetachHandler) print("Setting OnErrorHandler...") ch.setOnErrorHandler(onErrorHandler) #This call may be harmlessly removed PrintEventDescriptions() print("\nSetting OnVoltageChangeHandler...") ch.setOnVoltageChangeHandler(onVoltageChangeHandler) print("\nSetting OnSensorChangeHandler...") ch.setOnSensorChangeHandler(onSensorChangeHandler) """ * Open the channel with a timeout """ print("\nOpening and Waiting for Attachment...") try: ch.openWaitForAttachment(5000) except PhidgetException as e: PrintOpenErrorMessage(e, ch) raise EndProgramSignal("Program Terminated: Open Failed") print("Sampling data for 10 seconds...") print("You can do stuff with your Phidgets here and/or in the event handlers.") time.sleep(10) """ * Perform clean up and exit """ #clear the VoltageChange event handler ch.setOnVoltageChangeHandler(None) #clear the SensorChange event handler ch.setOnSensorChangeHandler(None) print("\nDone Sampling...") print("Cleaning up...") ch.close() print("\nExiting...") return 0 except PhidgetException as e: sys.stderr.write("\nExiting with error(s)...") DisplayError(e) traceback.print_exc() print("Cleaning up...") ch.setOnVoltageChangeHandler(None) ch.setOnSensorChangeHandler(None) ch.close() return 1 except EndProgramSignal as e: print(e) print("Cleaning up...") ch.setOnVoltageChangeHandler(None) ch.setOnSensorChangeHandler(None) ch.close() return 1 finally: print("Press ENTER to end program.") readin = sys.stdin.readline()
def _publish(self): """ * Allocate a new Phidget Channel object """ try: try: ch = VoltageInput() except PhidgetException as e: sys.stderr.write("Runtime Error -> Creating VoltageInput: \n\t") DisplayError(e) raise except RuntimeError as e: sys.stderr.write("Runtime Error -> Creating VoltageInput: \n\t" + e) raise def signal_handler(signal, frame): print("exiting...") raise EndProgramSignal("Program Terminated") signal.signal(signal.SIGINT, signal_handler) channelInfo = ChannelInfo() channelInfo.deviceSerialNumber = 539331 channelInfo.hubPort = 0 channelInfo.isHubPortDevice = 1 channelInfo.channel = 0 ch.setDeviceSerialNumber(channelInfo.deviceSerialNumber) ch.setHubPort(channelInfo.hubPort) ch.setIsHubPortDevice(channelInfo.isHubPortDevice) ch.setChannel(channelInfo.channel) """ * Add event handlers before calling open so that no events are missed. """ print(channelInfo.deviceSerialNumber) print(channelInfo.hubPort) ch.setOnAttachHandler(onAttachHandler) ch.setOnDetachHandler(onDetachHandler) ch.setOnErrorHandler(onErrorHandler) ch.setOnVoltageChangeHandler(onVoltageChangeHandler) ch.setOnSensorChangeHandler(onSensorChangeHandler) print("\nOpening and Waiting for Attachment...") try: ch.openWaitForAttachment(5000) except PhidgetException as e: PrintOpenErrorMessage(e, ch) raise EndProgramSign00al("Program Terminated: Open Failed") print("running...") rate = rospy.Rate(self._hz) while True: self.current_publisher.publish(str(current[0])) if current[0] > 14 : playsound('/home/mars/Downloads/torture.wav') rate.sleep() except PhidgetException as e: sys.stderr.write("\nExiting with error(s)...") DisplayError(e) traceback.print_exc() print("Cleaning up...") ch.setOnVoltageChangeHandler(None) ch.setOnSensorChangeHandler(None) ch.close() return 1 except EndProgramSignal as e: print(e) print("Cleaning up...") ch.setOnVoltageChangeHandler(None) ch.setOnSensorChangeHandler(None) ch.close() return 1 except KeyboardInterrupt: ch.setOnVoltageChangeHandler(None) ch.setOnSensorChangeHandler(None) ch.close() return 1