Skip to content

Latest commit

 

History

History
171 lines (157 loc) · 8.8 KB

README.md

File metadata and controls

171 lines (157 loc) · 8.8 KB

node-anviz

NPM package to communicate with Anviz devices.

The aim of this project is to implement the TC_B Communication Protocol (V2.15) provided by anviz via e-mail on April 2019 (See dev/tcb_communications_protocol2.5.pdf).

The protocol is not completely implemented, but it's usable.

Want to contribute? Great!

I'm accepting PR's if anyone wants to jump in.

Usage

Install the module

npm install node-anviz

Call a supported method:

const anviz = require("node-anviz");
let request = new anviz.Request("<device ip>");
request.execute("getInformation1", 1).then((res, raw) => {
    console.info(res, raw);
    request.close();
}, (err) => {
    console.info("ERROR", err);
});

Notes

Calling a method returns a Promise.

You should implement your own mutex/sync logic and should only execute one command at a time: The library tries to prevent you from doing it but don't really enforce, it should be up to the implementer to assure proper syncing of calls.

I believe the best way to implement this library is to implement it on an async/await fashion, I've included example files async-downloadRecords.js and async-example.js to help illustrate my point.

Documentation

This project has been a bit sidetracked for years, I implement methods as I need them (to use them on my devices & projects). All implemented methods are documented on the examples folder, with one example per method. So if you want to call a method you'll find a valid call there.

Methods status:

PLEASE NOTE: The method descriptions were taken out DIRECTLY from the protocol document (check the pdf on the dev/ folder); Do not make me questions about the descriptions, some of them are incomprehensible.

