/** ****************************************************************************** * @file config.h * @brief global configuration header * @author S. DI MERCURIO (dimercur@insa-toulouse.fr) * @date December 2023 * ****************************************************************************** * @copyright Copyright 2023 INSA-GEI, Toulouse, France. All rights reserved. * @copyright This project is released under the Lesser GNU Public License (LGPL-3.0-only). * * @copyright This file is part of "Dumber" project * * @copyright This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 3 of the License, or (at your option) any later version. * * @copyright This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * @copyright You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ****************************************************************************** */ #include "stm32l0xx_hal.h" #include "cmsis_os.h" /** @addtogroup Application_Software * @{ */ /** @addtogroup CONFIG * Constants for global system configuration. * @{ */ /** @name System version * Version in plain text and as a numeric value */ ///@{ #define SYSTEM_VERSION_STR "3.3" #define SYSTEM_VERSION 0x0303 // Upper byte: major version, lower byte: minor version ///@} #define STACK_SIZE 96 /** @name Tasks priority constants * Priority is based on configMAX_PRIORITIES which represent highest task priority. * Less priority task is \ref PriorityTestsHandler */ ///@{ #define PriorityLedsAction (configMAX_PRIORITIES -1) #define PriorityXbeeRX (configMAX_PRIORITIES -2) #define PriorityXbeeTX (configMAX_PRIORITIES -3) #define PriorityLedsHandler (configMAX_PRIORITIES -4) #define PriorityApplicationHandler (configMAX_PRIORITIES -5) #define PriorityBatteryHandler (configMAX_PRIORITIES -6) #define PriorityMotorsHandler (configMAX_PRIORITIES -7) // evoxx-bug-watchdog-avec-moteurs : changement de priorité #define PrioritySequenceurTimeout (configMAX_PRIORITIES -8) // evoxx-bug-watchdog-avec-moteurs : changement de priorité #define PriorityMotorsAsservissement (configMAX_PRIORITIES -9) // evoxx-bug-watchdog-avec-moteurs : changement de priorité #define PriorityTestsHandler (configMAX_PRIORITIES -10) ///@} /** @name Periodicities of tasks * Periodicities are given in ms. */ ///@{ #define MOTORS_REGULATION_DELAY (2) #define APPLICATION_COUNTERS_DELAY (100) #define BATTERY_POLLING_DELAY (1000) #define LEDS_DELAY (100) #define BUTTON_INACTIVITY_DELAY (1500) #define TESTS_DELAY (5000) ///@} /** @name Constants for to XBEE module * Constants about timeout and buffer lengths */ ///@{ #define XBEE_TX_SEMAPHORE_WAIT 500 #ifdef TESTS #define XBEE_RX_BUFFER_MAX_LENGTH 100 #define XBEE_TX_BUFFER_MAX_LENGTH 100 #else #define XBEE_RX_BUFFER_MAX_LENGTH 50 #define XBEE_TX_BUFFER_MAX_LENGTH 50 #endif /* TESTS */ ///@} /** @name Constants relative to timeout * Delays are given in ms. */ ///@{ #ifdef TESTS #define APPLICATION_INACTIVITY_TIMEOUT (0xFFFFFFFF) // Max U32, infinite timeout #else #define APPLICATION_INACTIVITY_TIMEOUT (2*60*1000) // 2 minutes, expressed in ms #endif /* TESTS */ #define APPLICATION_WATCHDOG_MIN (900) // minimum time to wait before resetting watchdog, expressed in ms #define APPLICATION_WATCHDOG_MAX (1100) // maximum time to wait before resetting watchdog, expressed in ms #define APPLICATION_WATCHDOG_MISSED_MAX (3) // Maximum missed timeout reset before entering watchdog disabled state #define APPLICATION_STARTUP_DELAY (3*1000) // Startup delay before entering idle state (3s) ///@} TickType_t msToTicks(TickType_t ms); /** * @} */ /** * @} */