Morse Micro IoT SDK  2.9.7
twt_setup.c
Go to the documentation of this file.
1/*
2 * Copyright 2024 Morse Micro
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
26#include <string.h>
27#include "mmosal.h"
28#include "mmwlan.h"
29#include "mmconfig.h"
30
31
32#include "mm_app_common.h"
33
34
46static enum mmwlan_status add_twt_configuration(uint32_t wake_interval_us,
47 uint32_t min_wake_duration_us)
48{
49 enum mmwlan_status status;
51
52 twt_config.twt_mode = MMWLAN_TWT_REQUESTER;
54 twt_config.twt_wake_interval_us = wake_interval_us;
55 twt_config.twt_min_wake_duration_us = min_wake_duration_us;
56
57 status = mmwlan_twt_add_configuration(&twt_config);
58 if (status == MMWLAN_SUCCESS)
59 {
60 printf("Successfully added TWT configuration\n");
61 }
62 else
63 {
64 printf("Failed to set TWT configuration\n");
65 }
66 return status;
67}
68
73void app_init(void)
74{
75 uint32_t twt_wake_interval_us;
77
78 printf("\n\nMorse TWT Demo (Built " __DATE__ " " __TIME__ ")\n\n");
79
80 /* Initialize and connect to Wi-Fi network. Blocks till connected. */
82
83 /* Default to an interval of 5 minutes (approx) with each service period lasting 65 ms. */
84 twt_wake_interval_us = 300000000;
86 mmconfig_read_uint32("twt.wake_interval_us", &twt_wake_interval_us);
87 mmconfig_read_uint32("twt.min_wake_duration_us", &twt_min_wake_duration_us);
89
91}
int mmconfig_read_uint32(const char *key, uint32_t *value)
Returns the unsigned integer stored in persistent store identified by the key.
#define MMWLAN_TWT_CONFIG_ARGS_INIT
Initializer for mmwlan_twt_config_args.
Definition: mmwlan.h:637
enum mmwlan_status mmwlan_twt_add_configuration(const struct mmwlan_twt_config_args *twt_config_args)
Add configurations for Target Wake Time (TWT).
mmwlan_status
Enumeration of status return codes.
Definition: mmwlan.h:50
@ MMWLAN_SUCCESS
The operation was successful.
Definition: mmwlan.h:52
@ MMWLAN_TWT_SETUP_REQUEST
TWT setup request command.
Definition: mmwlan.h:192
@ MMWLAN_TWT_REQUESTER
TWT enabled as a requester.
Definition: mmwlan.h:183
Morse Micro application helper routines for initializing/de-initializing the Wireless LAN interface a...
void app_wlan_init(void)
Initializes the WLAN interface (and dependencies) using settings specified in the config store.
void app_wlan_start(void)
Starts the WLAN interface and connects to Wi-Fi using settings specified in the config store.
Structure for storing Target Wake Time (TWT) configuration arguments.
Definition: mmwlan.h:603
enum mmwlan_twt_setup_command twt_setup_command
TWT setup command, mmwlan_twt_setup_command.
Definition: mmwlan.h:625
uint64_t twt_wake_interval_us
TWT service period interval in micro seconds.
Definition: mmwlan.h:611
uint32_t twt_min_wake_duration_us
Minimum TWT wake duration in micro seconds.
Definition: mmwlan.h:623
enum mmwlan_twt_mode twt_mode
Target Wake Time (TWT) modes, mmwlan_twt_mode.
Definition: mmwlan.h:605
static enum mmwlan_status add_twt_configuration(uint32_t wake_interval_us, uint32_t min_wake_duration_us)
Add a TWT configuration requesting a periodic service period with the given arguments.
Definition: twt_setup.c:46
void app_init(void)
Main entry point to the application.
Definition: twt_setup.c:73