基于QT/Embedded的可變情報(bào)板應(yīng)用程序開發(fā)
3.3 Socket編程技術(shù)
在本應(yīng)用程序中,控制器一般被設(shè)置為服務(wù)器端,其具體的過程如下:
◇創(chuàng)建套接字:int socket(int domain,inttype,int protocol。
◇綁定socket到特定端口:int bind (intsockfd,struct sockaddr*my_addr,int addrlen)。
◇監(jiān)聽套接字端口:int listen(int sockfd,int backlog)。
◇接受客戶端連接請(qǐng)求:int accept (intsockfd,void*addr,int*addrlen);
◇發(fā)送數(shù)據(jù)(面向TCP連接):int send (intsockfd,const void*msg,int len,int flags)。
◇接收數(shù)據(jù)(面向TCP連接):int rear(intsockfd,void*buf,int len,unsigned int flags)。
◇關(guān)閉套接口:close(socket)。
3.4 進(jìn)程間的通信技術(shù)
進(jìn)程間的通信手段主要有管道、消息隊(duì)列、信號(hào)、共享內(nèi)存、信號(hào)量、套接口等等,本文采用的是內(nèi)存共享和信號(hào)機(jī)制。
(1)內(nèi)存共享
在該方式中,多個(gè)進(jìn)程可以訪問同一塊內(nèi)存空間,它是最快的可用IPC形式,往往使用信號(hào)量機(jī)制來達(dá)到進(jìn)程同步一互斥。mmap()系統(tǒng)調(diào)用使得進(jìn)程之間可以通過映射同一個(gè)普通文件來實(shí)現(xiàn)內(nèi)存共享。當(dāng)普通文件被映射到進(jìn)程地址空間后,進(jìn)程可以向訪問普通內(nèi)存一樣來對(duì)文件進(jìn)行訪問,而不必再調(diào)用read()和write()等操作。
(2)信號(hào)機(jī)制
該方式可用于通知接受進(jìn)程有某種事件發(fā)生,是進(jìn)程間唯一的異步通信機(jī)制。該方式的信號(hào)安裝代碼為:
int sigaction(int signum,const struct sigaction*act,struct sigaction*oldact)。
而發(fā)送信號(hào)的代碼為:
int sigqueue(pid_t pid,int sig,const unionsigval val)。
4 運(yùn)行步驟
將編譯好的可執(zhí)行文件移植到目標(biāo)板上,需要以下幾個(gè)步驟:
(1)打開電腦的超級(jí)終端程序,將計(jì)算機(jī)串口與目標(biāo)板相連;
(2)在ARM板加電初始化完畢后,cd到開發(fā)板的tmp文件夾底下,再用超級(jí)終端上的上載文件功能,將可執(zhí)行程序下載到板子上。
(3)在命令行敲人chmod 777 xxx,改變可執(zhí)行文件的執(zhí)行權(quán)限。
(4)在命令行敲人./xxx,并執(zhí)行。此后程序開始運(yùn)行。
5 結(jié)束語
本文以可變情報(bào)板圖形系統(tǒng)的開發(fā)為例,闡述了基于QT的應(yīng)用軟件開發(fā)方法,其友好的人機(jī)交互界面以及反應(yīng)快速靈敏的特點(diǎn),使得該系統(tǒng)具有良好的執(zhí)行效果。目前,該系統(tǒng)已經(jīng)成功交付使用并具有良好的穩(wěn)定性。隨著嵌入式技術(shù)的繼續(xù)飛速發(fā)展和用戶需求的不斷增加,相信在未來不久,LED可變情報(bào)板系統(tǒng)將會(huì)發(fā)揮越來越多的作用。
評(píng)論