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.
- package/README.md +27 -0
- package/dist/common/config/ProtocolRuntimeConfig.d.ts +36 -0
- package/dist/common/config/ProtocolRuntimeConfig.d.ts.map +1 -0
- package/dist/common/config/SdkConfig.d.ts +136 -0
- package/dist/common/config/SdkConfig.d.ts.map +1 -0
- package/dist/common/config/index.d.ts +8 -0
- package/dist/common/config/index.d.ts.map +1 -0
- package/dist/common/model/ProtocolGlobalModel.d.ts +416 -0
- package/dist/common/model/ProtocolGlobalModel.d.ts.map +1 -0
- package/dist/common/utils/CalculateCRC16Modbus.d.ts +2 -0
- package/dist/common/utils/CalculateCRC16Modbus.d.ts.map +1 -0
- package/dist/common/utils/UuidUtil.d.ts +19 -0
- package/dist/common/utils/UuidUtil.d.ts.map +1 -0
- package/dist/common/utils/gbk-encoder/GbkEncoder.d.ts +107 -0
- package/dist/common/utils/gbk-encoder/GbkEncoder.d.ts.map +1 -0
- package/dist/common/utils/gbk-encoder/generate-dictionary.d.ts +29 -0
- package/dist/common/utils/gbk-encoder/generate-dictionary.d.ts.map +1 -0
- package/dist/common/utils/gbk-encoder/hanzi-dictionary.d.ts +35 -0
- package/dist/common/utils/gbk-encoder/hanzi-dictionary.d.ts.map +1 -0
- package/dist/common/utils/gbk-encoder/index.d.ts +8 -0
- package/dist/common/utils/gbk-encoder/index.d.ts.map +1 -0
- package/dist/common/utils/gbk-encoder/single-byte-dictionary.d.ts +35 -0
- package/dist/common/utils/gbk-encoder/single-byte-dictionary.d.ts.map +1 -0
- package/dist/common/utils/logPlugins.d.ts +9 -0
- package/dist/common/utils/logPlugins.d.ts.map +1 -0
- package/dist/common/utils/time.d.ts +29 -0
- package/dist/common/utils/time.d.ts.map +1 -0
- package/dist/custom_analyze/bms_0x11_1.0.0.d.ts +24 -0
- package/dist/custom_analyze/bms_0x11_1.0.0.d.ts.map +1 -0
- package/dist/custom_analyze/bms_0x13_1.0.0.d.ts +20 -0
- package/dist/custom_analyze/bms_0x13_1.0.0.d.ts.map +1 -0
- package/dist/custom_analyze/bms_0x14_1.0.0.d.ts +22 -0
- package/dist/custom_analyze/bms_0x14_1.0.0.d.ts.map +1 -0
- package/dist/custom_analyze/bms_0x61_1.0.0.d.ts +35 -0
- package/dist/custom_analyze/bms_0x61_1.0.0.d.ts.map +1 -0
- package/dist/custom_analyze/bms_0x63_1.0.0.d.ts +16 -0
- package/dist/custom_analyze/bms_0x63_1.0.0.d.ts.map +1 -0
- package/dist/custom_analyze/bms_0x80_1.0.0.d.ts +22 -0
- package/dist/custom_analyze/bms_0x80_1.0.0.d.ts.map +1 -0
- package/dist/custom_analyze/bms_common_1.0.0.d.ts +50 -0
- package/dist/custom_analyze/bms_common_1.0.0.d.ts.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11416 -0
- package/dist/protocol/BMSProtocol.d.ts +5 -0
- package/dist/protocol/BMSProtocol.d.ts.map +1 -0
- package/dist/protocol/ChargerProtocol.d.ts +5 -0
- package/dist/protocol/ChargerProtocol.d.ts.map +1 -0
- package/dist/protocol/DisplayerProtocol.d.ts +5 -0
- package/dist/protocol/DisplayerProtocol.d.ts.map +1 -0
- package/dist/protocol/PowerProtocol.d.ts +5 -0
- package/dist/protocol/PowerProtocol.d.ts.map +1 -0
- package/dist/protocol/common/ProtocolBasic.d.ts +320 -0
- package/dist/protocol/common/ProtocolBasic.d.ts.map +1 -0
- package/dist/protocol/common/ProtocolInterface.d.ts +91 -0
- package/dist/protocol/common/ProtocolInterface.d.ts.map +1 -0
- package/package.json +55 -0
|
@@ -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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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
|
+
}
|