GPRS模塊設(shè)置心跳包時,建議在網(wǎng)絡(luò)透傳模式下。在網(wǎng)絡(luò)透傳模式下,用戶可以選擇讓模塊發(fā)送心跳包。心跳包可以向網(wǎng)絡(luò)服務(wù)器端發(fā)送,也可以向串口設(shè)備端發(fā)送。例如USR-GM3的心跳包設(shè)置示例圖如下:
向網(wǎng)絡(luò)端發(fā)送主要目的是為了與服務(wù)器保持連接,和讓長時間空閑(很長時間內(nèi)不會向服務(wù)器發(fā)送數(shù)據(jù))的模塊檢測連接狀態(tài)是否有效。當(dāng)連接異常時,模塊會檢測到無法正常發(fā)送心跳包數(shù)據(jù)到服務(wù)器端,發(fā)送失敗次數(shù)大于3次時,模塊認(rèn)為連接異常,將嘗試重新接入服務(wù)器。
在服務(wù)器向設(shè)備發(fā)送固定查詢指令的應(yīng)用中,為了減少通信流量,用戶可以選擇,用向串口設(shè)備端發(fā)送心跳包(查詢指令),來代替從服務(wù)器發(fā)送查詢指令。
設(shè)置軟件設(shè)置:
圖 設(shè)置軟件示意圖
注:如果發(fā)送的是字符串格式的心跳包,請去掉設(shè)置軟件上HEX選擇框的勾。
指令設(shè)置:
(1) 使能發(fā)送心跳包功能
AT+HEARTEN=”on”
(2) 設(shè)置心跳包發(fā)送方向類型,例如,設(shè)置心跳包向網(wǎng)絡(luò)服務(wù)器端發(fā)送。
AT+HEARTTP=”NET”
(3) 設(shè)置心跳包數(shù)據(jù),例如,將數(shù)據(jù)設(shè)置為字符串”wxxtd.cn”,需要先轉(zhuǎn)換為十六機(jī)制的字符串
為”7777772E7573722E636E”。
AT+HEARTDT=”7777772E7573722E636E”
(4) 設(shè)置心跳包的發(fā)送間隔時間,例如,將發(fā)送間隔時間設(shè)置為30秒
AT+HEARTTM=30
除了做以上設(shè)置外,還要對網(wǎng)絡(luò)連接如socket A 和socket B的設(shè)置,請參考4.1.2.3章節(jié)。完成設(shè)置后,保存參數(shù),當(dāng)socket A 或socket B連接上服務(wù)器后,如果設(shè)備在30秒內(nèi)未向服務(wù)器發(fā)送數(shù)據(jù),則模塊會向服務(wù)器發(fā)送字符串”wxxtd.cn”.
注:心跳包是在串口和網(wǎng)絡(luò)沒有數(shù)據(jù)的時候才會發(fā)送,如果數(shù)據(jù)交互小于心跳時間,則不會發(fā)送心跳包。