本發(fā)明涉及空調遙控碼庫算法領域,具體涉及到一種壓縮紅外空調遙控碼庫的算法。
背景技術:
目前的萬能空調遙控的實現(xiàn)必須基于對應的萬能紅外空調遙控碼庫,該碼庫在本文中稱為“原始碼庫”。原始碼庫因為是以枚舉的方式記錄所有指令內容,所以必然占據(jù)很大的存儲空間,特別當需要控制的空調品牌及型號繁多時,該存儲空間的需求是極其龐大的。舉例來說,一個海爾品牌下一種型號的空調紅外遙控指令碼庫的體積為800kb-6000kb這個范圍,而單個海爾品牌目前就有近十種型號各不相同的型號碼庫。如此龐大的原始碼庫基本需要在線存儲調用,才可實現(xiàn)萬能空調遙控的功能,否則其存儲成本是難以忽視的問題。
技術實現(xiàn)要素:
為解決上述技術問題,本發(fā)明提供了一種壓縮紅外空調遙控碼庫的算法,原始碼庫經(jīng)壓縮后,所需存儲空間顯著降低,例如一個海爾品牌下數(shù)種型號原始碼庫體積為12.4mb,經(jīng)本發(fā)明壓縮后,體積變小為86kb。這么一來,像海爾、美的、格力等等品牌的空調的紅外遙控碼庫都可以以很低的成本離線存儲。
本發(fā)明提供了一種壓縮紅外空調遙控碼庫的算法,包括以下步驟:
載入原始碼庫并記錄對應的品牌、型號id以及控制信息;
對上述的原始碼庫的形式進行區(qū)分得到常規(guī)碼庫和多段碼庫;
將得到的常規(guī)碼庫和多段碼庫的格式進行轉換;
基于轉換之后的常規(guī)碼庫和多段碼庫建立變量的決策樹解析;
整理解析后的壓縮內容。
上述的算法,其中,所述載入原始碼庫并記錄對應的品牌、型號id以及控制信息的步驟中:
控制信息由inst碼反映。
上述的算法,其中,所述將得到的常規(guī)碼庫和多段碼庫的格式進行轉換的步驟中:
將常規(guī)碼庫、多段碼庫的控制碼和校驗碼部分中,將高電位視為1,低電位視為0,得到一串二進制數(shù)字;
將上述得到一串二進制數(shù)字以字節(jié)形式轉換成十六進制整數(shù)形式。
上述的算法,其中,所述基于轉換之后的常規(guī)碼庫和多段碼庫建立變量的決策樹解析的步驟包括:
將決策樹分為:第0層、第1層、第2層、第3層、第4層、第5層、第6層和第7層。
上述的算法,其中,所述第0層用于確定品牌和型號id;所述第1層用于解析控制碼,針對每條控制碼生成都一致的部分,定為控制碼的根命令,不一致的部分由之后的層次確定補充。
上述的算法,其中,所述第2層用于根據(jù)空調狀態(tài):開機、關機,確定空調狀態(tài)命令,和補充進根命令;所述第3層用于根據(jù)空調模式:自動、制冷、制熱、抽濕、送風,確定空調模式命令,和補充進根命令;所述第4層用于根據(jù)溫度:16℃至30℃,確定溫度命令,和補充進根命令。
上述的算法,其中,所述第5層用于根據(jù)風量:自動風量、低風、中風、高風,確定風量命令,和補充進根命令;所述第6層用于根據(jù)風向:自動風向、1位置風向、2位置風向、3位置風向、4位置風向、5位置風向,確定風向命令,和補充進根命令;所述第7層用于對需要補充校驗碼的進行補充。
上述的算法,其中,所述整理解析后的壓縮內容的步驟包括:
多層運算碼:引導碼、截止碼、間隔碼、根命令、空調狀態(tài)命令、空調模式命令、溫度命令、風量命令、風向命令,多層運算方法;
根據(jù)決策樹的第2層至第6層各補充進根命令和校驗碼生成方法。
本發(fā)明具有以下優(yōu)點:
1、因為原始碼庫過于龐大,不便離線存儲,所以我們要提出顯著壓縮原始碼庫的方法并實現(xiàn)應用。
2、原始碼庫經(jīng)壓縮后,所需存儲空間顯著降低,例如一個海爾品牌下數(shù)種型號原始碼庫體積為12.4mb,經(jīng)本發(fā)明壓縮后,體積變小為86kb。這么一來,像海爾、美的、格力等等品牌的空調的紅外遙控碼庫都可以以很低的成本離線存儲。
附圖說明
通過閱讀參照以下附圖對非限制性實施例所作的詳細描述,本發(fā)明及其特征、外形和優(yōu)點將會變得更明顯。在全部附圖中相同的標記指示相同的部分。并未刻意按照比例繪制附圖,重點在于示出本發(fā)明的主旨。
圖1為本發(fā)明提供的一種壓縮紅外空調遙控碼庫的算法的流程示意圖。
具體實施方式
在下文的描述中,給出了大量具體的細節(jié)以便提供對本發(fā)明更為徹底的理解。然而,對于本領域技術人員而言顯而易見的是,本發(fā)明可以無需一個或多個這些細節(jié)而得以實施。在其他的例子中,為了避免與本發(fā)明發(fā)生混淆,對于本領域公知的一些技術特征未進行描述。
為了徹底理解本發(fā)明,將在下列的描述中提出詳細的步驟以及詳細的結構,以便闡釋本發(fā)明的技術方案。本發(fā)明的較佳實施例詳細描述如下,然而除了這些詳細描述外,本發(fā)明還可以具有其他實施方式。
在本發(fā)明中,空調的紅外遙控指令實質上是控制紅外發(fā)射燈發(fā)送高/低電位信息(時間長度),原始碼庫就是存儲了每條控制的高/低電位信息,如高電位n1微秒、低電位m1微秒、高電位n2微秒、低電位m2微秒、高電位n3微秒、低電位m3微秒......本發(fā)明基于原始碼庫,以7個實際變量:品牌、型號id、空調狀態(tài)、空調模式、溫度、風量和風向為決策樹變量,將以枚舉方式的原始碼庫內容壓縮,壓縮后內容分兩部分——多層運算碼(向量形式)+多層運算方法(可實現(xiàn)的偽代碼或相關程序代碼)。
參照圖1所示,本發(fā)明提供了一種壓縮紅外空調遙控碼庫的算法,包括以下步驟:
步驟s1:載入原始碼庫并記錄對應的品牌、型號id以及控制信息,例如,開機-制冷-26℃-自動風量-1位置風向,控制的實際信息由inst碼反映;
步驟s2:對上述的原始碼庫的形式進行區(qū)分得到常規(guī)碼庫和多段碼庫,也就是說,根據(jù)已有原始碼庫,可得到這兩大類型—常規(guī)碼庫、多段碼庫。其中占大部分的常規(guī)碼庫中每條指令形式是,引導碼+控制碼+(校驗碼)+截止碼;而多段碼庫中每條指令形式是特殊復雜的,需事先分清有多少段控制碼,如果有三段,那其形式是,引導碼+控制碼1+(校驗碼1)+間隔碼1+控制碼2+(校驗碼2)+間隔碼2+控制碼3+(校驗碼3)+截止碼;
步驟s3:將得到的常規(guī)碼庫和多段碼庫的格式進行轉換,具體包括:將常規(guī)碼庫、多段碼庫的控制碼和校驗碼部分中,將高電位視為1,低電位視為0,得到一串二進制數(shù)字;將上述得到一串二進制數(shù)字以字節(jié)形式轉換成十六進制整數(shù)形式。
步驟s4:基于轉換之后的常規(guī)碼庫和多段碼庫建立變量的決策樹解析,其中將決策樹分為:第0層、第1層、第2層、第3層、第4層、第5層、第6層和第7層,進一步,第0層用于確定品牌和型號id;第1層用于解析控制碼,針對每條控制碼生成都一致的部分,定為控制碼的根命令,不一致的部分由之后的層次確定補充;第2層用于根據(jù)空調狀態(tài):開機、關機,確定空調狀態(tài)命令,和補充進根命令;第3層用于根據(jù)空調模式:自動、制冷、制熱、抽濕、送風,確定空調模式命令,和補充進根命令;第4層用于根據(jù)溫度:16℃至30℃,確定溫度命令,和補充進根命令;第5層用于根據(jù)風量:自動風量、低風、中風、高風,確定風量命令,和補充進根命令;第6層用于根據(jù)風向:自動風向、1位置風向、2位置風向、3位置風向、4位置風向、5位置風向,確定風向命令,和補充進根命令;第7層用于對需要補充校驗碼的進行補充。也就是說:影響碼庫指令的變量有,品牌、型號id、空調狀態(tài)、空調模式、溫度、風量和風向。決策樹的基礎層(第0層),是確定品牌和型號id,這么一來,每條指令中的引導碼、截止碼,如果是多段碼庫,還有間隔碼都是一致的;在決策樹的第1層,開始解析控制碼,針對每條控制碼生成都一致的部分,定為控制碼的根命令(簡稱為根命令),不一致的部分由之后的層次確定補充;在決策樹的第2層,根據(jù)空調狀態(tài):開機、關機,確定空調狀態(tài)命令,和補充進根命令(比如相與、相加、相加取一個確定的循環(huán)數(shù)組等等);在決策樹的第3層,根據(jù)空調模式:自動、制冷、制熱、抽濕、送風,確定空調模式命令,和補充進根命令;在決策樹的第4層,根據(jù)溫度:16℃至30℃,確定溫度命令,和補充進根命令;在決策樹的第5層,根據(jù)風量:自動風量、低風、中風、高風,確定風量命令,和補充進根命令;在決策樹的第6層,根據(jù)風向:自動風向、1位置風向、2位置風向、3位置風向、4位置風向、5位置風向,確定風向命令,和補充進根命令;在決策樹的第7層,僅剩校驗碼需要補充,需注意的是,并不是每個碼庫都具有校驗碼,校驗碼生成方式一般比較簡單,比如將之前的控制碼部分相加取末尾的,需要拿出來特別解析,可能涉及一個多維矩陣,并結合一個對應的元素取值方法,這一層的處理可以再運用多變量決策樹,其步驟可參照之前第1層至第6層。
步驟s5:整理解析后的壓縮內容,其中包括多層運算碼:引導碼、截止碼、間隔碼、根命令、空調狀態(tài)命令、空調模式命令、溫度命令、風量命令、風向命令,多層運算方法;根據(jù)決策樹的第2層至第6層各補充進根命令和校驗碼生成方法。
以上對本發(fā)明的較佳實施例進行了描述。需要理解的是,本發(fā)明并不局限于上述特定實施方式,其中未盡詳細描述的設備和結構應該理解為用本領域中的普通方式予以實施;任何熟悉本領域的技術人員,在不脫離本發(fā)明技術方案范圍情況下,都可利用上述揭示的方法和技術內容對本發(fā)明技術方案做出許多可能的變動和修飾,或修改為等同變化的等效實施例,這并不影響本發(fā)明的實質內容。因此,凡是未脫離本發(fā)明技術方案的內容,依據(jù)本發(fā)明的技術實質對以上實施例所做的任何簡單修改、等同變化及修飾,均仍屬于本發(fā)明技術方案保護的范圍內。