void CGXDLMSImageTransfer::GetValues(std::vector<std::string>& values) { values.clear(); std::string ln; GetLogicalName(ln); values.push_back(ln); values.push_back(CGXDLMSVariant(m_ImageBlockSize).ToString()); values.push_back(CGXDLMSVariant(m_ImageTransferredBlocksStatus).ToString()); values.push_back(CGXDLMSVariant(m_ImageFirstNotTransferredBlockNumber).ToString()); values.push_back(CGXDLMSVariant(m_ImageTransferEnabled).ToString()); values.push_back(CGXDLMSVariant(m_ImageTransferStatus).ToString()); std::stringstream sb; sb << '['; bool empty = true; for(std::vector<CGXDLMSImageActivateInfo>::iterator it = m_ImageActivateInfo.begin(); it != m_ImageActivateInfo.end(); ++it) { if (!empty) { sb << ", "; } empty = false; std::string str = it->ToString(); sb.write(str.c_str(), str.size()); } sb << ']'; values.push_back(sb.str()); }
void CGXDLMSAutoAnswer::GetValues(std::vector<std::string>& values) { values.clear(); std::string ln; GetLogicalName(ln); values.push_back(ln); values.push_back(CGXDLMSVariant(m_Mode).ToString()); std::stringstream sb; sb << '['; bool empty = true; for(std::vector<std::pair< CGXDateTime, CGXDateTime> >::iterator it = m_ListeningWindow.begin(); it != m_ListeningWindow.end(); ++it) { if (!empty) { sb << ", "; } empty = false; std::string str = it->first.ToString(); sb.write(str.c_str(), str.size()); sb << " "; str = it->second.ToString(); sb.write(str.c_str(), str.size()); } sb << ']'; values.push_back(sb.str()); values.push_back(CGXDLMSVariant(m_Status).ToString()); values.push_back(CGXDLMSVariant(m_NumberOfCalls).ToString()); //Clean sb.str(std::string()); sb << m_NumberOfRingsInListeningWindow; sb << "/"; sb << m_NumberOfRingsOutListeningWindow; values.push_back(sb.str()); }
void CGXDLMSDemandRegister::GetValues(vector<string>& values) { values.clear(); string ln; GetLogicalName(ln); values.push_back(ln); values.push_back(m_CurrentAvarageValue.ToString()); values.push_back(m_LastAvarageValue.ToString()); string str = "Scaler: "; //if there is no fractal part. double s = GetScaler(); if (s - (long)s == 0) { str += CGXDLMSVariant((long)s).ToString(); } else { str += CGXDLMSVariant(s).ToString(); } str += " Unit: "; str += CGXDLMSConverter::GetUnitAsString(m_Unit); values.push_back(str); values.push_back(m_Status.ToString()); values.push_back(m_CaptureTime.ToString()); values.push_back(m_StartTimeCurrent.ToString()); values.push_back(CGXDLMSVariant(m_Period).ToString()); values.push_back(CGXDLMSVariant(m_NumberOfPeriods).ToString()); }
void CGXDLMSMBusClient::GetValues(vector<string>& values) { values.clear(); string ln; GetLogicalName(ln); values.push_back(ln); values.push_back(m_MBusPortReference); std::stringstream sb; sb << '['; bool empty = true; for(vector<pair<string, string> >::iterator it = m_CaptureDefinition.begin(); it != m_CaptureDefinition.end(); ++it) { if (!empty) { sb << ", "; } empty = false; sb.write(it->first.c_str(), it->first.size()); sb << " "; sb.write(it->second.c_str(), it->second.size()); } sb << ']'; values.push_back(sb.str()); values.push_back(CGXDLMSVariant(m_CapturePeriod).ToString()); values.push_back(CGXDLMSVariant(m_PrimaryAddress).ToString()); values.push_back(CGXDLMSVariant(m_IdentificationNumber).ToString()); values.push_back(CGXDLMSVariant(m_ManufacturerID).ToString()); values.push_back(CGXDLMSVariant(m_DataHeaderVersion).ToString()); values.push_back(CGXDLMSVariant(m_DeviceType).ToString()); values.push_back(CGXDLMSVariant(m_AccessNumber).ToString()); values.push_back(CGXDLMSVariant(m_Status).ToString()); values.push_back(CGXDLMSVariant(m_Alarm).ToString()); }
void CGXDLMSTcpUdpSetup::GetValues(std::vector<std::string>& values) { values.clear(); std::string ln; GetLogicalName(ln); values.push_back(ln); values.push_back(CGXDLMSVariant(m_Port).ToString()); values.push_back(m_IPReference); values.push_back(CGXDLMSVariant(m_MaximumSegmentSize).ToString()); values.push_back(CGXDLMSVariant(m_MaximumSimultaneousConnections).ToString()); values.push_back(CGXDLMSVariant(m_InactivityTimeout).ToString()); }
void CGXDLMSProfileGeneric::GetValues(vector<string>& values) { values.clear(); string ln; GetLogicalName(ln); values.push_back(ln); std::stringstream sb; bool empty = true; for(vector< vector<CGXDLMSVariant> >::iterator row = m_Buffer.begin(); row != m_Buffer.end(); ++row) { for(vector<CGXDLMSVariant>::iterator cell = row->begin(); cell != row->end(); ++cell) { sb << cell->ToString(); sb << " | "; } sb << "\r\n"; } values.push_back(sb.str()); //Clear str. sb.str(std::string()); sb << '['; empty = true; for(vector<pair<CGXDLMSObject*, CGXDLMSCaptureObject*> >::iterator it = m_CaptureObjects.begin(); it != m_CaptureObjects.end(); ++it) { if (!empty) { sb << ", "; } empty = false; string str = it->first->GetName().ToString(); sb.write(str.c_str(), str.size()); } sb << ']'; values.push_back(sb.str()); values.push_back(CGXDLMSVariant(m_CapturePeriod).ToString()); values.push_back(CGXDLMSVariant(m_SortMethod).ToString()); if (m_SortObject == NULL) { values.push_back(""); } else { values.push_back(m_SortObject->GetName().ToString()); } values.push_back(CGXDLMSVariant(m_EntriesInUse).ToString()); values.push_back(CGXDLMSVariant(m_ProfileEntries).ToString()); }
void CGXDLMSAutoConnect::GetValues(std::vector<std::string>& values) { values.clear(); std::string ln; GetLogicalName(ln); values.push_back(ln); values.push_back(CGXDLMSVariant(m_Mode).ToString()); values.push_back(CGXDLMSVariant(m_Repetitions).ToString()); values.push_back(CGXDLMSVariant(m_RepetitionDelay).ToString()); std::stringstream sb; sb << '['; bool empty = true; for(std::vector<std::pair< CGXDateTime, CGXDateTime> >::iterator it = m_CallingWindow.begin(); it != m_CallingWindow.end(); ++it) { if (!empty) { sb << ", "; } empty = false; std::string str = it->first.ToString(); sb.write(str.c_str(), str.size()); sb << " "; str = it->second.ToString(); sb.write(str.c_str(), str.size()); } sb << ']'; values.push_back(sb.str()); //Clear str. sb.str(std::string()); sb << '['; empty = true; for(std::vector< std::string >::iterator it = m_Destinations.begin(); it != m_Destinations.end(); ++it) { if (!empty) { sb << ", "; } empty = false; sb.write(it->c_str(), it->size()); } sb << ']'; values.push_back(sb.str()); }
/* * Returns value of given attribute. */ int CGXDLMSProfileGeneric::GetValue(int index, int selector, CGXDLMSVariant& parameters, CGXDLMSVariant& value) { if (index == 1) { GXHelpers::AddRange(value.byteArr, m_LN, 6); value.vt = DLMS_DATA_TYPE_OCTET_STRING; return ERROR_CODES_OK; } if (index == 2) { vector<unsigned char> vArr; int ret = GetProfileGenericData(selector, parameters, vArr); value = CGXDLMSVariant(vArr); return ret; } if (index == 3) { vector<unsigned char> data; int ret = GetColumns(data); value = CGXDLMSVariant(data); return ret; } if (index == 4) { value = GetCapturePeriod(); return ERROR_CODES_OK; } if (index == 5) { value = GetSortMethod(); return ERROR_CODES_OK; } if (index == 7) { value = GetEntriesInUse(); return ERROR_CODES_OK; } if (index == 8) { value = GetProfileEntries(); return ERROR_CODES_OK; } return ERROR_CODES_INVALID_PARAMETER; }
void CGXDLMSGPRSSetup::GetValues(std::vector<std::string>& values) { values.clear(); std::string ln; GetLogicalName(ln); values.push_back(ln); values.push_back(m_APN); values.push_back(CGXDLMSVariant(m_PINCode).ToString()); values.push_back(m_DefaultQualityOfService.ToString() + " " + m_RequestedQualityOfService.ToString()); }
void CGXDLMSDisconnectControl::GetValues(std::vector<std::string>& values) { values.clear(); std::string ln; GetLogicalName(ln); values.push_back(ln); values.push_back(CGXDLMSVariant(m_OutputState).ToString()); values.push_back(CGXDLMSConverter::ToString(m_ControlState)); values.push_back(CGXDLMSConverter::ToString(m_ControlMode)); }
void CGXDLMSLimiter::GetValues(std::vector<std::string>& values) { values.clear(); std::string ln; GetLogicalName(ln); values.push_back(ln); if (m_MonitoredValue != NULL) { values.push_back(m_MonitoredValue->GetName().ToString()); } else { values.push_back(""); } values.push_back(m_ThresholdActive.ToString()); values.push_back(m_ThresholdNormal.ToString()); values.push_back(m_ThresholdEmergency.ToString()); values.push_back(CGXDLMSVariant(m_MinOverThresholdDuration).ToString()); values.push_back(CGXDLMSVariant(m_MinUnderThresholdDuration).ToString()); values.push_back(m_EmergencyProfile.ToString()); std::stringstream sb; sb << '['; bool empty = true; for(std::vector<int>::iterator it = m_EmergencyProfileGroupIDs.begin(); it != m_EmergencyProfileGroupIDs.end(); ++it) { if (!empty) { sb << ", "; } empty = false; std::string str = CGXDLMSVariant(*it).ToString(); sb.write(str.c_str(), str.size()); } sb << ']'; values.push_back(sb.str()); values.push_back(CGXDLMSVariant(m_EmergencyProfileActive).ToString()); sb.str(std::string()); sb << m_ActionOverThreshold.ToString().c_str(); sb << ", "; sb << m_ActionUnderThreshold.ToString().c_str(); values.push_back(sb.str()); }
void CGXDLMSMBusSlavePortSetup::GetValues(vector<string>& values) { values.clear(); string ln; GetLogicalName(ln); values.push_back(ln); values.push_back(CGXDLMSConverter::ToString(m_DefaultBaud)); values.push_back(CGXDLMSConverter::ToString(m_AvailableBaud)); values.push_back(CGXDLMSConverter::ToString(m_AddressState)); values.push_back(CGXDLMSVariant(m_BusAddress).ToString()); }
CGXDLMSVariant CGXDLMSObject::GetName() { if (m_SN != 0) { return CGXDLMSVariant(m_SN); } CGXDLMSVariant ln; GXHelpers::GetLogicalName(m_LN, ln.strVal); ln.vt = DLMS_DATA_TYPE_STRING; return ln; }
void CGXDLMSRegister::GetValues(std::vector<std::string>& values) { values.clear(); std::string ln; GetLogicalName(ln); values.push_back(ln); values.push_back(m_Value.ToString()); std::string str = "Scaler: "; double s = GetScaler(); //if there is no fractal part. if (s - (long)s == 0) { str += CGXDLMSVariant((long)s).ToString(); } else { str += CGXDLMSVariant(s).ToString(); } str += " Unit: "; str += CGXDLMSConverter::GetUnitAsString(m_Unit); values.push_back(str); }
void CGXDLMSIecHdlcSetup::GetValues(std::vector<std::string>& values) { values.clear(); std::string ln; GetLogicalName(ln); values.push_back(ln); values.push_back(CGXDLMSConverter::ToString(m_CommunicationSpeed)); values.push_back(CGXDLMSVariant(m_WindowSizeTransmit).ToString()); values.push_back(CGXDLMSVariant(m_WindowSizeReceive).ToString()); values.push_back(CGXDLMSVariant(m_MaximumInfoLengthTransmit).ToString()); values.push_back(CGXDLMSVariant(m_MaximumInfoLengthReceive).ToString()); values.push_back(CGXDLMSVariant(m_InterCharachterTimeout).ToString()); values.push_back(CGXDLMSVariant(m_InactivityTimeout).ToString()); values.push_back(CGXDLMSVariant(m_DeviceAddress).ToString()); }
int CGXDLMSDemandRegister::SetValue(int index, CGXDLMSVariant& value) { if (index == 1) { if (value.vt != DLMS_DATA_TYPE_OCTET_STRING || value.GetSize() != 6) { return ERROR_CODES_INVALID_PARAMETER; } memcpy(m_LN, &value.byteArr[0], 6); return ERROR_CODES_OK; } else if (index == 2) { if (m_Scaler != 0) { SetCurrentAvarageValue(CGXDLMSVariant(value.ToDouble() * m_Scaler)); } else { SetCurrentAvarageValue(value); } } else if (index == 3) { if (m_Scaler != 0) { SetLastAvarageValue(CGXDLMSVariant(value.ToDouble() * GetScaler())); } else { SetLastAvarageValue(value); } } else if (index == 4) { m_Scaler = value.Arr[0].bVal; m_Unit = value.Arr[1].bVal; } else if (index == 5) { SetStatus(value.lVal); } else if (index == 6) { CGXDLMSVariant tmp; CGXDLMSClient::ChangeType(value.byteArr, DLMS_DATA_TYPE_DATETIME, tmp); SetCaptureTime(tmp.dateTime); } else if (index == 7) { CGXDLMSVariant tmp; CGXDLMSClient::ChangeType(value.byteArr, DLMS_DATA_TYPE_DATETIME, tmp); SetStartTimeCurrent(tmp.dateTime); } else if (index == 8) { SetPeriod(value.ulVal); } else if (index == 9) { SetNumberOfPeriods(value.lVal); } else { return ERROR_CODES_INVALID_PARAMETER; } return ERROR_CODES_OK; }