Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 3 additions & 7 deletions components/cli/console_commands.c
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
#include "brake_servo.h"
#include "recovery_servo.h"
#include "flash_nvs.h"
#include "flash.h"
#include "rtos_tasks.h"
#include "nvs.h"

Expand Down Expand Up @@ -295,10 +294,12 @@ int CLI_flash_read(int argc, char **argv) {
return -1;
}

data_to_memory_task_t data;
rocket_data_t rocket_data;
char data_buffer[200];
while (fread(&rocket_data, sizeof(rocket_data), 1, file)) {
create_data_csv(&rocket_data, data_buffer, sizeof(data_buffer));
data.data = rocket_data;
create_data_csv(&data, data_buffer, sizeof(data_buffer));
printf("%s", data_buffer);
}
fclose(file);
Expand All @@ -309,11 +310,6 @@ int CLI_flash_read(int argc, char **argv) {
return 0;
}

int CLI_flash_format(int argcc, char **argv) {
FLASH_format();
return 0;
}

int CLI_print_settings(int argc, char **argv) {
settings_t* settings = SETI_get_settings();
ESP_LOGI(TAG, "Brake open angle: %d", settings->brake_open_angle);
Expand Down
1 change: 0 additions & 1 deletion components/cli/console_commands.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,5 @@ int CLI_set_brake_open_time(int argc, char **argv);
int CLI_set_safety_trigger_time(int argc, char **argv);
int CLI_set_recovery_open_time(int argc, char **argv);
int CLI_flash_read(int argc, char **argv);
int CLI_flash_format(int argcc, char **argv);

#endif
2 changes: 1 addition & 1 deletion components/memory/flash.c
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ bool FLASH_is_memory_available(void) {
if (err != ESP_OK) {
return 0;
}
return fl.used_size < (fl.total_size * 4 / 10) ? true : false;
return fl.used_size < (fl.total_size / 2) ? true : false;
}

FlashResult FLASH_format(void) {
Expand Down
74 changes: 0 additions & 74 deletions components/rtos/rtos_flas_task.c

This file was deleted.

34 changes: 2 additions & 32 deletions components/rtos/rtos_init.c
Original file line number Diff line number Diff line change
Expand Up @@ -68,8 +68,7 @@ state_config_t states_conf[] = {
};

bool rtos_init(void) {
rtos.data_to_memory = xQueueCreate(RTOS_SD_QUEUE_SIZE, sizeof(rocket_data_t));
rtos.data_to_flash = xQueueCreate(RTOS_FLASH_QUEUE_SIZE, sizeof(rocket_data_t));
rtos.data_to_memory = xQueueCreate(30, sizeof(data_to_memory_task_t));

if (rtos.data_to_memory == NULL) {
return false;
Expand All @@ -81,11 +80,9 @@ bool rtos_init(void) {
TASK_PRIORITY_HIGH, &rtos.main_task, PRO_CPU_NUM);
xTaskCreatePinnedToCore(memory_task, "memory_task", 8000, NULL,
TASK_PRIORITY_MID, &rtos.memory_task, APP_CPU_NUM);
xTaskCreatePinnedToCore(flash_task, "flash_task", 8000, NULL,
TASK_PRIORITY_HIGH, &rtos.flash_task, APP_CPU_NUM);

if (rtos.sensor_task == NULL || rtos.main_task == NULL ||
rtos.memory_task == NULL || rtos.flash_task == NULL) {
rtos.memory_task == NULL) {
if (rtos.sensor_task != NULL) {
vTaskDelete(rtos.sensor_task);
}
Expand All @@ -94,10 +91,6 @@ bool rtos_init(void) {
vTaskDelete(rtos.memory_task);
}

if (rtos.flash_task != NULL) {
vTaskDelete(rtos.memory_task);
}

if (rtos.main_task != NULL) {
vTaskDelete(rtos.main_task);
}
Expand Down Expand Up @@ -206,27 +199,6 @@ static bool read_settings_from_flash(void) {
return res == NVS_OK ? true : false;
}

static void format_flash_on_boot_button(void) {
gpio_set_direction(0, GPIO_MODE_INPUT);
if (gpio_get_level(0) == 0) {
ESP_LOGI(TAG, "FLASH FORMATING ....");
for (int i = 0; i < 2; ++i) {
BUZZER_set_level(1);
vTaskDelay(pdMS_TO_TICKS(250));
BUZZER_set_level(0);
vTaskDelay(pdMS_TO_TICKS(250));
}
FLASH_format();

for (int i = 0; i < 4; ++i) {
BUZZER_set_level(1);
vTaskDelay(pdMS_TO_TICKS(200));
BUZZER_set_level(0);
vTaskDelay(pdMS_TO_TICKS(200));
}
}
}

/**************************** ERRORS ***************************/

static void err_handling(char *name) {
Expand Down Expand Up @@ -263,7 +235,6 @@ void init_task(void *arg) {
ERR_CHECK_BOOL(SM_run() == SM_OK ? true : false, "State machine run");

ERR_CHECK_STATUS(FLASH_init(1), "FLASH");
format_flash_on_boot_button();
ERR_CHECK_STATUS(NVS_init(), "NVS");
ERR_CHECK_BOOL(read_settings_from_flash(), "NVS read");
ERR_CHECK_BOOL(SD_init(&sd_card, sd_spi.spi_host, PCB_SD_CS, MOUNT_POINT), "SD_init");
Expand All @@ -286,7 +257,6 @@ void init_task(void *arg) {
"LSM6DSA3 gyro scale");
ERR_CHECK_STATUS(LPS25HInit(&press_sensor, I2C_NUM_1, LPS25H_I2C_ADDR_SA0_H), "LPS25H");
ERR_CHECK_STATUS(LPS25HStdConf(&press_sensor), "LPS25HB conf");
ERR_CHECK_STATUS(LPS25HCalibrate(&press_sensor), "LPS25HB calibration");
ERR_CHECK_STATUS(console_init(), "CLI");
ERR_CHECK_STATUS(console_register_commands(console_commands,
sizeof(console_commands)/sizeof(console_commands[0])), "CLI register");
Expand Down
43 changes: 16 additions & 27 deletions components/rtos/rtos_main_task.c
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,18 @@ static esp_event_loop_handle_t event_handle;

ESP_EVENT_DEFINE_BASE(TASK_EVENTS);

static data_to_memory_task_t create_data_to_memory_struct(void) {
data_to_memory_task_t data_to_mem;
data_to_mem.data = main_data;
if (main_data.state < ASCENT) {
data_to_mem.save_option = SAVE_TO_SD;
} else if (main_data.state < GROUND) {
data_to_mem.save_option = SAVE_TO_BOTH;
}

return data_to_mem;
}

static void update_data(void) {
main_data.state = SM_get_current_state();
main_data.up_time = get_time_ms();
Expand All @@ -19,18 +31,14 @@ static void update_data(void) {

/********************** EVENTS ************************/

static void wakeup_flash_task(void) {
xTaskNotifyGive(rtos.flash_task);
}

static void sensors_high_acc_event(void *h_arg, esp_event_base_t, int32_t id,
void *data) {
ESP_LOGD(TAG, "HIGH ACCELERATION");
if (SM_change_state(ASCENT) != SM_OK) {
ESP_LOGE(TAG, "UNABLE TO CHANGE STATE TO ASCENT");
return;
}
wakeup_flash_task();

FLIGHT_TIME_start(get_time_ms());
BUZZER_set_level(1);
TIMER_start(BRAKE_TIMER, SETI_get_settings()->brake_open_time,
Expand Down Expand Up @@ -89,38 +97,19 @@ static void touchdown_event(void *h_arg, esp_event_base_t, int32_t id, void *dat
TIMER_start(BUZZER_TIMER, 1000, TIMER_PERIODIC, TIMER_CB_buzzer_change, NULL);
}

static void flash_keep_previous_data_on_queue(rocket_data_t *main_data) {
if (uxQueueMessagesWaiting(rtos.data_to_flash) > RTOS_FLASH_QUEUE_DATA_TO_STASH) {
rocket_data_t data;
if (xQueueReceive(rtos.data_to_flash, (void*)&data, 0) != pdTRUE) {
ESP_LOGE(TAG, "Unable to send to back");
}
}

if (xQueueSend(rtos.data_to_flash, (void *)main_data, 0) == pdFALSE) {
ESP_LOGE(TAG, "UNABLE TO SEND DATA TO FLASH TASK ON LAUNCHPAD");
}
}

static void sensors_new_data_event(void *h_arg, esp_event_base_t, int32_t id,
void *data) {
// ESP_LOGI(TAG, "NEW DATA EVENT");
main_data.sensors = *(sensors_t*)data;
update_data();

if (main_data.state < GROUND) {
if (xQueueSend(rtos.data_to_memory, (void *)&main_data, 0) == pdFALSE) {
data_to_memory_task_t data_to_memory = create_data_to_memory_struct();
if (xQueueSend(rtos.data_to_memory, (void *)&data_to_memory, 0) ==
pdFALSE) {
ESP_LOGE(TAG, "UNABLE TO SEND DATA TO MEMORY TASK");
}
}

if (main_data.state > LAUNCHPAD && main_data.state < GROUND) {
if (xQueueSend(rtos.data_to_flash, (void *)&main_data, 0) == pdFALSE) {
ESP_LOGE(TAG, "UNABLE TO SEND DATA TO FLASH TASK");
}
} else if (main_data.state == LAUNCHPAD) {
flash_keep_previous_data_on_queue(&main_data);
}
// set brejk
}

Expand Down
Loading