Как отправить данные с UDP-порта на сенсорный узел lora?

#python #udp #simulation #raspberry-pi3 #lorawan

Вопрос:

Я пытаюсь отправить данные из simulink, а затем с помощью UDP отправляю эти данные в raspberry. Данные в raspberry pi отображались правильно. Но, когда я пытаюсь отправить данные UDP лоре, он не смог их отправить. Может кто-нибудь помочь мне, как исправить код. P.S. Я не специалист в программировании, я только начинаю всему учиться. Спасибо. Кстати, я только что получил базовый код отправки данных с github. Идея здесь в том, что raspberry pi будет принимать данные с другой машины по протоколу UDP. Затем данные будут распакованы в raspberry pi, эти данные будут переданы с помощью lora piHat на шлюз, а затем на сетевой сервер.

 from sys import exit
from time import sleep
from rak811.rak811 import Mode, Rak811
from ttn_secrets import APP_EUI, APP_KEY
import socket, struct, os
import numpy as np
import struct
import socket
lora = Rak811()
      
print('Setup')
lora.hard_reset()
lora.mode = Mode.LoRaWan
lora.band = 'AS923'
lora.set_config(app_eui=APP_EUI, app_key=APP_KEY)
print('Joining')
lora.join_otaa()
lora.dr = 5
IP = ""
PORT = 50000
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.bind((IP, PORT))
try:
    while True:
        data, addr = sock.recvfrom(1024)
        data = struct.unpack('dddddddddd', data)
        lora.send(data[0])
        print("x1", data[0])
        sleep(0)
except
    pass
print('Cleaning up')
lora.close()
exit(0)
 

Комментарии:

1. Что это за код, который вы показываете? Это узел rasperrypi LoRaWAN?

2. да, это так. Я использую шлюз rak811 lora piHat и шлюз rak7240 lora.

Ответ №1:

Я уже решил.

 while True:
        data, addr = sock.recvfrom(1024)
        data = struct.unpack('dddddddddd', data)
        x1 = format(data[0], '.4f')
        lora.send(x1)
        print("x1", x1)
        sleep(0)
 

Я думаю, что модуль не будет отправлять тип данных с плавающей точкой.