2017-04-20 21:33:42 +02:00
|
|
|
import serial, struct, sys, hashlib, curses
|
|
|
|
from time import sleep
|
2017-04-21 16:12:57 +02:00
|
|
|
from binascii import hexlify,unhexlify
|
2017-04-20 21:33:42 +02:00
|
|
|
from ant.core import driver
|
|
|
|
from ant.core import node
|
|
|
|
from bluetooth import *
|
|
|
|
from SpeedTx import SpeedTx
|
2017-04-21 16:12:57 +02:00
|
|
|
from iConst import *
|
2017-04-20 21:33:42 +02:00
|
|
|
|
|
|
|
speed = None
|
2017-04-25 15:31:37 +02:00
|
|
|
SPEED_SENSOR_ID = int(int(hashlib.md5(getserial()).hexdigest(), 16) & 0xFFFFfffe) + 2
|
2017-04-20 21:33:42 +02:00
|
|
|
|
|
|
|
if __name__ =='__main__':
|
2017-04-21 16:12:57 +02:00
|
|
|
NETKEY = unhexlify(sys.argv[1])
|
2017-04-20 21:33:42 +02:00
|
|
|
stick = driver.USB1Driver(device="/dev/ttyANT", log=None, debug=True)
|
|
|
|
antnode = node.Node(stick)
|
2017-04-21 16:12:57 +02:00
|
|
|
print("Starting ANT node on network %s" % sys.argv[1])
|
2017-04-20 21:33:42 +02:00
|
|
|
antnode.start()
|
|
|
|
key = node.NetworkKey('N:ANT+', NETKEY)
|
|
|
|
antnode.setNetworkKey(0, key)
|
|
|
|
|
|
|
|
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)
|
|
|
|
speed.update(speed = 25)
|
|
|
|
#print("Speed: %s" % i)
|
|
|
|
i += 1
|
|
|
|
if (i > 200):
|
|
|
|
break
|
|
|
|
|
|
|
|
if speed:
|
|
|
|
print "Closing speed sensor"
|
|
|
|
speed.close()
|
|
|
|
speed.unassign()
|
|
|
|
if antnode:
|
|
|
|
print "Stopping ANT node"
|
|
|
|
antnode.stop()
|
|
|
|
|