#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)
Я думаю, что модуль не будет отправлять тип данных с плавающей точкой.