< PreviousField Device Integration (FDI) –Part 6-100: Technology Mapping – .NET RELEASED FCG TS62769-6-100 , Ed. 1.2.0, 27 Jun 2019 Page 19 of 23 Access permissions 4.9.2.1 General Within this section technology specific permissions and restrictions are specified in addition to the one specified in FCG TS62769-2. The permissions and restrictions shall be enforced by the FDI Client. The implementation rules define how this shall be implemented. 4.9.2.2 Technology specific UIP permissions and restrictions The general UIP permissions and restrictions are specified in FCG TS62769-2. The permissions and restrictions specified in this section are specific to .NET-based UIPs. a) Launching of an Active-X component is not allowed. b) A UIP shall not write to the operating system registry. Read access to registry is allowed. The FDI Client shall restrict the UIP permissions according to this list. 4.9.2.3 Implementation rules To restrict permissions of an UIP an FDI Client shall execute a UIP in a separate process (not the FDI Client process) that should run with a separate user account (4.5.2 describes how an FDI Client can manage hosting a UIP in a different process). By restricting the permissions of the separate user account the FDI Client also restricts the permissions of the UIP running under the separate user account. How the separate user account is created and configured is host specific. That includes - whether it is a local or a domain account - whether it is used only for UIP hosting or also for other purposes - whether it is reused for all UIP processes of the same FDI Client instance or several FDI Clients - how restrictions are implemented (e.g. limited access to the file system by mechanism of the operating system, blocking network access by a firewall) Whether the FDI Client executes each UIP instance in its own process or executes several or all UIP instances in the same process is FDI Client specific. As UIPs run in a separate process UIP developers need to be aware that opening a modal dialog with operating system mechanisms will only provide modality within the Windows of that process. To avoid this behavior UIP developer can start the UIP modal or start a new modal UIP. Code identity concept The ability to uniquely identify UIP executables contributes to the system security. As earlier described in 4.3 UIP executables shall be signed with strong names. Strong names signed .NET Assemblies enable: – Unique identification of UIP executables. – Code integrity verification. NOTE The benefit of strong named UIP executable is lost if this Assembly dynamically loads other library Assemblies that are not signed with strong names. Field Device Integration (FDI) –Part 6-100: Technology Mapping – .NET RELEASED FCG TS62769-6-100, Ed. 1.2.0, 27 Jun 2019 Page 20 of 23 5 Interface definition The following tables specify the mapping between the abstract services specified in FCG TS62769-2 and the corresponding .NET implementation which is found in the FDI Type Library file “fdi.nupkg” and a related help file “FDI Interfaces and Data Types.chm”. NOTE The Files “fdi.nupkg” and “FDI Interfaces and Data Types.chm” can be obtained from the fieldbus organizations. (See also http://www.fdi-cooperation.com). Table 1 specifies the mapping of the Base Property Services. Table 1 – Base Property Services Abstract Service .NET Implementation GetDeviceAccessInterfaceVersion IDeviceAccess.Version GetOnlineAccessAvailability IDeviceAccess.OnlineAccessAvailable Table 2 specifies the mapping of the Device Model Services. Table 2 – Device Model Services Abstract Service .NET Implementation Browse IDeviceModel.BeginBrowse IDeviceModel.CancelBrowse IDeviceModel.EndBrowse Read IDeviceModel.BeginRead IDeviceModel.CancelRead IDeviceModel.EndRead Write IDeviceModel.BeginWrite IDeviceModel.CancelWrite IDeviceModel.EndWrite CreateSubscription IDeviceModel.BeginCreateSubscription IDeviceModel.EndCreateSubscription Subscribe IDeviceModel.BeginSubscribe IDeviceModel.EndSubscribe Unsubscribe IDeviceModel.BeginUnsubscribe IDeviceModel.EndUnsubscribe DeleteSubscription IDeviceModel.BeginDeleteSubscription IDeviceModel.EndDeleteSubscription DataChangeCallback DataChangeCallback Table 3 specifies the mapping of the Access Control Services. Table 3 – Access Control Services Abstract Service .NET Implementation InitLock IAccessControl.BeginInitLock IAccessControl.EndInitLock ExitLock IAccessControl.BeginExitLock IAccessControl.EndExitLock Table 4 specifies the mapping of the Direct Access Services. Field Device Integration (FDI) –Part 6-100: Technology Mapping – .NET RELEASED FCG TS62769-6-100 , Ed. 1.2.0, 27 Jun 2019 Page 21 of 23 Table 4 – Direct Access Services Abstract Service .NET Implementation InitDirectAccess IDirectAccess.BeginInitDirectAccess IDirectAccess.EndInitDirectAccess ExitDirectAccess IDirectAccess.BeginExitDirectAccess IDirectAccess.EndExitDirectAccess Transfer IDirectAccess.BeginTransfer IDirectAccess.EndTransfer Table 5 specifies the mapping of the Hosting Services. Table 5 – Hosting Services Abstract Service .NET Implementation GetClientTechnologyVersion Fdi.Frame.IFrame.Version OpenUserInterface a) Fdi.Frame.Ui.IFrameUi.BeginOpenDtmUiModal Fdi.Frame.Ui.IFrameUi.EndOpenDtmUiModal Fdi.Frame.Ui.IFrameUi.BeginOpenDtmUi Fdi.Frame.Ui.IFrameUi.EndOpenDtmUi CloseUserInterface a) Fdi.Dtm.Ui.CloseMeRequestHandler b) Fdi.Frame.Ui.IFrameUi.BeginCloseDtmUi Fdi.Frame.Ui.IFrameUi.EndCloseDtmUi LogAuditTrailMessage Fdi.Frame.IAuditTrail.Notify SaveUserSettings Fdi.Frame.IUserSettings.SaveUserSettings LoadUserSettings Fdi.Frame.IUserSettings.LoadUserSettings Trace Fdi.Frame.ITrace.TraceData Fdi.Frame.ITrace.TraceEvent ShowMessageBox Fdi.Frame.Ui.IFrameUi.ShowMessageBox ShowProgressBar Fdi.Frame.Ui.IFrameUi.ShowProgress CancelCallback Fdi.Frame.Ui.CancelEventHandler UpdateShowProgressBar Fdi.Frame.Ui.IProgressUi.UpdateProgress EndShowProgressBar Fdi.Frame.Ui.IProgressUi.EndProgress DefaultResult System.Windows.MessageBoxResult ButtonSet System.Windows.MessageBoxButton AcknStyle System.Windows.MessageBoxImage ExportFile CancelExportFile ImportFile CancelImportFile OpenDefaultApplication GetEnvironmentProperties a) Functions OpenUserInterface, CloseUserInterface shall only be started using the operation pattern described in 4.8.2.3. b) To be used by the UIP to close itself. Table 6 specifies the mapping of the UIP Services. Field Device Integration (FDI) –Part 6-100: Technology Mapping – .NET RELEASED FCG TS62769-6-100, Ed. 1.2.0, 27 Jun 2019 Page 22 of 23 Table 6 – UIP Services Abstract Service .NET Implementation Activate Fdi.Dtm.Ui.IDtmUiFunction.Init Deactivate Fdi.Dtm.Ui.IDtmUiFunction.BeginClose a) Fdi.Dtm.Ui.IDtmUiFunction.EndClose a) SetSystemLabel Fdi.Dtm.Ui.IDtmUiFunction.SystemGuiLabel SetTraceLevel Fdi.Dtm.Ui.IDtmUiFunction.TraceLevel TraceLevel Fdi.Frame.TraceEventType InvokeStandardAction Fdi.Dtm.Ui.IStandardActions.InvokeStandardAction InvokeApplicationSpecificAction Fdi.Dtm.Ui. IApplicationSpecificActions.InvokeApplicationSpecificAction GetStandardActionItems Fdi.Dtm.Ui.IStandardActions.ActionItemSet GetApplicationSpecificActionItems Fdi.Dtm.Ui. IApplicationSpecificActions.ApplicationSpecificActionItemSet StandardActionItemsChangeCallback Fdi.Dtm.Ui.IStandardActions.StandardActionItemSetChanged ApplicationSpecificActionItemsChangeCallback Fdi.Dtm.Ui. IApplicationSpecificActions.ApplicationSpecificActionItemSetChanged a) The Deactivate service specified response deactivateCancelled maps to the exception FdiCannotCloseUiException to be thrown by the UIP if the UIP has problems with the deactivation. Table 7 specifies the mapping of the base data types. Table 7 – Base Data Types Base data type .NET Implementation Boolean Fdi.DataTypes.BooleanValue enum DataType.Boolean String Fdi.DataTypes.StringValue enum DataType.String ByteString Fdi.DataTypes.BinaryValue enum DataType.Binary UtcTime Fdi.DataTypes.DateTimeValue enum DataType.DateTime Int8 Fdi.DataTypes.SByteValue enum DataType.SByte Int16 Fdi.DataTypes.ShortValue enum DataType.Short Int32 Fdi.DataTypes.IntValue enum DataType.Int Int64 Fdi.DataTypes.LongValue enum DataType.Long Byte Fdi.DataTypes.ByteValue enum DataType.Byte UInt16 Fdi.DataTypes.UShortValue enum DataType.UShort UInt32 Fdi.DataTypes.UIntValue enum DataType.UInt UInt64 Fdi.DataTypes.ULongValue enum DataType.ULong Float Fdi.DataTypes.FloatValue enum DataType.Float Double Fdi.DataTypes.DoubleValue enum DataType.Double Duration Fdi.DataTypes.TimeSpanValue enum DataType.TimeSpan Table 8 specifies the mapping of the special data types. Table 8 – Special Types Special Data type .NET Implementation Attribute Ids Fdi.DeviceAccess.AttributeType Variant Fdi.DeviceAccess.DataValue NodeSpecifier Fdi.DeviceAccess.NodeSpecifier Data Value Fdi.DeviceAccess.ReadResult Localized Text Fdi. DataTypes.LocalizedTextValue enum DataType.LocalizedText Range Fdi. DataTypes.RangeValue enum DataType.Range EU Information Fdi. DataTypes.EUInfoValue enum DataType.EngineeringUnit Enum Value Fdi. DataTypes.EnumValue enum DataType.Enumerator InnerErrorInfo Fdi.DeviceAccess.InnerErrorInfo NumericRange Fdi.DeviceAccess.ArrayIndexRange Field Device Integration (FDI) –Part 6-100: Technology Mapping – .NET RELEASED FCG TS62769-6-100 , Ed. 1.2.0, 27 Jun 2019 Page 23 of 23 Data arrays can be conveyed using class Fdi.DataTypes.ArrayValue . Detailed interface definition and interface documentation are available in: – FDI Type Library in fdi.nupkg (.NET Assembly) – FDI Interfaces and Data Types.CHM (Help File) Next >