#ifndef __DEFINE_H__
#define __DEFINE_H__


//设备名称
#define DEV_NO_EMS          "EMS"  
#define DEV_NO_METER        "METER"
#define DEV_NO_PCS          "PCS"
#define DEV_NO_BMS          "BMS"
#define DEV_NO_LC            "LC"
#define DEV_NO_GRID_MT      "GRID_METER"
#define DEV_NO_PCS_MT       "PCS_METER"
#define DEV_NO_TRAS_LV_MT   "TRAS_LV_METER"
#define DEV_NO_AIRCOND      "AIRCOND" 
#define DEV_NO_LIQUID       "LIQUID_COOLING" 
#define DEV_NO_PV           "PV"
#define DEV_NO_TOTAL_ESS_MT "TOTAL_ESS_METER"
#define DEV_NO_TMS          "TMS"
#define DEV_NO_AC           "AC"
#define DEV_NO_DIDO         "DIDO"

//点位名称
//EMS
            
#define EN_TRACELOAD                "EnTraceLoad"              
#define EN_PROTECT_REVERSE          "EnProtectReverse"
#define PROTECT_REVERSE_WIN          "ProtectReverseWin"           
#define EN_PROTECT_TRANSF           "EnProtectTransf" 
#define EN_PROTECT_DOD              "EnProtectDOD"
#define CONTROL_MODE                "ControlMode"
#define DEMAND_WIN "DemandWin"
#define DEMAND_MARGIN "DemandMargin"
#define DYNAMIC_AUGMENT "DynamicAugmentation"
#define ACCIDENT_TGI "Accident_tgi"  // 事故反演时间颗粒度设置
#define ACCIDENT_EN "Accident_en"      // 事故反演本地使能开关 默认开
#define INSPOW_COEF "Installedcab_coeff" //装机功率

#define ISDISABLE_BY_MASTER "IsDisableByMaster" // 是否被主机禁用 0禁用 1启用

#define EMS_PMLMAX            "Pmlmax"
#define EMS_K1                "K1"
#define EMS_K2                "K2"
#define EMS_K3                "K3"
#define EMS_SOCMAX            "SOCmax"
#define EMS_SOCMIN            "SOCmin"
#define EMS_SOCMAXERR         "SOCmaxErr"
#define EMS_SOCMINERR         "SOCminErr"
#define EMS_PSET              "Pset"
#define EMS_ADJPRERIOD        "Adjpreriod"
#define EMS_TEMP_THRESHOLD    "TempThreshold"
#define EMS_TRACKING_LIMIT    "LoadTrackingLimit"
#define EMS_NUMPCS            "NumPCS"
#define EMS_DEMAND_THRESHOLD  "DemandThreshold"
#define EMS_CHARGE_STARTPOWER "chargeStartPower"
#define EMS_DISCHARGE_THRESHOLD "dischargeThreshold"
#define EMS_DEMAND_START_HOUR "DemandStartHour"
#define EMS_DEMAND_START_MIN  "DemandStartMin"
#define EMS_DEMAND_END_HOUT   "DemandEndHour"
#define EMS_DEMAND_END_MIN    "DemandEndMin"
#define EN_BMS_ALARM          "EnBmsAlarm"
#define EN_DRAUG_FLOW_POWER     "EnDraughtFanPower"
#define EN_DRAUG_FLOW_POWER_T   "DFanPowerThreShold"
#define EN_DRAUG_FLOW_TEM       "EnDraughtFanTem"
#define EN_DRAUG_FLOW_TEM_T     "DFanTemThreShold"
#define DRAUG_DEAE_TIME         "DeadTime"  
#define METER_INVERT           "MeterInvert"
#define BMS_POWER_LIMIT          "BmsPowerLimit"
#define PCS_AUTO_TURN           "PcsAutoTurn"
#define PCS_AUTO_TURN_OFF_TIME  "PcsAutoTurnOffTime"
#define ACTIVE_POWER            "ActivePower"
#define REACTIVE_POWER            "ReactivePower"
#define APPARENT_POWER          "ApparentPower" // 总视在功率
#define WORK_SAMPLE_PERIOD   "WorkSamplePeriod"
#define IDLE_SAMPLE_PERIOD   "IdleSamplePeriod"
#define ENPROTECTRASLV       "EnProtectTrasLV"
#define PLVMLMAX             "PLVmlmax"
#define EMS_K4                   "K4"
#define SINGLE_MAX_VOLTAGE   "singleMaxVoltage"
#define SINGLE_MIN_VOLTAGE   "singleMinVoltage"
#define SINGLE_MAX_VOLTAGE_ERR   "singleMaxVoltageErr"
#define SINGLE_MIN_VOLTAGE_ERR   "singleMinVoltageErr"
#define EN_CELL_VOLT_PROTECT "enSingleVoltage"
#define CELL_VOLT_PROTECT_TIME "SingleVoltageTime"
#define EN_PHOTO_VOLTAIC     "EnPhotovoltaic"
#define SOC_NET_DEAD_MAX     "SOCmaxNetDead"
#define SOC_NET_DEAD_MIN     "SOCminNetDead"
#define SOC_NET_MAX     "SOCmaxNet"
#define SOC_NET_MIN     "SOCminNet"
#define PV_MAX_OUTER     "pvMax"
#define CHARGE_MAX_POWER     "chargeMaxPower"
#define DISCHARGE_THRES_HOLD     "dischargeMaxPower"
#define DG_RATED_POWER     "DGRatedPower"
#define DG_BOOT_SOC     "DGBootSoc"
#define SOC_ALARM     "SocAlarmThreshold"
//#define EN_AC_D2C     "EnAcd2c" 
//#define EN_AC_C2D     "EnAcc2d" 
#define EMS_DG_DIFF     "DgDiff"
#define SOC_ALARM_CTRL   "SocAlarmCtrl"
#define LCB_ABNORMAL   "LcbAbnormal"
#define ICB_ABNORMAL   "IcbAbnormal"
#define DG_ABNORMAL    "DgAbnormal"
#define ACTION_TIMEOUT   "ActionTimeout"
#define MICRO_CHECK   "micro_check"

