监听系统中特定路径上的变化事件
config对象Source:表示监听路径的规则,监听所有路径结尾是/base的事件
EventType:监听的事件类型是 "changed"
TryInit尝试读取外部传入的配置,覆盖默认的config
通过Subscribe方法,注册一个事件处理函数handler
订阅事件后,返回一个token,用来后续取消订阅
handler有事件发生时,这个方法被调用 用日志工具记录下来
UnSub调用UnSub(),会用之前保存的token取消事件订阅
模拟测量多个通道的数据变化,CFET2里的一个模块内部有 FakeAICard 对象,负责实际模拟采集
TryInit创建一个 FakeAICard实例,默认通道数是2
ChannelCountConfigSet(int channelCount) :设置通道个数
ChannelCountConfigGet() :获取当前通道数
公开状态方法,允许外部查询:
ChannelCount() :返回通道数
AIState() :返回设备当前状态
LatestData() :返回最近采集到的数据数组
TryArm():启动采集
TryStop():停止采集
循环生成随机数据,保存到 LatestData 数组,每 100 毫秒更新一次数据
定义了一个模块,它包含了一个矩形Ract,可以设置这个矩形的位置和大小,还能查询它的状态,相当于设置查看物品参数
Ract属性:名字(Name)、宽(W)、高(H)、X 和 Y 坐标
ToString()方法:打印矩形信息
把数据赋值给Ract,并打印当前矩形信息。
Replace(float x, float y, float h, float w) :更新矩形的坐标和大小
Scale(float xFactor, float yFactor) :用来矩形的宽高比例。
GetDefaultStatus() :返回当前对象的路径加字符串 "/defaultStatus"
Start() 方法被调用时,会打印当前矩形信息
监控电脑的内存使用情况
[Cfet2Status("ram")] public float GetRam()
这是一个状态方法,用来读取电脑可用内存,通过PerformanceCounter 类获取系统实时内存数据
[Cfet2Status("defaultStatus")] public string GetDefaultStatus()
返回Thing的路径加上字符串 "/defaultStatus"作为默认状态。
请求和获取另一台主机上的资源
Status(string requestUri)设置一个接口,传入想要请求数据的路径requestUri
调用内部的 MyHub.TryGetResourceSampleWithUri(requestUri) 方法获取对应URI的数据。
封装数据并返回
也可以通过类似方法把数据发送给远程URI
作为模板,展示如何在CFET2中定义配置项、状态接口和方法,以及事件的发布
Base是一个可配置的整数,当 Base 被设置了新值,会发布一个事件,通知这个配置项的值改变了
GetDefaultStatus() :返回当前对象路径加一个字符串,作为默认状态
Value(int input) :返回输入值乘以 Base 的结果
OtherBase(string otherBaseUri) :根据传入的资源路径,获取路径的 Base 值,然后乘以本地的 Base
[Cfet2Method] Say(string msg)打印出传进来的消息,当消息是gg,显示异常
本文章使用limfx的vscode插件快速发布