- 首先确认搭建的阿里云产品模型的传输协议是否是透传
2、找到对应的设备,查看设备信息
3、配置软件参数
一键配置参数-重启设备,根据返回信息判断是否配置成功
4、填写订阅和推送信息
回到产品信息,找到透传的命令
订阅配置:
/sys/ia48P1Dcp0k/TAS-LTE-393-01/thing/model/down_raw_reply
推送配置:
/sys/ia48P1Dcp0k/TAS-LTE-393-01/thing/model/up_raw
5、透传的话需要在服务器端对数据进行解析处理。
6、代码编写
主要是有3个程序,我们主要是用到第二个:讲原始数据转换成协议数据。
- transformPayload(topic, rawData)
- rawDataToProtocol(bytes)
- protocolToRawData(jsonObj)
7、 代码实现
1)定义一些变量
/*Roy20240814*/
var COMMAND_REPORT = 0x00; //属性上报。
var COMMAND_SET = 0x01; //属性设置。
var COMMAND_REPORT_REPLY = 0x02; //上报数据返回结果。
var COMMAND_SET_REPLY = 0x03; //属性设置设备返回结果。
var COMMAD_UNKOWN = 0xff; //未知的命令。
var ALINK_PROP_REPORT_METHOD = 'thing.event.property.post'; //标准ALink JSON格式topic, 设备 上传属性数据到 云端
var ALINK_PROP_SET_METHOD = 'thing.service.property.set'; //标准ALink JSON格式topic, 云端 下发属性控制指令 到设备端
//定义功能码
2)rawDataToProtocol(bytes)的实现
function rawDataToProtocol(bytes) {
var uint8Array = new Uint8Array(bytes.length);
for (var i = 0; i < bytes.length; i++) {
uint8Array[i] = bytes[i] & 0xff;
}
var dataView = new DataView(uint8Array.buffer, 0);
var jsonMap = new Object();
var fHead = uint8Array[0];
if (fHead == COMMAND_REPORT) {
jsonMap['method'] = ALINK_PROP_REPORT_METHOD;
jsonMap['version'] = '1.0';
jsonMap['id'] = '' + dataView.getUint8(1);
var params = {};
params['CurrentTemperature'] = dataView.getUint8(5);
jsonMap['params'] = params;
}
return jsonMap;
}
8、模拟运行
运行结果:
没有问题的话点击提交 保存。
10、功能验证
用塔石软件发送测试的数据,在物模型上看数据有没有变化:
至此一个简单的透传环境就搭建好了。