From 593af951776406998fada4519fd82bf98d681f90 Mon Sep 17 00:00:00 2001 From: Marko Mecina <marko.mecina@univie.ac.at> Date: Mon, 13 Nov 2023 17:42:12 +0100 Subject: [PATCH] add Athena WFI DE communication template --- Ccs/scripts/wfi_de_communication.py | 46 +++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 Ccs/scripts/wfi_de_communication.py diff --git a/Ccs/scripts/wfi_de_communication.py b/Ccs/scripts/wfi_de_communication.py new file mode 100644 index 0000000..a199e25 --- /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 + -- GitLab