Files
ninlight-w600/src/sys/nl_app.h
T

32 lines
1.2 KiB
C

#ifndef NL_APP_H
#define NL_APP_H
#include <stdint.h>
#include "config/nl_settings.h"
void nl_app_lock(void);
void nl_app_unlock(void);
uint32_t nl_app_now_ms(void);
nl_settings_t *nl_app_settings(void);
/* Copies the settings under the app lock and writes them under the store lock; never call
* while holding the app lock. */
int nl_app_save_settings(void);
/* Writes a pending light state immediately (no write when unchanged). */
void nl_app_flush(void);
/* Flushes pending state, then resets the chip. Does not return. */
void nl_app_reboot(void);
void nl_app_factory_reset(void);
/* Only sets a volatile flag; the app task (which owns the flash stores) checks it
* once per loop iteration and calls nl_app_factory_reset() itself. This avoids the
* race with the app task's own nl_state_log_append()/nl_resetcnt_clear() calls.
* The console's `factory` command and, in a later plan, REST callers must use this
* function instead of calling nl_app_factory_reset() directly from another task. */
void nl_app_request_factory_reset(void);
/* Stores new station credentials (from a successful onboarding test) and persists them. */
int nl_app_set_wifi_credentials(const char *ssid, const char *pass);
#endif