168 lines
6.5 KiB
C
168 lines
6.5 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
|
|
//---------------------------------------------------------------------------
|
|
|
|
#ifndef DLMS_ERROR_CODE_H
|
|
#define DLMS_ERROR_CODE_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
typedef enum
|
|
{
|
|
DLMS_ERROR_TYPE_EXCEPTION_RESPONSE = 0x80000000,
|
|
DLMS_ERROR_TYPE_CONFIRMED_SERVICE_ERROR = 0x40000000,
|
|
DLMS_ERROR_TYPE_COMMUNICATION_ERROR = 0x20000000
|
|
}DLMS_ERROR_TYPE;
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// Enumerates all DLMS error codes.
|
|
// https://www.gurux.fi/Gurux.DLMS.ErrorCodes
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
typedef enum
|
|
{
|
|
//Meter is not accept frame.
|
|
DLMS_ERROR_CODE_UNACCEPTABLE_FRAME = -3,
|
|
//Meter rejects send packet.
|
|
DLMS_ERROR_CODE_REJECTED = -2,
|
|
DLMS_ERROR_CODE_FALSE = -1,
|
|
//////////////////////////////////////////
|
|
//DLMS Standard error codes start here.
|
|
DLMS_ERROR_CODE_OK = 0,
|
|
//Access Error : Device reports a hardware fault
|
|
DLMS_ERROR_CODE_HARDWARE_FAULT = 1,
|
|
//Access Error : Device reports a temporary failure
|
|
DLMS_ERROR_CODE_TEMPORARY_FAILURE = 2,
|
|
// Access Error : Device reports Read-Write denied
|
|
DLMS_ERROR_CODE_READ_WRITE_DENIED = 3,
|
|
// Access Error : Device reports a undefined object
|
|
DLMS_ERROR_CODE_UNDEFINED_OBJECT = 4,
|
|
// Access Error : Device reports a inconsistent Class or Object
|
|
DLMS_ERROR_CODE_INCONSISTENT_CLASS_OR_OBJECT = 9,
|
|
// Access Error : Device reports a unavailable object
|
|
DLMS_ERROR_CODE_UNAVAILABLE_OBJECT = 11,
|
|
// Access Error : Device reports a unmatched type
|
|
DLMS_ERROR_CODE_UNMATCH_TYPE = 12,
|
|
// Access Error : Device reports scope of access violated
|
|
DLMS_ERROR_CODE_ACCESS_VIOLATED = 13,
|
|
// Access Error : Data Block Unavailable.
|
|
DLMS_ERROR_CODE_DATA_BLOCK_UNAVAILABLE = 14,
|
|
// Access Error : Long Get Or Read Aborted.
|
|
DLMS_ERROR_CODE_LONG_GET_OR_READ_ABORTED = 15,
|
|
// Access Error : No Long Get Or Read In Progress.
|
|
DLMS_ERROR_CODE_NO_LONG_GET_OR_READ_IN_PROGRESS = 16,
|
|
// Access Error : Long Set Or Write Aborted.
|
|
DLMS_ERROR_CODE_LONG_SET_OR_WRITE_ABORTED = 17,
|
|
// Access Error : No Long Set Or Write In Progress.
|
|
DLMS_ERROR_CODE_NO_LONG_SET_OR_WRITE_IN_PROGRESS = 18,
|
|
// Access Error : Data Block Number Invalid.
|
|
DLMS_ERROR_CODE_DATA_BLOCK_NUMBER_INVALID = 19,
|
|
// Access Error : Other Reason.
|
|
DLMS_ERROR_CODE_OTHER_REASON = 250,
|
|
//DLMS Standard error codes end here.
|
|
//////////////////////////////////////////
|
|
|
|
//Unknown error.
|
|
DLMS_ERROR_CODE_UNKNOWN,
|
|
//Data send failed.
|
|
DLMS_ERROR_CODE_SEND_FAILED,
|
|
//Data receive failed.
|
|
DLMS_ERROR_CODE_RECEIVE_FAILED,
|
|
DLMS_ERROR_CODE_NOT_IMPLEMENTED,
|
|
//Secure connection is not supported.
|
|
DLMS_ERROR_CODE_DLMS_SECURITY_NOT_IMPLEMENTED,
|
|
//Invalid DLMS command.
|
|
DLMS_ERROR_CODE_INVALID_COMMAND,
|
|
//Invalid Block number.
|
|
DLMS_ERROR_CODE_INVALID_BLOCK_NUMBER,
|
|
//Invalid parameter.
|
|
DLMS_ERROR_CODE_INVALID_PARAMETER,
|
|
//Server is not initialized.
|
|
DLMS_ERROR_CODE_NOT_INITIALIZED,
|
|
//Not enough memory available.
|
|
DLMS_ERROR_CODE_OUTOFMEMORY,
|
|
//Packet is not a reply for a send packet.
|
|
DLMS_ERROR_CODE_NOT_REPLY,
|
|
//Invalid Logical Name
|
|
DLMS_ERROR_CODE_INVALID_LOGICAL_NAME,
|
|
//Client HDLC Address is not set.
|
|
DLMS_ERROR_CODE_INVALID_CLIENT_ADDRESS,
|
|
//Server HDLC Address is not set.
|
|
DLMS_ERROR_CODE_INVALID_SERVER_ADDRESS,
|
|
//Not a HDLC frame.
|
|
DLMS_ERROR_CODE_INVALID_DATA_FORMAT,
|
|
//Invalid DLMS version number.
|
|
DLMS_ERROR_CODE_INVALID_VERSION_NUMBER,
|
|
//Client addresses do not match
|
|
DLMS_ERROR_CODE_CLIENT_ADDRESS_NO_NOT_MATCH,
|
|
//Server addresses do not match
|
|
DLMS_ERROR_CODE_SERVER_ADDRESS_NO_NOT_MATCH,
|
|
//CRC do not match.
|
|
DLMS_ERROR_CODE_WRONG_CRC,
|
|
//Invalid response
|
|
DLMS_ERROR_CODE_INVALID_RESPONSE,
|
|
//Invalid Tag.
|
|
DLMS_ERROR_CODE_INVALID_TAG,
|
|
//Encoding failed. Not enough data.
|
|
DLMS_ERROR_CODE_ENCODING_FAILED,
|
|
DLMS_ERROR_CODE_REJECTED_PERMAMENT,
|
|
DLMS_ERROR_CODE_REJECTED_TRANSIENT,
|
|
DLMS_ERROR_CODE_NO_REASON_GIVEN,
|
|
DLMS_ERROR_CODE_APPLICATION_CONTEXT_NAME_NOT_SUPPORTED,
|
|
DLMS_ERROR_CODE_AUTHENTICATION_MECHANISM_NAME_NOT_RECOGNISED,
|
|
DLMS_ERROR_CODE_AUTHENTICATION_MECHANISM_NAME_REQUIRED,
|
|
DLMS_ERROR_CODE_AUTHENTICATION_FAILURE,
|
|
DLMS_ERROR_CODE_AUTHENTICATION_REQUIRED,
|
|
//Invalid frame number.
|
|
DLMS_ERROR_CODE_INVALID_FRAME_NUMBER,
|
|
DLMS_ERROR_CODE_INVALID_DATE_TIME,
|
|
DLMS_ERROR_CODE_INVALID_INVOKE_ID,
|
|
//Invocation counter value is too small.
|
|
DLMS_ERROR_CODE_INVOCATION_COUNTER_TOO_SMALL,
|
|
//Client try to connect with wrong security.
|
|
DLMS_ERROR_CODE_INVALID_DECIPHERING_ERROR,
|
|
//Client try to connect with wrong security suite.
|
|
DLMS_ERROR_CODE_INVALID_SECURITY_SUITE,
|
|
//Serialization load failed.
|
|
DLMS_ERROR_CODE_SERIALIZATION_LOAD_FAILURE,
|
|
//Serialization save failed.
|
|
DLMS_ERROR_CODE_SERIALIZATION_SAVE_FAILURE,
|
|
//Serialization count failed.
|
|
DLMS_ERROR_CODE_SERIALIZATION_COUNT_FAILURE
|
|
}DLMS_ERROR_CODE;
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif //DLMS_ERROR_CODE_H
|