人走茶凉|一个监控PLC的Android应用的开发过程-2

2.5 交互对话框2.5.1 DO交互对话框对于DO的操作需求就是点击List中的Item , 弹出交互对话框 , 由用户来选择“On/Off”?并最终写入到底层的PLC设备之中 , 并根据结果更新List 。 效果如下:
人走茶凉|一个监控PLC的Android应用的开发过程-2DO交互对话框
2.5.2 AO交互对话框由于对于AO的操作需求有2种 , 分别是趋势查看需求和值设定需求 , 因此点击List的Item后需要先由用户选择要进行哪种操作?也就是与DO对比要增加一个操作选择对话框 。 在用户选择了操作类型后 , 弹出具体的操作对话框 。
人走茶凉|一个监控PLC的Android应用的开发过程-2AO交互对话框
对于AO的值设定操作需求就是在交互对话框中显示要设定参数的名称 , 并可以输入设定值 , 点击确定后写入到PLC中 。
人走茶凉|一个监控PLC的Android应用的开发过程-2AO设置对话框
2.6 图表(趋势)控件选择1 对于AI和AO类型的数据项需要能够显示趋势图 , X轴为时间、Y轴为值 , 查了很多资料选来选去 , 最终选择了“OxyPlot” 。
2 Oxyplot是一个.NET跨平台的绘图组件 , 适用于WPF, Windows 8, Windows Phone, Windows Phone Silverlight, Windows Forms, Silverlight, GTK#, Xwt, Xamarin.iOS, Xamarin.Android, Xamarin.Forms and Xamarin.Mac.
3 官方网址:
4 这是一套绘图组件 , 不仅仅有我要用到的趋势 , 也包括饼图、柱状图等等 , 组件具体的过程就不详述了 , 网上都可以查到的 。
5 问题:使用过程中趋势是动态实时更新的 , 但是遇到的问题是如果允许X或Y轴可以移动查看 , 那么在移动后趋势就不再实时更新了 , 是组件就是这样设定的?还是有什么参数可以进行设置?暂时的方法就是禁止X、Y轴移动 , 这样趋势就始终处于动态更新的状态 。 那位博友知道更好的解决方法?望告知 , 谢谢!
最后实现的效果如下:
人走茶凉|一个监控PLC的Android应用的开发过程-2趋势效果
2.7 用户的新需求在提交给用户后 , 用户感觉不错 , 朋友的100多万的项目也顺利拿下来了 , 不过用户也提出了2个新的需求(意料之中) 。 具体如下:
2.7.1 LIstView的长按和抬起操作这个需求就是当长按ListView的Item项时 , 直接将相应DO设置为“On” , 这时此阀门就是始终处于开状态(加料) , 然后当抬起(也就是松手)后将此DO设置为“Off” , 也就是关闭阀门 。 这个需求其实并不困难 , 但前提是必须弄懂如何获取到长按和抬起这两个事件?
首先 , 目前系统中已经添加了Item的Click事件 , 如下:
protected void OnListItemClick(object sender, Android.Widget.AdapterView.ItemClickEventArgs e)进而查看是否有其它事件?果然发现了LongClick事件 , 添加后如下:
protected void OnListItemLongClick(object sender, Android.Widget.AdapterView.ItemLongClickEventArgs e)但是 , 测试后发现如果长按后OnListItemLongClick确实响应了 , 但是在抬起后Click事件并没有响应 , 然后又测试了”KeyPress”事件 , 发现这对应的是物理按键 。 又测试了”Touch”事件 , 发现此事件确实可以响应Down和Up两个事件 , 但是却不是针对Item的 , 获取的似乎是屏幕的坐标 , 也许经过相应的转换也可以得到对应的Item?不过我没有去研究!


推荐阅读