版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、LED播放軟件的設(shè)計(jì)開發(fā)1. 引言本論文源于實(shí)際工程 項(xiàng)目,用于 LED播放控制的 PC機(jī)軟件。開 發(fā)平臺為 VisualStudio 2005 。1.1 LED 顯示屏簡介 1LED(發(fā)光二極管 ) 顯示屏是一種利用計(jì)算機(jī)和復(fù)雜數(shù)字信號處理 的電子廣告宣傳屏。它的屏體部分是由微處理器 (主要是單片機(jī) )和驅(qū) 動電路控制運(yùn)行的, 而顯面的圖像或文字由計(jì)算機(jī)編輯軟件編輯獲得 的。它集微機(jī)控制技術(shù)、電子技術(shù)、通信技術(shù)計(jì)算機(jī)圖形學(xué)技術(shù)、數(shù) 字圖像處理技術(shù)為一體,是一種高技術(shù)產(chǎn)品。由于 LED顯示屏這種新 一代信息顯示設(shè)備具有顯示圖案穩(wěn)定、功耗低、壽命長的特點(diǎn),而且 它綜合了各種信息顯示設(shè)備的長處,
2、并且克服了各自的不足。 特別是 由于一幅顯示屏可以顯示不同的內(nèi)容, 顯示方式豐富, 所以在公眾場 合,它具有強(qiáng)烈的廣告宣傳和信息傳遞秀果。 現(xiàn)在國內(nèi)廣告宣傳在經(jīng) 濟(jì)的快速發(fā)展和逐漸形成的市場經(jīng)濟(jì)的推動下發(fā)展很快, 但室外廣告 幾乎都集中于霓虹燈和廣告畫兩種,所以 LED顯示屏以其優(yōu)異的性能 已逐漸被應(yīng)用于大中型商場、證券公司、鬧市區(qū)等處,作為廣告宣傳 和信息傳遞之用。1.2 課題的意義LED播放器4 是指LED顯示屏信息顯示時(shí),顯示部分是顯示屏屏體 按預(yù)定格式從顯示緩存中提出信息, 把它送入顯示屏顯示; 計(jì)算機(jī)負(fù) 責(zé)顯示內(nèi)容 (文字、圖片、圖表 )的編輯,并通過通訊接口向顯示屏發(fā) 送,它是 L
3、ED顯示信息的源泉,顯示內(nèi)容編輯的效果及信息存儲的格 式等直接影響 LED顯示的效果。因此,如何開發(fā)出靈活、高效的控制 系統(tǒng)是一個(gè)非常有意義的研究課題,這也是本論文研究的主要內(nèi)容。 當(dāng)前國內(nèi)的 LED播放器軟件, 主要有靈星雨的 LED演播室占國內(nèi)市場的 70,是LED顯示主要力量; 德普達(dá)LED控制系統(tǒng),它的功能不夠健全, 操作不太簡便。所以 LED控制系統(tǒng)的市場存在很大的潛力,前景十分 廣闊。本文都對他們功能進(jìn)行了融合并增加了新的功能, 增進(jìn)了節(jié)目文件解析的方式及顯示內(nèi)容特效的多樣性,增強(qiáng)了軟件界面美觀性, 操作簡易性。2 .LED 顯示器播放軟件的設(shè)計(jì)由于當(dāng)前 LED播放控制系統(tǒng)存在著很
4、大的市場潛力。 根據(jù) LED顯示 屏系統(tǒng)的具體要求,按照工程實(shí)際需要,要設(shè)計(jì)出更加方便、人性化 的控制系統(tǒng)。因此,如何開發(fā)出靈活、高效的 LED顯示控制系統(tǒng)是一 個(gè)非常有意義的研究課題。本文從工程實(shí)際出發(fā),為 LED顯示屏設(shè)計(jì) 開發(fā)了一套節(jié)目制作與播放的軟件控制系統(tǒng), 用來實(shí)現(xiàn)信息定制與顯 示控制。通常情況下,系統(tǒng)通過與一臺 PC機(jī)連接,開啟,即直接映射 控制站點(diǎn)顯示器的左上部分的顯示內(nèi)容,控制臺來編輯節(jié)目和控制 LED屏幕顯示。2.1 系統(tǒng)的總體結(jié)構(gòu)LED顯示屏控制系統(tǒng),主要功能是編輯和控制 LED上顯示的內(nèi)容。 首先在上位機(jī)制作節(jié)目,然后將要顯示的區(qū)域內(nèi)容傳輸?shù)絃ED,在制作節(jié)目的過程中可
5、以在上位機(jī)預(yù)覽顯示效果。 LED顯示的內(nèi)容豐富多 彩,包括文本、圖形、表格、視頻等。LED的整個(gè)播放系統(tǒng)主要由控制臺 ( 本文制作的軟件 ) 、發(fā)送卡、 接收卡、 LED構(gòu)成。結(jié)構(gòu)如圖 2.1所示。本文主要處理控制臺節(jié)目的編 輯和播放控制。LCD顯示處理LCD屏控制口串機(jī)算計(jì)口接IVD線據(jù)數(shù)網(wǎng)絡(luò)控制接口圖2.1 系統(tǒng)結(jié)構(gòu)框圖2.1.1 軟件系統(tǒng)結(jié)構(gòu)圖LED播放器軟件的結(jié)構(gòu)分為界面模塊、播放模塊、編輯模塊、硬件和軟件設(shè)置模塊。系統(tǒng)模塊具體調(diào)用關(guān)系如圖 2.2 所示。拖動改變坐標(biāo)信息傳送界圖2.2 系統(tǒng)模塊具體調(diào)用關(guān)系2.2 LED 控制器功能設(shè)計(jì)2.2.1 系統(tǒng)設(shè)計(jì)目標(biāo)現(xiàn)代信息顯示技術(shù)的發(fā)展,
6、LED顯示屏以絕對的優(yōu)勢成為主流產(chǎn) 品。LED顯示,根據(jù)不同場合的要求,在具體的使用功能上具有以下 特點(diǎn):高亮度、視角合理,顯示顏色豐富。 PC機(jī)軟件控制對安全性、 實(shí)時(shí)性、準(zhǔn)確性、可靠性要求高。LED顯示屏節(jié)目制作及播放控制的軟件系統(tǒng) (Sea Sky Player 播放 器)為LED顯示屏控制系統(tǒng)開發(fā)的一套節(jié)目制作、 播放的軟件, 主要是 通過圖文控制器實(shí)現(xiàn) LED信息的初始化、顯示和控制等功能,為滿足 用戶的不同需求和不同的應(yīng)用場合,具體目標(biāo)如下:(1) 支持顯示屏參數(shù)軟件的初始化設(shè)置、加載;(2) 支持表格輸入;(3) 支持定時(shí)播放;(4) 支持網(wǎng)絡(luò)功能;(5) 文本支持 Word,E
7、xcel :軟件開發(fā)采用面向?qū)ο蟮募夹g(shù), 具有良好的可擴(kuò)容性。 軟件的功 能實(shí)用、操作方便,并且實(shí)現(xiàn) LED顯示的軟件控制,大大提高了應(yīng)用 的靈活性和軟件的伸縮性。2.3 LED 系統(tǒng)設(shè)計(jì)LED播放器軟件以 Visual Studio 2005 為平臺開發(fā),界面以對話 框?yàn)榛A(chǔ),分為主編輯窗口和播放及編輯預(yù)覽窗口。主編輯窗口以對話框?yàn)榛A(chǔ), 包括菜單欄、 工具欄和節(jié)目編排部 分。其中應(yīng)用一些專門的類進(jìn)行界面美化, 如CBCMen類u 、CToolBarEx 類和 CBtnST類分別美化菜單、 工具欄和按鈕使界面更加親和美觀。 菜 單欄和工具欄包含了系統(tǒng)常用的功能, 方便用戶使用; 節(jié)目編排部分
8、 將用戶編排的節(jié)目以樹狀形式顯示出來, 同時(shí)具有上移, 下移,刪除, 展開和疊起等功能, 方便用戶查看和管理; 節(jié)目效果編輯為用戶提供 了豐富的功能, 使節(jié)目顯示具有豐富的多樣性。 播放及編輯預(yù)覽窗口 是與主對話框相獨(dú)立的窗體,播放時(shí),它是 LED顯示信息的數(shù)據(jù)采集 區(qū)域:編輯時(shí),可以預(yù)覽節(jié)目的編輯效果,其用如下方法實(shí)現(xiàn):this-m parent=this-GetDesktopWindowO ;/ 設(shè)置桌面為父窗 口this-CreateEx(0,AfxRegisterWndClass(0,NULL,NULL, AfxGetApp0 - LoadStandardIcon (IDI_WIN-L
9、OGO), “Screen ”,WS POPUP,Rect,NULL,NULL) 創(chuàng)建窗體這種方法實(shí)現(xiàn)了以桌面為窗 1:1 的父窗口,然后創(chuàng)建出獨(dú)立于主 編輯界面的窗體。2.3.1 節(jié)目窗編輯類功能LED節(jié)目文件由一個(gè)或多個(gè)節(jié)目頁組成。節(jié)目頁有兩種:正常節(jié) 目頁和全局節(jié)目頁,正常節(jié)目頁是節(jié)目主要構(gòu)件,可以有多個(gè),各節(jié) 目頁之間按順序播放; 全局節(jié)目頁只有一個(gè), 在整個(gè)節(jié)目播放過程中 一直播放,主要用于時(shí)鐘,公司標(biāo)志等固定內(nèi)容的播放。節(jié)目頁由一個(gè)或多個(gè)節(jié)目窗組成。 節(jié)目窗是用來顯示用戶所要播 放的文本、圖片、動畫、多媒體片斷等內(nèi)容。 節(jié)目窗有多種:文件窗、單行文本窗、靜止文本窗、表格窗、計(jì) 時(shí)窗
10、、日期時(shí)間窗等。為之對應(yīng),我們設(shè)計(jì)了節(jié)目窗編輯類。主窗口:控制節(jié)目的播放、 暫停和停止, 遠(yuǎn)程控制,屏幕檢測等; 節(jié)目編排對話框:添加節(jié)目頁和節(jié)目窗, 設(shè)置要播放節(jié)目的次序; 編輯節(jié)目對話框:設(shè)置各種節(jié)目的特效。 文件窗:可以播放各種文字、圖片等文件。單行文本窗:用于播放單行文本,例如通知、廣告等文字。 靜止文本窗:用于播放靜止文本,例如公司名稱、標(biāo)題等文字。 表格窗:用于編輯播放表格數(shù)據(jù)。計(jì)時(shí)窗:用于計(jì)時(shí)。支持順計(jì)時(shí)和倒計(jì)時(shí)。 日期時(shí)間窗:用于顯示日期及時(shí)間。圖2.3 介紹了節(jié)目窗編輯類的調(diào)用關(guān)系。名稱功能說明CBaseArea設(shè)置窗口的邊框 ( 顏色、寬度 ) 、顏色、透明、鎖定、 大小、
11、位置、節(jié)目定時(shí)播放等。CFatherWnd管理播放窗口 ( 建立一個(gè)雙鏈表來管理窗口層次 ),并 根據(jù)界面?zhèn)鬟f過來的編輯命令改變播放窗口的外觀 和內(nèi)容。并將播放窗口的位置信息反饋給界面。載入 及保存節(jié)目文件 ( 以xml格式) 。CPlayArea建立播放節(jié)目列表,接收界面?zhèn)鱽淼牟シ趴刂泼钷D(zhuǎn) 發(fā)給播放窗口。COfficeClass管理與播放各種文件, 包括文本文件、 網(wǎng)頁文件、Word excel 文件、圖片文件、flash 文件和各種視頻文件。 除flash 和視頻外,可以用 40多種特效顯示以上文件。其它窗口類為LED顯示提供計(jì)時(shí)、時(shí)鐘、通知、體育比分等相關(guān) 功能。工具欄主窗口菜單欄編輯
12、節(jié)目 對話框節(jié)目頁節(jié)目編排對話框 樹狀節(jié)點(diǎn)模擬時(shí)鐘 時(shí)間日期框數(shù)字時(shí)鐘 DVD框單行文本框Flash表格框文本文件框視頻計(jì)時(shí)器框Wordexcel靜止文本框圖片文本框計(jì)時(shí)框視頻輸入框外部程序框圖2.3 節(jié)目窗編輯類的調(diào)用關(guān)系2.3.2 節(jié)目管理類的設(shè)計(jì)考慮 LED顯示的實(shí)際需要, 本文主要設(shè)計(jì)了以下節(jié)目類: 節(jié)目窗 基 類 (CBaseArea) , 節(jié) 目 編 輯 類 (CFatherWnd) , 單 行 文 本 類 (CSingleLineWord) ,文件類 (COfficeClass) 等。節(jié)目管理類的繼承關(guān)系如圖 2.4 所示圖2.4 節(jié)目管理類的繼承關(guān)系2.4 LED 節(jié)目文件格式
13、設(shè)計(jì)節(jié)目文件是用來存儲 LED播放器編輯的節(jié)目。 由于 LED節(jié)目由多個(gè) 節(jié)目頁組成, 一個(gè)節(jié)目頁由多個(gè)節(jié)目項(xiàng)組成。 鑒于這中多層且分組的 結(jié)構(gòu)形式,采用 XML文件 6 來配置節(jié)目文件。2.4.1 文件概述XML(Extensible Markup Language) 是W3C的標(biāo)準(zhǔn)的可擴(kuò)展標(biāo)記語 言,它被設(shè)計(jì)用來進(jìn)行數(shù)據(jù)的存儲、傳輸以及交換,各種平臺通用, 可移植性好,具有非常廣泛的用途。從寫的角度看,幾乎所有的應(yīng)用 程序都能處理 XML文件,并且通過 DOM提供的方法可以快捷的對 XML文 件進(jìn)行操作。從讀的角度看, XML文件提供了一種簡潔的自解釋的標(biāo) 記方法,幾乎不需要說明文檔, 就
14、能理解 XML格式的配置文件的意義。XML提供了一種樹形層次結(jié)構(gòu),可以很方便的定位某一功能塊。它使 開發(fā)人員能夠?qū)⒔Y(jié)構(gòu)化數(shù)據(jù), 從許多不同的應(yīng)用程序傳遞到桌面, 進(jìn) 行本地計(jì)算和演示。當(dāng)前流行的解析 XML技術(shù)是用 CMarkup類來解析 XML文檔。CMarkUp是基于”壓縮”文檔對象模型 (EDOM:”Encapsulated ” Document Object Model) ,此技術(shù)是計(jì)息 XML的關(guān)鍵。 EDO是M操作XML 元素、屬性和數(shù)據(jù)的簡明方法集。當(dāng)不需要復(fù)雜的 XML特性時(shí),它避 免閱讀大量的 DOM和SAX文檔。它的一套 XML處理方法和產(chǎn)生的效果與 DOM(Documen
15、t Object Model) 是一樣的。但是整個(gè) DOM有無數(shù)的對象 類型,而EDO只M定義了一個(gè)對象: XML文檔,EDO回M到了 XML原始的吸 引力簡單。 由于LED節(jié)目文件是一個(gè)樹形結(jié)構(gòu), 所以本文使用 XML來配 置節(jié)目文件。2.4.2 文件管理本文使用開源的 CMarkup類來對 LED節(jié)目文件進(jìn)行解析。 CMarkUp 封裝了 XML文檔文本、結(jié)構(gòu)和當(dāng)前位置。它提供了增加元素、導(dǎo)航和 得到元素屬性和數(shù)據(jù)能所有方法。 在文檔中操作被執(zhí)行的地方取決于 當(dāng)前位置和當(dāng)前孩子位置。 當(dāng)前位置允許增加一個(gè)元素到文檔中的這 個(gè)位置,而不需要明確指出增加對象到文檔的這點(diǎn)上,在 CMarkup的
16、 有效生命周期里,對象一直保持著一個(gè)用來描述文檔的字符串。在程序中創(chuàng)建一個(gè) XML文檔。CMarkup xml;/ 建立 xml xmI.AddElem(L ” Area”) ; xml.AddAttrib(L ”type ”,L 2 ) ; 類型號”“表示文件 xml.AddAttrib(L ”lock ” ,strfilelock);xml.AddAttrib(L ”clarity ”,L ”0”) ; xml.AddAttrib(L ”transparent ”,L ”0”) ;/ 是否透明 xml.AddAttrib(L ”dlgname”,dlgname) ; / 窗體名字 xml.
17、IntoElem0 ; xml.AddElem(L, ”position ) ;/ 輸入位置信息 xml.AddAttrib(L, ”x l ”, startx) ; xml.AddAttrib(L, ”yl ”, start,y) ;xml.AddAttrib(L, ”x2”, startx+width) ; xml.AddAttrib(L, ”y2”, stmty+height) ; xml.Save( “ c:/Userlrffo.xml ”) ; / 保存文檔到文件 return xml.GetDoc0 ; / 返回 xml3.LED顯示器播放軟件的開發(fā)LED節(jié)目編輯和播放控制器是用來
18、完成 LED顯示內(nèi)容 ( 包括文本、 表格、圖形、時(shí)鐘、計(jì)時(shí)等等 ) 的編輯、預(yù)覽和傳輸?shù)鹊取>庉嬈鞴?能主要包括:動態(tài)的添加、刪除 LED的顯示內(nèi)容,可以在上位機(jī)預(yù)覽 脫機(jī)屏的顯示效果和各個(gè)顯示內(nèi)容進(jìn)行所見即所得的編輯; 使編輯的 內(nèi)容可以持續(xù),既存儲,以便于下次繼續(xù)編輯;也可以將節(jié)目文件編 輯完成后,在進(jìn)行連續(xù)自動播放。3.1 界面簡介LED節(jié)目編輯和控制器是基于對話框的應(yīng)用程序,界面如圖3.1所示。從圖中可以看出界面由標(biāo)題欄、菜單欄、工具欄、播放及預(yù)覽 窗口和節(jié)目編輯窗 ( 包括節(jié)目列表和節(jié)目效果設(shè)置兩部分 )五個(gè)部分 組成。圖 3.1 軟件主界面標(biāo)題欄位于界面最頂部, 顯示應(yīng)用程序國標(biāo)
19、、 文件名稱最小化及 關(guān)閉按鈕。其操作與標(biāo)準(zhǔn) Windows應(yīng)用程序相同菜單欄位于標(biāo)題欄下面,共有 6個(gè)子菜單:文件、控制、包含了 應(yīng)用程序的絕大多數(shù)操作。工具欄位于菜單欄下面, 本文設(shè)置了兩打工具欄, 工具欄中的工 具基本都是菜單欄中使用頻繁的操作。 第一行包括新建、 打開、保存、 復(fù)制節(jié)目窗頁、粘貼、隱藏顯示播放及預(yù)覽窗口、隱藏顯示節(jié) 目編輯窗、 播放文件、 從當(dāng)前指定節(jié)日開始播放、 暫停、停止、幫助、 中英文界面切換: 第二行主要是對播放及預(yù)覽窗口進(jìn)行設(shè)置, 方便對 節(jié)日文件的位置進(jìn)行設(shè)置,包括水平平鋪、垂直平鋪、全屏、靠上放 置、靠下放置、靠左放置、靠右放置、垂直居中、水平居中、全屏居
20、 中、鎖定、變換皮膚等等。播放及預(yù)覽窗口左側(cè)獨(dú)立于主窗口之外的部分, 播放時(shí),它是 LED 顯示信息的數(shù)據(jù)采取區(qū)域,在此窗口看見的顯示信息即為 LED顯示的 內(nèi)容:編輯時(shí), 可以預(yù)覽節(jié)目的編輯效果,用戶可以直接用鼠標(biāo)來調(diào) 整節(jié)目窗韻位置及大小,同時(shí)在此窗口還有右鍵菜單來輔助設(shè)置窗 口。節(jié)目編輯窗位于工具欄下面,占據(jù)了界面的絕大部分。共有 2個(gè) 窗口,左邊的是節(jié)目列表窗口,用于顯示當(dāng)前編輯所要顯示的LED節(jié)日的數(shù)量與種類, 窗口上方有一個(gè)工具欄用來編輯節(jié)日文件, 包括添 加節(jié)目頁、添加節(jié)目窗、復(fù)制節(jié)目窗 ( 頁) 、粘貼、刪除、上移、下移 的操作,同時(shí)窗口中包含右鍵快捷菜單包括上述功能 t 右邊
21、的是節(jié)目 效果屬性設(shè)置窗口,包含基本屬性和效果屬性 2個(gè)界面( 如下圖 ) ,點(diǎn) 擊窗口上方兩個(gè)按鈕來切換?;緦傩允敲恳粋€(gè)節(jié)目窗共有的屬性, 包含窗體名稱、邊框 (類型、寬度、顏色 )、起點(diǎn) X/Y、寬度、高度、 鎖定、透明、定時(shí)等屬性:基本屬性足每一個(gè)節(jié)目窗都有自己的屬性, 各自不同,包括顯示的內(nèi)容、顯示的方式等等。3.2 軟件設(shè)置編制應(yīng)用程序的工程中, 經(jīng)常要用到設(shè)置或者其他少量數(shù)據(jù)的存 盤,以便程序在下一次執(zhí)行的時(shí)候可以使用, 比如說保存本次程序執(zhí) 行時(shí)窗口的位置、大小、一些用戶設(shè)置的數(shù)據(jù)等等,在 Win32編程中, Windows已經(jīng)為我們提供了兩種方便的辦法,那就是使用注冊表 或
22、.ini 文件 (Profile) 來保存少量數(shù)據(jù)。本 文 使 用 的 是 .ini 文 件 , 在 程 序 中 使 用 了 兩 種 方 法 GetPrivateProfileString和WritePrivateProfileString對ini 文件進(jìn)行讀取操作,主要用來存儲最近打開文件、開機(jī)啟動、播放窗口位 置信息、中文界面設(shè)置等信息。GetPrivateProfileString.從 ini 文件的某個(gè) Section 取得一個(gè)key的字符串,它的原形是:GetPrivateProfileString(LPCTSTR lpAppName , / 指向包含 Section 名稱的字符串地
23、址LPCTSTR lpKeyNam,e / 指向包含 Key名稱的字符串地址LPCTSTR lpDefault , / 如果 Key值沒有找到,則返回缺省的字 符串的地址LPTSTR lpRetumedString ,/ 返回字符串的緩沖區(qū)地址DWORD nSiz,e / 緩沖區(qū)的長度LPCTSTR lpFileName /ini 文件的文件名);WritePrivateProfileString /將一個(gè) Key值寫入鋤文件的指定 Section 中,它的原形是:WritePrivateProfileString(LPCTSTR lpAppNam,e / 指向包含 Section 名稱的字符
24、串地址LPCTSTR lpKeyNam,e / 指向包含 Key名稱的字符串地址LPCTSTR lpString, / 要寫的字符串地址LPCTSTR lpFileName /ini 文件的文件名);啟動設(shè)置位于設(shè)置菜單中軟件設(shè)置下, 主要包括開機(jī)啟動和啟動 時(shí)自動加載文件等功能。用戶可以根據(jù)自己的需求對軟件進(jìn)行設(shè)置, 啟動設(shè)置可以在任何時(shí)候進(jìn)行設(shè)置, 在下一次啟動應(yīng)用程序時(shí)這些設(shè) 置生效。設(shè)置的結(jié)果存儲在相應(yīng)的 ini 文件中。LED節(jié)目編輯和控制器用來編輯 LED屏顯示的內(nèi)容,而 LED屏顯示 的內(nèi)容與屏的屬性是密切相關(guān)的,例如,由于全彩 LED來讀取桌面左 上角上的顯示信息,在不知道屏體
25、尺寸的情況 F是無法決定具體顯示 的位置,所以每一個(gè)文件的編輯都是針對特定屬性 ( 大小、位置 ),并 且需要對這些屬性進(jìn)行設(shè)置。 LED節(jié)日編輯和控制器的播放及預(yù)覽窗 一般用顯示屏屏體所包含的發(fā)光點(diǎn)的數(shù)量 ( 列x行)作為其大小的計(jì)量 單位,坐標(biāo)信息相對桌面的位置,設(shè)置界面如圖 3.2 所示。設(shè)置的結(jié) 果存儲在相應(yīng)的 ini 文件中。圖3.2 設(shè)置界面3.3 節(jié)目窗功能實(shí)現(xiàn)3.3.1 窗口基類 (CBaseArea)(1) 模塊功能 設(shè)置窗口內(nèi)某一顏色為透明顏色,即該顏色表示區(qū)域?yàn)橥该鳌?顯示邊框,并可以控制邊框的寬度,顏色,可設(shè)置并顯示背景 顏色。 拖動改變窗口的大小, 位置。在拖動中保證
26、不會超出父窗口的 區(qū)域。 可以鎖定窗 1:3 ,在鎖定狀態(tài)下,窗口鼠標(biāo)信息將發(fā)送給父窗 口。 定時(shí)播放功能。 窗口每隔一個(gè)可設(shè)定時(shí)間后播放一個(gè)可設(shè)定時(shí) 間。3.3.2 編輯窗口 (CFatherWnd)(1) 模塊功能 主要功能是管理播放窗口, 并根據(jù)界面?zhèn)鬟f過來的編輯命令改變 播放窗口的外觀和內(nèi)容。并將播放窗口的位置信息反饋給界面。建立播放窗口列表,管理窗口的層次,載入及保存節(jié)目文件; 編輯列表,包括窗口上移,下移,編輯窗口樣式; 播放及控制通知窗口,播放,暫停,停止: 實(shí)現(xiàn)拖動父窗口時(shí),各播放窗口與父窗口同比例縮放。(2)主要功能實(shí)現(xiàn)節(jié)目文件的存儲。 本程序的節(jié)目文件以 xml格式存儲。
27、在編輯時(shí), 首先對內(nèi)存中的 xml對象進(jìn)行操作。界面下達(dá)保存命令后,將此對象 存儲到磁盤上。窗口層次的管理。 在此類的內(nèi)部用一個(gè)雙鏈表來管理窗口。 鏈表 的每一個(gè)節(jié)點(diǎn)是一個(gè)如下形式的結(jié)構(gòu)體。stmct AreaNodeCBaseArea *m_wnd; / 播放窗口指針AreaNode *m_next / 下一個(gè)節(jié)點(diǎn);AreaNode *m_previous ; / 上一個(gè)節(jié)點(diǎn)int m_pageIndex ; / 節(jié)點(diǎn)所在節(jié)目頁編號int m_order ; / 節(jié)點(diǎn)編號int m_type ; / 窗口類型 .CRect m_lastRect / 上一次播放窗口位置大小,縮放時(shí)使用。;節(jié)目
28、窗口是有層次的, 后一個(gè)節(jié)點(diǎn)表示的窗口要顯示在前一個(gè)節(jié) 點(diǎn)的上面,本文通過”所有者窗口”機(jī)制實(shí)現(xiàn),即前一節(jié)點(diǎn)的窗口為 后一節(jié)點(diǎn)窗口的所有者窗口, 這樣會保證后一窗口將顯示在前一窗口 的上面。某窗口的所有者窗口是在窗口創(chuàng)建的時(shí)候指定的 . 創(chuàng)建后不 可改變。指定方法如下:this 一 CreateEx(0 ,strWndClass ,M,WS_POPU,Pm_areaRect, owner一 m_hWn,d NULL);該語句的實(shí)現(xiàn)是在具體的播放窗口內(nèi), 但在 CFatherWnd中調(diào)用并 指定其 owner。當(dāng)窗口的層次需要調(diào)整時(shí) (如上下移動,刪除窗口 ) ,由于窗口所 有者不能改變,當(dāng)前采
29、用的方法是將鏈表刪除后再按新的順序重新建 立窗口。為了保證不大量刪除和建立鏈表及窗口。 程序鏈表每次只建立一個(gè)節(jié)目頁的長度節(jié)目編輯。界面下達(dá)的所有節(jié)目編輯命令首先體現(xiàn)在節(jié)目文件 對象中,再調(diào)用 CBaseArea: ModifyAreaStyle0 顯現(xiàn)在窗口上。當(dāng) 前頁面屬性的傳遞方法是利用 XML文件,當(dāng)選擇的窗口屬性變化時(shí), 有界面通過 ModifyChildAreaStyle0 或 ModifyAreaStyle() 函數(shù)向下 傳遞修改后的屬性 xml字符串。 CFatherWnd類找到相應(yīng)的播放窗口, 并將此字符串傳遞下去,最后顯現(xiàn)在窗口中。播放窗口同比例縮放。3.4 節(jié)目效果編輯實(shí)
30、現(xiàn)與應(yīng)用節(jié)目效果編輯是 LED節(jié)目編輯和控制器的最主要的工作之一,它 決定了 LED顯示什么內(nèi)容以及如何顯示。脫機(jī)屏的每一個(gè)獨(dú)立的顯示 內(nèi)容稱為一個(gè)顯示項(xiàng), 編輯器是以顯示項(xiàng)為單位進(jìn)行編輯的, 包括文 本顯示項(xiàng)、表格顯示項(xiàng)、視頻顯示項(xiàng)等。3.4.1 單行文本(1) 模塊功能用設(shè)定的特效顯示一行文本; 設(shè)定顯示字體,背景顏色。特效播放速度,停留時(shí)間。(2) 功能實(shí)現(xiàn)文本的顯示,利用 CDC類的 TextOut函數(shù)。特效的實(shí)現(xiàn)。 當(dāng)前的特效實(shí)現(xiàn)方式為利用定時(shí)器, 當(dāng)定時(shí)時(shí)間 到時(shí),在新的位置輸出字符串,或者覆蓋字符串的新的位置。程序運(yùn) 行起來后則體現(xiàn)出文字的一定或覆蓋效果。3.4.2 靜態(tài)文本能夠
31、完成對所要顯示的文字進(jìn)行行距、 字距的調(diào)整; 對所編輯的 文字進(jìn)行居中、平分、左對齊、右對齊的排列;背景顏色的調(diào)整和背 景圖片的顯示等。文件窗口是節(jié)目效果編輯窗口中最重要的窗口之一。 本窗口的主 要工作是完成各種文件的管理與播放工作, 主要工作由 COfficeClass 類來完成,下面介紹本類中文件播放的整體架構(gòu)。圖 3.3 介紹的是文 件播放模塊的整個(gè)程序流程結(jié)構(gòu)。 文件播放模塊根據(jù)播放命令對指定 的文件進(jìn)行播放, 需要管理包括文本文件、 網(wǎng)頁文件、Word文件、Excel 文件、 Flash 文件和視頻文件在內(nèi)的六種類型文件,設(shè)計(jì)這么多的文 件類型大大增加了 LED顯示節(jié)目的豐富性和多彩
32、性。圖 3.3 文件播放整體架構(gòu) 當(dāng)界面選擇好要播放的文件, 將消息傳遞個(gè)文件播放模塊, 然后 文件播放模塊讀入指定的文件信息后, 需依據(jù)不同類型文件的實(shí)現(xiàn)方法完成文件的播放功能。本文處理文件信息的流程如圖 3.4 所示定時(shí)中斷負(fù)責(zé)對已知圖片進(jìn)行分步顯示, 從而實(shí)現(xiàn)特技效果。 由 于節(jié)目播放過程比較復(fù)雜, 為了提高程序的健壯性, 采用了狀態(tài)機(jī)思 想,共有 6個(gè)狀態(tài),當(dāng)程序處在不同的狀態(tài)時(shí),進(jìn)行不同的操作,實(shí) 現(xiàn)節(jié)目文件的播放。cnum PlayState / 特效播放時(shí)的狀態(tài) State_Stop = 0, /停止?fàn)顟B(tài),初始化狀態(tài) .State_Start , / 開始狀態(tài),分配資源,初始化變
33、量State End , / 結(jié)束狀態(tài),收回資源,State Run , / 播放狀態(tài),表示以指定特效飛入的過程State_Still/ 靜止?fàn)顟B(tài),表示圖片顯示特效完成后的靜止?fàn)顟B(tài), State_Fade / 針對圖片文件存在的圖片清場特效顯示的狀態(tài) );3.5 串口通信 8在 VC+編程壞境下,有兩種實(shí)現(xiàn)串口通信的方法:一種是用 ActiveX 控件實(shí)現(xiàn),另一種是用 Windows API 函數(shù)實(shí)現(xiàn)。本文利用 Windows API函數(shù)實(shí)現(xiàn)串口通信。Windows環(huán)境下的編程的最大特征之一就是設(shè)備無關(guān)性,它通過 設(shè)備驅(qū)動程序?qū)?Windows應(yīng)用程序與不同的外部設(shè)備隔離,封裝了 Window
34、s的通信機(jī)制,這種方式稱為通信 API。在 Windows環(huán)境下,串 口是系統(tǒng)資源的一部分。 應(yīng)用程序要使用串口進(jìn)行通信, 必須在使用 之前向操作系統(tǒng)提出資源申請要求 (打開串口 ) ,通信完成后必須釋放 資源(關(guān)閉串口 ) 。在打開串口前,用戶應(yīng)先選擇串口編號及波特率, 只有在打開串口成功時(shí),才可以傳輸數(shù)據(jù),傳輸完成后,用戶應(yīng)當(dāng)關(guān) 閉串口,為了提高程序的健壯性,即使用戶沒有關(guān)閉串口,在對話框 退出時(shí),程序也會自動關(guān)閉串口。3.5.1 模塊功能本文串口通信模塊的 UI 部分,包含基本設(shè)置、 顏色設(shè)置、 系統(tǒng)設(shè) 置、亮度對比度設(shè)置、開關(guān)電源、鎖定內(nèi)容等。主要實(shí)現(xiàn)起點(diǎn)、屏 體電源、亮度、 Gamm
35、校a 正、顏色交換、對比度、色溫的控制,該模 塊的核心為串口通信部分,通過上位機(jī)的 COM口與數(shù)據(jù)發(fā)送卡進(jìn)行數(shù) 據(jù)交換,來完成對發(fā)送卡的控制, PC機(jī)上要顯示的內(nèi)容通過顯卡的 DVI 接口將數(shù)據(jù)流傳到 LED的發(fā)送卡;串口通信的幀格式為: 1位起始位, 8位數(shù)據(jù)位, 2位停止位,無奇偶校驗(yàn)位,波特率為 115200;控制命令 是以自己定義的傳輸協(xié)議進(jìn)行數(shù)據(jù)傳輸。串口通信部分的主要功能有:(1) 打開、關(guān)閉指定 COM口;(2) 設(shè)定串行通信幀格式;(3) 讀寫串口數(shù)據(jù);(4) 枚舉計(jì)算機(jī)上可用串 H(COMl.COMl0;)(5) 查找發(fā)送卡;(6) 從配置文件中讀取數(shù)據(jù)、將數(shù)據(jù)寫入配置文件;(7) UI 數(shù)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年離婚協(xié)議書填寫指南
- 烘焙行業(yè)面包制作培訓(xùn)總結(jié)
- 網(wǎng)店管家知識培訓(xùn)課件
- 沙石廠電工知識培訓(xùn)課件
- 早餐食品銷售工作總結(jié)
- 玉溪農(nóng)業(yè)職業(yè)技術(shù)學(xué)院《設(shè)備安全學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 襄陽汽車職業(yè)技術(shù)學(xué)院《P與標(biāo)志設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 婚慶服務(wù)行政后勤工作總結(jié)
- 2024棉花種子聯(lián)合種植與銷售合作協(xié)議3篇
- 農(nóng)業(yè)衛(wèi)生防疫指南
- 2025年廣東汕頭市人大常委會辦公室招聘聘用人員3人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2024江蘇泗陽縣交通產(chǎn)業(yè)集團(tuán)招聘第一線操作人員招聘39人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- GB 19272-2024室外健身器材的安全通用要求
- 學(xué)校食堂菜譜及定價(jià)方案
- 變電一次設(shè)備標(biāo)準(zhǔn)缺陷庫
- 防火門施工方案
- 你比劃我猜題目大全
- 人教PEP版2022-2023六年級英語上冊期末試卷及答案(含聽力材料)
- 社區(qū)護(hù)理學(xué)教學(xué)設(shè)計(jì)教案
- (完整word版)師徒結(jié)對活動記錄表
- 研發(fā)準(zhǔn)備金制度企業(yè)研發(fā)準(zhǔn)備金制度范文2016
評論
0/150
提交評論