#define UD_LOG "ud_log"

#define ON_OFF_STATE         "OnOff"
#define ON_OFF_STATUS         "OnOffStatus"  
#define CONNECT_STATUS "ConnectStatus"              
#define SET_ACT_POWER        "SetPower"             
#define SET_REACTPOWER       "SetRePower"               
#define STRANTAGY_TYPE       "StratagyType"    
#define SET_CONNECT          "SetConnect"          
#define CLEAR_ALARM          "ClrAlarm"              
#define EN_IO_PROTECT        "EnIoProtect" 
#define USER_ALARM           "UserAlarm"  
#define USER_NOTICE_ALARM    "UserNoticeAlarm"  
#define USER_VITAL_ALARM     "UserVitalAlarm"
#define USER_SERVER_ALARM    "UseServerAlarm"                                    
#define USER_ALARM1          "UserAlarm1"
#define USER_ALARM2          "UserAlarm2"
#define USER_ALARM3          "UserAlarm3"
#define USER_STOP1           "UserStop1"
#define USER_STOP2           "UserStop2"
#define USER_STOP3           "UserStop3"
#define USER_STOP_CHA1        "UserStopCha1"
#define USER_STOP_DISCHA1     "UserStopDisCha1"
#define USER_STOP_CHA2        "UserStopCha2"
#define USER_STOP_DISCHA2     "UserStopDisCha2"
#define USER_STOP_CHA3        "UserStopCha3"
#define USER_STOP_DISCHA3     "UserStopDisCha3"
#define PCS_ACTIVEPOWER      "PcsActivePower"
#define PCS_REACTIVEPOWER    "PcsReactivePower"
#define TOTAL_ACTIVE_POWER     "TotalActivePower"
#define TOTAL_REACTIVE_POWER   "TotalReactivePower"
#define TOTAL_FORWARD_ENERGY   "TotalForwardEnergy"
#define TOTAL_REVERSE_ENERGY   "TotalReverseEnergy"
#define BMS_UPPER              "BmsUpper"
#define EN_RP_COMP       "ENRPComp" // 无功补偿模式
#define SET_POWER_FACTOR            "SetPowerFactor" // 设置功率因数
#define EN_DATA_COLLECT "EnDataCollect"
#define SOC_LIMIT_ALARM       "SocParameterAlarm"


#define GET_CONNECT          "GetConnect"
#define GET_ACT_POWER        "GetActPower"
#define GET_REACTPOWER       "GetRePower"
#define GET_ON_OFF           "GetOnOff"
#define GET_SOC              "GetSOC"

#define SYSTEM_STATUS        "SysStatus"
#define SYSTEM_STATUS_W        "SysStatusWord"                
#define GRID_P       "GRID_P"                
#define GRID_Q       "GRID_Q"                
#define PCU_P       "PCU_P"                
#define PCS_P       "PCS_P"                
#define PCS_Q       "PCS_Q"                
#define MPPT_P       "MPPT_P"                
#define BMS_P       "BMS_P"                
#define BMS_SOC       "BMS_SOC"                
#define PV_P       "PV_P"                
#define PV_Q       "PV_Q"
#define PH_P       "PH_P"
#define MPPT_EQ       "Mppt_EQ"
#define MPPT_EQ_TL       "Mppt_EQ_TL"
#define MPPT_EQ_RT       "Mppt_EQ_RATIO"
#define PH_ON       "PH_ON"
#define PH_OFF       "PH_OFF"
#define PV_KM       "PvKm"
#define PV_MODE       "PvMode"  
#define DEAD_NIGHT       "DeadNight" 
#define PV_ISCTRL       "PvIsctrl"
#define EN_PV_PRECTRL   "EnPvPrectrl"
#define DG_CAP_PRO       "DG_Capacity_protection" 
#define EXPECT_ACT_POWER     "ExpectPower"              
#define GRID_ACT_POWER       "GridPower"                
#define LOAD_ACT_POWER       "LoadPower"                
#define LOCAL_CTRL_POWER     "LocalCtrlPower"                  
#define CAB_POWER            "CabPower" 
#define CAB_CAPACITY         "CabCapacity" 
#define LC_CAPACITY          "LcCapacity" 
#define INCOME               "Income"    
#define EFFICIENCY           "Efficiency" 
#define ALARMCNT             "AlarmCnt"
#define ALARMHISCNT          "AlarmHisCnt"
#define FAULT_WORDS          "FaultWords"
#define CH_DISCH_STATUS        "ChDischStatus"
#define WHITELIST_ALARM     "WhitelistAlarm"
#define IEC104_HEARTBEAT      "Iec104Heartbeat"
#define MODBUSTCP_HEARTBEAT   "ModbusTcpHeartbeat"
#define IEC104_CONN_ALARM     "Iec104ConnAlarm"
#define MODBUSTCP_CONN_ALARM  "ModbusTcpConnAlarm"
#define HISTORY_DATA_READ_ALARM  "HistoryDataReadAlarm"

