CUTOS Devices API is a JavaScript library that provides a unified interface for accessing and controlling hardware devices. Developers can use this interface to send and receive data, configure device parameters, and handle device events.
Devices and drivers communicate for data transmission, command reception, and status updates. Heartbeat monitoring is implemented for drivers to ensure continuous communication.
npm install @cutos/core
npm install @cutos/devices
import {CoreAPI} from '@cutos/core';
import {DevicePrinter, PrinterCMD} from '@cutos/devices';
Constructor, create a printer instance
let devPrinter = new DevicePrinter();
Printer initialization
devPrinter.init(callback)
callback: callback function
devPrinter.init((result, error) => {
if (error) {
console.log(error)
return;
}
console.log(result)
})
- Return result example:
"Driver device-printer loaded"
Read printer information
DevicePrinter.readDeviceInfo(callback)
callback: callback function
DevicePrinter.readDeviceInfo(data => {
console.log(data)
})
- Return result example:
{
"name": "w80",
"shareName": "w80",
"portName": "USB001",
"driverName": "MSW Printer Driver",
"printProcessor": "winprint",
"datatype": "RAW",
"status": [],
"statusNumber": 0,
"attributes": [
"DO-COMPLETE-FIRST",
"LOCAL"
],
"priority": 1,
"defaultPriority": 0,
"averagePPM": 0
}
Get printer data
devPrinter.onData(callback)
- callback: callback function
DevicePrinter.onData(function (data) {
let resp = data.response;
if (!resp.status) {
console.warn('err:', resp.msg);
return;
}
switch (data.cmd) {
case PrinterCMD.PRINT_TEST: //DevicePrinter.printTestPage(printer);
break
case PrinterCMD.PRINT_PDF_URL: //DevicePrinter.printPdfUrl(pdfUrl, printer);
break
}
});
Print test page
devPrinter.printTestPage(printer);
- printer: printer name; when this parameter is not passed, the default printer is used for printing.
Print specified pdf file
devPrinter.printPdfUrl(pdfUrl, printer);
- pdfUrl: URL address. For example: 'https://oss.cut-os.com/resources/developer/examples/printer/print-sample.pdf'
- printer: printer name; when this parameter is not passed, the default printer is used for printing.
Print the specified base64 format data as a pdf file
devPrinter.printDataUrl(dataUrl, printer);
- dataUrl:The following format —— data:application/pdf;base64,。For example:data:application/pdf;base64,JVBERi0xLjcK...VFT0YK
- printer:Printer name; if this parameter is not passed, the default printer is used for printing.
npm install @cutos/core
npm install @cutos/devices
import {CoreAPI} from '@cutos/core';
import {DeviceIDCardReader} from '@cutos/devices';
Constructor, create ID card instance
var devIDCardReader = new DeviceIDCardReader();
ID card reader initialization
devIDCardReader.init(callback);
- callback: callback function
devIDCardReader.init((result, error) => {
if (!error) {
console.log('onDeviceCreate', result)
} else {
console.log(error)
}
});
- Return result example:
Driver device-id-card-reader loaded
Connect ID card reader
devIDCardReader.connect(callback);
- callback: callback function
devIDCardReader.connect((result) => {
if (result.status) {
console.log('connect success:', result)
} else {
console.log('connect failed:', result.msg)
}
});
Disconnect ID card reader
devIDCardReader.disconnect();
The card reader starts searching for the card
devIDCardReader.startRead([image], callback);
- image: optional parameter, whether to read the ID card photo, the default is false. true means read, false means not read.
- callback: callback function
devIDCardReader.startRead(result => console.log(result))
- Return result example:
{
"status": true,
"msg": "reading"
}
Read ID card reader device information
devIDCardReader.readDeviceInfo(callback);
- callback: callback function
devIDCardReader.readDeviceInfo(result => {
console.log('device info:', result)
})
- Return result example:
{
"status": true,
"msg": {
"SAMID": "5-3-20220810-11478877-3979136230"
}
}
Receive ID card information
devIDCardReader.onData(callback)
- callback: callback function
devIDCardReader.onData((data) => {
console.log('data', data)
})
- Return result example:
{
"code": 110111201607101234,
"name": "Si Pu",
"sex": "Male",
"birthday": 20160710,
"address": "No. 1705, Beihuan Center, No. 18 Yumin Road, Xicheng District, Beijing",
"nation": "China",
"department": "Xicheng District, Beijing",
"startDate": 20160710,
"endDate": 20260710,
"certType": "ID card"
}
npm install @cutos/core
npm install @cutos/devices
import {CoreAPI} from '@cutos/core';
import {DeviceFingerprint} from '@cutos/devices';
Constructor, create fingerprint device instance
let devFingerprint = new DeviceFingerprint(name);
- name: fingerprint device name
devFingerprint = new DeviceFingerprint();
Fingerprint initialization
devFingerprint.init(callback);
- callback: callback function
devFingerprint.init((result, error) => {
if (!error) {
console.log('onDeviceCreate', result)
} else {
console.log(error)
}
});
- Return result example:
Driver device-fingerprint loaded
Connect fingerprint
DevFingerprint.connect(path, callback);
- path: device port
- callback: callback function
DevFingerprint.connect('/dev/ttyS1', (result) => {
console.log(result)
});
- Return result example:
{
"status": true,
"msg": "open success"
}
Fingerprint recognition mode
DevFingerprint.auth(callback)
- callback: callback function
DevFingerprint.auth((data) => {
console.log('data', data)
})
- Return result example:
{
"status": true,
"msg": "auth mode"
}
Fingerprint management mode
DevFingerprint.admin(callback)
- callback: callback function
DevFingerprint.admin((data) => {
console.log(data)
})
- Return result example:
{
"status": true,
"msg": "admin mode"
}
Enter fingerprint step 1
DevFingerprint.createUser1(userID, callback)
- userID: user ID
- callback: callback function
DevFingerprint.createUser1(1, (data) => {
console.log('data', data)
})
- Return result example:
{
"status": true
}
Enter fingerprint step 2
DevFingerprint.createUser2(userID, callback)
- userID: user ID
- callback: Callback function
DevFingerprint.createUser2(1, (data) => {
console.log('data', data)
})
- Return result example:
{
"status": true
}
Enter fingerprint step 3
DevFingerprint.createUser3(userID, callback)
- userID: user ID
- callback: callback function
DevFingerprint.createUser3(1, (data) => {
console.log('data', data)
})
- Return result example:
{
"status": true
}
Delete user
DevFingerprint.deleteUser(userID, callback)
- userID: user ID
- callback: callback function
DevFingerprint.deleteUser(1, (data) => {
console.log('data', data)
})
- Return result example:
{
"status": true
}
Get fingerprint data information
DevFingerprint.onData(callback)
- callback: callback function
device.onData(data => {
console.log(data)
})
- Return result example:
{
"authorized": 0
}
npm install @cutos/core
npm install @cutos/devices
import {CoreAPI} from '@cutos/core';
import {DeviceNFC} from '@cutos/devices';
Constructor, create NFC device instance
let devNFC = new DeviceNFC(name);
- name: NFC device name
devNFC = new DeviceNFC('demo-nfc');
NFC device initialization
devNFC.init(callback);
- callback: callback function
devNFC.init((result, error) => {
if (!error) {
console.log('onDeviceCreate', result)
} else {
console.log(error)
}
});
Connect NFC
devNFC.connect(callback);
- callback: callback function
devNFC.connect((result) => {
if (result.status) {
console.log('connect success:', result)
} else {
console.log('connect failed:', result.msg)
}
});
Receive NFC information
DeviceNFC.onData(callback)
- callback: callback function
DeviceNFC.onData((data) => {
console.log('data', data)
})
- Return result example:
{
"id": "110111201"
}