簡體   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