我正在开发一个 .Net 应用程序,用于通过串行端口进行科学仪器控制。要求允许用户“编写”某些动作的“脚本”,例如打开阀门、等待 X 秒、将 xyz 数据发送到仪器等。将有几十种不同的动作可供选择,加上逻辑/程序流程(if 语句、goto 等)。
该软件的前一个版本使用基本 UI,用户可以从可能的操作列表中进行选择,以逐步构建一系列命令以运行。它很有效,非常适合非程序员,但不是特别灵活。如果发生错误,则很难报告确切的问题,或者它在脚本中发生的位置。
对于重写,我正在尝试提出更好的解决方案,例如使用“真正的”脚本语言。程序流/逻辑显然是语言本身的一部分,所以我只需要关注暴露/处理不同的仪器动作。脚本语言也会提供更好的运行时错误,而智能感知将是一个好处。
我的第一个想法是将我的 .Net“动作”类公开为某种 COM 对象模型,允许更多选择脚本语言(VBScript、Python、Javascript?),但我有点不愿意走 COM 路线,因为这是一种古老的技术(而且是我作为开发人员多年来一直设法避免的一种黑艺术)。没有关于应支持哪些语言的要求,因此 C# 和 VB.Net 也是选项。
我真的只是在寻找一些关于如何在我的应用程序中实现脚本的想法/指针。脚本编辑器不必集成到应用程序中,尽管这样会很好。