libiec61850  1.5.3
mms_common.h
Go to the documentation of this file.
1 /*
2  * mms_common.h
3  *
4  * Copyright 2013-2018 Michael Zillgith
5  *
6  * This file is part of libIEC61850.
7  *
8  * libIEC61850 is free software: you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation, either version 3 of the License, or
11  * (at your option) any later version.
12  *
13  * libIEC61850 is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with libIEC61850. If not, see <http://www.gnu.org/licenses/>.
20  *
21  * See COPYING file for the complete license text.
22  */
23 
24 #include "libiec61850_common_api.h"
25 
26 #ifndef MMS_COMMON_H_
27 #define MMS_COMMON_H_
28 
29 #ifdef __cplusplus
30 extern "C" {
31 #endif
32 
38 typedef enum
39 {
40  /* generic error codes */
50 
52 
53  /* confirmed error PDU codes */
55 
57 
65 
68 
71 
73 
75 
81  MMS_ERROR_ACCESS_OBJECT_VALUE_INVALID = 85, /* for DataAccessError 11 */
82  MMS_ERROR_ACCESS_TEMPORARILY_UNAVAILABLE = 86, /* for DataAccessError 2 */
83 
94 
95  /* reject codes */
102 
104 
105 typedef enum
106 {
127  MMS_BCD = 11,
136 
137 typedef struct sMmsDomain MmsDomain;
138 
139 typedef struct sMmsAccessSpecifier
140 {
143  int arrayIndex; /* -1 --> no index present / ignore index */
146 
147 typedef struct
148 {
149  char* domainId;
150  char* itemId;
151  int32_t arrayIndex; /* -1 --> no index present / ignore index */
154 
155 typedef struct sMmsNamedVariableList* MmsNamedVariableList;
156 typedef struct sMmsAccessSpecifier* MmsNamedVariableListEntry;
157 
161 typedef struct {
162  uint16_t arc[10];
163  int arcCount;
165 
169 typedef struct {
173 
177 #ifdef __cplusplus
178 }
179 #endif
180 
181 #endif /* MMS_COMMON_H_ */
MmsError
Definition: mms_common.h:39
MmsType
Definition: mms_common.h:106
struct sMmsDomain MmsDomain
Definition: mms_common.h:137
struct sMmsAccessSpecifier * MmsNamedVariableListEntry
Definition: mms_common.h:156
struct sMmsNamedVariableList * MmsNamedVariableList
Definition: mms_common.h:155
@ MMS_ERROR_RESOURCE_CAPABILITY_UNAVAILABLE
Definition: mms_common.h:67
@ MMS_ERROR_DEFINITION_OBJECT_UNDEFINED
Definition: mms_common.h:62
@ MMS_ERROR_RESOURCE_OTHER
Definition: mms_common.h:66
@ MMS_ERROR_DEFINITION_INVALID_ADDRESS
Definition: mms_common.h:59
@ MMS_ERROR_FILE_OTHER
Definition: mms_common.h:84
@ MMS_ERROR_CONNECTION_REJECTED
Definition: mms_common.h:42
@ MMS_ERROR_ACCESS_OBJECT_ACCESS_DENIED
Definition: mms_common.h:79
@ MMS_ERROR_ACCESS_OBJECT_ACCESS_UNSUPPORTED
Definition: mms_common.h:78
@ MMS_ERROR_SERVICE_TIMEOUT
Definition: mms_common.h:44
@ MMS_ERROR_ACCESS_OTHER
Definition: mms_common.h:76
@ MMS_ERROR_FILE_FILE_NON_EXISTENT
Definition: mms_common.h:91
@ MMS_ERROR_PARSING_RESPONSE
Definition: mms_common.h:45
@ MMS_ERROR_FILE_FILENAME_SYNTAX_ERROR
Definition: mms_common.h:87
@ MMS_ERROR_OUTSTANDING_CALL_LIMIT
Definition: mms_common.h:49
@ MMS_ERROR_DEFINITION_OTHER
Definition: mms_common.h:58
@ MMS_ERROR_REJECT_REQUEST_INVALID_ARGUMENT
Definition: mms_common.h:101
@ MMS_ERROR_FILE_FILE_ACCESS_DENIED
Definition: mms_common.h:90
@ MMS_ERROR_APPLICATION_REFERENCE_OTHER
Definition: mms_common.h:56
@ MMS_ERROR_HARDWARE_FAULT
Definition: mms_common.h:46
@ MMS_ERROR_REJECT_UNRECOGNIZED_MODIFIER
Definition: mms_common.h:100
@ MMS_ERROR_REJECT_OTHER
Definition: mms_common.h:96
@ MMS_ERROR_ACCESS_OBJECT_NON_EXISTENT
Definition: mms_common.h:77
@ MMS_ERROR_DEFINITION_TYPE_INCONSISTENT
Definition: mms_common.h:61
@ MMS_ERROR_SERVICE_OTHER
Definition: mms_common.h:69
@ MMS_ERROR_FILE_INSUFFICIENT_SPACE_IN_FILESTORE
Definition: mms_common.h:93
@ MMS_ERROR_ACCESS_TEMPORARILY_UNAVAILABLE
Definition: mms_common.h:82
@ MMS_ERROR_SERVICE_OBJECT_CONSTRAINT_CONFLICT
Definition: mms_common.h:70
@ MMS_ERROR_SERVICE_PREEMPT_OTHER
Definition: mms_common.h:72
@ MMS_ERROR_REJECT_INVALID_PDU
Definition: mms_common.h:98
@ MMS_ERROR_INVALID_ARGUMENTS
Definition: mms_common.h:48
@ MMS_ERROR_FILE_FILENAME_AMBIGUOUS
Definition: mms_common.h:85
@ MMS_ERROR_FILE_DUPLICATE_FILENAME
Definition: mms_common.h:92
@ MMS_ERROR_DEFINITION_OBJECT_EXISTS
Definition: mms_common.h:63
@ MMS_ERROR_NONE
Definition: mms_common.h:41
@ MMS_ERROR_ACCESS_OBJECT_VALUE_INVALID
Definition: mms_common.h:81
@ MMS_ERROR_REJECT_UNKNOWN_PDU_TYPE
Definition: mms_common.h:97
@ MMS_ERROR_DEFINITION_OBJECT_ATTRIBUTE_INCONSISTENT
Definition: mms_common.h:64
@ MMS_ERROR_OTHER
Definition: mms_common.h:51
@ MMS_ERROR_FILE_CONTENT_TYPE_INVALID
Definition: mms_common.h:88
@ MMS_ERROR_CONCLUDE_REJECTED
Definition: mms_common.h:47
@ MMS_ERROR_VMDSTATE_OTHER
Definition: mms_common.h:54
@ MMS_ERROR_CONNECTION_LOST
Definition: mms_common.h:43
@ MMS_ERROR_DEFINITION_TYPE_UNSUPPORTED
Definition: mms_common.h:60
@ MMS_ERROR_FILE_FILE_BUSY
Definition: mms_common.h:86
@ MMS_ERROR_ACCESS_OBJECT_INVALIDATED
Definition: mms_common.h:80
@ MMS_ERROR_REJECT_UNRECOGNIZED_SERVICE
Definition: mms_common.h:99
@ MMS_ERROR_TIME_RESOLUTION_OTHER
Definition: mms_common.h:74
@ MMS_ERROR_FILE_POSITION_INVALID
Definition: mms_common.h:89
@ MMS_INTEGER
Definition: mms_common.h:116
@ MMS_STRUCTURE
Definition: mms_common.h:110
@ MMS_STRING
Definition: mms_common.h:130
@ MMS_UTC_TIME
Definition: mms_common.h:132
@ MMS_BOOLEAN
Definition: mms_common.h:112
@ MMS_OCTET_STRING
Definition: mms_common.h:122
@ MMS_BIT_STRING
Definition: mms_common.h:114
@ MMS_BCD
Definition: mms_common.h:127
@ MMS_ARRAY
Definition: mms_common.h:108
@ MMS_VISIBLE_STRING
Definition: mms_common.h:124
@ MMS_OBJ_ID
Definition: mms_common.h:128
@ MMS_DATA_ACCESS_ERROR
Definition: mms_common.h:134
@ MMS_UNSIGNED
Definition: mms_common.h:118
@ MMS_BINARY_TIME
Definition: mms_common.h:126
@ MMS_GENERALIZED_TIME
Definition: mms_common.h:125
@ MMS_FLOAT
Definition: mms_common.h:120
ISO application reference (specifies an ISO application endpoint)
Definition: mms_common.h:169
ItuObjectIdentifier apTitle
Definition: mms_common.h:170
int aeQualifier
Definition: mms_common.h:171
ITU (International Telecommunication Union) object identifier (OID)
Definition: mms_common.h:161
int arcCount
Definition: mms_common.h:163
Definition: mms_common.h:140
char * componentName
Definition: mms_common.h:144
MmsDomain * domain
Definition: mms_common.h:141
char * variableName
Definition: mms_common.h:142
int arrayIndex
Definition: mms_common.h:143
Definition: mms_common.h:148
char * domainId
Definition: mms_common.h:149
int32_t arrayIndex
Definition: mms_common.h:151
char * componentName
Definition: mms_common.h:152
char * itemId
Definition: mms_common.h:150