// Returns value of given attribute. int CGXDLMSDisconnectControl::GetValue(CGXDLMSSettings& settings, CGXDLMSValueEventArg& e) { if (e.GetIndex() == 1) { int ret; CGXDLMSVariant tmp; if ((ret = GetLogicalName(this, tmp)) != 0) { return ret; } e.SetValue(tmp); return DLMS_ERROR_CODE_OK; } if (e.GetIndex() == 2) { e.SetValue(m_OutputState); return DLMS_ERROR_CODE_OK; } if (e.GetIndex() == 3) { e.SetValue(m_ControlState); return DLMS_ERROR_CODE_OK; } if (e.GetIndex() == 4) { e.SetValue(m_ControlMode); return DLMS_ERROR_CODE_OK; } return DLMS_ERROR_CODE_INVALID_PARAMETER; }
// Returns value of given attribute. int CGXDLMSMessageHandler::GetValue(CGXDLMSSettings& settings, CGXDLMSValueEventArg& e) { if (e.GetIndex() == 1) { int ret; CGXDLMSVariant tmp; if ((ret = GetLogicalName(this, tmp)) != 0) { return ret; } e.SetValue(tmp); return DLMS_ERROR_CODE_OK; } if (e.GetIndex() == 2) { //TODO: e.SetValue(m_ListeningWindow); return DLMS_ERROR_CODE_OK; } if (e.GetIndex() == 3) { //TODO: e.SetValue(m_AllowedSenders); return DLMS_ERROR_CODE_OK; } if (e.GetIndex() == 4) { //TODO: e.SetValue(m_SendersAndActions); return DLMS_ERROR_CODE_OK; } return DLMS_ERROR_CODE_INVALID_PARAMETER; }
// Returns value of given attribute. int CGXDLMSIecHdlcSetup::GetValue(CGXDLMSSettings& settings, CGXDLMSValueEventArg& e) { if (e.GetIndex() == 1) { int ret; CGXDLMSVariant tmp; if ((ret = GetLogicalName(this, tmp)) != 0) { return ret; } e.SetValue(tmp); return DLMS_ERROR_CODE_OK; } else if (e.GetIndex() == 2) { e.SetValue(m_CommunicationSpeed); } else if (e.GetIndex() == 3) { e.SetValue(m_WindowSizeTransmit); } else if (e.GetIndex() == 4) { e.SetValue(m_WindowSizeReceive); } else if (e.GetIndex() == 5) { e.SetValue(m_MaximumInfoLengthTransmit); } else if (e.GetIndex() == 6) { e.SetValue(m_MaximumInfoLengthReceive); } else if (e.GetIndex() == 7) { e.SetValue(m_InterCharachterTimeout); } else if (e.GetIndex() == 8) { e.SetValue(m_InactivityTimeout); } else if (e.GetIndex() == 9) { e.SetValue(m_DeviceAddress); } else { return DLMS_ERROR_CODE_INVALID_PARAMETER; } return DLMS_ERROR_CODE_OK; }
// Returns value of given attribute. int CGXDLMSSpecialDaysTable::GetValue(CGXDLMSSettings& settings, CGXDLMSValueEventArg& e) { if (e.GetIndex() == 1) { int ret; CGXDLMSVariant tmp; if ((ret = GetLogicalName(this, tmp)) != 0) { return ret; } e.SetValue(tmp); return DLMS_ERROR_CODE_OK; } if (e.GetIndex() == 2) { e.SetByteArray(true); CGXByteBuffer data; data.SetUInt8(DLMS_DATA_TYPE_ARRAY); //Add count GXHelpers::SetObjectCount((unsigned long)m_Entries.size(), data); int ret; CGXDLMSVariant index, date, id; for (std::vector<CGXDLMSSpecialDay*>::iterator it = m_Entries.begin(); it != m_Entries.end(); ++it) { data.SetUInt8(DLMS_DATA_TYPE_STRUCTURE); data.SetUInt8(3); //Count index = (*it)->GetIndex(); date = (*it)->GetDate(); id = (*it)->GetDayId(); if ((ret = GXHelpers::SetData(data, DLMS_DATA_TYPE_UINT16, index)) != DLMS_ERROR_CODE_OK || (ret = GXHelpers::SetData(data, DLMS_DATA_TYPE_OCTET_STRING, date)) != DLMS_ERROR_CODE_OK || (ret = GXHelpers::SetData(data, DLMS_DATA_TYPE_UINT8, id)) != DLMS_ERROR_CODE_OK) { return ret; } } e.SetValue(data); return DLMS_ERROR_CODE_OK; } return DLMS_ERROR_CODE_INVALID_PARAMETER; }
// Set value of given attribute. int CGXDLMSGPRSSetup::SetValue(CGXDLMSSettings& settings, CGXDLMSValueEventArg& e) { if (e.GetIndex() == 1) { return SetLogicalName(this, e.GetValue()); } else if (e.GetIndex() == 2) { if (e.GetValue().vt == DLMS_DATA_TYPE_STRING) { m_APN = e.GetValue().ToString(); } else { CGXDLMSVariant tmp; int ret; if ((ret = CGXDLMSClient::ChangeType(e.GetValue(), DLMS_DATA_TYPE_STRING, tmp)) != 0) { return ret; } m_APN = tmp.strVal; } e.SetValue(m_APN); } else if (e.GetIndex() == 3) { m_PINCode = e.GetValue().uiVal; } else if (e.GetIndex() == 4) { m_DefaultQualityOfService.SetPrecedence(e.GetValue().Arr[0].Arr[0].iVal); m_DefaultQualityOfService.SetDelay(e.GetValue().Arr[0].Arr[1].iVal); m_DefaultQualityOfService.SetReliability(e.GetValue().Arr[0].Arr[2].iVal); m_DefaultQualityOfService.SetPeakThroughput(e.GetValue().Arr[0].Arr[3].iVal); m_DefaultQualityOfService.SetMeanThroughput(e.GetValue().Arr[0].Arr[4].iVal); m_RequestedQualityOfService.SetPrecedence(e.GetValue().Arr[1].Arr[0].iVal); m_RequestedQualityOfService.SetDelay(e.GetValue().Arr[1].Arr[1].iVal); m_RequestedQualityOfService.SetReliability(e.GetValue().Arr[1].Arr[2].iVal); m_RequestedQualityOfService.SetPeakThroughput(e.GetValue().Arr[1].Arr[3].iVal); m_RequestedQualityOfService.SetMeanThroughput(e.GetValue().Arr[1].Arr[4].iVal); } else { return DLMS_ERROR_CODE_INVALID_PARAMETER; } return DLMS_ERROR_CODE_OK; }
// Set value of given attribute. int CGXDLMSSpecialDaysTable::SetValue(CGXDLMSSettings& settings, CGXDLMSValueEventArg& e) { if (e.GetIndex() == 1) { int ret; CGXDLMSVariant tmp; if ((ret = GetLogicalName(this, tmp)) != 0) { return ret; } e.SetValue(tmp); return DLMS_ERROR_CODE_OK; } else if (e.GetIndex() == 2) { for (std::vector<CGXDLMSSpecialDay*>::iterator it = m_Entries.begin(); it != m_Entries.end(); ++it) { delete *it; } m_Entries.clear(); if (e.GetValue().vt == DLMS_DATA_TYPE_ARRAY) { CGXDLMSVariant tmp; for (std::vector<CGXDLMSVariant>::iterator item = e.GetValue().Arr.begin(); item != e.GetValue().Arr.end(); ++item) { CGXDLMSSpecialDay *it = new CGXDLMSSpecialDay(); it->SetIndex((*item).Arr[0].ToInteger()); CGXDLMSClient::ChangeType((*item).Arr[1], DLMS_DATA_TYPE_DATE, tmp); it->SetDate(tmp.dateTime); it->SetDayId((*item).Arr[2].ToInteger()); m_Entries.push_back(it); } } } else { return DLMS_ERROR_CODE_INVALID_PARAMETER; } return DLMS_ERROR_CODE_OK; }
// Returns value of given attribute. int CGXDLMSTcpUdpSetup::GetValue(CGXDLMSSettings& settings, CGXDLMSValueEventArg& e) { if (e.GetIndex() == 1) { int ret; CGXDLMSVariant tmp; if ((ret = GetLogicalName(this, tmp)) != 0) { return ret; } e.SetValue(tmp); return DLMS_ERROR_CODE_OK; } if (e.GetIndex() == 2) { CGXDLMSVariant tmp = GetPort(); e.SetValue(tmp); return DLMS_ERROR_CODE_OK; } if (e.GetIndex() == 3) { CGXDLMSVariant tmp; GXHelpers::SetLogicalName(m_IPReference.c_str(), tmp); e.SetValue(tmp); return DLMS_ERROR_CODE_OK; } if (e.GetIndex() == 4) { CGXDLMSVariant tmp = GetMaximumSegmentSize(); e.SetValue(tmp); return DLMS_ERROR_CODE_OK; } if (e.GetIndex() == 5) { CGXDLMSVariant tmp = GetMaximumSimultaneousConnections(); e.SetValue(tmp); return DLMS_ERROR_CODE_OK; } if (e.GetIndex() == 6) { CGXDLMSVariant tmp = GetInactivityTimeout(); e.SetValue(tmp); return DLMS_ERROR_CODE_OK; } return DLMS_ERROR_CODE_INVALID_PARAMETER; }
// Returns value of given attribute. int CGXDLMSAutoConnect::GetValue(CGXDLMSSettings& settings, CGXDLMSValueEventArg& e) { if (e.GetIndex() == 1) { int ret; CGXDLMSVariant tmp; if ((ret = GetLogicalName(this, tmp)) != 0) { return ret; } e.SetValue(tmp); return DLMS_ERROR_CODE_OK; } if (e.GetIndex() == 2) { e.SetValue((unsigned char) GetMode()); return DLMS_ERROR_CODE_OK; } if (e.GetIndex() == 3) { e.SetValue(GetRepetitions()); return DLMS_ERROR_CODE_OK; } if (e.GetIndex() == 4) { e.SetValue(GetRepetitionDelay()); return DLMS_ERROR_CODE_OK; } if (e.GetIndex() == 5) { int cnt = m_CallingWindow.size(); CGXByteBuffer data; data.SetUInt8(DLMS_DATA_TYPE_ARRAY); int ret; //Add count GXHelpers::SetObjectCount(cnt, data); if (cnt != 0) { CGXDLMSVariant s, e; for (std::vector<std::pair< CGXDateTime, CGXDateTime> >::iterator it = m_CallingWindow.begin(); it != m_CallingWindow.end(); ++it) { data.SetUInt8(DLMS_DATA_TYPE_STRUCTURE); data.SetUInt8(2); //Count s = it->first; e = it->second; if ((ret = GXHelpers::SetData(data, DLMS_DATA_TYPE_OCTET_STRING, s)) != 0 || //start_time (ret = GXHelpers::SetData(data, DLMS_DATA_TYPE_OCTET_STRING, e)) != 0) //end_time { return ret; } } } e.SetValue(data); return DLMS_ERROR_CODE_OK; } if (e.GetIndex() == 6) { CGXByteBuffer data; data.SetUInt8(DLMS_DATA_TYPE_ARRAY); int ret; int cnt = m_Destinations.size(); //Add count GXHelpers::SetObjectCount(cnt, data); for (std::vector< std::string >::iterator it = m_Destinations.begin(); it != m_Destinations.end(); ++it) { CGXDLMSVariant value; e.GetValue().Add(&(*it)[0], it->size()); if ((ret = GXHelpers::SetData(data, DLMS_DATA_TYPE_OCTET_STRING, value)) != 0) //destination { return ret; } } e.SetValue(data); return DLMS_ERROR_CODE_OK; } return DLMS_ERROR_CODE_INVALID_PARAMETER; }
// Returns value of given attribute. int CGXDLMSGPRSSetup::GetValue(CGXDLMSSettings& settings, CGXDLMSValueEventArg& e) { if (e.GetIndex() == 1) { int ret; CGXDLMSVariant tmp; if ((ret = GetLogicalName(this, tmp)) != 0) { return ret; } e.SetValue(tmp); return DLMS_ERROR_CODE_OK; } if (e.GetIndex() == 2) { e.SetValue(m_APN); return DLMS_ERROR_CODE_OK; } if (e.GetIndex() == 3) { e.SetValue(m_PINCode); return DLMS_ERROR_CODE_OK; } if (e.GetIndex() == 4) { CGXByteBuffer data; data.SetUInt8(DLMS_DATA_TYPE_STRUCTURE); data.SetUInt8(2); data.SetUInt8(DLMS_DATA_TYPE_STRUCTURE); data.SetUInt8(5); int ret; CGXDLMSVariant precedence = m_DefaultQualityOfService.GetPrecedence(); CGXDLMSVariant delay = m_DefaultQualityOfService.GetDelay(); CGXDLMSVariant reliability = m_DefaultQualityOfService.GetReliability(); CGXDLMSVariant peak = m_DefaultQualityOfService.GetPeakThroughput(); CGXDLMSVariant mean = m_DefaultQualityOfService.GetMeanThroughput(); if ((ret = GXHelpers::SetData(data, DLMS_DATA_TYPE_UINT8, precedence)) != 0 || (ret = GXHelpers::SetData(data, DLMS_DATA_TYPE_UINT8, delay)) != 0 || (ret = GXHelpers::SetData(data, DLMS_DATA_TYPE_UINT8, reliability)) != 0 || (ret = GXHelpers::SetData(data, DLMS_DATA_TYPE_UINT8, peak)) != 0 || (ret = GXHelpers::SetData(data, DLMS_DATA_TYPE_UINT8, mean)) != 0) { return ret; } data.SetUInt8(5); precedence = m_RequestedQualityOfService.GetPrecedence(); delay = m_RequestedQualityOfService.GetDelay(); reliability = m_RequestedQualityOfService.GetReliability(); peak = m_RequestedQualityOfService.GetPeakThroughput(); mean = m_RequestedQualityOfService.GetMeanThroughput(); if ((ret = GXHelpers::SetData(data, DLMS_DATA_TYPE_UINT8, precedence)) != 0 || (ret = GXHelpers::SetData(data, DLMS_DATA_TYPE_UINT8, delay)) != 0 || (ret = GXHelpers::SetData(data, DLMS_DATA_TYPE_UINT8, reliability)) != 0 || (ret = GXHelpers::SetData(data, DLMS_DATA_TYPE_UINT8, peak)) != 0 || (ret = GXHelpers::SetData(data, DLMS_DATA_TYPE_UINT8, mean)) != 0) { return ret; } e.SetValue(data); return DLMS_ERROR_CODE_OK; } return DLMS_ERROR_CODE_INVALID_PARAMETER; }
// Returns value of given attribute. int CGXDLMSAutoAnswer::GetValue(CGXDLMSSettings& settings, CGXDLMSValueEventArg& e) { if (e.GetIndex() == 1) { int ret; CGXDLMSVariant tmp; if ((ret = GetLogicalName(this, tmp)) != 0) { return ret; } e.SetValue(tmp); return DLMS_ERROR_CODE_OK; } if (e.GetIndex() == 2) { e.SetValue(GetMode()); return DLMS_ERROR_CODE_OK; } if (e.GetIndex() == 3) { e.SetByteArray(true); int ret; unsigned long cnt = (unsigned long)m_ListeningWindow.size(); CGXByteBuffer data; data.SetUInt8(DLMS_DATA_TYPE_ARRAY); //Add count GXHelpers::SetObjectCount(cnt, data); CGXDLMSVariant f, s; for (std::vector<std::pair<CGXDateTime, CGXDateTime> >::iterator it = m_ListeningWindow.begin(); it != m_ListeningWindow.end(); ++it) { data.SetUInt8(DLMS_DATA_TYPE_STRUCTURE); data.SetUInt8(2); //Count f = it->first; s = it->second; if ((ret = GXHelpers::SetData(data, DLMS_DATA_TYPE_OCTET_STRING, f)) != 0 || //start_time (ret = GXHelpers::SetData(data, DLMS_DATA_TYPE_OCTET_STRING, s)) != 0) //end_time { return ret; } } e.SetValue(data); return DLMS_ERROR_CODE_OK; } if (e.GetIndex() == 4) { e.SetValue(GetStatus()); return DLMS_ERROR_CODE_OK; } if (e.GetIndex() == 5) { e.SetValue(GetNumberOfCalls()); return DLMS_ERROR_CODE_OK; } if (e.GetIndex() == 6) { e.SetByteArray(true); CGXByteBuffer data; data.SetUInt8(DLMS_DATA_TYPE_STRUCTURE); GXHelpers::SetObjectCount(2, data); CGXDLMSVariant in = m_NumberOfRingsInListeningWindow; CGXDLMSVariant out = m_NumberOfRingsOutListeningWindow; int ret; if ((ret = GXHelpers::SetData(data, DLMS_DATA_TYPE_UINT8, in)) != DLMS_ERROR_CODE_OK || (ret = GXHelpers::SetData(data, DLMS_DATA_TYPE_UINT8, out)) != DLMS_ERROR_CODE_OK) { return ret; } e.SetValue(data); return DLMS_ERROR_CODE_OK; } return DLMS_ERROR_CODE_INVALID_PARAMETER; }
// Returns value of given attribute. int CGXDLMSPppSetup::GetValue(CGXDLMSSettings& settings, CGXDLMSValueEventArg& e) { CGXByteBuffer data; if (e.GetIndex() == 1) { int ret; CGXDLMSVariant tmp; if ((ret = GetLogicalName(this, tmp)) != 0) { return ret; } e.SetValue(tmp); return DLMS_ERROR_CODE_OK; } if (e.GetIndex() == 2) { e.SetValue(m_PHYReference); return DLMS_ERROR_CODE_OK; } if (e.GetIndex() == 3) { data.SetUInt8(DLMS_DATA_TYPE_ARRAY); data.SetUInt8(m_LCPOptions.size()); CGXDLMSVariant type, len; for(std::vector<CGXDLMSPppSetupLcpOption>::iterator it = m_LCPOptions.begin(); it != m_LCPOptions.end(); ++it) { data.SetUInt8(DLMS_DATA_TYPE_STRUCTURE); data.SetUInt8(3); type = it->GetType(); len = it->GetLength(); CGXDLMSVariant tmp = it->GetData(); GXHelpers::SetData(data, DLMS_DATA_TYPE_UINT8, type); GXHelpers::SetData(data, DLMS_DATA_TYPE_UINT8, len); GXHelpers::SetData(data, it->GetData().vt, tmp); } e.SetValue(data); return DLMS_ERROR_CODE_OK; } if (e.GetIndex() == 4) { data.SetUInt8(DLMS_DATA_TYPE_ARRAY); data.SetUInt8(m_IPCPOptions.size()); CGXDLMSVariant type, len; for(std::vector<CGXDLMSPppSetupIPCPOption>::iterator it = m_IPCPOptions.begin(); it != m_IPCPOptions.end(); ++it) { data.SetUInt8(DLMS_DATA_TYPE_STRUCTURE); data.SetUInt8(3); type = it->GetType(); len = it->GetLength(); GXHelpers::SetData(data, DLMS_DATA_TYPE_UINT8, type); GXHelpers::SetData(data, DLMS_DATA_TYPE_UINT8, len); GXHelpers::SetData(data, it->GetData().vt, it->m_Data); } e.SetValue(data); return DLMS_ERROR_CODE_OK; } else if (e.GetIndex() == 5) { data.SetUInt8(DLMS_DATA_TYPE_STRUCTURE); data.SetUInt8(2); //Add username. data.SetUInt8(DLMS_DATA_TYPE_OCTET_STRING); data.SetUInt8(m_UserName.GetSize()); data.Set(&m_UserName, 0, -1); //Add password. data.SetUInt8(DLMS_DATA_TYPE_OCTET_STRING); data.SetUInt8(m_Password.GetSize()); data.Set(&m_Password, 0, -1); e.SetValue(data); return DLMS_ERROR_CODE_OK; } return DLMS_ERROR_CODE_INVALID_PARAMETER; }
// Returns value of given attribute. int CGXDLMSLimiter::GetValue(CGXDLMSSettings& settings, CGXDLMSValueEventArg& e) { if (e.GetIndex() == 1) { int ret; CGXDLMSVariant tmp; if ((ret = GetLogicalName(this, tmp)) != 0) { return ret; } e.SetValue(tmp); return DLMS_ERROR_CODE_OK; } else if (e.GetIndex() == 2) { int ret; CGXByteBuffer data; data.SetUInt8(DLMS_DATA_TYPE_STRUCTURE); data.SetUInt8(3); std::string ln; m_MonitoredValue->GetLogicalName(ln); CGXDLMSVariant type = m_MonitoredValue->GetObjectType(); CGXDLMSVariant tmp = ln; if ((ret = GXHelpers::SetData(data, DLMS_DATA_TYPE_INT16, type)) != 0 || (ret = GXHelpers::SetData(data, DLMS_DATA_TYPE_OCTET_STRING, tmp)) != 0) { return ret; } //TODO: GXHelpers::SetData(data, DLMS_DATA_TYPE_UINT8, m_Monitorede.GetValue().GetSelectedAttributeIndex()); e.SetValue(data); } else if (e.GetIndex() == 3) { e.SetValue(m_ThresholdActive); return DLMS_ERROR_CODE_OK; } else if (e.GetIndex() == 4) { e.SetValue(m_ThresholdNormal); } else if (e.GetIndex() == 5) { e.SetValue(m_ThresholdEmergency); } else if (e.GetIndex() == 6) { e.SetValue(m_MinOverThresholdDuration); } else if (e.GetIndex() == 7) { e.SetValue(m_MinUnderThresholdDuration); } else if (e.GetIndex() == 8) { int ret; CGXByteBuffer data; data.SetUInt8(DLMS_DATA_TYPE_STRUCTURE); data.SetUInt8(3); CGXDLMSVariant id = m_EmergencyProfile.GetID(); CGXDLMSVariant time = m_EmergencyProfile.GetActivationTime(); CGXDLMSVariant duration = m_EmergencyProfile.GetDuration(); if ((ret = GXHelpers::SetData(data, DLMS_DATA_TYPE_UINT16, id)) != 0 || (ret = GXHelpers::SetData(data, DLMS_DATA_TYPE_DATETIME, time)) != 0 || (ret = GXHelpers::SetData(data, DLMS_DATA_TYPE_UINT32, duration)) != 0) { return ret; } e.SetValue(data); } else if (e.GetIndex() == 9) { int ret; CGXByteBuffer data; data.SetUInt8(DLMS_DATA_TYPE_ARRAY); data.SetUInt8(m_EmergencyProfileGroupIDs.size()); CGXDLMSVariant tmp; for(std::vector<int>::iterator it = m_EmergencyProfileGroupIDs.begin(); it != m_EmergencyProfileGroupIDs.end(); ++it) { tmp = *it; if ((ret = GXHelpers::SetData(data, DLMS_DATA_TYPE_UINT16, tmp)) != 0) { return ret; } } e.SetValue(data); } else if (e.GetIndex() == 10) { e.SetValue(m_EmergencyProfileActive); } else if (e.GetIndex() == 11) { CGXByteBuffer data; data.SetUInt8(DLMS_DATA_TYPE_STRUCTURE); data.SetUInt8(2); data.SetUInt8(DLMS_DATA_TYPE_STRUCTURE); data.SetUInt8(2); int ret; CGXDLMSVariant ln = m_ActionOverThreshold.GetLogicalName(); CGXDLMSVariant selector = m_ActionOverThreshold.GetScriptSelector(); if ((ret = GXHelpers::SetData(data, DLMS_DATA_TYPE_OCTET_STRING, ln)) != 0 || (ret = GXHelpers::SetData(data, DLMS_DATA_TYPE_UINT16, selector)) != 0) { return ret; } data.SetUInt8(DLMS_DATA_TYPE_STRUCTURE); data.SetUInt8(2); ln = m_ActionUnderThreshold.GetLogicalName(); selector = m_ActionUnderThreshold.GetScriptSelector(); if ((ret = GXHelpers::SetData(data, DLMS_DATA_TYPE_OCTET_STRING, ln)) != 0 || (ret = GXHelpers::SetData(data, DLMS_DATA_TYPE_UINT16, selector)) != 0) { return ret; } e.SetValue(data); } else { return DLMS_ERROR_CODE_INVALID_PARAMETER; } return DLMS_ERROR_CODE_OK; }
/* * Returns value of given attribute. */ int CGXDLMSProfileGeneric::GetValue(CGXDLMSSettings& settings, CGXDLMSValueEventArg& e) { if (e.GetIndex() == 1) { int ret; CGXDLMSVariant tmp; if ((ret = GetLogicalName(this, tmp)) != 0) { return ret; } e.SetValue(tmp); return DLMS_ERROR_CODE_OK; } if (e.GetIndex() == 2) { CGXByteBuffer tmp; tmp.Set(e.GetValue().byteArr, e.GetValue().size); int ret = GetProfileGenericData(e.GetSelector(), e.GetParameters(), tmp); e.SetValue(tmp); return ret; } if (e.GetIndex() == 3) { CGXByteBuffer data; int ret = GetColumns(data); e.SetValue(data); return ret; } if (e.GetIndex() == 4) { e.SetValue(GetCapturePeriod()); return DLMS_ERROR_CODE_OK; } if (e.GetIndex() == 5) { e.SetValue(GetSortMethod()); return DLMS_ERROR_CODE_OK; } if (e.GetIndex() == 6) { char empty[6] = {0}; CGXByteBuffer data; data.SetUInt8(DLMS_DATA_TYPE_STRUCTURE); data.SetUInt8(4); if (m_SortObject == NULL) { //ClassID data.SetUInt8(DLMS_DATA_TYPE_UINT16); data.SetUInt16(0); //LN data.SetUInt8(DLMS_DATA_TYPE_OCTET_STRING); data.SetUInt8(6); data.Set(empty, 6); //Selected Attribute Index data.SetUInt8(DLMS_DATA_TYPE_INT8); data.SetUInt8(0); //Selected Data Index data.SetUInt8(DLMS_DATA_TYPE_UINT16); data.SetUInt16(0); } else { int ret; CGXDLMSVariant ln; //ClassID data.SetUInt8(DLMS_DATA_TYPE_UINT16); data.SetUInt16(m_SortObject->GetObjectType()); //LN data.SetUInt8(DLMS_DATA_TYPE_OCTET_STRING); data.SetUInt8(6); if ((ret = GetLogicalName(m_SortObject, ln)) != 0) { return ret; } data.Set(&ln.byteArr, 6); //Selected Attribute Index data.SetUInt8(DLMS_DATA_TYPE_INT8); data.SetUInt8(m_SortObjectAttributeIndex); //Selected Data Index data.SetUInt8(DLMS_DATA_TYPE_UINT16); data.SetUInt16(m_SortObjectDataIndex); } e.SetValue(data); } if (e.GetIndex() == 7) { e.SetValue(GetEntriesInUse()); return DLMS_ERROR_CODE_OK; } if (e.GetIndex() == 8) { e.SetValue(GetProfileEntries()); return DLMS_ERROR_CODE_OK; } return DLMS_ERROR_CODE_INVALID_PARAMETER; }