mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2025-12-07 00:09:51 +03:00
esp32 support
This commit is contained in:
@@ -173,7 +173,7 @@ void EMSESP::show_emsbus(uuid::console::Shell & shell) {
|
||||
// and for each associated EMS device go and request data values
|
||||
void EMSESP::show_values(uuid::console::Shell & shell) {
|
||||
if (sensor_devices().empty() && emsdevices.empty()) {
|
||||
shell.printfln(F("No information from devices to show"));
|
||||
shell.printfln(F("No data available from devices to show"));
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -524,14 +524,19 @@ void System::console_commands() {
|
||||
|
||||
if (shell.has_flags(CommandFlags::ADMIN | CommandFlags::LOCAL)) {
|
||||
shell.printfln("Wifi:");
|
||||
shell.print(" ");
|
||||
shell.printfln(F_(wifi_ssid_fmt),
|
||||
settings.wifi_ssid().empty() ? uuid::read_flash_string(F_(unset)).c_str()
|
||||
: settings.wifi_ssid().c_str());
|
||||
shell.print(" ");
|
||||
shell.printfln(F_(wifi_password_fmt), settings.wifi_password().empty() ? F_(unset) : F_(asterisks));
|
||||
shell.printfln(F("Syslog:"));
|
||||
auto host = settings.syslog_host();
|
||||
shell.print(" ");
|
||||
shell.printfln(F_(host_fmt), !host.empty() ? host.c_str() : uuid::read_flash_string(F_(unset)).c_str());
|
||||
shell.print(" ");
|
||||
shell.printfln(F_(log_level_fmt), uuid::log::format_level_uppercase(settings.syslog_level()));
|
||||
shell.print(" ");
|
||||
shell.printfln(F_(mark_interval_fmt), settings.syslog_mark_interval());
|
||||
}
|
||||
});
|
||||
|
||||
@@ -73,16 +73,16 @@ class System {
|
||||
#endif
|
||||
|
||||
static constexpr uint32_t SYSTEM_CHECK_FREQUENCY = 5000; // check every 5 seconds
|
||||
static constexpr uint32_t LED_WARNING_BLINK = 1000; // flash
|
||||
static constexpr uint32_t LED_WARNING_BLINK_FAST = 100; // flash quick
|
||||
static constexpr uint32_t LED_WARNING_BLINK = 1000; // pulse to show no connection
|
||||
static constexpr uint32_t LED_WARNING_BLINK_FAST = 100; // flash quickly for boot up sequence or safe-mode
|
||||
|
||||
// internal LED
|
||||
#if defined(ESP8266)
|
||||
static constexpr uint8_t LED_GPIO = 2;
|
||||
static constexpr uint8_t LED_ON = LOW;
|
||||
#elif defined(ESP32)
|
||||
static constexpr uint8_t LED_GPIO = 5;
|
||||
static constexpr uint8_t LED_ON = HIGH;
|
||||
static constexpr uint8_t LED_GPIO = 5; // on Wemos D32
|
||||
static constexpr uint8_t LED_ON = LOW;
|
||||
#else
|
||||
static constexpr uint8_t LED_GPIO = 0;
|
||||
static constexpr uint8_t LED_ON = 0;
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/* ESP32 UART port by Arwed Richert @ArwedL */
|
||||
|
||||
#if defined(ESP32)
|
||||
|
||||
#include "uart/emsuart_esp32.h"
|
||||
@@ -85,7 +87,6 @@ void EMSuart::emsuart_recvTask(void * param) {
|
||||
* init UART0 driver
|
||||
*/
|
||||
void EMSuart::start(uint8_t tx_mode) {
|
||||
return; // TODO commented out because it causes crash. @ArwedL could you take a look?
|
||||
|
||||
tx_mode_ = tx_mode;
|
||||
|
||||
@@ -117,15 +118,15 @@ void EMSuart::start(uint8_t tx_mode) {
|
||||
// 1 should be enough - also 10 should be fine
|
||||
ESP_ERROR_CHECK(uart_driver_install(EMSUART_UART, EMSUART_RXBUFSIZE, 0, 10, &uart_queue, 0));
|
||||
|
||||
// Create a ringbuffer for communication between recvTask and parseTask (as max message size is ~32 bytes) 512 bytes has capacity to hold more than 16 telegrams
|
||||
buf_handle = xRingbufferCreate(512, RINGBUF_TYPE_NOSPLIT);
|
||||
|
||||
// start recvTaskQueue stacksize choosen any value 4069 bytes, Priority choosen 2 above normal to be able to fastly react on received signals
|
||||
// xTaskCreate parameters taken from https://github.com/espressif/esp-idf/blob/ce2a99dc23533f40369e4ab0d17ffd40f4b0dd72/examples/peripherals/uart/uart_events/main/uart_events_example_main.c
|
||||
xTaskCreate(emsuart_recvTask, "EMS_recv", 2048, NULL, 12, NULL);
|
||||
|
||||
// create 2 tasks because assumption is that parseTelegram needs some time (even on ESP32) which would block receiving task
|
||||
xTaskCreate(emsuart_parseTask, "EMS_parse", 8000, NULL, 2, NULL);
|
||||
|
||||
// Create a ringbuffer for communication between recvTask and parseTask (as max message size is ~32 bytes) 512 bytes has capacity to hold more than 16 telegrams
|
||||
buf_handle = xRingbufferCreate(512, RINGBUF_TYPE_NOSPLIT);
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user