// #define POWER_LIMITED        "PowerLimited"             
// #define POWER_REFLUX         "PowerReflux"              
#define SYS_STOPED           "SysStoped"                
#define PROHIBITE_CHARGE     "ProhibiteCha"             
#define PROHIBITE_DISCHARGE  "ProhibiteDisc" 
#define MAX_DEMAND  "MaxDemand"                
#define DOD_LIMITED          "BmsLimited"
#define DOD_LIMITED_CH          "BmsLimitedCh"
#define DOD_LIMITED_DC          "BmsLimitedDc"
#define METER_ERROR          "MeterError" 
#define DC_TOTAL_VOL_LOW "DcTotalVolLow"  
#define DC_TOTAL_VOL_LIMIT 50
#define PV_MAX_POWER        "PvMaxPower" 
#define PV_CUR_PERCENT       "PvCurPercent" 
#define SET_PV_POWER        "SetPvPower"   
#define MAX_CHARGE_POWER     "MaxChargePower"             
#define MAX_DISCHA_POWER     "MaxDischaPower"
#define POWER_LIMIT     "PowerLimit" 
#define EMS_CIRCLE_BEAT      "EMSCircleBeat"

#define IO_PROTECT           "IoProtect"  
#define BMS_PACK_ALARM       "PACKALARM" 

#define METER_POWER          "ActivePower"

#define DIST_TEMP          "TargetWaterTemp"

#define ICB_CTRL             "IcbCtrl"
#define LCB_CTRL             "LcbCtrl"
#define DG_CTRL             "DgCtrl"

#define CONN_SIGN             "ConnSign"
#define ATS_SIGN             "AtsSign"
#define LCB_SIGN             "LcbSign"
#define ICB_SIGN             "IcbSign"
#define DG_SIGN             "DgSign"

#define STATE_MACHINE             "StateMachine" 
#define TOTAL_PV_POWER             "TotalPvPower" 
#define TOTAL_PCS_POWER             "TotalPcsPower" 
#define AVER_SOC             "AverSoc" 
// CAB
#define CAB_SYSTEM_STATUS             "CabSysStatus"
#define CAB_PROHIBITE_CHARGE          "CabProhibiteCha"
#define CAB_PROHIBITE_DISCHARGE       "CabProhibiteDisc"
#define CAB_DOD_LIMITED               "CabBmsLimited"
#define CAB_DC_TOTAL_VOL_LOW "CabDcTotalVolLow" 
// LC
#define EMS_CONNECT_STATE "EmsConnectState"
#define EMS_HEARTBEAT "EmsHeartbeat"
#define LC_MANUAL_PROTECT "ManualProtect"
#define LC_CLR_MANUAL_PROTECT "ClrManualProtect"
#define LC_SYSTEM_STATUS "LcSysStatus"
// 通用
#define STATE_ONLINE         "Online"
#define STATE_CHANNELLOCK    "ChannelLock"
//BMS
#define CURRENT_SOC          "SOC"
#define CURRENT_SOH          "SOH"
#define CELL_OVER_VOL2             "CellVolHighWarn2"
#define CELL_OVER_VOL3             "CellVolHighWarn3"
#define CELL_UNDER_VOL2            "CellVolLowWarn2"
#define CELL_UNDER_VOL3            "CellVolLowWarn3"

#define RACK_OVER_VOL2             "RackVolHighWarn2"
#define RACK_OVER_VOL3             "RackVolHighWarn3"
#define RACK_UNDER_VOL2            "RackVolLowWarn2"
#define RACK_UNDER_VOL3            "RackVolLowWarn3"
#define RACK_CURRUE                "RackCurrent" 
#define CHG_ENERGR_TOTAL           "AccumChgEnergy"
#define DISCHG_ENERGR_TOTAL        "AccumDischgEnergy"

#define RACK_MAX_TEMP              "RackMaxTemp"
#define RACK_MAX_TEMP_NO           "RackMaxTempCellId"
#define RACK_MIN_TEMP              "RackMinTemp"

#define RACK_MAX_CHARGE_CUR        "RackMaxChargeCur"             
#define RACK_MAX_DISCHA_CUR        "RackMaxDisChaCur" 
#define RACK_VOLTAGE                "RackVoltage"

#define BEFORE_WORK_TIME            "BeforeWorkTime"
#define WORK_START_HOT_TEMP         "WStartHot"
#define WORK_END_HOT_TEMP           "WEndHot"
#define WORK_START_COOL_TEMP        "WStartCool"
#define WORK_END_COOL_TEMP          "WEndCool"
#define STOP_START_HOT_TEMP         "SStartHot"
#define STOP_END_HOT_TEMP           "SEndHot"
#define STOP_START_COOL_TEMP        "SStartCool"
#define STOP_END_COOL_TEMP          "SEndCool"

#define PREPARE_START_HOT_TEMP       "PStartHot"
#define PREPARE_END_HOT_TEMP         "PEndHot"
#define PREPARE_START_COOL_TEMP      "PStartCool"
#define PREPARE_END_COOL_TEMP        "PEndCool"

