add Wi-Fi test

This commit is contained in:
Juraj Michalek 2024-09-25 09:33:47 +02:00
commit 6ae1765d55
2 changed files with 80 additions and 4 deletions

View file

@ -27,7 +27,8 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy: strategy:
matrix: matrix:
board: [esp32c3-devkit, esp32c2-devkit] #board: [esp32c3-devkit, esp32c2-devkit]
board: [esp32c3-devkit]
fail-fast: false fail-fast: false
steps: steps:

View file

@ -1,10 +1,19 @@
#include <stdio.h> #include <stdio.h>
#include <string.h>
#include <lua.h> #include <lua.h>
#include <lualib.h> #include <lualib.h>
#include <lauxlib.h> #include <lauxlib.h>
#include "freertos/FreeRTOS.h" #include "freertos/FreeRTOS.h"
#include "freertos/task.h" #include "freertos/task.h"
#include "esp_heap_caps.h" #include "esp_heap_caps.h"
#include "esp_wifi.h"
#include "esp_event.h"
#include "nvs_flash.h"
#include "esp_log.h"
#define WIFI_SCAN_LIST_SIZE 10
static const char *TAG = "WIFI_SCAN";
// Function to log memory usage with the message at the end // Function to log memory usage with the message at the end
void log_memory_usage(const char *message) void log_memory_usage(const char *message)
@ -57,7 +66,7 @@ void run_lua_qr_code_test(const char *lua_script, const char *test_name)
// Retrieve the QR code string from the Lua stack // Retrieve the QR code string from the Lua stack
const char *qr_code_string = lua_tostring(L, -1); const char *qr_code_string = lua_tostring(L, -1);
if (qr_code_string) { if (qr_code_string) {
printf("Mock QR Code:\n%s\n", qr_code_string); printf("QR Code:\n%s\n", qr_code_string);
} }
lua_pop(L, lua_gettop(L)); lua_pop(L, lua_gettop(L));
} }
@ -69,6 +78,59 @@ void run_lua_qr_code_test(const char *lua_script, const char *test_name)
printf("End of Lua QR Code test: %s\n", test_name); printf("End of Lua QR Code test: %s\n", test_name);
} }
// Function to initialize and perform Wi-Fi scan
void scan_wifi_networks(void)
{
printf("Starting Wi-Fi scan...\n");
// Initialize NVS
esp_err_t ret = nvs_flash_init();
if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) {
ESP_ERROR_CHECK(nvs_flash_erase());
ret = nvs_flash_init();
}
ESP_ERROR_CHECK(ret);
// Initialize Wi-Fi
ESP_ERROR_CHECK(esp_netif_init());
ESP_ERROR_CHECK(esp_event_loop_create_default());
esp_netif_create_default_wifi_sta();
wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT();
ESP_ERROR_CHECK(esp_wifi_init(&cfg));
// Start Wi-Fi in STA mode
ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_STA));
ESP_ERROR_CHECK(esp_wifi_start());
// Set the Wi-Fi scan parameters
wifi_scan_config_t scan_config = {
.ssid = NULL,
.bssid = NULL,
.channel = 0,
.show_hidden = true
};
// Perform Wi-Fi scan
ESP_ERROR_CHECK(esp_wifi_scan_start(&scan_config, true));
// Get the scan results
uint16_t ap_count = WIFI_SCAN_LIST_SIZE;
wifi_ap_record_t ap_info[WIFI_SCAN_LIST_SIZE];
ESP_ERROR_CHECK(esp_wifi_scan_get_ap_records(&ap_count, ap_info));
// Print the scan results
printf("Found %d access points:\n", ap_count);
for (int i = 0; i < ap_count; i++) {
printf("SSID: %s, RSSI: %d\n", ap_info[i].ssid, ap_info[i].rssi);
}
ESP_ERROR_CHECK(esp_wifi_stop());
ESP_ERROR_CHECK(esp_wifi_deinit());
printf("Wi-Fi scan completed.\n");
}
void app_main(void) void app_main(void)
{ {
// Test 1: Simple Lua script // Test 1: Simple Lua script
@ -95,9 +157,22 @@ void app_main(void)
"end\n" "end\n"
"local qr_string = generate_mock_qr('Hello, ESP32-C3!')\n" "local qr_string = generate_mock_qr('Hello, ESP32-C3!')\n"
"return qr_string"; "return qr_string";
run_lua_qr_code_test(mock_qr_code_script, "Mock QR Code Script"); run_lua_qr_code_test(mock_qr_code_script, "Mock QR Code Script");
// Perform Wi-Fi scan
scan_wifi_networks();
// Test 3: Lua script to compute Fibonacci sequence
const char *fibonacci_script =
"local function fibonacci(n)\n"
" if n <= 1 then return n end\n"
" return fibonacci(n - 1) + fibonacci(n - 2)\n"
"end\n"
"local fib_10 = fibonacci(10)\n"
"print('Fibonacci of 10 is: ' .. fib_10)\n"
"return fib_10";
run_lua_test(fibonacci_script, "Fibonacci Script");
printf("End of testing application.\n"); printf("End of testing application.\n");
// Prevent the task from ending // Prevent the task from ending