源码下载:
nbiot_module程序(java netbean)
UdpServer程序(C# vs2010)
前提条件:开NB卡的时候需要绑定私有ip(电信运营商设置),链路有效连接为30秒,超时了服务器不能给NB模块主发送数据。如果需要服务器主动给NB模块发送指令,需要走电信平台。
《UDP网络通信协议规范》
通信采用GB2312编码格式
数据包格式:
标示符=长度#设备编号#任务id#包类型#包内容#
备注
长度: 4位不足补0,从标示符#到#之间的长度大小
1. 包内容为空
HTEMP=0026#1533022506#Meter-001#01##
2. 包内容含有多个字段
HTEMP=0043#1533022506#Meter-001#01#get-version@nb001#
3. 包内容含有多个字段(字段间用@分割,字段内的数组用[{},{}])
HTEMP=0261#WaterMeter-001#1520557005#03#buildid=44@edmid=37@meter=1228@denddate=2018-02-05 17:36:22@[{132,0.0000}+{132,0.0000}+{132,0.0000}+{132,0.0000}+{132,0.0000}+{132,0.0000}+{132,0.0000}+{132,0.0000}+{132,0.0000}+{132,0.0000}+{132,0.0000}+{132,0.0000}+{132,0.0000}]#
一.心跳包
HTEMP=0026#Meter-001#1533022506#01##
HTEMP=0028#Meter-001#1533022506#01#ok#
二.时间同步
HTEMP=0026#Meter-001#1533022506#02##
HTEMP=0045#Meter-001#1533022506#02#2018-08-16 09:50:58#
三.数据上传
HTEMP=0256#Meter-001#1520557005#03#buildid=44@edmid=37@meter=1228@denddate=2018-02-05 17:36:22@[{132,0.0000}+{132,0.0000}+{132,0.0000}+{132,0.0000}+{132,0.0000}+{132,0.0000}+{132,0.0000}+{132,0.0000}+{132,0.0000}+{132,0.0000}+{132,0.0000}+{132,0.0000}+{132,0.0000}]#
HTEMP=0048#Meter-001#1520557005#03#error@服务器返回失败!#
HTEMP=0028#Meter-001#1520557005#03#ok#
四.版本查询
HTEMP=0044#Meter-0001#1533022507#04#get-version@nb001#
HTEMP=0028#Meter-0001#1533022507#04#2#
五.软件更新
HTEMP=0042#Meter-0001#1533022508#05#get-count@nb001#
HTEMP=0029#Meter-0001#1533022508#05#16#
六.软件下载
HTEMP=0044#Meter-0001#1533022508#06#do-update@nb001@1#
HTEMP=0495#Meter-0001#1533022508#06#504B03041400000008007A640F4D6BEBFDBA000E00004D2E000007000000636F6D732E7079D51A6B73D356F6BB7FC55D7932926AC7D80EA1901DB10D8901CF244ED636FB189AF1C8D275A246B6BC924C603B9D816E29852DD09D6E976D0B944E4BB7B3DB02EDD22729FD3328099FF80B7BEE4B962C3BA4E36DBBAB99C4D23DCF7BCEB9F79C7BA4349A7C6612198E6975566750CF6F350E929194D5EE3AAE8FBC339EB8B59DD55540128FBED5C6E2BEED98CD9ED7F0D713033913B7AC0EF690EE21C3F393707647C0EC6E1446C3F57B7D2CF23412D337BA114C780A27835D4BB7C553CFB56DAB59CCB2DF#
七.版本更新
HTEMP=0046#Meter-0001#1533022509#07#update-version@56@2#
HTEMP=0029#Meter-0001#1533022509#07#ok#
package com.module.ui;
import com.module.serial.BC95SerialPort;
import com.module.serial.CCommondFunc;
import com.module.serial.CTxtHelper;
public class Program {
static int port = 9096;
static BC95SerialPort serialport = new BC95SerialPort();
public static void main(String[] args) {
String com = "COM3";// /dev/ttyAMA0
boolean ret = serialport.init(com, "117.25.162.156", "8292");
if (ret)
{
System.out.println("串口打开成功:" + com);
//ret = serialport.ReStartModule();
if (ret)
{
Heart();
Time();
Upload();
Update();
}
}
else {
System.out.println("串口打开失败:" + com);
}
}
static void Heart() {
String protocol = "HTEMP=0026#Meter-001#1533022506#01##";
String outPut = serialport.PassData1(protocol);
CTxtHelper.AppendLog("====&