Skip to content

Commit 768f8c7

Browse files
committed
added one more test case to parse TETRA timestamp
1 parent 5ddd37f commit 768f8c7

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

src/test/java/com/igormaznitsa/jbbp/it/BasedOnQuestionsAndCasesTest.java

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,4 +54,42 @@ class YearMonthDay {
5454

5555
assertArrayEquals(new byte[]{(byte)0x3D,(byte)0xF8}, JBBPOut.BeginBin(JBBPBitOrder.MSB0).Bin(parsed).End().toByteArray());
5656
}
57+
58+
/**
59+
* Case 08-feb-2016
60+
*
61+
* Incoming data: 0x024281
62+
* Timestamp format : <a href="http://www.etsi.org/deliver/etsi_en/300300_300399/30039202/02.03.02_60/en_30039202v020302p.pdf">Terrestrial Trunked Radio</a>
63+
*
64+
* @throws Exception for any error
65+
*/
66+
@Test
67+
public void testParseTimeStampFromTETRASavedInMSB0() throws Exception {
68+
final byte [] TEST_DATA = new byte[]{0x2, 0x42, (byte) 0x81};
69+
70+
class TetraTimestamp {
71+
@Bin (type = BinType.BIT, outBitNumber = JBBPBitNumber.BITS_2, outOrder = 1, bitOrder = JBBPBitOrder.MSB0)
72+
byte timezone;
73+
@Bin (type = BinType.BIT, outBitNumber = JBBPBitNumber.BITS_2, outOrder = 2, bitOrder = JBBPBitOrder.MSB0)
74+
byte reserved;
75+
@Bin (type = BinType.BIT, outBitNumber = JBBPBitNumber.BITS_4, outOrder = 3, bitOrder = JBBPBitOrder.MSB0)
76+
byte month;
77+
@Bin (type = BinType.BIT, outBitNumber = JBBPBitNumber.BITS_5, outOrder = 4, bitOrder = JBBPBitOrder.MSB0)
78+
byte day;
79+
@Bin (type = BinType.BIT, outBitNumber = JBBPBitNumber.BITS_5, outOrder = 5, bitOrder = JBBPBitOrder.MSB0)
80+
byte hour;
81+
@Bin (type = BinType.BIT, outBitNumber = JBBPBitNumber.BITS_6, outOrder = 6, bitOrder = JBBPBitOrder.MSB0)
82+
byte minute;
83+
}
84+
85+
86+
TetraTimestamp parsed = JBBPParser.prepare("bit:2 timezone; bit:2 reserved; bit:4 month; bit:5 day; bit:5 hour; bit:6 minute;", JBBPBitOrder.MSB0).parse(TEST_DATA).mapTo(TetraTimestamp.class);
87+
88+
assertEquals(2, parsed.month);
89+
assertEquals(8, parsed.day);
90+
assertEquals(10, parsed.hour);
91+
assertEquals(1, parsed.minute);
92+
93+
assertArrayEquals(TEST_DATA, JBBPOut.BeginBin(JBBPBitOrder.MSB0).Bin(parsed).End().toByteArray());
94+
}
5795
}

0 commit comments

Comments
 (0)