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

正文內(nèi)容

車載娛樂系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文-資料下載頁

2025-06-27 16:28本頁面
  

【正文】 這一狀態(tài)將改變。:圖 鏈路初始化此時(shí)系統(tǒng)工作狀態(tài)正常,因?yàn)樵凇巴ㄓ崝?shù)據(jù)監(jiān)控中心”顯示收到持續(xù)的鏈路測試幀。:圖 鏈路正常 在5S內(nèi)沒有收到鏈路測試幀,鏈路狀態(tài)轉(zhuǎn)為“鏈路故障”。:圖 鏈路故障在10S內(nèi)沒有收到鏈路測試幀,鏈路狀態(tài)轉(zhuǎn)為 “斷開”。此時(shí),所有相關(guān)按鈕均不再可用。:圖 鏈路斷開 CD/DVD播放機(jī)測試在按下播放/暫停鍵后,可以查看播放狀態(tài)中顯示為“暫?!薄4藭r(shí),下位機(jī)為暫停狀態(tài)。:圖 CD/DVD播放機(jī)暫停圖 下位機(jī)PAUSE再次按下播放/暫停鍵后,可以查看播放狀態(tài)中顯示為“播放”。此時(shí)下位機(jī)重新播放。:圖 CD、DVD播放機(jī)播放 下位機(jī)PLAY “快退”、“快進(jìn)”、“下一曲”、“上一曲”、“記憶停止”、“停止”、“靜音”、“解除靜音”、“EJECT”按鍵時(shí)下位機(jī)狀態(tài)。圖 快退圖 快進(jìn)圖 下一曲圖 上一曲 圖 記憶停止圖 停止圖 靜音圖 解除靜音圖 EJECT 出倉 AM/FM測試。圖 AM/FM控制界面“上一臺”測試,下位機(jī)與控制端顯示狀態(tài)符合。圖 FM/AM電臺1 711KHz圖 位機(jī)電臺1 711KHz“下一臺”測試,下位機(jī)與控制端顯示狀態(tài)符合。圖 M/AM 電臺2 810KHz圖 下位機(jī)電臺2 810KHz“上一頻率”測試,下位機(jī)與控制端顯示狀態(tài)符合。圖 FM/AM電臺3 837KHz 位機(jī)電臺3 837KHz“下一頻率”測試,下位機(jī)與控制端顯示狀態(tài)符合。 AM/FM 電臺3 801KHz 位機(jī)電臺3 801KHz Mobile_TV 測試移動電視的功能測試包括頻道選擇和聲音大小調(diào)節(jié),按下頻道選擇,進(jìn)行頻道選擇。按下聲音調(diào)節(jié)按鈕,每次可調(diào)節(jié)一個(gè)單位的聲音。 頻道選擇測試 圖 聲音微調(diào)測試 結(jié) 論本次畢業(yè)設(shè)計(jì)中控制程序,是本人獨(dú)立完成的第一基于MFC的較為復(fù)雜的程序。由于是在Eesee平臺開發(fā)PC端的控制程序,而Eesee平臺硬件已經(jīng)定型,所以其信息幀(協(xié)議)是規(guī)定好的。所以,在一開始的時(shí)候,為了盡快熟悉規(guī)定的這套信息協(xié)議本人不得不通過一些串口調(diào)試工具()手工來進(jìn)行調(diào)試。這一過程是極其枯燥和復(fù)雜的,因?yàn)樗行畔仨氁允M(jìn)制發(fā)送并且要手工添加校驗(yàn)。但是,完成這一過程后我才發(fā)現(xiàn),這些瑣碎的工作是必不可少的。它為迅速熟悉協(xié)議,在完成代碼之前系統(tǒng)的定義描述各種信息幀(協(xié)議族)的數(shù)據(jù)結(jié)構(gòu)頭文件打下了很深的基礎(chǔ)。所以,在這里再一次印證了軟件工程中的一個(gè)重要思想,代碼實(shí)現(xiàn)只是軟件工程中的一部分工作,嚴(yán)謹(jǐn)而正確的需求分析是工程開發(fā)的基礎(chǔ)。當(dāng)然在開發(fā)中也遇到很多棘手的問題,甚至有一些到最后也沒有很完美的解決。其中一個(gè)問題是這樣:在控制端發(fā)送 “搜索”命令時(shí),控制端“狀態(tài)顯示控件”以及“通訊數(shù)據(jù)監(jiān)控中心”的數(shù)據(jù)更新會逐漸減慢,最后停止。起初,針對出現(xiàn)的這一問題也毫無解決辦法。檢查了多遍代碼,發(fā)現(xiàn)不會是代碼出錯(cuò)的問題。后來,靜下心來轉(zhuǎn)而開始懷疑是用的工具的問題。如果是工具的問題那么有兩種情況,一是通過Win32窗口程序的UpdateData()來更新窗口控件數(shù)據(jù)頻率太高時(shí)會造窗口顯示線程死掉;二是MSComm控件在短時(shí)間內(nèi)響應(yīng)大量接收事件并且要接收大量數(shù)據(jù)時(shí)會造成接收線程死掉。針對這兩種情況,本人分別做了實(shí)驗(yàn)。最后,證實(shí)是第二種情況的可能性比較大。雖然還不能完全肯定,因?yàn)闆]有找到詳細(xì)的權(quán)威的對于MSComm控件功能,性能的說明文檔。但是,網(wǎng)上流傳的幾乎所有針對串口的Vc程序都不是以MSComm為基礎(chǔ)的,而是通過WIN32相應(yīng)API來直接進(jìn)行串口的控制。由此可以肯定,MSComm的封裝一方面方便了大多數(shù)使用者,但是同時(shí)它也不可避免的導(dǎo)致了程序的低效率。由于畢設(shè)到最后才發(fā)現(xiàn)這個(gè)問題,已經(jīng)不能隨便更改控制串口的方法了,否則將不得不重新設(shè)計(jì)整個(gè)程序。這里又印證了軟件工程中的一個(gè)思想:軟件的前期規(guī)劃是整個(gè)軟件工程的生命線,隱藏的錯(cuò)誤越是往后托,更正這一錯(cuò)誤的損失無疑更大,甚至對于整個(gè)工程將會是致命的。參考文獻(xiàn)[1] 李長林,高潔,Visual C++ 串口通信技術(shù)與典型實(shí)例,清華大學(xué)出版社,2006年[2] 龔建偉,熊光明,Visual C++/Turbo C 串口通信編程實(shí)踐,電子工業(yè)出版社,2002年[3] 譚思亮,鄒超群等,Visual C++串口通信工程開發(fā)實(shí)例導(dǎo)航,人民郵電出版社,2003年[4] 賽奎春,Visual C++ 工程應(yīng)用與項(xiàng)目實(shí)踐,機(jī)械工業(yè)出版社,2005年[5] 梁普選,Visual C++ 程序設(shè)計(jì)與實(shí)踐,清華大學(xué)出版社,2005年[6] Steven Holzner,Visual C++輕松進(jìn)階,電子工業(yè)出版社,1999年[7] 邱仲潘,柯渝,謝燕華,Visual C++6從入門到精通,電子工業(yè)出版社,2005年[8] 孫涵芳,徐愛卿等,單片機(jī)原理及應(yīng)用,北京航空航天大學(xué)出版社,2002年[9] 李現(xiàn)勇,Visual C++,2002[10] 石峰,程序設(shè)計(jì)基礎(chǔ),清華大學(xué)出版社,2003[11] 張曉紅,VC++中串行通信程序設(shè)計(jì),山西電子技術(shù),2008[12] 王中訓(xùn),徐超,王德法,基于VC++ ,計(jì)算機(jī)應(yīng)用,2008附錄/////////接收,校驗(yàn)數(shù)據(jù)幀/////////bool CFifthDlg::FL_Rdispatch(){ short i,len,size,hsize。 BYTE bytebuf。 WORD wordbuf。 BYTE check。 SAFEARRAY* psa。 unsigned char ch1,ch2。 ch1=ch2=0。 if(!half) { ()。 len=()。 if(len3) { vframe=()。 size=FL_getlen()。 CMemFile mf。 ((BYTE*)pvData,size)。 ((void*)amp。bytebuf,sizeof(BYTE))。 if(bytebuf!=0x55) { return false。} ((void*)amp。wordbuf,sizeof(WORD))。 if(wordbufsize1) { half=true。 return false。} else { if(wordbuf==size1) { CMemFile mdis1。 ((BYTE*)pvData,wordbuf+1)。 for(i=0。i=wordbuf。i++) { ((void*)amp。bytebuf,sizeof(BYTE))。 ()。 (%x,bytebuf)。 m_edit_show+=showstr+ 。} m_edit_show+=\r\n。 if(checksum(vframe)) { dealgot(vframe)。 half=false。} else { half=false。 return false。} } else {return false。} }}} else { _variant_t vt。 vt=()。 hsize=FL_getlen()。 size=FL_getlen()。 psa=SafeArrayCreateVector(VT_UI1,0,hsize+size)。 CMemFile mt。 ((BYTE*)psapvData,hsize+size)。 (()pvData,size)。 (()pvData,hsize)。 ()。 =VT_ARRAY|VT_UI1。 =psa。 size=FL_getlen()。 CMemFile mf。 ((BYTE*)pvData,size)。 ((void*)amp。bytebuf,sizeof(char))。 ((void*)amp。wordbuf,sizeof(WORD))。 if(wordbufsize1) { half=true。 return false。} else { if(wordbuf==size1) { CMemFile mdis1。 ((BYTE*)pvData,wordbuf+1)。 for(i=0。i=wordbuf。i++) { ((void*)amp。bytebuf,sizeof(BYTE))。 ()。 (%x,bytebuf)。 m_edit_show+=showstr+ 。} m_edit_show+=\r\n。 if(checksum(vframe)) { dealgot(vframe)。 half=false。 return true。} else { half=false。 return false。}} else return false。}}}///////////控制按鈕舉例Onbutton1()///////////////////void CFifthDlg::Onbut1() { switch(src) { case 1: kuaijin=0。 kuaitui=0。 ()。 if(play==1) { play=0。 m_edit_channelshow+=暫停。 btime=CTime::GetCurrentTime()。 } else { play=1。 stop=0。 change=true。 m_edit_channelshow+=播放。} =0x0400。 =0x05。 =checksum((char*)amp。disconf,sizeof(disconf))。 mssend((const char*)amp。disconf,sizeof(disconf))。 break。 case 2: =0x02。 =0x1C。 =checksum((char*)amp。fmturnf,sizeof(fmturnf))。 mssend((const char*)amp。fmturnf,sizeof(fmturnf))。 ()。 m_edit_channel=FM:。 ()。 break。 case 3: =0x03。 =0x1C。 =checksum((char*)amp。fmturnf,sizeof(fmturnf))。 mssend((const char*)amp。fmturnf,sizeof(fmturnf))。 break。 case 4: =_BW_PLAYSOURCE_VIDEO_DTV_。 =_BW_ENTERTAINMENTACTION_PREV_。 =checksum((char*)amp。fmturnf,sizeof(fmturnf))。 mssend((const char*)amp。fmturnf,sizeof(fmturnf))。 break。 }}52
點(diǎn)擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1