diff --git a/src/main.cpp b/src/main.cpp index adcdc12..8b8a0fc 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -15,7 +15,7 @@ // Register Arrays für Modbus uint8_t ReadCoilRegister[] = {0, 1, 2}; -uint8_t output_pins[] = {0,1}; +uint8_t output_pins[] = {0,1,2,3}; uint8_t ReadInputRegister[] = {0,1,2,3,4,5,6,7}; uint8_t HoldingRegister[] = {0}; @@ -46,12 +46,24 @@ uint8_t writeDigitalOut(uint8_t fc, uint16_t address, uint16_t length) { } for (uint16_t i = 0; i < length; i++) { - if (slave.readCoilFromBuffer(i) == 1) { - digitalWrite(OutPutPin, HIGH); - } else { - digitalWrite(OutPutPin, LOW); - } + switch (i) { + case 0: + digitalWrite(OutPutPin, slave.readCoilFromBuffer(i) == 1 ? HIGH : LOW); + break; + case 1: + + break; + case 2: + + break; + case 3: + digitalWrite(OutPutPin, slave.readCoilFromBuffer(i) == 1 ? HIGH : LOW); + break; + default: + // Optional: Handle cases where 'i' is greater than 3, if necessary + break; } +} return STATUS_OK; }