refactor hex id conversion to its own function
This commit is contained in:
21
src/mqtt.js
21
src/mqtt.js
@ -585,6 +585,15 @@ function decrypt(packet) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* converts hex id to numeric id, for example: !FFFFFFFF to 4294967295
|
||||||
|
* @param hexId a node id in hex format with a prepended "!"
|
||||||
|
* @returns {bigint} the node id in numeric form
|
||||||
|
*/
|
||||||
|
function convertHexIdToNumericId(hexId) {
|
||||||
|
return BigInt('0x' + hexId.replaceAll("!", ""));
|
||||||
|
}
|
||||||
|
|
||||||
// subscribe to everything when connected
|
// subscribe to everything when connected
|
||||||
client.on("connect", () => {
|
client.on("connect", () => {
|
||||||
for(const mqttTopic of mqttTopics){
|
for(const mqttTopic of mqttTopics){
|
||||||
@ -605,7 +614,7 @@ client.on("message", async (topic, message) => {
|
|||||||
const mqttConnectionState = message.toString();
|
const mqttConnectionState = message.toString();
|
||||||
|
|
||||||
// convert node id hex to int value
|
// convert node id hex to int value
|
||||||
const nodeId = BigInt('0x' + nodeIdHex.replaceAll("!", ""));
|
const nodeId = convertHexIdToNumericId(nodeIdHex);
|
||||||
|
|
||||||
// update mqtt connection state for node
|
// update mqtt connection state for node
|
||||||
await prisma.node.updateMany({
|
await prisma.node.updateMany({
|
||||||
@ -639,7 +648,7 @@ client.on("message", async (topic, message) => {
|
|||||||
data: {
|
data: {
|
||||||
mqtt_topic: topic,
|
mqtt_topic: topic,
|
||||||
channel_id: envelope.channelId,
|
channel_id: envelope.channelId,
|
||||||
gateway_id: envelope.gatewayId ? BigInt('0x' + envelope.gatewayId.replaceAll("!", "")) : null, // convert hex id "!f96a92f0" to bigint
|
gateway_id: envelope.gatewayId ? convertHexIdToNumericId(envelope.gatewayId) : null,
|
||||||
to: envelope.packet.to,
|
to: envelope.packet.to,
|
||||||
from: envelope.packet.from,
|
from: envelope.packet.from,
|
||||||
protobuf: message,
|
protobuf: message,
|
||||||
@ -692,7 +701,7 @@ client.on("message", async (topic, message) => {
|
|||||||
channel: envelope.packet.channel,
|
channel: envelope.packet.channel,
|
||||||
packet_id: envelope.packet.id,
|
packet_id: envelope.packet.id,
|
||||||
channel_id: envelope.channelId,
|
channel_id: envelope.channelId,
|
||||||
gateway_id: envelope.gatewayId ? BigInt('0x' + envelope.gatewayId.replaceAll("!", "")) : null, // convert hex id "!f96a92f0" to bigint
|
gateway_id: envelope.gatewayId ? convertHexIdToNumericId(envelope.gatewayId) : null,
|
||||||
text: envelope.packet.decoded.payload.toString(),
|
text: envelope.packet.decoded.payload.toString(),
|
||||||
rx_time: envelope.packet.rxTime,
|
rx_time: envelope.packet.rxTime,
|
||||||
rx_snr: envelope.packet.rxSnr,
|
rx_snr: envelope.packet.rxSnr,
|
||||||
@ -763,7 +772,7 @@ client.on("message", async (topic, message) => {
|
|||||||
channel: envelope.packet.channel,
|
channel: envelope.packet.channel,
|
||||||
packet_id: envelope.packet.id,
|
packet_id: envelope.packet.id,
|
||||||
channel_id: envelope.channelId,
|
channel_id: envelope.channelId,
|
||||||
gateway_id: envelope.gatewayId ? BigInt('0x' + envelope.gatewayId.replaceAll("!", "")) : null, // convert hex id "!f96a92f0" to bigint
|
gateway_id: envelope.gatewayId ? convertHexIdToNumericId(envelope.gatewayId) : null,
|
||||||
latitude: position.latitudeI,
|
latitude: position.latitudeI,
|
||||||
longitude: position.longitudeI,
|
longitude: position.longitudeI,
|
||||||
altitude: position.altitude,
|
altitude: position.altitude,
|
||||||
@ -848,7 +857,7 @@ client.on("message", async (topic, message) => {
|
|||||||
channel: envelope.packet.channel,
|
channel: envelope.packet.channel,
|
||||||
packet_id: envelope.packet.id,
|
packet_id: envelope.packet.id,
|
||||||
channel_id: envelope.channelId,
|
channel_id: envelope.channelId,
|
||||||
gateway_id: envelope.gatewayId ? BigInt('0x' + envelope.gatewayId.replaceAll("!", "")) : null, // convert hex id "!f96a92f0" to bigint
|
gateway_id: envelope.gatewayId ? convertHexIdToNumericId(envelope.gatewayId) : null,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
@ -1113,7 +1122,7 @@ client.on("message", async (topic, message) => {
|
|||||||
channel: envelope.packet.channel,
|
channel: envelope.packet.channel,
|
||||||
packet_id: envelope.packet.id,
|
packet_id: envelope.packet.id,
|
||||||
channel_id: envelope.channelId,
|
channel_id: envelope.channelId,
|
||||||
gateway_id: envelope.gatewayId ? BigInt('0x' + envelope.gatewayId.replaceAll("!", "")) : null, // convert hex id "!f96a92f0" to bigint
|
gateway_id: envelope.gatewayId ? convertHexIdToNumericId(envelope.gatewayId) : null,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
Reference in New Issue
Block a user