identi-recognition
Version:
identiRecognition
218 lines (150 loc) • 8.16 kB
Markdown
# **HUMAN FACE SECURITY INTEGRATION**

This package provides a unified way to interact with multiple access control devices, including `XCore` and `Terminal`, allowing for standardized command execution and status retrieval.
| Version | Descripcion | Estado |
| ------- | ------------------- | ----------- |
| 0.0.14 | Initial Integration | Development |
| | | |
## **RELEASE NOTES** :
- The terminal class is still being build.
- The XCORE class is still being build.
- In the XCORE class keep in mind that there are two types of XCOREs. Depending on the API. So make sure to validate the object creation.
- Adittional, when creating Xcore Objects , make sure to call the getStatus() ALWAYS , so you can make sure the device was correctly configured. If it fails, try changing the \_versionPro parameter when creating the object
## **Table of Contents**
1. [Installation](#installation)
2. [Usage](#usage)
3. [Device Classes](#device-classes)
- [XCore Class](#xcore-class)
- [Terminal Class](#terminal-class)
4. [Configuration](#configuration)
5. [API Reference](#api-reference)
- [XCore Methods](#xcore-methods)
- [Terminal Methods](#terminal-methods)
6. [Error Handling](#error-handling)
7. [Examples](#examples)
## **Installation**
To install this package, use the following command:
```bash
npm install identi-recognition
```
Make sure you have axios installed as a dependency if not already present in your project
## **Usage**
First, import the desired classes from the package:
```javascript
const { XCore, Terminal } = require('identi-recognition')
// Create instances for each device with their respective IP addresses
// and passwords if required.
const xcoreDevice = new XCore((ip = '192.168.1.100'), (_versionPro = false))
const terminalDevice = new Terminal('192.168.1.101', 'passwordTerminal')
```
## **Device Classes**
### **XCore Class**
The `XCore` class allows you to interact with XCore devices. It includes methods for status retrieval and sending commands.
| Method | Description |
| ---------------------------------------------- | --------------------------------------------------- |
| `getStatus()` | Retrieves the current status of the XCore device. |
| `facesCompare(image1, image2, liveness )` | Compare two faces images. |
| `faceCompareToLocal(image1, group, liveness )` | Compare a face image to the local Db of the device. |
| `prepareReport(...)` | Prepare report with all needed infomration. |
| `generateReport()` | return the generated report. |
| `groupFace()` | Group a face in order to be detected by images. |
| `createUser()` | Uplaod an User iamge to Xcore device [see_more]. |
| `updateCreatedUser()` | [NOT VALID YET] |
| `deleteUser()` | [NOT VALID YET] |
\*[see_more] : In order to be recognized by Ip cameras , the images uploaded must be charged to an specific gorup where the ip cameras must be connected too
### **Terminal Class**
The `Terminal` class provides similar functionality for Terminal devices. It supports status monitoring, command execution, and more.
| Method | Description |
| ------------------------------------ | ---------------------------------------------------------- |
| `getStatus()` | Retrieves the current status of the Terminal device. |
| `setCallbacks(endpointCallback)` | Defines the endpoints callbacks for the correct validation |
| `showMessage(message,speak)` | Sends something so the terminal will show or speak. |
| `deleteAllRecords(simetricalMonths)` | Delete the registers, simetrical to the devices . |
| `deleteUser(userId)` | Delete the user specified. |
| `photoTaking()` | Start procces to make teminal be the one to take photos. |
## **Configuration**
Adittional, when creating Xcore Objects , make sure to call the getStatus() ALWAYS , so you can make sure the device was correctly configured. If it fails, try changing the \_versionPro parameter when creating the object
## **API Reference**
### **XCore Methods**
1. **`getStatus()`**
Retrieves the current status of the XCore device.
```javascript
const status = await xcoreDevice.getStatus()
console.log(status) // Output: { status: 'online', ... }
```
2. **`sendCommand(command: string)`**
Sends a specified command to the device.
```javascript
const response = await xcoreDevice.sendCommand('RESTART')
console.log(response) // Output: { code: HFS001, ... }
```
3. **`restartDevice()`**
Restarts the XCore device.
```javascript
const result = await xcoreDevice.restartDevice()
console.log(result) // Output: { code: HFS001, message: 'Device restarting...' }
```
4. **`getLogs()`**
Retrieves system logs from the XCore device.
```javascript
const logs = await xcoreDevice.getLogs()
console.log(logs) // Output: [ { timestamp: '...', message: 'Log entry...' }, ... ]
```
5. **`updateFirmware()`**
Updates the firmware of the device using the given update file.
```javascript
const updateStatus = await xcoreDevice.updateFirmware('path/to/update.bin')
console.log(updateStatus) // Output: { code: HFS001, version: '2.0.1' }
```
### **Terminal Methods**
1. **`getStatus()`**
Retrieves the current status of the Terminal device.
```javascript
const status = await terminalDevice.getStatus()
console.log(status) // Output: { status: 'online', ... }
```
2. **`setCallbacks(endpointCallback)`**
SDefines the endpoints callbacks for the correct validation.
```javascript
const response = await terminalDevice.setCallbacks('192.168.1.120:8888/setHere/')
console.log(response) // Output: { code: HFS001, message: { messageResult: "success" }}}
```
3. **`showMessage(message,speak)`**
Sends something so the terminal will show or speak.
if "speak" is true, then the terminal will speak, if its false, it will only show the message in screen.
```javascript
const result = await terminalDevice.showMessage('Hola', true)
console.log(result) // Output: { code: HFS001, message: 'Device rebooting...' }
```
4. **`deleteAllRecords(simetricalMonths)`**
Delete the resgisters X months forward and backward the current date.
```javascript
const newConfig = { volume: 80, brightness: 70 }
const result = await terminalDevice.deleteAllRecords(1)
console.log(result) // Output: { code: HFS001, message: ' ' }
```
5. **`deleteUser(userId)`**
Delete user by id
```javascript
const result = await terminalDevice.deleteUser(123456)
console.log(result) // Output: { code: HFS001, message: '' }
```
## **Error Handling**
The package provides a built-in error handler to capture and log errors. Errors are caught and handled internally, returning meaningful messages to the user.
## **Examples**
Here’s a quick example of how you can use this package:
```javascript
const { XCore, Terminal } = require('device-control-package')
const xcore = new XCore('192.168.1.100')
const terminal = new Terminal('192.168.1.101', 'password')
// ALWAYS CALL THE Get status of XCore
// IF it fails , try changing the _versionPro parameter
xcore
.getStatus()
.then((status) => console.log('XCore Status:', status))
.catch((error) => {
const xcore = new XCore('192.168.1.100', (_versionPro = false))
})
// Send a command to Terminal
terminal.showMessage('Hello from my package').then((response) => console.log('WOW,m the terminal spoke'))
```