Skip to content
Snippets Groups Projects
Commit 2597e522 authored by Marko Mecina's avatar Marko Mecina
Browse files

update athena fpm interface lib

parent a10b642e
No related branches found
No related tags found
No related merge requests found
......@@ -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)
......
......@@ -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]
......
......@@ -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)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment