From 5ef0299abd9918b52c45893a61272fbae6c8da31 Mon Sep 17 00:00:00 2001 From: hedgecrw85 Date: Wed, 1 Apr 2020 21:31:57 -0500 Subject: [PATCH] Only enable BRKINT flag if not in RS485 mode --- src/main/c/Posix/SerialPort_Posix.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/c/Posix/SerialPort_Posix.c b/src/main/c/Posix/SerialPort_Posix.c index 6b4041e..978ad94 100644 --- a/src/main/c/Posix/SerialPort_Posix.c +++ b/src/main/c/Posix/SerialPort_Posix.c @@ -251,6 +251,7 @@ JNIEXPORT jlong JNICALL Java_com_fazecast_jSerialComm_SerialPort_openPortNative( const char *portName = (*env)->GetStringUTFChars(env, portNameJString, NULL); unsigned char isDtrEnabled = (*env)->GetBooleanField(env, obj, isDtrEnabledField); unsigned char isRtsEnabled = (*env)->GetBooleanField(env, obj, isRtsEnabledField); + unsigned char rs485ModeEnabled = (*env)->GetBooleanField(env, obj, rs485ModeField); // Try to open existing serial port with read/write access int serialPortFD = -1; @@ -281,7 +282,8 @@ JNIEXPORT jlong JNICALL Java_com_fazecast_jSerialComm_SerialPort_openPortNative( #endif if (!isDtrEnabled || !isRtsEnabled) options.c_cflag &= ~HUPCL; - options.c_iflag |= BRKINT; + if (!rs485ModeEnabled) + options.c_iflag |= BRKINT; tcsetattr(serialPortFD, TCSANOW, &options); // Configure the port parameters and timeouts