繁体   English   中英

为从 Raspberry(使用 4G 调制解调器 [Quectel ec25])到 Linux 套接字服务器的 TCP IP 数据传输定义协议

[英]Defining a protocol for TCP IP Data transfer from Raspberry (Using 4G modedm [Quectel ec25]) to Linux Socket Server

我有一个 RPi 4 + Sixfab Base HAT + Quectel EC25 4G LTE 调制解调器 + Picam,我正在尝试开发一个程序来从 picam 拍照并使用 TCP/IP 协议通过 4G 发送它们,然后在 Linux Socket 上接收和显示图片服务器。

我没有很多这方面的经验,也看过一些 Socket 编程信息,但它并不完全适合我,因为我使用的是移远通信 4G 调制解调器而不是 wifi 或以太网 - 这意味着我不能使用套接字。 功能,但只有 AT 命令。

到目前为止,我可以使用 4G 从 Rpi 发送一个用 base64 编码的小型 20x20 png 并在套接字服务器中接收它,但无法重建小图像。

但如果数据变大,我需要定义一个协议(文件大小、开始 - 结束 - 等)。 我见过一些自定义协议,但它们仅适用于套接字服务器,并未包含 4G 调制解调器的使用。 如果有人能指导我朝着正确的方向前进,我将不胜感激。 .

if ser.isOpen(): # if modem is open
try:
        ser.flushInput() 
        ser.flushOutput()

        BG96 = bg96_init()  # initialize function for the Modem

        i = 0
    encoded = ""
        #start = time.time()
        while BG96:# 
                if i==0:# does something the first time but not relevant here << 
            print(i)
        encoded = base64.b64encode(open('testingimg.png', 'rb').read())
                print("Data size to send to 4G module:" , sys.getsizeof(encoded))
        print("The Image String: " , encoded)
        bg96_msg(encoded) # This is a function that sends the data via TCP with AT commands 

        encoded=""
        
        ser.flushInput() 
        ser.flushOutput()
        i = i+
        time.sleep(0.33)

你如何将EC25连接到rpi? 如果您使用 USB,则不必使用 AT 命令集,并且您的 pi 通过 4g 调制解调器直接连接到互联网。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM