本文整理汇总了C++中CGXDLMSValueEventArg::SetValue方法的典型用法代码示例。如果您正苦于以下问题:C++ CGXDLMSValueEventArg::SetValue方法的具体用法?C++ CGXDLMSValueEventArg::SetValue怎么用?C++ CGXDLMSValueEventArg::SetValue使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CGXDLMSValueEventArg
的用法示例。
在下文中一共展示了CGXDLMSValueEventArg::SetValue方法的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GetValue
// 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;
}
示例2: GetValue
// 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;
}
示例3: GetValue
// 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;
}
示例4: GetValue
// 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;
}
示例5: SetValue
// 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;
}
示例6: SetValue
// 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;
}
示例7: GetValue
// 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;
}
示例8: GetValue
// 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;
}
示例9: GetValue
// 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;
}
示例10: GetValue
// 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;
}
示例11: GetValue
// 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;
}
示例12: GetValue
// 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();
//.........这里部分代码省略.........
示例13: GetValue
/*
* 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;
}