Python Fusion Board Querying timers


#1

Howdy guys I have a bit of an issue. I am able to query the Fusion/Reactor Board for the Minutes and Seconds of all 16 timers. However, the data is not returned in any given order that I can make sense of. It doesn’t match the order that base station receives it is nor documentation. Maybe I am doing something wrong? Any suggestion would be awesome!

import socket
import re


TCP_IP = '192.168.1.101'
TCP_PORT = 2101
BUFFER_SIZE = 40
MESSAGE = 'aa03e96a03'
print MESSAGE
# Setup for checksum calc
dataOutPairs = re.findall('..?', MESSAGE)
dataOutPair = 0
# Add together
for dop in dataOutPairs:
    dataOutPair = dataOutPair + int(dop, 16)
# Get Checksum
checksum = dataOutPair & 255
# Convert to 2 char hex still ascii
checksum = '{:02X}'.format(checksum)
# create payload
payload = MESSAGE.decode('hex') + checksum.decode('hex')

s = socket.socket()
s.connect((TCP_IP, TCP_PORT))
s.send(payload)
data = s.recv(BUFFER_SIZE)
data = data.encode('hex')
pairs = re.findall('..?', data)
print pairs
for pair in pairs:
    print int(pair, 16)
print "---------------------------------------"
s.close()

Using Wireshark and Base Station:

 aa03e96a0303
 aa200006001100050012001b000a001e00071e000019002d00000000000100000000a7

Return from above Script

aa03e96a03

['aa', '20', '00', '00', '00', '11', '00', '05', '00', '12', '00', '1b', '00', '0a', '00', '1e', '00', '07', '1e', '00', '00', '19', '00', '2d', '00', '00', '00', '00', '00', '01', '00', '00
', '00', '00', 'a1']

#2

anyone have any input? This is when querying a Fusion Board


#3

Well as it seems, I was using the wrong command entirely. But with a little more wireshark work I was able to fish out the command I was looking for

[170, 5, 254, 55, 3, 136, 16, 127]
AA05FE370388107F

This will return all the timers “seconds” values as configured. I have am however having some difficulty finding this command anywhere in the online documentation for fusion/reactor. It would be awesome if someone could point me to where this command may be documented.

Many thanks!


#4

Hi,

I’m actually not seeing that documented in the Fusion ProXR guide here:

However Base Station really is the simplest and quickest resource for getting the information you need. On most Base Station windows there is a more button which expands the window revealing additional information. Generally in the expanded window Base Station will show the data being sent to the board and the response being received back from the board. This is a quick and easy way to get the information you need. I will consult the Fusion firmware engineer about getting this documented in the Fusion ProXR guide.


#5

Hi ya Travis and thank you for your response. On the current version available at https://ncd.io/start/ The Reactor Portion does not have a “More” button available like the ProXR side does. I am however able to get what I need so far from basestation with wireshark. :slight_smile:


#6

Well that’s certainly a good alternative :grinning: