热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

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

有台测量设备,我可以设置和读取他的各种状态数据(接口已定,称为各种命令)现在我想用程序自动控制这个设备现在的问题是:怎么逻辑排列这些命令,让他符合我的操作例子:我可能让它读个参数A
有台测量设备,我可以设置和读取他的各种状态数据(接口已定,称为各种命令)
现在我想用程序自动控制这个设备

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

例子:我可能让它读个参数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

推荐阅读
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • Monkey《大话移动——Android与iOS应用测试指南》的预购信息发布啦!
    Monkey《大话移动——Android与iOS应用测试指南》的预购信息已经发布,可以在京东和当当网进行预购。感谢几位大牛给出的书评,并呼吁大家的支持。明天京东的链接也将发布。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • 本文是一位90后程序员分享的职业发展经验,从年薪3w到30w的薪资增长过程。文章回顾了自己的青春时光,包括与朋友一起玩DOTA的回忆,并附上了一段纪念DOTA青春的视频链接。作者还提到了一些与程序员相关的名词和团队,如Pis、蛛丝马迹、B神、LGD、EHOME等。通过分享自己的经验,作者希望能够给其他程序员提供一些职业发展的思路和启示。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 禁止程序接收鼠标事件的工具_VNC Viewer for Mac(远程桌面工具)免费版
    VNCViewerforMac是一款运行在Mac平台上的远程桌面工具,vncviewermac版可以帮助您使用Mac的键盘和鼠标来控制远程计算机,操作简 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • C# 7.0 新特性:基于Tuple的“多”返回值方法
    本文介绍了C# 7.0中基于Tuple的“多”返回值方法的使用。通过对C# 6.0及更早版本的做法进行回顾,提出了问题:如何使一个方法可返回多个返回值。然后详细介绍了C# 7.0中使用Tuple的写法,并给出了示例代码。最后,总结了该新特性的优点。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
author-avatar
kiruma
phper,javaer,hacker
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有