From 2597e5228fb03e43057d6aa675c0125dc052e621 Mon Sep 17 00:00:00 2001 From: Marko Mecina <marko.mecina@univie.ac.at> Date: Thu, 7 Dec 2023 12:25:26 +0100 Subject: [PATCH] update athena fpm interface lib --- Ccs/packet_config_ATHENA.py | 2 ++ Ccs/packet_config_ATHENA_DE.py | 27 +++++++++++++++++++-------- Ccs/scripts/wfi_de_communication.py | 17 +++++++++++++---- 3 files changed, 34 insertions(+), 12 deletions(-) diff --git a/Ccs/packet_config_ATHENA.py b/Ccs/packet_config_ATHENA.py index 15adda8..7921d4e 100644 --- a/Ccs/packet_config_ATHENA.py +++ b/Ccs/packet_config_ATHENA.py @@ -174,6 +174,8 @@ def calc_timestamp(time, sync=None, return_bytes=False): class RawGetterSetter: + bin = 0 + @property def raw(self): return bytes(self.bin) diff --git a/Ccs/packet_config_ATHENA_DE.py b/Ccs/packet_config_ATHENA_DE.py index 2e65983..65f7bb2 100644 --- a/Ccs/packet_config_ATHENA_DE.py +++ b/Ccs/packet_config_ATHENA_DE.py @@ -85,46 +85,53 @@ class CommandBase(ctypes.Union, RawGetterSetter): ] -class HkCmdSend(CommandBase): +class HkCmdWrite(CommandBase): def __init__(self, addr, data): - super(HkCmdSend).__init__() + super(HkCmdWrite).__init__() self.items.ifaddr = IfAddr.HK self.items.addr = addr self.items.txrx = CmdDir.SEND self.items.cmddata = data -class HkCmdRecv(CommandBase): +class HkCmdRead(CommandBase): def __init__(self, addr): - super(HkCmdRecv).__init__() + super(HkCmdRead).__init__() self.items.ifaddr = IfAddr.HK self.items.addr = addr self.items.txrx = CmdDir.RECV self.items.cmddata = 0 -class CmdSend(CommandBase): +class CmdWrite(CommandBase): def __init__(self, addr, data): - super(CmdSend).__init__() + super(CmdWrite).__init__() self.items.ifaddr = IfAddr.CMD self.items.addr = addr self.items.txrx = CmdDir.SEND self.items.cmddata = data -class CmdRecv(CommandBase): +class CmdRead(CommandBase): def __init__(self, addr): - super(CmdRecv).__init__() + super(CmdRead).__init__() self.items.ifaddr = IfAddr.CMD self.items.addr = addr self.items.txrx = CmdDir.RECV self.items.cmddata = 0 +# aliases for script backwards-compatibility +CmdSend = CmdWrite +CmdRecv = CmdRead +HkCmdSend = HkCmdWrite +HkCmdRecv = HkCmdRead + + class Ack: def __init__(self, raw=bytes(ACK_LEN)): @@ -388,6 +395,10 @@ class SciCmd: def raw(self, rawdata): self._raw = rawdata + @property + def hex(self): + return self._raw.hex(' ').upper() + @property def ifaddr(self): return self._raw[0] diff --git a/Ccs/scripts/wfi_de_communication.py b/Ccs/scripts/wfi_de_communication.py index a199e25..e556ac4 100644 --- a/Ccs/scripts/wfi_de_communication.py +++ b/Ccs/scripts/wfi_de_communication.py @@ -10,10 +10,19 @@ 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 +# test echo interface (0x20) +decon.send(b'\x20\xDE\xAD') + +# HK interface 0x33 +decon.send(de.HkCmdRead(0x1000)) # get PCM MODE register +decon.send(de.HkCmdWrite(0x1000, 0x0001)) # set PCM MODE register + +# CMD interface 0x34 +decon.send(de.CmdWrite(0x3C00, 0x0001)) # write sequencer register +decon.send(de.CmdWrite(0x3C00, 1), rx=False) # write sequencer register, but don't fetch cmd response from socket +decon.send(de.CmdRead(0x3C00)) # read sequencer register + +# SCI interface 0x35 decon.send(de.SciCmd(100)) # set science data output rate # dump cmd log (decon.log) -- GitLab