實現智能電視網絡切換同步UI操作的方法與流程
2023-12-06 03:10:36 1

本發明涉及智能電視網絡設置技術,具體涉及一種實現智能電視網絡切換同步UI操作的方法。
背景技術:
現代智能電視連接網際網路功能已經是一個重要的功能組成部分。當智能電視上有線網絡和無線網絡兩種上網方式都提供時,需要用戶在網絡設置的時候選擇切換有線或無線方式的網絡進行連網。切換的過程實際上是底層使能有線網卡、關閉無線網卡,或者使能無線網卡、關閉有線網卡的過程。使能或者關閉wifi無線網卡需要一定的響應時間,如果網卡的一次操作響應還沒有完成,立即又去操作使能或者關閉,就有可能導致系統卡住死機。
現有技術中常規的做法是在切換的時候阻塞等待響應,即一次操作正在切換過程中用戶不能再次操作切換,不能連續響應用戶的UI操作。
技術實現要素:
本發明所要解決的技術問題是:提供了一種實現智能電視網絡切換同步UI操作的方法,解決傳統技術中切換網絡時採用阻塞等待響應的方式存在的問題。
本發明解決其技術問題所採用的技術方案是:
實現智能電視網絡切換同步UI操作的方法,包括以下步驟:
A、構建狀態機,並通過狀態機接收並保存用戶進行網絡切換時的輸入;
B、系統改變UI界面,顯示用戶正在選擇的網絡類型;
C、系統判斷當前底層網卡是否對應用戶當前選擇的網絡類型,若不是,則進入網絡切換流程:啟動狀態機的網絡狀態事件監聽器來監聽網絡狀態,當監聽到網絡狀態改變事件後,設置狀態機對應的一種狀態;
D、系統應用層程序通過定時器輪詢狀態機的狀態,一直查詢到狀態機改變為完成使能/完成關閉狀態為止,則系統調用下層網絡接口函數切換網絡到當前狀態機保存的用戶所選擇的網絡類型;
E、在狀態機狀態為完成使能/完成關閉狀態時,判斷當前網絡是否和用戶最新輸入的網絡類型相同,如果相同,則改變UI顯示為當前使能完成的網絡類型並關閉定時器,否則,繼續執行通過定時輪詢狀態機狀態來切換網絡類型的操作。
作為進一步優化,所述狀態機是一個用int型變量「state」來存儲四種狀態的類,所述四種狀態包括:完成使能狀態、正在設置使能狀態、完成關閉狀態、正在設置關閉狀態。
作為進一步優化,步驟A中,通過狀態機的狀態位來保存用戶的輸入,當用戶在有線和無線間選擇切換時,狀態機內部的狀態位隨用戶輸入改變。
作為進一步優化,步驟C中,狀態機的網絡狀態事件監聽器依據linux網絡協議棧,讀取底層網卡驅動的狀態,從而監聽網絡狀態。
作為進一步優化,所述網絡狀態事件監聽器是狀態機類的一個用於接收網絡事件的成員函數,在構建時狀態機向作業系統註冊,當底層網卡驅動狀態改變並向上層發送事件後,該函數會被作業系統自動調用。
本發明的有益效果是:相對於通常的阻塞等待底層網絡狀態切換方法,本發明保證了底層網卡能夠正常使能或關閉,同時用戶UI操作能夠流暢不阻塞,使智能電視使用者獲得更好的用戶體驗,硬體適應能力強,可實施性強。
附圖說明
圖1為狀態機的狀態轉換示意圖;
圖2為實現智能電視網絡切換同步UI操作的方法流程圖。
具體實施方式
本發明旨在提供一種實現智能電視網絡切換同步UI操作的方法,解決傳統技術中切換網絡時採用阻塞等待響應的方式存在的問題。在本發明中,通過構建帶狀態機依據linux網絡協議棧,讀取底層網卡驅動的狀態。網卡驅動處於linux網絡協議棧的鏈路層。用戶通過UI操作,調用linux網絡協議棧應用層的接口,讀取鏈路層的網絡驅動狀態,然後狀態機對用戶的操作做出正確的響應以及顯示。該方法保證了底層網卡能夠正常使能或關閉,同時用戶UI操作能夠流暢不阻塞,使智能電視使用者獲得更好的用戶體驗。
在具體實現上,本發明中構建的狀態機是一個用int型變量「state」來存儲四種狀態(enabled完成使能、enabling正在設置使能、disabled完成關閉、disabling正在設置關閉)的類,在系統初始化時構建,初始state狀態為enabled。狀態機四種狀態的切換如圖1所示,其決定於底層網卡驅動狀態。當底層驅動狀態改變時,通過一個狀態改變的事件發送給上層。狀態機通過事件監聽器,監聽網絡狀態。當監聽到網絡狀態改變事件後,設置狀態機狀態為四種狀態中相應的一種。事件監聽器是狀態機類的一個用於接收網絡事件的成員函數,在狀態機構建時向作業系統註冊,當底層狀態改變並發送事件後,該函數會被作業系統自動調用。
系統根據狀態機的不同狀態做出相應響應:1,如果狀態機處於正在設置使能/正在設置關閉狀態,應用程式啟動定時器---定時器是向系統註冊的一個timer類,註冊這個timer的時候指定計時時間到後執行的函數。定時器循環計時,每次計時時間到後即執行指定的函數。在timer的執行函數中輪詢狀態機狀態,一直輪詢到狀態機改變為完成使能/完成關閉狀態為止,系統調用下層網絡接口函數,切換網絡到當前狀態機保存的用戶選擇網絡類型;2,如果狀態機處於完成設置使能/關閉狀態,則立即開始切換網絡到用戶選擇的網絡類型。網絡切換調用linux網絡協議棧應用層的接口,作用於鏈路層中的網絡驅動。
如圖2所示,本發明中的實現智能電視網絡切換同步UI操作的方法,包括以下實現步驟:
(1)通過狀態機接收並保存用戶進行網絡切換時的輸入,用戶在設置網絡類型時,將用戶輸入的狀態保存在一個預先開闢的static靜態變量「NetType」中。然後系統改變UI,顯示用戶正在選擇的網絡類型(有線/無線)。
(2)系統判斷當前底層網卡是否對應用戶當前選擇的網絡類型,若不是,則進入網絡切換流程:啟動狀態機的網絡狀態事件監聽器來監聽網絡狀態,當監聽到網絡狀態改變事件後,設置狀態機對應的一種狀態;
(3)系統應用層程序通過定時器輪詢狀態機的狀態,一直查詢到狀態機改變為完成使能/完成關閉狀態為止,則系統調用下層網絡接口函數切換網絡到當前狀態機保存的用戶所選擇的網絡類型;
(4)當狀態機狀態為完成設置使能/關閉狀態時,判斷當前網絡是否和保存的用戶輸入的網絡類型選擇相同。如果相同,則改變UI顯示為當前使能完成的網絡類型(有線/無線),並關閉定時器。否則回到步驟3繼續執行通過狀態機切換網絡類型的操作。
實施例1:
以用戶從有線網絡切換到WIFI無線網絡為例,其包括以下實施步驟:
(1)接收到用戶輸入選擇網絡為WIFI,保存NetType為WIFI。
(2)改變UI顯示當前網絡為WIFI,提示正在使能WIFI。
(3)判斷當前狀態為wifi_disabled,開始切換網絡到wifi。並啟動定時器輪詢當前網絡狀態。
(4)當查詢到當前網絡狀態為wifi_enabled,UI顯示WIFI使能完畢,關閉定時器。
實施例2:
假如用戶從有線網絡切換到WIFI無線網絡,底層這一次切換還沒完成時,用戶繼續操作切換回有線網絡,則其包括以下實施步驟:
(1)接收到用戶輸入選擇網絡為WIFI,保存網絡狀態WIFI。
(2)改變UI顯示當前網絡為WIFI,提示正在使能WIFI。
(3)判斷當前狀態為wifi_disabled,開始切換網絡到wifi。並啟動定時器輪詢當前網絡狀態。
(4)用戶輸入切換到有線網絡,保存網絡狀態為有線,改變UI顯示當前網絡為有線,提示正在使能有線網絡。
(5)輪詢網絡狀態,如果狀態為wifi_enabling,繼續啟動定時器輪詢等待網絡狀態轉換。當狀態轉換為wifi_enabled時,比較當前網絡狀態和用戶輸入保存的狀態,比較發現當前網絡和用戶輸入選擇的網絡不相同。
(6)啟動切換到有線網絡,並啟動定時器輪詢當前網絡狀態。
(7)當查詢到當前網絡狀態為wifi_disabled,UI顯示有線網絡使能完畢,關閉定時器。