ENTS-tock
Environmental NeTworked Sensor firmware on Tock OS
Loading...
Searching...
No Matches
wifi.c File Reference
#include "wifi.h"
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#include <stm32_systime.h>
#include "app_lorawan.h"
#include "../user_config.h"
#include "board.h"
#include "controller/controller.h"
#include "dma.h"
#include "fifo.h"
#include "payload.h"
#include "sensors.h"

Go to the source code of this file.

Functions

void UploadEvent (void *context)
 Function call for upload event.
 
void Upload (void)
 Upload data to hub.
 
bool Connect (void)
 Connect to WiFi.
 
bool Disconnect (void)
 Disconnect from WiFi.
 
bool TimeSync (void)
 Timesync with NTP server.
 
bool Check (void)
 Check API health.
 
void StartUploads (void)
 Setup upload timer.
 
void StopUploads (void)
 Stop upload timer.
 
void ResumeUploads (void)
 Resumes upload timer.
 
void ErrorHandler (void)
 Error handler.
 
bool Esp32Init (void)
 Call initialization functions for ESP32.
 
void WiFiInit (void)
 Initialize WiFi uploading method.
 

Variables

const unsigned int max_retries = 5
 Maximum number of retries for any event.
 
const unsigned int retry_delay = 1000
 Delay in milliseconds between retries.
 

Function Documentation

◆ Check()

bool Check ( void  )

Check API health.

Returns
error status, false if successful, true if error

Definition at line 353 of file wifi.c.

References ControllerWiFiCheckApi(), ControllerWiFiCheckRequest(), ControllerWiFiResponse::http_code, max_retries, retry_delay, and UserConfigGet().

Referenced by Esp32Init(), and ModuleIrrigation::OnReceive().

◆ Connect()

bool Connect ( void  )

Connect to WiFi.

Connects to WiFi network and sets the system time.

Returns
error status, false if successful, true if error

Definition at line 245 of file wifi.c.

References CONTROLLER_WIFI_CONNECT_FAILED, CONTROLLER_WIFI_CONNECTED, CONTROLLER_WIFI_DISCONNECTED, CONTROLLER_WIFI_NO_SSID_AVAIL, ControllerWiFiCheckWiFi(), ControllerWiFiConnect(), max_retries, retry_delay, ssid, and UserConfigGet().

Referenced by Esp32Init(), and ModuleWiFi::OnReceive().

◆ Disconnect()

bool Disconnect ( void  )

Disconnect from WiFi.

Returns
error status, false if successful, true if error

Definition at line 289 of file wifi.c.

References CONTROLLER_WIFI_DISCONNECTED, CONTROLLER_WIFI_IDLE_STATUS, ControllerWiFiCheckWiFi(), ControllerWiFiDisconnect(), max_retries, and retry_delay.

Referenced by ErrorHandler(), ModuleWiFi::OnReceive(), and WiFiInit().

◆ ErrorHandler()

void ErrorHandler ( void  )

Error handler.

Turns on LEDs, waits for a reconnection, and resumes uploads.

Definition at line 231 of file wifi.c.

References Disconnect(), Esp32Init(), ResumeUploads(), and StopUploads().

Referenced by Upload().

◆ Esp32Init()

bool Esp32Init ( void  )

Call initialization functions for ESP32.

Connects to a WiFi network, checks API health, and syncs time.

Returns
true if successful, false if error

Definition at line 400 of file wifi.c.

References Check(), Connect(), and TimeSync().

Referenced by ErrorHandler(), and WiFiInit().

◆ ResumeUploads()

void ResumeUploads ( void  )

Resumes upload timer.

Definition at line 224 of file wifi.c.

Referenced by ErrorHandler().

◆ StartUploads()

void StartUploads ( void  )

Setup upload timer.

Start sensor measurements and setup upload task/timer.

Definition at line 197 of file wifi.c.

References Upload(), UploadEvent(), and UserConfigGet().

Referenced by WiFiInit().

◆ StopUploads()

void StopUploads ( void  )

Stop upload timer.

Definition at line 217 of file wifi.c.

Referenced by ErrorHandler().

◆ TimeSync()

bool TimeSync ( void  )

Timesync with NTP server.

Returns
error status, false if successful, true if error

Definition at line 318 of file wifi.c.

References ControllerWiFiNtpSync(), ControllerWiFiTime(), max_retries, and retry_delay.

Referenced by Esp32Init().

◆ Upload()

void Upload ( void  )

Upload data to hub.

Posts data to configured url.

Definition at line 130 of file wifi.c.

References buffer, ControllerWiFiCheckRequest(), ControllerWiFiPost(), ErrorHandler(), ControllerWiFiResponse::http_code, i, max_retries, retry_delay, and UploadEvent().

Referenced by StartUploads().

◆ UploadEvent()

void UploadEvent ( void *  context)

Function call for upload event.

Parameters
contextTimer context.

Definition at line 125 of file wifi.c.

Referenced by StartUploads(), and Upload().

◆ WiFiInit()

void WiFiInit ( void  )

Initialize WiFi uploading method.

Connect to WiFi network, sync time, check API health, and start upload timer.

Definition at line 113 of file wifi.c.

References Disconnect(), Esp32Init(), and StartUploads().

Variable Documentation

◆ max_retries

const unsigned int max_retries = 5

Maximum number of retries for any event.

Definition at line 29 of file wifi.c.

Referenced by Check(), Connect(), Disconnect(), TimeSync(), and Upload().

◆ retry_delay

const unsigned int retry_delay = 1000

Delay in milliseconds between retries.

Definition at line 34 of file wifi.c.

Referenced by Check(), Connect(), Disconnect(), TimeSync(), and Upload().