TelegramReceiver.java 文件源码

java
阅读 22 收藏 0 点赞 0 评论 0

项目:fahrgastinformationssystem 作者:
/**
 * 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);
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号