新聞中心

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

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

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

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

        本文引用地址:http://www.104case.com/article/148176.htm

        d.JPG


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

        c.JPG


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



        評論


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

        關(guān)閉
        主站蜘蛛池模板: 米林县| 汝南县| 新和县| 万盛区| 大同市| 东源县| 闸北区| 年辖:市辖区| 南皮县| 信丰县| 达孜县| 吴忠市| 凤阳县| 丰城市| 金乡县| 镇远县| 南丹县| 西峡县| 兰西县| 扎兰屯市| 喀喇沁旗| 彰化县| 将乐县| 阜新市| 赞皇县| 巴南区| 万安县| 深水埗区| 铜梁县| 无极县| 灵宝市| 长垣县| 资讯 | 桐城市| 佛山市| 新竹市| 婺源县| 庆阳市| 江津市| 陇川县| 喀喇|