This commit is contained in:
@ -1,6 +1,6 @@
|
||||
import { Transform } from 'stream';
|
||||
|
||||
export class LoraStream extends Transform {
|
||||
export default class LoraStream extends Transform {
|
||||
constructor(options) {
|
||||
super(options);
|
||||
this.byteBuffer = new Uint8Array([]);
|
||||
|
@ -2,7 +2,7 @@ import { Transform } from 'stream';
|
||||
import { Mesh, Channel, Config, ModuleConfig } from '@meshtastic/protobufs';
|
||||
import { fromBinary, create } from '@bufbuild/protobuf';
|
||||
|
||||
export class MeshtasticStream extends Transform {
|
||||
export default class MeshtasticStream extends Transform {
|
||||
constructor(options) {
|
||||
super({ readableObjectMode: true, ...options });
|
||||
}
|
||||
@ -23,11 +23,9 @@ export class MeshtasticStream extends Transform {
|
||||
// can't find, come back to this
|
||||
break;
|
||||
case 'config':
|
||||
// todo: config has another payloadVariant within it
|
||||
schema = Config.ConfigSchema
|
||||
break;
|
||||
case 'moduleConfig':
|
||||
// todo: config has another payloadVariant within it
|
||||
schema = ModuleConfig.ModuleConfigSchema
|
||||
break;
|
||||
case 'fileInfo':
|
||||
@ -39,6 +37,9 @@ export class MeshtasticStream extends Transform {
|
||||
case 'metadata':
|
||||
schema = Mesh.DeviceMetadataSchema
|
||||
break;
|
||||
case 'logRecord':
|
||||
schema = Mesh.LogRecordSchema
|
||||
break;
|
||||
case 'configCompleteId':
|
||||
// done sending init data
|
||||
break;
|
||||
|
@ -1,9 +1,8 @@
|
||||
const { Mesh, Mqtt, Portnums, Telemetry, Config, Channel } = require("@meshtastic/protobufs");
|
||||
const { fromBinary, toBinary, create } = require("@bufbuild/protobuf");
|
||||
const { LoraStream } = require("./LoraStream");
|
||||
const { MeshtasticStream } = require("./MeshtasticStream");
|
||||
|
||||
const net = require('net');
|
||||
import { Mesh, Mqtt, Portnums, Telemetry, Config, Channel } from '@meshtastic/protobufs';
|
||||
import { fromBinary, toBinary, create } from '@bufbuild/protobuf';
|
||||
import { LoraStream } from './LoraStream';
|
||||
import { MeshtasticStream } from './MeshtasticStream';
|
||||
import net from 'net';
|
||||
|
||||
const client = new net.Socket();
|
||||
const IP = '192.168.10.117';
|
||||
@ -12,7 +11,7 @@ const PORT = 4403;
|
||||
function sendHello() {
|
||||
const data = create(Mesh.ToRadioSchema, {
|
||||
payloadVariant: {
|
||||
case: "wantConfigId",
|
||||
case: 'wantConfigId',
|
||||
value: 1,
|
||||
}
|
||||
});
|
||||
@ -95,9 +94,14 @@ function onMeshPacket(envelope) {
|
||||
break;
|
||||
}
|
||||
|
||||
let decodedData = dataPacket.payload;
|
||||
if (schema !== null) {
|
||||
console.log(dataPacket);
|
||||
const decodedData = fromBinary(schema, dataPacket.payload);
|
||||
try {
|
||||
decodedData = fromBinary(schema, decodedData);
|
||||
console.log(decodedData);
|
||||
} catch(e) {
|
||||
// ignore errors, likely incomplete data
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
@ -5,6 +5,7 @@
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"description": "",
|
||||
"type": "module",
|
||||
"dependencies": {
|
||||
"@bufbuild/protobuf": "^2.2.5",
|
||||
"@meshtastic/protobufs": "npm:@jsr/meshtastic__protobufs@^2.6.2",
|
||||
|
Reference in New Issue
Block a user