Skip to content

After altering the baud rate, serial communication no longer works. #234

Open
@ramen2k10

Description

I'm attempting to contact with a chip card device using serial communication, which is linked to a reader via a serial port. The communication works fine when I use the initial baud rate 9600, but when I change the initial baud rate (9600) of my serial port communication to a higher baud rate value (e.g. - 115200), the device closes the connection, despite the fact that the same device works fine with a higher baud rate using the javax.comm library. Please see the code snippet attached.

public void setBaudRate(int rate) throws UnsupportedCommOperationException {
	if (null != serialPort) {
		if (serialPort.getBaudRate() != rate) {
			boolean rts = serialPort.isRTS();
			boolean dtr = serialPort.isDTR();
        	serialPort = nrSerialPort.getSerialPortInstance();// Extracting the serialPort instance
        	serialPort.setSerialPortParams(rate, serialPort.getDataBits(), serialPort.getStopBits(), serialPort.getParity());
        	serialPort.setDTR(dtr);
		serialPort.setRTS(rts);
		}
	}
}

Is the baud rate changing supported by the nrjavaserial library?

Activity

fkamming

fkamming commented on Oct 5, 2023

@fkamming

I'm attempting to contact with a chip card device using serial communication, which is linked to a reader via a serial port. The communication works fine when I use the initial baud rate 9600, but when I change the initial baud rate (9600) of my serial port communication to a higher baud rate value (e.g. - 115200), the device closes the connection, despite the fact that the same device works fine with a higher baud rate using the javax.comm library. Please see the code snippet attached.

public void setBaudRate(int rate) throws UnsupportedCommOperationException {
	if (null != serialPort) {
		if (serialPort.getBaudRate() != rate) {
			boolean rts = serialPort.isRTS();
			boolean dtr = serialPort.isDTR();
        	serialPort = nrSerialPort.getSerialPortInstance();// Extracting the serialPort instance
        	serialPort.setSerialPortParams(rate, serialPort.getDataBits(), serialPort.getStopBits(), serialPort.getParity());
        	serialPort.setDTR(dtr);
		serialPort.setRTS(rts);
		}
	}
}

Is the baud rate changing supported by the nrjavaserial library?

Changing baud rate works fine in our code. I suspect what is missing in your code is disconnecting and reconnecting. Before you set the new baud rate call serialPort.disconnect(). And afterwards call serialPort.connect().

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      After altering the baud rate, serial communication no longer works. · Issue #234 · NeuronRobotics/nrjavaserial