mirror of
https://github.com/UtilitechAS/amsreader-firmware.git
synced 2026-05-01 05:59:24 +00:00
Set TX pin low if passive communicator
This commit is contained in:
@@ -469,9 +469,9 @@ void PassiveMeterCommunicator::printHanReadError(int pos) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void PassiveMeterCommunicator::setupHanPort(uint32_t baud, uint8_t parityOrdinal, bool invert) {
|
void PassiveMeterCommunicator::setupHanPort(uint32_t baud, uint8_t parityOrdinal, bool invert, bool passive) {
|
||||||
int8_t rxpin = meterConfig.rxPin;
|
int8_t rxpin = meterConfig.rxPin;
|
||||||
int8_t txpin = meterConfig.txPin;
|
int8_t txpin = passive ? -1 : meterConfig.txPin;
|
||||||
|
|
||||||
if (debugger->isActive(RemoteDebug::INFO)) debugger->printf_P(PSTR("(setupHanPort) Setting up HAN on pin %d/%d with baud %d and parity %d\n"), rxpin, txpin, baud, parityOrdinal);
|
if (debugger->isActive(RemoteDebug::INFO)) debugger->printf_P(PSTR("(setupHanPort) Setting up HAN on pin %d/%d with baud %d and parity %d\n"), rxpin, txpin, baud, parityOrdinal);
|
||||||
|
|
||||||
@@ -641,6 +641,11 @@ void PassiveMeterCommunicator::setupHanPort(uint32_t baud, uint8_t parityOrdinal
|
|||||||
pinMode(meterConfig.rxPin, INPUT);
|
pinMode(meterConfig.rxPin, INPUT);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(meterConfig.txPin != 0xFF && passive) {
|
||||||
|
pinMode(meterConfig.txPin, OUTPUT);
|
||||||
|
digitalWrite(meterConfig.txPin, LOW);
|
||||||
|
}
|
||||||
|
|
||||||
hanSerial->setTimeout(250);
|
hanSerial->setTimeout(250);
|
||||||
|
|
||||||
// Empty buffer before starting
|
// Empty buffer before starting
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ protected:
|
|||||||
DLMSParser *dlmsParser = NULL;
|
DLMSParser *dlmsParser = NULL;
|
||||||
DSMRParser *dsmrParser = NULL;
|
DSMRParser *dsmrParser = NULL;
|
||||||
|
|
||||||
void setupHanPort(uint32_t baud, uint8_t parityOrdinal, bool invert);
|
void setupHanPort(uint32_t baud, uint8_t parityOrdinal, bool invert, bool passive = true);
|
||||||
int16_t unwrapData(uint8_t *buf, DataParserContext &context);
|
int16_t unwrapData(uint8_t *buf, DataParserContext &context);
|
||||||
void debugPrint(byte *buffer, int start, int length);
|
void debugPrint(byte *buffer, int start, int length);
|
||||||
void printHanReadError(int pos);
|
void printHanReadError(int pos);
|
||||||
|
|||||||
Reference in New Issue
Block a user