上位機通過UDP方式獲取MCU傳送的資料

2021-07-02 04:01:24 字數 1057 閱讀 4676

我的硬體裝置是使用的wifi串列埠模組,mcu將要傳送的資料通過wifi串列埠模組傳送出來。由於我需要的資料傳送頻率較高,且不需要可靠傳輸,所以採用了udp方式。為了在上位機上顯示收到的資料,需要用到win32的socket程式設計。結合網路上的資料,我的**整理如下:

// 標頭檔案

#include "stdafx.h"

#include "stdio.h"

#include "stdlib.h"

#include

#include

#include

#include

#include

#pragma comment(lib,"ws2_32.lib")

#pragma comment(lib, "winmm.lib")

using

namespace

std;

socket m_socket; //定義成全域性,這樣可以在各個函式之間使用

bool initwinsock() // 套接字初始化

else

}

return true;

}// 資料更新執行緒

dword winapi dataupdatethreadproc(lpvoid lpparam)

}

return

0; }

// 主函式

int _tmain(int argc, _tchar* argv)

; //要傳送的資料

if (sendto(m_socket,udpsndbuf,sizeof udpsndbuf,0,(struct sockaddr*)&server,len)!=socket_error) //傳送資料

需要說明的是,在資料接收過程中,使用了recvfrom函式,這個函式預設為阻塞通訊方式,即沒有資料時則執行緒停止在這裡,直到有資料為止,有多少資料讀多少資料,超過緩衝區大小時則僅保留前n個資料。

在資料處理程式中進一步新增資料顯示**,就可以在上位機中實時顯示mcu傳送的資料了。

C 上位機通過socket讀寫PLC

做上位機的同行應該有切實體會 由於某些廠家的通訊協議不開放的緣故,通訊是個很費勁的事,特別是和西門子的通訊。就我目前所知,通訊手段主要依賴於兩條路 a.opc,我們自己開發client端,server端借助simatic net 或者kepserver b.組態軟體,組態軟體就不說了,稍微會點程式設...

python通過UDP獲取本機IP

利用 udp 協議來實現的,生成乙個udp包,把自己的 ip 放如到 udp 協議頭中,然後從udp包中獲取本機的ip。這個方法並不會真實的向外部發包,所以用抓包工具是看不到的。但是會申請乙個 udp 的埠,所以如果經常呼叫也會比較耗時的,這裡如果需要可以將查詢到的ip給快取起來,效能可以獲得很大提...

微控制器與上位機通過串列埠通訊 筆記

先說什麼是串列埠?1 他是一種通訊介面,微控制器 io 口上的復用功能,上位機 電腦 和下位機 開發板 之間的資料傳輸。2 序列介面簡稱串列埠,也稱序列通訊介面或序列通訊介面 通常指 com 接 口 是採用序列通訊方式的擴充套件介面。3 序列介面 serial inte ce 是指資料一 位一位地順...