| $(group-name) | group 的名稱 |
| # | entry key 的前綴符號 |
| $(entry-key) | entry 的 key 值, 1 ~ 4294967295 (MCM_DTYPE_EK_TD) |
| $(name) | member 的名稱 |
| $(value) | member 的值, [詳細] |
| 01. | 編譯資料模型會自動產生 mcm_store_profile.txt, 裡面會有簡單的基本設定資料. |
| 02. | 編譯資料模型後如果 mcm_build 目錄不存在 mcm_store_profile_default.txt, 會自動從 mcm_store_profile.txt 複製一份過去, 要注意只有在 mcm_store_profile_default.txt 不存在時才會自動複製, 如果存在後有修改資料模型的話, 需要手動處理更動的部分. |
| 03. | 在資料模型中 $(save) 值為 0 的 group 不可以加上預設值 (上面的範例 [client] 只是示範, 實際使用不可加). |
| 04. | entry 的數目不可超過資料模型中所設的 $(max) 值. |
| 05. | 沒有任何 member (排除 ek 類型) 的 group, 不可以加上預設值. |
| 06. |
加上預設值後, 從樹根到目標 group 之間的 group 除非沒有 member, 否則都必須加上預設值. 範例, 資料模型如下, 假設每個 group 內都有 member :
<GroupA type="gs" max="1" save="1">
<GroupB type="gd" max="10" save="1"> <GroupC type="gd" max="10" save="1"> <GroupD type="gd" max="10" save="1"> </GroupD> </GroupC> </GroupB> </GroupA> 設定 :
在 GroupD 加上預設值
GroupA.GroupB.#3.GroupC.#5.GroupD.#7 則 GroupA, GroupB, GroupC 都要加上預設值 GroupA GroupA.GroupB.#3 GroupA.GroupB.#3.GroupC.#5 |
| 07. |
對於 gs 類型的 group, 除非沒有任何 member, 否則下列情況下必須加上預設值 :
範例, 資料模型如下 :
<device type="gs" max="1" save="1">
<ekey type="ek">0</ekey> <system type="gs" max="1" save="1"> <ekey type="ek">0</ekey> <date type="s:12"></date> </system> <vap type="gd" max="8" save="1"> <ekey type="ek">0</ekey> <ssid type="s:64"></ssid> <extra type="gs" max="1" save="1"> <ekey type="ek">0</ekey> <hidden type="s:8"></hidden> </extra> </vap> </device> 設定 :
device :
樹根, 但是沒有 member, 所以不需要加上預設值 system : device 是 gs 類型, 所以需要加上預設值 extra : vap 是 gd 類型, 假設有一筆資料 device.vap.#4, 則必須加上預設值 device.vap.#4.extra |
|
mcm_config_handle.c(3644): store profile error [default], line 4, code INVALID_MEMBER_02 : invalid member, unknown member [test] mcm_config_handle.c(4232): call mcm_load_store_anysis_member() fail mcm_config_handle.c(4320): call mcm_load_store_process() fail mcm_daemon.c(0328): call mcm_config_load_store() fail |
| default | 紀錄預設值的檔案 (mcm_store_profile_default.txt) |
| current | 紀錄現在值的檔案 (mcm_store_profile_current.txt) |
| 代號 | 說明 |
| INVALID_FORMAT_01 | 找不到分段符號 [ ] [詳細-A] [詳細-B] |
| INVALID_BASE_01 | 額外資料 [$version] 的設定有誤 [詳細] |
| INVALID_BASE_02 | 額外資料 [$version] 的設定發生重複 |
| INVALID_BASE_03 | 找不到分段符號 [ ] [詳細-A] [詳細-B] |
| INVALID_BASE_04 | 未知的額外資料 |
| INVALID_ENTRY-FORMAT_01 | [$(entry-path)] 的設定有誤 [詳細] |
| INVALID_ENTRY-FORMAT_02 | |
| INVALID_ENTRY-FORMAT_03 | |
| INVALID_ENTRY-SAVE_01 | 此 group 的 [$(save)] 為 0, 不可加上預設值 [詳細] |
| INVALID_ENTRY-MAX_01 | entry 數目超過 group 的 [$(max)] 上限 [詳細] |
| INVALID_ENTRY-MEMBER_01 | 此 group 沒有任何 member (不包含 [es] [ek] 類型), 不可加上預設值 [詳細] |
| INVALID_ENTRY-DUPLIC_01 | entry 設定發生重複 |
| INVALID_ENTRY-LOSE_01 | 有 entry 沒設定到 [詳細-A] [詳細-B] |
| INVALID_MEMBER_01 | 找不到分段符號 [:] [詳細] |
| INVALID_MEMBER_02 | 未知的 member |
| INVALID_MEMBER_03 | member 設定發生重複 |
| INVALID_MEMBER_04 | 有 member 沒設定到 |
| INVALID_VALUE-INTEGER_01 | member 的值 (整數類型) 無效 [詳細] |
| INVALID_VALUE-INTEGER_02 | |
| INVALID_VALUE-FLOAT_01 | member 的值 (浮點數類型) 無效 [詳細] |
| INVALID_VALUE-FLOAT_02 | |
| INVALID_VALUE-STRING_01 | member 的值 (字串類型) 無效 [詳細] |
| INVALID_VALUE-STRING_02 | |
| INVALID_VALUE-STRING_03 | |
| INVALID_VALUE-STRING_04 | |
| INVALID_VALUE-STRING_05 | |
| INVALID_VALUE-STRING_06 | |
| INVALID_VALUE-BYTES_01 | member 的值 (字節流類型) 無效 [詳細] |
| INVALID_VALUE-BYTES_02 | |
| INVALID_VALUE-BYTES_03 |
| 01. | 範例程式目錄在 mint_cm/usage/example/0202. |
| 02. | 下面關於 make 的操作都是在 mint_cm 目錄. |
| 03. | 第一次使用, 使用 make example_add KEY=0202 載入範例並編譯. |
| 04. |
mcm_daemon 執行方法, 進入 mint_cm/run 目錄, 指令 : ./mcm_daemon -t 0 -a @mintcm -l ./mcm_module.lib -m mcm_model_profile.txt -d mcm_store_profile_default.txt -c mcm_store_profile_current.txt -s 0 -e 0 -p /var/run/mcm_daemon.pid 因為 mcm_daemon 會優先讀取預設值檔案, 不存在才讀取現在值檔案, 所以每次修改預設值檔案做測試時, 要先移除現在值檔案. 預設值檔案錯誤的話, 會顯示錯誤訊息並停止執行. 預設值檔案正確的話, 不會停止執行並且產生一個現在值檔案, 檔案內的設定值會和預設值檔案內容一致. 使用 [Ctrl + C] 能夠中斷執行. |
| 05. | 測試完畢不使用後, 使用 make example_del KEY=0202 將範例移除. |
| 06. |
範例程式目錄下的檔案在做完 make example_add
後會複製到真正使用的位置, 要修改做測試的話要改在複製後的.
|