chapter 06-01

啟動執行的設定

mcm_daemon 啟動後, 會執行的動作 :
01.  載入資料模型. (#02-01# 的設定)
02.  載入資料值檔案 (資料預設值檔案 或 資料現在值檔案) 資料. (#02-02# 的設定)
03.  載入內部模組.
04.  檢查資料是否有錯誤並處理.
05.  執行內部模組中其他部分的啟動表.
06.  提供外部程式存取.

在 [05] 的點, 可以設定程式啟動要執行哪些內部模組來做初始的設定或處理.


變數格式的說明

[struct mcm_service_session_t *this_session]
請求端的連線資訊.
會使用到的結構成員 :
MCM_DTYPE_LIST_TD
call_from
表示是誰呼叫內部模組 [詳細]
啟動執行時, call_from 的值會是 MCM_CFROM_BOOT, 表示目前是程式啟動的第一次執行內部模組.


內部模組中其他部分的啟動表的設定

啟動表要放在 mint_cm/mcm_daemon/mcm_module 內, 新增一個 C 檔案, 內容為 :
#include "mcm_lib/mcm_lheader/mcm_type.h"
#include "mcm_lib/mcm_lheader/mcm_return.h"
#include "mcm_lib/mcm_lheader/mcm_debug.h"
#include "../mcm_action_handle_define.h"

struct mcm_action_module_t MCM_ACTION_CUSTOM_MODULE_BOOT_PROFILE_LIST_NAME[] =
{
    {""}
};

struct mcm_action_module_t MCM_ACTION_CUSTOM_MODULE_BOOT_OTHER_LIST_NAME[] =
{
    {""}
};


int MCM_ACTION_CUSTOM_RESET_DEFAULT_NAME(
    void)
{
    return MCM_RCODE_PASS;
}


此章節只需要用到 MCM_ACTION_CUSTOM_MODULE_BOOT_OTHER_LIST_NAME[]

在列表中填入要執行的模組函式名稱, 會依序執行, 最後一組必須要是 {""}.
例如 :
struct mcm_action_module_t MCM_ACTION_CUSTOM_MODULE_BOOT_OTHER_LIST_NAME[] =
{
    {"mcm_module_boot_config_01"},
    {"mcm_module_boot_config_02"},
    {"mcm_module_boot_config_03"},
    {"mcm_module_boot_config_01"},
    {""}
}



注意事項

內部模組在啟動執行的期間可以使用內部模組的回傳資訊 (#05-01#), 但是不會有任何作用.

執行 mcm_daemon 時資料現在值檔案的儲存方式是使用手動儲存的話 (#02-03#), 必須在最後一個啟動模組中加入儲存資料的動作 (#04-07#).


範例程式的使用

01.  範例程式目錄在 mint_cm/usage/example/0601.


02.  下面關於 make 的操作沒有特別註明的話都是在 mint_cm 目錄.


03.  第一次使用, 使用 make example_add KEY=0601 載入範例並編譯.


04.  執行 mcm_daemon 就可以看到結果.


05.  測試完畢不使用後, 使用 make example_del KEY=0601 將範例移除.


06.  範例程式目錄下的檔案在做完 make example_add 後會複製到真正使用的位置, 要修改做測試的話要改在複製後的.
來源 profile/mcm_data_profile_0601.xml
目地 mint_cm/mcm_build/mcm_data_profile.xml
資料模型範例
有修改要使用 make all 重新編譯
來源 profile/mcm_store_profile_default_0601.txt
目地 mint_cm/mcm_build/mcm_store_profile_default.txt
資料預設值範例
使用 make all 後會再複製到 mint_cm/run
來源 module/mcm_custom_0601.c
目地 mint_cm/mcm_daemon/mcm_module
啟動表範例
有修改要使用 make all 重新編譯
來源 module/mcm_module_0601.c
目地 mint_cm/mcm_daemon/mcm_module
內部模組範例
有修改要使用 make all 重新編譯