/**
* Asynchroner Empfang von Telegrammrohdaten aus dem InputStream in
*
* @param in (Inputstream)
* @return response
* in ein AsyncResult<byte[]> verpackte Telegrammrohdaten
* @throws IOException
*/
@Async
Future<byte[]> parseConnection(InputStream in) throws IOException {
byte[] response = new byte[TelegramPart.RAW_DATA.maxLength()];
int pos = 0;
while (pos < 3) {
//read one byte and look whether it is 0xFF, which marks beginning of a new Telegram
in.read(response, pos, 1);
//throw away invalid data
if (response[pos] != ByteConversions.toUByte(0xFF)) {
//reset telegram, start again
if (pos > 0) {
pos = 0;
}
continue;
}
pos++;
}
//read length byte
in.read(response, pos, 1);
int length = ByteConversions.toUInt(response[pos]);
//read telegram data
in.read(response, ++pos, length);
return new AsyncResult<>(response);
}
TelegramReceiver.java 文件源码
java
阅读 22
收藏 0
点赞 0
评论 0
项目:fahrgastinformationssystem
作者:
评论列表
文章目录