人走茶凉|一个监控PLC的Android应用的开发过程-2
2.5 交互对话框2.5.1 DO交互对话框对于DO的操作需求就是点击List中的Item , 弹出交互对话框 , 由用户来选择“On/Off”?并最终写入到底层的PLC设备之中 , 并根据结果更新List 。 效果如下:
DO交互对话框
2.5.2 AO交互对话框由于对于AO的操作需求有2种 , 分别是趋势查看需求和值设定需求 , 因此点击List的Item后需要先由用户选择要进行哪种操作?也就是与DO对比要增加一个操作选择对话框 。 在用户选择了操作类型后 , 弹出具体的操作对话框 。
AO交互对话框
对于AO的值设定操作需求就是在交互对话框中显示要设定参数的名称 , 并可以输入设定值 , 点击确定后写入到PLC中 。
AO设置对话框
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轴移动 , 这样趋势就始终处于动态更新的状态 。 那位博友知道更好的解决方法?望告知 , 谢谢!
最后实现的效果如下:
趋势效果
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?不过我没有去研究!
推荐阅读
- 央视财经|这家知名连锁店掀“关店潮”!有人退钱等了一个月
- 武磊|下一个武磊?恒大新星留洋加盟西乙劲旅,18岁夺金靴,把梅西当偶像
- 钱江晚报·小时新闻|浙江街头揪心一幕!电瓶车上3岁男孩一个动作,他和妈妈瞬间飞出……
- 赵立坚|赵立坚:美国以莫须有借口抓捕中国企业高管 连一个弱女子都不放过
- 浙江法法制报|“大男人喝酒,叫一个女的去买单?”因为这句话,他逃了足足10年
- 美食工坊|而有一个很唯美的名字,日本仍保留使用,古代的苹果不叫“苹果”
- 国际今日事|称“感觉好像中彩票”,美国男子在自家后花园发现一个大型游泳池
- 水稻|从“80后”变“90后” ,今天袁隆平许下一个生日愿望
- 穿搭|4款时尚上衣,好看又百搭,让你时髦一个秋天
- 孙冾讲娱乐|女汉子本性暴露无遗!,搞笑GIF:最后这一个动作
