diff --git a/Ccs/scripts/wfi_de_communication.py b/Ccs/scripts/wfi_de_communication.py new file mode 100644 index 0000000000000000000000000000000000000000..a199e2558790a4e27cc083bf07d0f59bfb579e7f --- /dev/null +++ b/Ccs/scripts/wfi_de_communication.py @@ -0,0 +1,46 @@ +""" +Examples for Athena WFI DE communications +""" + +import communication as com +import packet_config_ATHENA_DE as de + +# set up socket and connect +decon = com.Connector('', 12345, msgdecoding='hex') +decon.connect() + +# example commands +decon.send(b'\x20\xDE\xAD') # test echo interface (0x20) +decon.send(de.HkCmdRecv(0x1000)) # get PCM MODE register +decon.send(de.CmdSend(0x3C00, 1)) # write sequencer register +decon.send(de.CmdSend(0x3C00, 1), rx=False) # write sequencer register, but don't fetch cmd response from socket +decon.send(de.SciCmd(100)) # set science data output rate + +# dump cmd log (decon.log) +logfile = '/path/to/de_cmd.log' +decon.dump_log(logfile) + +# automatically log to file +decon.setup_storage(logfile) + +# run rx thread on socket, received data is put in recvd_data_buf queue +decon.start_receiver() +decon.receiver.recvd_data_buf + + +# custom TM processing function; must take bytestring as arg *data*, and timestamp kwarg *ts* +def msg_to_hex_string(data, ts=''): + try: + return '{}: {}\n'.format(ts, data.hex(' ', 1)) + except Exception as err: + print(err) + return '# ERROR #\n' + + +# optionally, add custom TM processing +# this logs the received data hex-formatted in outfile +decon.start_receiver(procfunc=msg_to_hex_string, outfile='/path/to/de_rx.log', ofmode='w') + +# processed data is also collected in +decon.receiver.proc_data +