wiota sleep模式下设置闹钟定时唤醒
概述
这里是一个wiota异步sleep模式下设置闹钟进行定时唤醒的简单demo,异步通信需要两个终端(IOTE)。首先确保两个终端的静态数据表等配置统一和数据发送API参数中的目标user_id正确,否则会连接不上或收发数据失败。在进入sleep模式前,设置闹钟定时,定时时间到后会触发中断唤醒,使得程序重启运行。
DEMO所在工程目录路径:PS\app\test\test_wiota_sleep_wake_up.c
默认该DEMO为关闭状态,打开需要添加宏定义如下:
#define WIOTA_ASYNC_SLEEP_WAKE_UP_TEST
在main.c文件中加入声明:
int wiota_sleep_wake_up_demo(void);
同时在main()函数中调用下列函数:
wiota_sleep_wake_up_demo();
DEMO流程
主流程
如图所示,DEMO流程比较简单,协议栈初始化后,向指定终端发送数据,然后设置闹钟唤醒时间(单位s),随后进入sleep模式,当到了设定的时间时会触发中断唤醒。比如设置成5s,进入sleep模式,5s后系统就会自动被唤醒,唤醒后系统会自动初始化和启动wiota协议栈,然后向指定终端发送数据。
对于只做简单接收的另一个终端,此demo没有列出程序流程,开发者只需让终端run起来即可。
使用的API接口列表
序号 | 函数名 | 功能 |
---|---|---|
1 | uc_wiota_init() | wiota协议栈的初始化 |
2 | uc_wiota_get_system_config() | 获取系统配置 |
3 | uc_wiota_set_userid() | 设置用户ID |
4 | uc_wiota_set_freq_info() | 设置频点 |
5 | uc_wiota_set_system_config() | 设置系统配置 |
6 | uc_wiota_set_crc() | 设置CRC校验 |
7 | uc_wiota_set_data_rate() | 设置数据传输速率 |
8 | uc_wiota_set_detect_time() | 设置发送前检测等待时间 |
9 | uc_wiota_set_unisend_fail_cnt() | 设置单播重传次数 |
10 | uc_wiota_set_subframe_num() | 设置发送时的子帧数 |
11 | uc_wiota_set_cur_power() | 设置当前的功率 |
12 | uc_wiota_register_recv_data_callback() | 注册被动接收数据回调 |
13 | uc_wiota_run() | 启动wiota协议栈 |
14 | uc_wiota_get_userid() | 获取用户ID |
15 | uc_wiota_send_data() | 发送数据 |
16 | uc_wiota_set_alarm_time() | 设置闹钟定时 |
17 | uc_wiota_sleep_enter() | 进入sleep模式 |
18 | uc_wiota_exit() | 关闭WIoTa协议栈 |