注:合成报文的时候 需要将报文类型、报头长度、正文长度转换成定长度的16进制字节码,长度不足时在前面补充0。
2.4 报头说明
(1)_id ,编码
数据报唯一编码,小于18位,编码必须等长度按照时间序列生成,也可以空。
(2)_name,标题
中文描述,取表中的数据采集分类名称
(3)_sender,发送者
数据中心编码,必须与登录使用的编码一致,比如北京:11000001。
(4)_target ,接收目标
序号
| 数据采集分类名称
| 接收目标
|
1
| 国家机关和大型公建
| cecms-xT1
|
2
| 建筑类型
| cecms-xT2
|
3
| 空调形式
| cecms-xT3
|
4
| 采暖形式
| cecms-xT4
|
5
| 结构形式
| cecms-xT5
|
6
| 外墙形式
| cecms-xT6
|
7
| 外墙保温
| cecms-xT7
|
8
| 外窗类型
| cecms-xT8
|
9
| 玻璃类型
| cecms-xT9
|
10
| 窗框材料
| cecms-xT10
|
(5)_style,正文类型,采用XML取值2。(0-文本;1-JSON;2-XML)
(6)_time,发送时间,当前发送时间格式为: yyyy-mm-dd hh:mm:ss
2.5 报头示例
_id=C1280974531864019&_name=国家机关和大型公建分类&_sender=11000001&_target=cecms-xT1&_style=2&_time=2010-01-01 01:00:00
2.6 转换字节码示例
(1)C#代码示例
/**
* 10进制数转化为定长度的16进制字节数组
* value 待转化的值
* len 长度限制
**/
public byte[] intToHexBytes(int value, int len)
{
//转换成16进制数
string hx = Convert.ToString(value, 16);
int hxlen = hx.Length;
for (int l = 0; l < len - hxlen; l++)
{
hx = "0" + hx;
}
byte[] array = new byte[len];