tp-rs232
v0.0.5
Published
Node.JS library for TOP Vending Machine
Downloads
20
Maintainers
Readme
TpSeries
Library written in node.js for TOP Vending Machine tp products
Supported devices: TP1, TP11, TP2, TP3
Installation
Install from npm:
npm install tp-rs232
const TpSeries = require('tp-rs232');
let tp = new TpSeries({
debug: true,
timeout: 5000
});
Methods
All methods use Promise
tp.open('COM1')
- Connect devicetp.close()
- Disconnect devicetp.command('COMMAND_NAME')
- Execute command and get answertp.enabled
- Validator statustp.openPort
- Port statustp.powerUp
- Power Up (Bill Acceptor Active)
Command
tp.command('ENABLE')
.then(result => {
console.log('status:', result.status)
return;
})
tp.command('ACCEPT_BANKNOTE')
Event
eSSP.on('READ_NOTE', result => {
console.log(result)
})
Example
const TpSeries = require('tp-rs232');
let serialPortConfig = {
baudrate: 9600,
databits: 8,
stopbits: 1,
parity: 'even'
};
let tp = new TpSeries({
debug: false,
timeout: 5000
});
tp.on('OPEN', () => {
console.log('Port opened!');
});
tp.on('CLOSE', () => {
console.log('Port closed!');
});
tp.on('READ_NOTE', (result) => {
console.log('READ_NOTE');
console.log(result);
if (result.channel === 2) {
tp.command('REJECT_BANKNOTE');
} else {
tp.command('ACCEPT_BANKNOTE');
}
});
tp.on('STACKING', (result) => {
console.log(result);
if (result.channel === 1) {
tp.command('DISABLE').then((result) => {
console.log(result);
tp.close();
});
}
if (result.channel === 3) {
tp.removeAllListeners();
}
});
tp.on('CLOSE', () => {
console.log('CLOSE');
});
tp.on('POWER_UP', () => {
console.log('POWER_UP');
});
tp.on('MOTOR_FAILURE', () => {
console.log('MOTOR_FAILURE');
});
tp.on('CHECKSUM_ERROR', () => {
console.log('CHECKSUM_ERROR');
});
tp.on('BILL_JAM', () => {
console.log('BILL_JAM');
});
tp.on('BILL_REMOVE', () => {
console.log('BILL_REMOVE');
});
tp.on('STACKER_OPEN', () => {
console.log('STACKER_OPEN');
});
tp.on('SENSOR_PROBLEM', () => {
console.log('SENSOR_PROBLEM');
});
tp.on('BILL_FISH', () => {
console.log('BILL_FISH');
});
tp.on('STACKER_PROBLEM', () => {
console.log('STACKER_PROBLEM');
});
tp.on('BILL_REJECT', () => {
console.log('BILL_REJECT');
});
tp.on('INVALID_COMMAND', () => {
console.log('INVALID_COMMAND');
});
tp.on('RESERVED', () => {
console.log('RESERVED');
});
tp.on('RESPONSE_WHEN_ERROR', () => {
console.log('RESPONSE_WHEN_ERROR');
});
tp.on('ENABLE', (result) => {
console.log('ENABLE');
console.log(result);
});
tp.on('DISABLE', (result) => {
console.log('DISABLE');
console.log(result);
});
tp.on('REJECT', () => {
console.log('REJECT');
});
tp.on('COMMAND_NOT_FOUND', () => {
console.log('COMMAND_NOT_FOUND');
});
tp.open('/dev/tty.usbserial-14330', serialPortConfig)
.then(() => {
console.log('GO!!!');
tp.command('POWER_UP')
.then(() => tp.command('ENABLE'))
.then((result) => {
console.log(result);
});
})
.catch((error) => {
console.log(error);
});
Supported Commands:
Command name | Information return | Need promise | Description ------------------------------------|-------------------|-----------------------|------------------- POWER_UP | yes | no | Power Up (Bill Acceptor Active) ACCEPT_BANKNOTE | yes | no | Command to accept a banknote REJECT_BANKNOTE | yes | no | Command to reject a banknote HOLD_ESCROW | yes | no | Hold in Escrow STATUS | yes | yes | Returns the current status of the device ENABLE | yes | yes | Command to enable the banknote validator DISABLE | yes | yes | Command to disable the banknote validator RESET | yes | no | Command to reset the device
Example commands with options:
POWER_UP
tp.command('POWER_UP').then((result) => console.log(result););
ACCEPT_BANKNOTE
tp.command('ACCEPT_BANKNOTE').then((result) => console.log(result););
REJECT_BANKNOTE
tp.command('REJECT_BANKNOTE').then((result) => console.log(result););
HOLD_ESCROW
tp.command('HOLD_ESCROW').then((result) => console.log(result););
RESET
tp.command('RESET').then((result) => console.log(result););
STATUS
tp.command('STATUS').then((result) => console.log(result););
ENABLE
tp.command('ENABLE').then((result) => console.log(result););
DISABLE
tp.command('DISABLE').then((result) => console.log(result););
Supported Events:
Event name | Description ------------------------------------|------------------ OPEN | Event that detects that the device was opened successfully CLOSE | Event that detects that the device was closed POWER_UP | Power Up (Bill Acceptor Active). MOTOR_FAILURE | An motor fault was found. CHECKSUM_ERROR | Checksum error. BILL_JAM | The device has detected that coins are jammed in its mechanism and cannot be removed other than by manual intervention. The value paid at the jam point is given in the event data. BILL_REMOVE | Reported when a note float unit has been detected as removed from its validator. STACKER_OPEN | The device has detected that the stacked has been opened. SENSOR_PROBLEM | The device has encountered a problem with the sensor. BILL_FISH | BILL FISH STACKER_PROBLEM | The device has encountered a stacker problem. BILL_REJECT | The note has been rejected from the validator and is available for the user to retrieve. INVALID_COMMAND | Invalid command encountered. RESERVED | Reserved RESPONSE_WHEN_ERROR | Response when Error ENABLE | The device is enabled. DISABLE | The device is disabled. READ_NOTE | A note has been detected by the device. STACKING | A note has been stacked. REJECT | A note has been rejected. COMMAND_NOT_FOUND | The command was not found.
Errors and contributions
For an error write the problem directly on github issues or submit it to the mail [email protected]. If you want to contribute to the project please send an email.
#TP1 , #TP11 , #TP2 , #TP3 , #TOP Vending Machine