3.4.10. APP - Apple fmy & Google fhn
3.4.10.1. 概述
Note
同时支持Apple fmy和Google fhn功能。
3.4.10.2. 工程配置
配置app选择:apps/demo/transfer/include/app_config.h
//apps example 选择,只能选1个,要配置对应的board_config.h,配置应用切换时对应选择的应用都要置1
#define CONFIG_APP_FMY_FHN_DUAL 1 //Apple fmy和Google fhn双系统应用, 使用需要配置板级CONFIG_BOARD_AW33N_FMY_FHN
板级选择,接着在文件(apps/demo/transfer/board/bd57/board_config.h)下进行对应的板级选择如下:
#define CONFIG_BOARD_AW33N_FMY_FHN
#include "board_aw33n_fmy_fhn_cfg.h"
3.4.10.3. 主要功能说明
本demo同时支持Apple fmy和Google fhn功能,整合了两者的功能逻辑。
烧录完上电后,demo会进入软关机状态,用户需要长按ADkey K1开机,开机后默认打开广播(同时发出双路广播),
用户可打开谷歌手机或者苹果手机,用户只能选择一种配网模式,不能同时进行。
具体配网逻辑和功能使用,可分别查看
Google Fhn或者Findmy章节
3.4.10.4. 主要代码讲解
apps\demo\transfer\examples\fmy_fhn_dual\ble_fmy_fhn_dual.c
/*************************************************************************************************/
/*!
* \brief 模块初始化
*
* \param [in]
*
* \return
*
* \note
*/
/*************************************************************************************************/
void fmy_fhn_dual_bt_ble_init(void)
{
log_info("%s", __FUNCTION__);
log_info("ble_file: %s", __FILE__);
u8 protocol_init_state = APP_NO_PAIRED_STATE;
syscfg_read(CFG_LAST_SW_APP_ID, (uint8_t *)&protocol_init_state, sizeof(protocol_init_state));
apple_fmy_common_init();
if ((protocol_init_state == APPLE_FMY_PAIRED_DONE) || (protocol_init_state == APP_NO_PAIRED_STATE)) {
apple_fmy_protocol_init();
}
if ((protocol_init_state == GOOGLE_FHN_PAIRED_DONE) || (protocol_init_state == APP_NO_PAIRED_STATE)) {
google_fhn_protocol_init();
}
}
/*************************************************************************************************/
/*!
* \brief 按键处理模块
*
* \param [in]
*
* \return
*
* \note
*/
/*************************************************************************************************/
void fmy_fhn_dual_key_deal_test(uint8_t key_type, uint8_t key_value)
{
log_info(">>>>>>>>>> google_fhn key test %d %d", key_type, key_value);
if (key_value == TCFG_ADKEY_VALUE0) {
switch (key_type) {
case KEY_EVENT_CLICK:
break;
case KEY_EVENT_DOUBLE_CLICK:
break;
case KEY_EVENT_TRIPLE_CLICK:
break;
case KEY_EVENT_FOURTH_CLICK:
//双findmy系统记录配网状态
u8 protocol_init_state = APP_NO_PAIRED_STATE;
syscfg_write(CFG_LAST_SW_APP_ID, (uint8_t *)&protocol_init_state, sizeof(protocol_init_state));
log_info(">>>test to reset accessory");
//恢复苹果fmy出厂设置
fmy_info_save_before_factory_reset();
fmna_plaform_reset_config();
//恢复谷歌fhn出厂设置
fhn_sound_set_effect(1, 100);
sys_timeout_add(NULL, fhn_factory_reset_test, 100);
break;
case KEY_EVENT_LONG:
printf("####################### gfps power off");
app_power_event_to_user(POWER_EVENT_POWER_SOFTOFF);
break;
}
}
}
3.4.10.5. case默认应用资源(默认使用AW33N Findmy DEMO开发板)
Note
demo默认占用外设资源如下,具体可以查看board_aw33n_fmy_fhn_cfg.h
I/O口占用情况
PA口 I/O |
默认占用情况 |
|---|---|
PA3 |
默认打印UART0引脚 |
PA1 |
iokey检测引脚 |
硬件定时器占用情况
定时器 |
默认占用情况 |
|---|---|
TIMER0 |
暂无使用 |
TIMER1 |
暂无使用 |
TIMER2 |
暂无使用 |
TIMER3 |
暂无使用 |
串口占用情况
串口 |
默认占用情况 |
|---|---|
UART0 |
SDK打印 |
UART1 |
暂无使用 |
UART2 |
暂无使用 |