def start(): global antnode global speed_sensor global power_meter from vpower.config import DEBUG, LOG, NETKEY, POWER_CALCULATOR, POWER_SENSOR_ID, SENSOR_TYPE, SPEED_SENSOR_ID xbmc.log("Using " + POWER_CALCULATOR.__class__.__name__, level=xbmc.LOGDEBUG) stick = driver.USB2Driver(None, log=LOG, debug=DEBUG) antnode = node.Node(stick) xbmc.log("Starting ANT node", level=xbmc.LOGDEBUG) antnode.start() key = node.NetworkKey('N:ANT+', NETKEY) antnode.setNetworkKey(0, key) xbmc.log("Starting speed sensor", level=xbmc.LOGDEBUG) # Create the speed sensor object and open it speed_sensor = SpeedCadenceSensorRx( antnode, SENSOR_TYPE, SPEED_SENSOR_ID) speed_sensor.open() # Notify the power calculator every time we get a speed event speed_sensor.notify_change(POWER_CALCULATOR) xbmc.log("Starting power meter with ANT+ ID " + repr(POWER_SENSOR_ID), level=xbmc.LOGDEBUG) # Create the power meter object and open it power_meter = PowerMeterTx(antnode, POWER_SENSOR_ID) power_meter.open() # Notify the power meter every time we get a calculated power value POWER_CALCULATOR.notify_change(power_meter)
def _initialize(self): if self.driver is None: # actually doesn't matter what parameter we put since USB2 # doesn't use /dev self.driver = driver.USB2Driver(DEFAULT_ADDR) if self.node is None: self.node = node.Node(self.driver) self.node.start() self.key = node.NetworkKey(self.DEFAULT_NET_NAME, self.netkey) self.node.setNetworkKey(0, self.key)
def _setup_channel(self): key = node.NetworkKey('N:ANT+', self.netkey) self.antnode.setNetworkKey(0, key) self.channel = self.antnode.getFreeChannel() self.channel.name = 'C:HRM' self.channel.assign('N:ANT+', CHANNEL_TYPE_TWOWAY_RECEIVE) self.channel.setID(120, 0, 0) self.channel.setSearchTimeout(TIMEOUT_NEVER) self.channel.setPeriod(8070) self.channel.setFrequency(57) self.channel.open()
def _setup_channel(self, network_key_type): key = node.NetworkKey(network_key_type, self._network_key(network_key_type)) self.node.setNetworkKey(0, key) self.channel = self.node.getFreeChannel() self.channel.name = "HRM" self.channel.assign(network_key_type, CHANNEL_TYPE_TWOWAY_RECEIVE) self.channel.setID(120, 0, 0) self.channel.setSearchTimeout(TIMEOUT_NEVER) self.channel.setPeriod(8192) self.channel.setFrequency(57) self.channel.open() self.channel.registerCallback(self)
def launchHRMChannel(self): print 'Setting up the channel' # Setup channel key = node.NetworkKey('N:ANT+', NETKEY) self.antnode.setNetworkKey(0, key) self.channel = self.antnode.getFreeChannel() self.channel.name = 'C:HRM' self.channel.assign('N:ANT+', CHANNEL_TYPE_TWOWAY_RECEIVE) self.channel.setID(120, 0, 0) self.channel.setSearchTimeout(TIMEOUT_NEVER) self.channel.setPeriod(8070) self.channel.setFrequency(57) self.channel.open() # Setup callback # Note: We could also register an event listener for non-channel events by # calling registerEventListener() on antnode rather than channel. self.channel.registerCallback(HRMListener(self.client))
def _setup_channel(self): key = node.NetworkKey('N:ANT+', self.netkey) self.antnode.setNetworkKey(0, key) #Cadence channel self.channel = self.antnode.getFreeChannel() self.channel.name = 'C:CAD' self.channel.assign('N:ANT+', CHANNEL_TYPE_TWOWAY_RECEIVE) self.channel.setID(122, 0, 0) self.channel.setSearchTimeout(TIMEOUT_NEVER) self.channel.setPeriod(8102) self.channel.setFrequency(57) self.channel.open() #Channel 2 - Speed self.channel2 = self.antnode.getFreeChannel() self.channel2.name = 'C:SPD' self.channel2.assign('N:ANT+', CHANNEL_TYPE_TWOWAY_RECEIVE) self.channel2.setID(123, 0, 0) self.channel2.setSearchTimeout(TIMEOUT_NEVER) self.channel2.setPeriod(8118) self.channel2.setFrequency(57) self.channel2.open() #Channel 3 - Heartrate self.channel3 = self.antnode.getFreeChannel() self.channel3.name = 'C:HR' self.channel3.assign('N:ANT+', CHANNEL_TYPE_TWOWAY_RECEIVE) self.channel3.setID(120, 0, 0) self.channel3.setSearchTimeout(TIMEOUT_NEVER) self.channel3.setPeriod(8070) self.channel3.setFrequency(57) self.channel3.open() #Channel 4 - Temperature self.channel4 = self.antnode.getFreeChannel() self.channel4.name = 'C:TMP' self.channel4.assign('N:ANT+', CHANNEL_TYPE_TWOWAY_RECEIVE) self.channel4.setID(25, 0, 0) self.channel4.setSearchTimeout(TIMEOUT_NEVER) self.channel4.setPeriod(8192) self.channel4.setFrequency(57) self.channel4.open()
''' root.after(1000, myMainLoop) except (KeyboardInterrupt, SystemExit): exit() try: # print "Using " + POWER_CALCULATOR.__class__.__name__ stick = driver.USB2Driver(None, log=LOG, debug=DEBUG) antnode = node.Node(stick) print "Starting ANT node" antnode.start() key = node.NetworkKey('N:ANT+', NETKEY) antnode.setNetworkKey(0, key) print "Starting speed sensor" try: # Create the speed sensor object and open it speed_sensor = SpeedSensorRx(antnode, SPEED_SENSOR_TYPE) speed_sensor.start() # Notify the power calculator every time we get a speed event # speed_sensor.notify_change(POWER_CALCULATOR) except Exception as e: print "speed_sensor error: " + e.message speed_sensor = None print "Starting cadence sensor" try:
logger.error("Error response: {:02X}".format(msg_code)) # stick = driver.USB2Driver(SERIAL, log=LOG, debug=DEBUG) stick = CannedDriver(SERIAL, log=LOG, debug=DEBUG) antnode = node.Node(stick) antnode.registerEventListener(Listener()) serial_response = CapabilitiesMessage(max_channels=0x05, max_nets=0x01) antnode.respond_with(serial_response) antnode.start() # # Set network key key = node.NetworkKey('N:ANT+', NETWORK_KEY) antnode.respond_with(ChannelEventMessage(message_id=MESSAGE_NETWORK_KEY)) antnode.setNetworkKey(0, key) # # # Get the first unused channel. Returns an instance of the node.Channel class. channel = antnode.getFreeChannel() # # # Let's give our channel a nickname # channel.name = 'C:HRM' # # # Initialize it as a receiving channel using our network key # channel.assign('N:ANT+', CHANNEL_TYPE_TWOWAY_RECEIVE) # # # Now set the channel id for pairing with an ANT+ HR monitor # channel.setID(120, 0, 0)
from PowerMeterTx import PowerMeterTx from SpeedCadenceSensorRx import SpeedCadenceSensorRx from config import DEBUG, LOG, NETKEY, POWER_CALCULATOR, POWER_SENSOR_ID, SENSOR_TYPE, SPEED_SENSOR_ID antnode = None speed_sensor = None power_meter = None try: print "Using " + POWER_CALCULATOR.__class__.__name__ stick = driver.USB2Driver(None) antnode = node.Node(stick) print "Starting ANT node" antnode.start() network = node.NetworkKey(name='N:ANT+', key=NETKEY) antnode.setNetworkKey(0, network) print "Starting speed sensor" try: # Create the speed sensor object and open it speed_sensor = SpeedCadenceSensorRx(antnode, SENSOR_TYPE, SPEED_SENSOR_ID) speed_sensor.open() # Notify the power calculator every time we get a speed event speed_sensor.notify_change(POWER_CALCULATOR) except Exception as e: print "speed_sensor error: " + e.message speed_sensor = None print "Starting power meter with ANT+ ID " + repr(POWER_SENSOR_ID)