implements tools to communicate with a serial attached device
npm install @mangar2/serialdeviceInterface service to communicate with several arduino or similar microcontroller based on a serial interface
- Meta
- Global Functions
- _deriveSubscribesFromCommandMap
- _deriveSubscribesFromTopicMap
- lsb
- prepare
- serialMessageToString
- switchMessageToString
- Class SerialDevice
- Parameters
- Methods
- _traceStringSendToSerial
- close
- getSubscriptions
- handleMessage
- on
- run
| | |
| --- | --- |
| File | index.js |
| Abstract | Interface service to communicate with several arduino or similar microcontroller based on a serial interface |
| Author | Volker Böhm |
| Copyright | Copyright ( c ) 2020 Volker Böhm |
| License | This software is licensed under the GNU LESSER GENERAL PUBLIC LICENSE Version 3 . It is furnished "as is" , without any support , and with no warranty , express or implied , as to its usefulness for any purpose . |
Callback to publish messages to the mqtt broker
#### Publish Parameters
| Name | Type | Description |
| ---------- | ------------ | ----------------- |
| message | Message | message to publish | |
readonly _deriveSubscribesFromCommandMap (commandMap, topicBegin, qos)
Creates a list of subscribes starting with topicBegin and ending with all strings of the commandMap
#### _deriveSubscribesFromCommandMap Parameters
| Name | Type | Description |
| ---------- | ------------ | ----------------- |
| commandMap | Object | map commands to topic end strings | |
| topicBegin | string | begin of the topic | |
| qos | number | quality of service | |
readonly _deriveSubscribesFromTopicMap (topicMap, qos) => {Object.
Derives subscriptions from a topic list
#### _deriveSubscribesFromTopicMap Parameters
| Name | Type | Description |
| ---------- | ------------ | ----------------- |
| topicMap | Object. | object with topic properties | |
| qos | 0, 1, 2 | quality of service for the subscription | |
#### _deriveSubscribesFromTopicMap returns
| Type | Description |
| ---- | ----------- |
| Object. | object with topic : qos entries |
lsb (value) => {integer}
Returns the number of the least significant bit of an integer
#### lsb Parameters
| Name | Type |
| ---------- | ------------ |
| value | integer | |
#### lsb returns
| Type | Description |
| ---- | ----------- |
| integer | -1 , if no bit set , else the position of the bit set ( starting with bit 0 ) |
prepare (config, serialDevice)
Creates a serial device object , if not already available
#### prepare Parameters
| Name | Type | Attribute | Default | Description |
| ---------- | ------------ | ------------ | ------------ | ----------------- |
| config | Object | | | serial device configuration settings | |
| serialDevice | SerialDevice | optional | null | serial device object | |
serialMessageToString (message) => {string}
Converts a serial message to a byte stream
#### serialMessageToString Parameters
| Name | Type | Description |
| ---------- | ------------ | ----------------- |
| message | SerialMessage | message to convert | |
#### serialMessageToString returns
| Type | Description |
| ---- | ----------- |
| string | string to transmit |
switchMessageToString (message)
Calculates the switching string from a switch message
#### switchMessageToString Parameters
| Name | Type | Description |
| ---------- | ------------ | ----------------- |
| message | SerialMessage | message to convert | |
#### message properties
| Name | Type | Description |
| ---------- | ------------ | ----------------- |
| value | number | value used to identify the switch and the switching value | |
new SerialDevice(options)
Creates a service class to communicate with several arduino over a serial bus
| Name | Type | Description |
| ---------- | ------------ | ----------------- |
| options | Object | configuration options | |
#### options properties
| Name | Type | Attribute | Default | Description |
| ---------- | ------------ | ------------ | ------------ | ----------------- |
| serialPortName | string | | | name of the port to use | |
| baudrate | integer | optional | 57600 | baud rate to be used | |
| qos | 0, 1, 2 | optional | 1 | quality of service to send messages | |
| trace | string | optional | 'messages' | trace level , supported : errors , messages , internal | |
| keepAliveDelayInSeconds | number | optional | 1 | delay between two keep alive messages to serial | |
#### _traceStringSendToSerial
_traceStringSendToSerial (serialString)
Traces a string send to the serial device
##### _traceStringSendToSerial Parameters
| Name | Type | Description |
| ---------- | ------------ | ----------------- |
| serialString | string | string send to serial device | |
#### close
async close ()
Stops the service
#### getSubscriptions
getSubscriptions () => {topic:qos}
Gets the list of required subscriptions for this service
##### getSubscriptions returns
| Type | Description |
| ---- | ----------- |
| topic:qos | list of subscription strings |
#### handleMessage
handleMessage (mqttMessage)
Processes an incoming mqtt message
##### handleMessage Parameters
| Name | Type | Description |
| ---------- | ------------ | ----------------- |
| mqttMessage | Message | mqtt message | |
#### on
on (event, callback)
Sets a callback .
##### on Parameters
| Name | Type | Description |
| ---------- | ------------ | ----------------- |
| event | string | event name ( not case sensitive ) for the callback ( supported : 'publish' ) | |
| callback | Publish | function ( . . . parameter ) | |
##### on throws
| Type | Description |
| ---- | ----------- |
| Error | if the event is not supported |
| Error | if the callback is not 'function' |
#### run
async run ()
Starts the server