当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]0引言QT是奇趣科技推出的一种多平台的C++图形用户界面应用程序框架。它包括QT开发库QT Library、快速开发工具QT Designer、国际化工具QTLinguist以及开发助手QT Assistan

0引言

QT是奇趣科技推出的一种多平台的C++图形用户界面应用程序框架。它包括QT开发库QT Library、快速开发工具QT Designer、国际化工具QTLinguist以及开发助手QT Assistant,由于其可移植性好,而且完全面向对象,很容易扩展,因此,QT已成为众多嵌人式厂家选择的热点工具。

1 操作系统选择

本文主要讨论的是一个可变情报板控制器的图形界面系统。该系统需要用串口和以太网口两路来和主控PC和LED情报板通讯,所以,硬件上选择的是一款采用SAMSUNGS 3C2440A高性能处理器的开发板。并带有外部存储器、两个五线异步串行口、一个10 M/100 Mbps网口、一个SD卡接口、一个IDE接口,可直接挂接硬盘、LCD和触摸屏接口等。因此,本设计选择uclinux作为操作系统,适合于不带MMU的微处理器芯片。

2应用程序开发

该程序按照功能可分为三个模块,分别为界面显示模块,串口通讯模块和以太网通讯模块。

界面显示模块可提供人机交互接口。它采用一种直观便捷的方式来为用户系统提供控制功能。程序开始运行后,首先进入主界面,包括菜单栏,状态栏和中间区域界面(包括一个列表框和播放,暂停,下一条,上一条等按钮,可分别实现不同功能)。

串口通讯模块用于LED情报板和控制器的通讯,以及轮询情报板的状态信息。控制板每隔一定时间发送一个串口模糊查询命令,以轮询与其连接的16个模块的状态信息,被轮询到的模块将回送自己所搜集的数据,若在指定时间内没有收到该模块的数据信息,则按通讯异常处理。

以太网通讯模块用来实现主控PC和控制器的通讯.以完成数据收发功能。主控PC作为客户端连接的控制器,可以发送控制命令。控制器接收命令后,便可按照通信协议把命令转换成控制信号,并完成上传下载文件和改变LED显示内容等功能。

3 关键技术

3.1 QT的信号与槽的机制

QT使用信号与槽的机制来完成对象间的通讯,它支持同一进程间的对象通讯。连接信号与槽的函数为:

QObjiect::connect(const QObject*sender,const chat*signal,const QObject*receiver,const char*member)

当某一个特定系统定义的或者用户定义的信号被触发时,这个信号便被发射。当事先预定义的槽接收到这个信号后,便进行相应的处理。但是使用了信号与槽机制的类必须在类定义的时候申明Q_OBJECT。此外,用户也可以使用emit来发射一个信号,如:emit function (value)。

3.2 串口编程技术

本系统的整个程序框架遵从linux系统下串口通信编程的标准流程,即:串口的打开、设置属性、读写数据、以及关闭。Linux下对设备的管理都是按照文件形式进行的。对串口的读写就是对设备文件的读写操作。下面是Linux下的部分操作定义:

◇串口打开函数:int open (const char*port,int MODE);

◇设置属性:包括波特率和奇偶校检,停止位,硬件流控,软件流控等的设置。

◇串口发送函数:int write(intfd,char[]buffer,int Length)。

◇串口接收函数:int read(int fd,char []buffer,int length)。

◇关闭串口:close(int fd)。

3.3 Socket编程技术

在本应用程序中,控制器一般被设置为服务器端,其具体的过程如下:

◇创建套接字:int socket(int domain,inttype,int protocol。

◇绑定socket到特定端口:int bind (intsockfd,struct sockaddr*my_addr,int addrlen)。

◇监听套接字端口:int listen(int sockfd,int backlog)。

◇接受客户端连接请求:int accept (intsockfd,void*addr,int*addrlen);

◇发送数据(面向TCP连接):int send (intsockfd,const void*msg,int len,int flags)。

◇接收数据(面向TCP连接):int rear(intsockfd,void*buf,int len,unsigned int flags)。

◇关闭套接口:close(socket)。

3.4 进程间的通信技术

进程间的通信手段主要有管道、消息队列、信号、共享内存、信号量、套接口等等,本文采用的是内存共享和信号机制。

(1)内存共享

在该方式中,多个进程可以访问同一块内存空间,它是最快的可用IPC形式,往往使用信号量机制来达到进程同步一互斥。mmap()系统调用使得进程之间可以通过映射同一个普通文件来实现内存共享。当普通文件被映射到进程地址空间后,进程可以向访问普通内存一样来对文件进行访问,而不必再调用 read()和write()等操作。

(2)信号机制

该方式可用于通知接受进程有某种事件发生,是进程间唯一的异步通信机制。该方式的信号安装代码为:

int sigaction(int signum,const struct sigaction*act,struct sigaction*oldact)。

而发送信号的代码为:

int sigqueue(pid_t pid,int sig,const unionsigval val)。

4 运行步骤

将编译好的可执行文件移植到目标板上,需要以下几个步骤:

(1)打开电脑的超级终端程序,将计算机串口与目标板相连;

(2)在ARM板加电初始化完毕后,cd到开发板的tmp文件夹底下,再用超级终端上的上载文件功能,将可执行程序下载到板子上。

(3)在命令行敲人chmod 777 xxx,改变可执行文件的执行权限。

(4)在命令行敲人./xxx,并执行。此后程序开始运行。

5 结束语

本文以可变情报板图形系统的开发为例,阐述了基于QT的应用软件开发方法,其友好的人机交互界面以及反应快速灵敏的特点,使得该系统具有良好的执行效果。目前,该系统已经成功交付使用并具有良好的稳定性。随着嵌入式技术的继续飞速发展和用户需求的不断增加,相信在未来不久,LED可变情报板系统将会发挥越来越多的作用。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

上海2025年9月5日 /美通社/ -- 由纽伦堡会展(上海)有限公司举办的上海国际嵌入式会议将于 2025 年 10 月 16-17 日在上海世博展览馆举办。 此次会议将由三个版块组成:嵌入式技术会议、汽...

关键字: 嵌入式 CE CHINA EMBEDDED

多数受访粉丝认为,AI驱动的功能会对他们观看体育赛事的方式产生重大影响 超过半数的受访者希望通过AI技术获得对过去、现在和未来体育赛事的评论和分析 移动体育应用...

关键字: IBM AI 应用程序 移动

一个线程只能属于一个进程,而一个进程可以有多个线程,线程是进程的一部分,就像工人是工厂的一部分。资源是分配给进程的,同一进程的所有线程共享该进程的全部资源,就像工厂里的工人共享工厂的设备和场地。处理机(CPU)则是分给线...

关键字: 进程 线程

DXC内部新成立的Boomi卓越中心(COE),将成为跨行业客户的创新枢纽 DXC与Boomi携手助力客户整合AI智能体,为规模化应用代理式AI做好准备 弗吉尼亚州阿什伯恩2025年8月19日 /美通社/ --名列财...

关键字: 进程 AI BSP 自动化

上海 2025年7月9日 /美通社/ -- 据Gartner最新研究显示,到2025年全球将有75%的企业将生成式AI纳入核心业务流程。这其中,人力资源领域因其天...

关键字: AI BSP 进程 CHINA

天津2025年6月25日 /美通社/ -- 2025年6月24日至26日,世界经济论坛第十六届新领军者年会(夏季达沃斯论坛)在天津举行。本届年会以"新时代企业家精神"为主题,汇聚来自全球1700余位政...

关键字: 人工智能 进程 BSP 微软

新加坡2025年6月4日 /美通社/ -- THE GROWHUB LIMITED(简称"The GrowHub"或"该公司")是一家总部位于新加坡的公司,利用区块链技术,来提升整...

关键字: 人工智能 进程 AI 供应链

南京 2025年5月30日 /美通社/ -- 日前,国际独立第三方检测、检验和认证机构德国莱茵TÜV大中华区(以下简称"TÜV莱茵"...

关键字: 协作机器人 进程 测试 BSP

爱立信的人工智能(AI)专业知识将在一项崭新的、以瑞典为重点的AI基础设施中发挥核心作用。利用该基础设施,由瑞典一批大型企业组成的联盟将借助英伟达的计算能力,助力推动瑞典的数字化进程。 北京 2025年5月28日 /...

关键字: 爱立信 英伟达 AI 进程

青岛 2025年5月23日 /美通社/ -- 全球领先的消费电子和家电品牌海信今天宣布将谷歌全新Home API集成至其ConnectLife应用程序。今年秋季前,用户可通过该应用程序将第三方智能家居设备接入Conne...

关键字: API NEC 海信 应用程序
关闭