UNPKG

@iot9x.com/ipc-utils

Version:

九星云、九星小程序、九星配置工具所共用的库方法

388 lines (387 loc) 19.4 kB
"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 = {}));