Exemple #1
0
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)
Exemple #2
0
 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)
Exemple #3
0
 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()
Exemple #4
0
 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)
Exemple #5
0
    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))
Exemple #6
0
    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()
Exemple #7
0
               '''

        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:
Exemple #8
0
                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)
Exemple #9
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)