<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于DLNA數(shù)字媒體適配器的設(shè)計

          基于DLNA數(shù)字媒體適配器的設(shè)計

          作者: 時間:2012-12-20 來源:網(wǎng)絡(luò) 收藏

          3 軟件設(shè)計
          本系統(tǒng)作為產(chǎn)品,符合其開發(fā)標(biāo)準(zhǔn)。表1中列出了互操作架構(gòu)下的關(guān)鍵技術(shù),系統(tǒng)功能實現(xiàn)所需技術(shù)也如表1所列。軟件程序采用C語言編寫,利用Intel SDKfor UPNP Devices的庫文件代碼一起進行交叉編譯成ARM平臺Linux動態(tài)連接庫文件,供上層應(yīng)用調(diào)用。開發(fā)主機采取在VMWare中安裝Linux虛擬機(Ubuntu11.10),以及arm-linux-gcc 4.3.2編譯器作為開發(fā)工具鏈。

          本文引用地址:http://www.ex-cimer.com/article/148176.htm

          d.JPG


          3.1 控制點軟件模塊設(shè)計
          作為數(shù)字家庭中的重要設(shè)備,能夠根據(jù)用戶提供的某項服務(wù),在設(shè)備間實現(xiàn)互操作,包括設(shè)備間的通信能力以及交換有效信息的能力??刂泣c(Control Point)作為UPNP AV網(wǎng)絡(luò)中最重要的節(jié)點,負責(zé)在網(wǎng)絡(luò)中搜索媒體服務(wù)器和媒體渲染器,發(fā)現(xiàn)用戶所需要的媒體信息,協(xié)調(diào)兩者之間的交互操作。軟件采用模塊化設(shè)計思想,全局分為4個模塊;設(shè)備列表模塊、主控管理模塊、交互通信模塊以及模塊。圖3為控制點軟件模塊結(jié)構(gòu)圖。

          c.JPG


          1)設(shè)備列表模塊
          設(shè)備列表模塊用來在網(wǎng)絡(luò)中實時監(jiān)聽、查找UPNP設(shè)備,對設(shè)備進行添加和刪除,對設(shè)備表述的XML文件進行解析,列表與設(shè)備之間一一對應(yīng)。此模塊的設(shè)計實現(xiàn)了設(shè)備信息的緩存處理。在設(shè)備列表中,包含所有控制點需要的設(shè)備信息和設(shè)置參數(shù);設(shè)備唯一的識別名稱、XML文件描述的網(wǎng)絡(luò)地址、基礎(chǔ)URL以及設(shè)備超時時間等。
          2)主控管理模式
          作為軟件模塊中的中樞部分,主控模塊基于模塊,與設(shè)備列表模塊與交互通信模塊均相連,完成的主要功能包括:管理設(shè)備緩存、處理客戶端命令、響應(yīng)設(shè)備請求、解析設(shè)備回應(yīng)。定義CtrlPointCallbackEventHandlel()函數(shù)注冊UPNP消息回調(diào)函數(shù);接收到SSDP發(fā)現(xiàn)消息后,管理列表中的UPNP設(shè)備,如使用CtrtPointAddDevice()添加設(shè)備;調(diào)用CtrlPointHandleEvent()函數(shù)接收客戶端的消息,對消息進行處理;使用CtrlPointHandleSubscribeUpdate()和StateUpdate()更新訂閱和狀態(tài)列表;調(diào)用CtrlPointSendAction()和CtrlPointSendActi onNumeiicArg()給網(wǎng)絡(luò)中的UPNP設(shè)備發(fā)送消息。
          3)交互通信模塊
          交互通信模塊連接了主控模塊與UPNP客戶端,實現(xiàn)設(shè)備與控制點之間的交互控制,負責(zé)與客戶端的通訊流程,完成服務(wù)端、渲染器以及控制點之間的交互操作。模塊首先確定了與UPNP客戶端的通信方式,定義Upnp Get ServerIpAddress()設(shè)定IP地址、UpnpGetServerProt()設(shè)定端口,使用CtrlPoinHandleGetVar()處理主控模塊發(fā)送過來的數(shù)據(jù)包,完成對命令的解析,調(diào)用CtrlPointCommandLoop()函數(shù)連續(xù)發(fā)送指令,使用CtrlPointProcessCommand()函數(shù)將指令傳送給主控模塊,完成對命令的解析和處理。
          4)模塊
          負責(zé)所有與UPNP協(xié)議有關(guān)的內(nèi)容。系統(tǒng)采用libupnp開發(fā)包、以UPNP庫作為底層協(xié)議,涵蓋UPNP協(xié)議所需要的API接口及庫函數(shù)。
          5)UPNP客戶端
          UPNP客戶端即系統(tǒng)輸出展示設(shè)備,包括電視、音響等。



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();