Morse Micro IoT SDK  2.10.4
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#include "mm_app_common.h"
32
44static enum mmwlan_status add_twt_configuration(uint32_t wake_interval_us,
45 uint32_t min_wake_duration_us)
46{
47 enum mmwlan_status status;
49
50 twt_config.twt_mode = MMWLAN_TWT_REQUESTER;
52 twt_config.twt_wake_interval_us = wake_interval_us;
53 twt_config.twt_min_wake_duration_us = min_wake_duration_us;
54
55 status = mmwlan_twt_add_configuration(&twt_config);
56 if (status == MMWLAN_SUCCESS)
57 {
58 printf("Successfully added TWT configuration\n");
59 }
60 else
61 {
62 printf("Failed to set TWT configuration\n");
63 }
64 return status;
65}
66
71void app_init(void)
72{
73 uint32_t twt_wake_interval_us;
75
76 printf("\n\nMorse TWT Demo (Built " __DATE__ " " __TIME__ ")\n\n");
77
78 /* Initialize and connect to Wi-Fi network. Blocks till connected. */
80
81 /* Default to an interval of 5 minutes (approx) with each service period lasting 65 ms. */
82 twt_wake_interval_us = 300000000;
84 mmconfig_read_uint32("twt.wake_interval_us", &twt_wake_interval_us);
85 mmconfig_read_uint32("twt.min_wake_duration_us", &twt_min_wake_duration_us);
87
89}
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:1375
enum mmwlan_status mmwlan_twt_add_configuration(const struct mmwlan_twt_config_args *twt_config_args)
Add configurations for Target Wake Time (TWT).
@ MMWLAN_TWT_SETUP_REQUEST
TWT setup request command.
Definition: mmwlan.h:1332
@ MMWLAN_TWT_REQUESTER
TWT enabled as a requester.
Definition: mmwlan.h:1323
mmwlan_status
Enumeration of status return codes.
Definition: mmwlan.h:51
@ MMWLAN_SUCCESS
The operation was successful.
Definition: mmwlan.h:53
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:1341
enum mmwlan_twt_setup_command twt_setup_command
TWT setup command, mmwlan_twt_setup_command.
Definition: mmwlan.h:1363
uint64_t twt_wake_interval_us
TWT service period interval in micro seconds.
Definition: mmwlan.h:1349
uint32_t twt_min_wake_duration_us
Minimum TWT wake duration in micro seconds.
Definition: mmwlan.h:1361
enum mmwlan_twt_mode twt_mode
Target Wake Time (TWT) modes, mmwlan_twt_mode.
Definition: mmwlan.h:1343
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:44
void app_init(void)
Main entry point to the application.
Definition: twt_setup.c:71