简单实现仅作实现思路
数采
设备:AIS+浪潮边缘计算网关
连接方式:串口RS232
计算网关:arm64 ubuntu
环境:python3.6
使用serial连接串口并持续获取数据
ser = serial.Serial(self.serial_port, self.baud_rate, timeout=0.5)
try:
# 输出全部log
full_data = ser.readline()
# 将输出的log根据换行符切割
split_data = full_data.splitlines()
# 将切割好的log循环遍历输出到文件中
for data in split_data:
print("get data:%s => To UDP server" % data)
dis = {'time': now_tims, 'gatewayID': 'FD253', 'gatewayIP': '127.0.0.1', 'data': data}
udp_send = udp_client.sk_send.send(dis) # 将数据发送到UDP服务器
print(udp_send)
except Exception as e:
print('Read GPS failed: {0}'.format(e))
将数据发送到UDP服务器
class sk_send:
@staticmethod
def send(data):
server_ip = "0.0.0.0" # UDP服务端IP
server_port = 8888 # UDP端口
try:
sk = socket.socket(type=socket.SOCK_DGRAM)
sk.settimeout(2)
sk.sendto(str(data).strip().encode("utf-8"), (server_ip, server_port))
msg, address = sk.recvfrom(1024)
cont_s = "Message from server: %s" % msg
# 收到终端发来的字符串BYE结束程序
if msg.decode("utf-8").upper() == "BYE":
sys.exit(0)
sk.close()
return cont_s
except:
print('连接%s 超时' % server_ip)
使用方法:
python3 gateway.py /dev/ttyS2 38400
python 文件名 串口名 波特率