2.3 插件开发基准: 接口的定义 - DavidSciMeow/DGLab_Coyote_CSharp_Library GitHub Wiki
1. 接口定义 (源文件定义)
[InheritedExport]
public interface IPlugin
{
//会被显示在插件列表的名称
public string Name { get; }
//会显示在插件列表的描述(可空)
public string? Description { get; }
//用户可调的设置
public Dictionary<string, string> Settings { get; }
//用户点击启用插件的回调, CoyoteDeviceV3是用户当前连接的郊狼实例
//CancellationToken是任务线程的取消标, 如果有阻塞语句, 建议传递
public void Init(CoyoteDeviceV3 dev, CancellationToken ctl);
//用户点击停止插件的回调, CoyoteDeviceV3是用户当前连接的郊狼实例
//CancellationToken是任务线程的取消标, 如果有阻塞语句, 建议传递
public void Stop(CoyoteDeviceV3 dev, CancellationToken ctl);
}
2. 设置界面的内容
在设置
Settings
里面的Key
会被显示成窗体设置内的提示词
,Value
是窗体内的控件值
. 若有默认在用户点击设置的时候会自动输入值, 当输入窗口被关闭或者失焦的时候, 数据便会更新回Settings
.
Settings
字典:
例如如此设置的会产生如下的窗口:
3. 建议实现方案
While(true)
模式或者阻塞模式
, 建议如下实现:
若需要实现while (true)
{
if (ctl.IsCancellationRequested) return;
//.....
try
{
Task.Delay(500, ctl).Wait(ctl);
}
catch
{
}
}