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 de923dd commit 7a7a222
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 52 deletions.
3 changes: 2 additions & 1 deletion fr_send.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@ async def main() -> None:
url = TargetURI("flexray-raw://?slot_id=59")
tp = await RawFlexrayTransport.connect(url, None)

await tp.write(bytes.fromhex("30 7c 61 00 02 3e 00 00"))
data = b"12345678"
await tp.write(data)


if __name__ == "__main__":
Expand Down
72 changes: 21 additions & 51 deletions src/gallia/transports/vector.py
Original file line number Diff line number Diff line change
Expand Up @@ -150,59 +150,29 @@ async def write(
timeout: float | None = None,
tags: list[str] | None = None,
) -> int:
tagData = vector_ctypes.s_xl_fr_tag_data()
tx_frame_ev = 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
)

print(len(data))
print(tx_frame_ev.data)

tagData.frTxFrame = tx_frame_ev

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 = 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

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")

data = data.ljust(vector_ctypes.XL_FR_MAX_DATA_LENGTH, b"\x00")

event.tagData.frTxFrame.data = (ctypes.c_ubyte * vector_ctypes.XL_FR_MAX_DATA_LENGTH).from_buffer_copy(data)

# 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.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

0 comments on commit 7a7a222

Please sign in to comment.