Skip to content

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协议栈
Back to top