2.1.0 • Published 3 months ago

qdevice v2.1.0

Weekly downloads
57
License
ISC
Repository
gitlab
Last release
3 months ago

Qdevice

Allow your NodeJS project to interact with the real world through Qcom-based hardware devices. This package uses the Qcom driver. Qcom is designed for easily connecting low-level hardware (e.g. a LED on a breadboard, wired to your Arduino) to high-level software (e.g. NodeJS).

:warning: Linux-based systems only! (e.g. your Raspberry Pi, or your Ubuntu workstation)

Installation

Install Qdevice with NPM.

npm install --save qdevice

For a TypeScript project, install the types

npm install --save-dev @types/qdevice

How it works

Qcom is a communication layer on top of a serial port interface (ttyUSB/ttyACM/...), designed for easily identifying each device, and easily exchanging information between a serial device and a host system. A Qcom packet looks like this (e.g. coming from/send to your Arduino over serial):

{signal:argument}
Explanation
{Start character (packet start)
signalSome characters to identify what the data is (e.g. temperature)
:Divider character (to seperate signal from argument)
argumentThe data (e.g. 21.5)
}Stop character (packet end)

The Qcom userspace driver (installed when installing this npm package) is started whenever a new tty device connects to your host. The Qcom userspace driver* creates for each Qcom-based device a named pipe with the device name and the device address. For example, a device named "MySensor" given address 4 will appear in the folder /Qdev as:

MySensor_4

This named pipe can be used to interact with your serial device using any language. But you are here, so you're probably using NodeJS with JavaScript or TypeScript. Great, I already wrote the interface!

Usage

Create a new Qcom device

const mySensor = new Qdevice("MySensor_4");

Add event listeners for the device connection status

mySensor.on('connected', ()=>{ console.log("Sensor 4 is connected!")});
mySensor.on('disconnected', ()=>{ console.log("Sensor 4 is disconnected!});

Listen for incoming data

mySensor.on('data', (data)=>{
   if(data.signal === 'temperature'){
      console.log('The temperature is '+data.argument+' °C');
   }
});

Send some data to the device

mySensor.send('heater','on');

That's about it!

Qcom-based hardware

License

This is a project I worked really hard on, but you can use it however you like.

2.1.0

3 months ago

2.0.3

1 year ago

2.0.2

1 year ago

1.0.26

1 year ago

1.0.25

1 year ago

2.0.1

1 year ago

1.0.24

1 year ago

2.0.0

1 year ago

1.0.29

1 year ago

1.0.28

1 year ago

1.0.27

1 year ago

1.0.23

3 years ago

1.0.22

3 years ago

1.0.21

3 years ago

1.0.20

3 years ago

1.0.19

3 years ago

1.0.18

3 years ago

1.0.17

3 years ago

1.0.16

3 years ago

1.0.15

3 years ago

1.0.14

3 years ago

1.0.13

3 years ago

1.0.12

3 years ago

1.0.11

3 years ago

1.0.10

3 years ago

1.0.9

3 years ago

1.0.7

3 years ago

1.0.6

3 years ago

1.0.5

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

7 years ago