文章詳情

以太網產品召喚及遠程配置協議 串口服務器

日期:2019-07-05 11:26
瀏覽次數:3963
摘要:

以太網產品召喚及遠程配置協議

一、  適用范圍

我公司所有嵌入式以太網產品均支持本協議。所有產品均可以使用此協議對設備進行遠程召喚、配置。

 

二、  工作方式

上位機軟件發送一個定長格式的UDP廣播報文到局域網,設備收到這個報文后,填充相關數據,并用UDP報文返回給上位機。

 

通訊采用UDP廣播方式工作,上位機的UDP發送地址為廣播地址:255.255.255.255,使用端口:6799。所以此協議不能跨網段搜索設備。

 

協議也支持遠程配置,可以在遠程設置一個設備的IP、子網掩碼和標識。

 

三、  定長數據結構

此數據結構為單字節對齊。

typedef struct __attribute__ ((packed)) _MUSTER_TELE {

//消息ID,默認為40

u_long xid;                

//消息類型,0-上位機發出,用于召喚設備,1-設備響**喚(設備返回),3-上位機向設備發送配置數據

u_char msg_type;          

//muster版本,一直為1

u_charmuster_ver;       

//主機名,msg_type=0時置0msg_type=1時為設備返回的主機名,msg_type=3時指定設備的新主機名。

u_charnet_hostname[12];     

//網絡物理地址,msg_type=0時置0msg_type=1時為設備返回的MAC地址,

//msg_type=3時,指定為要修改設備的Mac地址。

u_charnet_mac[6];        

//IP地址,msg_type=0時置0msg_type=1時為設備返回的IP地址,msg_type=3時設備修改IP為該地址。

u_longnet_ip_addr;       

//子網絡掩碼,msg_type=0時置0msg_type=1時為設備返回的掩碼,msg_type=3時設備修改掩碼為該掩碼。

u_longnet_ip_mask;       

//網關,保留參數,尚未使用。

u_longnet_gateway;       

//產品型號,尚未使用。

u_long devmodel;         

//工作模式,0-無效,1-Server模式,2-Client模式,10-UDP模式

//msg_type=0時置0msg_type=1時為設備返回的工作模式,msg_type=3時設備忽略該參數。

u_long workmodel;         

//設備的端口數,msg_type=0時置0msg_type=1時為設備返回的端口數量,msg_type=3時設備忽略該參數。

u_long portnum;    

//**個網絡監聽,保留參數,尚未使用

u_long firstport;         

//文本形式的固件版本說明,

//msg_type=0時置0msg_type=1時為設備返回的固件版本說明,msg_type=3時設備忽略該參數。

charfirmware[24];     

//文本形式的口令。

//msg_type=0時置0msg_type=1設備忽略該參數,msg_type=3時設備將檢查該口令,如果合法修改自身參數。

u_charcfgpwd[12];

//msg_type=0時置0msg_type=1設備返回當前的監聽IPmsg_type=3時設備忽略該參數。

//映射IP,與mapport聯合使用,mapipmapport數組的第1個元素為一個可使用的TCP/IP連接。

//如:mapip[0]mapport[0]指出設備**個監聽的IPPort。可以直接使用這個參數與設備建立TCP/IP連接。

    u_long mapip[32];         

//映射端口

//msg_type=0時置0msg_type=1設備返回當前的監聽Portmsg_type=3時設備忽略該參數。

   u_longmapport[32];      

   

} MUSTER_TELE;

 

 

四、  數據結構說明

1.     IP地址存儲

上述數據結構中的IP地址均為32bit長整型數據,使用inet_addr轉換后發送。

例如net_ip_addr=inet_addr('192.168.192.100')

 

2.     數據結構在使用前必須清零。

 

3.     發送msg_type=3的遠程配置報文時,需要注意,必須要在數據結構中,正確指定要配置設備的MAC地址和口令。因為設備是根據MAC地址來判斷是否為屬于自己的配置報文。如果MAC正確,口令錯誤,設備也將會拒絕更新配置。

 

五、  示例報文

1.     發送召喚報文

memset(sendbuf, 0, sizeof(sendbuf));

sendbuf.msg_type=0

發送此報文到255.255.255.255:6799

 

2.     設備返回的報文樣例

recbuf.msg_type=1

recbuf.muster_ver = 1

recbuf.hostname ='ServerID'

recbuf.net_mac ='010203040526'

recbuf.net_ip_addr = 1690347712 //設備IP

recbuf.net_ip_mask =16777215 //設備子網掩碼

recbuf.net_gateway = 0

recbuf.workmodel=0 //工作模式,1-Server模式,2-Client模式

recbuf.portnum=3 //設備硬件端口數

recbuf.mapip[0]=1690347712 //設備第1個監聽IP

recbuf.mapport[0]=6020 //設備第1個監聽端口,對應第1個硬件端口。

recbuf.mapip[1]=1690347712

recbuf.mapport[1]=6021

recbuf.mapip[2]=1690347712

recbuf.mapport[2]=6030

 

3.     向設備發送遠程配置報文

memset(sencfgdbuf, 0, sizeof(sendbuf));

sencfgdbuf.msg_type=3

sencfgdbuf.net_hostname='123456789ABC'

sencfgdbuf.net_ip_addr=inet_addr('192.168.192.100')

sencfgdbuf.net_ip_mask=inet_addr('255.255.255.0')

sencfgdbuf.net_gateway=0

sencfgdbuf.net_mac=要配置的設備MAC地址//必須是正確的網絡物理地址。

sencfgdbuf.cfgpwd='admin'//必須為正確的配置口令,與管理菜單登錄口令相同。

 以太網產品召喚及遠程配置協議 串口服務器

捕鱼游戏英语怎么说