#define WORK_DIST_HOT_TEMP         "WDistHot"
#define WORK_DIST_COOL_TEMP        "WDistCool"
#define STOP_DIST_HOT_TEMP         "SDistHot"
#define STOP_DIST_COOL_TEMP        "SDistCool"
#define PREPARE_DIST_HOT_TEMP       "PDistHot"
#define PREPARE_DIST_COOL_TEMP      "PDistCool"


#define RACK_AVERAGE_TEMP          "RackAverageTemp"
#define RACL_VOLTAGE               "RackVoltage"

#define RACK_MAX_VOLT               "RackMaxVoltage"
#define RACK_MIN_VOLT               "RackMinVoltage"

//输入输出类
 
#define FIRE            "Fire"  

#define TRIP            "Trip"  //脱扣
#define FAN             "Fan" 


#define ALL_FIRE    "AllFire"
#define EXTERN_FIRE   "ExFire" //外部消防

#define EMS_POWER "EMSPower" // 电源状态

#define EMS_CPU_HIGH  "EMSCpuHigh"  // CPU使用率高
#define EMS_MEM_HIGH  "EMSMemHigh"  // 内存使用率高
#define EMMC_DISK_HIGH "EmmcDiskHigh" // 磁盘使用率高
#define SSD_DISK_HIGH "SsdDiskHigh" // 磁盘使用率高
#define SSD_NOT_EXIST "SsdNotExist" // 硬盘不存在
#define SINGLE_CELL_VOL_THRESHOLD_ALARM "CellThresholdAlarm"


#define DIDO_GCIS "Grid_con_ident_sign" // Grid-connected identification signal 并网识别信号 信号源自 DIDO 1并网 0 离网

//温控

#define DEV_FAULT   "FaultWarning"

#define TMS_CTRL_STATE             "TMSCtrlState" 
#define TMS_CTRL_DIST_TEMP_HOT     "TMSCtrlTempHot" 
#define TMS_CTRL_DIST_TEMP_COLD    "TMSCtrlTempCold" 

#define ENABLE_AUTO_COOL     "EnableAutoCool"
#define EN_SELF_LOOP_DIFF    "EnSelfLoopDiff"
#define START_SELF_LOOP_DIFF     "StartSelfLoopDiff"
#define END_SELF_LOOP_DIFF       "EndSelfLoopDiff"

#define ENABLE_AIR_COND      "EnableAirCond"
#define AIR_COND_AHEAD_TIME  "AirCondAheadTime"
#define AIR_COND_DELAY_TIME  "AirCondDelayTime"
#define AIR_COND_STARTSTOP_CTRL "AirCondStartStopCtrl"
#define HEAT_CTR_CYCLE       "HeatCtrCycle"
#define EN_SW_D2C "EnSwD2C"
#define EN_SW_C2D "EnSwC2D"

#define TEMP_CTRL_ERR   "TempCtrlErr"
//PCS
#define PCS_ACT_POWER   "ActPowSet"
#define PCS_REACT_POWER "ReactPowSet"
#define PCS_STATE       "StartStopCtr"
#define PCS_WORK_MODE   "WorkMode"
#define PCS_CONNECT     "SetConnect"
#define PCS_FAULT       "DevFault"
#define PCS_TOTAL_FAULT "TotalFailure"
#define PCS_IGBT_TEMP   "IGBTTemp"
// #define PCS_POWER_ERR   "PcsPowerErr"

#define PV_PERCENT_LIMIT   "PvPercentLimit"  

#define EMS_CFG_FILE "/app/config/ems_cfg.json"
#define EMS_USER_CFG_FILE "/app/config/ems_user_cfg.json" //// 保存    结构体的值
#define N_MQTT_NORTH_CFG_FILE "/app/config/north/mqtt_north_cfg.json"
#define EMS_USER_CFG "ems_user_cfg.json"
#define COLLECTOR_DEVICE "device_config.json"
#define AUTOMATIC_FILE_NAME "automatic_control.json"
#define BASE_AUTOMATIC_JSON_PATH "/app/config/automatic_control.json"
#define GLOBAL_AUTOMATIC_JSON_PATH "/tmp/automatic_control.json"
#define PROPERTY "system_cfg.json"
#define PRICE "price.json"
#define CONFIG_PATH "/app/config"
#define EMS_DEVICE_MASTER_FILE "ems_device_master_config.json"
#define EMS_TEMP_MASTER_FILE "ems_template_master_config.json"
#define LC_TEMP_FILE         "lc_template.json"
#define EMS_VLC_TEMPLATE "vlc_template.json"
#define EMS_LC_LIST_FILE "ems_lc_list.json"
#define EMS_LC_ALL_DEVICE_CFG "/app/config/lc/_all_lc_device_cfg.json"
#define COLLECTOR_TMS_CONFIG "tms_mapping.json"
#define COLLECTOR_AC_CONFIG "ac_mapping.json"
#define EMMS2_MQTT_CONFIG      "emms2_mqtt.json"
#define STACTRL_MQTT_CONFIG    "stactrl_mqtt.json"
#define MODEFOR4G_PATH "/app/config/modefor4g.json"
#define EMS_TAG_SIZE 1024
#define LC_DEVS_DIR "/app/config/lc_devs"
#define DEV_GROUP_INFO_PATH "/app/config/dev_group_info.json"
#define DEV_GROUP_USER_CFG_PATH "/app/config/dev_group_user_cfg.json"
#define DEV_GROUP_CFG_PATH "/app/config/dev_group_cfg.json"
#define SYS_CFG "/app/config/system_cfg.json"

