mirror of
https://github.com/OPCFoundation/UA-.NETStandard.git
synced 2026-10-19 07:02:16 +08:00
4756e7c245
This PR implements the **OPC UA Device Integration (DI, OPC 10000-100)** companion-spec library trio (`Opc.Ua.Di` / `Opc.Ua.Di.Server` / `Opc.Ua.Di.Client`) plus a worked example (`Applications/MinimalPumpServer`) demonstrating the OPC 40223 Pumps companion specification end-to-end with full simulation. It also closes 11 fluent-API gaps in `Opc.Ua.Server.Fluent`, three source-generator bugs, integrates the DI layer into the unified `services.AddOpcUa()` Microsoft.Extensions DI hosting pattern, and adds 250+ new tests. **Worked example — `Applications/MinimalPumpServer/`** - AOT-compatible console host using `Host.CreateApplicationBuilder` + `AddOpcUa()`. - `PumpNodeManager` inherits from `DiNodeManager`; multi-namespace (DI + Machinery + Pumps) via runtime NodeSet2 loading and `ModelLoaderBuilder`. - Demonstrates declarative second-pump creation via `.ConfigureDevicesFor<PumpNodeManager>(...)` and software-package seeding from the same configurator. - Full simulation: pressure, temperatures, power, flow, efficiency, level, cavitation/overheat fault injection, alarm setup, NAMUR-style supervision. **Documentation** - `Docs/Opc.Ua.Di/` — README, DeviceBuilder, Hosting, LockService, SoftwareUpdate, ClientHelpers (6 new developer guides). - `Docs/Opc.Ua.Di/ComplianceMatrix.md` — every DI declaration mapped to In-v1 / Generated / Deferred / Excluded. - `Docs/CompanionSpecLibraries.md` — packaging guide for new companion-spec libraries. - `Docs/FluentApiGaps.md` — historical record of G1–G11. - `Docs/SourceGeneratedNodeManagers.md` updated for richer node managers. - `Docs/plans/StateMachineBuilder.md` — deferred state-machine builder design.
12 KiB
12 KiB
| 1 | Machines | 1001 | Object |
|---|---|---|---|
| 2 | MachineryItemState_StateMachineType | 1002 | ObjectType |
| 3 | IMachineryItemVendorNameplateType | 1003 | ObjectType |
| 4 | MachineryItemIdentificationType | 1004 | ObjectType |
| 5 | MachineryComponentIdentificationType | 1005 | ObjectType |
| 6 | MachineComponentsType | 1006 | ObjectType |
| 7 | IMachineryEquipmentType | 1007 | ObjectType |
| 8 | MachineryOperationModeStateMachineType | 1008 | ObjectType |
| 9 | MachineryOperationCounterType | 1009 | ObjectType |
| 10 | IMachineVendorNameplateType | 1010 | ObjectType |
| 11 | IMachineTagNameplateType | 1011 | ObjectType |
| 12 | MachineIdentificationType | 1012 | ObjectType |
| 13 | MachineryEquipmentFolderType | 1013 | ObjectType |
| 14 | MonitoringType | 1014 | ObjectType |
| 15 | MachineryLifetimeCounterType | 1015 | ObjectType |
| 16 | NotificationsType | 1017 | ObjectType |
| 17 | Server_Namespaces_http___opcfoundation_org_UA_Machinery_ | 5001 | Object |
| 18 | MachineComponentsType_Component | 5002 | Object |
| 19 | MachineComponentsType_Component_Identification | 5003 | Object |
| 20 | MachineryItemState_StateMachineType_OutOfService | 5004 | Object |
| 21 | MachineryItemState_StateMachineType_NotAvailable | 5005 | Object |
| 22 | MachineryItemState_StateMachineType_Executing | 5006 | Object |
| 23 | MachineryItemState_StateMachineType_NotExecuting | 5007 | Object |
| 24 | MachineryItemState_StateMachineType_FromNotAvailableToOutOfService | 5008 | Object |
| 25 | MachineryItemState_StateMachineType_FromNotAvailableToNotExecuting | 5009 | Object |
| 26 | MachineryItemState_StateMachineType_FromNotAvailableToExecuting | 5010 | Object |
| 27 | MachineryItemState_StateMachineType_FromNotAvailableToNotAvailable | 5011 | Object |
| 28 | MachineryItemState_StateMachineType_FromOutOfServiceToNotAvailable | 5012 | Object |
| 29 | MachineryItemState_StateMachineType_FromOutOfServiceToNotExecuting | 5013 | Object |
| 30 | MachineryItemState_StateMachineType_FromOutOfServiceToExecuting | 5014 | Object |
| 31 | MachineryItemState_StateMachineType_FromOutOfServiceToOutOfService | 5015 | Object |
| 32 | MachineryItemState_StateMachineType_FromNotExecutingToNotAvailable | 5016 | Object |
| 33 | MachineryItemState_StateMachineType_FromNotExecutingToOutOfService | 5017 | Object |
| 34 | MachineryItemState_StateMachineType_FromNotExecutingToExecuting | 5018 | Object |
| 35 | MachineryItemState_StateMachineType_FromNotExecutingToNotExecuting | 5019 | Object |
| 36 | MachineryItemState_StateMachineType_FromExecutingToNotAvailable | 5020 | Object |
| 37 | MachineryItemState_StateMachineType_FromExecutingToOutOfService | 5021 | Object |
| 38 | MachineryItemState_StateMachineType_FromExecutingToNotExecuting | 5022 | Object |
| 39 | MachineryItemState_StateMachineType_FromExecutingToExecuting | 5023 | Object |
| 40 | MachineryOperationModeStateMachineType_None | 5024 | Object |
| 41 | MachineryOperationModeStateMachineType_Maintenance | 5025 | Object |
| 42 | MachineryOperationModeStateMachineType_Processing | 5026 | Object |
| 43 | MachineryOperationModeStateMachineType_Setup | 5027 | Object |
| 44 | MachineryOperationModeStateMachineType_FromNoneToMaintenance | 5028 | Object |
| 45 | MachineryOperationModeStateMachineType_FromNoneToSetup | 5029 | Object |
| 46 | MachineryOperationModeStateMachineType_FromNoneToProcessing | 5030 | Object |
| 47 | MachineryOperationModeStateMachineType_FromNoneToNone | 5031 | Object |
| 48 | MachineryOperationModeStateMachineType_FromMaintenanceToNone | 5032 | Object |
| 49 | MachineryOperationModeStateMachineType_FromMaintenanceToSetup | 5033 | Object |
| 50 | MachineryOperationModeStateMachineType_FromMaintenanceToProcessing | 5034 | Object |
| 51 | MachineryOperationModeStateMachineType_FromMaintenanceToMaintenance | 5035 | Object |
| 52 | MachineryOperationModeStateMachineType_FromSetupToNone | 5036 | Object |
| 53 | MachineryOperationModeStateMachineType_FromSetupToMaintenance | 5037 | Object |
| 54 | MachineryOperationModeStateMachineType_FromSetupToProcessing | 5038 | Object |
| 55 | MachineryOperationModeStateMachineType_FromSetupToSetup | 5039 | Object |
| 56 | MachineryOperationModeStateMachineType_FromProcessingToNone | 5040 | Object |
| 57 | MachineryOperationModeStateMachineType_FromProcessingToMaintenance | 5041 | Object |
| 58 | MachineryOperationModeStateMachineType_FromProcessingToSetup | 5042 | Object |
| 59 | MachineryOperationModeStateMachineType_FromProcessingToProcessing | 5043 | Object |
| 60 | MonitoringType_Status | 5044 | Object |
| 61 | MonitoringType_Health | 5045 | Object |
| 62 | MonitoringType_Process | 5046 | Object |
| 63 | MonitoringType_Consumption | 5047 | Object |
| 64 | MonitoringType_Status_MachineryItemState | 5048 | Object |
| 65 | MonitoringType_Status_MachineryOperationMode | 5049 | Object |
| 66 | MonitoringType_Status_Stacklight | 5050 | Object |
| 67 | MonitoringType_Health_DeviceHealthAlarms | 5051 | Object |
| 68 | MachineryEquipmentFolderType_MachineryEquipment | 5052 | Object |
| 69 | MachineryItemIdentificationType_ProductInstanceUri | 6001 | Variable |
| 70 | MachineryItemIdentificationType_Manufacturer | 6002 | Variable |
| 71 | MachineryItemIdentificationType_SerialNumber | 6003 | Variable |
| 72 | MachineryItemIdentificationType_YearOfConstruction | 6004 | Variable |
| 73 | MachineryItemIdentificationType_MonthOfConstruction | 6005 | Variable |
| 74 | MachineryItemIdentificationType_InitialOperationDate | 6006 | Variable |
| 75 | MachineryItemIdentificationType_ManufacturerUri | 6007 | Variable |
| 76 | MachineryItemIdentificationType_Model | 6008 | Variable |
| 77 | MachineryItemIdentificationType_ProductCode | 6009 | Variable |
| 78 | MachineryItemIdentificationType_HardwareRevision | 6010 | Variable |
| 79 | MachineryItemIdentificationType_SoftwareRevision | 6011 | Variable |
| 80 | MachineryItemIdentificationType_DeviceClass | 6012 | Variable |
| 81 | MachineryItemIdentificationType_AssetId | 6013 | Variable |
| 82 | MachineryItemIdentificationType_ComponentName | 6014 | Variable |
| 83 | MachineIdentificationType_ProductInstanceUri | 6015 | Variable |
| 84 | MachineryComponentIdentificationType_DefaultInstanceBrowseName | 6016 | Variable |
| 85 | MachineryComponentIdentificationType_DeviceRevision | 6017 | Variable |
| 86 | MachineComponentsType_DefaultInstanceBrowseName | 6018 | Variable |
| 87 | MachineComponentsType_Component_Identification_Manufacturer | 6019 | Variable |
| 88 | MachineComponentsType_Component_Identification_SerialNumber | 6020 | Variable |
| 89 | MachineryItemState_StateMachineType_DefaultInstanceBrowseName | 6021 | Variable |
| 90 | IMachineryItemVendorNameplateType_Manufacturer | 6022 | Variable |
| 91 | IMachineVendorNameplateType_ProductInstanceUri | 6023 | Variable |
| 92 | IMachineryItemVendorNameplateType_SerialNumber | 6024 | Variable |
| 93 | IMachineryItemVendorNameplateType_YearOfConstruction | 6025 | Variable |
| 94 | IMachineryItemVendorNameplateType_MonthOfConstruction | 6026 | Variable |
| 95 | IMachineryItemVendorNameplateType_InitialOperationDate | 6027 | Variable |
| 96 | IMachineTagNameplateType_Location | 6028 | Variable |
| 97 | MachineIdentificationType_Location | 6029 | Variable |
| 98 | MachineIdentificationType_DefaultInstanceBrowseName | 6030 | Variable |
| 99 | Server_Namespaces_http___opcfoundation_org_UA_Machinery__IsNamespaceSubset | 6031 | Variable |
| 100 | Server_Namespaces_http___opcfoundation_org_UA_Machinery__NamespacePublicationDate | 6032 | Variable |
| 101 | Server_Namespaces_http___opcfoundation_org_UA_Machinery__NamespaceUri | 6033 | Variable |
| 102 | Server_Namespaces_http___opcfoundation_org_UA_Machinery__NamespaceVersion | 6034 | Variable |
| 103 | Server_Namespaces_http___opcfoundation_org_UA_Machinery__StaticNodeIdTypes | 6035 | Variable |
| 104 | Server_Namespaces_http___opcfoundation_org_UA_Machinery__StaticNumericNodeIdRange | 6036 | Variable |
| 105 | Server_Namespaces_http___opcfoundation_org_UA_Machinery__StaticStringNodeIdPattern | 6037 | Variable |
| 106 | MachineryItemState_StateMachineType_OutOfService_StateNumber | 6038 | Variable |
| 107 | MachineryItemState_StateMachineType_NotAvailable_StateNumber | 6039 | Variable |
| 108 | MachineryItemState_StateMachineType_Executing_StateNumber | 6040 | Variable |
| 109 | MachineryItemState_StateMachineType_NotExecuting_StateNumber | 6041 | Variable |
| 110 | MachineryItemState_StateMachineType_FromNotAvailableToOutOfService_TransitionNumber | 6042 | Variable |
| 111 | MachineryItemState_StateMachineType_FromNotAvailableToNotExecuting_TransitionNumber | 6043 | Variable |
| 112 | MachineryItemState_StateMachineType_FromNotAvailableToExecuting_TransitionNumber | 6044 | Variable |
| 113 | MachineryItemState_StateMachineType_FromNotAvailableToNotAvailable_TransitionNumber | 6045 | Variable |
| 114 | MachineryItemState_StateMachineType_FromOutOfServiceToNotAvailable_TransitionNumber | 6046 | Variable |
| 115 | MachineryItemState_StateMachineType_FromOutOfServiceToNotExecuting_TransitionNumber | 6047 | Variable |
| 116 | MachineryItemState_StateMachineType_FromOutOfServiceToExecuting_TransitionNumber | 6048 | Variable |
| 117 | MachineryItemState_StateMachineType_FromOutOfServiceToOutOfService_TransitionNumber | 6049 | Variable |
| 118 | MachineryItemState_StateMachineType_FromNotExecutingToNotAvailable_TransitionNumber | 6050 | Variable |
| 119 | MachineryItemState_StateMachineType_FromNotExecutingToOutOfService_TransitionNumber | 6051 | Variable |
| 120 | MachineryItemState_StateMachineType_FromNotExecutingToExecuting_TransitionNumber | 6052 | Variable |
| 121 | MachineryItemState_StateMachineType_FromNotExecutingToNotExecuting_TransitionNumber | 6053 | Variable |
| 122 | MachineryItemState_StateMachineType_FromExecutingToNotAvailable_TransitionNumber | 6054 | Variable |
| 123 | MachineryItemState_StateMachineType_FromExecutingToOutOfService_TransitionNumber | 6055 | Variable |
| 124 | MachineryItemState_StateMachineType_FromExecutingToNotExecuting_TransitionNumber | 6056 | Variable |
| 125 | MachineryItemState_StateMachineType_FromExecutingToExecuting_TransitionNumber | 6057 | Variable |
| 126 | MachineryOperationModeStateMachineType_DefaultInstanceBrowseName | 6058 | Variable |
| 127 | MachineryOperationModeStateMachineType_None_StateNumber | 6059 | Variable |
| 128 | MachineryOperationModeStateMachineType_Maintenance_StateNumber | 6060 | Variable |
| 129 | MachineryOperationModeStateMachineType_Processing_StateNumber | 6061 | Variable |
| 130 | MachineryOperationModeStateMachineType_Setup_StateNumber | 6062 | Variable |
| 131 | MachineryOperationModeStateMachineType_FromNoneToMaintenance_TransitionNumber | 6063 | Variable |
| 132 | MachineryOperationModeStateMachineType_FromNoneToSetup_TransitionNumber | 6064 | Variable |
| 133 | MachineryOperationModeStateMachineType_FromNoneToProcessing_TransitionNumber | 6065 | Variable |
| 134 | MachineryOperationModeStateMachineType_FromNoneToNone_TransitionNumber | 6066 | Variable |
| 135 | MachineryOperationModeStateMachineType_FromMaintenanceToNone_TransitionNumber | 6067 | Variable |
| 136 | MachineryOperationModeStateMachineType_FromMaintenanceToSetup_TransitionNumber | 6068 | Variable |
| 137 | MachineryOperationModeStateMachineType_FromMaintenanceToProcessing_TransitionNumber | 6069 | Variable |
| 138 | MachineryOperationModeStateMachineType_FromMaintenanceToMaintenance_TransitionNumber | 6070 | Variable |
| 139 | MachineryOperationModeStateMachineType_FromSetupToNone_TransitionNumber | 6071 | Variable |
| 140 | MachineryOperationModeStateMachineType_FromSetupToMaintenance_TransitionNumber | 6072 | Variable |
| 141 | MachineryOperationModeStateMachineType_FromSetupToProcessing_TransitionNumber | 6073 | Variable |
| 142 | MachineryOperationModeStateMachineType_FromSetupToSetup_TransitionNumber | 6074 | Variable |
| 143 | MachineryOperationModeStateMachineType_FromProcessingToNone_TransitionNumber | 6075 | Variable |
| 144 | MachineryOperationModeStateMachineType_FromProcessingToMaintenance_TransitionNumber | 6076 | Variable |
| 145 | MachineryOperationModeStateMachineType_FromProcessingToSetup_TransitionNumber | 6077 | Variable |
| 146 | MachineryOperationModeStateMachineType_FromProcessingToProcessing_TransitionNumber | 6078 | Variable |
| 147 | MachineryOperationCounterType_PowerOnDuration | 6079 | Variable |
| 148 | MachineryOperationCounterType_OperationDuration | 6080 | Variable |
| 149 | MachineryOperationCounterType_OperationCycleCounter | 6081 | Variable |
| 150 | MachineryOperationCounterType_DefaultInstanceBrowseName | 6082 | Variable |
| 151 | MachineryLifetimeCounterType_LifetimeVariable | 6083 | Variable |
| 152 | MachineryLifetimeCounterType_LifetimeVariable_LimitValue | 6084 | Variable |
| 153 | MachineryLifetimeCounterType_LifetimeVariable_StartValue | 6085 | Variable |
| 154 | MachineryLifetimeCounterType_LifetimeVariable_EngineeringUnits | 6086 | Variable |
| 155 | MachineryLifetimeCounterType_DefaultInstanceBrowseName | 6087 | Variable |
| 156 | MachineryItemIdentificationType_DefaultInstanceBrowseName | 6088 | Variable |
| 157 | MonitoringType_DefaultInstanceBrowseName | 6089 | Variable |
| 158 | MonitoringType_Status_MachineryItemState_CurrentState | 6090 | Variable |
| 159 | MonitoringType_Status_MachineryItemState_CurrentState_Id | 6091 | Variable |
| 160 | MonitoringType_Status_MachineryOperationMode_CurrentState | 6092 | Variable |
| 161 | MonitoringType_Status_MachineryOperationMode_CurrentState_Id | 6093 | Variable |
| 162 | MonitoringType_Status_Stacklight_StacklightMode | 6094 | Variable |
| 163 | MonitoringType_Health_DeviceHealth | 6095 | Variable |
| 164 | MachineryEquipmentFolderType_MachineryEquipment_AssetId | 6096 | Variable |
| 165 | MachineryEquipmentFolderType_MachineryEquipment_ComponentName | 6097 | Variable |
| 166 | MachineryEquipmentFolderType_MachineryEquipment_Description | 6098 | Variable |
| 167 | MachineryEquipmentFolderType_MachineryEquipment_DeviceClass | 6099 | Variable |
| 168 | MachineryEquipmentFolderType_MachineryEquipment_Location | 6100 | Variable |
| 169 | MachineryEquipmentFolderType_MachineryEquipment_MachineryEquipmentTypeId | 6101 | Variable |
| 170 | MachineryEquipmentFolderType_MachineryEquipment_ManufacturerUri | 6102 | Variable |
| 171 | MachineryEquipmentFolderType_MachineryEquipment_Model | 6103 | Variable |
| 172 | MachineryEquipmentFolderType_MachineryEquipment_SerialNumber | 6104 | Variable |
| 173 | MachineryEquipmentFolderType_DefaultInstanceBrowseName | 6105 | Variable |
| 174 | NotificationsType_DefaultInstanceBrowseName | 6106 | Variable |
| 175 | IMachineryEquipmentType_Description | 6107 | Variable |
| 176 | IMachineryEquipmentType_MachineryEquipmentTypeId | 6108 | Variable |
| 177 | IMachineryEquipmentType_EquipmentLife | 6109 | Variable |
| 178 | IMachineryEquipmentType_EquipmentLife_LimitValue | 6110 | Variable |
| 179 | IMachineryEquipmentType_EquipmentLife_StartValue | 6111 | Variable |
| 180 | IMachineryEquipmentType_EquipmentLife_EngineeringUnits | 6112 | Variable |