@samlab-corp/sfm-node 0.2.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/data.d.ts +4 -4
- package/dist/commands/data.js +12 -12
- package/dist/commands/data.js.map +1 -1
- package/dist/commands/fingerprint.d.ts +23 -23
- package/dist/commands/fingerprint.d.ts.map +1 -1
- package/dist/commands/fingerprint.js +114 -114
- package/dist/commands/fingerprint.js.map +1 -1
- package/dist/commands/firmware.d.ts +5 -5
- package/dist/commands/firmware.d.ts.map +1 -1
- package/dist/commands/firmware.js +32 -32
- package/dist/commands/firmware.js.map +1 -1
- package/dist/commands/freescan.d.ts +16 -16
- package/dist/commands/freescan.d.ts.map +1 -1
- package/dist/commands/freescan.js +41 -41
- package/dist/commands/freescan.js.map +1 -1
- package/dist/commands/index.d.ts +12 -12
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +14 -14
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/system.d.ts +12 -12
- package/dist/commands/system.d.ts.map +1 -1
- package/dist/commands/system.js +14 -14
- package/dist/commands/system.js.map +1 -1
- package/dist/constants/protocol.d.ts +25 -0
- package/dist/constants/protocol.d.ts.map +1 -1
- package/dist/constants/protocol.js +26 -1
- package/dist/constants/protocol.js.map +1 -1
- package/dist/core/client.d.ts +33 -21
- package/dist/core/client.d.ts.map +1 -1
- package/dist/core/client.js +72 -52
- package/dist/core/client.js.map +1 -1
- package/dist/core/crypto.d.ts +19 -19
- package/dist/core/crypto.js +26 -26
- package/dist/core/crypto.js.map +1 -1
- package/dist/core/errors.d.ts +6 -6
- package/dist/core/errors.d.ts.map +1 -1
- package/dist/core/errors.js +46 -32
- package/dist/core/errors.js.map +1 -1
- package/dist/core/index.d.ts +3 -3
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +5 -2
- package/dist/core/index.js.map +1 -1
- package/dist/core/packet.d.ts +81 -41
- package/dist/core/packet.d.ts.map +1 -1
- package/dist/core/packet.js +256 -60
- package/dist/core/packet.js.map +1 -1
- package/dist/core/serial.d.ts +37 -27
- package/dist/core/serial.d.ts.map +1 -1
- package/dist/core/serial.js +91 -62
- package/dist/core/serial.js.map +1 -1
- package/dist/core/tcp.d.ts +14 -14
- package/dist/core/tcp.js +17 -17
- package/dist/core/tcp.js.map +1 -1
- package/package.json +2 -2
package/dist/commands/data.d.ts
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* 멀티패킷 데이터 전송/수신 명령
|
|
3
3
|
*/
|
|
4
4
|
import type { SfmClient } from "../core/index.js";
|
|
5
5
|
export interface MultiPacketOptions {
|
|
6
6
|
onProgress?: (packetIndex: number, totalPackets: number) => void;
|
|
7
7
|
}
|
|
8
8
|
/**
|
|
9
|
-
*
|
|
9
|
+
* 짝수/홀수 바이트 체크섬 계산
|
|
10
10
|
*/
|
|
11
11
|
export declare function calcEvenOddChecksum(data: Buffer | Uint8Array): number;
|
|
12
12
|
export declare class DataCommands {
|
|
13
13
|
private client;
|
|
14
14
|
constructor(client: SfmClient);
|
|
15
15
|
/**
|
|
16
|
-
*
|
|
16
|
+
* 멀티패킷 데이터 전송
|
|
17
17
|
*/
|
|
18
18
|
send(command: number, data: Buffer, chunkSize?: number, options?: MultiPacketOptions): Promise<void>;
|
|
19
19
|
/**
|
|
20
|
-
*
|
|
20
|
+
* 멀티패킷 데이터 수신
|
|
21
21
|
*/
|
|
22
22
|
recv(command: number, totalSize: number, options?: MultiPacketOptions): Promise<Buffer>;
|
|
23
23
|
private _sendMultiPacket;
|
package/dist/commands/data.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* 멀티패킷 데이터 전송/수신 명령
|
|
4
4
|
*/
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.DataCommands = void 0;
|
|
7
7
|
exports.calcEvenOddChecksum = calcEvenOddChecksum;
|
|
8
8
|
const index_js_1 = require("../constants/index.js");
|
|
9
9
|
/**
|
|
10
|
-
*
|
|
10
|
+
* 짝수/홀수 바이트 체크섬 계산
|
|
11
11
|
*/
|
|
12
12
|
function calcEvenOddChecksum(data) {
|
|
13
13
|
let evenSum = 0;
|
|
@@ -29,7 +29,7 @@ class DataCommands {
|
|
|
29
29
|
this.client = client;
|
|
30
30
|
}
|
|
31
31
|
/**
|
|
32
|
-
*
|
|
32
|
+
* 멀티패킷 데이터 전송
|
|
33
33
|
*/
|
|
34
34
|
async send(command, data, chunkSize = 0x4000, options = {}) {
|
|
35
35
|
const result = await this._sendMultiPacket(command, data, chunkSize, options);
|
|
@@ -38,7 +38,7 @@ class DataCommands {
|
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
/**
|
|
41
|
-
*
|
|
41
|
+
* 멀티패킷 데이터 수신
|
|
42
42
|
*/
|
|
43
43
|
async recv(command, totalSize, options = {}) {
|
|
44
44
|
const result = await this._recvMultiPacket(command, totalSize, options);
|
|
@@ -72,17 +72,17 @@ class DataCommands {
|
|
|
72
72
|
const cmdResponse = await this.client.sendCommand(command, param, currentChunkSize, 0);
|
|
73
73
|
if (!cmdResponse.valid) {
|
|
74
74
|
return {
|
|
75
|
-
error:
|
|
75
|
+
error: `명령 전송 실패 (패킷 ${packetIndex}): ${cmdResponse.error}`,
|
|
76
76
|
};
|
|
77
77
|
}
|
|
78
78
|
const chunk = sendData.subarray(offset, offset + currentChunkSize);
|
|
79
79
|
const writeResult = await this._writeWithTimeout(this.client.serial, chunk);
|
|
80
80
|
if (writeResult < 0) {
|
|
81
|
-
return { error:
|
|
81
|
+
return { error: `데이터 쓰기 실패 (패킷 ${packetIndex})` };
|
|
82
82
|
}
|
|
83
83
|
if (writeResult < currentChunkSize) {
|
|
84
84
|
return {
|
|
85
|
-
error:
|
|
85
|
+
error: `불완전한 데이터 쓰기 (패킷 ${packetIndex}): ${writeResult}/${currentChunkSize}`,
|
|
86
86
|
};
|
|
87
87
|
}
|
|
88
88
|
const checksumBuf = Buffer.alloc(4);
|
|
@@ -91,12 +91,12 @@ class DataCommands {
|
|
|
91
91
|
const ackResponse = await this.client.receiveResponse();
|
|
92
92
|
if (!ackResponse.valid) {
|
|
93
93
|
return {
|
|
94
|
-
error:
|
|
94
|
+
error: `응답 수신 실패 (패킷 ${packetIndex}): ${ackResponse.error}`,
|
|
95
95
|
};
|
|
96
96
|
}
|
|
97
97
|
if (ackResponse.flag !== index_js_1.SFM_ERROR.SUCCESS) {
|
|
98
98
|
return {
|
|
99
|
-
error:
|
|
99
|
+
error: `전송 실패 (패킷 ${packetIndex}): flag=0x${ackResponse.flag?.toString(16) ?? "??"}`,
|
|
100
100
|
};
|
|
101
101
|
}
|
|
102
102
|
options.onProgress?.(packetIndex, totalPackets);
|
|
@@ -114,7 +114,7 @@ class DataCommands {
|
|
|
114
114
|
if (!cmdResponse.valid) {
|
|
115
115
|
return {
|
|
116
116
|
data: null,
|
|
117
|
-
error:
|
|
117
|
+
error: `명령 수신 실패: ${cmdResponse.error}`,
|
|
118
118
|
};
|
|
119
119
|
}
|
|
120
120
|
const chunkSize = cmdResponse.size ?? 0;
|
|
@@ -127,7 +127,7 @@ class DataCommands {
|
|
|
127
127
|
await this._sendResponseFlag(command, index_js_1.SFM_ERROR.SCAN_FAIL);
|
|
128
128
|
return {
|
|
129
129
|
data: null,
|
|
130
|
-
error:
|
|
130
|
+
error: `불완전한 데이터 수신 (패킷 ${packetIndex})`,
|
|
131
131
|
};
|
|
132
132
|
}
|
|
133
133
|
const dataChunk = chunkData.subarray(0, chunkSize);
|
|
@@ -137,7 +137,7 @@ class DataCommands {
|
|
|
137
137
|
await this._sendResponseFlag(command, index_js_1.SFM_ERROR.SCAN_FAIL);
|
|
138
138
|
return {
|
|
139
139
|
data: null,
|
|
140
|
-
error:
|
|
140
|
+
error: `체크섬 불일치 (패킷 ${packetIndex})`,
|
|
141
141
|
};
|
|
142
142
|
}
|
|
143
143
|
dataChunk.copy(resultBuf, receivedTotal, 0, chunkSize);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data.js","sourceRoot":"","sources":["../../src/commands/data.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"data.js","sourceRoot":"","sources":["../../src/commands/data.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AA0BH,kDAkBC;AA1CD,oDAAmE;AAqBnE;;GAEG;AACH,SAAgB,mBAAmB,CAAC,IAAyB;IAC3D,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvE,MAAM,SAAS,GAAG,SAAS,GAAG,CAAC,CAAC;IAEhC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACtC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;QACnB,MAAM,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,CAAC;IAED,IAAI,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC5B,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9B,CAAC;IAED,OAAO,CAAC,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;AAC5C,CAAC;AAED,MAAa,YAAY;IACvB,YAAoB,MAAiB;QAAjB,WAAM,GAAN,MAAM,CAAW;IAAG,CAAC;IAEzC;;OAEG;IACH,KAAK,CAAC,IAAI,CACR,OAAe,EACf,IAAY,EACZ,SAAS,GAAG,MAAM,EAClB,UAA8B,EAAE;QAEhC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CACxC,OAAO,EACP,IAAI,EACJ,SAAS,EACT,OAAO,CACR,CAAC;QACF,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CACR,OAAe,EACf,SAAiB,EACjB,UAA8B,EAAE;QAEhC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QACxE,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;QACD,OAAO,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAC5B,OAAe,EACf,IAAY,EACZ,SAAS,GAAG,MAAM,EAClB,UAA8B,EAAE;QAEhC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACzB,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC;QAC7B,IAAI,SAAS,GAAG,QAAQ,EAAE,CAAC;YACzB,SAAS,GAAG,QAAQ,CAAC;QACvB,CAAC;QAED,IAAI,QAAQ,GAAW,IAAI,CAAC;QAE5B,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACjD,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,0BAAe,CAAC,UAAU,EAAE,CAAC;gBAC3D,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAC/B,CAAC;YACD,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACjD,CAAC;QAED,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC;QAClC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC;QAEtD,KAAK,IAAI,WAAW,GAAG,CAAC,EAAE,WAAW,GAAG,YAAY,EAAE,WAAW,EAAE,EAAE,CAAC;YACpE,MAAM,MAAM,GAAG,WAAW,GAAG,SAAS,CAAC;YACvC,MAAM,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;YACrC,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YAExD,MAAM,KAAK,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,GAAG,YAAY,CAAC;YACjD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAC/C,OAAO,EACP,KAAK,EACL,gBAAgB,EAChB,CAAC,CACF,CAAC;YACF,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;gBACvB,OAAO;oBACL,KAAK,EAAE,gBAAgB,WAAW,MAAM,WAAW,CAAC,KAAK,EAAE;iBAC5D,CAAC;YACJ,CAAC;YAED,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAAC,CAAC;YACnE,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAC9C,IAAI,CAAC,MAAM,CAAC,MAAM,EAClB,KAAK,CACN,CAAC;YACF,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;gBACpB,OAAO,EAAE,KAAK,EAAE,iBAAiB,WAAW,GAAG,EAAE,CAAC;YACpD,CAAC;YACD,IAAI,WAAW,GAAG,gBAAgB,EAAE,CAAC;gBACnC,OAAO;oBACL,KAAK,EAAE,mBAAmB,WAAW,MAAM,WAAW,IAAI,gBAAgB,EAAE;iBAC7E,CAAC;YACJ,CAAC;YAED,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACpC,WAAW,CAAC,aAAa,CAAC,mBAAmB,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;YAC/D,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;YAE9D,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;YACxD,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;gBACvB,OAAO;oBACL,KAAK,EAAE,gBAAgB,WAAW,MAAM,WAAW,CAAC,KAAK,EAAE;iBAC5D,CAAC;YACJ,CAAC;YACD,IAAI,WAAW,CAAC,IAAI,KAAK,oBAAS,CAAC,OAAO,EAAE,CAAC;gBAC3C,OAAO;oBACL,KAAK,EAAE,aAAa,WAAW,aAAa,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE;iBACrF,CAAC;YACJ,CAAC;YAED,OAAO,CAAC,UAAU,EAAE,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;QAClD,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACzB,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAC5B,OAAe,EACf,aAAqB,EACrB,UAA8B,EAAE;QAEhC,IAAI,aAAa,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAChD,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC9C,IAAI,aAAa,GAAG,CAAC,CAAC;QAEtB,OAAO,aAAa,GAAG,aAAa,EAAE,CAAC;YACrC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;YACxD,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;gBACvB,OAAO;oBACL,IAAI,EAAE,IAAI;oBACV,KAAK,EAAE,aAAa,WAAW,CAAC,KAAK,EAAE;iBACxC,CAAC;YACJ,CAAC;YAED,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,IAAI,CAAC,CAAC;YACxC,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,IAAI,CAAC,CAAC;YAC1C,MAAM,WAAW,GAAG,UAAU,IAAI,EAAE,CAAC;YACrC,MAAM,YAAY,GAAG,UAAU,GAAG,MAAM,CAAC;YAEzC,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;YAC/D,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAC3C,IAAI,CAAC,MAAM,CAAC,MAAM,EAClB,SAAS,GAAG,CAAC,EACb,WAAW,CACZ,CAAC;YACF,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,SAAS,GAAG,CAAC,EAAE,CAAC;gBACnD,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,oBAAS,CAAC,SAAS,CAAC,CAAC;gBAC3D,OAAO;oBACL,IAAI,EAAE,IAAI;oBACV,KAAK,EAAE,mBAAmB,WAAW,GAAG;iBACzC,CAAC;YACJ,CAAC;YAED,MAAM,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;YACnD,MAAM,gBAAgB,GAAG,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;YAE3D,MAAM,kBAAkB,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;YAC1D,IAAI,kBAAkB,KAAK,gBAAgB,EAAE,CAAC;gBAC5C,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,oBAAS,CAAC,SAAS,CAAC,CAAC;gBAC3D,OAAO;oBACL,IAAI,EAAE,IAAI;oBACV,KAAK,EAAE,eAAe,WAAW,GAAG;iBACrC,CAAC;YACJ,CAAC;YAED,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;YACvD,aAAa,IAAI,SAAS,CAAC;YAE3B,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,oBAAS,CAAC,OAAO,CAAC,CAAC;YACzD,OAAO,CAAC,UAAU,EAAE,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;YAEhD,IAAI,WAAW,GAAG,CAAC,IAAI,YAAY;gBAAE,MAAM;QAC7C,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACjD,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,0BAAe,CAAC,UAAU,EAAE,CAAC;gBAC3D,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAC/B,CAAC;YACD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;YAC1E,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAC1C,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAC1C,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAC7B,OAAe,EACf,IAAY;QAEZ,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IACrD,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAC7B,MAAkB,EAClB,IAAyB;QAEzB,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACzB,OAAO,IAAI,CAAC,MAAM,CAAC;QACrB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,CAAC,CAAC;QACZ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAC5B,MAAkB,EAClB,MAAc,EACd,SAAS,GAAG,IAAI;QAEhB,IAAI,CAAC;YACH,OAAO,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAC9C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;CACF;AA7ND,oCA6NC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* 지문 등록/검증/식별/캡처 명령
|
|
3
3
|
*/
|
|
4
4
|
import { SFM_FLAG } from "../constants/index.js";
|
|
5
5
|
import type { SfmClient } from "../core/index.js";
|
|
@@ -41,21 +41,21 @@ export declare class FingerprintCommands {
|
|
|
41
41
|
private client;
|
|
42
42
|
private system;
|
|
43
43
|
constructor(client: SfmClient);
|
|
44
|
-
/** @internal
|
|
44
|
+
/** @internal SystemCommands 참조 설정 */
|
|
45
45
|
_setSystemCommands(system: SystemCommands): void;
|
|
46
46
|
/**
|
|
47
|
-
*
|
|
47
|
+
* 등록 스캔 1 - ES 명령 전송 + 0x62 (스캔 성공) + 0x61 (템플릿 1 저장) 수신
|
|
48
48
|
*/
|
|
49
49
|
enrollScan1(userId: number, flag?: 0, { onLog }?: LogOptions): Promise<EnrollResult>;
|
|
50
50
|
/**
|
|
51
|
-
*
|
|
51
|
+
* 등록 스캔 2 - 0x62 (스캔 성공) + 0x61 (템플릿 2 저장) 수신
|
|
52
52
|
*/
|
|
53
53
|
enrollScan2({ onLog }?: LogOptions): Promise<EnrollResult>;
|
|
54
54
|
/**
|
|
55
|
-
*
|
|
55
|
+
* 등록 (현재 ENROLL_MODE 설정에 자동 적응)
|
|
56
56
|
*
|
|
57
|
-
* - SCAN1 (0x30): 1
|
|
58
|
-
* - SCAN2_MERGE (0x31) / SCAN2_DUAL (0x41):
|
|
57
|
+
* - SCAN1 (0x30): 1회 스캔만
|
|
58
|
+
* - SCAN2_MERGE (0x31) / SCAN2_DUAL (0x41): 스캔 1 + 스캔 2
|
|
59
59
|
*/
|
|
60
60
|
enroll(userId: number, flag?: 0, { onLog }?: LogOptions): Promise<EnrollResult>;
|
|
61
61
|
/**
|
|
@@ -67,25 +67,25 @@ export declare class FingerprintCommands {
|
|
|
67
67
|
*/
|
|
68
68
|
identify({ onLog }?: LogOptions): Promise<IdentifyResult>;
|
|
69
69
|
/**
|
|
70
|
-
*
|
|
70
|
+
* 특정 템플릿 삭제 (DT: 0x16)
|
|
71
71
|
*/
|
|
72
72
|
deleteTemplate(userId: number): Promise<CommandResult>;
|
|
73
73
|
/**
|
|
74
|
-
*
|
|
74
|
+
* 전체 템플릿 삭제 (DA: 0x17)
|
|
75
75
|
*/
|
|
76
76
|
deleteAllTemplates(): Promise<CommandResult>;
|
|
77
77
|
/**
|
|
78
|
-
*
|
|
78
|
+
* 등록된 사용자 ID 목록 조회 (LT: 0x18)
|
|
79
79
|
*/
|
|
80
80
|
listUserIds({ onLog }?: LogOptions): Promise<ListUserIdsResult>;
|
|
81
81
|
/**
|
|
82
|
-
*
|
|
82
|
+
* 디바이스에서 템플릿 읽기 (RTX: 0x89, 핑퐁 프로토콜)
|
|
83
83
|
*
|
|
84
|
-
* RTX
|
|
85
|
-
*
|
|
84
|
+
* RTX 응답 Size 필드: (templateCount << 16) | templateSize
|
|
85
|
+
* 예: 131456 = 0x00020180 → count=2, size=384
|
|
86
86
|
*
|
|
87
|
-
*
|
|
88
|
-
*
|
|
87
|
+
* 흐름: RTX 전송 → 384B 데이터 수신 → ACK (RTX) 전송 → 384B 데이터 수신 → ...
|
|
88
|
+
* 디바이스 flag: 0x74 (CONTINUE) = 추가 청크 있음, 0x61 (SUCCESS) = 마지막 청크.
|
|
89
89
|
*/
|
|
90
90
|
readTemplate(userId: number, { onLog }?: LogOptions): Promise<{
|
|
91
91
|
success: boolean;
|
|
@@ -93,9 +93,9 @@ export declare class FingerprintCommands {
|
|
|
93
93
|
error: string | null;
|
|
94
94
|
}>;
|
|
95
95
|
/**
|
|
96
|
-
*
|
|
96
|
+
* 디바이스에 템플릿 쓰기 (ET: 0x07 — 단순 템플릿 등록)
|
|
97
97
|
*
|
|
98
|
-
*
|
|
98
|
+
* 키오스크 호환 프로토콜 (rs232/fingerPrinter.js enrollByTemplate):
|
|
99
99
|
* 1. [Command Packet 13B] + [Template Data] + [END 0x0A] 를 한 번에 전송
|
|
100
100
|
* 2. 디바이스로부터 2개 응답 수신 (스캔 처리 + 최종 결과)
|
|
101
101
|
*
|
|
@@ -108,15 +108,15 @@ export declare class FingerprintCommands {
|
|
|
108
108
|
error: string | null;
|
|
109
109
|
}>;
|
|
110
110
|
/**
|
|
111
|
-
*
|
|
111
|
+
* 디바이스에 템플릿 쓰기 (ETX: 0x87 — 확장 템플릿 등록)
|
|
112
112
|
*
|
|
113
|
-
*
|
|
114
|
-
*
|
|
113
|
+
* 확장 데이터 전송 프로토콜 (Appendix B):
|
|
114
|
+
* 멀티 청크 지원: 768B → 384B 2개 청크를 하나의 ETX 세션에서 전송.
|
|
115
115
|
*
|
|
116
116
|
* 1. sendCommand(ETX, userId, sizeField, flag) → SUCCESS(0x61)
|
|
117
117
|
* sizeField: (templateCount << 24) | (enrollCount << 16) | chunkSize
|
|
118
|
-
* 2.
|
|
119
|
-
*
|
|
118
|
+
* 2. 각 청크별:
|
|
119
|
+
* 데이터 패킷 헤더(13B) + 데이터 본문(384B) + 데이터 체크섬(4B)
|
|
120
120
|
* → DATA_OK(0x83) 응답 수신
|
|
121
121
|
*/
|
|
122
122
|
writeTemplateMulti(userId: number, templateData: Buffer, flag?: (typeof SFM_FLAG)[keyof typeof SFM_FLAG], { onLog }?: LogOptions): Promise<{
|
|
@@ -125,7 +125,7 @@ export declare class FingerprintCommands {
|
|
|
125
125
|
error: string | null;
|
|
126
126
|
}>;
|
|
127
127
|
/**
|
|
128
|
-
*
|
|
128
|
+
* 지문 이미지 캡처 (SI: 0x15)
|
|
129
129
|
*/
|
|
130
130
|
captureImage({ onLog }?: LogOptions): Promise<CaptureImageResult>;
|
|
131
131
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fingerprint.d.ts","sourceRoot":"","sources":["../../src/commands/fingerprint.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAa,QAAQ,EAAW,MAAM,uBAAuB,CAAC;AAErE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjE,UAAU,UAAU;IAClB,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,qBAAa,mBAAmB;IAGlB,OAAO,CAAC,MAAM;IAF1B,OAAO,CAAC,MAAM,CAA+B;gBAEzB,MAAM,EAAE,SAAS;IAErC,
|
|
1
|
+
{"version":3,"file":"fingerprint.d.ts","sourceRoot":"","sources":["../../src/commands/fingerprint.ts"],"names":[],"mappings":"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"}
|