• 平台功能
  • 功能介绍
    • 配置文件
    • 系统函数
    • 组态图形
    • 页面集成
    • 功能扩展
    • SSL TLS
  • 本地部署
    • 数据库备份与还原
  • 协议处理
    • WebSocket
    • 国标协议
    • JT808协议
    • MQTT协议
    • OPC网关
    • 自定义协议(my)
    • 自定义协议(di)
    • 平台主动发给终端
    • 串口功能
    • 客户端功能
  • 完整案例演示
  • 系统函数源代码
  • 简洁的Ajax代码
  • 创建dll
  • 接口
  • 配置
    • 1. 通过插件目录加载
    文档主题
    https://twuyun.com/help/doc/0/index?id=5f6aa6baa5a79a106c6c2b75
    功能
    模板管理图形管理脚本测试文档管理系统日志
    0

    功能扩展

    平台可以通过编写dll实现自定义功能的扩展

    创建dll

    直接通过vs创建一个新的dll即可。

    接口

    直接拷贝下面的代码:

    1. namespace AI
    2. {
    3. /// <summary>
    4. /// 用于标识那个函数可以被平台调用
    5. /// </summary>
    6. public class Export : Attribute
    7. {
    8. }
    9. /// <summary>
    10. /// 用于标识哪个类可以被平台调用
    11. /// </summary>
    12. public interface IFunction
    13. {
    14. /// <summary>
    15. /// 可选,初始化由平台传入两个目录路径
    16. /// </summary>
    17. /// <param name="pluginpath">插件路径</param>
    18. /// <param name="exepath">服务主目录路径</param>
    19. void Load(string pluginpath, string exepath);
    20. /// <summary>
    21. /// 可选,平台每30秒自动调用一次,一般用于定时检测
    22. /// </summary>
    23. void Check();
    24. }
    25. public class Test : IFunction
    26. {
    27. public void Check()
    28. {
    29. //throw new NotImplementedException();
    30. }
    31. string pluginpath = string.Empty;
    32. string exepath = string.Empty;
    33. [Export]
    34. [Description("return SqlServer.Query(`test`, [`abc`], imagedata)")]
    35. public byte[] Start(string onnxfile, string[] mylabel, byte[] imagedata)
    36. {
    37. return new byte[1];
    38. }
    39. public void Load(string pluginpath, string exepath)
    40. {
    41. this.pluginpath = pluginpath;
    42. this.exepath = exepath;
    43. //string[] files = new string[] { "libcvextern.so", "libonnxruntime.so", "cvextern.dll", "onnxruntime.dll", "opencv_videoio_ffmpeg481_64.dll" };
    44. ////throw new NotImplementedException();
    45. //foreach (var file in files)
    46. //{
    47. // if (File.Exists(Path.Combine(pluginpath, file)))
    48. // {
    49. // File.Copy(Path.Combine(pluginpath, file), Path.Combine(exepath, file), true);
    50. // }
    51. //}
    52. }
    53. }
    54. }

    配置

    1. 通过插件目录加载

    开发的插件文件夹放到服务目录下的plugin目录下:

    新建文件 config.json 提供加载的入口dll,内容如下:

    1. {
    2. "xxxx.dll":"提供xxxx操作"
    3. }

    平台会自动扫描到并加载,通过dllmethods函数查询到:

    1. dllmethods()// 这个函数可以查询到函数的调用名称
    2. 或者:plugin()