/* * Returns value of given attribute. */ int CGXDLMSProfileGeneric::GetValue(CGXDLMSSettings& settings, CGXDLMSValueEventArgs& 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() == 5) { return DLMS_ERROR_CODE_INVALID_PARAMETER; } 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; }
/* * 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; }
/* * 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; }