void CGXDLMSTcpUdpSetup::Init() { m_Port = 4059; m_IPReference = "127.0.0.1"; m_MaximumSimultaneousConnections = 1; SetInactivityTimeout(180); SetMaximumSegmentSize(576); }
// Set value of given attribute. int CGXDLMSTcpUdpSetup::SetValue(CGXDLMSSettings& settings, CGXDLMSValueEventArg& e) { if (e.GetIndex() == 1) { return SetLogicalName(this, e.GetValue()); } else if (e.GetIndex() == 2) { SetPort(e.GetValue().ToInteger()); return DLMS_ERROR_CODE_OK; } else if (e.GetIndex() == 3) { if (e.GetValue().vt == DLMS_DATA_TYPE_NONE) { SetIPReference(""); } else { if (e.GetValue().vt == DLMS_DATA_TYPE_OCTET_STRING) { GXHelpers::GetLogicalName(e.GetValue().byteArr, m_IPReference); } else { SetIPReference(e.GetValue().ToString()); } } } else if (e.GetIndex() == 4) { if (e.GetValue().vt == DLMS_DATA_TYPE_NONE) { SetMaximumSegmentSize(576); } else { SetMaximumSegmentSize(e.GetValue().ToInteger()); } } else if (e.GetIndex() == 5) { if (e.GetValue().vt == DLMS_DATA_TYPE_NONE) { SetMaximumSimultaneousConnections(1); } else { SetMaximumSimultaneousConnections(e.GetValue().ToInteger()); } } else if (e.GetIndex() == 6) { if (e.GetValue().vt == DLMS_DATA_TYPE_NONE) { SetInactivityTimeout(180); } else { SetInactivityTimeout(e.GetValue().ToInteger()); } } else { return DLMS_ERROR_CODE_INVALID_PARAMETER; } return DLMS_ERROR_CODE_OK; }
// Set value of given attribute. int CGXDLMSTcpUdpSetup::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); } else if (index == 2) { SetPort(value.ToInteger()); return ERROR_CODES_OK; } else if (index == 3) { if (value.vt == DLMS_DATA_TYPE_NONE) { SetIPReference(""); } else { if (value.vt == DLMS_DATA_TYPE_OCTET_STRING) { SetIPReference(value.ToString()); } else { SetIPReference(value.ToString()); } } } else if (index == 4) { if (value.vt == DLMS_DATA_TYPE_NONE) { SetMaximumSegmentSize(576); } else { SetMaximumSegmentSize(value.ToInteger()); } } else if (index == 5) { if (value.vt == DLMS_DATA_TYPE_NONE) { SetMaximumSimultaneousConnections(1); } else { SetMaximumSimultaneousConnections(value.ToInteger()); } } else if (index == 6) { if (value.vt == DLMS_DATA_TYPE_NONE) { SetInactivityTimeout(180); } else { SetInactivityTimeout(value.ToInteger()); } } else { return ERROR_CODES_INVALID_PARAMETER; } return ERROR_CODES_OK; }