这样的需求请大家提提意见

时间:2021-07-04 03:20:02
有台测量设备,我可以设置和读取他的各种状态数据(接口已定,称为各种命令)
现在我想用程序自动控制这个设备

现在的问题是:怎么逻辑排列这些命令,让他符合我的操作

例子:我可能让它读个参数A 10次,算平均数,然后读个参数B 100次,算平均数
     如果A的值>B的值,那么就执行命令C,否则执行D(这只是个例子,ABCD是用户自定义的,也不一定都是这个逻辑)

现在我想做个类似编辑HTML的控件,上面的控件对应各个逻辑操作for,swtich,if等,显示成自然语言让用户看,然后在cs里面解析这些代码,各位大侠有没什么更好的解决方案,这样做是不是复杂了

21 个解决方案

#1


先寫個代理類,然後根據用戶的命令用反射調用

#2


能说详细点吗

#3


代理坑顶是要用的。

#4


该回复于2011-05-13 20:15:57被版主删除

#5


我不知道怎么做的人性化一点,感觉这样好像是在让用户编程,不太好

#6


有这么复杂吗?你应该先理顺一下逻辑
把客户最常用的几套流程傻瓜化抽出来做成几个功能菜单,然后让客户只需要输入一些必要的参数就可以得出结果,流程是预先内部设定好的
如果客户有特殊要求,也可以自己画流程,作为高级功能,平常隐藏,
这高级功能,最好是做成可拖拽的,像画流程图一样,都可以用拖图标下来的
或者是做成一个个【触发条件、影响目标、执行动作】组,类似简单触发器一样

#7


我本来也是这么做的,做了几个常用的流程,被否决了,说做的不够通用,
所以现在让用户自己做流程,流程图遇到可能会很复杂流程,处理很麻烦,所以我才想做个HTML编程控件的
设计预想是这样:一般的流程我做成模版,可以调用,但是用户可以用我的模版在控件里面改
迷茫中,不知道咋解决,有点模糊,
这个项目因为是自定义的流程,有的流程确实很复杂,流程图我估计一时半会是搞不定的,设备有上百个那个,各种设备的命令有上百个,一次流程一般只用几个设备,这怕不比labview那些编程工具复杂吧。。。汗啊

#8


我觉得没必要做的那么复杂。
做个类似字典表的东西就可以吧,第一层定义基本的操作,第二层定义类别(包括哪些基本操作,用户选择)。
简单实用就可以吧。

#9


简单实用就可以

#10


最通用的流程就是没有流程,一切都是有用户自己去选择定义的这样就好

你可以把相关的属性罗列 然后让 用户 可编辑这些属性的值 和各属性之间 的可操作 符 并 定义结果 

输出结果。

#11


KISS

#12


引用 6 楼 wartim 的回复:
有这么复杂吗?你应该先理顺一下逻辑 
把客户最常用的几套流程傻瓜化抽出来做成几个功能菜单,然后让客户只需要输入一些必要的参数就可以得出结果,流程是预先内部设定好的 
如果客户有特殊要求,也可以自己画流程,作为高级功能,平常隐藏, 
这高级功能,最好是做成可拖拽的,像画流程图一样,都可以用拖图标下来的 
或者是做成一个个【触发条件、影响目标、执行动作】组,类似简单触发器一样

这个设计应该是合理的
你的设计可以说是个全功能,任何需求都能满足,但是很少有软件是能这样的,
做这样的设计要考虑到功能实现和用户使用,要不然不会有人用的
可以用流程图的方案解决,设备和命令可以分为常用非常用不用的,尽量在画流程图的时候让界面简洁,不必100条数据什么都选择,也可让用户自己先筛选
你设计的HTML控件不实用,试想不是每个用户都有编程的概念得

#13


