// write Command Final Assembly Number to config_universal.ini file bool GatewayConfig::WriteCmdFinalAssemblyNumber(uint32_t finalAssemblyNumber) { CIniParser gwVarConfig; if (!gwVarConfig.Load(FILE_PATH_GW_INFO_UNIV, "r+")) { LOG("------- NO CONFIG.INI FILE -------"); return 0; } if (!gwVarConfig.FindGroup("WH_GATEWAY", true)) { return 0; } else { int finAssemblyNumber; finAssemblyNumber = (int) finalAssemblyNumber; if (!gwVarConfig.SetVar("WH_GATEWAY", "FINAL_ASSEMBLY_NUMBER", finAssemblyNumber)) return 0; } return 1; }
int PublisherConf::LoadNextMAC(CIniParser& parser /*[in]*/, hart7::hostapp::MAC& mac/*[in/out]*/) { const char *pgroup = NULL; LOG_INFO_APP( "[LoadPublishers]: loading next mac..."); if (!(pgroup = parser.FindGroup(NULL, true, true, true))) { LOG_WARN_APP( "[LoadPublishers]: no mac found"); return -1; } if (pgroup[hart7::hostapp::MAC::TEXT_SIZE] != '\0') { LOG_ERROR_APP( "[LoadPublishers]: read mac has not the proper format."); return -1; } std::string strMac = pgroup; LOG_INFO_APP("[LoadPublishers]: mac=" << strMac << " read from conf." ); try { mac = hart7::hostapp::MAC(strMac); } catch (...) { return -1; } return 0; }
bool GatewayConfig::WriteGwReqMaxRetryNo(uint8_t p_u8RetryNo) { CIniParser gwVarConfig; if (!gwVarConfig.Load(FILE_PATH_CONFIGINI, "r+")) { LOG("------- NO CONFIG.INI FILE -------"); return 0; } if (!gwVarConfig.FindGroup("WH_GATEWAY", true)) { return 0; } if (!gwVarConfig.SetVar("WH_GATEWAY", "GW_REQ_MAX_RETRY_NO", p_u8RetryNo, 0, true)) { return 0; } return 1; }
bool GatewayConfig::WriteCmdUniversalMessage(char * universalmessage) { CIniParser gwVarConfig; if (!gwVarConfig.Load(FILE_PATH_GW_INFO_UNIV, "r+")) { LOG("------- NO CONFIG.INI FILE -------"); return 0; } if (!gwVarConfig.FindGroup("WH_GATEWAY", true)) { return 0; } if (!gwVarConfig.SetVar("WH_GATEWAY", "CMD_UNIVERSAL_MESSAGE", universalmessage)) { return 0; } return 1; }
bool GatewayConfig::WriteMinRespPreamblesNo(uint8_t p_u8MinRespPreamblesNo) { CIniParser gwVarConfig; if (!gwVarConfig.Load(FILE_PATH_GW_INFO_UNIV, "r+")) { LOG("------- NO CONFIG.INI FILE -------"); return 0; } if (!gwVarConfig.FindGroup("WH_GATEWAY", true)) { return 0; } int minRespPreamblesNo = p_u8MinRespPreamblesNo; if (!gwVarConfig.SetVar("WH_GATEWAY", "MIN_RESP_PREAMBLES_NO", minRespPreamblesNo)) { return 0; } return 1; }
bool GatewayConfig::WriteCmdMasterDescriptor(char * masterDescriptor) { CIniParser gwVarConfig; if (!gwVarConfig.Load(FILE_PATH_GW_INFO_UNIV, "r+")) { LOG("------- NO CONFIG.INI FILE -------"); return 0; } if (!gwVarConfig.FindGroup("WH_GATEWAY", true)) { return 0; } else { if (!gwVarConfig.SetVar("WH_GATEWAY", "MASTER_DESCRIPTOR", masterDescriptor)) return 0; } return 1; }
bool GatewayConfig::WriteCmdTag(char * tag) { CIniParser gwVarConfig; if (!gwVarConfig.Load(FILE_PATH_GW_INFO_UNIV, "r+")) { LOG("-------NO CONFIG.INI FILE -------"); return 0; } if (!gwVarConfig.FindGroup("WH_GATEWAY", true)) { return 0; } else { if (!gwVarConfig.SetVar("WH_GATEWAY", "TAG", tag)) return 0; } return 1; }
bool GatewayConfig::WriteCmdMasterDate(WHartDate masterDate) { CIniParser gwVarConfig; if (!gwVarConfig.Load(FILE_PATH_GW_INFO_UNIV, "r+")) { LOG("-------NO CONFIG.INI FILE -------"); return 0; } if (!gwVarConfig.FindGroup("WH_GATEWAY", true)) { return 0; } else { int date_day; int date_month; int date_year; date_day = (int) masterDate.day; date_month = (int) masterDate.month; date_year = (int) masterDate.year; if (!gwVarConfig.SetVar("WH_GATEWAY", "MASTER_DATE_DAY", date_day)) return 0; if (!gwVarConfig.SetVar("WH_GATEWAY", "MASTER_DATE_MONTH", date_month)) return 0; if (!gwVarConfig.SetVar("WH_GATEWAY", "MASTER_DATE_YEAR", date_year)) return 0; } return 1; }
bool GatewayConfig::ReadGWUniversalVariables() { CIniParser gwVarConfig; if (!gwVarConfig.Load(FILE_PATH_GW_INFO_UNIV)) { LOG("------- NO CONFIG.INI FILE -------"); return 0; } if (!gwVarConfig.FindGroup("WH_GATEWAY", true)) { return 0; } // variables for C000 int min_req_preambles_no; if (!(gwVarConfig.GetVar("WH_GATEWAY", "MIN_REQ_PREAMBLES_NO", &min_req_preambles_no))) min_req_preambles_no = 0; // default value m_u8MinReqPreamblesNo = (uint8_t) min_req_preambles_no; int device_revision_level; if (!gwVarConfig.GetVar("WH_GATEWAY", "DEVICE_REVISION_LEVEL", &device_revision_level)) device_revision_level = 0; // default value m_u8DevRevisionLevel = (uint8_t) device_revision_level; int sw_revision_no; if (!gwVarConfig.GetVar("WH_GATEWAY", "SOFTWARE_REVISION_LEVEL", &sw_revision_no)) sw_revision_no = 0; // default value m_u8SoftwRevisionLevel = (uint8_t) sw_revision_no; int hwRevisionLevel_physicalSignalingMode; if (!gwVarConfig.GetVar("WH_GATEWAY", "HWREVLEVEL_PHYSIGNALMODE", &hwRevisionLevel_physicalSignalingMode)) hwRevisionLevel_physicalSignalingMode = 0; // default value m_u8HWRevisionLevel_PhysicalSignCode = (uint8_t) hwRevisionLevel_physicalSignalingMode; if (!(gwVarConfig.GetVar("WH_GATEWAY", "FLAGS", &m_u8Flags, 1) == 1)) m_u8HWRevisionLevel_PhysicalSignCode = 0; // default value int min_resp_preambles_no; if (!(gwVarConfig.GetVar("WH_GATEWAY", "MIN_RESP_PREAMBLES_NO", &min_resp_preambles_no))) min_resp_preambles_no = 0; // default value m_u8MinRespPreamblesNo = (uint8_t) min_resp_preambles_no; int max_no_of_devices_var; if (!(gwVarConfig.GetVar("WH_GATEWAY", "MAX_NO_OF_DEVICES_VARS", &max_no_of_devices_var))) max_no_of_devices_var = 0; // default value m_u8MaxNoOfDevicesVar = (uint8_t) max_no_of_devices_var; int configChangeCounter; if (!(gwVarConfig.GetVar("WH_GATEWAY", "CHANGE_COUNTER", &configChangeCounter))) configChangeCounter = 0; // default value m_u16ConfigChangeCounter = (uint16_t) configChangeCounter; int field_device_status; if (!gwVarConfig.GetVar("WH_GATEWAY", "EXTENDED_STATUS", &field_device_status)) field_device_status = 0; // default value m_u8FlagBits = (uint8_t) field_device_status; if (!(gwVarConfig.GetVar("WH_GATEWAY", "MANUFACT_ID_CODE", m_u8ManufactCode, sizeof(m_u8ManufactCode)) == sizeof(m_u8ManufactCode))) memset(m_u8ManufactCode, 0, sizeof(m_u8ManufactCode)); // default value if (!(gwVarConfig.GetVar("WH_GATEWAY", "PRIVATE_LABEL_CODE", m_u8ManufactLabel, sizeof(m_u8ManufactLabel)) == sizeof(m_u8ManufactLabel))) memset(m_u8ManufactLabel, 0, sizeof(m_u8ManufactLabel)); // default value // end of variables for C000 // variables for C020 and C022 char long_tag[33]; if (!(gwVarConfig.GetVar("WH_GATEWAY", "LONG_TAG", long_tag, sizeof(long_tag)) > 0)) memset(long_tag, 0, sizeof(long_tag)); //default value memcpy(m_szLongTag, long_tag, sizeof(m_szLongTag)); // variables for C016 and C019 int finalAssemblyNumber; if (!gwVarConfig.GetVar("WH_GATEWAY", "FINAL_ASSEMBLY_NUMBER", &finalAssemblyNumber)) finalAssemblyNumber = 0; //default value memcpy(&m_u32FinalAssemblyNumber, &finalAssemblyNumber, sizeof(m_u32FinalAssemblyNumber)); // variables for commands 013 and 018 char tag[9]; if (!(gwVarConfig.GetVar("WH_GATEWAY", "TAG", tag, sizeof(tag)) > 0)) memset(tag, 0, sizeof(tag)); memcpy(m_szTag, tag, sizeof(m_szTag)); if (!(gwVarConfig.GetVar("WH_GATEWAY", "MASTER_DESCRIPTOR", m_szMasterDescriptor, sizeof(m_szMasterDescriptor)) > 0)) memset(m_szMasterDescriptor, 0, sizeof(m_szMasterDescriptor)); // default value int master_date_day; int master_date_month; int master_date_year; if (!gwVarConfig.GetVar("WH_GATEWAY", "MASTER_DATE_DAY", &master_date_day)) master_date_day = 0; // default value if (!gwVarConfig.GetVar("WH_GATEWAY", "MASTER_DATE_MONTH", &master_date_month)) master_date_month = 0; // default value if (!gwVarConfig.GetVar("WH_GATEWAY", "MASTER_DATE_YEAR", &master_date_year)) master_date_year = 0; // default value m_stMasterDate.day = (uint8_t) master_date_day; m_stMasterDate.month = (uint8_t) master_date_month; m_stMasterDate.year = (uint8_t) master_date_year; // variables for C012/C017 if (!(gwVarConfig.GetVar("WH_GATEWAY", "CMD_UNIVERSAL_MESSAGE", m_szCmdUniversalMessage, sizeof(m_szCmdUniversalMessage)) > 0)) memset(m_szCmdUniversalMessage, 0, sizeof(m_szCmdUniversalMessage)); // default value // variables for C048 if (!(gwVarConfig.GetVar("WH_GATEWAY", "DEVICE_SPECIFIC_STATUS1", m_u8deviceSpecificStatus1, sizeof(m_u8deviceSpecificStatus1)) == sizeof(m_u8deviceSpecificStatus1))) memset(m_u8deviceSpecificStatus1, 0, sizeof(m_u8deviceSpecificStatus1)); // default value int deviceOperatingMode; if (!gwVarConfig.GetVar("WH_GATEWAY", "DEVICE_OPERATING_MODE", &deviceOperatingMode)) deviceOperatingMode = 0; // default value m_u8deviceOperatingMode = (uint8_t) deviceOperatingMode; int standardizedStatus0; if (!gwVarConfig.GetVar("WH_GATEWAY", "STANDARDIZED_STATUS0", &standardizedStatus0)) standardizedStatus0 = 0; // default value m_u8standardizedStatus0 = (uint8_t) standardizedStatus0; int standardizedStatus1; if (!gwVarConfig.GetVar("WH_GATEWAY", "STANDARDIZED_STATUS1", &standardizedStatus1)) standardizedStatus1 = 0; // default value m_u8standardizedStatus1 = (uint8_t) standardizedStatus1; int analogChannelSaturatedCode; if (!gwVarConfig.GetVar("WH_GATEWAY", "ANALOG_CHANNEL_SATURATED_CODE", &analogChannelSaturatedCode)) analogChannelSaturatedCode = 0; // default value m_u8analogChannelSaturatedCode = (uint8_t) analogChannelSaturatedCode; int standardizedStatus2; if (!gwVarConfig.GetVar("WH_GATEWAY", "STANDARDIZED_STATUS2", &standardizedStatus2)) standardizedStatus2 = 0; // default value m_u8standardizedStatus2 = (uint8_t) standardizedStatus2; int standardizedStatus3; if (!gwVarConfig.GetVar("WH_GATEWAY", "STANDARDIZED_STATUS3", &standardizedStatus3)) standardizedStatus3 = 0; // default value m_u8standardizedStatus3 = (uint8_t) standardizedStatus3; int analogChannelFixedCode; if (!gwVarConfig.GetVar("WH_GATEWAY", "ANALOG_CHANNEL_FIXED_CODE", &analogChannelFixedCode)) analogChannelFixedCode = 0; // default value m_u8analogChannelFixedCode = (uint8_t) analogChannelFixedCode; if (!(gwVarConfig.GetVar("WH_GATEWAY", "DEVICE_SPECIFIC_STATUS2", m_u8deviceSpecificStatus2, sizeof(m_u8deviceSpecificStatus2)) == sizeof(m_u8deviceSpecificStatus2))) memset(m_u8deviceSpecificStatus2, 0, sizeof(m_u8deviceSpecificStatus2)); // variable used for C038 // TODO: Beni - save Device Status on C038_ResetConfigurationChangedFlag m_u8DeviceStatus = 0; if (!(gwVarConfig.GetVar("WH_GATEWAY", "DEVICE_STATUS", &m_u8DeviceStatus, sizeof(m_u8DeviceStatus)))) m_u8DeviceStatus = 0; // default value return true; }