私はRXTXとprotobufを使用して開発ボード上のアプリケーションと通信するプロジェクトに取り組んでいます。私は間違ったやり方をしている可能性があることを意味する問題に取り組んでいます。ここで私は現在、ボードに要求を書き込むために持っているものだ(読み取りコードも同様です):以下Googleのprotobufを使ってシリアルポート経由で通信するにはどうすればよいですか?
public void write(CableCommandRequest request, OutputStream out) {
CodedOutputStream outStream = CodedOutputStream.newInstance(out);
request.writeTo(outStreatm);
outStream.flush();
}
が順番にで使用されるOutputStream
をsuplies RXTXシリアル接続を調製するために使用される設定です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により調製され、開発ボードは、データが受信されていることを示しているようだが、それは文字化けになっているか、そうでなければ理解されていません。
これまでのところ、シリアル接続が確立されていない、通信の問題などのすべての問題が解消されているため、シリアル接続による通信がどのように行われているかが問題であるようです。成功した。
シリアル接続でのprotobufの使用に関するドキュメントはほとんどないようですので、OutputStream
を渡すだけで十分であるはずです。これは実際に正しいのですか、これがシリアル接続を介して応答を送信する間違った方法ですか?
ハードウェアがprotobufの特殊な形式を本当に理解していますか? – bmargulies