@iot9x.com/ipc-utils
Version:
九星云、九星小程序、九星配置工具所共用的库方法
388 lines (387 loc) • 19.4 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ControlCode = exports.DataIdentifier = exports.CJT188VoltageStatus = exports.CJT188ValveStatus = exports.CJT188_2018UnitDisplay = exports.CJT188_2018Unit = exports.CJT188UnitDisplay = exports.CJT188Unit = exports.CJT188_2018DataFormat = exports.CJT188DataFormat = exports.CJT188_2018HeatMeterType = exports.CJT188HeatMeterType = exports.CJT188WaterMeterType = exports.CJT188MeterType = exports.CJT188Version = exports.FRAME_SUFFIX = exports.FRAME_PREFIX = void 0;
/** 帧起始符 */
exports.FRAME_PREFIX = '68';
/** 帧结束符 */
exports.FRAME_SUFFIX = '16';
/** 协议版本 */
var CJT188Version;
(function (CJT188Version) {
/** 2004年版本 */
CJT188Version[CJT188Version["V2004"] = 2004] = "V2004";
/** 2018年版本 */
CJT188Version[CJT188Version["V2018"] = 2018] = "V2018";
})(CJT188Version || (exports.CJT188Version = CJT188Version = {}));
/** CJ/T188协议支持的用户计量表类型 */
var CJT188MeterType;
(function (CJT188MeterType) {
/** 水表,编码范围为:0x10-0x19 */
CJT188MeterType[CJT188MeterType["WaterMeter"] = 16] = "WaterMeter";
/** 热量表,编码范围为:0x20-0x29 */
CJT188MeterType[CJT188MeterType["HeatMeter"] = 32] = "HeatMeter";
/** 燃气表,编码范围为:0x30-0x39,目前燃气表无二级分类 */
CJT188MeterType[CJT188MeterType["GasMeter"] = 48] = "GasMeter";
/** 其他仪表,编码范围为:0x40-0x49 */
CJT188MeterType[CJT188MeterType["Other"] = 64] = "Other";
})(CJT188MeterType || (exports.CJT188MeterType = CJT188MeterType = {}));
/** 水表支持的二级分类类型 */
var CJT188WaterMeterType;
(function (CJT188WaterMeterType) {
/** 冷水水表 */
CJT188WaterMeterType[CJT188WaterMeterType["Cold"] = 16] = "Cold";
/** 生活热水水表 */
CJT188WaterMeterType[CJT188WaterMeterType["DomesticHot"] = 17] = "DomesticHot";
/** 直饮水水表 */
CJT188WaterMeterType[CJT188WaterMeterType["DirectDrinking"] = 18] = "DirectDrinking";
/** 中水水表 */
CJT188WaterMeterType[CJT188WaterMeterType["Reclaimed"] = 19] = "Reclaimed";
})(CJT188WaterMeterType || (exports.CJT188WaterMeterType = CJT188WaterMeterType = {}));
/** 热量表支持的二级分类类型 */
var CJT188HeatMeterType;
(function (CJT188HeatMeterType) {
/** 计热量 */
CJT188HeatMeterType[CJT188HeatMeterType["Calorimetry"] = 32] = "Calorimetry";
/** 计冷量 */
CJT188HeatMeterType[CJT188HeatMeterType["Cooling"] = 33] = "Cooling";
})(CJT188HeatMeterType || (exports.CJT188HeatMeterType = CJT188HeatMeterType = {}));
/** 热量表支持的二级分类类型(2018版) */
var CJT188_2018HeatMeterType;
(function (CJT188_2018HeatMeterType) {
/** 计热量 */
CJT188_2018HeatMeterType[CJT188_2018HeatMeterType["Calorimetry"] = 32] = "Calorimetry";
/** 计冷量 */
CJT188_2018HeatMeterType[CJT188_2018HeatMeterType["Cooling"] = 33] = "Cooling";
/** 计热量和冷量 */
CJT188_2018HeatMeterType[CJT188_2018HeatMeterType["CoolAndHeat"] = 34] = "CoolAndHeat";
})(CJT188_2018HeatMeterType || (exports.CJT188_2018HeatMeterType = CJT188_2018HeatMeterType = {}));
/** CJ/T188-2004协议数据格式 */
var CJT188DataFormat;
(function (CJT188DataFormat) {
/** 热功率,单位:有,数据长度:5字节,格式:BCD码 */
CJT188DataFormat["ThermalPower"] = "XXXXXX.XX";
/** 当前热量,单位:有,数据长度:5字节,格式:BCD码 */
CJT188DataFormat["CurrentHeat"] = "XXXXXX.XX";
/** 流量,单位:有,数据长度:5字节,格式:BCD码 */
CJT188DataFormat["Traffic"] = "XXXX.XXXX";
/** 当前累计流量,单位:有,数据长度:5字节,格式:BCD码 */
CJT188DataFormat["CurrentCumulativeTraffic"] = "XXXXXX.XX";
/** 结算日热量,单位:有,数据长度:5字节,格式:BCD码 */
CJT188DataFormat["SettlementHeat"] = "XXXXXX.XX";
/** 结算日累计流量,单位:有,数据长度:5字节,格式:BCD码 */
CJT188DataFormat["SettlementCumulativeTraffic"] = "XXXXXX.XX";
/** 累计工作时间,单位:h,数据长度:3字节,格式:BCD码 */
CJT188DataFormat["CumulativeWorkTime"] = "XXXXXX";
/** 供水温度,单位:℃,数据长度:3字节,格式:BCD码 */
CJT188DataFormat["SupplyWaterTemperature"] = "XXXX.XX";
/** 回水温度,单位:℃,数据长度:3字节,格式:BCD码 */
CJT188DataFormat["ReturnWaterTemperature"] = "XXXX.XX";
/** 开阀控制操作,单位:无,数据长度:1字节,格式:BCD码 */
CJT188DataFormat["OpenValveControlOperate"] = "55H";
/** 关阀控制操作,单位:无,数据长度:1字节,格式:BCD码 */
CJT188DataFormat["CloseValveControlOperate"] = "99H";
/** 实时时间,单位:无,数据长度:7字节,格式:BCD码 */
CJT188DataFormat["RealTime"] = "YYYYMMDDhhmmss";
/** (结算、抄表)日期,单位:无,数据长度:1字节,格式:BCD码 */
CJT188DataFormat["Date"] = "DD";
/** 序列号,单位:无,数据长度:1字节,格式:HEX */
CJT188DataFormat["SER"] = "HH";
/** 版本号,单位:无,数据长度:1字节,格式:HEX */
CJT188DataFormat["VER"] = "HH";
/** 密钥,单位:无,数据长度:8字节,格式:HEX 采用单次标准密码算法 */
CJT188DataFormat["Key"] = "HHHHHHHHHHHHHHHH";
/** 购买序号,单位:无,数据长度:1字节,格式:HEX */
CJT188DataFormat["PurchaseSerialNumber"] = "HH";
/** 数据标识DI,单位:无,数据长度:2字节,格式:HEX */
CJT188DataFormat["DataIdentifier"] = "XXXX";
/** 金额,单位:元,数据长度:4字节,格式:BCD码 */
CJT188DataFormat["Amount"] = "XXXXXX.XX";
/** 价格,单位:元/单位用量,数据长度:3字节,格式:BCD码 */
CJT188DataFormat["Price"] = "XXXX.XX";
/** 用量,单位:m³,数据长度:3字节,格式:BCD码 */
CJT188DataFormat["Dosage"] = "XXXXXX";
})(CJT188DataFormat || (exports.CJT188DataFormat = CJT188DataFormat = {}));
/** CJ/T188-2018协议数据格式 */
var CJT188_2018DataFormat;
(function (CJT188_2018DataFormat) {
/** 热功率,单位:有,数据长度:5字节,格式:BCD码 */
CJT188_2018DataFormat["ThermalPower"] = "XXXXXX.XX";
/** 热量,单位:有,数据长度:5字节,格式:BCD码 */
CJT188_2018DataFormat["Heat"] = "XXXXXX.XX";
/** 瞬时流量,单位:有,数据长度:5字节,格式:BCD码 */
CJT188_2018DataFormat["InstantaneousTraffic"] = "XXXX.XXXX";
/** 累计流量,单位:有,数据长度:5字节,格式:BCD码 */
CJT188_2018DataFormat["CumulativeTraffic"] = "XXXXXX.XX";
/** 累计工作时间,单位:h,数据长度:3字节,格式:BCD码 */
CJT188_2018DataFormat["CumulativeWorkTime"] = "XXXXXX";
/** 温度,单位:℃,数据长度:3字节,格式:BCD码 */
CJT188_2018DataFormat["Temperature"] = "XXXX.XX";
/** 压力,单位:kPa,数据长度:3字节,格式:BCD码 */
CJT188_2018DataFormat["Pressure"] = "XXXX.XX";
/** 开阀控制操作,单位:无,数据长度:1字节,格式:BCD码 */
CJT188_2018DataFormat["OpenValveControlOperate"] = "55H";
/** 关阀控制操作,单位:无,数据长度:1字节,格式:BCD码 */
CJT188_2018DataFormat["CloseValveControlOperate"] = "99H";
/** 实时时间,单位:无,数据长度:7字节,格式:BCD码 */
CJT188_2018DataFormat["RealTime"] = "YYYYMMDDhhmmss";
/** (结算、抄表)日期,单位:无,数据长度:1字节,格式:BCD码 */
CJT188_2018DataFormat["Date"] = "DD";
/** 序列号,单位:无,数据长度:1字节,格式:HEX */
CJT188_2018DataFormat["SER"] = "HH";
/** 版本号,单位:无,数据长度:1字节,格式:HEX */
CJT188_2018DataFormat["VER"] = "HH";
/** 密钥,单位:无,数据长度:8字节,格式:HEX 采用单次标准密码算法 */
CJT188_2018DataFormat["Key"] = "HHHHHHHHHHHHHHHH";
/** 购买序号,单位:无,数据长度:1字节,格式:HEX */
CJT188_2018DataFormat["PurchaseSerialNumber"] = "HH";
/** 数据标识DI,单位:无,数据长度:2字节,格式:HEX */
CJT188_2018DataFormat["DataIdentifier"] = "XXXX";
/** 金额,单位:元,数据长度:4字节,格式:BCD码 */
CJT188_2018DataFormat["Amount"] = "XXXXXX.XX";
/** 价格,单位:元/单位用量,数据长度:3字节,格式:BCD码 */
CJT188_2018DataFormat["Price"] = "XXXX.XX";
/** 用量,单位:m³,数据长度:3字节,格式:BCD码 */
CJT188_2018DataFormat["Dosage"] = "XXXXXX";
})(CJT188_2018DataFormat || (exports.CJT188_2018DataFormat = CJT188_2018DataFormat = {}));
/** CJ/T188-2004协议单位编码 */
var CJT188Unit;
(function (CJT188Unit) {
CJT188Unit[CJT188Unit["Wh"] = 2] = "Wh";
CJT188Unit[CJT188Unit["kWh"] = 5] = "kWh";
CJT188Unit[CJT188Unit["MWh"] = 8] = "MWh";
CJT188Unit[CJT188Unit['MWh×100'] = 10] = 'MWh×100';
CJT188Unit[CJT188Unit["W"] = 20] = "W";
CJT188Unit[CJT188Unit["kW"] = 23] = "kW";
CJT188Unit[CJT188Unit["MW"] = 26] = "MW";
CJT188Unit[CJT188Unit["J"] = 1] = "J";
CJT188Unit[CJT188Unit["kJ"] = 11] = "kJ";
CJT188Unit[CJT188Unit["MJ"] = 14] = "MJ";
CJT188Unit[CJT188Unit["GJ"] = 17] = "GJ";
CJT188Unit[CJT188Unit['GJ×100'] = 19] = 'GJ×100';
CJT188Unit[CJT188Unit['m³'] = 44] = 'm³';
CJT188Unit[CJT188Unit['m³/h'] = 53] = 'm³/h';
CJT188Unit[CJT188Unit["L"] = 41] = "L";
CJT188Unit[CJT188Unit['L/h'] = 50] = 'L/h';
})(CJT188Unit || (exports.CJT188Unit = CJT188Unit = {}));
/** CJ/T188-2004协议单位显示 */
exports.CJT188UnitDisplay = {
0x02: 'Wh',
0x05: 'kWh',
0x08: 'MWh',
0x0a: 'MWh×100',
0x14: 'W',
0x17: 'kW',
0x1a: 'MW',
0x01: 'J',
0x0b: 'kJ',
0x0e: 'MJ',
0x11: 'GJ',
0x13: 'GJ×100',
0x2c: 'm³',
0x35: 'm³/h',
0x29: 'L',
0x32: 'L/h',
};
/** CJ/T188-2018协议单位编码 */
var CJT188_2018Unit;
(function (CJT188_2018Unit) {
CJT188_2018Unit[CJT188_2018Unit["Wh"] = 2] = "Wh";
CJT188_2018Unit[CJT188_2018Unit['Wh×10'] = 3] = 'Wh×10';
CJT188_2018Unit[CJT188_2018Unit['Wh×100'] = 4] = 'Wh×100';
CJT188_2018Unit[CJT188_2018Unit["kWh"] = 5] = "kWh";
CJT188_2018Unit[CJT188_2018Unit['kWh×10'] = 6] = 'kWh×10';
CJT188_2018Unit[CJT188_2018Unit['kWh×100'] = 7] = 'kWh×100';
CJT188_2018Unit[CJT188_2018Unit["MWh"] = 8] = "MWh";
CJT188_2018Unit[CJT188_2018Unit['MWh×10'] = 9] = 'MWh×10';
CJT188_2018Unit[CJT188_2018Unit['MWh×100'] = 10] = 'MWh×100';
CJT188_2018Unit[CJT188_2018Unit["J"] = 1] = "J";
CJT188_2018Unit[CJT188_2018Unit["kJ"] = 11] = "kJ";
CJT188_2018Unit[CJT188_2018Unit['kJ×10'] = 12] = 'kJ×10';
CJT188_2018Unit[CJT188_2018Unit['kJ×100'] = 13] = 'kJ×100';
CJT188_2018Unit[CJT188_2018Unit["MJ"] = 14] = "MJ";
CJT188_2018Unit[CJT188_2018Unit['MJ×10'] = 15] = 'MJ×10';
CJT188_2018Unit[CJT188_2018Unit['MJ×100'] = 16] = 'MJ×100';
CJT188_2018Unit[CJT188_2018Unit["GJ"] = 17] = "GJ";
CJT188_2018Unit[CJT188_2018Unit['GJ×10'] = 18] = 'GJ×10';
CJT188_2018Unit[CJT188_2018Unit['GJ×100'] = 19] = 'GJ×100';
CJT188_2018Unit[CJT188_2018Unit["L"] = 41] = "L";
CJT188_2018Unit[CJT188_2018Unit['L×10'] = 42] = 'L×10';
CJT188_2018Unit[CJT188_2018Unit['L×100'] = 43] = 'L×100';
CJT188_2018Unit[CJT188_2018Unit['m³'] = 44] = 'm³';
CJT188_2018Unit[CJT188_2018Unit['m³×10'] = 45] = 'm³×10';
CJT188_2018Unit[CJT188_2018Unit['m³×100'] = 46] = 'm³×100';
CJT188_2018Unit[CJT188_2018Unit["W"] = 20] = "W";
CJT188_2018Unit[CJT188_2018Unit['W×10'] = 21] = 'W×10';
CJT188_2018Unit[CJT188_2018Unit['W×100'] = 22] = 'W×100';
CJT188_2018Unit[CJT188_2018Unit["kW"] = 23] = "kW";
CJT188_2018Unit[CJT188_2018Unit['kW×10'] = 24] = 'kW×10';
CJT188_2018Unit[CJT188_2018Unit['kW×100'] = 25] = 'kW×100';
CJT188_2018Unit[CJT188_2018Unit["MW"] = 26] = "MW";
CJT188_2018Unit[CJT188_2018Unit['MW×10'] = 27] = 'MW×10';
CJT188_2018Unit[CJT188_2018Unit['MW×100'] = 28] = 'MW×100';
CJT188_2018Unit[CJT188_2018Unit['J/h'] = 64] = 'J/h';
CJT188_2018Unit[CJT188_2018Unit['kJ/h'] = 67] = 'kJ/h';
CJT188_2018Unit[CJT188_2018Unit['kJ/h×10'] = 68] = 'kJ/h×10';
CJT188_2018Unit[CJT188_2018Unit['kJ/h×100'] = 69] = 'kJ/h×100';
CJT188_2018Unit[CJT188_2018Unit['MJ/h'] = 70] = 'MJ/h';
CJT188_2018Unit[CJT188_2018Unit['MJ/h×10'] = 71] = 'MJ/h×10';
CJT188_2018Unit[CJT188_2018Unit['MJ/h×100'] = 72] = 'MJ/h×100';
CJT188_2018Unit[CJT188_2018Unit['GJ/h'] = 73] = 'GJ/h';
CJT188_2018Unit[CJT188_2018Unit['GJ/h×10'] = 74] = 'GJ/h×10';
CJT188_2018Unit[CJT188_2018Unit['GJ/h×100'] = 75] = 'GJ/h×100';
CJT188_2018Unit[CJT188_2018Unit['L/h'] = 50] = 'L/h';
CJT188_2018Unit[CJT188_2018Unit['L/h×10'] = 51] = 'L/h×10';
CJT188_2018Unit[CJT188_2018Unit['L/h×100'] = 52] = 'L/h×100';
CJT188_2018Unit[CJT188_2018Unit['m³/h'] = 53] = 'm³/h';
CJT188_2018Unit[CJT188_2018Unit['m³/h×10'] = 54] = 'm³/h×10';
CJT188_2018Unit[CJT188_2018Unit['m³/h×100'] = 55] = 'm³/h×100';
})(CJT188_2018Unit || (exports.CJT188_2018Unit = CJT188_2018Unit = {}));
/** CJ/T188-2018协议单位显示 */
exports.CJT188_2018UnitDisplay = {
0x02: 'Wh',
0x03: 'Wh×10',
0x04: 'Wh×100',
0x05: 'kWh',
0x06: 'kWh×10',
0x07: 'kWh×100',
0x08: 'MWh',
0x09: 'MWh×10',
0x0a: 'MWh×100',
0x01: 'J',
0x0b: 'kJ',
0x0c: 'kJ×10',
0x0d: 'kJ×100',
0x0e: 'MJ',
0x0f: 'MJ×10',
0x10: 'MJ×100',
0x11: 'GJ',
0x12: 'GJ×10',
0x13: 'GJ×100',
0x29: 'L',
0x2a: 'L×10',
0x2b: 'L×100',
0x2c: 'm³',
0x2d: 'm³×10',
0x2e: 'm³×100',
0x14: 'W',
0x15: 'W×10',
0x16: 'W×100',
0x17: 'kW',
0x18: 'kW×10',
0x19: 'kW×100',
0x1a: 'MW',
0x1b: 'MW×10',
0x1c: 'MW×100',
0x40: 'J/h',
0x43: 'kJ/h',
0x44: 'kJ/h×10',
0x45: 'kJ/h×100',
0x46: 'MJ/h',
0x47: 'MJ/h×10',
0x48: 'MJ/h×100',
0x49: 'GJ/h',
0x4a: 'GJ/h×10',
0x4b: 'GJ/h×100',
0x32: 'L/h',
0x33: 'L/h×10',
0x34: 'L/h×100',
0x35: 'm³/h',
0x36: 'm³/h×10',
0x37: 'm³/h×100',
};
/** CJ/T188-2004协议阀门状态 */
var CJT188ValveStatus;
(function (CJT188ValveStatus) {
/** 打开 */
CJT188ValveStatus[CJT188ValveStatus["Open"] = 0] = "Open";
/** 关闭 */
CJT188ValveStatus[CJT188ValveStatus["Close"] = 1] = "Close";
/** 异常 */
CJT188ValveStatus[CJT188ValveStatus["Abnormal"] = 3] = "Abnormal";
})(CJT188ValveStatus || (exports.CJT188ValveStatus = CJT188ValveStatus = {}));
/** 电池电压状态 */
var CJT188VoltageStatus;
(function (CJT188VoltageStatus) {
/** 正常 */
CJT188VoltageStatus[CJT188VoltageStatus["Normal"] = 0] = "Normal";
/** 欠压 */
CJT188VoltageStatus[CJT188VoltageStatus["UnderVoltage"] = 1] = "UnderVoltage";
})(CJT188VoltageStatus || (exports.CJT188VoltageStatus = CJT188VoltageStatus = {}));
/** 数据标识(DI0+DI1) */
var DataIdentifier;
(function (DataIdentifier) {
/** 读计量数据 */
DataIdentifier[DataIdentifier["ReadMeteringData"] = 36895] = "ReadMeteringData";
/** 读历史数据1 */
DataIdentifier[DataIdentifier["ReadHistoryData1"] = 53536] = "ReadHistoryData1";
/** 读历史数据2 */
DataIdentifier[DataIdentifier["ReadHistoryData2"] = 53537] = "ReadHistoryData2";
/** 读历史数据3 */
DataIdentifier[DataIdentifier["ReadHistoryData3"] = 53538] = "ReadHistoryData3";
/** 读历史数据4 */
DataIdentifier[DataIdentifier["ReadHistoryData4"] = 53539] = "ReadHistoryData4";
/** 读历史数据5 */
DataIdentifier[DataIdentifier["ReadHistoryData5"] = 53540] = "ReadHistoryData5";
/** 读历史数据6 */
DataIdentifier[DataIdentifier["ReadHistoryData6"] = 53541] = "ReadHistoryData6";
/** 读历史数据7 */
DataIdentifier[DataIdentifier["ReadHistoryData7"] = 53542] = "ReadHistoryData7";
/** 读历史数据8 */
DataIdentifier[DataIdentifier["ReadHistoryData8"] = 53543] = "ReadHistoryData8";
/** 读历史数据9 */
DataIdentifier[DataIdentifier["ReadHistoryData9"] = 53544] = "ReadHistoryData9";
/** 读历史数据10 */
DataIdentifier[DataIdentifier["ReadHistoryData10"] = 53545] = "ReadHistoryData10";
/** 读历史数据11 */
DataIdentifier[DataIdentifier["ReadHistoryData11"] = 53546] = "ReadHistoryData11";
/** 读历史数据12 */
DataIdentifier[DataIdentifier["ReadHistoryData12"] = 53547] = "ReadHistoryData12";
/** 读价格表 */
DataIdentifier[DataIdentifier["ReadPrice"] = 33026] = "ReadPrice";
/** 读结算日 */
DataIdentifier[DataIdentifier["ReadSettlement"] = 33027] = "ReadSettlement";
/** 读抄表日 */
DataIdentifier[DataIdentifier["ReadMeterDay"] = 33028] = "ReadMeterDay";
/** 读购入金额 */
DataIdentifier[DataIdentifier["ReadPurchase"] = 33029] = "ReadPurchase";
/** 读密钥版本号 */
DataIdentifier[DataIdentifier["ReadKeyVersion"] = 33030] = "ReadKeyVersion";
/** 读地址 */
DataIdentifier[DataIdentifier["ReadAddress"] = 33034] = "ReadAddress";
/** 写价格表 */
DataIdentifier[DataIdentifier["WritePrice"] = 40976] = "WritePrice";
/** 写结算日 */
DataIdentifier[DataIdentifier["WriteSettlement"] = 40977] = "WriteSettlement";
/** 写抄表日 */
DataIdentifier[DataIdentifier["WriteMeterDay"] = 40978] = "WriteMeterDay";
/** 写购入金额 */
DataIdentifier[DataIdentifier["WritePurchase"] = 40979] = "WritePurchase";
/** 写新密钥 */
DataIdentifier[DataIdentifier["WriteKey"] = 40980] = "WriteKey";
/** 写标准时间 */
DataIdentifier[DataIdentifier["WriteStandardTime"] = 40981] = "WriteStandardTime";
/** 写阀门控制 */
DataIdentifier[DataIdentifier["WriteValveControl"] = 40983] = "WriteValveControl";
/** 写出厂启用 */
DataIdentifier[DataIdentifier["WriteExFactoryEnabled"] = 40985] = "WriteExFactoryEnabled";
/** 写地址 */
DataIdentifier[DataIdentifier["WriteAddress"] = 40984] = "WriteAddress";
/** 写机电同步数据 */
DataIdentifier[DataIdentifier["WriteElectromechanicalSynchronousData"] = 40982] = "WriteElectromechanicalSynchronousData";
})(DataIdentifier || (exports.DataIdentifier = DataIdentifier = {}));
/** 控制码 */
var ControlCode;
(function (ControlCode) {
/** 读数据 */
ControlCode[ControlCode["ReadData"] = 1] = "ReadData";
/** 读密钥版本 */
ControlCode[ControlCode["ReadKeyVersion"] = 9] = "ReadKeyVersion";
/** 读地址 */
ControlCode[ControlCode["ReadAddress"] = 3] = "ReadAddress";
/** 写数据 */
ControlCode[ControlCode["WriteData"] = 4] = "WriteData";
/** 写地址 */
ControlCode[ControlCode["WriteAddress"] = 21] = "WriteAddress";
/** 写机电同步数据 */
ControlCode[ControlCode["WriteElectromechanicalSynchronousData"] = 22] = "WriteElectromechanicalSynchronousData";
})(ControlCode || (exports.ControlCode = ControlCode = {}));