《鴻蒙智能互聯(lián)設(shè)備開發(fā)(微課版)》 課件 6.4.2 HCS配置語法_第1頁
《鴻蒙智能互聯(lián)設(shè)備開發(fā)(微課版)》 課件 6.4.2 HCS配置語法_第2頁
《鴻蒙智能互聯(lián)設(shè)備開發(fā)(微課版)》 課件 6.4.2 HCS配置語法_第3頁
《鴻蒙智能互聯(lián)設(shè)備開發(fā)(微課版)》 課件 6.4.2 HCS配置語法_第4頁
《鴻蒙智能互聯(lián)設(shè)備開發(fā)(微課版)》 課件 6.4.2 HCS配置語法_第5頁
已閱讀5頁,還剩9頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

6.4.2HCS配置語法通過本節(jié)學(xué)習(xí),您可以:了解HCS配置語法HCS配置語法1.關(guān)鍵字HCS配置語法的部分關(guān)鍵字,如表所示。關(guān)鍵字用途說明root配置根節(jié)點(diǎn)-include引用其他HCS配置文件-delete刪除節(jié)點(diǎn)或?qū)傩灾荒苡糜诓僮鱥nclude導(dǎo)入的配置樹template定義模板節(jié)點(diǎn)-match_attr用于標(biāo)記節(jié)點(diǎn)的匹配查找屬性解析配置時(shí)可以使用該屬性的值查找到對(duì)應(yīng)節(jié)點(diǎn)HCS配置語法2.基本組成結(jié)構(gòu)HCS配置文件主要由屬性(Attribute)和節(jié)點(diǎn)(Node)兩部分組成。(1)屬性屬性是最小的配置單元,是一個(gè)獨(dú)立的配置項(xiàng)。語法如下:attribute_name=value;attribute_name是字母、數(shù)字、下劃線的組合且必須以字母或下劃線開頭,字母區(qū)分大小寫。value的可用格式如下:數(shù)字常量,支持二進(jìn)制、八進(jìn)制、十進(jìn)制、十六進(jìn)制數(shù)。字符串,內(nèi)容使用雙引號(hào)(“”)引用。節(jié)點(diǎn)引用。attribute必須以分號(hào)(;)結(jié)束且必須屬于一個(gè)node。HCS配置語法(2)節(jié)點(diǎn)節(jié)點(diǎn)是一組屬性的集合,語法如下:

node_name{

module="test";

...}node_name是字母、數(shù)字、下劃線的組合且必須以字母或下劃線開頭,字母區(qū)分大小寫。大括號(hào)后無需添加結(jié)束符分號(hào)“;”。root為保留關(guān)鍵字,用于聲明配置表的根節(jié)點(diǎn)。每個(gè)配置表必須以root節(jié)點(diǎn)開始。root節(jié)點(diǎn)中必須包含module屬性,其值應(yīng)該為一個(gè)字符串,用于表征該配置所屬模塊。節(jié)點(diǎn)中可以增加match_attr屬性,其值為一個(gè)全局唯一的字符串。當(dāng)驅(qū)動(dòng)程序在解析配置時(shí)可以以該屬性的值為參數(shù)調(diào)用查找接口查找到包含該屬性的節(jié)點(diǎn)。HCS配置語法3.數(shù)據(jù)類型在屬性定義中使用自動(dòng)數(shù)據(jù)類型,不顯式指定類型,屬性支持的數(shù)據(jù)類型有整型、字符串、數(shù)組、布爾類型。整型:整型長度自動(dòng)推斷,根據(jù)實(shí)際數(shù)據(jù)長度給與最小空間占用的類型。二進(jìn)制,0b前綴,示例:0b1010。八進(jìn)制,0前綴,示例:0664。十進(jìn)制,無前綴,且支持有符號(hào)與無符號(hào),示例:1024,+1024均合法。驅(qū)動(dòng)程序在讀取負(fù)值時(shí)注意使用有符號(hào)數(shù)讀取接口。十六進(jìn)制,0x前綴,示例:0xff00、0xFF。HCS配置語法字符串:字符串使用雙引號(hào)(“”)表示。布爾類型:布爾類型中true表示真,false表示假。數(shù)組:數(shù)組元素支持整型、字符串,不支持混合類型。整型數(shù)組中uint32_t、uint64_t混用會(huì)向上轉(zhuǎn)型為uint64_t數(shù)組。整型數(shù)組與字符串?dāng)?shù)組示例如下:

attr_foo=[0x01,0x02,0x03,0x04];

attr_bar=["hello","world"];4.預(yù)處理include用于導(dǎo)入其他HCS文件。語法示例如下:其中,文件名必須使用雙引號(hào)(“”),不在同一目錄下需要使用相對(duì)路徑引用。被include文件也必須是合法的HCS文件。若是多個(gè)include,如果存在相同的節(jié)點(diǎn),后者覆蓋前者,其余的節(jié)點(diǎn)依次展開。#include"foo.hcs"

