473 lines
19 KiB
C
473 lines
19 KiB
C
//
|
|
// --------------------------------------------------------------------------
|
|
// Gurux Ltd
|
|
//
|
|
//
|
|
//
|
|
// Filename: $HeadURL$
|
|
//
|
|
// Version: $Revision$,
|
|
// $Date$
|
|
// $Author$
|
|
//
|
|
// Copyright (c) Gurux Ltd
|
|
//
|
|
//---------------------------------------------------------------------------
|
|
//
|
|
// DESCRIPTION
|
|
//
|
|
// This file is a part of Gurux Device Framework.
|
|
//
|
|
// Gurux Device Framework is Open Source software; you can redistribute it
|
|
// and/or modify it under the terms of the GNU General Public License
|
|
// as published by the Free Software Foundation; version 2 of the License.
|
|
// Gurux Device Framework is distributed in the hope that it will be useful,
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
// See the GNU General Public License for more details.
|
|
//
|
|
// This code is licensed under the GNU General Public License v2.
|
|
// Full text may be retrieved at http://www.gnu.org/licenses/gpl-2.0.txt
|
|
//---------------------------------------------------------------------------
|
|
|
|
#include "gxignore.h"
|
|
|
|
#if defined(_WIN32) || defined(_WIN64) || defined(__linux__)
|
|
#include <assert.h>
|
|
#endif
|
|
|
|
#include "gxmem.h"
|
|
#if _MSC_VER > 1400
|
|
#include <crtdbg.h>
|
|
#endif
|
|
#include "gxset.h"
|
|
#include "cosem.h"
|
|
|
|
int cosem_setValue(dlmsSettings* settings, gxValueEventArg* e)
|
|
{
|
|
int ret = DLMS_ERROR_CODE_OK;
|
|
if (e->index == 1)
|
|
{
|
|
#if defined(DLMS_IGNORE_MALLOC) || defined(DLMS_COSEM_EXACT_DATA_TYPES)
|
|
ret = cosem_getOctetString2(e->value.byteArr, e->target->logicalName, 6, NULL);
|
|
#else
|
|
if (e->value.byteArr == NULL || e->value.byteArr->size - e->value.byteArr->position != 6)
|
|
{
|
|
ret = DLMS_ERROR_CODE_INVALID_PARAMETER;
|
|
}
|
|
else
|
|
{
|
|
ret = bb_get(e->value.byteArr, e->target->logicalName, 6);
|
|
}
|
|
#endif //DLMS_IGNORE_MALLOC
|
|
return ret;
|
|
}
|
|
switch (e->target->objectType)
|
|
{
|
|
#ifndef DLMS_IGNORE_DATA
|
|
case DLMS_OBJECT_TYPE_DATA:
|
|
ret = cosem_setData(e);
|
|
break;
|
|
#endif //DLMS_IGNORE_DATA
|
|
#ifndef DLMS_IGNORE_REGISTER
|
|
case DLMS_OBJECT_TYPE_REGISTER:
|
|
ret = cosem_setRegister((gxRegister*)e->target, e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_REGISTER
|
|
#ifndef DLMS_IGNORE_CLOCK
|
|
case DLMS_OBJECT_TYPE_CLOCK:
|
|
ret = cosem_setClock(settings, (gxClock*)e->target, e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_CLOCK
|
|
#ifndef DLMS_IGNORE_ACTION_SCHEDULE
|
|
case DLMS_OBJECT_TYPE_ACTION_SCHEDULE:
|
|
ret = cosem_setActionSchedule(settings, (gxActionSchedule*)e->target, e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_ACTION_SCHEDULE
|
|
#ifndef DLMS_IGNORE_ACTIVITY_CALENDAR
|
|
case DLMS_OBJECT_TYPE_ACTIVITY_CALENDAR:
|
|
ret = cosem_setActivityCalendar(settings, (gxActivityCalendar*)e->target, e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_ACTIVITY_CALENDAR
|
|
#ifndef DLMS_IGNORE_ASSOCIATION_LOGICAL_NAME
|
|
case DLMS_OBJECT_TYPE_ASSOCIATION_LOGICAL_NAME:
|
|
ret = cosem_setAssociationLogicalName(settings, (gxAssociationLogicalName*)e->target, e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_ASSOCIATION_LOGICAL_NAME
|
|
#ifndef DLMS_IGNORE_ASSOCIATION_SHORT_NAME
|
|
case DLMS_OBJECT_TYPE_ASSOCIATION_SHORT_NAME:
|
|
ret = cosem_setAssociationShortName(settings, (gxAssociationShortName*)e->target, e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_ASSOCIATION_SHORT_NAME
|
|
#ifndef DLMS_IGNORE_AUTO_ANSWER
|
|
case DLMS_OBJECT_TYPE_AUTO_ANSWER:
|
|
ret = cosem_setAutoAnswer((gxAutoAnswer*)e->target, e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_AUTO_ANSWER
|
|
#ifndef DLMS_IGNORE_AUTO_CONNECT
|
|
case DLMS_OBJECT_TYPE_AUTO_CONNECT:
|
|
ret = cosem_setAutoConnect((gxAutoConnect*)e->target, e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_AUTO_CONNECT
|
|
#ifndef DLMS_IGNORE_DEMAND_REGISTER
|
|
case DLMS_OBJECT_TYPE_DEMAND_REGISTER:
|
|
ret = cosem_setDemandRegister((gxDemandRegister*)e->target, e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_DEMAND_REGISTER
|
|
#ifndef DLMS_IGNORE_MAC_ADDRESS_SETUP
|
|
case DLMS_OBJECT_TYPE_MAC_ADDRESS_SETUP:
|
|
ret = cosem_setMacAddressSetup((gxMacAddressSetup*)e->target, e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_MAC_ADDRESS_SETUP
|
|
#ifndef DLMS_IGNORE_EXTENDED_REGISTER
|
|
case DLMS_OBJECT_TYPE_EXTENDED_REGISTER:
|
|
ret = cosem_setExtendedRegister((gxExtendedRegister*)e->target, e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_EXTENDED_REGISTER
|
|
#ifndef DLMS_IGNORE_GPRS_SETUP
|
|
case DLMS_OBJECT_TYPE_GPRS_SETUP:
|
|
ret = cosem_setGprsSetup((gxGPRSSetup*)e->target, e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_GPRS_SETUP
|
|
#ifndef DLMS_IGNORE_SECURITY_SETUP
|
|
case DLMS_OBJECT_TYPE_SECURITY_SETUP:
|
|
ret = cosem_setSecuritySetup(settings, (gxSecuritySetup*)e->target, e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_SECURITY_SETUP
|
|
#ifndef DLMS_IGNORE_IEC_HDLC_SETUP
|
|
case DLMS_OBJECT_TYPE_IEC_HDLC_SETUP:
|
|
ret = cosem_setIecHdlcSetup((gxIecHdlcSetup*)e->target, e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_IEC_HDLC_SETUP
|
|
#ifndef DLMS_IGNORE_IEC_LOCAL_PORT_SETUP
|
|
case DLMS_OBJECT_TYPE_IEC_LOCAL_PORT_SETUP:
|
|
ret = cosem_setIecLocalPortSetup((gxLocalPortSetup*)e->target, e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_IEC_LOCAL_PORT_SETUP
|
|
#ifndef DLMS_IGNORE_IEC_TWISTED_PAIR_SETUP
|
|
case DLMS_OBJECT_TYPE_IEC_TWISTED_PAIR_SETUP:
|
|
ret = cosem_setIecTwistedPairSetup((gxIecTwistedPairSetup*)e->target, e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_IEC_TWISTED_PAIR_SETUP
|
|
#ifndef DLMS_IGNORE_IP4_SETUP
|
|
case DLMS_OBJECT_TYPE_IP4_SETUP:
|
|
ret = cosem_setIP4Setup(settings, (gxIp4Setup*)e->target, e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_IP4_SETUP
|
|
#ifndef DLMS_IGNORE_IP6_SETUP
|
|
case DLMS_OBJECT_TYPE_IP6_SETUP:
|
|
ret = cosem_setIP6Setup(settings, (gxIp6Setup*)e->target, e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_IP6_SETUP
|
|
#ifndef DLMS_IGNORE_MBUS_SLAVE_PORT_SETUP
|
|
case DLMS_OBJECT_TYPE_MBUS_SLAVE_PORT_SETUP:
|
|
ret = cosem_setMbusSlavePortSetup((gxMbusSlavePortSetup*)e->target, e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_MBUS_SLAVE_PORT_SETUP
|
|
#ifndef DLMS_IGNORE_IMAGE_TRANSFER
|
|
case DLMS_OBJECT_TYPE_IMAGE_TRANSFER:
|
|
ret = cosem_setImageTransfer((gxImageTransfer*)e->target, e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_IMAGE_TRANSFER
|
|
#ifndef DLMS_IGNORE_DISCONNECT_CONTROL
|
|
case DLMS_OBJECT_TYPE_DISCONNECT_CONTROL:
|
|
ret = cosem_setDisconnectControl((gxDisconnectControl*)e->target, e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_DISCONNECT_CONTROL
|
|
#ifndef DLMS_IGNORE_LIMITER
|
|
case DLMS_OBJECT_TYPE_LIMITER:
|
|
ret = cosem_setLimiter(settings, (gxLimiter*)e->target, e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_LIMITER
|
|
#ifndef DLMS_IGNORE_MBUS_CLIENT
|
|
case DLMS_OBJECT_TYPE_MBUS_CLIENT:
|
|
ret = cosem_setmMbusClient(settings, (gxMBusClient*)e->target, e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_MBUS_CLIENT
|
|
#ifndef DLMS_IGNORE_MODEM_CONFIGURATION
|
|
case DLMS_OBJECT_TYPE_MODEM_CONFIGURATION:
|
|
ret = cosem_setModemConfiguration((gxModemConfiguration*)e->target, e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_MODEM_CONFIGURATION
|
|
#ifndef DLMS_IGNORE_PPP_SETUP
|
|
case DLMS_OBJECT_TYPE_PPP_SETUP:
|
|
ret = cosem_setPppSetup(settings, (gxPppSetup*)e->target, e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_PPP_SETUP
|
|
#ifndef DLMS_IGNORE_PROFILE_GENERIC
|
|
case DLMS_OBJECT_TYPE_PROFILE_GENERIC:
|
|
ret = cosem_setProfileGeneric(settings, (gxProfileGeneric*)e->target, e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_PROFILE_GENERIC
|
|
#ifndef DLMS_IGNORE_REGISTER_ACTIVATION
|
|
case DLMS_OBJECT_TYPE_REGISTER_ACTIVATION:
|
|
ret = cosem_setRegisterActivation(settings, e);
|
|
break;
|
|
#endif //DLMS_IGNORE_REGISTER_ACTIVATION
|
|
#ifndef DLMS_IGNORE_REGISTER_MONITOR
|
|
case DLMS_OBJECT_TYPE_REGISTER_MONITOR:
|
|
ret = cosem_setRegisterMonitor(settings, (gxRegisterMonitor*)e->target, e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_REGISTER_MONITOR
|
|
#ifndef DLMS_IGNORE_REGISTER_TABLE
|
|
case DLMS_OBJECT_TYPE_REGISTER_TABLE:
|
|
ret = cosem_setRegistertable((gxRegisterTable*)e->target, e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_REGISTER_TABLE
|
|
#ifndef DLMS_IGNORE_ZIG_BEE_SAS_STARTUP
|
|
case DLMS_OBJECT_TYPE_ZIG_BEE_SAS_STARTUP:
|
|
//TODO:
|
|
#if defined(_WIN32) || defined(_WIN64) || defined(__linux__)
|
|
assert(0);
|
|
#endif
|
|
break;
|
|
#endif //DLMS_IGNORE_ZIG_BEE_SAS_STARTUP
|
|
#ifndef DLMS_IGNORE_ZIG_BEE_SAS_JOIN
|
|
case DLMS_OBJECT_TYPE_ZIG_BEE_SAS_JOIN:
|
|
//TODO:
|
|
#if defined(_WIN32) || defined(_WIN64) || defined(__linux__)
|
|
assert(0);
|
|
#endif
|
|
break;
|
|
#endif //DLMS_IGNORE_ZIG_BEE_SAS_JOIN
|
|
#ifndef DLMS_IGNORE_ZIG_BEE_SAS_APS_FRAGMENTATION
|
|
case DLMS_OBJECT_TYPE_ZIG_BEE_SAS_APS_FRAGMENTATION:
|
|
//TODO:
|
|
#if defined(_WIN32) || defined(_WIN64) || defined(__linux__)
|
|
assert(0);
|
|
#endif
|
|
break;
|
|
#endif //DLMS_IGNORE_ZIG_BEE_SAS_APS_FRAGMENTATION
|
|
#ifndef DLMS_IGNORE_ZIG_BEE_NETWORK_CONTROL
|
|
case DLMS_OBJECT_TYPE_ZIG_BEE_NETWORK_CONTROL:
|
|
//TODO:
|
|
#if defined(_WIN32) || defined(_WIN64) || defined(__linux__)
|
|
assert(0);
|
|
#endif
|
|
break;
|
|
#endif //DLMS_IGNORE_ZIG_BEE_NETWORK_CONTROL
|
|
#ifndef DLMS_IGNORE_SAP_ASSIGNMENT
|
|
case DLMS_OBJECT_TYPE_SAP_ASSIGNMENT:
|
|
ret = cosem_setSapAssignment((gxSapAssignment*)e->target, e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_SAP_ASSIGNMENT
|
|
#ifndef DLMS_IGNORE_SCHEDULE
|
|
case DLMS_OBJECT_TYPE_SCHEDULE:
|
|
ret = cosem_setSchedule(settings, (gxSchedule*)e->target, e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_SCHEDULE
|
|
#ifndef DLMS_IGNORE_SCRIPT_TABLE
|
|
case DLMS_OBJECT_TYPE_SCRIPT_TABLE:
|
|
ret = cosem_setScriptTable(settings, (gxScriptTable*)e->target, e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_SCRIPT_TABLE
|
|
#ifndef DLMS_IGNORE_SPECIAL_DAYS_TABLE
|
|
case DLMS_OBJECT_TYPE_SPECIAL_DAYS_TABLE:
|
|
ret = cosem_setSpecialDaysTable((gxSpecialDaysTable*)e->target, e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_SPECIAL_DAYS_TABLE
|
|
#ifndef DLMS_IGNORE_STATUS_MAPPING
|
|
case DLMS_OBJECT_TYPE_STATUS_MAPPING:
|
|
//TODO:
|
|
#if defined(_WIN32) || defined(_WIN64) || defined(__linux__)
|
|
assert(0);
|
|
#endif
|
|
break;
|
|
#endif //DLMS_IGNORE_STATUS_MAPPING
|
|
#ifndef DLMS_IGNORE_TCP_UDP_SETUP
|
|
case DLMS_OBJECT_TYPE_TCP_UDP_SETUP:
|
|
ret = cosem_setTcpUdpSetup(settings, (gxTcpUdpSetup*)e->target, e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_TCP_UDP_SETUP
|
|
#ifndef DLMS_IGNORE_MBUS_DIAGNOSTIC
|
|
case DLMS_OBJECT_TYPE_MBUS_DIAGNOSTIC:
|
|
ret = cosem_setMbusDiagnostic((gxMbusDiagnostic*)e->target, e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_MBUS_DIAGNOSTIC
|
|
#ifndef DLMS_IGNORE_MBUS_PORT_SETUP
|
|
case DLMS_OBJECT_TYPE_MBUS_PORT_SETUP:
|
|
ret = cosem_setMbusPortSetup((gxMBusPortSetup*)e->target, e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_MBUS_PORT_SETUP
|
|
#ifndef DLMS_IGNORE_G3_PLC_MAC_LAYER_COUNTERS
|
|
case DLMS_OBJECT_TYPE_G3_PLC_MAC_LAYER_COUNTERS:
|
|
ret = cosem_setG3PlcMacLayerCounters((gxG3PlcMacLayerCounters*)e->target, e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_G3_PLC_MAC_LAYER_COUNTERS
|
|
#ifndef DLMS_IGNORE_G3_PLC_MAC_SETUP
|
|
case DLMS_OBJECT_TYPE_G3_PLC_MAC_SETUP:
|
|
ret = cosem_setG3PlcMacSetup((gxG3PlcMacSetup*)e->target, e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_G3_PLC_MAC_SETUP
|
|
#ifndef DLMS_IGNORE_G3_PLC_6LO_WPAN
|
|
case DLMS_OBJECT_TYPE_G3_PLC_6LO_WPAN:
|
|
ret = cosem_setG3Plc6LoWPAN((gxG3Plc6LoWPAN*)e->target,
|
|
e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_G3_PLC_6LO_WPAN
|
|
#ifndef DLMS_IGNORE_FUNCTION_CONTROL
|
|
case DLMS_OBJECT_TYPE_FUNCTION_CONTROL:
|
|
ret = cosem_setFunctionControl(settings,
|
|
(gxFunctionControl*)e->target, e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_FUNCTION_CONTROL
|
|
#ifndef DLMS_IGNORE_ARRAY_MANAGER
|
|
case DLMS_OBJECT_TYPE_ARRAY_MANAGER:
|
|
ret = cosem_setArrayManager(settings,
|
|
(gxArrayManager*)e->target, e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_ARRAY_MANAGER
|
|
#ifndef DLMS_IGNORE_UTILITY_TABLES
|
|
case DLMS_OBJECT_TYPE_UTILITY_TABLES:
|
|
ret = cosem_setUtilityTables((gxUtilityTables*)e->target,
|
|
e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_UTILITY_TABLES
|
|
#ifndef DLMS_IGNORE_MBUS_MASTER_PORT_SETUP
|
|
case DLMS_OBJECT_TYPE_MBUS_MASTER_PORT_SETUP:
|
|
ret = cosem_setMbusMasterPortSetup((gxMBusMasterPortSetup*)e->target,
|
|
e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_MBUS_MASTER_PORT_SETUP
|
|
#ifndef DLMS_IGNORE_PUSH_SETUP
|
|
case DLMS_OBJECT_TYPE_PUSH_SETUP:
|
|
ret = cosem_setPushSetup(settings, (gxPushSetup*)e->target,
|
|
e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_PUSH_SETUP
|
|
#ifndef DLMS_IGNORE_DATA_PROTECTION
|
|
case DLMS_OBJECT_TYPE_DATA_PROTECTION:
|
|
ret = DLMS_ERROR_CODE_INVALID_PARAMETER;
|
|
#if defined(_WIN32) || defined(_WIN64) || defined(__linux__)
|
|
assert(0);
|
|
#endif
|
|
break;
|
|
#endif //DLMS_IGNORE_DATA_PROTECTION
|
|
#ifndef DLMS_IGNORE_ACCOUNT
|
|
case DLMS_OBJECT_TYPE_ACCOUNT:
|
|
ret = cosem_setAccount((gxAccount*)e->target, e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_ACCOUNT
|
|
#ifndef DLMS_IGNORE_CREDIT
|
|
case DLMS_OBJECT_TYPE_CREDIT:
|
|
ret = cosem_setCredit((gxCredit*)e->target, e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_CREDIT
|
|
#ifndef DLMS_IGNORE_CHARGE
|
|
case DLMS_OBJECT_TYPE_CHARGE:
|
|
ret = cosem_setCharge(settings, (gxCharge*)e->target, e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_CHARGE
|
|
#ifndef DLMS_IGNORE_TOKEN_GATEWAY
|
|
case DLMS_OBJECT_TYPE_TOKEN_GATEWAY:
|
|
ret = cosem_setTokenGateway((gxTokenGateway*)e->target, e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_TOKEN_GATEWAY
|
|
#ifndef DLMS_IGNORE_GSM_DIAGNOSTIC
|
|
case DLMS_OBJECT_TYPE_GSM_DIAGNOSTIC:
|
|
ret = cosem_setGsmDiagnostic((gxGsmDiagnostic*)e->target, e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_GSM_DIAGNOSTIC
|
|
|
|
#ifndef DLMS_IGNORE_COMPACT_DATA
|
|
case DLMS_OBJECT_TYPE_COMPACT_DATA:
|
|
ret = cosem_setCompactData(settings, (gxCompactData*)e->target, e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_COMPACT_DATA
|
|
#ifndef DLMS_IGNORE_PARAMETER_MONITOR
|
|
case DLMS_OBJECT_TYPE_PARAMETER_MONITOR:
|
|
ret = cosem_setParameterMonitor(settings, (gxParameterMonitor*)e->target, e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_PARAMETER_MONITOR
|
|
#ifndef DLMS_IGNORE_LLC_SSCS_SETUP
|
|
case DLMS_OBJECT_TYPE_LLC_SSCS_SETUP:
|
|
ret = cosem_setLlcSscsSetup(settings, (gxLlcSscsSetup*)e->target, e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_LLC_SSCS_SETUP
|
|
#ifndef DLMS_IGNORE_PRIME_NB_OFDM_PLC_PHYSICAL_LAYER_COUNTERS
|
|
case DLMS_OBJECT_TYPE_PRIME_NB_OFDM_PLC_PHYSICAL_LAYER_COUNTERS:
|
|
ret = cosem_setPrimeNbOfdmPlcPhysicalLayerCounters(settings, (gxPrimeNbOfdmPlcPhysicalLayerCounters*)e->target, e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_PRIME_NB_OFDM_PLC_PHYSICAL_LAYER_COUNTERS
|
|
#ifndef DLMS_IGNORE_PRIME_NB_OFDM_PLC_MAC_SETUP
|
|
case DLMS_OBJECT_TYPE_PRIME_NB_OFDM_PLC_MAC_SETUP:
|
|
ret = cosem_setPrimeNbOfdmPlcMacSetup(settings, (gxPrimeNbOfdmPlcMacSetup*)e->target, e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_PRIME_NB_OFDM_PLC_MAC_SETUP
|
|
#ifndef DLMS_IGNORE_PRIME_NB_OFDM_PLC_MAC_FUNCTIONAL_PARAMETERS
|
|
case DLMS_OBJECT_TYPE_PRIME_NB_OFDM_PLC_MAC_FUNCTIONAL_PARAMETERS:
|
|
ret = cosem_setPrimeNbOfdmPlcMacFunctionalParameters(settings, (gxPrimeNbOfdmPlcMacFunctionalParameters*)e->target, e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_PRIME_NB_OFDM_PLC_MAC_FUNCTIONAL_PARAMETERS
|
|
#ifndef DLMS_IGNORE_PRIME_NB_OFDM_PLC_MAC_COUNTERS
|
|
case DLMS_OBJECT_TYPE_PRIME_NB_OFDM_PLC_MAC_COUNTERS:
|
|
ret = cosem_setPrimeNbOfdmPlcMacCounters(settings, (gxPrimeNbOfdmPlcMacCounters*)e->target, e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_PRIME_NB_OFDM_PLC_MAC_COUNTERS
|
|
#ifndef DLMS_IGNORE_PRIME_NB_OFDM_PLC_MAC_NETWORK_ADMINISTRATION_DATA
|
|
case DLMS_OBJECT_TYPE_PRIME_NB_OFDM_PLC_MAC_NETWORK_ADMINISTRATION_DATA:
|
|
ret = cosem_setPrimeNbOfdmPlcMacNetworkAdministrationData(settings, (gxPrimeNbOfdmPlcMacNetworkAdministrationData*)e->target, e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_PRIME_NB_OFDM_PLC_MAC_NETWORK_ADMINISTRATION_DATA
|
|
#ifndef DLMS_IGNORE_PRIME_NB_OFDM_PLC_APPLICATIONS_IDENTIFICATION
|
|
case DLMS_OBJECT_TYPE_PRIME_NB_OFDM_PLC_APPLICATIONS_IDENTIFICATION:
|
|
ret = cosem_setPrimeNbOfdmPlcApplicationsIdentification(settings, (gxPrimeNbOfdmPlcApplicationsIdentification*)e->target, e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_PRIME_NB_OFDM_PLC_APPLICATIONS_IDENTIFICATION
|
|
#ifndef DLMS_IGNORE_ARBITRATOR
|
|
case DLMS_OBJECT_TYPE_ARBITRATOR:
|
|
ret = cosem_setArbitrator(settings, (gxArbitrator*)e->target, e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_ARBITRATOR
|
|
#ifndef DLMS_IGNORE_IEC_8802_LLC_TYPE1_SETUP
|
|
case DLMS_OBJECT_TYPE_IEC_8802_LLC_TYPE1_SETUP:
|
|
ret = cosem_setIec8802LlcType1Setup(settings, (gxIec8802LlcType1Setup*)e->target, e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_IEC_8802_LLC_TYPE1_SETUP
|
|
#ifndef DLMS_IGNORE_IEC_8802_LLC_TYPE2_SETUP
|
|
case DLMS_OBJECT_TYPE_IEC_8802_LLC_TYPE2_SETUP:
|
|
ret = cosem_setIec8802LlcType2Setup(settings, (gxIec8802LlcType2Setup*)e->target, e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_IEC_8802_LLC_TYPE2_SETUP
|
|
#ifndef DLMS_IGNORE_IEC_8802_LLC_TYPE3_SETUP
|
|
case DLMS_OBJECT_TYPE_IEC_8802_LLC_TYPE3_SETUP:
|
|
ret = cosem_setIec8802LlcType3Setup(settings, (gxIec8802LlcType3Setup*)e->target, e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_IEC_8802_LLC_TYPE3_SETUP
|
|
#ifndef DLMS_IGNORE_SFSK_ACTIVE_INITIATOR
|
|
case DLMS_OBJECT_TYPE_SFSK_ACTIVE_INITIATOR:
|
|
ret = cosem_setSFSKActiveInitiator(settings, (gxSFSKActiveInitiator*)e->target, e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_SFSK_ACTIVE_INITIATOR
|
|
#ifndef DLMS_IGNORE_SFSK_MAC_COUNTERS
|
|
case DLMS_OBJECT_TYPE_SFSK_MAC_COUNTERS:
|
|
ret = cosem_setFSKMacCounters(settings, (gxFSKMacCounters*)e->target, e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_SFSK_MAC_COUNTERS
|
|
#ifndef DLMS_IGNORE_SFSK_MAC_SYNCHRONIZATION_TIMEOUTS
|
|
case DLMS_OBJECT_TYPE_SFSK_MAC_SYNCHRONIZATION_TIMEOUTS:
|
|
ret = cosem_setSFSKMacSynchronizationTimeouts(settings, (gxSFSKMacSynchronizationTimeouts*)e->target, e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_SFSK_MAC_SYNCHRONIZATION_TIMEOUTS
|
|
#ifndef DLMS_IGNORE_SFSK_PHY_MAC_SETUP
|
|
case DLMS_OBJECT_TYPE_SFSK_PHY_MAC_SETUP:
|
|
ret = cosem_setSFSKPhyMacSetUp(settings, (gxSFSKPhyMacSetUp*)e->target, e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_SFSK_PHY_MAC_SETUP
|
|
#ifndef DLMS_IGNORE_SFSK_REPORTING_SYSTEM_LIST
|
|
case DLMS_OBJECT_TYPE_SFSK_REPORTING_SYSTEM_LIST:
|
|
ret = cosem_setSFSKReportingSystemList(settings, (gxSFSKReportingSystemList*)e->target, e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_IGNORE_SFSK_REPORTING_SYSTEM_LIST
|
|
#ifdef DLMS_ITALIAN_STANDARD
|
|
case DLMS_OBJECT_TYPE_TARIFF_PLAN:
|
|
ret = cosem_setTariffPlan((gxTariffPlan*)e->target, e->index, &e->value);
|
|
break;
|
|
#endif //DLMS_ITALIAN_STANDARD
|
|
default:
|
|
//Unknown type.
|
|
ret = DLMS_ERROR_CODE_INVALID_PARAMETER;
|
|
}
|
|
return ret;
|
|
}
|