@sota/meshtastic / Exports
Meshtastic
A library for communicating with socket & serial Meshtastic devices from Synchronet JavaScript modules.
You can use this package in a TS4S project, or use the JS build directly in a Synchronet JavaScript module.
To do: TS4S is only available to internal users and a deploy token is required, so the example doesn't work. Make all of SWAG public and remove deploy tokens from various package.json files.
TypeScript Example
npm install git+https://gitlab.synchro.net/swag/ts4s.git
npm install git+https://gitlab.synchro.net/sota/meshtastic.git
import '@swag/ts4s';
import { SocketDevice, protobuf } from '@sota/meshtastic';
const dev = new SocketDevice('192.168.2.57', 4403, true);
dev.on('log', (level: number, message: string, time: number, source: string): void => {
js.global.log(level, message);
});
dev.on('packet', (packet: protobuf.Mesh.MeshPacket) => {
js.global.writeln(`PACKET EVENT HANDLER ${JSON.stringify(packet)}`);
});
dev.on('ready', () => {
const res = dev.sendText({ text: 'Message from Synchronet BBS' });
js.global.writeln(`sendText result: ${res}`);
dev.getChannel(0, (packet: protobuf.Mesh.MeshPacket) => {
js.global.writeln(`GET CHANNEL RESPONSE: ${JSON.stringify(packet)}`);
});
});
dev.connect();
js.do_callbacks = true;
JavaScript Example
var Meshtastic = load({}, 'meshtastic.js'); // Probably in your mods directory, I dunno
var dev = new Meshtastic.SocketDevice('192.168.2.57', 4403, true);
dev.on('log', function (level, message, time, source) {
log(level, message);
});
dev.on('packet', function (packet) {
writeln('PACKET EVENT HANDLER: ' + JSON.stringify(packet));
});
dev.on('ready', function () {
var res = dev.sendText({ text: 'Message from Synchronet BBS' });
writeln('sendText result: ' + res);
dev.getChannel(0, function (packet) {
js.global.writeln('GET CHANNEL RESPONSE: ' + JSON.stringify(packet));
});
});
dev.connect();
js.do_callbacks = true;
Device Events
- log
- This library doesn't do any logging itself, but
Device
emits alog
event that you can listen for -
myDevice.on('log', (level: number, msg: string, time?: number, source?: string): void => { ... });
-
level
corresponds to a Synchronet log level a lasbbsdefs.js
, eg.LOG_DEBUG
-
time
andsource
are populated if this event was triggered by receipt of a LogRecord message
-
- This library doesn't do any logging itself, but
- ready
- Emitted when a connection to the device has been established and initialization (receipt of correct
configCompleteId
message) has completed myDevice.on('ready', () => { /* Maybe call your main function here? */ });
- The
Device
myNodeInfo
,deviceMetadata
, andchannels
properties are unpopulated until this event is emitted
- Emitted when a connection to the device has been established and initialization (receipt of correct
- channel
- Emitted when a Channel message is received
myDevice.on('channel', (channel: Channel) => { ... });
- deviceMetadata
- Emitted when a DeviceMetadata message is received
myDevice.on('deviceMetadata', (metaData: DeviceMetadata) => { ... });
- myNodeInfo
- Emitted when a MyNodeInfo message is received
myDevice.on('myNodeInfo', (info: MyNodeInfo) => { ... });
- packet
- Emitted when a MeshPacket is received
myDevice.on('packet', (packet: MeshPacket) => { ... });
- config
- Emitted when a Config message is received
myDevice.on('config', (config: Config) => { ... });
- moduleConfig
- Emitted when a ModuleConfig message is received
myDevice.on('moduleConfig', (moduleConfig: ModuleConfig) => { ... });
- mqttClientProxyMessage
- Emitted when an MqttClientProxyMessage is received
myDevice.on('mqttClientProxyMessage', (msg: MqttClientProxyMessage) => { ... });
- nodeInfo
- Emitted when a NodeInfo message is received
myDevice.on('nodeInfo', (nodeInfo: NodeInfo) => { ... });
- queueStatus
- Emitted when a QueueStatus message is received
myDevice.on('queueStatus', (queueStatus: QueueStatus) => { ... });
- rebooted
- Emitted when a FromRadio message is received with the payload variant
rebooted
set to true myDevice.on('rebooted', () => { ... });
- You'll only ever see this one on serial devices
- Emitted when a FromRadio message is received with the payload variant
- xmodemPacket
- Emitted when an XModem message is received
myDevice.on('xmodemPacket', () => { ... });
- fromRadio
Usage notes
This library is meant to be used in event driven mode, and uses the callback pattern - which is rather oldschool at this point but is a good fit here. Unsolicted packets may arrive at any time and ack
/response
messages may arrive out of order or interspersed with unsolicted messages. (I couldn't immediately get Promises working and didn't pursue it very far, but I may take another crack at it someday.)
The last line of your script, after all synchronous tasks are done and all callbacks have been registered, should be:
js.do_callbacks = true;
This leaves the Synchronet JavaScript runtime open and ready to handle timers and events. Events and timers will not be serviced until your script (effectively) exits, so this will block any packets from being handled:
device.on('packet', (packet: MeshPacket) => { js.global.writeln(`CALLBACK: ${JSON.stringify(packet)}`); });
while (true) {
mswait(5);
}
js.do_callbacks = true;
while this is fine, allowing that packets won't be handled until the while
loop ends after five seconds:
device.on('packet', (packet: MeshPacket) => { js.global.writeln(`CALLBACK: ${JSON.stringify(packet)}`); });
let n = 0;
while (n < 5000) {
n++;
mswait(1);
}
js.do_callbacks = true;
(You can put js.do_callbacks = true;
anywhere, but I prefer it at the end of the script as a matter of form.)
Handlers vs. Callbacks
Serveral *Device
methods accept a responseHandler
parameter, which is a packetHandler
function that accepts a single MeshPacket
as a parameter. The responseHandler
is typically optional, but if supplied it will be called when a packet is received in response to this message.
The sendPacket
and sendText
methods accept a responseHandler
as well as an ackHandler
function as part of their parameters. (Both of these are of type packetHandler
.) Supplying these implicitly sets wantResponse
and wantAck
to true
, respectively. (Setting wantResponse
and wantAck
to true
but omitting the handlers is also possible.)
Handlers override callbacks. If a handler has been supplied to any of these methods, the handler will be called when an ack
or response
has been received, and the callback for that type of message will not be called. However, if there are both an ackHandler
and a responseHandler
, both of those will be called. So if you do this:
device.on('packet', (packet: MeshPacket) => { js.global.writeln(`CALLBACK: ${JSON.stringify(packet)}`); });
device.sendText({ text: 'here is some text', ackHandler: (packet: MeshPacket) => { js.global.writeln(`HANDLER: ${JSON.stringify(packet)}`); } });
The callback will not be invoked when/if the ack
message is received, but the response handler will be. (The callback will still be invoked when any other mesh packets come in not in response to your sendText.)
Protocol Buffer Definitions
You'll see several types such as FromRadio
, MeshPacket
, AdminMessage
and more mentioned throughout this document. These all come from the Meshtastic Protobuf Definitions via a Generated SDK from the Buf Schema Registry.
These protocol buffer type definitions are re-exported by this package as protobuf
. See src/index.ts and src/lib/protobuf.ts.
(Of course, none of this matters at all if your project is written in circa-2011 JS.)
Use at your own risk
I only started messing around with Meshtastic last week (as of time of this writing on April 21, 2024). I've pieced together my understanding of it from their docs, their code, other people's projects, and online discussions. So what do I know. There's a chance this library or your script may go apeshit and burn out your radio or cause massive inconvenience to other mesh users. So proceed with a little bit of caution (but not too much; have fun).
SerialDevice
is thus far completely untested. I think it'll work, but I won't know until I try, and I don't have any use for it at the moment.
Most of the methods on Device
have not been tested. They should work fine, but I haven't yet felt the need to configure a device from Synchronet, or to factory-reset one, etc.
Classes
@sota/meshtastic / Exports / Device
Class: Device
Hierarchy
-
EventEmitter
↳
Device
↳↳
SocketDevice
↳↳
SerialDevice
Table of contents
Constructors
Properties
Methods
- addListener
- beginEditSettings
- cancelReboot
- cancelShutdown
- commitEditSettings
- connect
- cycle
- disconnect
- emit
- eventNames
- factoryReset
- getChannel
- getConfig
- getMetadata
- getModuleConfig
- getNodeInfo
- getOwner
- listenerCount
- listeners
- off
- on
- once
- rawListeners
- read
- reboot
- removeAllListeners
- removeFixedPosition
- removeListener
- resetNodes
- sendAdminMessage
- sendHeartbeat
- sendPacket
- sendText
- setChannel
- setConfig
- setFixedPosition
- setHamMode
- setModuleConfig
- setOwner
- setPosition
- shutdown
- write
Constructors
constructor
• new Device(debug?
, configId?
, heartbeatInterval?
, writeDelay?
): Device
Create a Device
Parameters
Name | Type | Default value | Description |
---|---|---|---|
debug |
boolean |
false |
Enable debug logging (all sent and received frames, etc. - noisy) |
configId? |
number |
undefined |
is a local identifier that appears in log messages but does not go out over the air |
heartbeatInterval |
number |
30 |
is the time (in seconds) between heartbeat (keepalive) messages to the device |
writeDelay |
number |
2000 |
is the time (in milliseconds) between writes of frames to the device |
Returns
Remarks
Notes on writeDelay:
I don't like writeDelay
, but I found that if I sent multiple frames in quick succession
some might be dropped silently despite there being room in the device's queue, and even
when they didn't get dropped they were sometimes sent over the air out of sequence.
It's not clear whether every frame sent to the device elicits a response to the client, so we can't necessarily wait for confirmation. (A MeshPacket seems to receive a QueueStatus in response, but what about other ToRadio frames? And are these sent immediately? To do.)
For now we'll wait a default 2000 ms between frames when writing.
2000
was arrived at by trial-and-error. This might be a problem with my device (Heltec v3),
so you can try reducing this value and see what happens with your hardware.
Overrides
js.global.EventEmitter.constructor
Defined in
src/lib/device.ts:112
Properties
channels
• channels: Channel
[]
A list of Channels configured on the device
Defined in
src/lib/device.ts:72
configId
• configId: number
A local identifier that appears in log messages but does not go out over the air
Defined in
src/lib/device.ts:66
debug
• debug: boolean
Param
Enable debug logging (all sent and received frames, etc. - noisy)
Defined in
src/lib/device.ts:64
deviceMetadata
• deviceMetadata: DeviceMetadata
The DeviceMetadata reported during initialization
Defined in
src/lib/device.ts:70
deviceTag
• Abstract
deviceTag: string
Device type and connection details for log messages
Defined in
src/lib/device.ts:136
myNodeInfo
• myNodeInfo: MyNodeInfo
The MyNodeInfo reported during initialization
Defined in
src/lib/device.ts:68
ready
• ready: boolean
Becomes true
once initialization has completed (configCompleteId received)
Defined in
src/lib/device.ts:74
Methods
addListener
▸ addListener(event
, callback
, once
): number
Parameters
Name | Type |
---|---|
event |
string |
callback |
eeCallback |
once |
boolean |
Returns
number
Inherited from
js.global.EventEmitter.addListener
Defined in
node_modules/@swag/ts4s/defs/global.ts:1892
beginEditSettings
▸ beginEditSettings(): void
Many configuration changes will trigger a reboot of the device.
If you're making several changes at once, call beginEditSettings
beforehand, and commitEditSettings
afterward.
This will forestall the reboot until you're ready to bulk-commit your changes.
Returns
void
Defined in
src/lib/device.ts:468
cancelReboot
▸ cancelReboot(): void
Returns
void
Defined in
src/lib/device.ts:618
cancelShutdown
▸ cancelShutdown(): void
Returns
void
Defined in
src/lib/device.ts:604
commitEditSettings
▸ commitEditSettings(): void
The companion method to beginEditSettings
. Call this when you're ready to commit changes and reboot.
Returns
void
Defined in
src/lib/device.ts:479
connect
▸ connect(timeout?
): boolean
Parameters
Name | Type |
---|---|
timeout? |
number |
Returns
boolean
Defined in
src/lib/device.ts:137
cycle
▸ cycle(): void
If your program runs in its own loop, eg. while (!js.terminated) { ... }
then you must call this method periodically to fetch data from the device
and perform maintenance.
Returns
void
Defined in
src/lib/device.ts:194
disconnect
▸ disconnect(): boolean
Returns
boolean
Defined in
src/lib/device.ts:138
emit
▸ emit(event
, ...params
): void
Parameters
Name | Type |
---|---|
event |
string |
...params |
any [] |
Returns
void
Inherited from
js.global.EventEmitter.emit
Defined in
node_modules/@swag/ts4s/defs/global.ts:1898
eventNames
▸ eventNames(): string
[]
Returns
string
[]
Inherited from
js.global.EventEmitter.eventNames
Defined in
node_modules/@swag/ts4s/defs/global.ts:1899
factoryReset
▸ factoryReset(): void
Danger Bay I've included this method here because it may be useful to provide a bootstrapping setup script for Synchronet+Meshtastic projects. Maybe we want to ensure factory defaults before applying common settings to any Synchronet-connected node. I dunno. Just brainstorming here. No wrong answers except ones that fuck up someone's radio, and I hereby indemnify myself from any and all liability in those situations E&OE.
Returns
void
Defined in
src/lib/device.ts:663
getChannel
▸ getChannel(index
, responseHandler
): void
Parameters
Name | Type |
---|---|
index |
number |
responseHandler |
packetHandler |
Returns
void
Defined in
src/lib/device.ts:534
getConfig
▸ getConfig(configType
, responseHandler
): void
Parameters
Name | Type |
---|---|
configType |
AdminMessage_ConfigType |
responseHandler |
packetHandler |
Returns
void
Defined in
src/lib/device.ts:544
getMetadata
▸ getMetadata(nodeNum
, responseHandler
): void
Parameters
Name | Type |
---|---|
nodeNum |
number |
responseHandler |
packetHandler |
Returns
void
Defined in
src/lib/device.ts:574
getModuleConfig
▸ getModuleConfig(moduleConfigType
, responseHandler
): void
Parameters
Name | Type |
---|---|
moduleConfigType |
AdminMessage_ModuleConfigType |
responseHandler |
packetHandler |
Returns
void
Defined in
src/lib/device.ts:554
getNodeInfo
▸ getNodeInfo(nodeNum
): undefined
| NodeInfo
Return data about the given node number from our node DB, or undefined if we don't got none.
I'm making this a method instead of just making this.nodeInfo public on purpose. At the moment, the node DB is held in memory. We might want to put it on disk or elsewhere later. This way, we can make that change without breaking stuff.
Parameters
Name | Type |
---|---|
nodeNum |
number |
Returns
undefined
| NodeInfo
Defined in
src/lib/device.ts:692
getOwner
▸ getOwner(responseHandler
): void
Parameters
Name | Type |
---|---|
responseHandler |
packetHandler |
Returns
void
Defined in
src/lib/device.ts:564
listenerCount
▸ listenerCount(event
): number
Parameters
Name | Type |
---|---|
event |
string |
Returns
number
Inherited from
js.global.EventEmitter.listenerCount
Defined in
node_modules/@swag/ts4s/defs/global.ts:1900
listeners
▸ listeners(event
): eeCallback
[]
Parameters
Name | Type |
---|---|
event |
string |
Returns
eeCallback
[]
Inherited from
js.global.EventEmitter.listeners
Defined in
node_modules/@swag/ts4s/defs/global.ts:1901
off
▸ off(event
, id
): boolean
Parameters
Name | Type |
---|---|
event |
string |
id |
number |
Returns
boolean
Inherited from
js.global.EventEmitter.off
Defined in
node_modules/@swag/ts4s/defs/global.ts:1896
on
▸ on(event
, callback
): number
Parameters
Name | Type |
---|---|
event |
string |
callback |
eeCallback |
Returns
number
Inherited from
js.global.EventEmitter.on
Defined in
node_modules/@swag/ts4s/defs/global.ts:1893
once
▸ once(event
, callback
): number
Parameters
Name | Type |
---|---|
event |
string |
callback |
eeCallback |
Returns
number
Inherited from
js.global.EventEmitter.once
Defined in
node_modules/@swag/ts4s/defs/global.ts:1894
rawListeners
▸ rawListeners(event
): eeCallback
[]
Parameters
Name | Type |
---|---|
event |
string |
Returns
eeCallback
[]
Inherited from
js.global.EventEmitter.rawListeners
Defined in
node_modules/@swag/ts4s/defs/global.ts:1902
read
▸ read(timeout?
): void
Read any waiting data from the device and handle any FromRadio messages received. Any associated event listeners (callbacks), ack or response handlers will be called when these messages are processed.
Parameters
Name | Type | Default value |
---|---|---|
timeout |
number |
0 |
Returns
void
Defined in
src/lib/device.ts:332
reboot
▸ reboot(seconds
): void
Parameters
Name | Type |
---|---|
seconds |
number |
Returns
void
Defined in
src/lib/device.ts:608
removeAllListeners
▸ removeAllListeners(event
): boolean
Parameters
Name | Type |
---|---|
event |
string |
Returns
boolean
Inherited from
js.global.EventEmitter.removeAllListeners
Defined in
node_modules/@swag/ts4s/defs/global.ts:1897
removeFixedPosition
▸ removeFixedPosition(): void
Returns
void
Defined in
src/lib/device.ts:648
removeListener
▸ removeListener(event
, id
): boolean
Parameters
Name | Type |
---|---|
event |
string |
id |
number |
Returns
boolean
Inherited from
js.global.EventEmitter.removeListener
Defined in
node_modules/@swag/ts4s/defs/global.ts:1895
resetNodes
▸ resetNodes(): void
Returns
void
Defined in
src/lib/device.ts:584
sendAdminMessage
▸ sendAdminMessage(adminMessage
, responseHandler?
, to?
): void
Send an AdminMessage to the device
Parameters
Name | Type | Description |
---|---|---|
adminMessage |
AdminMessage |
- |
responseHandler? |
packetHandler |
will be called with an AdminMessage parameter (You probably don't need to call this directly since there are convenience methods for most AdminMessages below.) |
to |
number |
- |
Returns
void
Defined in
src/lib/device.ts:453
sendHeartbeat
▸ sendHeartbeat(): void
You probably don't need to call this directly. It's only really needed for SerialDevice, and is handled there for you even in synchronous scripts.
Returns
void
Defined in
src/lib/device.ts:674
sendPacket
▸ sendPacket(«destructured»
): void
Assembles a MeshPacket based on your parameters and writes it to the device.
Parameters
Name | Type |
---|---|
«destructured» |
IMeshPacketParams |
Returns
void
Defined in
src/lib/device.ts:372
sendText
▸ sendText(«destructured»
): void
Send a text message out into the mesh, optionally specifying a 'to' node address, channel, want-acknowledgement, and acknowledgement handler
Parameters
Name | Type |
---|---|
«destructured» |
ITextMessageParams |
Returns
void
Defined in
src/lib/device.ts:428
setChannel
▸ setChannel(channel
): void
Parameters
Name | Type |
---|---|
channel |
Channel |
Returns
void
Defined in
src/lib/device.ts:519
setConfig
▸ setConfig(config
): void
Parameters
Name | Type |
---|---|
config |
Config |
Returns
void
Defined in
src/lib/device.ts:489
setFixedPosition
▸ setFixedPosition(position
): void
Parameters
Name | Type |
---|---|
position |
Position |
Returns
void
Defined in
src/lib/device.ts:638
setHamMode
▸ setHamMode(callSign
, txPower
, frequency
, shortName?
): void
Parameters
Name | Type |
---|---|
callSign |
string |
txPower |
number |
frequency |
number |
shortName? |
string |
Returns
void
Defined in
src/lib/device.ts:622
setModuleConfig
▸ setModuleConfig(moduleConfig
): void
Parameters
Name | Type |
---|---|
moduleConfig |
ModuleConfig |
Returns
void
Defined in
src/lib/device.ts:499
setOwner
▸ setOwner(owner
): void
Parameters
Name | Type |
---|---|
owner |
User |
Returns
void
Defined in
src/lib/device.ts:509
setPosition
▸ setPosition(position
): void
Parameters
Name | Type |
---|---|
position |
Position |
Returns
void
Defined in
src/lib/device.ts:529
shutdown
▸ shutdown(seconds
): void
Parameters
Name | Type |
---|---|
seconds |
number |
Returns
void
Defined in
src/lib/device.ts:594
write
▸ write(packet
): void
Write a ToRadio message to the device
Parameters
Name | Type |
---|---|
packet |
ToRadio |
Returns
void
Defined in
src/lib/device.ts:359
@sota/meshtastic / Exports / SerialDevice
Class: SerialDevice
Hierarchy
-
↳
SerialDevice
Table of contents
Constructors
Properties
Methods
- addListener
- beginEditSettings
- cancelReboot
- cancelShutdown
- commitEditSettings
- connect
- cycle
- disconnect
- emit
- eventNames
- factoryReset
- getChannel
- getConfig
- getMetadata
- getModuleConfig
- getNodeInfo
- getOwner
- listenerCount
- listeners
- off
- on
- once
- rawListeners
- read
- reboot
- removeAllListeners
- removeFixedPosition
- removeListener
- resetNodes
- sendAdminMessage
- sendHeartbeat
- sendPacket
- sendText
- setChannel
- setConfig
- setFixedPosition
- setHamMode
- setModuleConfig
- setOwner
- setPosition
- shutdown
- write
Constructors
constructor
• new SerialDevice(port
, baud
, pollInterval?
, debug?
, configId?
): SerialDevice
Create a SerialDevice
Parameters
Name | Type | Default value | Description |
---|---|---|---|
port |
string |
undefined |
The serial device path/name, eg. '/dev/ttyACM0', 'COM4' |
baud |
number |
undefined |
The baud rate for the serial connection, eg. 115200, 921600 |
pollInterval |
number |
10 |
How often to check for incoming data from the device (in seconds) |
debug |
boolean |
false |
Enable debug logging (all sent and received frames, etc. - noisy) |
configId? |
number |
undefined |
Local identifier that appears in log messages but does not go out over the air |
Returns
Overrides
Defined in
src/lib/serial-device.ts:22
Properties
channels
• channels: Channel
[]
A list of Channels configured on the device
Inherited from
Defined in
src/lib/device.ts:72
configId
• configId: number
A local identifier that appears in log messages but does not go out over the air
Inherited from
Defined in
src/lib/device.ts:66
debug
• debug: boolean
Param
Enable debug logging (all sent and received frames, etc. - noisy)
Inherited from
Defined in
src/lib/device.ts:64
deviceMetadata
• deviceMetadata: DeviceMetadata
The DeviceMetadata reported during initialization
Inherited from
Defined in
src/lib/device.ts:70
deviceTag
• deviceTag: string
Device type and connection details for log messages
Overrides
Defined in
src/lib/serial-device.ts:7
handle
• handle: COM
A Synchronet JavaScript COM Class instance
Defined in
src/lib/serial-device.ts:9
myNodeInfo
• myNodeInfo: MyNodeInfo
The MyNodeInfo reported during initialization
Inherited from
Defined in
src/lib/device.ts:68
ready
• ready: boolean
Becomes true
once initialization has completed (configCompleteId received)
Inherited from
Defined in
src/lib/device.ts:74
Methods
addListener
▸ addListener(event
, callback
, once
): number
Parameters
Name | Type |
---|---|
event |
string |
callback |
eeCallback |
once |
boolean |
Returns
number
Inherited from
Defined in
node_modules/@swag/ts4s/defs/global.ts:1892
beginEditSettings
▸ beginEditSettings(): void
Many configuration changes will trigger a reboot of the device.
If you're making several changes at once, call beginEditSettings
beforehand, and commitEditSettings
afterward.
This will forestall the reboot until you're ready to bulk-commit your changes.
Returns
void
Inherited from
Defined in
src/lib/device.ts:468
cancelReboot
▸ cancelReboot(): void
Returns
void
Inherited from
Defined in
src/lib/device.ts:618
cancelShutdown
▸ cancelShutdown(): void
Returns
void
Inherited from
Defined in
src/lib/device.ts:604
commitEditSettings
▸ commitEditSettings(): void
The companion method to beginEditSettings
. Call this when you're ready to commit changes and reboot.
Returns
void
Inherited from
Defined in
src/lib/device.ts:479
connect
▸ connect(timeout?
): boolean
Connect to the device and initialize
Parameters
Name | Type | Default value | Description |
---|---|---|---|
timeout |
number |
CONNECT_TIMEOUT |
How many seconds to wait for initialization (wantConfigId/completeConfigId) to complete. |
Returns
boolean
Overrides
Defined in
src/lib/serial-device.ts:34
cycle
▸ cycle(): void
If your program runs in its own loop, eg. while (!js.terminated) { ... }
then you must call this method periodically to fetch data from the device
and perform maintenance.
Returns
void
Inherited from
Defined in
src/lib/device.ts:194
disconnect
▸ disconnect(): boolean
Close the connection and cancel any timed events.
Returns
boolean
Overrides
Defined in
src/lib/serial-device.ts:44
emit
▸ emit(event
, ...params
): void
Parameters
Name | Type |
---|---|
event |
string |
...params |
any [] |
Returns
void
Inherited from
Defined in
node_modules/@swag/ts4s/defs/global.ts:1898
eventNames
▸ eventNames(): string
[]
Returns
string
[]
Inherited from
Defined in
node_modules/@swag/ts4s/defs/global.ts:1899
factoryReset
▸ factoryReset(): void
Danger Bay I've included this method here because it may be useful to provide a bootstrapping setup script for Synchronet+Meshtastic projects. Maybe we want to ensure factory defaults before applying common settings to any Synchronet-connected node. I dunno. Just brainstorming here. No wrong answers except ones that fuck up someone's radio, and I hereby indemnify myself from any and all liability in those situations E&OE.
Returns
void
Inherited from
Defined in
src/lib/device.ts:663
getChannel
▸ getChannel(index
, responseHandler
): void
Parameters
Name | Type |
---|---|
index |
number |
responseHandler |
packetHandler |
Returns
void
Inherited from
Defined in
src/lib/device.ts:534
getConfig
▸ getConfig(configType
, responseHandler
): void
Parameters
Name | Type |
---|---|
configType |
AdminMessage_ConfigType |
responseHandler |
packetHandler |
Returns
void
Inherited from
Defined in
src/lib/device.ts:544
getMetadata
▸ getMetadata(nodeNum
, responseHandler
): void
Parameters
Name | Type |
---|---|
nodeNum |
number |
responseHandler |
packetHandler |
Returns
void
Inherited from
Defined in
src/lib/device.ts:574
getModuleConfig
▸ getModuleConfig(moduleConfigType
, responseHandler
): void
Parameters
Name | Type |
---|---|
moduleConfigType |
AdminMessage_ModuleConfigType |
responseHandler |
packetHandler |
Returns
void
Inherited from
Defined in
src/lib/device.ts:554
getNodeInfo
▸ getNodeInfo(nodeNum
): undefined
| NodeInfo
Return data about the given node number from our node DB, or undefined if we don't got none.
I'm making this a method instead of just making this.nodeInfo public on purpose. At the moment, the node DB is held in memory. We might want to put it on disk or elsewhere later. This way, we can make that change without breaking stuff.
Parameters
Name | Type |
---|---|
nodeNum |
number |
Returns
undefined
| NodeInfo
Inherited from
Defined in
src/lib/device.ts:692
getOwner
▸ getOwner(responseHandler
): void
Parameters
Name | Type |
---|---|
responseHandler |
packetHandler |
Returns
void
Inherited from
Defined in
src/lib/device.ts:564
listenerCount
▸ listenerCount(event
): number
Parameters
Name | Type |
---|---|
event |
string |
Returns
number
Inherited from
Defined in
node_modules/@swag/ts4s/defs/global.ts:1900
listeners
▸ listeners(event
): eeCallback
[]
Parameters
Name | Type |
---|---|
event |
string |
Returns
eeCallback
[]
Inherited from
Defined in
node_modules/@swag/ts4s/defs/global.ts:1901
off
▸ off(event
, id
): boolean
Parameters
Name | Type |
---|---|
event |
string |
id |
number |
Returns
boolean
Inherited from
Defined in
node_modules/@swag/ts4s/defs/global.ts:1896
on
▸ on(event
, callback
): number
Parameters
Name | Type |
---|---|
event |
string |
callback |
eeCallback |
Returns
number
Inherited from
Defined in
node_modules/@swag/ts4s/defs/global.ts:1893
once
▸ once(event
, callback
): number
Parameters
Name | Type |
---|---|
event |
string |
callback |
eeCallback |
Returns
number
Inherited from
Defined in
node_modules/@swag/ts4s/defs/global.ts:1894
rawListeners
▸ rawListeners(event
): eeCallback
[]
Parameters
Name | Type |
---|---|
event |
string |
Returns
eeCallback
[]
Inherited from
Defined in
node_modules/@swag/ts4s/defs/global.ts:1902
read
▸ read(timeout?
): void
Read any waiting data from the device and handle any FromRadio messages received. Any associated event listeners (callbacks), ack or response handlers will be called when these messages are processed.
Parameters
Name | Type | Default value |
---|---|---|
timeout |
number |
0 |
Returns
void
Inherited from
Defined in
src/lib/device.ts:332
reboot
▸ reboot(seconds
): void
Parameters
Name | Type |
---|---|
seconds |
number |
Returns
void
Inherited from
Defined in
src/lib/device.ts:608
removeAllListeners
▸ removeAllListeners(event
): boolean
Parameters
Name | Type |
---|---|
event |
string |
Returns
boolean
Inherited from
Defined in
node_modules/@swag/ts4s/defs/global.ts:1897
removeFixedPosition
▸ removeFixedPosition(): void
Returns
void
Inherited from
Defined in
src/lib/device.ts:648
removeListener
▸ removeListener(event
, id
): boolean
Parameters
Name | Type |
---|---|
event |
string |
id |
number |
Returns
boolean
Inherited from
Defined in
node_modules/@swag/ts4s/defs/global.ts:1895
resetNodes
▸ resetNodes(): void
Returns
void
Inherited from
Defined in
src/lib/device.ts:584
sendAdminMessage
▸ sendAdminMessage(adminMessage
, responseHandler?
, to?
): void
Send an AdminMessage to the device
Parameters
Name | Type | Description |
---|---|---|
adminMessage |
AdminMessage |
- |
responseHandler? |
packetHandler |
will be called with an AdminMessage parameter (You probably don't need to call this directly since there are convenience methods for most AdminMessages below.) |
to |
number |
- |
Returns
void
Inherited from
Defined in
src/lib/device.ts:453
sendHeartbeat
▸ sendHeartbeat(): void
You probably don't need to call this directly. It's only really needed for SerialDevice, and is handled there for you even in synchronous scripts.
Returns
void
Inherited from
Defined in
src/lib/device.ts:674
sendPacket
▸ sendPacket(«destructured»
): void
Assembles a MeshPacket based on your parameters and writes it to the device.
Parameters
Name | Type |
---|---|
«destructured» |
IMeshPacketParams |
Returns
void
Inherited from
Defined in
src/lib/device.ts:372
sendText
▸ sendText(«destructured»
): void
Send a text message out into the mesh, optionally specifying a 'to' node address, channel, want-acknowledgement, and acknowledgement handler
Parameters
Name | Type |
---|---|
«destructured» |
ITextMessageParams |
Returns
void
Inherited from
Defined in
src/lib/device.ts:428
setChannel
▸ setChannel(channel
): void
Parameters
Name | Type |
---|---|
channel |
Channel |
Returns
void
Inherited from
Defined in
src/lib/device.ts:519
setConfig
▸ setConfig(config
): void
Parameters
Name | Type |
---|---|
config |
Config |
Returns
void
Inherited from
Defined in
src/lib/device.ts:489
setFixedPosition
▸ setFixedPosition(position
): void
Parameters
Name | Type |
---|---|
position |
Position |
Returns
void
Inherited from
Defined in
src/lib/device.ts:638
setHamMode
▸ setHamMode(callSign
, txPower
, frequency
, shortName?
): void
Parameters
Name | Type |
---|---|
callSign |
string |
txPower |
number |
frequency |
number |
shortName? |
string |
Returns
void
Inherited from
Defined in
src/lib/device.ts:622
setModuleConfig
▸ setModuleConfig(moduleConfig
): void
Parameters
Name | Type |
---|---|
moduleConfig |
ModuleConfig |
Returns
void
Inherited from
Defined in
src/lib/device.ts:499
setOwner
▸ setOwner(owner
): void
Parameters
Name | Type |
---|---|
owner |
User |
Returns
void
Inherited from
Defined in
src/lib/device.ts:509
setPosition
▸ setPosition(position
): void
Parameters
Name | Type |
---|---|
position |
Position |
Returns
void
Inherited from
Defined in
src/lib/device.ts:529
shutdown
▸ shutdown(seconds
): void
Parameters
Name | Type |
---|---|
seconds |
number |
Returns
void
Inherited from
Defined in
src/lib/device.ts:594
write
▸ write(packet
): void
Write a ToRadio message to the device
Parameters
Name | Type |
---|---|
packet |
ToRadio |
Returns
void
Inherited from
Defined in
src/lib/device.ts:359
@sota/meshtastic / Exports / SocketDevice
Class: SocketDevice
Hierarchy
-
↳
SocketDevice
Table of contents
Constructors
Properties
Methods
- addListener
- beginEditSettings
- cancelReboot
- cancelShutdown
- commitEditSettings
- connect
- cycle
- disconnect
- emit
- eventNames
- factoryReset
- getChannel
- getConfig
- getMetadata
- getModuleConfig
- getNodeInfo
- getOwner
- listenerCount
- listeners
- off
- on
- once
- rawListeners
- read
- reboot
- removeAllListeners
- removeFixedPosition
- removeListener
- resetNodes
- sendAdminMessage
- sendHeartbeat
- sendPacket
- sendText
- setChannel
- setConfig
- setFixedPosition
- setHamMode
- setModuleConfig
- setOwner
- setPosition
- shutdown
- write
Constructors
constructor
• new SocketDevice(host
, port?
, debug?
, configId?
): SocketDevice
Create a SocketDevice
Parameters
Name | Type | Default value | Description |
---|---|---|---|
host |
string |
undefined |
The device hostname or IP address |
port |
number |
4403 |
The TCP port to connect to (default: 4403) |
debug |
boolean |
false |
Enable debug logging (all sent and received frames, etc. - noisy) |
configId? |
number |
undefined |
Local identifier that appears in log messages but does not go out over the air |
Returns
Overrides
Defined in
src/lib/socket-device.ts:24
Properties
channels
• channels: Channel
[]
A list of Channels configured on the device
Inherited from
Defined in
src/lib/device.ts:72
configId
• configId: number
A local identifier that appears in log messages but does not go out over the air
Inherited from
Defined in
src/lib/device.ts:66
debug
• debug: boolean
Param
Enable debug logging (all sent and received frames, etc. - noisy)
Inherited from
Defined in
src/lib/device.ts:64
deviceMetadata
• deviceMetadata: DeviceMetadata
The DeviceMetadata reported during initialization
Inherited from
Defined in
src/lib/device.ts:70
deviceTag
• deviceTag: string
Device type and connection details for log messages
Overrides
Defined in
src/lib/socket-device.ts:8
host
• host: string
The device hostname or IP address
Defined in
src/lib/socket-device.ts:10
myNodeInfo
• myNodeInfo: MyNodeInfo
The MyNodeInfo reported during initialization
Inherited from
Defined in
src/lib/device.ts:68
port
• port: number
The TCP port to connect to (default: 4403)
Defined in
src/lib/socket-device.ts:12
ready
• ready: boolean
Becomes true
once initialization has completed (configCompleteId received)
Inherited from
Defined in
src/lib/device.ts:74
socket
• socket: Socket
A Synchronet JavaScript Socket Class instance
Defined in
src/lib/socket-device.ts:14
Methods
addListener
▸ addListener(event
, callback
, once
): number
Parameters
Name | Type |
---|---|
event |
string |
callback |
eeCallback |
once |
boolean |
Returns
number
Inherited from
Defined in
node_modules/@swag/ts4s/defs/global.ts:1892
beginEditSettings
▸ beginEditSettings(): void
Many configuration changes will trigger a reboot of the device.
If you're making several changes at once, call beginEditSettings
beforehand, and commitEditSettings
afterward.
This will forestall the reboot until you're ready to bulk-commit your changes.
Returns
void
Inherited from
Defined in
src/lib/device.ts:468
cancelReboot
▸ cancelReboot(): void
Returns
void
Inherited from
Defined in
src/lib/device.ts:618
cancelShutdown
▸ cancelShutdown(): void
Returns
void
Inherited from
Defined in
src/lib/device.ts:604
commitEditSettings
▸ commitEditSettings(): void
The companion method to beginEditSettings
. Call this when you're ready to commit changes and reboot.
Returns
void
Inherited from
Defined in
src/lib/device.ts:479
connect
▸ connect(timeout?
): boolean
Connect to the device and initialize
Parameters
Name | Type | Default value | Description |
---|---|---|---|
timeout |
number |
CONNECT_TIMEOUT |
How many seconds to wait for connection, and then again for initialization. (You might end up waiting double this amount of time for connection/initialization to time out.) |
Returns
boolean
Overrides
Defined in
src/lib/socket-device.ts:37
cycle
▸ cycle(): void
If your program runs in its own loop, eg. while (!js.terminated) { ... }
then you must call this method periodically to fetch data from the device
and perform maintenance.
Returns
void
Inherited from
Defined in
src/lib/device.ts:194
disconnect
▸ disconnect(): boolean
Close the connection and cancel any timed events.
Returns
boolean
Overrides
Defined in
src/lib/socket-device.ts:47
emit
▸ emit(event
, ...params
): void
Parameters
Name | Type |
---|---|
event |
string |
...params |
any [] |
Returns
void
Inherited from
Defined in
node_modules/@swag/ts4s/defs/global.ts:1898
eventNames
▸ eventNames(): string
[]
Returns
string
[]
Inherited from
Defined in
node_modules/@swag/ts4s/defs/global.ts:1899
factoryReset
▸ factoryReset(): void
Danger Bay I've included this method here because it may be useful to provide a bootstrapping setup script for Synchronet+Meshtastic projects. Maybe we want to ensure factory defaults before applying common settings to any Synchronet-connected node. I dunno. Just brainstorming here. No wrong answers except ones that fuck up someone's radio, and I hereby indemnify myself from any and all liability in those situations E&OE.
Returns
void
Inherited from
Defined in
src/lib/device.ts:663
getChannel
▸ getChannel(index
, responseHandler
): void
Parameters
Name | Type |
---|---|
index |
number |
responseHandler |
packetHandler |
Returns
void
Inherited from
Defined in
src/lib/device.ts:534
getConfig
▸ getConfig(configType
, responseHandler
): void
Parameters
Name | Type |
---|---|
configType |
AdminMessage_ConfigType |
responseHandler |
packetHandler |
Returns
void
Inherited from
Defined in
src/lib/device.ts:544
getMetadata
▸ getMetadata(nodeNum
, responseHandler
): void
Parameters
Name | Type |
---|---|
nodeNum |
number |
responseHandler |
packetHandler |
Returns
void
Inherited from
Defined in
src/lib/device.ts:574
getModuleConfig
▸ getModuleConfig(moduleConfigType
, responseHandler
): void
Parameters
Name | Type |
---|---|
moduleConfigType |
AdminMessage_ModuleConfigType |
responseHandler |
packetHandler |
Returns
void
Inherited from
Defined in
src/lib/device.ts:554
getNodeInfo
▸ getNodeInfo(nodeNum
): undefined
| NodeInfo
Return data about the given node number from our node DB, or undefined if we don't got none.
I'm making this a method instead of just making this.nodeInfo public on purpose. At the moment, the node DB is held in memory. We might want to put it on disk or elsewhere later. This way, we can make that change without breaking stuff.
Parameters
Name | Type |
---|---|
nodeNum |
number |
Returns
undefined
| NodeInfo
Inherited from
Defined in
src/lib/device.ts:692
getOwner
▸ getOwner(responseHandler
): void
Parameters
Name | Type |
---|---|
responseHandler |
packetHandler |
Returns
void
Inherited from
Defined in
src/lib/device.ts:564
listenerCount
▸ listenerCount(event
): number
Parameters
Name | Type |
---|---|
event |
string |
Returns
number
Inherited from
Defined in
node_modules/@swag/ts4s/defs/global.ts:1900
listeners
▸ listeners(event
): eeCallback
[]
Parameters
Name | Type |
---|---|
event |
string |
Returns
eeCallback
[]
Inherited from
Defined in
node_modules/@swag/ts4s/defs/global.ts:1901
off
▸ off(event
, id
): boolean
Parameters
Name | Type |
---|---|
event |
string |
id |
number |
Returns
boolean
Inherited from
Defined in
node_modules/@swag/ts4s/defs/global.ts:1896
on
▸ on(event
, callback
): number
Parameters
Name | Type |
---|---|
event |
string |
callback |
eeCallback |
Returns
number
Inherited from
Defined in
node_modules/@swag/ts4s/defs/global.ts:1893
once
▸ once(event
, callback
): number
Parameters
Name | Type |
---|---|
event |
string |
callback |
eeCallback |
Returns
number
Inherited from
Defined in
node_modules/@swag/ts4s/defs/global.ts:1894
rawListeners
▸ rawListeners(event
): eeCallback
[]
Parameters
Name | Type |
---|---|
event |
string |
Returns
eeCallback
[]
Inherited from
Defined in
node_modules/@swag/ts4s/defs/global.ts:1902
read
▸ read(timeout?
): void
Read any waiting data from the device and handle any FromRadio messages received. Any associated event listeners (callbacks), ack or response handlers will be called when these messages are processed.
Parameters
Name | Type | Default value |
---|---|---|
timeout |
number |
0 |
Returns
void
Inherited from
Defined in
src/lib/device.ts:332
reboot
▸ reboot(seconds
): void
Parameters
Name | Type |
---|---|
seconds |
number |
Returns
void
Inherited from
Defined in
src/lib/device.ts:608
removeAllListeners
▸ removeAllListeners(event
): boolean
Parameters
Name | Type |
---|---|
event |
string |
Returns
boolean
Inherited from
Defined in
node_modules/@swag/ts4s/defs/global.ts:1897
removeFixedPosition
▸ removeFixedPosition(): void
Returns
void
Inherited from
Defined in
src/lib/device.ts:648
removeListener
▸ removeListener(event
, id
): boolean
Parameters
Name | Type |
---|---|
event |
string |
id |
number |
Returns
boolean
Inherited from
Defined in
node_modules/@swag/ts4s/defs/global.ts:1895
resetNodes
▸ resetNodes(): void
Returns
void
Inherited from
Defined in
src/lib/device.ts:584
sendAdminMessage
▸ sendAdminMessage(adminMessage
, responseHandler?
, to?
): void
Send an AdminMessage to the device
Parameters
Name | Type | Description |
---|---|---|
adminMessage |
AdminMessage |
- |
responseHandler? |
packetHandler |
will be called with an AdminMessage parameter (You probably don't need to call this directly since there are convenience methods for most AdminMessages below.) |
to |
number |
- |
Returns
void
Inherited from
Defined in
src/lib/device.ts:453
sendHeartbeat
▸ sendHeartbeat(): void
You probably don't need to call this directly. It's only really needed for SerialDevice, and is handled there for you even in synchronous scripts.
Returns
void
Inherited from
Defined in
src/lib/device.ts:674
sendPacket
▸ sendPacket(«destructured»
): void
Assembles a MeshPacket based on your parameters and writes it to the device.
Parameters
Name | Type |
---|---|
«destructured» |
IMeshPacketParams |
Returns
void
Inherited from
Defined in
src/lib/device.ts:372
sendText
▸ sendText(«destructured»
): void
Send a text message out into the mesh, optionally specifying a 'to' node address, channel, want-acknowledgement, and acknowledgement handler
Parameters
Name | Type |
---|---|
«destructured» |
ITextMessageParams |
Returns
void
Inherited from
Defined in
src/lib/device.ts:428
setChannel
▸ setChannel(channel
): void
Parameters
Name | Type |
---|---|
channel |
Channel |
Returns
void
Inherited from
Defined in
src/lib/device.ts:519
setConfig
▸ setConfig(config
): void
Parameters
Name | Type |
---|---|
config |
Config |
Returns
void
Inherited from
Defined in
src/lib/device.ts:489
setFixedPosition
▸ setFixedPosition(position
): void
Parameters
Name | Type |
---|---|
position |
Position |
Returns
void
Inherited from
Defined in
src/lib/device.ts:638
setHamMode
▸ setHamMode(callSign
, txPower
, frequency
, shortName?
): void
Parameters
Name | Type |
---|---|
callSign |
string |
txPower |
number |
frequency |
number |
shortName? |
string |
Returns
void
Inherited from
Defined in
src/lib/device.ts:622
setModuleConfig
▸ setModuleConfig(moduleConfig
): void
Parameters
Name | Type |
---|---|
moduleConfig |
ModuleConfig |
Returns
void
Inherited from
Defined in
src/lib/device.ts:499
setOwner
▸ setOwner(owner
): void
Parameters
Name | Type |
---|---|
owner |
User |
Returns
void
Inherited from
Defined in
src/lib/device.ts:509
setPosition
▸ setPosition(position
): void
Parameters
Name | Type |
---|---|
position |
Position |
Returns
void
Inherited from
Defined in
src/lib/device.ts:529
shutdown
▸ shutdown(seconds
): void
Parameters
Name | Type |
---|---|
seconds |
number |
Returns
void
Inherited from
Defined in
src/lib/device.ts:594
write
▸ write(packet
): void
Write a ToRadio message to the device
Parameters
Name | Type |
---|---|
packet |
ToRadio |
Returns
void
Inherited from
Defined in
src/lib/device.ts:359
Enums
@sota/meshtastic / Exports / defs / CHANNEL_NUMBER
Enumeration: CHANNEL_NUMBER
defs.CHANNEL_NUMBER
Table of contents
Enumeration Members
Enumeration Members
admin
• admin = 7
Defined in
src/lib/defs.ts:21
channel1
• channel1 = 1
Defined in
src/lib/defs.ts:15
channel2
• channel2 = 2
Defined in
src/lib/defs.ts:16
channel3
• channel3 = 3
Defined in
src/lib/defs.ts:17
channel4
• channel4 = 4
Defined in
src/lib/defs.ts:18
channel5
• channel5 = 5
Defined in
src/lib/defs.ts:19
channel6
• channel6 = 6
Defined in
src/lib/defs.ts:20
primary
• primary = 0
Defined in
src/lib/defs.ts:14
Interfaces
@sota/meshtastic / Exports / defs / IEncryptedMeshPacketParams
Interface: IEncryptedMeshPacketParams
defs.IEncryptedMeshPacketParams
Table of contents
Properties
Properties
ackHandler
• Optional
ackHandler: packetHandler
Defined in
src/lib/defs.ts:63
channel
• Optional
channel: CHANNEL_NUMBER
Defined in
src/lib/defs.ts:58
hopLimit
• Optional
hopLimit: number
Defined in
src/lib/defs.ts:60
payload
• payload: Uint8Array
Defined in
src/lib/defs.ts:56
priority
• Optional
priority: MeshPacket_Priority
Defined in
src/lib/defs.ts:61
to
• Optional
to: number
Defined in
src/lib/defs.ts:57
viaMqtt
• Optional
viaMqtt: boolean
Defined in
src/lib/defs.ts:62
wantAck
• Optional
wantAck: boolean
Defined in
src/lib/defs.ts:59
@sota/meshtastic / Exports / defs / IMeshPacketParams
Interface: IMeshPacketParams
defs.IMeshPacketParams
Table of contents
Properties
- ackHandler
- channel
- emoji
- encrypted
- hopLimit
- payload
- portNum
- priority
- replyId
- requestId
- responseHandler
- source
- to
- viaMqtt
- wantAck
- wantResponse
Properties
ackHandler
• Optional
ackHandler: packetHandler
Defined in
src/lib/defs.ts:51
channel
• Optional
channel: CHANNEL_NUMBER
Defined in
src/lib/defs.ts:41
emoji
• Optional
emoji: number
Defined in
src/lib/defs.ts:47
encrypted
• Optional
encrypted: boolean
Defined in
src/lib/defs.ts:39
hopLimit
• Optional
hopLimit: number
Defined in
src/lib/defs.ts:48
payload
• payload: Uint8Array
Defined in
src/lib/defs.ts:37
portNum
• portNum: PortNum
Defined in
src/lib/defs.ts:38
priority
• Optional
priority: MeshPacket_Priority
Defined in
src/lib/defs.ts:49
replyId
• Optional
replyId: number
Defined in
src/lib/defs.ts:46
requestId
• Optional
requestId: number
Defined in
src/lib/defs.ts:45
responseHandler
• Optional
responseHandler: packetHandler
Defined in
src/lib/defs.ts:52
source
• Optional
source: number
Defined in
src/lib/defs.ts:44
to
• Optional
to: number
Defined in
src/lib/defs.ts:40
viaMqtt
• Optional
viaMqtt: boolean
Defined in
src/lib/defs.ts:50
wantAck
• Optional
wantAck: boolean
Defined in
src/lib/defs.ts:42
wantResponse
• Optional
wantResponse: boolean
Defined in
src/lib/defs.ts:43
@sota/meshtastic / Exports / defs / ITextMessageParams
Interface: ITextMessageParams
defs.ITextMessageParams
Table of contents
Properties
Properties
ackHandler
• Optional
ackHandler: packetHandler
Defined in
src/lib/defs.ts:71
channel
• Optional
channel: CHANNEL_NUMBER
Defined in
src/lib/defs.ts:69
hopLimit
• Optional
hopLimit: number
Defined in
src/lib/defs.ts:73
replyId
• Optional
replyId: number
Defined in
src/lib/defs.ts:72
text
• text: string
Defined in
src/lib/defs.ts:67
to
• Optional
to: number
Defined in
src/lib/defs.ts:68
wantAck
• Optional
wantAck: boolean
Defined in
src/lib/defs.ts:70
@sota/meshtastic / Exports
@sota/meshtastic
Table of contents
Namespaces
Classes
Modules
@sota/meshtastic / Exports / defs
Namespace: defs
Table of contents
Enumerations
Interfaces
Type Aliases
Variables
Type Aliases
packetHandler
Ƭ packetHandler: (packet
: MeshPacket
) => void
Type declaration
▸ (packet
): void
####### Parameters
Name | Type |
---|---|
packet |
MeshPacket |
####### Returns
void
Defined in
src/lib/defs.ts:34
Variables
BROADCAST
• Const
BROADCAST: 4294967295
Defined in
src/lib/defs.ts:9
CONNECT_TIMEOUT
• Const
CONNECT_TIMEOUT: 30
Defined in
src/lib/defs.ts:10
LOG_LEVEL_MAP
• Const
LOG_LEVEL_MAP: Record
<LogRecord_Level
, number
>
Defined in
src/lib/defs.ts:24
MAXLEN
• Const
MAXLEN: 512
Defined in
src/lib/defs.ts:7
MAX_PAYLOAD
• Const
MAX_PAYLOAD: 200
Defined in
src/lib/defs.ts:8
RESPONSE_TIMEOUT
• Const
RESPONSE_TIMEOUT: 300
Defined in
src/lib/defs.ts:11
START1
• Const
START1: 148
Defined in
src/lib/defs.ts:5
START2
• Const
START2: 195
Defined in
src/lib/defs.ts:6