0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

人机界面开发之开启VNC功能同步HMI到PC

嵌入式程序员 来源:嵌入式程序猿 作者:嵌入式程序猿 2020-10-10 09:22 次阅读

嵌入式开发中,经常会有人机界面的开发,如果你的板子有网口的话,可以开启VNC功能,这样就可以同步HMI到PC,平板,或者手机。亲测效果非常棒。以emWin的VNC功能来介绍。

1

VNC简介

emWin VNC 服务器可用于管理嵌入式目标以及多种其他用途,支持压缩(hextile)编码。VNC 表示“虚拟网络计算”。它是基于一种简单的显示协议的客户端-服务器系统,允许用户从互联网的任何地方查看和控制“桌面”计算环境,支持多种机器架构,采用的是 TCP/IP 通信协议。换言之:嵌入式设备的显示内容可以在运行客户端的机器(如 PC)的屏幕上看到;可以用鼠标和键盘来
控制目标。emWin 仿真和试用版都提供了该功能。emWin VNC 支持是一个单独的软件包,所以不包含在基本软件包内。VNC 支持需要 emWin 颜色。如果文件系统可用,还能在客户端和带 emWinVNC 客户端的目标之间实现文件传输,VNC 由两类组件构成:一是服务器,生成显示,一是查看器,在屏幕上实际绘制显示内容。不但可以看到远程机器(目标或仿真),而且可以通过鼠标和键盘进行控制。服务器和查看器可以在不同的机器上,可以采用不同的架构。用于连接服务器和查看器的协议具有简单、开放且不受平台限制的特点。查看器不存储状态。断开查看器与服务器的连接,然后重新连接不会导致数据丢失。由于可以从其他地方重新连接,因此可以轻松实现移动性。使用 VNC 服务器,可以从任何地方控制您的目标机器。

2

运行需求

因为VNC是跑在网络上的,所以必须有TCP/IP协议栈,例如我们嵌入式中经常用的lwip等就可以用,另外VNC 服务器需要以独立线程运行。因此,使用 emWin VNC 服务器要求采用多任务系统。最后如果要传文件还需要文件系统。实现是完全线程安全的及可重入的;多个 VNC 服务器可以在同一 CPU 的不同层或显示器中启动。如果目标(当然,同样适用于模拟)有多个显示器或多个层,这可能是一个有用的选项。只有一个 VNC 服务器可以在任何时候在每一层启动;一旦与查看器的连接结束,则可以连接另一个。

3

win32模拟

首先可以参考emwin的例程,VNC在同一电脑上模拟

打开模拟解决方案工程,使用vs2019模拟

打开工程配置使能VNC,也可以根据自己实际调整分辨率,这里以480*272来展示。如果编译没有问题运行工程

打开VNC连接,可参照如下手册提示连接

4

代码分析

我们要将代码移植到我们的硬件板子上其实也很简单,首先要保证你的TCP/IP协议栈运行正常,可以测试TCP/IP协议栈正常运行后,开始移植VNC,主要就几个文件需要根据不同的协议栈修改,但都是socket编程,所以接口都一样。主要就是开启VNC函数的实现

这里我们以lwip协议栈为例来说明,以IAR环境为工程载体,以freeRTOS操作系统,参考上面的例程调用,先添加头文件

这个函数就是实现创建VNC的任务,在任务里调用 GUI_VNC_Process(&_Context, _Send, _Recv, (void *)Sock);去实现VNC的处理。

将实现的文件添加到工程里,并编译无误,

在GUI任务化地方调用开启VNC服务,还可以设置密码,名字等等,调用相应的API就可以

这样编译无误后,就可以下载试验了,更多API和玩法可以参考emWin手册。这个之前测试过,手边此刻没有板子,就不给大家演示了。如果你是使用freeRTOS+lwip+emwin可以参照文中的代码,基本不用变就可以用起来,当然,之前必须保证你的GUI和TCP/IP协议栈可以正常使用。可以参照前面的模拟看效果。这样就可以很炫的玩你的GUI了。
责任编辑:YYX

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • PC
    PC
    +关注

    关注

    9

    文章

    1951

    浏览量

    152804
  • HMI
    HMI
    +关注

    关注

    9

    文章

    490

    浏览量

    47887
  • VNC
    VNC
    +关注

    关注

    0

    文章

    18

    浏览量

    9201

原文标题:让你的HMI开启VNC骚操作