#include"../bar.hcs"HCS配置語法5.注釋注釋支持兩種風(fēng)格:單行注釋和多行注釋。

//comment單行注釋

/*

comment多行注釋

*/6.引用修改引用修改可以實(shí)現(xiàn)修改另外任意一個(gè)節(jié)點(diǎn)的內(nèi)容,語法為:node:&source_nodeHCS配置語法上述語句表示node中的內(nèi)容是對(duì)source_node節(jié)點(diǎn)內(nèi)容的修改。示例如下:

root{

module="test";

foo{

foo_:&root.bar{

attr="foo";

}

foo1:&foo2{

attr=0x2;

}

foo2{

attr=0x1;

}

}

bar{

attr="bar";

}}

root{

module="test";

foo{

foo2{

attr=0x2;

}

}

bar{

attr="foo";

}}最終生成配置樹為:可以看到foo.foo_節(jié)點(diǎn)通過引用將bar.attr屬性的值修改為了"foo",foo.foo1節(jié)點(diǎn)通過引用將foo.foo2.attr屬性的值修改為了0x2。foo.foo_以及foo.foo1節(jié)點(diǎn)表示對(duì)目標(biāo)節(jié)點(diǎn)內(nèi)容的修改,其自身并不會(huì)存在最終生成的配置樹中。HCS配置語法7.節(jié)點(diǎn)復(fù)制節(jié)點(diǎn)復(fù)制可以實(shí)現(xiàn)在節(jié)點(diǎn)定義時(shí)從另一個(gè)節(jié)點(diǎn)先復(fù)制內(nèi)容,用于定義內(nèi)容相似的節(jié)點(diǎn)。語法為:在上述示例中,編譯后bar節(jié)點(diǎn)即包含attr_0屬性也包含attr_1屬性,在bar中對(duì)attr_0的修改不會(huì)影響到foo。在foo和bar在同級(jí)node中可不指定foo的路徑,否則需要使用絕對(duì)路徑引用。上述代碼的最終生成配置樹為:上述語句表示在定義"node"節(jié)點(diǎn)時(shí)將另一個(gè)節(jié)點(diǎn)"source_node"的屬性復(fù)制過來。示例如下:node:source_node

root{

module="test";

foo{

attr_0=0x0;

}

bar:foo{

attr_1=0x1;

}}

root{

module="test";

foo{

attr_0=0x0;

}

bar{

attr_1=0x1;

attr_0=0x0;

}}HCS配置語法8.刪除要對(duì)include導(dǎo)入的base配置樹中不需要的節(jié)點(diǎn)或?qū)傩赃M(jìn)行刪除,可以使用delete關(guān)鍵字。下面的示例中test1.hcs通過include導(dǎo)入了test2.hcs中的配置內(nèi)容,并使用delete刪除了test2.hcs中的attribute2屬性和foo_2節(jié)點(diǎn),示例如下:上述代碼在生成過程中將會(huì)刪除root.foo_2節(jié)點(diǎn)與attr_2,最終生成配置樹為:

//test2.hcs

root{

attr_1=0x1;

attr_2=0x2;

foo_2{

t=0x1;

}

}

//test1.hcs

#include"test2.hcs"

root{

attr_2=delete;

foo_2:delete{

}}

root{

attr_1=0x1;}HCS配置語法9.屬性引用為了在解析配置時(shí)快速定位到關(guān)聯(lián)的節(jié)點(diǎn),可以把節(jié)點(diǎn)作為屬性的右值,通過讀取屬性查找到對(duì)應(yīng)節(jié)點(diǎn)。語法為:示例2如下:上述語句表示attribute的值是一個(gè)節(jié)點(diǎn)node的引用,在解析時(shí)可以用這個(gè)attribute快速定位到node,便于關(guān)聯(lián)和查詢其他node。attribute=&node;

node1{

attributes;

}

node2{

attr_1=&root.node1;}

node2{

node1{

attributes;

}

attr_1=&node1;}示例1如下:HCS配置語法10.模板模板的用途在于生成嚴(yán)格一致的node結(jié)構(gòu),以便對(duì)同類型node進(jìn)行遍歷和管理。使用template關(guān)鍵字定義模板node,子node通過雙冒號(hào)“::”聲明繼承關(guān)系。子節(jié)點(diǎn)可以改寫或新增但不能刪除template中的屬性,子節(jié)點(diǎn)中沒有定義的屬性將使用template中的定義作為默認(rèn)值。

root{

module="test";

templatefoo{

attr_1=0x1;

attr_2=0x2;

}

bar::foo{

}

bar_1::foo{

attr_1=0x2;

}}

root{

module="test";

bar{

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論