引用 7 楼 ndsc_1 的回复:
我本来也是这么做的,做了几个常用的流程,被否决了,说做的不够通用, 
所以现在让用户自己做流程,流程图遇到可能会很复杂流程,处理很麻烦,所以我才想做个HTML编程控件的 
设计预想是这样:一般的流程我做成模版,可以调用,但是用户可以用我的模版在控件里面改 
迷茫中,不知道咋解决,有点模糊, 
这个项目因为是自定义的流程,有的流程确实很复杂,流程图我估计一时半会是搞不定的,设备有上百个那个,各种设备的命令…


用分层的思路,先把中间层,通用的逻辑写好,比如获取设备()、获取某设备参数()等等,然后封装成执行某特定功能的窗口,只能这样了,业务逻辑没办法全部通用,而且多一个模块就多一模块的钱
要么就相当于做脚本了,对用户很不友好,而且同样无法预计和处理复杂的逻辑

#14


mark.学习一下

#15


可以。接口编程,可参考监控系统,通过发送命令控制设备,还需嵌入式编程

#16


引用 13 楼 wartim 的回复:
用分层的思路,先把中间层,通用的逻辑写好,比如获取设备()、获取某设备参数()等等,然后封装成执行某特定功能的窗口,只能这样了,业务逻辑没办法全部通用,而且多一个模块就多一模块的钱 
要么就相当于做脚本了,对用户很不友好,而且同样无法预计和处理复杂的逻辑

就是啊,逻辑复杂度是未知的啊。。烦躁

#17


引用 15 楼 wuyq11 的回复:
可以。接口编程,可参考监控系统,通过发送命令控制设备,还需嵌入式编程

接口协议,设备代理那些不用管了,已经搞定了

主要剩下的是软件方面的界面流程设计问题

#18


引用 16 楼 ndsc_1 的回复:
引用 13 楼 wartim 的回复:
用分层的思路,先把中间层,通用的逻辑写好,比如获取设备()、获取某设备参数()等等,然后封装成执行某特定功能的窗口,只能这样了,业务逻辑没办法全部通用,而且多一个模块就多一模块的钱 
要么就相当于做脚本了,对用户很不友好,而且同样无法预计和处理复杂的逻辑 
 
就是啊,逻辑复杂度是未知的啊。。烦躁

你这个自定义也太自定义了,做的复杂也没办法,逻辑复杂度都不能确定是很难做设计的

#19


大家还提提意见啊~~

#20


所以这是不合理的要求,就看你说服摆平的功力了

#21


up

#1


先寫個代理類,然後根據用戶的命令用反射調用

#2


能说详细点吗

#3


代理坑顶是要用的。

#4


该回复于2011-05-13 20:15:57被版主删除

#5


我不知道怎么做的人性化一点,感觉这样好像是在让用户编程,不太好

#6


有这么复杂吗?你应该先理顺一下逻辑
把客户最常用的几套流程傻瓜化抽出来做成几个功能菜单,然后让客户只需要输入一些必要的参数就可以得出结果,流程是预先内部设定好的
如果客户有特殊要求,也可以自己画流程,作为高级功能,平常隐藏,
这高级功能,最好是做成可拖拽的,像画流程图一样,都可以用拖图标下来的
或者是做成一个个【触发条件、影响目标、执行动作】组,类似简单触发器一样

#7


我本来也是这么做的,做了几个常用的流程,被否决了,说做的不够通用,
所以现在让用户自己做流程,流程图遇到可能会很复杂流程,处理很麻烦,所以我才想做个HTML编程控件的
设计预想是这样:一般的流程我做成模版,可以调用,但是用户可以用我的模版在控件里面改
迷茫中,不知道咋解决,有点模糊,
这个项目因为是自定义的流程,有的流程确实很复杂,流程图我估计一时半会是搞不定的,设备有上百个那个,各种设备的命令有上百个,一次流程一般只用几个设备,这怕不比labview那些编程工具复杂吧。。。汗啊

#8


我觉得没必要做的那么复杂。
做个类似字典表的东西就可以吧,第一层定义基本的操作,第二层定义类别(包括哪些基本操作,用户选择)。
简单实用就可以吧。

