// // -------------------------------------------------------------------------- // 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