Browse Source

Improvement to deserialization and remove debug on dashboards

pull/2717/head
Andrew Shvayka 7 years ago
parent
commit
e251bc5750
  1. 4
      application/src/main/data/json/demo/rule_chains/root_rule_chain.json
  2. 4
      application/src/main/data/json/demo/rule_chains/thermostat_alarms.json
  3. 12
      common/message/src/main/java/org/thingsboard/server/common/msg/TbMsg.java

4
application/src/main/data/json/demo/rule_chains/root_rule_chain.json

@ -17,7 +17,7 @@
}, },
"type": "org.thingsboard.rule.engine.filter.TbJsFilterNode", "type": "org.thingsboard.rule.engine.filter.TbJsFilterNode",
"name": "Is Thermostat?", "name": "Is Thermostat?",
"debugMode": true, "debugMode": false,
"configuration": { "configuration": {
"jsScript": "return msg.id.entityType === \"DEVICE\" && msg.type === \"thermostat\";" "jsScript": "return msg.id.entityType === \"DEVICE\" && msg.type === \"thermostat\";"
} }
@ -113,7 +113,7 @@
}, },
"type": "org.thingsboard.rule.engine.action.TbCreateRelationNode", "type": "org.thingsboard.rule.engine.action.TbCreateRelationNode",
"name": "Relate to Asset", "name": "Relate to Asset",
"debugMode": true, "debugMode": false,
"configuration": { "configuration": {
"direction": "FROM", "direction": "FROM",
"relationType": "ToAlarmPropagationAsset", "relationType": "ToAlarmPropagationAsset",

4
application/src/main/data/json/demo/rule_chains/thermostat_alarms.json

@ -81,7 +81,7 @@
}, },
"type": "org.thingsboard.rule.engine.filter.TbJsSwitchNode", "type": "org.thingsboard.rule.engine.filter.TbJsSwitchNode",
"name": "Check Alarms", "name": "Check Alarms",
"debugMode": true, "debugMode": false,
"configuration": { "configuration": {
"jsScript": "var relations = [];\nif(metadata[\"ss_alarmTemperature\"] === \"true\"){\n if(msg.temperature > metadata[\"ss_thresholdTemperature\"]){\n relations.push(\"NewTempAlarm\");\n } else {\n relations.push(\"ClearTempAlarm\");\n }\n}\nif(metadata[\"ss_alarmHumidity\"] === \"true\"){\n if(msg.humidity < metadata[\"ss_thresholdHumidity\"]){\n relations.push(\"NewHumidityAlarm\");\n } else {\n relations.push(\"ClearHumidityAlarm\");\n }\n}\n\nreturn relations;" "jsScript": "var relations = [];\nif(metadata[\"ss_alarmTemperature\"] === \"true\"){\n if(msg.temperature > metadata[\"ss_thresholdTemperature\"]){\n relations.push(\"NewTempAlarm\");\n } else {\n relations.push(\"ClearTempAlarm\");\n }\n}\nif(metadata[\"ss_alarmHumidity\"] === \"true\"){\n if(msg.humidity < metadata[\"ss_thresholdHumidity\"]){\n relations.push(\"NewHumidityAlarm\");\n } else {\n relations.push(\"ClearHumidityAlarm\");\n }\n}\n\nreturn relations;"
} }
@ -93,7 +93,7 @@
}, },
"type": "org.thingsboard.rule.engine.metadata.TbGetAttributesNode", "type": "org.thingsboard.rule.engine.metadata.TbGetAttributesNode",
"name": "Fetch Configuration", "name": "Fetch Configuration",
"debugMode": true, "debugMode": false,
"configuration": { "configuration": {
"clientAttributeNames": [], "clientAttributeNames": [],
"sharedAttributeNames": [], "sharedAttributeNames": [],

12
common/message/src/main/java/org/thingsboard/server/common/msg/TbMsg.java

@ -27,6 +27,7 @@ import org.thingsboard.server.common.data.id.RuleNodeId;
import org.thingsboard.server.common.msg.gen.MsgProtos; import org.thingsboard.server.common.msg.gen.MsgProtos;
import org.thingsboard.server.common.msg.queue.TbMsgCallback; import org.thingsboard.server.common.msg.queue.TbMsgCallback;
import java.io.IOException;
import java.io.Serializable; import java.io.Serializable;
import java.util.UUID; import java.util.UUID;
@ -47,7 +48,7 @@ public final class TbMsg implements Serializable {
private final RuleChainId ruleChainId; private final RuleChainId ruleChainId;
private final RuleNodeId ruleNodeId; private final RuleNodeId ruleNodeId;
//This field is not serialized because we use queues and there is no need to do it //This field is not serialized because we use queues and there is no need to do it
private final TbMsgCallback callback; transient private final TbMsgCallback callback;
public static TbMsg newMsg(String type, EntityId originator, TbMsgMetaData metaData, String data) { public static TbMsg newMsg(String type, EntityId originator, TbMsgMetaData metaData, String data) {
return new TbMsg(UUID.randomUUID(), type, originator, metaData.copy(), TbMsgDataType.JSON, data, null, null, TbMsgCallback.EMPTY); return new TbMsg(UUID.randomUUID(), type, originator, metaData.copy(), TbMsgDataType.JSON, data, null, null, TbMsgCallback.EMPTY);
@ -156,4 +157,13 @@ public final class TbMsg implements Serializable {
public TbMsg copyWithRuleNodeId(RuleChainId ruleChainId, RuleNodeId ruleNodeId) { public TbMsg copyWithRuleNodeId(RuleChainId ruleChainId, RuleNodeId ruleNodeId) {
return new TbMsg(this.id, this.type, this.originator, this.metaData, this.dataType, this.data, ruleChainId, ruleNodeId, callback); return new TbMsg(this.id, this.type, this.originator, this.metaData, this.dataType, this.data, ruleChainId, ruleNodeId, callback);
} }
public TbMsgCallback getCallback() {
//May be null in case of deserialization;
if (callback != null) {
return callback;
} else {
return TbMsgCallback.EMPTY;
}
}
} }

Loading…
Cancel
Save