diff --git a/Ccs/packet_config_ATHENA.py b/Ccs/packet_config_ATHENA.py index 15adda8d97eba2de645372a3dabb189e613d3223..7921d4e12fbb383784b8d1eed8e8f422ecc9cb6f 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 2e659830b8801d3eaef8802db3d992aadf05f244..65f7bb21af95cf1775028931b61d30374316685f 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 a199e2558790a4e27cc083bf07d0f59bfb579e7f..e556ac4c6cad342a84c721eb73c5993d39fda0b2 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)