当前位置: 首页 > news >正文

C# WPF上位机开发(windows pad上的应用)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        大部分同学可能都认为c# wpf只能用在pc端。其实这是一种误解。c# wpf固然暂时只能运行在windows平台上面,但是windows平台不仅仅是电脑,它还可以是小型x86工控机,还可以是一个windows pad。尽管大家熟知的pad多是ipad、android pad这样的产品,但是windows pad在工业生产中还是很多地方存在的,有它一定的市场,比如在某电商网站上很容易找到大量销售的windows pad产品。

1、pad最大的优势是无线

        对于工业现场管理来说,pad最大的优势就是无线。前面说的台式机,或者是x86小型机,基本上c# wpf和外面的数据沟通要么通过传统的232、485、can,要么就是有线网络来进行的。但是pad,本身因为比较小巧,便于携带,所以它和外界的通信基本都是通过wifi 2.4g或者wifi 5g来进行通信的。

2、周期性网络检测

        工厂环境中的无线网络,和办公区的无线网络还是有区别的。一来由于生产环境比较大,信号的质量差别很大;二来在工业生产中,很多的机器设备功率很大,会产生比较强的电磁场,这也会对无线通信的质量产生影响。所以,对于工业生产中的pad,在软件开发的后台一定要定时检测网络的质量,而不是等到业务发生的时候,才去进行检测。

3、简洁明了的界面

        windows pad一般都是拿在手里的,屏幕本身也不一定非常大。所以,这个时候pad界面最好字体大一点,图形显示明显一点,相关交互简单一点,这样才能达到最佳的效果。软件中涉及的模块最好以清晰的方式表达出来,比如下图所示,总共就三个模块,单击之后,在界面中间继续显示具体模块的功能就好了。

4、本地数据库

        为了调试的方便,在pad上面最好有一个小型的数据库,类似于sqlite。因为pad本身其实是一个界面载体,最终所有的工单都是要上传到系统的数据库上处理的。但是由于网络的原因,某些情况下会存在系统工单和本地pad数据不一致的情况,那么这个时候就需要pad上的log+本地数据库做double check处理。这既是一种debug的需要,也是快速解决问题的一种方案。

5、权限控制

        同样一个pad,肯定不同的人使用,看到的东西是不一样的。甚至于说,就算是同一批人,白班和晚班看到的内容也是不一样的。所以这个时候,就要对软件模块做一些权限控制。比如白班的人只能看到模块1和模块2,晚班的人只能看到模块2和模块3。又或者,管理者可以对数据增删改查四个操作,使用者只能对数据进行增改查三个操作等等。

6、防止误触

        对于pad来说,所有的交互都是通过屏幕来进行的,不像电脑或者嵌入式x86设备的交互方式那么多。所以这个时候,防止误触就是很重要的一个部分。要做到这一点,主要有几个方面。第一,控件尽量不要放在屏幕的边角为止;第二,控件的大小要合理,不要过小;第三,控件的间隔要适当大一点;第四,软件如果不使用的时候,最好尽快进入屏保;第五,软件第一个界面的功能少一点,以模块选择为主,这样也会达到减少误触的目的。

7、总结

        c# wpfi本身只是一种技术,虽然目前只能跑在windows上面,但是除了pc电脑外,还可以运行在嵌入式工控、pad等很多的领域,所以完全可以拿来做很多项目的方案,千万不要被以前的经验束缚住了,多尝试新得场景和舞台。

http://www.lryc.cn/news/267245.html

相关文章:

  • Word使用技巧【开题报告】
  • 电子学会C/C++编程等级考试2022年06月(七级)真题解析
  • git中的smart checkout和force checkout
  • vue3整合Element-Plus,极速上手。
  • 学习Vue2.x
  • 新手如何快速熟悉代码,写出东西(持续更新)
  • 11-网络安全框架及模型-软件安全能力成熟度模型(SSCMM)
  • Linux操作系统基础知识点
  • python 通过opencv及face_recognition识别人脸
  • Android开发中常见的Hook技术有哪些?
  • 【linux c多线程】线程的创建,线程信息的获取,获取线程返回值
  • MFC或QT中,自绘控件的目的和实现步骤
  • ceph集群搭建详细教程(ceph-deploy)
  • 机器视觉系统选型-避免畸变
  • 机器学习笔记 - 线性判别分析(LDA)的原理和应用
  • 基于5G智能网关的智慧塔吊监测方案
  • CountDownLatch详解以及用法示例
  • 【http】缓存协议
  • vscode中使用GitHub Copilot Chat
  • lvgl 双物理显示器的驱动实现
  • 论文阅读——X-Decoder
  • 【Kubernetes】控制器Statefulset
  • 智能优化算法应用:基于鱼鹰算法3D无线传感器网络(WSN)覆盖优化 - 附代码
  • 探索 Vue3 (五) 骨架屏
  • java取出list中的某几个属性组成一个新的集合的几种方式
  • 开源自托管导航页配置服务Dashy本地搭建结合内网穿透远程访问
  • Cloudstack多个管理服务器节点
  • 31. Ajax
  • ArrayList源码学习笔记(3)
  • flutter怎么对ReorderableListView中的用于排序的控制手柄进行显示或隐藏