freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

rds數(shù)據(jù)處理系統(tǒng)設(shè)計畢業(yè)論文(編輯修改稿)

2025-07-25 09:06 本頁面
 

【文章內(nèi)容簡介】 第4章 系統(tǒng)程序設(shè)計整個RDS數(shù)據(jù)數(shù)據(jù)處理系統(tǒng)是完全基于軟件進行設(shè)計的,使用C++編程語言,實現(xiàn)面向?qū)ο蟮某绦蛟O(shè)計。 系統(tǒng)概述本系統(tǒng)主要針對RDS(廣播數(shù)據(jù)系統(tǒng))數(shù)據(jù)結(jié)構(gòu)開發(fā)出一個能對RDS數(shù)據(jù)進行處理的系統(tǒng)軟件,根據(jù)RDS各個數(shù)據(jù)位解析出希望得到的信息,本系統(tǒng)由RDS 數(shù)據(jù)接收、RDS 數(shù)據(jù)解析、RDS 數(shù)據(jù)音頻轉(zhuǎn)化、RDS 數(shù)據(jù)存儲等功能模塊組成,通過串口接收RDS數(shù)據(jù),然后對接收到的RDS數(shù)據(jù)進行存儲并解析,并利用MFC編程設(shè)計出界面對解析后得到的信息進行顯示,對必要的文本信息進行音頻轉(zhuǎn)化并播放出來,這樣不僅可以滿足人們的可視化需求,而且能夠方便的播放出有用的文本信息,使用戶獲得豐富的視覺和聽覺體驗。開始結(jié)束打開串口,接收RDS數(shù)據(jù)將RDS數(shù)據(jù)存儲到緩沖區(qū),并調(diào)整各信息位MFC編程界面顯示信息控制信息提出文本段信息串口發(fā)送到文本轉(zhuǎn)語音程序播放語音解析RDS數(shù)據(jù) RDS數(shù)據(jù)處理系統(tǒng) RDS數(shù)據(jù)類定義C++語言的精髓即面向?qū)ο蟪绦蛟O(shè)計,因而系統(tǒng)設(shè)計中首先要將處理的數(shù)據(jù)封裝為一個個類,類中包括變量和函數(shù)兩部分。 定義基類 首先要為RDS數(shù)據(jù)類設(shè)計一個基類,即——CRDSBase,類中聲明包括9個成員變量以及三個函數(shù)。9個成員變量為:A_Block 、check_codeA、B_Block 、check_codeB、C_Block 、check_codeC、D_Block 、check_codeD以及k,前八個變量屬于unsigned類型,分別代表四塊數(shù)據(jù)的信息位和校驗位,k屬于整型變量,用于表示RDS數(shù)據(jù)具體的組型。由于每組數(shù)據(jù)的都符合這個基本結(jié)構(gòu),所以要定義這個基類,考慮到代碼優(yōu)化問題,再定義其余32種具體的數(shù)組類時可從基類派生得到,這樣可以提高效率,節(jié)省代碼空間。 基類的函數(shù)包括:1) .構(gòu)造函數(shù):CRDSBase(void)。采用默認;2) .析構(gòu)函數(shù):~CRDSBase(void)。 采用默認;3) .調(diào)整信息位函數(shù):void adjust_Base(unsigned char *buffer)。需自定義,內(nèi)存緩沖區(qū)是以字節(jié)為單位來存儲接收到的unsigned型的數(shù)據(jù)的,通過左移、右移的基本操作調(diào)整信息位,這樣就可明確各信息位在緩沖區(qū)的位置,方便提取操作;4) .判斷數(shù)組類型函數(shù):int DecideVersion(unsigned char *buffer)。,需自定義,(buffer[3]2)amp。0x0f對應(yīng)的即為組型碼,4位,范圍是015,提取出來進行判斷進入分支語句,每個分支于句再利用(buffer[3]1)amp。0x01判斷版本類型,函數(shù)返回k。 定義各組數(shù)據(jù)類1 定義變量 RDS數(shù)據(jù)一共有32種組型,每種組型的數(shù)據(jù)內(nèi)容都差別,因而要為每種組型的RDS數(shù)據(jù)定義類,包括RDS_0A、RDS_0B、RDS_1A、RDS_1B、……RDS_15A、RDS_15B共32種,但目前在RDS數(shù)據(jù)規(guī)范中有明確定義的數(shù)據(jù)并不足32種。各數(shù)據(jù)類中的變量包括CString類型、unsigned char等類型,依據(jù)需要存儲的信息不同而定,CString用于存儲解析后的字符串信息,unsigned char用于存儲雙字節(jié)字符。具體內(nèi)容根據(jù)RDS數(shù)據(jù)規(guī)范定義。 2 定義函數(shù)1).構(gòu)造函數(shù):CRDSBase(void)。 采用默認;2).析構(gòu)函數(shù):~CRDSBase(void)。 采用默認;3).調(diào)整信息位函數(shù):例如:void adjust_RDS_0A(unsigned char *buffer)。,需自定義,無返回值,針對具體數(shù)據(jù)組型調(diào)整方式不同,這里調(diào)整信息位屬于二次調(diào)整,各位的信息進一步具體明確,便于對不同信息進行提取、判斷或解析;4).解析函數(shù):例如:void CRDS_0A::translate_0A(unsigned char *buffer),需自定義,針對不同組型其解析函數(shù)不同,參數(shù)為從緩沖區(qū)中讀取的二進制數(shù)據(jù),無返回值,解析后的文字信息分別存儲在各自類的字符串變量里,簡單的解析函數(shù)采用switchcase語句或ifelse語句結(jié)構(gòu)即可,其余解析方法在后面解析模塊中進行具體說明。類定義語句存儲到各自的頭文件中,函數(shù)定義語句存儲到各自的源文件中。 模塊設(shè)計對RDS數(shù)據(jù)的處理包括接收、解析、顯示、存儲以及語音化,下面就按這五個功能對各個模塊的設(shè)計進行說明。 接收模塊接收模塊用以完成RDS數(shù)據(jù)的接收,包括通過已經(jīng)存儲好RDS數(shù)據(jù)文件的接收以及通過串口調(diào)試助手和虛擬串口的接收。1. 從文件中接收數(shù)據(jù)主要通過軟件設(shè)計,使用文件讀取語句以及改變指針等操作完成,此時需要設(shè)置變量記錄點擊接收按鈕的次數(shù),由于一幀RDS數(shù)據(jù)占用13個字節(jié),因此每點擊一次讀取數(shù)據(jù)的按鈕,從文件中讀取的數(shù)據(jù)指針就應(yīng)向后移動13個字節(jié),這樣每次讀取的數(shù)據(jù)才不同 。2. 通過串口接收數(shù)據(jù)時需要用到MFC中最常用的串口通訊方法即使用MSComm控件,該控件提供了一系列標準通信命令的接口,它允許建立串口連接,還可以發(fā)送命令、進行數(shù)據(jù)交換以及監(jiān)視和響應(yīng)在通信過程中可能發(fā)生的各種錯誤和事件,從而可以用它創(chuàng)建全雙工 、事件驅(qū)動的、高效實用的通信程序。使用該控件可以檢測緩沖區(qū)中是否有數(shù)據(jù),有數(shù)據(jù)的情況下然后觸發(fā)OnComm消息,然后對數(shù)據(jù)進行處理。:讀緩存消息變量轉(zhuǎn)換將數(shù)據(jù)存入BYTE型數(shù)組YY緩沖區(qū)中數(shù)據(jù)多于一個字符?NN接收RDS數(shù)據(jù)到緩沖區(qū)串口打開?設(shè)置串口號及其工作狀態(tài)引發(fā)接收數(shù)據(jù)的OnComm事件轉(zhuǎn)化成CString型變量同時顯示在編輯框中 接收模塊 解析模塊接收到的RDS數(shù)據(jù)為二進制形式的數(shù)據(jù)流,要解析這些數(shù)據(jù)應(yīng)每次從文件中讀取一幀數(shù)據(jù)到緩沖區(qū)中或從串口接收一幀數(shù)據(jù)存儲到緩沖區(qū),然后調(diào)整各信息位,提取組型碼判斷數(shù)組類型,依據(jù)不同組型再將數(shù)據(jù)讀到定義的具體32類數(shù)組中的一類,再次調(diào)整信息位,然后調(diào)用該類的解析方法進行解析,解析方法以及解析得到文字內(nèi)容需要根據(jù)RDS數(shù)據(jù)規(guī)范來定義,:解析,調(diào)用Translate_0A(unsigned char *buffer)解析,調(diào)用Translate_15B(unsigned char *buffer)調(diào)整各信息位,調(diào)用adjust_0A(unsigned char *buffer)調(diào)整各信息位,調(diào)用adjust_0A(unsigned char *buffer)…………提取組型碼判斷組型,調(diào)用DecideVersion()0A組15B組0B組15A組建立一個char型數(shù)組取一幀數(shù)據(jù)到緩沖區(qū)調(diào)整各信息位,調(diào)用adjust_Base(unsigned char *buffer)…………………… 解析模塊由于每組數(shù)據(jù)內(nèi)容都有差別,相應(yīng)的解析方法也就有一定差別,下面舉出幾組常用的數(shù)據(jù),針對其解析方法進行說明:l 0組:基本調(diào)諧和開關(guān)信息。PI碼包含國家識別碼、區(qū)域識別碼和節(jié)目基準號,TA、PTY、M/S這些信息通過查找廣播數(shù)據(jù)系統(tǒng)技術(shù)規(guī)范,使用switchcase語句或if語句即可解析;DI碼共4位,每個0A組只發(fā)送一位,由CC0確定確定這些位在DI碼中的位置,且高位d3先發(fā);AF可通過查表得到;顯示PS用的四個雙字節(jié)字符按照規(guī)范中附錄B規(guī)定的字符代碼來發(fā)送,兩個字節(jié)確定一個字符,這些字符在顯示業(yè)務(wù)名中的位置亦由CC0確定,顯示時字符的位置從左到右遞增,解析時設(shè)置一個包含三個數(shù)據(jù)的unsigned char型數(shù)組ps[2],前兩個數(shù)據(jù)分別存儲兩個字節(jié)的PS信息,最后的數(shù)據(jù)存儲0。0B組C塊數(shù)據(jù)與A塊相同,不用解析,也沒有AF信息,其余部分與0A組相同。 0A組和0B組l 1A組:節(jié)目欄目號和慢標志碼。B塊的最后5位:B4~B2:發(fā)射機網(wǎng)絡(luò)組標號,把發(fā)射機網(wǎng)絡(luò)指定成被尋呼者組碼中的一個組碼,不屬于指定組碼的尋呼不應(yīng)被鎖定于該發(fā)射網(wǎng)絡(luò),;使用發(fā)射機網(wǎng)絡(luò)組標號能同時使用1~4個網(wǎng)絡(luò)來發(fā)送尋呼信息,這樣可以在白天高峰期使用幾個網(wǎng)絡(luò),在晚間只使用一個網(wǎng)絡(luò);B1~B0:節(jié)點期間的同步和識別;慢標志碼:B15為聯(lián)網(wǎng)啟動碼LA,B14~B12 為用途碼,決定后12位信息代表的具體含義,這12位信息分別解析;PIN碼代表廣播電臺公布的節(jié)目開始日期和時間,包括日(0~31)、時(0~23)、分(0~59),(“%d”,day)直接將unsigned類型的數(shù)據(jù)傳遞進去即可得到十進制的顯示。 發(fā)射網(wǎng)絡(luò)組碼B4B3B2組碼組碼的數(shù)目000信道上無尋呼信息00100~9910001000~394001140~996010040~693010170~993011000~192011120~3920 1A組l 2組:廣播文本。B塊最后四位的地址碼用于定位C塊或D塊中的消息文本,共16種地址,一個RT段包含4個單字節(jié)字符或2個雙字節(jié)字符,所以2A組可以傳送64個單字節(jié)字符或32個雙字節(jié)字符的文本消息,而2B組包含2個單字節(jié)字符或一個雙字節(jié)字符,所以可以傳送32個單字節(jié)字符或16個雙字節(jié)字符的文本消息,解析時用Unsigned char型數(shù)組來存儲兩塊數(shù)據(jù),每個數(shù)據(jù)8位,共32位,即一幀2A數(shù)據(jù)對應(yīng)兩個雙字節(jié)字符的RT信息,這是計算機識別出來的即為對應(yīng)的字符,接收一幀2組數(shù)據(jù)后則應(yīng)檢測下一幀是否為同組型數(shù)據(jù),若相同,則解析后依據(jù)地址碼組合文本信息;A/B文本標志:對于某段,若標志位變化,則清除所有文本顯示,將新接收的文本信息顯示到對應(yīng)的未顯示的空閑位,表示未接收到更新消息的段或者字符,若未檢測到變化,則將新接收的文本信息顯示在現(xiàn)有的顯示位置,那些未接收更新消息的段或字符保持不變。 2A和2B組
點擊復(fù)制文檔內(nèi)容
外語相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1