#define LC_CFG_FILE "/app/config/lc/lc_cfg.json"
#define LC_USER_CFG_FILE "lc_user_cfg.json"
#define LC_AUTOMATIC_CONFIG "/app/config/lc/automatic_control.json"
#define LC_DEVICE_CFG_DIR "/app/config/lc_devs"
# define ENV_LANG_CFG_FILE "/etc/default/locale"

#define LC_CFG_NAME "lc_cfg"
#define LC_AUTOMATIC_NAME "automatic"
#define TEMP_INFO_NAME      "temp_info"
#define DEVICE_CONFIG_NAME  "device_config"
#define PORT_CONFIG_NAME    "port_config"
#define PROPERTY_INFO_NAME  "system_config"
#define CABINET_INFO_NAME  "cabinet_info"
#define LC_SET_CABNAME      "lc_set_cabname"
#define PRICE_INFO_NAME     "price_config"
#define TRIGGER_INFO_NAME   "trigger_config"
#define NODE_SORT           "node_sort"
#define EMS_LC_SCAN         "lc_scan"
#define EMS_LC_LIST         "lc_list"
#define EMS_LC_SETIPADDR    "lc_setip"
#define LC_AGENT_RESTART    "restart"
#define LC_AGENT_REBOOT     "reboot"
#define LC_AGENT_UPGRADE    "upgrade"
#define LC_AGENT_UPGRADEN   "upgraden"
#define LC_AGENT_TEMPLATESYNC "templatesync"
#define TMS_CONFIG_NAME "tms_mapping"
#define AC_CONFIG_NAME "ac_mapping"
#define EMMS2_CONFIG_NAME "emms2_mqtt"
#define STACTRL_CONFIG_NAME "stactrl_mqtt"
#define SUBDOMAIN_READ      "subdomain_read"
#define DEV_INFO_CONFIG_NAME "dev_info"
#define DEV_TREE_NAME "dev_tree"
#define DEV_GROUP_INFO_NAME "dev_group_info"
#define DEV_GROUP_CFG "dev_group_cfg"
#define ENV_LANG "lang"

#define LC_DEV_JSON_STR_TEMPLATE "{\"dev_class\":[{\"type\":\"LC\",\"devs\":[{\"no\":\"%s\",\"name\":\"%s\",\"channel\":\"%s\",\"protocol\":\"modbus_tcp\",\"user_def\":\"frame_timeout=1000;frame_interval=50;\",\"addr\":\"1\",\"template\":\"/tmp/modbus_server_template.json\"}]}]}"

#define MT_ACTIVE_POWER     "ActivePower"
#define MT_REACTIVE_POWER   "ReactivePower"
#define MT_FORWARD_ENERGY   "ActiveEnergy"
#define MT_REVERSE_ENERGY   "ReactiveEnergy"

#define DIDO_TEMPLATE_CONFIG "DIO_LNXALL_CFG_MODBUS.json"
#define LC_DIDO_TEMPLATE_CONFIG_PATH "/app/template/"
#define LC_TEMPLATE_FILE_NAME         "lc_template.json"
#define REMOTE_TEMPLATE_FILE_PATH     "/app/template/" LC_TEMPLATE_FILE_NAME
#define LOCAL_TEMPLATE_FILE_PATH_FMT  "/app/config/lc_devs/%s/" LC_TEMPLATE_FILE_NAME

#define SSH_PASSWORD "lnxall123"

