diff --git a/include/PinMapping.h b/include/PinMapping.h index ea9877be..614329f6 100644 --- a/include/PinMapping.h +++ b/include/PinMapping.h @@ -53,12 +53,12 @@ struct PinMapping_t { gpio_num_t led[PINMAPPING_LED_COUNT]; // OpenDTU-OnBattery-specific pins below - int8_t victron_tx; - int8_t victron_rx; - int8_t victron_tx2; - int8_t victron_rx2; - int8_t victron_tx3; - int8_t victron_rx3; + gpio_num_t victron_tx; + gpio_num_t victron_rx; + gpio_num_t victron_tx2; + gpio_num_t victron_rx2; + gpio_num_t victron_tx3; + gpio_num_t victron_rx3; int8_t battery_rx; int8_t battery_rxen; int8_t battery_tx; diff --git a/include/solarcharger/victron/Provider.h b/include/solarcharger/victron/Provider.h index 6d4c507c..db571c1a 100644 --- a/include/solarcharger/victron/Provider.h +++ b/include/solarcharger/victron/Provider.h @@ -32,7 +32,7 @@ private: std::vector _serialPortOwners; std::shared_ptr _stats = std::make_shared(); - bool initController(int8_t rx, int8_t tx, bool logging, uint8_t instance); + bool initController(gpio_num_t rx, gpio_num_t tx, bool logging, uint8_t instance); }; } // namespace SolarChargers::Victron diff --git a/lib/VeDirectFrameHandler/VeDirectFrameHandler.cpp b/lib/VeDirectFrameHandler/VeDirectFrameHandler.cpp index 40322f74..93ee48c9 100644 --- a/lib/VeDirectFrameHandler/VeDirectFrameHandler.cpp +++ b/lib/VeDirectFrameHandler/VeDirectFrameHandler.cpp @@ -62,7 +62,7 @@ VeDirectFrameHandler::VeDirectFrameHandler() : } template -void VeDirectFrameHandler::init(char const* who, int8_t rx, int8_t tx, +void VeDirectFrameHandler::init(char const* who, gpio_num_t rx, gpio_num_t tx, Print* msgOut, bool verboseLogging, uint8_t hwSerialPort) { _vedirectSerial = std::make_unique(hwSerialPort); @@ -70,7 +70,7 @@ void VeDirectFrameHandler::init(char const* who, int8_t rx, int8_t tx, _vedirectSerial->end(); // make sure the UART will be re-initialized _vedirectSerial->begin(19200, SERIAL_8N1, rx, tx); _vedirectSerial->flush(); - _canSend = (tx != -1); + _canSend = (tx != GPIO_NUM_NC); _msgOut = msgOut; _verboseLogging = verboseLogging; _debugIn = 0; diff --git a/lib/VeDirectFrameHandler/VeDirectFrameHandler.h b/lib/VeDirectFrameHandler/VeDirectFrameHandler.h index f66fd43e..3606284a 100644 --- a/lib/VeDirectFrameHandler/VeDirectFrameHandler.h +++ b/lib/VeDirectFrameHandler/VeDirectFrameHandler.h @@ -32,7 +32,7 @@ public: protected: VeDirectFrameHandler(); - void init(char const* who, int8_t rx, int8_t tx, Print* msgOut, + void init(char const* who, gpio_num_t rx, gpio_num_t tx, Print* msgOut, bool verboseLogging, uint8_t hwSerialPort); virtual bool hexDataHandler(VeDirectHexData const &data) { return false; } // handles the disassembled hex response diff --git a/lib/VeDirectFrameHandler/VeDirectMpptController.cpp b/lib/VeDirectFrameHandler/VeDirectMpptController.cpp index d4e9dac5..99ae69ff 100644 --- a/lib/VeDirectFrameHandler/VeDirectMpptController.cpp +++ b/lib/VeDirectFrameHandler/VeDirectMpptController.cpp @@ -12,7 +12,7 @@ //#define PROCESS_NETWORK_STATE -void VeDirectMpptController::init(int8_t rx, int8_t tx, Print* msgOut, +void VeDirectMpptController::init(gpio_num_t rx, gpio_num_t tx, Print* msgOut, bool verboseLogging, uint8_t hwSerialPort) { VeDirectFrameHandler::init("MPPT", rx, tx, msgOut, diff --git a/lib/VeDirectFrameHandler/VeDirectMpptController.h b/lib/VeDirectFrameHandler/VeDirectMpptController.h index ac3b9122..f3170113 100644 --- a/lib/VeDirectFrameHandler/VeDirectMpptController.h +++ b/lib/VeDirectFrameHandler/VeDirectMpptController.h @@ -46,7 +46,7 @@ class VeDirectMpptController : public VeDirectFrameHandler { public: VeDirectMpptController() = default; - void init(int8_t rx, int8_t tx, Print* msgOut, + void init(gpio_num_t rx, gpio_num_t tx, Print* msgOut, bool verboseLogging, uint8_t hwSerialPort); using data_t = veMpptStruct; diff --git a/lib/VeDirectFrameHandler/VeDirectShuntController.cpp b/lib/VeDirectFrameHandler/VeDirectShuntController.cpp index c16b6a07..affbfda3 100644 --- a/lib/VeDirectFrameHandler/VeDirectShuntController.cpp +++ b/lib/VeDirectFrameHandler/VeDirectShuntController.cpp @@ -3,7 +3,7 @@ VeDirectShuntController VeDirectShunt; -void VeDirectShuntController::init(int8_t rx, int8_t tx, Print* msgOut, +void VeDirectShuntController::init(gpio_num_t rx, gpio_num_t tx, Print* msgOut, bool verboseLogging, uint8_t hwSerialPort) { VeDirectFrameHandler::init("SmartShunt", rx, tx, msgOut, diff --git a/lib/VeDirectFrameHandler/VeDirectShuntController.h b/lib/VeDirectFrameHandler/VeDirectShuntController.h index d7bc2513..84fb5e81 100644 --- a/lib/VeDirectFrameHandler/VeDirectShuntController.h +++ b/lib/VeDirectFrameHandler/VeDirectShuntController.h @@ -8,7 +8,7 @@ class VeDirectShuntController : public VeDirectFrameHandler { public: VeDirectShuntController() = default; - void init(int8_t rx, int8_t tx, Print* msgOut, + void init(gpio_num_t rx, gpio_num_t tx, Print* msgOut, bool verboseLogging, uint8_t hwSerialPort); using data_t = veShuntStruct; diff --git a/platformio.ini b/platformio.ini index 550f0c0c..469a4cfa 100644 --- a/platformio.ini +++ b/platformio.ini @@ -176,8 +176,8 @@ build_flags = -DHOYMILES_PIN_IRQ=GPIO_NUM_16 -DHOYMILES_PIN_CE=GPIO_NUM_17 -DHOYMILES_PIN_CS=GPIO_NUM_5 - -DVICTRON_PIN_TX=21 - -DVICTRON_PIN_RX=22 + -DVICTRON_PIN_TX=GPIO_NUM_21 + -DVICTRON_PIN_RX=GPIO_NUM_22 -DPYLONTECH_PIN_RX=27 -DPYLONTECH_PIN_TX=14 -DHUAWEI_PIN_MISO=12 diff --git a/src/PinMapping.cpp b/src/PinMapping.cpp index 78f7c686..40060345 100644 --- a/src/PinMapping.cpp +++ b/src/PinMapping.cpp @@ -139,27 +139,27 @@ #endif // CONFIG_ETH_USE_ESP32_EMAC #ifndef VICTRON_PIN_TX -#define VICTRON_PIN_TX -1 +#define VICTRON_PIN_TX GPIO_NUM_NC #endif #ifndef VICTRON_PIN_RX -#define VICTRON_PIN_RX -1 +#define VICTRON_PIN_RX GPIO_NUM_NC #endif #ifndef VICTRON_PIN_TX2 -#define VICTRON_PIN_TX2 -1 +#define VICTRON_PIN_TX2 GPIO_NUM_NC #endif #ifndef VICTRON_PIN_RX2 -#define VICTRON_PIN_RX2 -1 +#define VICTRON_PIN_RX2 GPIO_NUM_NC #endif #ifndef VICTRON_PIN_TX3 -#define VICTRON_PIN_TX3 -1 +#define VICTRON_PIN_TX3 GPIO_NUM_NC #endif #ifndef VICTRON_PIN_RX3 -#define VICTRON_PIN_RX3 -1 +#define VICTRON_PIN_RX3 GPIO_NUM_NC #endif #ifndef BATTERY_PIN_RX diff --git a/src/solarcharger/victron/Provider.cpp b/src/solarcharger/victron/Provider.cpp index 0f5f6ebe..fa026b3a 100644 --- a/src/solarcharger/victron/Provider.cpp +++ b/src/solarcharger/victron/Provider.cpp @@ -38,13 +38,13 @@ void Provider::deinit() _serialPortOwners.clear(); } -bool Provider::initController(int8_t rx, int8_t tx, bool logging, +bool Provider::initController(gpio_num_t rx, gpio_num_t tx, bool logging, uint8_t instance) { MessageOutput.printf("[VictronMppt Instance %d] rx = %d, tx = %d\r\n", instance, rx, tx); - if (rx < 0) { + if (rx <= GPIO_NUM_NC) { MessageOutput.printf("[VictronMppt Instance %d] invalid pin config\r\n", instance); return false; }