ID Method Description Command Status Name Tested On Device
1 Get Device Configuration 1 0x30 getInformation1
2 Set Device Configuration 1 0x31 setInformation1 🔴
3 Get Device Configuration 2 0x32 getInformation2
4 Set Device Configuration 2 0x33 🔴
5 Get Device Date/Time 0x38 getDateTime
6 Set Device Date/Time 0x39 setDateTime
7 Get Network Configuration 0x3A getNetworkConfiguration
8 Set Network Configuration 0x3B 🔴
9 Get Records Info 0x3C getRecordInformation
10 Download T&A Records 0x40 downloadAttendanceRecords
11 Upload T&A Record 0x41 uploadRecord 🔴
12 Download User's Info 0x42 🔴
13 Upload User’s Info 0x43 🔴
14 Download FP Template 0x44 🔴
15 Upload FP Template 0x45 🔴
16 Get Device ID 0x46 🔴
17 Set Device ID 0x47 🔴
18 Get Device Model code 0x48 getDeviceModel
19 Set Device Model Code 0x49 🔴
20 Get Manufacture Code 0x4A 🔴
21 Set Manufacture Code 0x4B 🔴
22 Delete Designated User Data 0x4C 🔴
23 Initialize User Profile 0x4D 🔴
24 Erase all Records/ New Records Flag 0x4E eraseNewRecordsFlag
25 Initialize System 0x4F 🔴
26 Get Timezone 0x50 🔴
27 Set Timezone 0x51 🔴
28 Get Group Info 0x52 🔴
29 Set Group Information 0x53 🔴
30 Get Alarm Setting 0x54 🔴
31 Set Alarm 0x55 🔴
32 Get Indexed Messages 0x56 🔴
33 Add Index Message 0x57 🔴
34 Get Headers of All Index MSG 0x58 🔴
35 Delete Index Message 0x59 🔴
36 Get T&A Status Parameters List 0x5A 🔴
37 Set T&A Status Parameters List 0x5B 🔴
38 Enroll Fingerprint Online 0x5C 🔴
39 Get Device Capacity Parameter 0x5D 🔴
40 Unlock Door Without Authentication 0x5E 🔴
41 Output T&A Records in Real Time 0x5F 🔴
42 Get Customized T&A Statuses 0x70 🔴
43 Set Customized T&A Statuses 0x71 🔴
44 Download User Data Extended 0x72 🔴
45 Upload User Data Extended 0x73 🔴
46 Get Communication Device ID 0x74 🔴
47 Modify Communication Device ID 0x75 🔴
48 Clear Admin Flag 0x3D 🔴
49 Get Time Stamp 0x3E 🔴
50 Set Time Stamp 0x3F 🔴
51 Get Random Number 0x76 🔴
52 Encrypt Device Model and Language Options with a Random Number 0x77 🔴
53 Get Specified Index Message 0x26 🔴
54 Add a Indexed Message 0x27 🔴
55 Get Headers of a Ranged Message 0x28 🔴
56 Delete a indexed Message 0x29 🔴
57 Get T&A Status Auto Switching Setting 0x20 🔴
58 Set T&A Status Auto Switching Setting 0x21 🔴
59 Get the Number of Daily Remaining Attempts of a Specified User 0x10 🔴
60 Set Daily Attempts Number of a Specified User 0x10 🔴
61 Download User Data Extended 0x22 🔴
62 Upload User Data Extended 0x23 🔴
63 Get Device Serial Number 0x24 🔴
64 Modify Device Serial Number 0x25 🔴
65 Get Special State 0x2F 🔴
66 Get Number of All Images 0x2A 🔴
67 Get Image Headers 0x2B 🔴
68 Get a Specified Image File 0x2C 🔴
69 Delete a Specified Image 0x2D 🔴
70 Update Firmware/Image/Voice 0x10 🔴
71 Directory Operation 0x12 🔴
72 Download Log Files 0x13 🔴
73 Get Admin Card ID/ Password 0x1C 🔴
74 Set Admin Card ID/ Password 0x1D 🔴
75 Get Daylight Saving Parameters 0x1A 🔴
76 Set Daylight Saving Parameters 0x1B 🔴
77 Get Language Options 0x18 🔴
78 Set Language Options 0x19 🔴
79 Send Feature Value/ Card ID to T&A Device 0x78 🔴
80 Get GPRS Parameters 0x16 🔴
81 Set GPRS Parameters 0x17 🔴
82 Get Device Extended Info 0x7A 🔴
83 Modify Device Extended Info 0x7B 🔴
84 Get Card Number 0x7E 🔴
85 Get Reboot Time 0x14 🔴
86 Set Reboot Time 0x15 🔴
87 Extended Commands 0x2E 🔴
88 UDP Search Device 0x02 🔴
89 UDP Set Device Parameter 0x03 🔴
90 Heartbeat Package 0x7F 🔴
91 Data Modification Alert 0x7D 🔴
92 Download Personnel Change Records 0x64 🔴
93 Download User’s Information Extended 0x65 🔴
94 Clear Change of Personnel Records/ Flags 0x1E 🔴
95 Get Device Configuration 3 0x34 🔴
96 set Device Configuration 3 0x35 🔴
97 Connection Authentication 0x04 🔴
98 Get Device Configuration4 0x36 🔴
99 Add Department 0x61 🔴
100 Delete Department 0x62 🔴
101 Download a Specified User’s Templates/Images 0x66 🔴
102 Batch Download Users’ Images 0x67 🔴
103 Get Result of Last Authentication Pass/Fail 0x79 🔴
104 Get Timezone Mode Status 0x68 🔴
105 Set Timezone Mode Status 0x69 🔴
106 Upload User’s images 0x6D 🔴
107 Add BT Device/User 0x6A 🔴
108 Delete Specific Address of Bluetooth Device 0x6B 🔴
109 Get Information of All Bluetooth Devices 0x6C 🔴
110 Get IEEE802.11 Network Setting 0x6E 🔴
111 Set IEEE 802.11 Network setting 0x6F 🔴
112 Get Authorization Code 0x05 🔴
113 Authorize 0x06 🔴
114 UDP Start Video 0x07 🔴
115 UDP Stop Video 0x08 🔴
116 UDP Command 0x09 🔴
117 Get Server URL 0x0A getServerURL
118 Set Server URL 0x0B setServerURL 🔴
119 Test User 0x0C 🔴

License

MIT