433-utils
Version:
This project is a portage in TypeScript of the repository https://github.com/ninjablocks/433Utils
40 lines (33 loc) • 1.14 kB
text/typescript
/**
* 09/02/2020
* @author Baudev
*/
const { spawn } = require( 'child_process' );
export default class Transmitter {
protected sniffer: any;
protected pin: number;
constructor(pin: number = 0) {
if(!Number.isInteger(pin)){
throw Error("PIN must be an integer.");
}
// we check the validity of the PIN
this.pin = pin;
}
/**
* Sends the message
* @param systemCode
* @param unitCode
* @param command Command is 0 for OFF and 1 for ON
* @param pulseLength
*/
send(systemCode: number, unitCode: number, command: number, pulseLength: number = 0): Promise<[number, number, number]>{
this.sniffer = spawn(__dirname + '/../custom433Utils/customSend ', [ systemCode, unitCode, command, pulseLength, this.pin ]);
return new Promise((resolve => {
this.sniffer.stdout.on('data', (data: string) => {
// for each message sent
let values = data.split(",");
return resolve([Number(values[0]), Number(values[1]), Number(values[2])]);
});
}));
}
}