fix: 阿里透传-modbus组件
parent
8df36940b6
commit
0d1da6d928
|
@ -127,7 +127,7 @@ function register(payload) {
|
|||
var pwd = md5(product.getProductSecret() + auth.clientid);
|
||||
|
||||
if (pwd.toLocaleLowerCase() != auth.password.toLocaleLowerCase()) {
|
||||
throw new Error("incorrect password" + "pwd->" + pwd + " productSecret->" + product.productSecret);
|
||||
throw new Error("incorrect password" + "pwd->" + pwd + " productSecret->" + product.getProductSecret());
|
||||
}
|
||||
return {
|
||||
type: "register",
|
||||
|
@ -271,7 +271,6 @@ this.onReceive = function (head, type, payload) {
|
|||
}
|
||||
var pk = arr[2];
|
||||
var dn = arr[3];
|
||||
payload = JSON.parse(payload);
|
||||
|
||||
//子设备注册
|
||||
if (topic.endsWith('/register')) {
|
||||
|
@ -283,12 +282,12 @@ this.onReceive = function (head, type, payload) {
|
|||
{
|
||||
productKey: pk,
|
||||
deviceName: dn,
|
||||
mid: payload.id,
|
||||
// mid: payload.id,
|
||||
content: {
|
||||
topic: topic.replace("/s/", "/c/") + "_reply",
|
||||
payload: JSON.stringify({
|
||||
id: payload.id,
|
||||
method: payload.method + "_reply",
|
||||
// id: payload.id,
|
||||
method: "thing.event.property.post",
|
||||
code: 0,
|
||||
})
|
||||
}
|
||||
|
@ -308,7 +307,7 @@ this.onReceive = function (head, type, payload) {
|
|||
data: {
|
||||
productKey: pk,
|
||||
deviceName: dn,
|
||||
mid: payload.id,
|
||||
mid: "3",
|
||||
content: {
|
||||
topic: topic,
|
||||
payload: payload
|
||||
|
|
Binary file not shown.
|
@ -1,5 +1,5 @@
|
|||
var mid = 1;
|
||||
|
||||
var COMMAD_UNKOWN = 0xff; //未知的命令
|
||||
function getMid() {
|
||||
mid++;
|
||||
if (mid > 10000) {
|
||||
|
@ -11,8 +11,8 @@ function getMid() {
|
|||
this.decode = function (msg) {
|
||||
var content = msg.content;
|
||||
var topic = content.topic;
|
||||
var bytes = arrayGroup(content.payload.params,2);
|
||||
var byteData=content.payload.params;
|
||||
var bytes = arrayGroup(content.payload,2);
|
||||
var byteData=content.payload;
|
||||
if (topic.endsWith("/thing/model/up_raw")) {
|
||||
var data = arrayGroup(byteData, 2);
|
||||
var params = {};
|
||||
|
@ -149,16 +149,6 @@ this.decode = function (msg) {
|
|||
time: new Date().getTime(), //时间戳,消息上报时间
|
||||
data: params,
|
||||
};
|
||||
} else if (topic.indexOf("/event/") > 0) {
|
||||
//事件上报
|
||||
} else if (topic.endsWith("/service/property/set_reply")) {
|
||||
//属性设置回复
|
||||
} else if (topic.endsWith("/config/set_reply")) {
|
||||
//设备配置设置回复
|
||||
} else if (topic.endsWith("/config/get")) {
|
||||
//设备配置获取
|
||||
} else if (topic.endsWith("_reply")) {
|
||||
//服务回复
|
||||
}
|
||||
return null;
|
||||
};
|
||||
|
@ -294,12 +284,12 @@ this.encode = function (service, device) {
|
|||
// payloadArray = payloadArray.concat(buffer_float32(prop_float)); //属性'prop_float'的值。
|
||||
|
||||
}else if (method == 'thing.event.property.post') { //设备上报数据返回结果,如果不需要回复,可以去除该内容
|
||||
var code = json['code'];
|
||||
payloadArray = payloadArray.concat(buffer_uint8(COMMAND_REPORT_REPLY)); //command字段
|
||||
payloadArray = payloadArray.concat(buffer_int32(parseInt(id))); // ALink JSON格式 'id'
|
||||
payloadArray = payloadArray.concat(buffer_uint8(code));
|
||||
// var code = json['code'];
|
||||
// payloadArray = payloadArray.concat(buffer_uint8(COMMAND_REPORT_REPLY)); //command字段
|
||||
// payloadArray = payloadArray.concat(buffer_int32(parseInt(id))); // ALink JSON格式 'id'
|
||||
// payloadArray = payloadArray.concat(buffer_uint8(code));
|
||||
} else { //未知命令,对于有些命令不做处理
|
||||
var code = json['code'];
|
||||
var code = "FF";
|
||||
payloadArray = payloadArray.concat(buffer_uint8(COMMAD_UNKOWN)); //command字段
|
||||
payloadArray = payloadArray.concat(buffer_int32(parseInt(id))); // ALink JSON格式 'id'
|
||||
payloadArray = payloadArray.concat(buffer_uint8(code));
|
||||
|
@ -313,7 +303,7 @@ this.encode = function (service, device) {
|
|||
payload: JSON.stringify({
|
||||
id: deviceMid,
|
||||
method: method += "property." + identifier,
|
||||
params: payloadArray
|
||||
params: ab2hex(payloadArray).toUpperCase()
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
|
@ -23,6 +23,7 @@ import io.vertx.core.net.PemKeyCertOptions;
|
|||
import io.vertx.mqtt.*;
|
||||
import io.vertx.mqtt.messages.codes.MqttSubAckReasonCode;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.codec.binary.Hex;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import java.nio.charset.Charset;
|
||||
|
@ -148,7 +149,7 @@ public class NBVerticle extends AbstractVerticle {
|
|||
// ack the subscriptions request
|
||||
endpoint.unsubscribeAcknowledge(unsubscribe.messageId());
|
||||
}).publishHandler(message -> {
|
||||
String payload = message.payload().toString(Charset.defaultCharset());
|
||||
String payload = Hex.encodeHexString(message.payload().getBytes());
|
||||
log.info("Received message:{}, with QoS {}", payload,
|
||||
message.qosLevel());
|
||||
if (StringUtils.isBlank(payload)) {
|
||||
|
|
|
@ -271,7 +271,6 @@ this.onReceive = function (head, type, payload) {
|
|||
}
|
||||
var pk = arr[2];
|
||||
var dn = arr[3];
|
||||
payload = JSON.parse(payload);
|
||||
|
||||
//子设备注册
|
||||
if (topic.endsWith('/register')) {
|
||||
|
@ -283,12 +282,12 @@ this.onReceive = function (head, type, payload) {
|
|||
{
|
||||
productKey: pk,
|
||||
deviceName: dn,
|
||||
mid: payload.id,
|
||||
// mid: payload.id,
|
||||
content: {
|
||||
topic: topic.replace("/s/", "/c/") + "_reply",
|
||||
payload: JSON.stringify({
|
||||
id: payload.id,
|
||||
method: payload.method + "_reply",
|
||||
// id: payload.id,
|
||||
method: "thing.event.property.post",
|
||||
code: 0,
|
||||
})
|
||||
}
|
||||
|
@ -308,7 +307,7 @@ this.onReceive = function (head, type, payload) {
|
|||
data: {
|
||||
productKey: pk,
|
||||
deviceName: dn,
|
||||
mid: payload.id,
|
||||
mid: "3",
|
||||
content: {
|
||||
topic: topic,
|
||||
payload: payload
|
||||
|
|
|
@ -11,8 +11,8 @@ function getMid() {
|
|||
this.decode = function (msg) {
|
||||
var content = msg.content;
|
||||
var topic = content.topic;
|
||||
var bytes = arrayGroup(content.payload.params,2);
|
||||
var byteData=content.payload.params;
|
||||
var bytes = arrayGroup(content.payload,2);
|
||||
var byteData=content.payload;
|
||||
if (topic.endsWith("/thing/model/up_raw")) {
|
||||
var data = arrayGroup(byteData, 2);
|
||||
var params = {};
|
||||
|
@ -149,16 +149,6 @@ this.decode = function (msg) {
|
|||
time: new Date().getTime(), //时间戳,消息上报时间
|
||||
data: params,
|
||||
};
|
||||
} else if (topic.indexOf("/event/") > 0) {
|
||||
//事件上报
|
||||
} else if (topic.endsWith("/service/property/set_reply")) {
|
||||
//属性设置回复
|
||||
} else if (topic.endsWith("/config/set_reply")) {
|
||||
//设备配置设置回复
|
||||
} else if (topic.endsWith("/config/get")) {
|
||||
//设备配置获取
|
||||
} else if (topic.endsWith("_reply")) {
|
||||
//服务回复
|
||||
}
|
||||
return null;
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue