Skip to content

Commit

Permalink
wip
Browse files Browse the repository at this point in the history
  • Loading branch information
rumpelsepp committed Jul 11, 2024
1 parent 6282b2c commit 39e8631
Showing 1 changed file with 48 additions and 29 deletions.
77 changes: 48 additions & 29 deletions src/gallia/transports/vector.py
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,9 @@ def __init__(self, target: TargetURI) -> None:

filter = vector_ctypes.XLfrAcceptanceFilter(
vector_ctypes.XL_FR_FILTER_BLOCK,
vector_ctypes.XL_FR_FILTER_TYPE_DATA | vector_ctypes.XL_FR_FILTER_TYPE_NF | vector_ctypes.XL_FR_FILTER_TYPE_FILLUP_NF,
vector_ctypes.XL_FR_FILTER_TYPE_DATA
| vector_ctypes.XL_FR_FILTER_TYPE_NF
| vector_ctypes.XL_FR_FILTER_TYPE_FILLUP_NF,
ctypes.c_uint(1),
ctypes.c_uint(255),
ctypes.c_uint(self.channel_mask.value),
Expand Down Expand Up @@ -148,35 +150,54 @@ async def write(
timeout: float | None = None,
tags: list[str] | None = None,
) -> int:
event = vector_ctypes.XLfrEvent()
event.tag = vector_ctypes.XL_FR_TX_FRAME
event.flagsChip = vector_ctypes.XL_FR_CHANNEL_A
event.size = 0 # calculated inside XL-API DLL
event.userHandle = 0

e = vector_ctypes.XL_FR_TX_FRAME_EV()
e.data = bytes.fromhex("affeaffeaffeaffe")
print(e.data)
print(len(e.data))


tagData = vector_ctypes.s_xl_fr_tag_data()
tagData.frTxFrame = vector_ctypes.XL_FR_TX_FRAME_EV(
0, # flags
self.config.slot_id, # slotID
0, # offset
0, # repetition
len(data), # payloadLength
vector_ctypes.XL_FR_TX_MODE_SINGLE_SHOT, # txMode
0, # incrementSize
0, # incrementOffset
0, # reserved0
0, # reserved1
data, # data
)

event = vector_ctypes.XLfrEvent(
0, # size
vector_ctypes.XL_FR_TX_FRAME, # tag
0, # channelIndex
0, # userHandle
vector_ctypes.XL_FR_CHANNEL_A, # flagsChip
0, # reserved
0, # timestamp
0, # timestampSync
tagData,
)

# event.tag = vector_ctypes.XL_FR_TX_FRAME
# event.flagsChip = vector_ctypes.XL_FR_CHANNEL_A
# event.size = 0 # calculated inside XL-API DLL
# event.userHandle = 0
#
#
#
# event.tagData.frTxFrame = vector_ctypes.XL_FR_TX_FRAME_EV()
event.tagData.frTxFrame = e
event.tagData.frTxFrame.flags = 0
event.tagData.frTxFrame.offset = 0
event.tagData.frTxFrame.repetition = 1
event.tagData.frTxFrame.payloadLength = len(data)
event.tagData.frTxFrame.slotID = self.config.slot_id
event.tagData.frTxFrame.txMode = vector_ctypes.XL_FR_TX_MODE_SINGLE_SHOT
event.tagData.frTxFrame.incrementOffset = 0
event.tagData.frTxFrame.incrementSize = 0

if len(data) > vector_ctypes.XL_FR_MAX_DATA_LENGTH:
raise ValueError("frame exceeds max data length")

event.tagData.frTxFrame.data = data
# event.tagData.frTxFrame.flags = 0
# event.tagData.frTxFrame.offset = 0
# event.tagData.frTxFrame.repetition = 1
# event.tagData.frTxFrame.payloadLength = len(data)
# event.tagData.frTxFrame.slotID = self.config.slot_id
# event.tagData.frTxFrame.txMode = vector_ctypes.XL_FR_TX_MODE_SINGLE_SHOT
# event.tagData.frTxFrame.incrementOffset = 0
# event.tagData.frTxFrame.incrementSize = 0
#
# if len(data) > vector_ctypes.XL_FR_MAX_DATA_LENGTH:
# raise ValueError("frame exceeds max data length")
#
# event.tagData.frTxFrame.data = data
print(event.tagData.frTxFrame.data.hex())
print(len(event.tagData.frTxFrame.data))
print(event.tagData.frTxFrame.data.hex())
Expand Down Expand Up @@ -219,7 +240,6 @@ async def read_frame(self, timeout: float | None = None, tags: list[str] | None
if event.tag != vector_ctypes.XL_FR_RX_FRAME:
continue


slot_id = event.tagData.frRxFrame.slotID

if slot_id not in (33, 59):
Expand Down Expand Up @@ -254,7 +274,6 @@ async def read_frame(self, timeout: float | None = None, tags: list[str] | None
# TODO: slicing is correct?
return bytes(event.tagData.frRxFrame.data)[: int(event.size)]


async def read(self, timeout: float | None = None, tags: list[str] | None = None) -> bytes:
raise NotImplementedError()

Expand Down

0 comments on commit 39e8631

Please sign in to comment.