Config. More...
#include <driver/rmt_tx.h>
#include <driver/spi_master.h>
#include <esp_http_server.h>
#include <freertos/message_buffer.h>
#include <freertos/queue.h>
#include <freertos/stream_buffer.h>
#include <hal/gpio_types.h>
#include <static_math/static_math.h>
#include <atomic>
#include <climits>
#include <dcc/dcc.hpp>
#include <magic_enum/magic_enum.hpp>
#include <memory>
#include <string>
#include <vector>
#include <ztl/enum.hpp>
#include <ztl/implicit_wrapper.hpp>
#include <ztl/limits.hpp>
#include <ztl/string.hpp>
#include "task.hpp"
Go to the source code of this file.
Classes | |
struct | drv::analog::VoltagesQueue |
struct | drv::analog::CurrentsQueue |
struct | drv::analog::TemperatureQueue |
struct | drv::out::RxMessageBuffer |
struct | drv::out::TxMessageBuffer |
struct | drv::out::track::RxQueue |
struct | drv::out::track::RxQueue::value_type |
struct | intf::usb::RxStreamBuffer |
struct | intf::usb::TxStreamBuffer |
Namespaces | |
namespace | drv |
namespace | drv::analog |
namespace | drv::led |
namespace | drv::out |
namespace | drv::out::susi |
namespace | drv::out::susi::zimo |
namespace | drv::out::susi::zimo::zusi |
namespace | drv::out::track |
namespace | drv::out::track::dcc |
namespace | drv::out::track::zimo |
namespace | drv::out::track::zimo::decup |
namespace | drv::out::track::zimo::mdu |
namespace | drv::wifi |
namespace | intf |
namespace | intf::http |
namespace | intf::http::sta |
namespace | intf::mdns |
namespace | intf::udp |
namespace | intf::usb |
namespace | mw |
namespace | mw::dcc |
namespace | mw::ota |
namespace | mw::roco |
namespace | mw::roco::z21 |
namespace | mw::zimo |
namespace | mw::zimo::decup |
namespace | mw::zimo::mdu |
namespace | mw::zimo::ulf |
namespace | mw::zimo::ulf::dcc_ein |
namespace | mw::zimo::ulf::decup_ein |
namespace | mw::zimo::ulf::susiv2 |
namespace | mw::zimo::zusi |
Typedefs | |
using | drv::analog::VoltageMeasurement |
using | drv::analog::Voltage |
using | drv::analog::CurrentMeasurement |
using | drv::analog::Current |
Enumerations | |
enum class | State : uint16_t { Suspended = 0u << 0u , Suspending = !Suspended << 0u , ShortCircuit = Suspending << 1u , DCCOperations = 1u << CHAR_BIT , DCCService = 2u << CHAR_BIT , DECUPZpp = 3u << CHAR_BIT , DECUPZsu = 4u << CHAR_BIT , MDUZpp = 5u << CHAR_BIT , MDUZsu = 6u << CHAR_BIT , ZUSI = 7u << CHAR_BIT , ULF_DCC_EIN = 8u << CHAR_BIT , ULF_DECUP_EIN = 9u << CHAR_BIT , ULF_MDU_EIN = 10u << CHAR_BIT , ULF_SUSIV2 = 11u << CHAR_BIT , OTA = 12u << CHAR_BIT } |
System state. More... | |
enum class | drv::out::track::CurrentLimit : uint8_t { drv::out::track::_500mA = 0b00u , drv::out::track::_1300mA = 0b01u , drv::out::track::_2700mA = 0b10u , drv::out::track::_4100mA = 0b11u } |
Functions | |
drv::analog::TASK (adc_task, "drv::analog::adc", 4096uz, ESP_TASK_PRIO_MAX - 2u, APP_CPU_NUM, 200u) | |
drv::analog::TASK (temp_task, "drv::analog::temp", 2048uz, tskIDLE_PRIORITY, APP_CPU_NUM, 0u) | |
drv::out::susi::zimo::zusi::SHARED_TASK (task, "drv::out::susi::zimo::zusi", ESP_TASK_PRIO_MAX - 1u, APP_CPU_NUM, 0u) | |
drv::out::track::dcc::SHARED_TASK (task, "drv::out::track::dcc", ESP_TASK_PRIO_MAX - 1u, APP_CPU_NUM, 0u) | |
drv::out::track::zimo::decup::SHARED_TASK (task, "drv::out::track::zimo::decup", ESP_TASK_PRIO_MAX - 1u, APP_CPU_NUM, 60 '000u) | |
drv::out::track::zimo::mdu::SHARED_TASK (task, "drv::out::track::zimo::mdu", ESP_TASK_PRIO_MAX - 1u, APP_CPU_NUM, 0u) | |
std::string | drv::wifi::mac_str (2uz *6uz+5uz+sizeof('\n'), '\0') |
drv::wifi::TASK (task, "drv::wifi", 3072uz, tskIDLE_PRIORITY, WIFI_TASK_CORE_ID, 0u) | |
intf::usb::TASK (rx_task, "intf::usb::rx", 3072uz, 5u, APP_CPU_NUM, 100u) | |
intf::usb::TASK (tx_task, "intf::usb::tx", 3072uz, 1u, APP_CPU_NUM, 20u) | |
mw::dcc::TASK (task, "mw::dcc", 4096uz, 2u, APP_CPU_NUM, 50u) | |
mw::ota::TASK (task, "mw::ota", 4096uz, ESP_TASK_PRIO_MAX - 1u, APP_CPU_NUM, 0u) | |
mw::roco::z21::TASK (task, "mw::roco::z21", 6144uz, 5u, APP_CPU_NUM, 500u) | |
mw::zimo::decup::TASK (task, "mw::zimo::decup", 4096uz, 2u, APP_CPU_NUM, drv::out::track::zimo::decup::task.timeout) | |
mw::zimo::mdu::TASK (task, "mw::zimo::mdu", 4096uz, 2u, APP_CPU_NUM, 0u) | |
mw::zimo::ulf::dcc_ein::SHARED_TASK (task, "mw::zimo::ulf::dcc_ein", intf::usb::rx_task.priority - 1u, APP_CPU_NUM, 100u) | |
mw::zimo::ulf::decup_ein::SHARED_TASK (task, "mw::zimo::ulf::decup_ein", intf::usb::rx_task.priority - 1u, APP_CPU_NUM, drv::out::track::zimo::decup::task.timeout) | |
mw::zimo::ulf::susiv2::SHARED_TASK (task, "mw::zimo::ulf::susiv2", intf::usb::rx_task.priority - 1u, APP_CPU_NUM, 0u) | |
mw::zimo::zusi::TASK (task, "mw::zimo::zusi", 4096uz, 2u, APP_CPU_NUM, 0u) | |
Variables | |
constexpr auto | default_notify_index {tskDEFAULT_INDEX_TO_NOTIFY + 1u} |
Default task notification index. | |
constexpr auto | boot_gpio_num {GPIO_NUM_0} |
BOOT pin used to boot into bootloader or resetting WiFi station settings. | |
std::atomic< State > | state {State::Suspended} |
Restricts access to low-level tasks. | |
constexpr auto | drv::analog::ol_on_gpio_num {GPIO_NUM_17} |
constexpr auto | drv::analog::voltage_upper_r {14300} |
Voltage divider upper resistor for voltage measurement. | |
constexpr auto | drv::analog::voltage_lower_r {470} |
Voltage divider lower resistor for voltage measurement. | |
constexpr auto | drv::analog::current_r {180} |
Current sense resistor. | |
constexpr auto | drv::analog::current_k {800} |
Current sense ratio. | |
constexpr auto | drv::analog::vref {1000} |
constexpr auto | drv::analog::max_measurement |
constexpr auto | drv::analog::voltage_channel {ADC_CHANNEL_2} |
constexpr auto | drv::analog::current_channel {ADC_CHANNEL_9} |
constexpr auto | drv::analog::attenuation {ADC_ATTEN_DB_0} |
constexpr std::array | drv::analog::channels {current_channel, voltage_channel} |
constexpr auto | drv::analog::sample_freq_hz {8'000u} |
Sample frequency [Hz] (sample takes 125µs, conversion frame 20ms) | |
constexpr auto | drv::analog::conversion_frame_samples {160uz} |
Number of samples per frame. | |
constexpr auto | drv::analog::conversion_frame_time |
Time per frame [ms]. | |
constexpr auto | drv::analog::conversion_frame_size |
constexpr auto | drv::analog::conversion_frame_samples_per_channel |
struct drv::analog::VoltagesQueue | drv::analog::voltages_queue |
struct drv::analog::CurrentsQueue | drv::analog::currents_queue |
struct drv::analog::TemperatureQueue | drv::analog::temperature_queue |
constexpr auto | drv::led::bug_gpio_num {GPIO_NUM_48} |
Bug LED pin used to indicate errors or updates. | |
constexpr auto | drv::led::bug_channel {LEDC_CHANNEL_0} |
Bug LED channel. | |
constexpr auto | drv::led::wifi_gpio_num {GPIO_NUM_47} |
WiFi LED used to indicate WiFi connection status. | |
constexpr auto | drv::led::wifi_channel {LEDC_CHANNEL_1} |
WiFi LED channel. | |
std::array< StackType_t, 4096uz > | drv::out::stack {} |
gptimer_handle_t | drv::out::gptimer {} |
struct drv::out::RxMessageBuffer | drv::out::rx_message_buffer |
struct drv::out::TxMessageBuffer | drv::out::tx_message_buffer |
std::array< spi_device_handle_t, 4uz > | drv::out::susi::spis {} |
constexpr auto | drv::out::susi::enable_gpio_num {GPIO_NUM_4} |
constexpr auto | drv::out::susi::clock_gpio_num {GPIO_NUM_6} |
constexpr auto | drv::out::susi::data_gpio_num {GPIO_NUM_5} |
constexpr auto | drv::out::track::trans_queue_depth {2uz} |
Continuous transmission requires at least a depth of 2. | |
constexpr auto | drv::out::track::p_gpio_num {GPIO_NUM_11} |
constexpr auto | drv::out::track::n_force_low_gpio_num {GPIO_NUM_9} |
constexpr auto | drv::out::track::ack_gpio_num {GPIO_NUM_18} |
constexpr auto | drv::out::track::nsleep_gpio_num {GPIO_NUM_8} |
constexpr auto | drv::out::track::ilim0_gpio_num {GPIO_NUM_15} |
constexpr auto | drv::out::track::ilim1_gpio_num {GPIO_NUM_16} |
constexpr auto | drv::out::track::nfault_gpio_num {GPIO_NUM_46} |
constexpr auto | drv::out::track::enable_gpio_num {GPIO_NUM_12} |
struct drv::out::track::RxQueue | drv::out::track::rx_queue |
rmt_channel_handle_t | drv::out::track::channel {} |
rmt_encoder_handle_t | drv::out::track::encoder {} |
constexpr auto | drv::out::track::dcc::bidi_rx_gpio_num {GPIO_NUM_14} |
constexpr auto | drv::out::track::dcc::bidi_en_gpio_num {GPIO_NUM_13} |
std::string | drv::wifi::ip_str |
std::array< uint8_t, 6uz > | drv::wifi::mac |
httpd_handle_t | intf::http::handle {} |
Handle to server instance. | |
constexpr auto | intf::http::stack_size {6144uz} |
std::shared_ptr< Server > | intf::http::sta::server |
std::string | intf::mdns::str |
constexpr uint16_t | intf::udp::port {21105u} |
int | intf::udp::sock_fd |
bool volatile | intf::usb::rts {} |
constexpr auto | intf::usb::vbus_gpio_num {GPIO_NUM_7} |
constexpr auto | intf::usb::buffer_size {512uz} |
struct intf::usb::RxStreamBuffer | intf::usb::rx_stream_buffer |
struct intf::usb::TxStreamBuffer | intf::usb::tx_stream_buffer |
constexpr auto | mw::dcc::priority_bits {5u} |
std::shared_ptr< Service > | mw::dcc::service |
constexpr uint8_t | mw::ota::ack {0x06u} |
constexpr uint8_t | mw::ota::nak {0x15u} |
std::shared_ptr< Service > | mw::roco::z21::service |
std::array< StackType_t, 3072uz > | mw::zimo::ulf::stack {} |
|
strong |
|
inlineconstexpr |
|
inlineconstexpr |
Index 0 is used by the Stream and Message Buffer implementation as indicated by the following warning from the Task Notifications documentation.
|
inline |