antprotocol-websdk 1.0.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.
Files changed (57) hide show
  1. package/README.md +27 -0
  2. package/dist/common/config/ProtocolRuntimeConfig.d.ts +36 -0
  3. package/dist/common/config/ProtocolRuntimeConfig.d.ts.map +1 -0
  4. package/dist/common/config/SdkConfig.d.ts +136 -0
  5. package/dist/common/config/SdkConfig.d.ts.map +1 -0
  6. package/dist/common/config/index.d.ts +8 -0
  7. package/dist/common/config/index.d.ts.map +1 -0
  8. package/dist/common/model/ProtocolGlobalModel.d.ts +416 -0
  9. package/dist/common/model/ProtocolGlobalModel.d.ts.map +1 -0
  10. package/dist/common/utils/CalculateCRC16Modbus.d.ts +2 -0
  11. package/dist/common/utils/CalculateCRC16Modbus.d.ts.map +1 -0
  12. package/dist/common/utils/UuidUtil.d.ts +19 -0
  13. package/dist/common/utils/UuidUtil.d.ts.map +1 -0
  14. package/dist/common/utils/gbk-encoder/GbkEncoder.d.ts +107 -0
  15. package/dist/common/utils/gbk-encoder/GbkEncoder.d.ts.map +1 -0
  16. package/dist/common/utils/gbk-encoder/generate-dictionary.d.ts +29 -0
  17. package/dist/common/utils/gbk-encoder/generate-dictionary.d.ts.map +1 -0
  18. package/dist/common/utils/gbk-encoder/hanzi-dictionary.d.ts +35 -0
  19. package/dist/common/utils/gbk-encoder/hanzi-dictionary.d.ts.map +1 -0
  20. package/dist/common/utils/gbk-encoder/index.d.ts +8 -0
  21. package/dist/common/utils/gbk-encoder/index.d.ts.map +1 -0
  22. package/dist/common/utils/gbk-encoder/single-byte-dictionary.d.ts +35 -0
  23. package/dist/common/utils/gbk-encoder/single-byte-dictionary.d.ts.map +1 -0
  24. package/dist/common/utils/logPlugins.d.ts +9 -0
  25. package/dist/common/utils/logPlugins.d.ts.map +1 -0
  26. package/dist/common/utils/time.d.ts +29 -0
  27. package/dist/common/utils/time.d.ts.map +1 -0
  28. package/dist/custom_analyze/bms_0x11_1.0.0.d.ts +24 -0
  29. package/dist/custom_analyze/bms_0x11_1.0.0.d.ts.map +1 -0
  30. package/dist/custom_analyze/bms_0x13_1.0.0.d.ts +20 -0
  31. package/dist/custom_analyze/bms_0x13_1.0.0.d.ts.map +1 -0
  32. package/dist/custom_analyze/bms_0x14_1.0.0.d.ts +22 -0
  33. package/dist/custom_analyze/bms_0x14_1.0.0.d.ts.map +1 -0
  34. package/dist/custom_analyze/bms_0x61_1.0.0.d.ts +35 -0
  35. package/dist/custom_analyze/bms_0x61_1.0.0.d.ts.map +1 -0
  36. package/dist/custom_analyze/bms_0x63_1.0.0.d.ts +16 -0
  37. package/dist/custom_analyze/bms_0x63_1.0.0.d.ts.map +1 -0
  38. package/dist/custom_analyze/bms_0x80_1.0.0.d.ts +22 -0
  39. package/dist/custom_analyze/bms_0x80_1.0.0.d.ts.map +1 -0
  40. package/dist/custom_analyze/bms_common_1.0.0.d.ts +50 -0
  41. package/dist/custom_analyze/bms_common_1.0.0.d.ts.map +1 -0
  42. package/dist/index.d.ts +14 -0
  43. package/dist/index.d.ts.map +1 -0
  44. package/dist/index.js +11416 -0
  45. package/dist/protocol/BMSProtocol.d.ts +5 -0
  46. package/dist/protocol/BMSProtocol.d.ts.map +1 -0
  47. package/dist/protocol/ChargerProtocol.d.ts +5 -0
  48. package/dist/protocol/ChargerProtocol.d.ts.map +1 -0
  49. package/dist/protocol/DisplayerProtocol.d.ts +5 -0
  50. package/dist/protocol/DisplayerProtocol.d.ts.map +1 -0
  51. package/dist/protocol/PowerProtocol.d.ts +5 -0
  52. package/dist/protocol/PowerProtocol.d.ts.map +1 -0
  53. package/dist/protocol/common/ProtocolBasic.d.ts +320 -0
  54. package/dist/protocol/common/ProtocolBasic.d.ts.map +1 -0
  55. package/dist/protocol/common/ProtocolInterface.d.ts +91 -0
  56. package/dist/protocol/common/ProtocolInterface.d.ts.map +1 -0
  57. package/package.json +55 -0
