wordPI AFSDK分类汇总1.概述AF SDK是一个.NET集成开发包,它用于为用户提供对OSIsoft数据的结构化访问AF SDK提供了一种与OSIsoft数据库实现数据交互的方法,它可以与PI-SDK以与PI-API配合使用AF SDK设计目的是为VB,C#以与Managed C++提供方便的访问路径AF SDK可呈现出对象层次清楚的模型AF SDK包括11个namespace,如图1所示:图1每个namespace的总体功能说明如下:NamespaceDescriptionOSIsoft.AFPISystems集位于AF SDK层级中的第一层,大多数访问AF对象的路径都以它为起始引用此类型对象的多数实例都可以在应用程序中创建,但是在同一个应用中,同一个用户所有的实例都引用一样的PISystem对象,也就意味着:在同一个应用中,对于某一个属于此PISystem类对象的所有操作都会被所有该PISystem类型对象的实例所见而其他应用如此直到这些操作被保存时才能看到在VB或C#中,首层对象可以利用对象名前加OSIsoft.AF的方法来引用,如:OSIsoft.AF.PISystem。
OSIsoft.AF.Analysis该namespace提供了一系列用于创建、安排与执行分析操作的类OSIsoft.AF.Asset该namespace提供了一系列可用于代表某机构〔或团体〕中各资产的类它允许创建各资产与其属性的层级关系另外,它提供了用于处理常见请求〔如远程数据访问、计量单位换算与定义和执行资产定义等〕的功能特性,每个PISystem都由任意多个相互独立的数据库组成OSIsoft.AF.Collective该namespace提供了一系列用于管理AF 高可用〔HF〕服务器集的类OSIsoft.AF.Diagnostics该namespace提供了一系列具有诊断功能的类OSIsoft.AF.EventFrame该namespace提供了一系列类,这些类可用于创建具有起效时间和完毕时间的对象OSIsoft.AF.Modeling该namespace提供了一系列用于创建工厂资产或〔工业〕过程模型的类OSIsoft.AF.Notification该namespace提供了一系列用于创建告警的类,告警作用是通知用户事件的发生OSIsoft.AF.Search该namespace提供了一系列可用于创建、存储与执行搜索任务的类。
OSIsoft.AF.Time该namespace提供了一系列与时间功能相关的类OSIsoft.AF.UnitsOfMeasure该namespace提供了一系列类,这些类可用于定义计量单位系统,此计量单位系统可以描述属性或数值的单位并完成从一种单位到另一种单位的转换在PISystem中,一个计量单位数据库被所有的数据库所共享每个namespace中不仅仅包含多个类,还包括接口、结构体以与事件等,每个类、接口等又有各自的成员〔members〕,如类的members具体有构造函数constructors、方法methods、符号operators、属性properties与事件events具体如图2 所示〔注:并不是每个namespace都具有图中所有的容〕下文将按照namespace àClassàclass membersàdelegatesàdelegates membersà structuresàstructures membersàinterfacesàinterfaces membersàenumerationsàenumerations members的顺序进展介绍2.各OSIsoft.AF Namespace分析。
2.1 OSIsoft.AF Namespace2.1.1 OSIsoft.AF Namespace中的类Class2.1.1.1各类综述ClassDescriptionAFActiveDirectoryProperties该类的对象用于获取与设置活动路径配置属性〔Active Directory configuration properties〕,AF Server需根据此属性值获取contact信息AFCategoriesAF AFCategory 集AF数据库〔Database〕对象负责维护在该数据库上定义的所有AFCategoty集AFCategoryAFCategory代表一个用户自定义的数值,它用于将AF SDK的对象进展分类当形成报告或做查询时,AFCategory将对象按照类型进展分组AFChangedEventArgs为被修改的事件提供数据AFCheckOutInfo该类的对象用于表示当前对象的签出状态信息AFCollectionAF SDK中所有集合的基类AFCollection<(Of <(T>)>)为AF SDK中的所有集合提供抽象基类,所有集合通过唯一标识进展索引。
AFCollectionList<(Of <(T>)>)一个不支持按名字查找功能的对象列表此集合可以是一个由用户自定义的、具有不同类型对象的对象集合AFConnectionInfo该类型对象用于为AF Server提供连接配置信息与状态信息AFContact该类型对象用于提供由AF维护的contact信息AFDatabaseAFDatabase类对象代表AF Server中一个单独的数据库AFDatabasesAFDatabase类对象的集合,它是由位于PISystem上元素的SDK所维护AFEventArgsEventArgs类的基类,可以与AFEventItem类关联AFGlobalRestorer该类用于使用IPIPersist接口恢复的持久化的对象AFLibraries该类是AFLibrary对象的集合,用于提供PISystem可载入的应用与围的具体信息AFLibrary该类是可导入到PISystem中的、由某些应用和区域信息构成的集合AFNamedCollection<(Of <(T>)>)该类用于提供所有经过特殊筛选后的集合的抽象基类,AFNamedCollectionList<(Of <(T>)>)该类是一个对象列表,支持按名字查询。
该集合可由用户自定义,其组成对象可属于不同的类对象AFObject该类是所有AF SDK中对象的基类AFPlugIn该类包含了一个AF插件的相关信息,此信息被安装和定义在AF服务器上AFPlugIns该集合包含了AFPlugin类对象的列表,这些对象安装在服务器的工作站上AFProgressEventArgs该类用于为正在进展中的事件提供数据AFSDKExtension该类是一个静态类,用于为AF SDK的类提供扩展方法AFSecurity该对象用于为相关对象提供安全方面的访问和控制AFSecurityRightsExtension该类是一个静态类,用于为AFSecurityRights枚举类型提供一些扩展方法NumericStringparer<(Of <(T>)>)代表了一个数值字符比拟操作,对具有数值的字符运用特别的大小写敏感的比拟规如此PISystem该类代表PI 分析框架的单个数据存档PISystemsPISystem类型对象的全局集合,由AF SDK维护,代表了工作站中对于客户端应用程序的可用系统Universalparer<(Of <(T>)>)该类是一个通用的比拟器,用于根据任意属性的组合来比拟两个对象是否相等。
2.1.1.2各类的成员具体分析〔即class的members〕〔1〕AFActiveDirectoryProperties Class:该类具体包括以下成员:其中,Constructors〔构造函数〕说明如下: NameDescriptionAFActiveDirectoryProperties用于创建该类的实例Methods〔方法〕说明如下:NameDescriptionEquals判断指定的对象是否与当前对象相等GetHashCode作为某特定类型的hash函数GetType获取当前实例的类型SetAccount设置账户,该账户用于访问服务器的活动目录ToString返回表示当前对象的字符串Properties〔属性〕说明如下:NameDescriptionAccountName该属性表示账户名,该账户用于访问服务器的活动目录对活动目录息的访问受控于安全权限,该属性指明了服务器访问活动目录时所用的账户使用SetAccount(String, SecureString)方法可以为该属性赋值,如果该属性未赋值,如此默认使用当前服务器所使用之下的账户仅当当前服务器运行之下的账户无法访问活动目录时才需要为该属性赋值。
编程举例:Dim instance As AFActiveDirectoryPropertiesDim value As Stringvalue = instance.AccountNameinstance.AccountName = valueDomainControllerDomain用于进入活动目录该属性是活动目录领域的DNS全名,用于获得目录连接的搜索该属性应设置为适合的活动目录区域的DNS名,例如,使用osisoft.int作为OSI的domain、如果该属性为空,如此服务器将会使用从DHCP中获取的domain名编程举例:Dim instance As AFActiveDirectoryPropertiesDim value As Stringvalue = instance.DomainControllerinstance.DomainController = valueImpersonateUser指明当访问活动目录时,客户端或服务器的安全权限是否需要起效当该值为true时,访问活动目录启用客户端的权限识别,当该值为false,如此访问活动目录时启用服务器权限识别对活动目录处信息的访问需要有安全权限,因此,当需要访问AD〔活动目录〕时,有两个选择,一是使用用户账号〔此时该属性值为true〕,另一个是使用服务器账户〔此时该属性值为false〕。
编程举例:Dim instance As AFActiveDirectoryPropertiesDim value As Booleanvalue = instance.ImpersonateUserinstance.ImpersonateUser = valueReturnAllPersons指明是否所有类型的persons都需要从活动目录中返回当该值为true时,所有的活动目录的persons都被返回,persons是在AD(活动目录)中是一个对象AD中的对象是按照以下顺序继承而来的:Top->Persons->OrganizationalPerson->Contact和Top->Persons->OrganizationalPerson->User.。