opcua_builtInDatatypes.h 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767
  1. /*
  2. * OPCUA_builtInDatatypes.h
  3. *
  4. * Created on: Dec 19, 2013
  5. * Author: opcua
  6. */
  7. #include <stdint.h>
  8. #include <string.h>
  9. #ifndef OPCUA_BUILTINDATATYPES_H_
  10. #define OPCUA_BUILTINDATATYPES_H_
  11. /**
  12. * Enumerations:
  13. * All Enumerations should be encoded as Int32 values
  14. *
  15. *
  16. */
  17. #define UA_NOT_EQUAL 0
  18. #define UA_EQUAL 1
  19. #define UA_NO_ERROR 0
  20. #define UA_ERROR 1
  21. typedef enum
  22. {
  23. BOOLEAN = 1,
  24. SBYTE = 2,
  25. BYTE = 3,
  26. INT16 = 4,
  27. UINT16 = 5,
  28. INT32 = 6,
  29. UINT32 = 7,
  30. INT64 = 8,
  31. UINT64 = 9,
  32. FLOAT = 10,
  33. DOUBLE = 11,
  34. STRING = 12,
  35. DATE_TIME = 13,
  36. GUID = 14,
  37. BYTE_STRING = 15,
  38. XML_ELEMENT = 16,
  39. NODE_ID = 17,
  40. EXPANDED_NODE_ID = 18,
  41. STATUS_CODE = 19,
  42. QUALIFIED_NAME = 20,
  43. LOCALIZED_TEXT = 21,
  44. EXTENSION_OBJECT = 22,
  45. DATA_VALUE = 23,
  46. VARIANT = 24,
  47. DIAGNOSTIC_INFO = 25
  48. }
  49. UA_BuiltInDataTypes;
  50. typedef enum
  51. {
  52. BOOLEAN_ARRAY = 129,
  53. SBYTE_ARRAY = 130,
  54. BYTE_ARRAY = 131,
  55. INT16_ARRAY = 132,
  56. UINT16_ARRAY = 133,
  57. INT32_ARRAY = 134,
  58. UINT32_ARRAY = 135,
  59. INT64_ARRAY = 136,
  60. UINT64_ARRAY = 137,
  61. FLOAT_ARRAY = 138,
  62. DOUBLE_ARRAY = 139,
  63. STRING_ARRAY = 140,
  64. DATE_TIME_ARRAY = 141,
  65. GUID_ARRAY = 142,
  66. BYTE_STRING_ARRAY = 143,
  67. XML_ELEMENT_ARRAY = 144,
  68. NODE_ID_ARRAY = 145,
  69. EXPANDED_NODE_ID_ARRAY = 145,
  70. STATUS_CODE_ARRAY = 146,
  71. QUALIFIED_NAME_ARRAY = 147,
  72. LOCALIZED_TEXT_ARRAY = 148,
  73. EXTENSION_OBJECT_ARRAY = 149,
  74. DATA_VALUE_ARRAY = 150,
  75. VARIANT_ARRAY = 151,
  76. DIAGNOSTIC_INFO_ARRAY = 152
  77. }
  78. UA_BuiltInDataTypes_Array;
  79. typedef enum
  80. {
  81. BOOLEAN_MATRIX = 193,
  82. SBYTE_MATRIX = 194,
  83. BYTE_MATRIX = 195,
  84. INT16_MATRIX = 196,
  85. UINT16_MATRIX = 197,
  86. INT32_MATRIX = 198,
  87. UINT32_MATRIX = 199,
  88. INT64_MATRIX = 200,
  89. UINT64_MATRIX = 201,
  90. FLOAT_MATRIX = 202,
  91. DOUBLE_MATRIX = 203,
  92. STRING_MATRIX = 204,
  93. DATE_TIME_MATRIX = 205,
  94. GUID_MATRIX = 206,
  95. BYTE_STRING_MATRIX = 207,
  96. XML_ELEMENT_MATRIX = 208,
  97. NODE_ID_MATRIX = 209,
  98. EXPANDED_NODE_ID_MATRIX = 210,
  99. STATUS_CODE_MATRIX = 211,
  100. QUALIFIED_NAME_MATRIX = 212,
  101. LOCALIZED_TEXT_MATRIX = 213,
  102. EXTENSION_OBJECT_MATRIX = 214,
  103. DATA_VALUE_MATRIX = 215,
  104. VARIANT_MATRIX = 216,
  105. DIAGNOSTIC_INFO_MATRIX = 217
  106. }
  107. UA_BuiltInDataTypes_Matrix;
  108. /**
  109. * BasicBuiltInDatatypes
  110. * Part: 6
  111. * Chapter: 5.2.2.1 - 5.2.2.3
  112. * Page: 15
  113. */
  114. typedef _Bool Boolean;
  115. typedef int8_t SByte;
  116. typedef uint8_t Byte;
  117. typedef int16_t Int16;
  118. typedef uint16_t UInt16;
  119. typedef int32_t Int32;
  120. typedef uint32_t UInt32;
  121. typedef int64_t Int64;
  122. typedef uint64_t UInt64;
  123. typedef float Float;
  124. typedef double Double;
  125. /**
  126. * String
  127. * Part: 6
  128. * Chapter: 5.2.2.4
  129. * Page: 16
  130. */
  131. typedef struct UA_String
  132. {
  133. Int32 Length;
  134. char *Data;
  135. }
  136. UA_String;
  137. /**
  138. * DateTime
  139. * Part: 6
  140. * Chapter: 5.2.2.5
  141. * Page: 16
  142. */
  143. typedef Int64 UA_DateTime; //100 nanosecond resolution
  144. //start Date: 1601-01-01 12:00 AM
  145. /*
  146. * ByteString
  147. * Part: 6
  148. * Chapter: 5.2.2.7
  149. * Page: 17
  150. */
  151. typedef struct UA_ByteString
  152. {
  153. Int32 Length;
  154. Byte *Data;
  155. }
  156. UA_ByteString;
  157. /* GuidType
  158. * Part: 6
  159. * Chapter: 5.2.2.6
  160. * Page: 17
  161. */
  162. typedef struct UA_Guid
  163. {
  164. UInt32 Data1;
  165. UInt16 Data2;
  166. UInt16 Data3;
  167. UA_ByteString Data4;
  168. }
  169. UA_Guid;
  170. /**
  171. * XmlElement
  172. * Part: 6
  173. * Chapter: 5.2.2.8
  174. * Page: 17
  175. */
  176. //Überlegung ob man es direkt als ByteString speichert oder als String
  177. typedef struct UA_XmlElement
  178. {
  179. UA_ByteString Data;
  180. }
  181. UA_XmlElement;
  182. typedef struct UA_XmlElementEncoded
  183. {
  184. UInt32 Length;
  185. Byte StartTag[3];
  186. Byte *Message;
  187. UInt32 EndTag[4];
  188. }
  189. UA_XmlElementEncoded;
  190. /**
  191. * NodeIds
  192. * Part: 6
  193. * Chapter: 5.2.2.9
  194. * Page: 17
  195. */
  196. typedef enum UA_IdentifierType
  197. {
  198. // Some Values are called the same as previouse Enumerations so we need
  199. //names that are unique
  200. IT_NUMERIC = 0,
  201. IT_STRING = 1,
  202. IT_GUID = 2,
  203. IT_OPAQUE = 3
  204. }
  205. UA_IdentifierType;
  206. /**
  207. * NodeIds
  208. * Part: 6
  209. * Chapter: 5.2.2.9
  210. * Table 5
  211. */
  212. typedef enum UA_NodeIdEncodingValuesType
  213. {
  214. // Some Values are called the same as previous Enumerations so we need
  215. // names that are unique
  216. NIEVT_TWO_BYTE = 0x00,
  217. NIEVT_FOUR_BYTE = 0x01,
  218. NIEVT_NUMERIC = 0x02,
  219. NIEVT_STRING = 0x03,
  220. NIEVT_GUID = 0x04,
  221. NIEVT_BYTESTRING = 0x05,
  222. NIEVT_NAMESPACE_URI_FLAG = 0x80, //Is only for ExpandedNodeId required
  223. NIEVT_SERVERINDEX_FLAG = 0x40 //Is only for ExpandedNodeId required
  224. }
  225. UA_NodeIdEncodingValuesType;
  226. /**
  227. * NodeId
  228. */
  229. typedef struct UA_NodeId
  230. {
  231. Byte EncodingByte; //enum BID_NodeIdEncodingValuesType
  232. UInt16 Namespace;
  233. union
  234. {
  235. UInt32 Numeric;
  236. UA_String String;
  237. UA_Guid Guid;
  238. UA_ByteString ByteString;
  239. }
  240. Identifier;
  241. }
  242. UA_NodeId;
  243. /**
  244. * ExpandedNodeId
  245. * Part: 6
  246. * Chapter: 5.2.2.10
  247. * Page: 19
  248. */
  249. typedef struct UA_ExpandedNodeId
  250. {
  251. UA_NodeId NodeId;
  252. Int32 EncodingByte; //enum BID_NodeIdEncodingValuesType
  253. UA_String NamespaceUri;
  254. UInt32 ServerIndex;
  255. }
  256. UA_ExpandedNodeId;
  257. /**
  258. * StatusCodeBinaryEncoding
  259. * Part: 6
  260. * Chapter: 5.2.2.11
  261. * Page: 20
  262. */
  263. typedef UInt32 UA_StatusCode;
  264. /**
  265. * DiagnoticInfoBinaryEncoding
  266. * Part: 6
  267. * Chapter: 5.2.2.12
  268. * Page: 20
  269. */
  270. typedef struct UA_DiagnosticInfo
  271. {
  272. Byte EncodingMask; //Type of the Enum UA_DiagnosticInfoEncodingMaskType
  273. Int32 SymbolicId;
  274. Int32 NamespaceUri;
  275. Int32 LocalizedText;
  276. Int32 Locale;
  277. UA_String AdditionalInfo;
  278. UA_StatusCode InnerStatusCode;
  279. struct UA_DiagnosticInfo* InnerDiagnosticInfo;
  280. }
  281. UA_DiagnosticInfo;
  282. typedef enum UA_DiagnosticInfoEncodingMaskType
  283. {
  284. // Some Values are called the same as previous Enumerations so we need
  285. //names that are unique
  286. DIEMT_SYMBOLIC_ID = 0x01,
  287. DIEMT_NAMESPACE = 0x02,
  288. DIEMT_LOCALIZED_TEXT = 0x04,
  289. DIEMT_LOCALE = 0x08,
  290. DIEMT_ADDITIONAL_INFO = 0x10,
  291. DIEMT_INNER_STATUS_CODE = 0x20,
  292. DIEMT_INNER_DIAGNOSTIC_INFO = 0x40
  293. }
  294. UA_DiagnosticInfoEncodingMaskType;
  295. /**
  296. * QualifiedNameBinaryEncoding
  297. * Part: 6
  298. * Chapter: 5.2.2.13
  299. * Page: 20
  300. */
  301. typedef struct UA_QualifiedName
  302. {
  303. UInt16 NamespaceIndex;
  304. UInt16 Reserved;
  305. UA_String Name;
  306. }
  307. UA_QualifiedName;
  308. /**
  309. * LocalizedTextBinaryEncoding
  310. * Part: 6
  311. * Chapter: 5.2.2.14
  312. * Page: 21
  313. */
  314. typedef struct UA_LocalizedText
  315. {
  316. Byte EncodingMask;
  317. UA_String Locale;
  318. UA_String Text;
  319. }
  320. UA_LocalizedText;
  321. typedef enum UA_LocalizedTextEncodingMaskType
  322. {
  323. LTEMT_SYMBOLIC_ID = 0x01,
  324. LTEMT_NAMESPACE = 0x02
  325. }
  326. UA_LocalizedTextEncodingMaskType;
  327. /**
  328. * ExtensionObjectBinaryEncoding
  329. * Part: 6
  330. * Chapter: 5.2.2.15
  331. * Page: 21
  332. */
  333. typedef struct UA_ExtensionObject
  334. {
  335. UA_NodeId TypeId;
  336. Byte Encoding; //Type of the Enum UA_ExtensionObjectEncodingMaskType
  337. Int32 Length;
  338. UA_ByteString Body;
  339. }
  340. UA_ExtensionObject;
  341. typedef enum UA_ExtensionObjectEncodingMaskType
  342. {
  343. NO_BODY_IS_ENCODED = 0x00,
  344. BODY_IS_BYTE_STRING = 0x01,
  345. BODY_IS_XML_ELEMENT = 0x02
  346. }
  347. UA_ExtensionObjectEncodingMaskType;
  348. typedef UA_VariantUnion;
  349. /**
  350. * VariantBinaryEncoding
  351. * Part: 6
  352. * Chapter: 5.2.2.16
  353. * Page: 22
  354. */
  355. typedef struct UA_Variant
  356. {
  357. Byte EncodingMask; //Type of Enum UA_VariantTypeEncodingMaskType
  358. Int32 ArrayLength;
  359. UA_VariantUnion *Value;
  360. }
  361. UA_Variant;
  362. /**
  363. * DataValueBinaryEncoding
  364. * Part: 6
  365. * Chapter: 5.2.2.17
  366. * Page: 23
  367. */
  368. typedef struct UA_DataValue
  369. {
  370. Byte EncodingMask;
  371. UA_Variant Value;
  372. UA_StatusCode Status;
  373. UA_DateTime SourceTimestamp;
  374. Int16 SourcePicoseconds;
  375. UA_DateTime ServerTimestamp;
  376. Int16 ServerPicoseconds;
  377. }
  378. UA_DataValue;
  379. typedef struct IntegerString
  380. {
  381. Int32 *data;
  382. Int32 length;
  383. }IntegerString;
  384. typedef struct Int32_Array
  385. {
  386. Int32 *data;
  387. Int32 arrayLength;
  388. IntegerString dimensions;
  389. }Int32_Array;
  390. // Array types of builtInDatatypes
  391. typedef struct SBYte_Array
  392. {
  393. SByte *data;
  394. Int32 arrayLength;
  395. IntegerString dimensions;
  396. }SBYte_Array;
  397. typedef struct Boolean_Array
  398. {
  399. Boolean *data;
  400. Int32 arrayLength;
  401. IntegerString dimensions;
  402. }Boolean_Array;
  403. typedef struct
  404. {
  405. SByte *data;
  406. Int32 arrayLength;
  407. IntegerString dimensions;
  408. }SByte_Array;
  409. typedef struct Byte_Array
  410. {
  411. Byte *data;
  412. Int32 arrayLength;
  413. IntegerString dimensions;
  414. }Byte_Array;
  415. typedef struct Int16_Array
  416. {
  417. Int16 *data;
  418. Int32 arrayLength;
  419. IntegerString dimensions;
  420. }Int16_Array;
  421. typedef struct UInt16_Array
  422. {
  423. UInt16 *data;
  424. Int32 arrayLength;
  425. IntegerString dimensions;
  426. }UInt16_Array;
  427. typedef struct UInt32_Array
  428. {
  429. UInt32 *data;
  430. Int32 arrayLength;
  431. IntegerString dimensions;
  432. }UInt32_Array;
  433. typedef struct
  434. {
  435. Int64 *data;
  436. Int32 arrayLength;
  437. IntegerString dimensions;
  438. }Int64_Array;
  439. typedef struct UInt64_Array
  440. {
  441. UInt64 *data;
  442. Int32 arrayLength;
  443. IntegerString dimensions;
  444. }UInt64_Array;
  445. typedef struct Float_Array
  446. {
  447. Float *data;
  448. Int32 arrayLength;
  449. IntegerString dimensions;
  450. }Float_Array;
  451. typedef struct Double_Array
  452. {
  453. Double *data;
  454. Int32 arrayLength;
  455. IntegerString dimensions;
  456. }Double_Array;
  457. typedef struct String_Array
  458. {
  459. UA_String *data;
  460. Int32 arrayLength;
  461. IntegerString dimensions;
  462. }String_Array;
  463. typedef struct DateTime_Array
  464. {
  465. UA_DateTime *data;
  466. Int32 arrayLength;
  467. IntegerString dimensions;
  468. }DateTime_Array;
  469. typedef struct Guid_Array
  470. {
  471. UA_Guid *data;
  472. Int32 arrayLength;
  473. IntegerString dimensions;
  474. }Guid_Array;
  475. typedef struct ByteString_Array
  476. {
  477. UA_ByteString *data;
  478. Int32 arrayLength;
  479. IntegerString dimensions;
  480. }ByteString_Array;
  481. typedef struct XmlElement_Array
  482. {
  483. UA_XmlElement *data;
  484. Int32 arrayLength;
  485. IntegerString dimensions;
  486. }XmlElement_Array;
  487. typedef struct NodeId_Array
  488. {
  489. UA_NodeId *data;
  490. Int32 arrayLength;
  491. IntegerString dimensions;
  492. }NodeId_Array;
  493. typedef struct ExpandedNodeId_Array
  494. {
  495. UA_ExpandedNodeId *data;
  496. Int32 arrayLength;
  497. IntegerString dimensions;
  498. }ExpandedNodeId_Array;
  499. typedef struct StatusCode_Array
  500. {
  501. UA_StatusCode *data;
  502. Int32 arrayLength;
  503. IntegerString dimensions;
  504. }StatusCode_Array;
  505. typedef struct QualifiedName_Array
  506. {
  507. UA_QualifiedName *data;
  508. Int32 arrayLength;
  509. IntegerString dimensions;
  510. }QualifiedName_Array;
  511. typedef struct LocalizedText_Array
  512. {
  513. UA_LocalizedText *data;
  514. Int32 arrayLength;
  515. IntegerString dimensions;
  516. }LocalizedText_Array;
  517. typedef struct ExtensionObject_Array
  518. {
  519. UA_ExtensionObject *data;
  520. Int32 arrayLength;
  521. IntegerString dimensions;
  522. }ExtensionObject_Array;
  523. typedef struct
  524. {
  525. struct UA_DataValue *data;
  526. Int32 arrayLength;
  527. IntegerString dimensions;
  528. }DataValue_Array;
  529. typedef struct Variant_Array
  530. {
  531. struct UA_Variant *data;
  532. Int32 arrayLength;
  533. IntegerString dimensions;
  534. }Variant_Array;
  535. typedef struct DiagnosticInfo_Array
  536. {
  537. UA_DiagnosticInfo *data;
  538. Int32 arrayLength;
  539. IntegerString dimensions;
  540. }DiagnosticInfo_Array;
  541. typedef union UA_VariantArrayUnion
  542. {
  543. void* Array;
  544. Boolean_Array BooleanArray;
  545. SByte_Array SByteArray;
  546. Byte_Array ByteArray;
  547. Int16_Array Int16Array;
  548. UInt16_Array UInt16Array;
  549. Int32_Array Int32Array;
  550. UInt32_Array UInt32Array;
  551. Int64_Array Int64Array;
  552. UInt64_Array UInt64Array;
  553. Float_Array FloatArray;
  554. Double_Array DoubleArray;
  555. String_Array StringArray;
  556. DateTime_Array DateTimeArray;
  557. Guid_Array GuidArray;
  558. ByteString_Array ByteStringArray;
  559. ByteString_Array XmlElementArray;
  560. NodeId_Array NodeIdArray;
  561. ExpandedNodeId_Array ExpandedNodeIdArray;
  562. StatusCode_Array StatusCodeArray;
  563. QualifiedName_Array QualifiedNameArray;
  564. LocalizedText_Array LocalizedTextArray;
  565. ExtensionObject_Array ExtensionObjectArray;
  566. DataValue_Array DataValueArray;
  567. Variant_Array VariantArray;
  568. }
  569. UA_VariantArrayUnion;
  570. typedef struct UA_VariantArrayValue
  571. {
  572. //Byte TypeEncoding;
  573. Int32 Length;
  574. UA_VariantArrayUnion Value;
  575. }
  576. UA_VariantArrayValue;
  577. typedef struct
  578. {
  579. Int32 NoOfDimensions;
  580. Int32* Dimensions;
  581. UA_VariantArrayUnion Value;
  582. }
  583. UA_VariantMatrixValue;
  584. union UA_VariantUnion
  585. {
  586. Boolean Boolean;
  587. SByte SByte;
  588. Byte Byte;
  589. Int16 Int16;
  590. UInt16 UInt16;
  591. Int32 Int32;
  592. UInt32 UInt32;
  593. Int64 Int64;
  594. UInt64 UInt64;
  595. Float Float;
  596. Double Double;
  597. UA_DateTime DateTime;
  598. UA_String String;
  599. UA_Guid *Guid;
  600. UA_ByteString ByteString;
  601. UA_XmlElement XmlElement;
  602. UA_NodeId *NodeId;
  603. UA_ExpandedNodeId *ExpandedNodeId;
  604. UA_StatusCode StatusCode;
  605. UA_QualifiedName *QualifiedName;
  606. UA_LocalizedText *LocalizedText;
  607. UA_ExtensionObject *ExtensionObject;
  608. UA_DataValue *DataValue;
  609. UA_VariantArrayValue Array;
  610. UA_VariantMatrixValue Matrix;
  611. };
  612. typedef enum UA_VariantTypeEncodingMaskType
  613. {
  614. //Bytes 0:5 HEX 0x00 - 0x20
  615. VTEMT_BOOLEAN = 1,
  616. VTEMT_SBYTE = 2,
  617. VTEMT_BYTE = 3,
  618. VTEMT_INT16 = 4,
  619. VTEMT_UINT16 = 5,
  620. VTEMT_INT32 = 6,
  621. VTEMT_UINT32 = 7,
  622. VTEMT_INT64 = 8,
  623. VTEMT_UINT64 = 9,
  624. VTEMT_FLOAT = 10,
  625. VTEMT_DOUBLE = 11,
  626. VTEMT_STRING = 12,
  627. VTEMT_DATE_TIME = 13,
  628. VTEMT_GUID = 14,
  629. VTEMT_BYTE_STRING = 15,
  630. VTEMT_XML_ELEMENT = 16,
  631. VTEMT_NODE_ID = 17,
  632. VTEMT_EXPANDED_NODE_ID = 18,
  633. VTEMT_STATUS_CODE = 19,
  634. VTEMT_QUALIFIED_NAME = 20,
  635. VTEMT_LOCALIZED_TEXT = 21,
  636. VTEMT_EXTENSION_OBJECT = 22,
  637. VTEMT_DATA_VALUE = 23,
  638. VTEMT_VARIANT = 24,
  639. VTEMT_DIAGNOSTIC_INFO = 25,
  640. //Byte 6
  641. VTEMT_ARRAY_DIMENSIONS_ENCODED = 0x40,
  642. //Byte 7
  643. VTEMT_ARRAY_VALUE_ENCODED = 0x80,
  644. }
  645. UA_VariantTypeEncodingMaskType;
  646. typedef UInt32 IntegerId;
  647. /**
  648. * Duration
  649. * Part: 3
  650. * Chapter: 8.13
  651. * Page: 74
  652. */
  653. typedef double UA_Duration;
  654. /**
  655. *
  656. * @param string1
  657. * @param string2
  658. * @return
  659. */
  660. Int32 UA_String_compare(UA_String *string1, UA_String *string2);
  661. /**
  662. *
  663. * @param string1
  664. * @param string2
  665. * @return
  666. */
  667. Int32 UA_ByteString_compare(UA_ByteString *string1, UA_ByteString *string2);
  668. #endif /* OPCUA_BUILTINDATATYPES_H_ */