#9


简单实用就可以

#10


最通用的流程就是没有流程,一切都是有用户自己去选择定义的这样就好

你可以把相关的属性罗列 然后让 用户 可编辑这些属性的值 和各属性之间 的可操作 符 并 定义结果 

输出结果。

#11


KISS

#12


引用 6 楼 wartim 的回复:
有这么复杂吗?你应该先理顺一下逻辑 
把客户最常用的几套流程傻瓜化抽出来做成几个功能菜单,然后让客户只需要输入一些必要的参数就可以得出结果,流程是预先内部设定好的 
如果客户有特殊要求,也可以自己画流程,作为高级功能,平常隐藏, 
这高级功能,最好是做成可拖拽的,像画流程图一样,都可以用拖图标下来的 
或者是做成一个个【触发条件、影响目标、执行动作】组,类似简单触发器一样

这个设计应该是合理的
你的设计可以说是个全功能,任何需求都能满足,但是很少有软件是能这样的,
做这样的设计要考虑到功能实现和用户使用,要不然不会有人用的
可以用流程图的方案解决,设备和命令可以分为常用非常用不用的,尽量在画流程图的时候让界面简洁,不必100条数据什么都选择,也可让用户自己先筛选
你设计的HTML控件不实用,试想不是每个用户都有编程的概念得

#13


引用 7 楼 ndsc_1 的回复:
我本来也是这么做的,做了几个常用的流程,被否决了,说做的不够通用, 
所以现在让用户自己做流程,流程图遇到可能会很复杂流程,处理很麻烦,所以我才想做个HTML编程控件的 
设计预想是这样:一般的流程我做成模版,可以调用,但是用户可以用我的模版在控件里面改 
迷茫中,不知道咋解决,有点模糊, 
这个项目因为是自定义的流程,有的流程确实很复杂,流程图我估计一时半会是搞不定的,设备有上百个那个,各种设备的命令…


用分层的思路,先把中间层,通用的逻辑写好,比如获取设备()、获取某设备参数()等等,然后封装成执行某特定功能的窗口,只能这样了,业务逻辑没办法全部通用,而且多一个模块就多一模块的钱
要么就相当于做脚本了,对用户很不友好,而且同样无法预计和处理复杂的逻辑

#14


mark.学习一下

#15


可以。接口编程,可参考监控系统,通过发送命令控制设备,还需嵌入式编程

#16


引用 13 楼 wartim 的回复:
用分层的思路,先把中间层,通用的逻辑写好,比如获取设备()、获取某设备参数()等等,然后封装成执行某特定功能的窗口,只能这样了,业务逻辑没办法全部通用,而且多一个模块就多一模块的钱 
要么就相当于做脚本了,对用户很不友好,而且同样无法预计和处理复杂的逻辑

就是啊,逻辑复杂度是未知的啊。。烦躁

#17


引用 15 楼 wuyq11 的回复:
可以。接口编程,可参考监控系统,通过发送命令控制设备,还需嵌入式编程

接口协议,设备代理那些不用管了,已经搞定了

主要剩下的是软件方面的界面流程设计问题

#18


引用 16 楼 ndsc_1 的回复:
引用 13 楼 wartim 的回复:
用分层的思路,先把中间层,通用的逻辑写好,比如获取设备()、获取某设备参数()等等,然后封装成执行某特定功能的窗口,只能这样了,业务逻辑没办法全部通用,而且多一个模块就多一模块的钱 
要么就相当于做脚本了,对用户很不友好,而且同样无法预计和处理复杂的逻辑 
 
就是啊,逻辑复杂度是未知的啊。。烦躁

你这个自定义也太自定义了,做的复杂也没办法,逻辑复杂度都不能确定是很难做设计的

#19


大家还提提意见啊~~

#20


所以这是不合理的要求,就看你说服摆平的功力了

#21


up