Skip to content
Snippets Groups Projects
Commit 17416fa3 authored by echicken's avatar echicken :chicken:
Browse files

Build with encryption junk gone, Device.getNodeInfo and nodeDB store included.

parent 6e3c0890
No related branches found
No related tags found
No related merge requests found
...@@ -16188,6 +16188,7 @@ ...@@ -16188,6 +16188,7 @@
_this.myNodeInfo = new mesh_pb_exports.MyNodeInfo(); _this.myNodeInfo = new mesh_pb_exports.MyNodeInfo();
_this.deviceMetadata = new mesh_pb_exports.DeviceMetadata(); _this.deviceMetadata = new mesh_pb_exports.DeviceMetadata();
_this.channels = []; _this.channels = [];
_this.nodeInfo = {};
_this.ackHandlers = {}; _this.ackHandlers = {};
_this.responseHandlers = {}; _this.responseHandlers = {};
_this.purgeEvent = js.setInterval(_this.purgeHandlers, _this.timeoutMs, _this); _this.purgeEvent = js.setInterval(_this.purgeHandlers, _this.timeoutMs, _this);
...@@ -16306,12 +16307,10 @@ ...@@ -16306,12 +16307,10 @@
delete this.responseHandlers[id]; delete this.responseHandlers[id];
handled = true; handled = true;
} }
} else if (packet.payloadVariant["case"] === "encrypted") {
} }
if (!handled) { if (!handled)
this.emit("packet", packet); this.emit("packet", packet);
} }
}
}, { }, {
key: "handleFromRadio", key: "handleFromRadio",
value: function handleFromRadio(fromRadio) { value: function handleFromRadio(fromRadio) {
...@@ -16344,10 +16343,13 @@ ...@@ -16344,10 +16343,13 @@
case "logRecord": case "logRecord":
this.log(_LOG_LEVEL_MAP[fromRadio.payloadVariant.value.level], fromRadio.payloadVariant.value.message, fromRadio.payloadVariant.value.time, fromRadio.payloadVariant.value.source); this.log(_LOG_LEVEL_MAP[fromRadio.payloadVariant.value.level], fromRadio.payloadVariant.value.message, fromRadio.payloadVariant.value.time, fromRadio.payloadVariant.value.source);
break; break;
case "nodeInfo":
this.nodeInfo[fromRadio.payloadVariant.value.num] = fromRadio.payloadVariant.value;
this.emit("nodeInfo", fromRadio.payloadVariant.value);
break;
case "config": case "config":
case "moduleConfig": case "moduleConfig":
case "mqttClientProxyMessage": case "mqttClientProxyMessage":
case "nodeInfo":
case "queueStatus": case "queueStatus":
case "rebooted": case "rebooted":
case "xmodemPacket": case "xmodemPacket":
...@@ -16423,53 +16425,15 @@ ...@@ -16423,53 +16425,15 @@
var buffer = new Uint8Array([].concat(header, _toConsumableArray(data))); var buffer = new Uint8Array([].concat(header, _toConsumableArray(data)));
return this.sendToDevice(buffer); return this.sendToDevice(buffer);
} }
/**
* Assembles a [MeshPacket](https://buf.build/meshtastic/protobufs/docs/main:meshtastic#meshtastic.MeshPacket) with an encrypted payload.
* To do:
* Currently you would have to encrypt 'payload' yourself prior to calling.
* Presumably we could use channel info read upon initialization to get psk (and alg?) and encrypt 'payload' within this method
*/
}, {
key: "sendEncrypted",
value: function sendEncrypted(_ref) {
var payload = _ref.payload, _ref$to = _ref.to, to = _ref$to === void 0 ? _BROADCAST : _ref$to, _ref$channel = _ref.channel, channel = _ref$channel === void 0 ? 0 : _ref$channel, _ref$wantAck = _ref.wantAck, wantAck = _ref$wantAck === void 0 ? true : _ref$wantAck, _ref$hopLimit = _ref.hopLimit, hopLimit = _ref$hopLimit === void 0 ? 0 : _ref$hopLimit, _ref$priority = _ref.priority, priority = _ref$priority === void 0 ? mesh_pb_exports.MeshPacket_Priority.UNSET : _ref$priority, _ref$viaMqtt = _ref.viaMqtt, viaMqtt = _ref$viaMqtt === void 0 ? false : _ref$viaMqtt, ackHandler = _ref.ackHandler;
var id = getRandomId();
var meshPacket = new mesh_pb_exports.MeshPacket({
payloadVariant: {
"case": "encrypted",
value: payload
},
from: this.myNodeInfo.myNodeNum,
to: to,
id: id,
wantAck: ackHandler !== void 0 ? true : wantAck,
channel: channel,
hopLimit: hopLimit,
priority: priority,
viaMqtt: viaMqtt
});
var toRadio = new mesh_pb_exports.ToRadio({
payloadVariant: {
"case": "packet",
value: meshPacket
}
});
var ret = this.write(toRadio);
if (ret && ackHandler !== void 0) {
this.registerHandler(id, ackHandler, this.ackHandlers);
}
return ret;
}
/** Assembles a [MeshPacket](https://buf.build/meshtastic/protobufs/docs/main:meshtastic#meshtastic.MeshPacket) based on your parameters and writes it to the device. */ /** Assembles a [MeshPacket](https://buf.build/meshtastic/protobufs/docs/main:meshtastic#meshtastic.MeshPacket) based on your parameters and writes it to the device. */
}, { }, {
key: "sendPacket", key: "sendPacket",
value: function sendPacket(_ref2) { value: function sendPacket(_ref) {
var payload = _ref2.payload, portNum = _ref2.portNum, _ref2$to = _ref2.to, to = _ref2$to === void 0 ? _BROADCAST : _ref2$to, _ref2$channel = _ref2.channel, channel = _ref2$channel === void 0 ? 0 : _ref2$channel, _ref2$wantAck = _ref2.wantAck, wantAck = _ref2$wantAck === void 0 ? true : _ref2$wantAck, _ref2$wantResponse = _ref2.wantResponse, wantResponse = _ref2$wantResponse === void 0 ? false : _ref2$wantResponse, source = _ref2.source, requestId = _ref2.requestId, replyId = _ref2.replyId, emoji = _ref2.emoji, _ref2$hopLimit = _ref2.hopLimit, hopLimit = _ref2$hopLimit === void 0 ? 0 : _ref2$hopLimit, _ref2$priority = _ref2.priority, priority = _ref2$priority === void 0 ? mesh_pb_exports.MeshPacket_Priority.UNSET : _ref2$priority, _ref2$viaMqtt = _ref2.viaMqtt, viaMqtt = _ref2$viaMqtt === void 0 ? false : _ref2$viaMqtt, ackHandler = _ref2.ackHandler, responseHandler = _ref2.responseHandler; var payload = _ref.payload, portNum = _ref.portNum, _ref$to = _ref.to, to = _ref$to === void 0 ? _BROADCAST : _ref$to, _ref$channel = _ref.channel, channel = _ref$channel === void 0 ? 0 : _ref$channel, _ref$wantAck = _ref.wantAck, wantAck = _ref$wantAck === void 0 ? true : _ref$wantAck, _ref$wantResponse = _ref.wantResponse, wantResponse = _ref$wantResponse === void 0 ? false : _ref$wantResponse, source = _ref.source, requestId = _ref.requestId, replyId = _ref.replyId, emoji = _ref.emoji, _ref$hopLimit = _ref.hopLimit, hopLimit = _ref$hopLimit === void 0 ? 0 : _ref$hopLimit, _ref$priority = _ref.priority, priority = _ref$priority === void 0 ? mesh_pb_exports.MeshPacket_Priority.UNSET : _ref$priority, _ref$viaMqtt = _ref.viaMqtt, viaMqtt = _ref$viaMqtt === void 0 ? false : _ref$viaMqtt, ackHandler = _ref.ackHandler, responseHandler = _ref.responseHandler;
var id = getRandomId(); var id = getRandomId();
var meshPacket = new mesh_pb_exports.MeshPacket({ var meshPacket = new mesh_pb_exports.MeshPacket({
payloadVariant: { payloadVariant: {
"case": "decoded", "case": "decoded",
// To do: what if I want to send encrypted, eh? What then eh buddy? Eh? Eh? Fucken fix it.
value: { value: {
payload: payload, payload: payload,
portnum: portNum, portnum: portNum,
...@@ -16509,8 +16473,8 @@ ...@@ -16509,8 +16473,8 @@
/** Send a text message out into the mesh, optionally specifying a 'to' node address, channel, want-acknowledgement, and acknowledgement handler */ /** Send a text message out into the mesh, optionally specifying a 'to' node address, channel, want-acknowledgement, and acknowledgement handler */
}, { }, {
key: "sendText", key: "sendText",
value: function sendText(_ref3) { value: function sendText(_ref2) {
var text = _ref3.text, _ref3$to = _ref3.to, to = _ref3$to === void 0 ? _BROADCAST : _ref3$to, _ref3$channel = _ref3.channel, channel = _ref3$channel === void 0 ? 0 : _ref3$channel, _ref3$wantAck = _ref3.wantAck, wantAck = _ref3$wantAck === void 0 ? true : _ref3$wantAck, ackHandler = _ref3.ackHandler, replyId = _ref3.replyId, hopLimit = _ref3.hopLimit; var text = _ref2.text, _ref2$to = _ref2.to, to = _ref2$to === void 0 ? _BROADCAST : _ref2$to, _ref2$channel = _ref2.channel, channel = _ref2$channel === void 0 ? 0 : _ref2$channel, _ref2$wantAck = _ref2.wantAck, wantAck = _ref2$wantAck === void 0 ? true : _ref2$wantAck, ackHandler = _ref2.ackHandler, replyId = _ref2.replyId, hopLimit = _ref2.hopLimit;
var enc = new TextEncoder(); var enc = new TextEncoder();
var payload = enc.encode(text); var payload = enc.encode(text);
if (payload.length > _MAX_PAYLOAD) if (payload.length > _MAX_PAYLOAD)
...@@ -16790,6 +16754,14 @@ ...@@ -16790,6 +16754,14 @@
}); });
this.write(toRadio); this.write(toRadio);
} }
/** Return data about the given node number from our node DB, or undefined if we don't got none. */
}, {
key: "getNodeInfo",
value: function getNodeInfo(nodeNum) {
if (this.nodeInfo[nodeNum] !== void 0)
return this.nodeInfo[nodeNum];
return;
}
/** /**
* AdminMessage payloadVariant cases not implemented: * AdminMessage payloadVariant cases not implemented:
* *
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment