Я работаю над проектом, который использует RXTX и protobuf для связи с приложением на доске разработки, и я столкнулся с проблемами, которые подразумевают, что я, вероятно, делаю неправильный путь. Вот что я в настоящее время для написания запроса на доске (код чтения аналогично):Как использовать Google protobuf для связи через последовательный порт?
public void write(CableCommandRequest request, OutputStream out) {
CodedOutputStream outStream = CodedOutputStream.newInstance(out);
request.writeTo(outStreatm);
outStream.flush();
}
Ниже настройки, которые используются для получения последовательного соединения RxTx, который, в свою очередь помищения на OutputStream
, которым пользуется write
команда:
// The baud rate to use when connecting to the development board
private final static int BAUD_RATE = 115200;
// The timeout to use for the serial port
private final static int CONNECTION_TIMEOUT = 50;
// The serial break for the development board, 100
private final static int SERIAL_BREAK = 100;
// <SNIP> ...
SerialPort serialPort = (SerialPort)port.open(appName, CONNECTION_TIMEOUT);
serialPort.setSerialPortParams(BAUD_RATE,
SerialPort.DATABITS_8,
SerialPort.STOPBITS_1,
SerialPort.PARITY_NONE);
serialPort.setFlowControlMode(SerialPort.FLOWCONTROL_NONE);
serialPort.sendBreak(SERIAL_BREAK);
OutputStream
, который используется подготовлен RxTx и доски развития, кажется, указывает, что данные получены, но она становится искаженным или иным образом не понята.
До сих пор все обычные подозреваемые (например, последовательное соединение, не устанавливаемое, проблемы связи и т. Д.) Были устранены, поэтому представляется, что проблема заключается в том, как выполняется вызов writeTo
, поскольку связь по последовательному соединению успешный.
Существует, по-видимому, небольшая документация по использованию protobuf по последовательному соединению, поэтому я предполагаю, что прохождения OutputStream
должно быть достаточно. Это на самом деле правильно, или это неправильный способ отправки ответа по последовательному соединению?
Действительно ли ваше оборудование действительно соответствует оригинальному формату protobuf? – bmargulies