导图社区 软件开发-MM-earbud-注册和消息驱动机制
高通 earbud SDK 学习框架和知识,高通 earbud SDK是高通为开发者提供的用于开发无线耳塞式设备(如真无线耳机)的软件开发工具包(SDK)。
社区模板帮助中心,点此进入>>
互联网9大思维
产品立项报告
产品经理如何做好项目管理
经验分享:产品经理必懂的产品思维
产品诞生过程
产品周期图
开门红的思考
招创智搜
网易星球
教学教务系统
message注册
注制方式
方式1
直接注册task的client指针或者client_list指针
message发送到client指针所指的task
示例:Charger_ClientRegister
方式2
自身task地址和感兴趣的message group ID 注册到message group
message发送到message group内部该message group ID对应的task
示例:Ui_RegisterUiInputConsumer回调chargerMonitor_RegisterMessageGroup注册函数实现关注某个message group
ui.c
定义静态注册表:MESSAGE_BROKER_GROUP_REGISTRATION_MAKE(group_name, Ui_RegisterUiInputsMessageGroup, NULL);
ui_inputs message注册和接收
ui_input_consumers_task_list
记录注册的client task
Ui_RegisterUiInputConsumer
MessageBroker_RegisterInterestInMsgGroups
任务注册接口,查询broker注册表,回调Ui_RegisterUiInputsMessageGroup
Ui_RegisterUiInputsMessageGroup
执行Ui_RegisterUiInputConsumer注册要求完成注册
ui_SendUiInputToConsumerGroupTaskList
发送消息到client task
ui provider
registered_ui_providers
记录provider ID及其获取状态的回调函数
Ui_RegisterUiProvider
function module将自身task和状态获取回调函数注册
Ui_GetUiProviderContext
基于 provider ID回调状态获取函数获取状态
audio_curation.c
定义静态注册表: MESSAGE_BROKER_GROUP_REGISTRATION_MAKE(AUDIO_CURATION_SERVICE, audioCuration_RegisterMessageGroup, NULL);
注册接收ui_inputs: Ui_RegisterUiInputConsumer(audioCuration_UiTask(), ui_inputs, ARRAY_DIM(ui_inputs));
UI consumer
LED context 注册实现对UI context关注
API 功能
ui_provider_context_consumers
成对记录client task和ui provider
Ui_RegisterContextConsumers
consumer task作为client task和ui provider ID 注册到ui_provider_context_consumers
Ui_InformContextChange
将ui provider ID及其状态发送到注册的ui_provider_context_consumers中的task
Led module调用注册接口将配置表中的全部ui provider ID和及其Led module task注册到ui_provider_context_consumers
注册过程
UiLeds_SetLedConfiguration
UiIndicator_RegisterInterestInConfiguredProviderContexts
注册到指针 ui_provider_context_consumers
查询broker静态注册表注册->ui consumer event注册和接收 UiLeds_SetLedConfiguration UiPrompts_SetPromptConfiguration UiTones_SetToneConfiguration
audioCuration
client_task_list
UiIndicator_RegisterInterestInConfiguredSystemEvents
audioCuration_RegisterMessageGroup
audioCuration_SendEvent
Charger
charger_client_tasks
chargerMonitor_RegisterMessageGroup
Charger_ClientRegister
Charger_ClientRegister 被broker回调,也被其他function module直接调用
Charger_NotifyClients
function module开放注册API接口供ui consumer task调用实现ui consumer task作为client task注册到其配置表中event所属task的client task list中实现对function module task消息接收
UiIndicator_RegisterInterestInConfiguredReminderSystemEvents
查询 Broker静态注册表