123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- # Opaque types are in general defined as simple byte strings. For the base opaque types there is a corresponding node id definition
- # in the nodeset. E.g. Opc.Ua.Types.bsd contains the simple definition for OpaqueType LocaleId. In Opc.Ua.NodeSet2.xml the LocaleId
- # is defined as a Subtype of String(i=12) thus LocaleId is a String object.
- # TODO we can automate this mapping by loading the NodeSet2.xml and read those mappings automatically. For now we just use this map
- opaque_type_mapping = {
- 'Image': {
- 'ns': 0,
- 'id': 15,
- 'name': 'ByteString'
- },
- 'Number': {
- 'ns': 0,
- 'id': 24,
- 'name': 'BaseDataType'
- },
- 'UInteger': {
- 'ns': 0,
- 'id': 24,
- 'name': 'BaseDataType'
- },
- 'ImageBMP': {
- 'ns': 0,
- 'id': 15,
- 'name': 'ByteString'
- },
- 'ImageGIF': {
- 'ns': 0,
- 'id': 15,
- 'name': 'ByteString'
- },
- 'ImageJPG': {
- 'ns': 0,
- 'id': 15,
- 'name': 'ByteString'
- },
- 'ImagePNG': {
- 'ns': 0,
- 'id': 15,
- 'name': 'ByteString'
- },
- 'BitFieldMaskDataType': {
- 'ns': 0,
- 'id': 9,
- 'name': 'UInt64'
- },
- 'NormalizedString': {
- 'ns': 0,
- 'id': 12,
- 'name': 'String'
- },
- 'DecimalString': {
- 'ns': 0,
- 'id': 12,
- 'name': 'String'
- },
- 'DurationString': {
- 'ns': 0,
- 'id': 12,
- 'name': 'String'
- },
- 'TimeString': {
- 'ns': 0,
- 'id': 12,
- 'name': 'String'
- },
- 'DateString': {
- 'ns': 0,
- 'id': 12,
- 'name': 'String'
- },
- 'Duration': {
- 'ns': 0,
- 'id': 11,
- 'name': 'Double'
- },
- 'UtcTime': {
- 'ns': 0,
- 'id': 13,
- 'name': 'DateTime'
- },
- 'LocaleId': {
- 'ns': 0,
- 'id': 12,
- 'name': 'String'
- },
- 'IntegerId': {
- 'ns': 0,
- 'id': 7,
- 'name': 'UInt32'
- },
- 'ApplicationInstanceCertificate': {
- 'ns': 0,
- 'id': 15,
- 'name': 'ByteString'
- },
- 'SessionAuthenticationToken': {
- 'ns': 0,
- 'id': 17,
- 'name': 'NodeId'
- },
- 'ContinuationPoint': {
- 'ns': 0,
- 'id': 15,
- 'name': 'ByteString'
- },
- 'Counter': {
- 'ns': 0,
- 'id': 7,
- 'name': 'UInt32'
- },
- 'NumericRange': {
- 'ns': 0,
- 'id': 12,
- 'name': 'String'
- },
- 'Time': {
- 'ns': 0,
- 'id': 12,
- 'name': 'String'
- },
- 'Date': {
- 'ns': 0,
- 'id': 13,
- 'name': 'DateTime'
- }
- }
- def get_base_type_for_opaque(opaqueTypeName):
- if opaqueTypeName in opaque_type_mapping:
- return opaque_type_mapping[opaqueTypeName]
- # Default if not in mapping is ByteString
- return {
- 'ns': 0,
- 'id': 15,
- 'name': 'ByteString'
- }
|