From c7fc0eeec914ce78977cf49d9939479f19d657f0 Mon Sep 17 00:00:00 2001 From: "orlane.donias" <orlane.donias@telecom-sudparis.eu> Date: Sun, 28 May 2023 18:55:52 +0200 Subject: [PATCH 1/2] Adding parameter "pattern" to scan functions --- main/commands.c | 12 +++++++----- main/commands.h | 9 +++++++++ main/ftm.c | 9 +++++---- main/ftm.h | 2 +- main/ftm_main.c | 6 +++++- 5 files changed, 27 insertions(+), 11 deletions(-) diff --git a/main/commands.c b/main/commands.c index b942e7b..0ae1541 100644 --- a/main/commands.c +++ b/main/commands.c @@ -6,6 +6,7 @@ wifi_args_t sta_args; wifi_args_t sta_args; wifi_args_t ap_args; wifi_scan_arg_t scan_args; +wifi_scan_arg_pattern_t scan_pattern_args; wifi_ftm_args_t ftm_args; wifi_calibrate_args_t calibrate_args; @@ -71,19 +72,20 @@ int wifi_cmd_scan(int argc, char **argv) { } int wifi_cmd_scan_pattern(int argc, char **argv) { - int nerrors = arg_parse(argc, argv, (void **)&scan_args); + int nerrors = arg_parse(argc, argv, (void **)&scan_pattern_args); if (nerrors != 0) { - arg_print_errors(stderr, scan_args.end, argv[0]); + arg_print_errors(stderr, scan_pattern_args.end, argv[0]); return 1; } ESP_LOGI(TAG_STA, "sta start to scan for pattern"); - if (scan_args.ssid->count == 1) { - wifi_perform_scan_pattern(scan_args.ssid->sval[0], false); + if (scan_pattern_args.pattern->count == 1) { + wifi_perform_scan_pattern(false, scan_pattern_args.pattern->sval[0]); } else { - wifi_perform_scan_pattern(NULL, false); + wifi_perform_scan_pattern(false, NULL); } + return 0; } diff --git a/main/commands.h b/main/commands.h index eda8f5d..17f4524 100644 --- a/main/commands.h +++ b/main/commands.h @@ -31,6 +31,14 @@ typedef struct { struct arg_end *end; } wifi_scan_arg_t; +/* + * Arguments for the Wifi scan command + */ +typedef struct { + struct arg_str *pattern; + struct arg_end *end; +} wifi_scan_arg_pattern_t; + typedef struct { /* FTM Initiator */ struct arg_lit *initiator; @@ -56,6 +64,7 @@ extern wifi_args_t sta_args; extern wifi_args_t sta_args; extern wifi_args_t ap_args; extern wifi_scan_arg_t scan_args; +extern wifi_scan_arg_pattern_t scan_pattern_args; extern wifi_ftm_args_t ftm_args; extern wifi_calibrate_args_t calibrate_args; diff --git a/main/ftm.c b/main/ftm.c index c0f93af..b940179 100644 --- a/main/ftm.c +++ b/main/ftm.c @@ -1,4 +1,6 @@ #include "ftm.h" +#include <stdio.h> +#include <string.h> const char *TAG_STA = "ftm_station"; const char *TAG_AP = "ftm_ap"; @@ -133,11 +135,9 @@ bool wifi_perform_scan(const char *ssid, bool internal) { return true; } -bool wifi_perform_scan_pattern(const char *ssid, bool internal) { +bool wifi_perform_scan_pattern(bool internal, char *pattern) { wifi_scan_config_t scan_config = {0}; - scan_config.ssid = (uint8_t *)ssid; uint8_t i; - char *pattern = "NET"; ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_STA)); if (ESP_OK != esp_wifi_scan_start(&scan_config, true)) { @@ -165,7 +165,8 @@ bool wifi_perform_scan_pattern(const char *ssid, bool internal) { if (!internal) { int compteur = 0; for (i = 0; i < g_scan_ap_num && compteur < 4; i++) { - if (strcmp(g_ap_list_buffer[i].ssid, pattern, strlen(pattern))) { + if (strncmp(pattern, (char *)g_ap_list_buffer[i].ssid, + strlen(pattern))) { ESP_LOGI(TAG_STA, "[%s][rssi=%d]" "%s", diff --git a/main/ftm.h b/main/ftm.h index 74e9a7b..5b10ca3 100644 --- a/main/ftm.h +++ b/main/ftm.h @@ -54,7 +54,7 @@ extern wifi_ap_record_t *g_ap_list_buffer; bool wifi_perform_scan(const char *ssid, bool internal); -bool wifi_perform_scan_pattern(const char *ssid, bool internal); +bool wifi_perform_scan_pattern(bool internal, char *pattern); wifi_ap_record_t *find_ftm_responder_ap(const char *ssid); diff --git a/main/ftm_main.c b/main/ftm_main.c index da14fc6..2ce529c 100755 --- a/main/ftm_main.c +++ b/main/ftm_main.c @@ -201,11 +201,15 @@ void register_wifi(void) { /* Scan_pattern command*/ + scan_pattern_args.pattern = + arg_str0("p", "pattern", "pattern", "Pattern to search for"); + calibrate_args.end = arg_end(1); + const esp_console_cmd_t scan_pattern_cmd = {.command = "scan_pattern", .help = "Scan_pattern command", .hint = NULL, .func = &wifi_cmd_scan_pattern, - .argtable = &scan_args}; + .argtable = &scan_pattern_args}; ESP_ERROR_CHECK(esp_console_cmd_register(&scan_pattern_cmd)); } -- GitLab From 34b49976f155203ac5cadf968411fabd47953403 Mon Sep 17 00:00:00 2001 From: "orlane.donias" <orlane.donias@telecom-sudparis.eu> Date: Sun, 28 May 2023 19:10:42 +0200 Subject: [PATCH 2/2] Last_fixes --- main/ftm.c | 4 ++-- main/ftm_main.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/main/ftm.c b/main/ftm.c index b940179..218b994 100644 --- a/main/ftm.c +++ b/main/ftm.c @@ -165,8 +165,8 @@ bool wifi_perform_scan_pattern(bool internal, char *pattern) { if (!internal) { int compteur = 0; for (i = 0; i < g_scan_ap_num && compteur < 4; i++) { - if (strncmp(pattern, (char *)g_ap_list_buffer[i].ssid, - strlen(pattern))) { + if (!strncmp(pattern, (char *)g_ap_list_buffer[i].ssid, + strlen(pattern))) { ESP_LOGI(TAG_STA, "[%s][rssi=%d]" "%s", diff --git a/main/ftm_main.c b/main/ftm_main.c index 2ce529c..cc9d158 100755 --- a/main/ftm_main.c +++ b/main/ftm_main.c @@ -203,7 +203,7 @@ void register_wifi(void) { scan_pattern_args.pattern = arg_str0("p", "pattern", "pattern", "Pattern to search for"); - calibrate_args.end = arg_end(1); + scan_pattern_args.end = arg_end(1); const esp_console_cmd_t scan_pattern_cmd = {.command = "scan_pattern", .help = "Scan_pattern command", -- GitLab