微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

定义用于从Raspberry使用4G modedm [Quectel ec25]到Linux Socket Server的TCP IP数据传输协议

如何解决定义用于从Raspberry使用4G modedm [Quectel ec25]到Linux Socket Server的TCP IP数据传输协议

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

我对此没有很多经验,并且看到了一些套接字编程信息,但是它并不完全适合我,因为我使用的是Quectel 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调制解调器直接连接到Internet。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。