RCMast3r / data_acq

2 stars 3 forks source link

create vectornav driver integration #14

Open RCMast3r opened 5 months ago

RCMast3r commented 5 months ago

integrate vectornav data receiving correctly.

prob wanna make the vectornav driver a separate standalone thing then shove it into here actually since we are growing our number of tasks a lot in here.

RCMast3r commented 5 months ago

some chad gpt written reference code:

import asyncio
from message_pb2 import SimpleMessage
import socket

async def send_message_over_udp(message, host='localhost', port=6000):
    # Note: DGRAM socket is used for UDP
    sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    loop = asyncio.get_running_loop()

    # Make the socket non-blocking
    sock.setblocking(False)

    # Send the message
    await loop.sock_sendall(sock, message.SerializeToString())
    sock.close()

async def main():
    message = SimpleMessage(content="Hello, Receiver!")
    await send_message_over_udp(message)

if __name__ == "__main__":
    asyncio.run(main())
import asyncio
from message_pb2 import SimpleMessage
import socket

async def receive_message_over_udp(port=6000, buffer_size=1024):
    # Note: DGRAM socket is used for UDP
    sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    sock.bind(('localhost', port))

    # Make the socket non-blocking
    sock.setblocking(False)
    loop = asyncio.get_running_loop()

    # Wait for and receive the message
    data, _ = await loop.sock_recv(sock, buffer_size)
    sock.close()

    message = SimpleMessage()
    message.ParseFromString(data)
    print(f"Received: {message.content}")

if __name__ == "__main__":
    asyncio.run(receive_message_over_udp())