123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- /* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * Copyright 2016-2017 (c) Fraunhofer IOSB (Author: Julius Pfrommer)
- * Copyright 2016 (c) Sten Grüner
- * Copyright 2016-2017 (c) Stefan Profanter, fortiss GmbH
- * Copyright 2017 (c) Florian Palm
- */
- #ifndef UA_CONSTANTS_H_
- #define UA_CONSTANTS_H_
- #include <open62541/config.h>
- _UA_BEGIN_DECLS
- /**
- * Standard-Defined Constants
- * ==========================
- * This section contains numerical and string constants that are defined in the
- * OPC UA standard.
- *
- * .. _attribute-id:
- *
- * Attribute Id
- * ------------
- * Every node in an OPC UA information model contains attributes depending on
- * the node type. Possible attributes are as follows: */
- typedef enum {
- UA_ATTRIBUTEID_NODEID = 1,
- UA_ATTRIBUTEID_NODECLASS = 2,
- UA_ATTRIBUTEID_BROWSENAME = 3,
- UA_ATTRIBUTEID_DISPLAYNAME = 4,
- UA_ATTRIBUTEID_DESCRIPTION = 5,
- UA_ATTRIBUTEID_WRITEMASK = 6,
- UA_ATTRIBUTEID_USERWRITEMASK = 7,
- UA_ATTRIBUTEID_ISABSTRACT = 8,
- UA_ATTRIBUTEID_SYMMETRIC = 9,
- UA_ATTRIBUTEID_INVERSENAME = 10,
- UA_ATTRIBUTEID_CONTAINSNOLOOPS = 11,
- UA_ATTRIBUTEID_EVENTNOTIFIER = 12,
- UA_ATTRIBUTEID_VALUE = 13,
- UA_ATTRIBUTEID_DATATYPE = 14,
- UA_ATTRIBUTEID_VALUERANK = 15,
- UA_ATTRIBUTEID_ARRAYDIMENSIONS = 16,
- UA_ATTRIBUTEID_ACCESSLEVEL = 17,
- UA_ATTRIBUTEID_USERACCESSLEVEL = 18,
- UA_ATTRIBUTEID_MINIMUMSAMPLINGINTERVAL = 19,
- UA_ATTRIBUTEID_HISTORIZING = 20,
- UA_ATTRIBUTEID_EXECUTABLE = 21,
- UA_ATTRIBUTEID_USEREXECUTABLE = 22,
- UA_ATTRIBUTEID_DATATYPEDEFINITION = 23
- } UA_AttributeId;
- /**
- * Access Level Masks
- * ------------------
- * The access level to a node is given by the following constants that are ANDed
- * with the overall access level. */
- #define UA_ACCESSLEVELMASK_READ (0x01u << 0u)
- #define UA_ACCESSLEVELMASK_WRITE (0x01u << 1u)
- #define UA_ACCESSLEVELMASK_HISTORYREAD (0x01u << 2u)
- #define UA_ACCESSLEVELMASK_HISTORYWRITE (0x01u << 3u)
- #define UA_ACCESSLEVELMASK_SEMANTICCHANGE (0x01u << 4u)
- #define UA_ACCESSLEVELMASK_STATUSWRITE (0x01u << 5u)
- #define UA_ACCESSLEVELMASK_TIMESTAMPWRITE (0x01u << 6u)
- /**
- * Write Masks
- * -----------
- * The write mask and user write mask is given by the following constants that
- * are ANDed for the overall write mask. Part 3: 5.2.7 Table 2 */
- #define UA_WRITEMASK_ACCESSLEVEL (0x01u << 0u)
- #define UA_WRITEMASK_ARRRAYDIMENSIONS (0x01u << 1u)
- #define UA_WRITEMASK_BROWSENAME (0x01u << 2u)
- #define UA_WRITEMASK_CONTAINSNOLOOPS (0x01u << 3u)
- #define UA_WRITEMASK_DATATYPE (0x01u << 4u)
- #define UA_WRITEMASK_DESCRIPTION (0x01u << 5u)
- #define UA_WRITEMASK_DISPLAYNAME (0x01u << 6u)
- #define UA_WRITEMASK_EVENTNOTIFIER (0x01u << 7u)
- #define UA_WRITEMASK_EXECUTABLE (0x01u << 8u)
- #define UA_WRITEMASK_HISTORIZING (0x01u << 9u)
- #define UA_WRITEMASK_INVERSENAME (0x01u << 10u)
- #define UA_WRITEMASK_ISABSTRACT (0x01u << 11u)
- #define UA_WRITEMASK_MINIMUMSAMPLINGINTERVAL (0x01u << 12u)
- #define UA_WRITEMASK_NODECLASS (0x01u << 13u)
- #define UA_WRITEMASK_NODEID (0x01u << 14u)
- #define UA_WRITEMASK_SYMMETRIC (0x01u << 15u)
- #define UA_WRITEMASK_USERACCESSLEVEL (0x01u << 16u)
- #define UA_WRITEMASK_USEREXECUTABLE (0x01u << 17u)
- #define UA_WRITEMASK_USERWRITEMASK (0x01u << 18u)
- #define UA_WRITEMASK_VALUERANK (0x01u << 19u)
- #define UA_WRITEMASK_WRITEMASK (0x01u << 20u)
- #define UA_WRITEMASK_VALUEFORVARIABLETYPE (0x01u << 21u)
- /**
- * ValueRanks
- * ----------
- * The following are the most common ValueRanks used for Variables,
- * VariableTypes and method arguments. ValueRanks higher than 3 are valid as
- * well (but less common). */
- #define UA_VALUERANK_SCALAR_OR_ONE_DIMENSION -3
- #define UA_VALUERANK_ANY -2
- #define UA_VALUERANK_SCALAR -1
- #define UA_VALUERANK_ONE_OR_MORE_DIMENSIONS 0
- #define UA_VALUERANK_ONE_DIMENSION 1
- #define UA_VALUERANK_TWO_DIMENSIONS 2
- #define UA_VALUERANK_THREE_DIMENSIONS 3
- /**
- * Internal Constants
- * ==================
- *
- * Rule Handling
- * -------------
- *
- * The RuleHanding settings define how error cases that result from rules in the
- * OPC UA specification shall be handled. The rule handling can be softened,
- * e.g. to workaround misbehaving implementations or to mitigate the impact of
- * additional rules that are introduced in later versions of the OPC UA
- * specification. */
- typedef enum {
- UA_RULEHANDLING_DEFAULT = 0,
- UA_RULEHANDLING_ABORT, /* Abort the operation and return an error code */
- UA_RULEHANDLING_WARN, /* Print a message in the logs and continue */
- UA_RULEHANDLING_ACCEPT, /* Continue and disregard the broken rule */
- } UA_RuleHandling;
- /**
- * Order
- * -----
- *
- * The Order enum is used to establish an absolute ordering between elements.
- */
- typedef enum {
- UA_ORDER_LESS = -1,
- UA_ORDER_EQ = 0,
- UA_ORDER_MORE = 1
- } UA_Order;
- _UA_END_DECLS
- #endif /* UA_CONSTANTS_H_ */
|