转载马斯特·李
流程:
将channel的读写回调在AL_FW_Init中注册
初始化datasaving部件,注册datasaving的回调,并建立DATASAVING_NvmStore_Thread线程,此线程接收回调的消息并处理。
如需要保存atv台的数据,即调用AL_DB_Sync函数,向线程发送消息
线程接收到AI_NVMSTORE_CMD_ATV_STORE消息后,如下处理
最终通过、函数中nvm写的回调完成数据存储到flash
存储成功后,调用_GenDBEvent将消息通过注册的watcher的回调发送到application
gfpWatcherCB 即为_CDBIWatcherCallback
CDBIWatcherCallback在通过gstMonitorCBInfo[uiCount].pfWatcher(uiDBType, enEvent, &hRec);传递消息,pfWatcher回调即为FW_cdbi_callback
数据信息存储后,可能节目信息以及管理造成数据变化,这个时候就需要注册一个DBWatcher来监控这些变化,及时更新数据。
搜台存储流程,如ATV
APP_ATV_ScanProcess_Start
_APP_ATV_ScanProcess_PostProcess中调用sync完成保存
当打开SUPPORT_CHANGE_TS_DYNAMICALLY
TS变化时,会自动进行搜台,此时会保存重新搜到的台