from smartx_rfid.devices.generic.TCP._main import TCP
import asyncio
import logging
logging.basicConfig(
level=logging.INFO,
format="%(asctime)s - %(levelname)s - %(message)s",
datefmt="%H:%M:%S",
)
def on_tcp_event(name: str, event_type: str, event_data=None):
print(f"{name} -> Event: {event_type}, Data: {event_data}")
async def main():
tcp_device = TCP(
name="TCPDevice",
ip="192.168.1.100", port=4001, )
tcp_device.on_event = on_tcp_event
asyncio.create_task(tcp_device.connect())
async def send_periodic_data():
await asyncio.sleep(2) counter = 1
while True:
if tcp_device.is_connected:
await tcp_device.write(f"Test message #{counter}")
counter += 1
await asyncio.sleep(5)
asyncio.create_task(send_periodic_data())
try:
while True:
await asyncio.sleep(1)
except KeyboardInterrupt:
print("\nShutting down...")
if tcp_device.writer:
tcp_device.writer.close()
await tcp_device.writer.wait_closed()
if __name__ == "__main__":
asyncio.run(main())