// #define DIDO_EMS1000_DEFINE_CONFIG "{\"info\":{\"protocol\":[\"modbus_tcp\",\"modbus_rtu\"],\"model\":\"DIDO_LNXALL\",\"vendor\":\"EM1000\",\"compatible\":\"5.312.0000\",\"version\":\"0.0.0-alpha\",\"type\":\"DIDO\"},\"poll_list\":[{\"scan_rate\":2000,\"prot\":[1,\"0x0080\",12]},{\"scan_rate\":500,\"prot\":[1,\"0x0000\",6]}],\"read_reg\":[{\"tag\":\"DI1\",\"name\":\"DI1\",\"desc\":\"\",\"property\":\"alarm\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"prot\":[1,\"0x80\",\"bool\",\"A\",0,1,0]},{\"tag\":\"DI2\",\"name\":\"DI2\",\"desc\":\"\",\"property\":\"alarm\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"prot\":[1,\"0x81\",\"bool\",\"A\",0,1,0]},{\"tag\":\"DI3\",\"name\":\"DI3\",\"desc\":\"\",\"property\":\"alarm\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"prot\":[1,\"0x82\",\"bool\",\"A\",0,1,0]},{\"tag\":\"DI4\",\"name\":\"DI4\",\"desc\":\"\",\"property\":\"alarm\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"prot\":[1,\"0x83\",\"bool\",\"A\",0,1,0]},{\"tag\":\"DI5\",\"name\":\"DI5\",\"desc\":\"\",\"property\":\"alarm\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"prot\":[1,\"0x84\",\"bool\",\"A\",0,1,0]},{\"tag\":\"DI6\",\"name\":\"DI6\",\"desc\":\"\",\"property\":\"alarm\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"prot\":[1,\"0x85\",\"bool\",\"A\",0,1,0]},{\"tag\":\"DI7\",\"name\":\"DI7\",\"desc\":\"\",\"property\":\"alarm\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"prot\":[1,\"0x86\",\"bool\",\"A\",0,1,1]},{\"tag\":\"DI8\",\"name\":\"DI8\",\"desc\":\"\",\"property\":\"alarm\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"prot\":[1,\"0x87\",\"bool\",\"A\",0,1,0]}],\"write_reg\":[{\"tag\":\"DO1\",\"name\":\"DO1\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"no_fetch\":0,\"prot\":[1,\"0x00\",\"bool\",\"A\"]},{\"tag\":\"DO2\",\"name\":\"DO2\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"no_fetch\":0,\"prot\":[1,\"0x01\",\"bool\",\"A\"]},{\"tag\":\"DO3\",\"name\":\"DO3\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"no_fetch\":0,\"prot\":[1,\"0x02\",\"bool\",\"A\"]},{\"tag\":\"DO4\",\"name\":\"DO4\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"no_fetch\":0,\"prot\":[1,\"0x03\",\"bool\",\"A\"]},{\"tag\":\"DO5\",\"name\":\"DO5\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"no_fetch\":0,\"prot\":[1,\"0x04\",\"bool\",\"A\"]},{\"tag\":\"DO6\",\"name\":\"DO6\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"no_fetch\":0,\"prot\":[1,\"0x05\",\"bool\",\"A\"]},{\"tag\":\"DO7\",\"name\":\"DO7\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"no_fetch\":0,\"prot\":[1,\"0x06\",\"bool\",\"A\"]},{\"tag\":\"DO8\",\"name\":\"DO8\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"no_fetch\":0,\"prot\":[1,\"0x07\",\"bool\",\"A\"]}]}"
#define DIDO_6ULL_DEFINE_CONFIG "{\"info\":{\"protocol\":[\"modbus_tcp\",\"modbus_rtu\"],\"model\":\"DIDO_LNXALL\",\"vendor\":\"JJIOT\",\"compatible\":\"5.312.0000\",\"version\":\"0.0.0-alpha\",\"type\":\"OTHERS\"},\"poll_list\":[{\"scan_rate\":500,\"prot\":[1,\"0x0080\",10]},{\"scan_rate\":2000,\"prot\":[1,\"0x0000\",6]}],\"read_reg\":[{\"tag\":\"DI1\",\"name\":\"DI1\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"prot\":[1,\"0x80\",\"bool\",\"A\",0,1,0]},{\"tag\":\"DI2\",\"name\":\"DI2\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"prot\":[1,\"0x81\",\"bool\",\"A\",0,1,0]},{\"tag\":\"DI3\",\"name\":\"DI3\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"prot\":[1,\"0x82\",\"bool\",\"A\",0,1,0]},{\"tag\":\"DI4\",\"name\":\"DI4\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"prot\":[1,\"0x83\",\"bool\",\"A\",0,1,0]},{\"tag\":\"DI5\",\"name\":\"DI5\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"prot\":[1,\"0x84\",\"bool\",\"A\",0,1,0]},{\"tag\":\"DI6\",\"name\":\"DI6\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"prot\":[1,\"0x85\",\"bool\",\"A\",0,1,0]},{\"tag\":\"DI7\",\"name\":\"DI7\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"prot\":[1,\"0x86\",\"bool\",\"A\",0,1,1]},{\"tag\":\"DI8\",\"name\":\"DI8\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"prot\":[1,\"0x87\",\"bool\",\"A\",0,1,1]}],\"write_reg\":[{\"tag\":\"DO1\",\"name\":\"DO1\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"no_fetch\":0,\"prot\":[1,\"0x05\",\"bool\",\"A\"]},{\"tag\":\"DO2\",\"name\":\"DO2\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"no_fetch\":0,\"prot\":[1,\"0x04\",\"bool\",\"A\"]},{\"tag\":\"DO3\",\"name\":\"DO3\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"no_fetch\":0,\"prot\":[1,\"0x03\",\"bool\",\"A\"]},{\"tag\":\"DO4\",\"name\":\"DO4\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"no_fetch\":0,\"prot\":[1,\"0x02\",\"bool\",\"A\"]},{\"tag\":\"DO5\",\"name\":\"DO5\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"no_fetch\":0,\"prot\":[1,\"0x01\",\"bool\",\"A\"]},{\"tag\":\"DO6\",\"name\":\"DO6\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"no_fetch\":0,\"prot\":[1,\"0x00\",\"bool\",\"A\"]},{\"tag\":\"NC1\",\"name\":\"NC1\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"no_fetch\":0,\"prot\":[1,\"0x06\",\"bool\",\"A\"]},{\"tag\":\"NC2\",\"name\":\"NC2\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"no_fetch\":0,\"prot\":[1,\"0x07\",\"bool\",\"A\"]}]}"
#define DIDO_RK3568_DEFINE_CONFIG "{\"info\":{\"protocol\":[\"modbus_tcp\",\"modbus_rtu\"],\"model\":\"DIDO_LNXALL\",\"vendor\":\"JJIOT\",\"compatible\":\"5.312.0000\",\"version\":\"0.0.0-alpha\",\"type\":\"OTHERS\"},\"poll_list\":[{\"scan_rate\":500,\"prot\":[1,\"0x0080\",16]},{\"scan_rate\":2000,\"prot\":[1,\"0x0000\",6]}],\"read_reg\":[{\"tag\":\"DI1\",\"name\":\"DI1\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"prot\":[1,\"0x80\",\"bool\",\"A\",0,1,0]},{\"tag\":\"DI2\",\"name\":\"DI2\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"prot\":[1,\"0x81\",\"bool\",\"A\",0,1,0]},{\"tag\":\"DI3\",\"name\":\"DI3\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"prot\":[1,\"0x82\",\"bool\",\"A\",0,1,0]},{\"tag\":\"DI4\",\"name\":\"DI4\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"prot\":[1,\"0x83\",\"bool\",\"A\",0,1,0]},{\"tag\":\"DI5\",\"name\":\"DI5\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"prot\":[1,\"0x84\",\"bool\",\"A\",0,1,0]},{\"tag\":\"DI6\",\"name\":\"DI6\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"prot\":[1,\"0x85\",\"bool\",\"A\",0,1,0]},{\"tag\":\"DI7\",\"name\":\"DI7\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"prot\":[1,\"0x86\",\"bool\",\"A\",0,1,1]},{\"tag\":\"DI8\",\"name\":\"DI8\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"prot\":[1,\"0x87\",\"bool\",\"A\",0,1,1]},{\"tag\":\"DI9\",\"name\":\"DI9\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"prot\":[1,\"0x88\",\"bool\",\"A\",0,1,1]},{\"tag\":\"DI10\",\"name\":\"DI10\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"prot\":[1,\"0x89\",\"bool\",\"A\",0,1,1]},{\"tag\":\"DI11\",\"name\":\"DI11\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"prot\":[1,\"0x8a\",\"bool\",\"A\",0,1,1]},{\"tag\":\"DI12\",\"name\":\"DI12\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"prot\":[1,\"0x8b\",\"bool\",\"A\",0,1,1]},{\"tag\":\"DI13\",\"name\":\"DI13\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"prot\":[1,\"0x8c\",\"bool\",\"A\",0,1,1]},{\"tag\":\"DI14\",\"name\":\"DI14\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"prot\":[1,\"0x8d\",\"bool\",\"A\",0,1,1]},{\"tag\":\"DI15\",\"name\":\"DI15\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"prot\":[1,\"0x8e\",\"bool\",\"A\",0,1,1]},{\"tag\":\"DI16\",\"name\":\"DI16\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"prot\":[1,\"0x8f\",\"bool\",\"A\",0,1,1]}],\"write_reg\":[{\"tag\":\"DO1\",\"name\":\"DO1\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"no_fetch\":0,\"prot\":[1,\"0x05\",\"bool\",\"A\"]},{\"tag\":\"DO2\",\"name\":\"DO2\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"no_fetch\":0,\"prot\":[1,\"0x04\",\"bool\",\"A\"]},{\"tag\":\"DO3\",\"name\":\"DO3\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"no_fetch\":0,\"prot\":[1,\"0x03\",\"bool\",\"A\"]},{\"tag\":\"DO4\",\"name\":\"DO4\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"no_fetch\":0,\"prot\":[1,\"0x02\",\"bool\",\"A\"]},{\"tag\":\"DO5\",\"name\":\"DO5\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"no_fetch\":0,\"prot\":[1,\"0x01\",\"bool\",\"A\"]},{\"tag\":\"DO6\",\"name\":\"DO6\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"no_fetch\":0,\"prot\":[1,\"0x00\",\"bool\",\"A\"]},{\"tag\":\"NC1\",\"name\":\"NC1\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"no_fetch\":0,\"prot\":[1,\"0x06\",\"bool\",\"A\"]},{\"tag\":\"NC2\",\"name\":\"NC2\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"no_fetch\":0,\"prot\":[1,\"0x07\",\"bool\",\"A\"]}]}"
#define DIDO_ECU1170_DEFINE_CONFIG "{\"info\":{\"protocol\":[\"modbus_tcp\",\"modbus_rtu\"],\"model\":\"DIDO_LNXALL\",\"vendor\":\"JJIOT\",\"compatible\":\"5.312.0000\",\"version\":\"0.0.0-alpha\",\"type\":\"OTHERS\"},\"poll_list\":[{\"scan_rate\":500,\"prot\":[1,\"0x0080\",20]},{\"scan_rate\":2000,\"prot\":[1,\"0x0000\",14]}],\"read_reg\":[{\"tag\":\"DI0\",\"name\":\"DI0\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"prot\":[1,\"0x80\",\"bool\",\"A\",0,1,0]},{\"tag\":\"DI1\",\"name\":\"DI1\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"prot\":[1,\"0x81\",\"bool\",\"A\",0,1,0]},{\"tag\":\"DI2\",\"name\":\"DI2\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"prot\":[1,\"0x82\",\"bool\",\"A\",0,1,0]},{\"tag\":\"DI3\",\"name\":\"DI3\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"prot\":[1,\"0x83\",\"bool\",\"A\",0,1,0]},{\"tag\":\"DI4\",\"name\":\"DI4\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"prot\":[1,\"0x84\",\"bool\",\"A\",0,1,0]},{\"tag\":\"DI5\",\"name\":\"DI5\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"prot\":[1,\"0x85\",\"bool\",\"A\",0,1,0]},{\"tag\":\"DI6\",\"name\":\"DI6\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"prot\":[1,\"0x86\",\"bool\",\"A\",0,1,0]},{\"tag\":\"DI7\",\"name\":\"DI7\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"prot\":[1,\"0x87\",\"bool\",\"A\",0,1,0]},{\"tag\":\"DI8\",\"name\":\"DI8\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"prot\":[1,\"0x88\",\"bool\",\"A\",0,1,0]},{\"tag\":\"DI9\",\"name\":\"DI9\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"prot\":[1,\"0x89\",\"bool\",\"A\",0,1,0]},{\"tag\":\"DI10\",\"name\":\"DI10\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"prot\":[1,\"0x8a\",\"bool\",\"A\",0,1,0]},{\"tag\":\"DI11\",\"name\":\"DI11\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"prot\":[1,\"0x8b\",\"bool\",\"A\",0,1,0]},{\"tag\":\"DI12\",\"name\":\"DI12\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"prot\":[1,\"0x8c\",\"bool\",\"A\",0,1,0]},{\"tag\":\"DI13\",\"name\":\"DI13\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"prot\":[1,\"0x8d\",\"bool\",\"A\",0,1,0]},{\"tag\":\"DI14\",\"name\":\"DI14\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"prot\":[1,\"0x8e\",\"bool\",\"A\",0,1,0]},{\"tag\":\"DI15\",\"name\":\"DI15\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"prot\":[1,\"0x8f\",\"bool\",\"A\",0,1,0]},{\"tag\":\"DI16\",\"name\":\"DI16\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"prot\":[1,\"0x90\",\"bool\",\"A\",0,1,0]},{\"tag\":\"DI17\",\"name\":\"DI17\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"prot\":[1,\"0x91\",\"bool\",\"A\",0,1,0]},{\"tag\":\"DI18\",\"name\":\"DI18\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"prot\":[1,\"0x92\",\"bool\",\"A\",0,1,0]},{\"tag\":\"DI19\",\"name\":\"DI19\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"prot\":[1,\"0x93\",\"bool\",\"A\",0,1,0]}],\"write_reg\":[{\"tag\":\"LSD0\",\"name\":\"LSD0\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"no_fetch\":0,\"prot\":[1,\"0x00\",\"bool\",\"A\"]},{\"tag\":\"LSD1\",\"name\":\"LSD1\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"no_fetch\":0,\"prot\":[1,\"0x01\",\"bool\",\"A\"]},{\"tag\":\"HSD0\",\"name\":\"HSD0\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"no_fetch\":0,\"prot\":[1,\"0x02\",\"bool\",\"A\"]},{\"tag\":\"HSD1\",\"name\":\"HSD1\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"no_fetch\":0,\"prot\":[1,\"0x03\",\"bool\",\"A\"]},{\"tag\":\"HSD2\",\"name\":\"HSD2\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"no_fetch\":0,\"prot\":[1,\"0x04\",\"bool\",\"A\"]},{\"tag\":\"HSD3\",\"name\":\"HSD3\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"no_fetch\":0,\"prot\":[1,\"0x05\",\"bool\",\"A\"]},{\"tag\":\"DO0\",\"name\":\"DO0\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"no_fetch\":0,\"prot\":[1,\"0x06\",\"bool\",\"A\"]},{\"tag\":\"DO1\",\"name\":\"DO1\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"no_fetch\":0,\"prot\":[1,\"0x07\",\"bool\",\"A\"]},{\"tag\":\"DO2\",\"name\":\"DO2\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"no_fetch\":0,\"prot\":[1,\"0x08\",\"bool\",\"A\"]},{\"tag\":\"DO3\",\"name\":\"DO3\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"no_fetch\":0,\"prot\":[1,\"0x09\",\"bool\",\"A\"]},{\"tag\":\"DO4\",\"name\":\"DO4\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"no_fetch\":0,\"prot\":[1,\"0x0A\",\"bool\",\"A\"]},{\"tag\":\"DO5\",\"name\":\"DO5\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"no_fetch\":0,\"prot\":[1,\"0x0B\",\"bool\",\"A\"]},{\"tag\":\"DO6\",\"name\":\"DO6\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"no_fetch\":0,\"prot\":[1,\"0x0C\",\"bool\",\"A\"]},{\"tag\":\"DO7\",\"name\":\"DO7\",\"desc\":\"\",\"property\":\"realdata\",\"history\":\"both\",\"type\":\"int\",\"offset\":0,\"scale\":1,\"no_fetch\":0,\"prot\":[1,\"0x0D\",\"bool\",\"A\"]}]}"
#define BOARD_NAME_RK3568 "WLOSANY_RK3568"
#define BOARD_NAME_RK3568_XDDL  "WLOSANY_RK3568_XDDL"
#define BOARD_NAME_EMS1000 "WLOSANY_EM1000"
#define BOARD_NAME_6ULL   "WLOSANY_LC100"
#define BOARD_NAME_BAU_B30_003 "WLOSANY_BAU-B30-003"
#define BOARD_NAME_ECU1170 "WLOSANY_ECU1170"
// 逆流
#define MAX_REFLUX_DURATION_MS (62 * 1000)
#define MAX_REFLUX_TIMES       (3)
#define CHECK_INTERVAL_MS      ((uint64_t)30 * 86400 * 1000)
#define CHECK_ALLOW_UNLOCK_MS  ((uint64_t)4 * 3600 * 1000)
#define REFLUX_TIMES_FILE      "/app/temp/reflux_state.json"
#define REFLUX_FEILD           "reflux_field_time"
#endif
