def _setup_channel(self): key = node.Network(name='N:ANT+', key=self.netkey) self.antnode.setNetworkKey(0, key) self.channel = self.antnode.getFreeChannel() self.channel.name = 'C:PowerMeter' self.channel.assign(key, CHANNEL_TYPE_TWOWAY_RECEIVE) self.channel.setID(11, 0, 0) self.channel.searchTimeout = TIMEOUT_NEVER self.channel.period = 8182 # might be 4091 or 8182 self.channel.frequency = 57 self.channel.open()
def __init__(self, antnode, sensor_id): self.antnode = antnode # Get the channel self.channel = antnode.getFreeChannel() try: self.channel.name = 'C:POWER' network = node.Network(NETKEY, 'N:ANT+') self.channel.assign(network, CHANNEL_TYPE_TWOWAY_TRANSMIT) self.channel.setID(POWER_DEVICE_TYPE, sensor_id, 0) self.channel.period = CHANNEL_PERIOD self.channel.frequency = 57 except ChannelError as e: print("Channel config error: " + repr(e)) self.powerData = PowerMeterTx.PowerData()
def __init__(self, antnode, sensor_id): self.antnode = antnode # Get the channel self.channel = antnode.getFreeChannel() try: self.channel.name = 'C:SPEED' network = node.Network(NETKEY, 'N:ANT+') self.channel.assign(network, CHANNEL_TYPE_TWOWAY_TRANSMIT) self.channel.setID(SPEED_DEVICE_TYPE, sensor_id, 0) self.channel.period = CHANNEL_PERIOD self.channel.frequency = 57 except ChannelError as e: print ("Channel config error: "+e.message) self.speedData = SpeedTx.SpeedData()
def __init__(self, antnode, sensor_type, sensor_id): self.sensor_type = sensor_type self.sensor_id = sensor_id self.currentData = None self.previousData = None self.revsPerSec = 0.0 self.observer = None # Get the channel self.channel = antnode.getFreeChannel() self.channel.name = 'C:SPEED' network = node.Network(NETKEY, 'N:ANT+') self.channel.assign(network, CHANNEL_TYPE_TWOWAY_RECEIVE) self.channel.setID(sensor_type, sensor_id, 0) self.channel.searchTimeout = TIMEOUT_NEVER if sensor_type == SPEED_DEVICE_TYPE: period = 8118 elif sensor_type == CADENCE_DEVICE_TYPE: period = 8102 elif sensor_type == SPEED_CADENCE_DEVICE_TYPE: period = 8086 self.channel.period = period self.channel.frequency = 57
NETKEY = '\xB9\xA5\x21\xFB\xBD\x72\xC3\x45' # A run-the-mill event listener class HRMListener(event.EventCallback): def process(self, msg, _channel): if isinstance(msg, message.ChannelBroadcastDataMessage): print 'Heart Rate:', ord(msg.payload[-1]) # Initialize stick = driver.USB1Driver(SERIAL, log=LOG, debug=DEBUG) antnode = node.Node(stick) antnode.start() # Setup channel net = node.Network(name='N:ANT+', key=NETKEY) antnode.setNetworkKey(0, net) channel = antnode.getFreeChannel() channel.name = 'C:HRM' channel.assign(net, CHANNEL_TYPE_TWOWAY_RECEIVE) channel.setID(120, 0, 0) channel.searchTimeout = TIMEOUT_NEVER channel.period = 8070 channel.frequency = 57 channel.open() # Setup callback # Note: We could also register an event listener for non-channel events by # calling registerEventListener() on antnode rather than channel. channel.registerCallback(HRMListener())
try: stick.open() except: continue stick.close() break else: print("No ANT devices available") if getattr(sys, 'frozen', False): input() sys.exit() antnode = node.Node(stick) print("Starting ANT node") antnode.start() network = node.Network(NETKEY, 'N:ANT+') antnode.setNetworkKey(0, network) print("Starting cadence sensor") try: cadence_sensor = antnode.getFreeChannel() cadence_sensor.assign(network, CHANNEL_TYPE_TWOWAY_RECEIVE) cadence_sensor.setID(122, 0, 0) cadence_sensor.searchTimeout = TIMEOUT_NEVER cadence_sensor.period = 8102 cadence_sensor.frequency = 57 cadence_sensor.open() except Exception as e: print("cadence_sensor error: " + repr(e)) cadence_sensor = None