iconsole/testpowerspeed.py

62 lines
1.8 KiB
Python
Raw Permalink Normal View History

2017-04-25 15:31:37 +02:00
import serial, struct, sys, hashlib, curses
from time import sleep
from binascii import hexlify,unhexlify
from ant.core import driver
from ant.core import node
from PowerMeterTx import PowerMeterTx
from SpeedTx import SpeedTx
from iConst import *
power_meter = None
POWER_SENSOR_ID = int(int(hashlib.md5(getserial()).hexdigest(), 16) & 0xFFFFfffe) + 1
speed = None
SPEED_SENSOR_ID = int(int(hashlib.md5(getserial()).hexdigest(), 16) & 0xFFFFfffe) + 2
if __name__ =='__main__':
NETKEY = unhexlify(sys.argv[1])
stick = driver.USB1Driver(device="/dev/ttyANT", log=None, debug=True)
antnode = node.Node(stick)
print("Starting ANT node on network %s" % sys.argv[1])
antnode.start()
key = node.NetworkKey('N:ANT+', NETKEY)
antnode.setNetworkKey(0, key)
print("Starting power meter with ANT+ ID " + repr(POWER_SENSOR_ID))
try:
# Create the power meter object and open it
power_meter = PowerMeterTx(antnode, POWER_SENSOR_ID)
power_meter.open()
except Exception as e:
print("power_meter error: " + e.message)
power_meter = None
print("Starting speed sensor with ANT+ ID " + repr(SPEED_SENSOR_ID))
try:
speed = SpeedTx(antnode, SPEED_SENSOR_ID, wheel = 0.1)
speed.open()
except Exception as e:
print("speed error: " + e.message)
speed = None
i = 0
while True:
sleep(1)
power_meter.update(power = i, cadence = i)
speed.update(speed = 25)
i += 1
if (i > 200):
break
if power_meter:
print "Closing power meter"
power_meter.close()
power_meter.unassign()
if speed:
print "Closing speed sensor"
speed.close()
speed.unassign()
if antnode:
print "Stopping ANT node"
antnode.stop()