@@ -0,0 +1,5 @@
1
+ import ProtocolBasic from './common/ProtocolBasic';
2
+ export default class BMSProtocol extends ProtocolBasic {
3
+ getProtocolType(): DeviceType;
4
+ }
5
+ //# sourceMappingURL=BMSProtocol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BMSProtocol.d.ts","sourceRoot":"","sources":["../../websdk/protocol/BMSProtocol.ts"],"names":[],"mappings":"AAAA,OAAQ,aAAa,MAAO,wBAAwB,CAAC;AACrD,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,aAAa;IAC9C,eAAe,IAAI,UAAU;CAGpC"}
@@ -0,0 +1,5 @@
1
+ import ProtocolBasic from './common/ProtocolBasic';
2
+ export default class ChargerProtocol extends ProtocolBasic {
3
+ getProtocolType(): DeviceType;
4
+ }
5
+ //# sourceMappingURL=ChargerProtocol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChargerProtocol.d.ts","sourceRoot":"","sources":["../../websdk/protocol/ChargerProtocol.ts"],"names":[],"mappings":"AAAA,OAAQ,aAAa,MAAO,wBAAwB,CAAC;AAErD,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,aAAa;IAC/C,eAAe,IAAI,UAAU;CAGvC"}
@@ -0,0 +1,5 @@
1
+ import ProtocolBasic from './common/ProtocolBasic';
2
+ export default class DisplayerProtocol extends ProtocolBasic {
3
+ getProtocolType(): DeviceType;
4
+ }
5
+ //# sourceMappingURL=DisplayerProtocol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DisplayerProtocol.d.ts","sourceRoot":"","sources":["../../websdk/protocol/DisplayerProtocol.ts"],"names":[],"mappings":"AAAA,OAAQ,aAAa,MAAO,wBAAwB,CAAC;AACrD,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,aAAa;IACpD,eAAe,IAAI,UAAU;CAGpC"}
@@ -0,0 +1,5 @@
1
+ import ProtocolBasic from './common/ProtocolBasic';
2
+ export default class PowerProtocol extends ProtocolBasic {
3
+ getProtocolType(): DeviceType;
4
+ }
5
+ //# sourceMappingURL=PowerProtocol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PowerProtocol.d.ts","sourceRoot":"","sources":["../../websdk/protocol/PowerProtocol.ts"],"names":[],"mappings":"AAAA,OAAQ,aAAa,MAAO,wBAAwB,CAAC;AAErD,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,aAAa;IAC7C,eAAe,IAAI,UAAU;CAGvC"}
@@ -0,0 +1,320 @@
1
+ import type ProtocolInterface from "./ProtocolInterface";
2
+ /**
3
+ * 协议核心实现抽象类
4
+ */
5
+ export default abstract class ProtocolBasic implements ProtocolInterface {
6
+ /**
7
+ * 获取协议类型
8
+ */
9
+ abstract getProtocolType(): DeviceType;
10
+ /**
11
+ * 本地存储的协议数据
12
+ */
13
+ private static storeProtocols;
14
+ /**
15
+ * 从API实时获取协议文件
16
+ */
17
+ private getListForApi;
18
+ /**
19
+ * 对外提供下载下拉框渲染的数据
20
+ */
21
+ list(forceRefresh?: boolean | false): Promise<SelectProtocol[]>;
22
+ /**
23
+ * 刷新协议缓存
24
+ */
25
+ private refreshCache;
26
+ /**
27
+ * 从 indexedDB 中获取协议
28
+ * @param key
29
+ * @returns
30
+ */
31
+ private fetchLocalProtocol;
32
+ /**
33
+ * 检查协议的 md5 值是否匹配,不匹配则更新并保存
34
+ * @param apiProtocol
35
+ * @param localProtocol
36
+ * @param key
37
+ */
38
+ private updateProtocolIfNeeded;
39
+ /**
40
+ * 新增协议并存储到 storeProtocols 和本地缓存中
41
+ * @param apiProtocol
42
+ * @param key
43
+ */
44
+ private addNewProtocol;
45
+ /**
46
+ * 保存协议到本地存储
47
+ * @param key
48
+ * @param protocol
49
+ */
50
+ private saveProtocol;
51
+ /**
52
+ * 用于被渲染的Select数据
53
+ */
54
+ private getSelectList;
55
+ /**
56
+ * 通过 apiProtocol 对象获取 StoreProtocol。方法实现了协议下载的核心功能
57
+ */
58
+ private getStoreProtocol;
59
+ /**
60
+ * 从 indexedDB 中获取协议数据
61
+ */
62
+ private getProtocolFromIndexedDB;
63
+ /**
64
+ * 将协议数据保存到 indexedDB
65
+ */
66
+ private saveProtocolToIndexedDB;
67
+ /**
68
+ * 清空缓存中的协议数据
69
+ */
70
+ static cleanStore(): void;
71
+ /**
72
+ * 构建下发指令
73
+ */
74
+ buildCommand(protocolMD5: string, versionNum: string, packetConfigType: PacketConfigType, fun: string, code: string, ...input: string[]): BuildSendResult;
75
+ /**
76
+ * 将存储的协议类型转换为标准的DeviceType类型
77
+ * @param type 存储的协议类型字符串
78
+ * @returns 标准的DeviceType类型
79
+ */
80
+ static getStandardDeviceType(type: string | undefined): DeviceType | undefined;
81
+ /**
82
+ * 获取下发的指令定义
83
+ * @param protocolMD5
84
+ * @param versionNum
85
+ * @param packetConfigType
86
+ * @param fun
87
+ * @param code
88
+ * @returns
89
+ */
90
+ getCommandDefine(protocolMD5: string, versionNum: string, packetConfigType: PacketConfigType, fun: string, code: string): CommandDetail | undefined;
91
+ /**
92
+ * 简单构建指令
93
+ * @param prefix 协议前缀
94
+ * @param suffix 协议后缀
95
+ * @param funCode 功能码
96
+ * @param registCode 寄存器码
97
+ * @param payload 荷载
98
+ * @param needCrc 是否需要CRC校验。默认true
99
+ * @returns 构建好的指令
100
+ */
101
+ simpleBuildCommand(prefix: string, suffix: string, funCode: string, registCode: string, payload: string, needCrc?: boolean): string;
102
+ /**
103
+ * 构建下发指令
104
+ */
105
+ buildCommandForHex(protocolMD5: string, versionNum: string, packetConfigType: PacketConfigType, fun: string, code: string, ...hexInput: string[]): BuildSendResult;
106
+ /**
107
+ * 根据数据类型推断荷载是否需要高地位互换
108
+ * @param dataType
109
+ * @returns
110
+ */
111
+ private static highLowTransition;
112
+ /**
113
+ * 应用自定义通讯地址到前缀
114
+ * @param prefix 原始前缀
115
+ * @returns 应用自定义通讯地址后的前缀
116
+ */
117
+ private static applyCustomCommunicationAddress;
118
+ /**
119
+ * 构建批量读指令
120
+ */
121
+ buildBulkReadCommand(protocolMD5: string, versionNum: string, packetConfigType: PacketConfigType, code: string, ...input: string[]): BuildSendResult;
122
+ /**
123
+ * 根据输入的字符串数组填充帧头、荷载、帧尾
124
+ * @param childProtocol
125
+ * @param protocolPayload 协议中的原始荷载Hex。可能包含占位符
126
+ * @param input
127
+ * @returns
128
+ */
129
+ private placeholdersHandel;
130
+ private packageCommand;
131
+ /**
132
+ * 指令填充。将带有占位符的指令填充成为完整的指令
133
+ * @param command
134
+ * @param input
135
+ * @param dataType
136
+ * @param highLowTransition
137
+ * @param range 倍数
138
+ * @returns
139
+ */
140
+ private static fillPlaceholder;
141
+ /**
142
+ * 构建批量指令Hex包
143
+ * @param prefix
144
+ * @param data
145
+ * @param useCrc
146
+ * @param suffix
147
+ * @returns
148
+ */
149
+ private packageBulkReadCommand;
150
+ /**
151
+ * 获取子协议
152
+ * @param md5
153
+ * @param versionNum
154
+ * @param packetConfigType
155
+ * @returns
156
+ */
157
+ get(md5: string, versionNum: string, packetConfigType: PacketConfigType): ChildProtocol | undefined;
158
+ /**
159
+ * 获取制定类型的协议包配置.主要用于获取CRC校验方式
160
+ * @param md5
161
+ * @param packetConfigType
162
+ * @returns
163
+ */
164
+ static getPacketConfig(md5: string, packetConfigType: PacketConfigType): PacketConfig | undefined;
165
+ /**
166
+ * 根据协议code和子协议版本获取子协议
167
+ * @param code 协议code
168
+ * @param versionNum 子版本号
169
+ * @param packetConfigType 包配置类型
170
+ * @returns
171
+ */
172
+ static findProtocolByCode(code: string, versionNum: string, packetConfigType: PacketConfigType): ChildProtocol | undefined;
173
+ /**
174
+ * 根据协议md5和子协议版本获取子协议
175
+ * @param md5 协议md5
176
+ * @param versionNum 子版本号
177
+ * @param packetConfigType 包配置类型
178
+ * @returns
179
+ */
180
+ static findProtocolByMD5(md5: string, versionNum: string, packetConfigType: PacketConfigType): ChildProtocol | undefined;
181
+ /**
182
+ * 根据协议md5获取主协议
183
+ * @param md5 协议md5
184
+ * @returns 主协议
185
+ */
186
+ static getMainProtocol(md5: string): MainProtocol | undefined;
187
+ /**
188
+ * 根据md5/code和子版本号查找协议
189
+ */
190
+ private static findProtocol;
191
+ /**
192
+ * 根据命令code在协议中查找批量读下发指令
193
+ * @param code
194
+ * @param protocol
195
+ * @returns
196
+ */
197
+ private static findBulkReadCommandDetail;
198
+ /**
199
+ * 根据功能码和命令code在协议中查找下发指令
200
+ * @param func 功能码
201
+ * @param code 英文编码
202
+ * @param protocol
203
+ * @returns
204
+ */
205
+ private static findCommandDetail;
206
+ /**
207
+ * 解析上报的Hex报文<br>
208
+ * 注意如果解析失败Data中包含的将是Hex报文。解析失败时success是false<br>
209
+ * 优先使用传入的packetConfigType进行解析,如果失败则尝试其他PacketConfigType类型
210
+ * @param protocolMD5 主协议MD5
211
+ * @param versionNum 子协议版本
212
+ * @param packetConfigType 包配置类型(优先使用此配置,若解析失败会尝试使用其他配置)
213
+ * @param hex Hex字符串原文
214
+ * @returns
215
+ */
216
+ analyzePackage(protocolMD5: string, versionNum: string, packetConfigType: PacketConfigType, hex: string): AnalyzeSendResult;
217
+ /**
218
+ * 根据主协议Code获取并解析下发的Hex报文<br>
219
+ * 注意如果解析失败Data中包含的将是Hex报文。解析失败时success是false<br>
220
+ * 优先使用传入的packetConfigType进行解析,如果失败则尝试其他PacketConfigType类型
221
+ * @param protocolCode 协议code
222
+ * @param versionNum
223
+ * @param packetConfigType 包配置类型(优先使用此配置,若解析失败会尝试使用其他配置)
224
+ * @param hex
225
+ * @returns
226
+ */
227
+ analyzePackageByCode(protocolCode: string, versionNum: string, packetConfigType: PacketConfigType, hex: string): AnalyzeSendResult;
228
+ /**
229
+ * 智能解析Hex报文,支持PacketConfigType回退机制<br>
230
+ * 优先使用传入的packetConfigType进行解析,如果失败则尝试其他PacketConfigType类型
231
+ * @param protocolMD5 主协议MD5
232
+ * @param protocolCode 协议code
233
+ * @param versionNum 子协议版本
234
+ * @param packetConfigType 包配置类型(优先使用此配置,若解析失败会尝试使用其他配置)
235
+ * @param hex Hex字符串原文
236
+ * @returns AnalyzeSendResult
237
+ */
238
+ private analyzePackageWithFallback;
239
+ /**
240
+ * 解析上报的Hex报文<br>
241
+ * 注意如果解析失败Data中包含的将是Hex报文。解析失败时success是false
242
+ * @param protocolMD5 主协议MD5
243
+ * @param protocolCode 协议code
244
+ * @param versionNum 子协议版本
245
+ * @param packetConfigType 包配置类型
246
+ * @param hex Hex字符串原文
247
+ */
248
+ analyzePackageReal(protocolMD5: string | undefined, protocolCode: string | undefined, versionNum: string, packetConfigType: PacketConfigType, hex: string): AnalyzeSendResult;
249
+ /**
250
+ * 根据功能码找到上报协议定义
251
+ * @param func 功能码
252
+ * @param protocol
253
+ * @returns
254
+ */
255
+ private static findReportDefine;
256
+ /**
257
+ * 根据寄存器地址查找寄存器解释定义
258
+ * @param registCode
259
+ * @param reportValue
260
+ * @returns
261
+ */
262
+ private static findReportRegistValue;
263
+ /**
264
+ * 拿到批量度指令的后续所有指令
265
+ * @param currentRegister
266
+ * @param registers
267
+ * @returns
268
+ */
269
+ private static findReportRegistValuesBySort;
270
+ /**
271
+ * 解析单个包
272
+ * @param packet
273
+ * @param protocol
274
+ */
275
+ private static AnalyzeHexPackage;
276
+ private static hexToSignedInt;
277
+ private static signedIntToHex;
278
+ private static hexToSignedInt8;
279
+ private static signedIntToHex8;
280
+ /**
281
+ * 数据转换
282
+ * @param hexStr 原文
283
+ * @param type HEX原始数据类型
284
+ * @param range 倍数
285
+ * @returns
286
+ */
287
+ private static convertHexToString;
288
+ /**
289
+ * 基础拆包方法。根据帧头和帧尾拆包。
290
+ * @param prefix 帧头。若为空字符串,则不校验帧头。
291
+ * @param suffix 帧尾。若为空字符串,则不校验帧尾。
292
+ * @param hexString 原文
293
+ * @returns 拆包后的数组
294
+ */
295
+ simpleUpPackage(prefix: string, suffix: string, hexString: string): HexPackage[];
296
+ /**
297
+ * 数据拆包。把Hex报文拆包成HexPackage[]数组
298
+ * @param protocol
299
+ * @param hexString
300
+ * @returns
301
+ */
302
+ private unPackage;
303
+ ackCheck(protocolMD5: string, versionNum: string, packetConfigType: PacketConfigType, ackFunc: string, hex: string, registCode?: string): boolean;
304
+ ackCheckForData(protocolMD5: string, versionNum: string, packetConfigType: PacketConfigType, ackFunc: string, hex: string, dataHex: string): boolean;
305
+ /**
306
+ * 把十进制数字转换成16进制
307
+ * @param decimal
308
+ * @param minLength
309
+ * @param uppercase
310
+ * @returns
311
+ */
312
+ private decimalToHexString;
313
+ /**
314
+ * 根据 customCode 获取对应的分析器实例(优化版)
315
+ * @param code 自定义分析代码(如 "11", "13", "14" 等)
316
+ * @returns 分析器实例,如果未找到返回 null
317
+ */
318
+ private static getCustomAnalyzer;
319
+ }
320
+ //# sourceMappingURL=ProtocolBasic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProtocolBasic.d.ts","sourceRoot":"","sources":["../../../websdk/protocol/common/ProtocolBasic.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,91 @@
1
+ export default interface ProtocolInterface {
2
+ /**
3
+ * 获取协议列表
4
+ * @param forceRefresh
5
+ */
6
+ list(forceRefresh: boolean): Promise<SelectProtocol[]>;
7
+ /**
8
+ * 获取协议体
9
+ * @param protocolMD5
10
+ * @param versionNum
11
+ */
12
+ get(md5: string, versionNum: string, packetConfigType: PacketConfigType): ChildProtocol | undefined;
13
+ /**
14
+ * 构建批量读指令
15
+ */
16
+ buildBulkReadCommand(protocolMD5: string, versionNum: string, packetConfigType: PacketConfigType, code: string, ...input: string[]): BuildSendResult;
17
+ /**
18
+ * 构建下发指令
19
+ */
20
+ buildCommand(protocolMD5: string, versionNum: string, packetConfigType: PacketConfigType, fun: string, code: string, ...input: string[]): BuildSendResult;
21
+ /**
22
+ * 根据hex内容结合包配置进行指令构件
23
+ */
24
+ buildCommandForHex(protocolMD5: string, versionNum: string, packetConfigType: PacketConfigType, fun: string, code: string, ...hexInput: string[]): BuildSendResult;
25
+ /**
26
+ * 简单构建指令
27
+ * @param prefix 协议前缀
28
+ * @param suffix 协议后缀
29
+ * @param funCode 功能码
30
+ * @param registCode 寄存器码
31
+ * @param payload 荷载
32
+ * @param needCrc 是否需要CRC校验。默认true
33
+ * @returns 构建好的指令
34
+ */
35
+ simpleBuildCommand(prefix: string, suffix: string, funCode: string, registCode: string, payload: string, needCrc?: boolean): string;
36
+ /**
37
+ * 简单拆包方法。根据帧头和帧尾拆包。
38
+ * @param prefix 帧头。若为空字符串,则不校验帧头。
39
+ * @param suffix 帧尾。若为空字符串,则不校验帧尾。
40
+ * @param hexString 原文
41
+ * @returns 拆包后的数组
42
+ */
43
+ simpleUpPackage(prefix: string, suffix: string, hexString: string): HexPackage[];
44
+ /**
45
+ * 获取下发的指令定义
46
+ * @param protocolMD5
47
+ * @param versionNum
48
+ * @param packetConfigType
49
+ * @param fun
50
+ * @param code
51
+ */
52
+ getCommandDefine(protocolMD5: string, versionNum: string, packetConfigType: PacketConfigType, fun: string, code: string): CommandDetail | undefined;
53
+ /**
54
+ * 解析上报的Hex报文<br>
55
+ * 注意如果解析失败Data中包含的将是Hex报文。解析失败时success是false
56
+ * @param protocolMD5 主协议MD5
57
+ * @param versionNum 子协议版本
58
+ * @param hex Hex字符串原文
59
+ */
60
+ analyzePackage(protocolMD5: string, versionNum: string, packetConfigType: PacketConfigType, hex: string): AnalyzeSendResult;
61
+ /**
62
+ * 根据协议码解析上报的Hex报文
63
+ * @param protocolCode 协议码
64
+ * @param versionNum 版本号
65
+ * @param packetConfigType 包配置类型(用于解析不同报文的帧头和帧尾,配置后优先使用配置,若解析失败会尝试使用其他配置)
66
+ * @param hex Hex字符串原文
67
+ * @returns 解析后的结果字符串
68
+ */
69
+ analyzePackageByCode(protocolCode: string, versionNum: string, packetConfigType: PacketConfigType, hex: string): AnalyzeSendResult;
70
+ /**
71
+ * 校验Hex报文的功能码和ackFunc是否一致
72
+ * @param protocolMD5
73
+ * @param versionNum
74
+ * @param packetConfigType
75
+ * @param ackFunc 校验功能码
76
+ * @param hex
77
+ * @param registCode 校验寄存器地址(可选)
78
+ */
79
+ ackCheck(protocolMD5: string, versionNum: string, packetConfigType: PacketConfigType, ackFunc: string, hex: string, registCode?: string): boolean;
80
+ /**
81
+ * 根据数据内容和ackFunc校验Hex报文
82
+ * @param protocolMD5
83
+ * @param versionNum
84
+ * @param packetConfigType
85
+ * @param ackFunc
86
+ * @param hex
87
+ * @param dataHex
88
+ */
89
+ ackCheckForData(protocolMD5: string, versionNum: string, packetConfigType: PacketConfigType, ackFunc: string, hex: string, dataHex: string): boolean;
90
+ }
91
+ //# sourceMappingURL=ProtocolInterface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProtocolInterface.d.ts","sourceRoot":"","sources":["../../../websdk/protocol/common/ProtocolInterface.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,WAAW,iBAAiB;IACxC;;;OAGG;IACH,IAAI,CAAC,YAAY,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAEvD;;;;OAIG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,GAAG,aAAa,GAAG,SAAS,CAAC;IAEpG;;OAEG;IACH,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC;IAErJ;;OAEG;IACH,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC;IAE1J;;OAEG;IACH,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC;IAEnK;;;;;;;;;OASG;IACH,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAC,MAAM,EAAE,MAAM,EAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,OAAO,CAAC,EAAE,OAAO,GAAE,MAAM,CAAC;IAE9H;;;;;;OAMG;IACH,eAAe,CAAC,MAAM,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM,EAAC,SAAS,EAAC,MAAM,GAAG,UAAU,EAAE,CAAE;IAE7E;;;;;;;OAOG;IACH,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAAC;IAEpJ;;;;;;OAMG;IACH,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,GAAG,iBAAiB,CAAC;IAE5H;;;;;;;OAOG;IACH,oBAAoB,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,GAAG,iBAAiB,CAAC;IAEnI;;;;;;;;OAQG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAElJ;;;;;;;;OAQG;IACH,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;CACtJ"}
package/package.json ADDED
@@ -0,0 +1,55 @@
1
+ {
2
+ "name": "antprotocol-websdk",
3
+ "version": "1.0.0",
4
+ "description": "AntProtocol Web SDK",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "module": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "import": "./dist/index.js",
12
+ "types": "./dist/index.d.ts"
13
+ }
14
+ },
15
+ "files": [
16
+ "dist"
17
+ ],
18
+ "scripts": {
19
+ "dev": "webpack serve --config webpack.config.cjs --mode development",
20
+ "dev:ts": "npm run build:lib && TEST_MODE=ts webpack serve --config webpack.config.cjs --mode development",
21
+ "dev:js": "npm run build:lib && TEST_MODE=js webpack serve --config webpack.config.cjs --mode development",
22
+ "build": "npm run build:lib",
23
+ "build:lib": "webpack --config webpack.config.cjs && npm run build:types",
24
+ "build:types": "tsc -p tsconfig.build.json",
25
+ "prepublishOnly": "npm run build:lib",
26
+ "type-check": "tsc --noEmit",
27
+ "update-analyze": "tsx websdk/script/update-custom-analyze.ts"
28
+ },
29
+ "keywords": [
30
+ "antprotocol",
31
+ "websdk",
32
+ "protocol"
33
+ ],
34
+ "author": "",
35
+ "license": "MIT",
36
+ "dependencies": {
37
+ "buffer": "^6.0.3",
38
+ "decimal.js": "^10.4.3",
39
+ "json-bigint": "^1.0.0"
40
+ },
41
+ "devDependencies": {
42
+ "@types/node": "^20.11.0",
43
+ "adm-zip": "^0.5.16",
44
+ "ts-loader": "^9.5.1",
45
+ "tsx": "^4.19.2",
46
+ "typescript": "^5.3.3",
47
+ "webpack": "^5.89.0",
48
+ "webpack-cli": "^6.0.1",
49
+ "webpack-dev-server": "^5.2.3"
50
+ },
51
+ "repository": {
52
+ "type": "git",
53
+ "url": ""
54
+ }
55
+ }