- 入駐時間: 2007-10-15
- 聯系人:馬波
- 電話:013520132195
-
聯系時,請說明易展網看到的
- Email:sf101@163.com
以太網產品召喚及遠程配置協議 串口服務器
以太網產品召喚及遠程配置協議
一、 適用范圍
我公司所有嵌入式以太網產品均支持本協議。所有產品均可以使用此協議對設備進行遠程召喚、配置。
二、 工作方式
上位機軟件發送一個定長格式的UDP廣播報文到局域網,設備收到這個報文后,填充相關數據,并用UDP報文返回給上位機。
通訊采用UDP廣播方式工作,上位機的UDP發送地址為廣播地址:255.255.255.255,使用端口:6799。所以此協議不能跨網段搜索設備。
協議也支持遠程配置,可以在遠程設置一個設備的IP、子網掩碼和標識。
三、 定長數據結構
此數據結構為單字節對齊。
typedef struct __attribute__ ((packed)) _MUSTER_TELE {
//消息ID,默認為4個0。
u_long xid;
//消息類型,0-上位機發出,用于召喚設備,1-設備響**喚(設備返回),3-上位機向設備發送配置數據
u_char msg_type;
//muster版本,一直為1。
u_charmuster_ver;
//主機名,msg_type=0時置0,msg_type=1時為設備返回的主機名,msg_type=3時指定設備的新主機名。
u_charnet_hostname[12];
//網絡物理地址,msg_type=0時置0,msg_type=1時為設備返回的MAC地址,
//msg_type=3時,指定為要修改設備的Mac地址。
u_charnet_mac[6];
//IP地址,msg_type=0時置0,msg_type=1時為設備返回的IP地址,msg_type=3時設備修改IP為該地址。
u_longnet_ip_addr;
//子網絡掩碼,msg_type=0時置0,msg_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時置0,msg_type=1時為設備返回的工作模式,msg_type=3時設備忽略該參數。
u_long workmodel;
//設備的端口數,msg_type=0時置0,msg_type=1時為設備返回的端口數量,msg_type=3時設備忽略該參數。
u_long portnum;
//**個網絡監聽,保留參數,尚未使用
u_long firstport;
//文本形式的固件版本說明,
//msg_type=0時置0,msg_type=1時為設備返回的固件版本說明,msg_type=3時設備忽略該參數。
charfirmware[24];
//文本形式的口令。
//msg_type=0時置0,msg_type=1設備忽略該參數,msg_type=3時設備將檢查該口令,如果合法修改自身參數。
u_charcfgpwd[12];
//msg_type=0時置0,msg_type=1設備返回當前的監聽IP,msg_type=3時設備忽略該參數。
//映射IP,與mapport聯合使用,mapip和mapport數組的第1個元素為一個可使用的TCP/IP連接。
//如:mapip[0]與mapport[0]指出設備**個監聽的IP和Port。可以直接使用這個參數與設備建立TCP/IP連接。
u_long mapip[32];
//映射端口
//msg_type=0時置0,msg_type=1設備返回當前的監聽Port,msg_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'//必須為正確的配置口令,與管理菜單登錄口令相同。
以太網產品召喚及遠程配置協議 串口服務器