文章出处:【微信号:InterruptISR,微信公众号:嵌入式程序员】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    【插针机HMI开发】用AWTK开发人机界面

    插针机中有两个重要的部件HMI和PLC,HMI提供用户操作和界面显示,而PLC则控制电机的运动逻辑。致远电子的ZTP800和AWTK-HMI解决方案可以快速
    的头像 发表于 04-19 08:23 81次阅读
    【插针机<b class='flag-5'>HMI</b><b class='flag-5'>开发</b>】用AWTK<b class='flag-5'>开发人机界面</b>

    人机界面组态监控可视化 #人机界面 #组态软件 #可视化 #组态

    人机界面可视化
    阿梨是苹果
    发布于 :2024年04月01日 09:55:51

    触控显示模组和触摸屏有啥区别?#模组 #触控 #人机界面

    人机界面模组
    东莞市雨菲电子科技有限公司
    发布于 :2024年03月18日 13:47:18

    工业化设备人机界面解决方案

    IndustrialHMI)是一种带微处理器的智能终端,一般用于工业场合,实现人和机器之间的信息交互,包括文字或图形显示以及输入等功能。当然也有大量的工业人机界面
    的头像 发表于 11-16 08:26 299次阅读
    工业化设备<b class='flag-5'>人机界面</b>解决方案

    基于NXP i.MX RT117H智能人机界面方案

    基于NXP i.MX RT117H智能人机界面方案
    的头像 发表于 10-30 18:22 355次阅读
    基于NXP i.MX RT117H智能<b class='flag-5'>人机界面</b>方案

    什么是人机界面人机界面跟触摸屏有什么区别?

    人机界面与人们常说的“触摸屏”有什么区别?从严格意义上来说,两者是有本质上的区别的。因为“触摸屏”仅是人机界面产品中可能用到的硬件部分,是一种替代鼠标及键盘部分功能,安装在显示屏前端的输入设备
    的头像 发表于 10-25 08:07 1177次阅读
    什么是<b class='flag-5'>人机界面</b>?<b class='flag-5'>人机界面</b>跟触摸屏有什么区别?

    Arduino人机界面及接口技术入门

    Arduino人机界面及接口技术入门
    发表于 10-23 09:19 0次下载

    干货 | 安富利人机界面方案特色

    当下,人机界面HMI)正在以前所未有的速度进化。从以鼠标键盘为代表的按键式物理交互界面,到丰富的图形化交互界面,再到如今处于科技前沿的手势、语音等自然交互
    的头像 发表于 10-11 15:45 204次阅读
    干货 | 安富利<b class='flag-5'>人机界面</b>方案特色

    人机界面功能及工作原理

    人机界面最基本的功能是显示现场设备(通常是plc)中的开关量状态和存储器中数字变量的值,用监控画面向 PLC 发出开关量命令,以及修改 PLC 存储器中的参数。
    的头像 发表于 10-05 09:43 1222次阅读
    <b class='flag-5'>人机界面</b>的<b class='flag-5'>功能</b>及工作原理

    如何创建一个更有效的电容式触摸人机界面

    我们现在看到支持多点触控的互动式人机界面HMI),在现代各种行业领域电子硬件中采用的比例越来越大。技术的更新带来一种更为方便而广泛的控制方法,相较于过去较为笨重的机电HMI(如小键盘),支持多点
    的头像 发表于 08-29 15:29 622次阅读

    如何编写人机界面

    很多人在编写人机界面的时候很苦恼,不知道具体需要哪些内容,最后编写出来的界面会很凌乱,让人操作起来很吃力。
    的头像 发表于 08-25 13:58 670次阅读
    如何编写<b class='flag-5'>人机界面</b>

    人机界面通过RJ45口无线连接多台PLC

    人机界面是系统和用户之间进行交互和信息交换的媒介,它实现信息的内部形式与人类可以接受形式之间的转换。人机界面产品由硬件和软件两部分组成,硬件部分包括处理器、显示单元、输入单元、通讯接口、数据存贮单元
    的头像 发表于 08-24 09:13 584次阅读
    <b class='flag-5'>人机界面</b>通过RJ45口无线连接多台PLC

    新唐即插即用人机界面显示模块可提升终端产质量感

    即插即用人机界面显示模块
    的头像 发表于 08-21 10:51 495次阅读

    人机界面是什么意思

    人机界面是什么意思 anputerterface,简称HCI)是指人与计算机之间进行信息交互的方式和技术,是计算机科学、人类学、心理学等交叉学科的研究领域之一。 人机界面的特征包括以下几个方面 1.
    发表于 07-03 14:13 879次阅读

    人机界面和触摸屏的区别?

    人机界面:指人操作PLC的一个平台,该平台提供了一个程序与人的接口,是人与计算机之间传递、交换信息的媒介和对话接口,是计算机系统的重要组成部分。它实现信息的内部形式与人类可以接受形式之间的转换
    的头像 发表于 05-10 09:38 981次阅读
    <b class='flag-5'>人机界面</b>和触摸屏的区别?