Files
Marc Schier 30bfa7895f Add OPC UA WoT Connectivity (OPC 10100-1) libraries and tests (#3786)
* Add WoT Connectivity (OPC 10100-1) libraries and tests

Implements the OPC UA WoT Connectivity companion specification (OPC 10100-1, `WoT Connectivity for OPC UA`) through four new projects under the unified Opc.Ua.WotCon prefix:

* Opc.Ua.WotCon - source-generated model from the official WotConnection.xml + WotConnection.csv design files (NodeStates, NodeIds, ObjectType client proxies including WoTAssetFileTypeClient : FileTypeClient).

* Opc.Ua.WotCon.Server - WotConnectivityNodeManager (AsyncCustomNodeManager subclass), factory, DI options. Provider model split into IWotAssetProvider (per-asset Read/Write/Observe/InvokeAction) and IWotAssetDiscoveryProvider (server-level Discover/Test/CreateForEndpoint per spec sec. 6.3.4-6). System.Text.Json TD parser with AOT-safe JsonSerializerContext. Property mapper per spec table 14, action mapper per sec. 6.3.9. WotAssetFileManager enforces only OpenFileMode Read (1) and Write|EraseExisting (6) per spec sec. 6.3.10 and drives CloseAndUpdate materialisation + persistence.

* Opc.Ua.WotCon.Client - WotConnectivityClient and WotAssetClient compose the generated proxies (no inheritance). Extension methods on FileTypeClient / WoTAssetFileTypeClient add chunked upload/download and the Open(Write|EraseExisting) -> Write* -> CloseAndUpdate flow, extending the existing FileSystem API without subclassing.

* Opc.Ua.WotCon.Tests - NUnit suite (28 passing tests) covering TD parsing, property and action mappers, and the SimulatedWotAssetProvider/SimulatedWotDiscoveryProvider which serve as canonical examples of the provider contract.
2026-05-19 19:02:29 +02:00

173 lines
10 KiB
CSV

WoTAssetConnectionManagementType,1,ObjectType
WoTAssetConnectionManagementType_WoTAssetName_Placeholder,2,Object
WotConNamespaceMetadata_NamespaceFile,3,Object
WotConNamespaceMetadata_NamespaceFile_Size,4,Variable
WotConNamespaceMetadata_NamespaceFile_Writable,5,Variable
WotConNamespaceMetadata_NamespaceFile_UserWritable,6,Variable
WotConNamespaceMetadata_NamespaceFile_OpenCount,7,Variable
WotConNamespaceMetadata_NamespaceFile_MimeType,8,Variable
WotConNamespaceMetadata_NamespaceFile_MaxByteStringLength,9,Variable
WotConNamespaceMetadata_NamespaceFile_LastModifiedTime,10,Variable
WotConNamespaceMetadata_NamespaceFile_Open,11,Method
WotConNamespaceMetadata_NamespaceFile_Open_InputArguments,12,Variable
WotConNamespaceMetadata_NamespaceFile_Open_OutputArguments,13,Variable
WotConNamespaceMetadata_NamespaceFile_Close,14,Method
WotConNamespaceMetadata_NamespaceFile_Close_InputArguments,15,Variable
WotConNamespaceMetadata_NamespaceFile_Read,16,Method
WotConNamespaceMetadata_NamespaceFile_Read_InputArguments,17,Variable
WotConNamespaceMetadata_NamespaceFile_Read_OutputArguments,18,Variable
WotConNamespaceMetadata_NamespaceFile_Write,19,Method
WotConNamespaceMetadata_NamespaceFile_Write_InputArguments,20,Variable
WotConNamespaceMetadata_NamespaceFile_GetPosition,21,Method
WotConNamespaceMetadata_NamespaceFile_GetPosition_InputArguments,22,Variable
WotConNamespaceMetadata_NamespaceFile_GetPosition_OutputArguments,23,Variable
WotConNamespaceMetadata_NamespaceFile_SetPosition,24,Method
WotConNamespaceMetadata_NamespaceFile_SetPosition_InputArguments,25,Variable
WoTAssetConnectionManagementType_CreateAsset,26,Method
WoTAssetConnectionManagementType_CreateAsset_InputArguments,27,Variable
WoTAssetConnectionManagementType_CreateAsset_OutputArguments,28,Variable
WoTAssetConnectionManagementType_DeleteAsset,29,Method
WoTAssetConnectionManagementType_DeleteAsset_InputArguments,30,Variable
WoTAssetConnectionManagement,31,Object
WoTAssetConnectionManagement_CreateAsset,32,Method
WoTAssetConnectionManagement_CreateAsset_InputArguments,33,Variable
WoTAssetConnectionManagement_CreateAsset_OutputArguments,34,Variable
WoTAssetConnectionManagement_DeleteAsset,35,Method
WoTAssetConnectionManagement_DeleteAsset_InputArguments,36,Variable
WotConNamespaceMetadata_NamespaceFile_ExportNamespace,37,Method
WotConNamespaceMetadata_ConfigurationVersion,38,Variable
WotConNamespaceMetadata_ModelVersion,39,Variable
WoTAssetConnectionManagementType_SupportedWoTBindings,40,Variable
WoTAssetConnectionManagementType_DiscoverAssets,41,Method
IWoTAssetType,42,ObjectType
IWoTAssetType_WoTFile,43,Object
IWoTAssetType_WoTFile_Size,44,Variable
IWoTAssetType_WoTFile_Writable,45,Variable
IWoTAssetType_WoTFile_UserWritable,46,Variable
IWoTAssetType_WoTFile_OpenCount,47,Variable
WoTAssetConnectionManagementType_DiscoverAssets_OutputArguments,48,Variable
WoTAssetConnectionManagementType_CreateAssetForEndpoint,49,Method
WoTAssetConnectionManagementType_CreateAssetForEndpoint_InputArguments,50,Variable
IWoTAssetType_WoTFile_Open,51,Method
IWoTAssetType_WoTFile_Open_InputArguments,52,Variable
IWoTAssetType_WoTFile_Open_OutputArguments,53,Variable
IWoTAssetType_WoTFile_Close,54,Method
IWoTAssetType_WoTFile_Close_InputArguments,55,Variable
IWoTAssetType_WoTFile_Read,56,Method
IWoTAssetType_WoTFile_Read_InputArguments,57,Variable
IWoTAssetType_WoTFile_Read_OutputArguments,58,Variable
IWoTAssetType_WoTFile_Write,59,Method
IWoTAssetType_WoTFile_Write_InputArguments,60,Variable
IWoTAssetType_WoTFile_GetPosition,61,Method
IWoTAssetType_WoTFile_GetPosition_InputArguments,62,Variable
IWoTAssetType_WoTFile_GetPosition_OutputArguments,63,Variable
IWoTAssetType_WoTFile_SetPosition,64,Method
IWoTAssetType_WoTFile_SetPosition_InputArguments,65,Variable
IWoTAssetType_WoTPropertyName_Placeholder,66,Variable
WotConNamespaceMetadata,67,Object
WotConNamespaceMetadata_NamespaceUri,68,Variable
WotConNamespaceMetadata_NamespaceVersion,69,Variable
WotConNamespaceMetadata_NamespacePublicationDate,70,Variable
WotConNamespaceMetadata_IsNamespaceSubset,71,Variable
WotConNamespaceMetadata_StaticNodeIdTypes,72,Variable
WotConNamespaceMetadata_StaticNumericNodeIdRange,73,Variable
WotConNamespaceMetadata_StaticStringNodeIdPattern,74,Variable
WoTAssetConnectionManagementType_ConnectionTest,75,Method
WoTAssetConnectionManagementType_ConnectionTest_InputArguments,76,Variable
WoTAssetConnectionManagementType_ConnectionTest_OutputArguments,77,Variable
WoTAssetConnectionManagementType_Configuration,78,Object
WoTAssetConnectionManagementType_Configuration_License,79,Variable
WoTAssetConnectionManagement_SupportedWoTBindings,80,Variable
WoTAssetConnectionManagement_DiscoverAssets,81,Method
WoTAssetConnectionManagement_DiscoverAssets_OutputArguments,82,Variable
WoTAssetConnectionManagement_CreateAssetForEndpoint,83,Method
WoTAssetConnectionManagement_CreateAssetForEndpoint_InputArguments,84,Variable
WoTAssetConnectionManagement_ConnectionTest,85,Method
WoTAssetConnectionManagement_ConnectionTest_InputArguments,86,Variable
WoTAssetConnectionManagement_ConnectionTest_OutputArguments,87,Variable
WoTAssetConnectionManagement_Configuration,88,Object
WoTAssetConnectionManagement_Configuration_License,89,Variable
CreateAssetMethodType,90,Method
CreateAssetMethodType_InputArguments,91,Variable
CreateAssetMethodType_OutputArguments,92,Variable
DeleteAssetMethodType,93,Method
DeleteAssetMethodType_InputArguments,94,Variable
DiscoverAssetsMethodType,95,Method
DiscoverAssetsMethodType_OutputArguments,96,Variable
CreateAssetForEndpointMethodType,97,Method
CreateAssetForEndpointMethodType_InputArguments,98,Variable
WotConNamespaceMetadata_DefaultRolePermissions,99,Variable
WotConNamespaceMetadata_DefaultUserRolePermissions,100,Variable
WotConNamespaceMetadata_DefaultAccessRestrictions,101,Variable
ConnectionTestMethodType,102,Method
ConnectionTestMethodType_InputArguments,103,Variable
ConnectionTestMethodType_OutputArguments,104,Variable
WoTAssetConfigurationType,105,ObjectType
IWoTAssetType_WoTFile_CloseAndUpdate,106,Method
IWoTAssetType_WoTFile_CloseAndUpdate_InputArguments,107,Variable
WoTAssetConfigurationType_WoTConfigurationParameterName_Placeholder,108,Variable
WoTAssetConfigurationType_License,109,Variable
WoTAssetFileType,110,ObjectType
WoTAssetFileType_CloseAndUpdate,111,Method
WoTAssetFileType_CloseAndUpdate_InputArguments,112,Variable
IWoTAssetType_WoTFile_MimeType,113,Variable
IWoTAssetType_WoTFile_MaxByteStringLength,114,Variable
WoTAssetType,115,Unspecified
WoTAssetType_WoTFile,116,Unspecified
WoTAssetType_WoTFile_Size,117,Unspecified
WoTAssetType_WoTFile_Writable,118,Unspecified
WoTAssetType_WoTFile_UserWritable,119,Unspecified
WoTAssetType_WoTFile_OpenCount,120,Unspecified
IWoTAssetType_WoTFile_LastModifiedTime,121,Variable
IWoTAssetType_AssetEndpoint,122,Variable
CloseAndUpdateMethodType,123,Method
WoTAssetType_WoTFile_Open,124,Unspecified
WoTAssetType_WoTFile_Open_InputArguments,125,Unspecified
WoTAssetType_WoTFile_Open_OutputArguments,126,Unspecified
WoTAssetType_WoTFile_Close,127,Unspecified
WoTAssetType_WoTFile_Close_InputArguments,128,Unspecified
WoTAssetType_WoTFile_Read,129,Unspecified
WoTAssetType_WoTFile_Read_InputArguments,130,Unspecified
WoTAssetType_WoTFile_Read_OutputArguments,131,Unspecified
WoTAssetType_WoTFile_Write,132,Unspecified
WoTAssetType_WoTFile_Write_InputArguments,133,Unspecified
WoTAssetType_WoTFile_GetPosition,134,Unspecified
WoTAssetType_WoTFile_GetPosition_InputArguments,135,Unspecified
WoTAssetType_WoTFile_GetPosition_OutputArguments,136,Unspecified
WoTAssetType_WoTFile_SetPosition,137,Unspecified
WoTAssetType_WoTFile_SetPosition_InputArguments,138,Unspecified
WoTAssetType_WoTFile_CloseAndUpdate,139,Unspecified
WoTAssetType_WoTFile_CloseAndUpdate_InputArguments,140,Unspecified
WoTAssetType_WoTPropertyName_Placeholder,141,Unspecified
HasWoTComponent,142,ReferenceType
CloseAndUpdateMethodType_InputArguments,143,Variable
WoTAssetConnectionManagementType_WoTAssetName_Placeholder_WoTFile,144,Object
WoTAssetConnectionManagementType_WoTAssetName_Placeholder_WoTFile_Size,145,Variable
WoTAssetConnectionManagementType_WoTAssetName_Placeholder_WoTFile_Writable,146,Variable
WoTAssetConnectionManagementType_WoTAssetName_Placeholder_WoTFile_UserWritable,147,Variable
WoTAssetConnectionManagementType_WoTAssetName_Placeholder_WoTFile_OpenCount,148,Variable
WoTAssetConnectionManagementType_WoTAssetName_Placeholder_WoTFile_MimeType,149,Variable
WoTAssetConnectionManagementType_WoTAssetName_Placeholder_WoTFile_MaxByteStringLength,150,Variable
WoTAssetConnectionManagementType_WoTAssetName_Placeholder_WoTFile_LastModifiedTime,151,Variable
WoTAssetConnectionManagementType_WoTAssetName_Placeholder_WoTFile_Open,152,Method
WoTAssetConnectionManagementType_WoTAssetName_Placeholder_WoTFile_Open_InputArguments,153,Variable
WoTAssetConnectionManagementType_WoTAssetName_Placeholder_WoTFile_Open_OutputArguments,154,Variable
WoTAssetConnectionManagementType_WoTAssetName_Placeholder_WoTFile_Close,155,Method
WoTAssetConnectionManagementType_WoTAssetName_Placeholder_WoTFile_Close_InputArguments,156,Variable
WoTAssetConnectionManagementType_WoTAssetName_Placeholder_WoTFile_Read,157,Method
WoTAssetConnectionManagementType_WoTAssetName_Placeholder_WoTFile_Read_InputArguments,158,Variable
WoTAssetConnectionManagementType_WoTAssetName_Placeholder_WoTFile_Read_OutputArguments,159,Variable
WoTAssetConnectionManagementType_WoTAssetName_Placeholder_WoTFile_Write,160,Method
WoTAssetConnectionManagementType_WoTAssetName_Placeholder_WoTFile_Write_InputArguments,161,Variable
WoTAssetConnectionManagementType_WoTAssetName_Placeholder_WoTFile_GetPosition,162,Method
WoTAssetConnectionManagementType_WoTAssetName_Placeholder_WoTFile_GetPosition_InputArguments,163,Variable
WoTAssetConnectionManagementType_WoTAssetName_Placeholder_WoTFile_GetPosition_OutputArguments,164,Variable
WoTAssetConnectionManagementType_WoTAssetName_Placeholder_WoTFile_SetPosition,165,Method
WoTAssetConnectionManagementType_WoTAssetName_Placeholder_WoTFile_SetPosition_InputArguments,166,Variable
WoTAssetConnectionManagementType_WoTAssetName_Placeholder_WoTFile_CloseAndUpdate,167,Method
WoTAssetConnectionManagementType_WoTAssetName_Placeholder_WoTFile_CloseAndUpdate_InputArguments,168,Variable
WoTAssetConnectionManagementType_WoTAssetName_Placeholder_AssetEndpoint,169,Variable
WoTAssetConnectionManagementType_CreateAssetForEndpoint_OutputArguments,170,Variable
WoTAssetConnectionManagement_CreateAssetForEndpoint_OutputArguments,171,Variable
CreateAssetForEndpointMethodType_OutputArguments,172,Variable