47 lines
1.4 KiB
Python
47 lines
1.4 KiB
Python
#!/usr/bin/env python
|
|
|
|
import asyncio
|
|
from time import sleep
|
|
import framing
|
|
# from header import Onbeat_Header
|
|
import json
|
|
|
|
PACKET_LEN=255*4 + 32
|
|
DATA_LEN=223*4
|
|
HEADER_LEN=32
|
|
|
|
|
|
async def tcp_client(file_2_send: str, callsign: str, rs_coding: bool = True):
|
|
port = 50001
|
|
_, writer = await asyncio.open_connection(
|
|
'127.0.0.1', port)
|
|
with open(file_2_send, "rb") as file_to_send:
|
|
seq = 0
|
|
sent: list[list[int]] = []
|
|
try:
|
|
while message := file_to_send.read(DATA_LEN if rs_coding == True else (PACKET_LEN - HEADER_LEN)):
|
|
sent.append([i for i in message])
|
|
frame = bytes(framing.encode_packet([i for i in message], callsign, seq%256, rs_coding))
|
|
writer.write(frame)
|
|
seq += 1
|
|
print(seq)
|
|
sleep(0.01)
|
|
else:
|
|
frame = bytes(framing.encode_packet([], callsign, seq%256, rs_coding))
|
|
for _ in range(0,4):
|
|
writer.write(frame)
|
|
sleep(0.01)
|
|
sent.append([])
|
|
except KeyboardInterrupt:
|
|
return sent
|
|
|
|
|
|
rs_coding = True
|
|
filename = "/home/lacko/live_output/2025-11-01_12-39_elektro_lrit_1.691 GHz/IMAGES/ELEKTRO-L3/2025-11-01_12-30-00/msu_gs_Color IR Merge.png"
|
|
sent = asyncio.run(tcp_client(filename, "HA5PLS", rs_coding))
|
|
|
|
|
|
|
|
with open("packets.json", mode="w") as packetfile:
|
|
json.dump(sent, packetfile)
|