Telephone 0xc8
→ GT 0x3b
This command was seemingly introduced to support the telematics and SMS displays. (It also supported the Radio's MP3 display which was introduced later.)
These new displays meant the maximum character count for a given index could not be written without exceeding a soft frame size limit, which if exceeded, can cause a GT buffer overflow.
The command allows specifying a cursor offset for a given index (line), thus allowing multiple writes to said line, the cursor position being advanced for each successive write.
The usage is otherwise identical to 0x21
, so much so that 0xa5
and 0x21
can effectively be used interchangeably, albeit with possible unintended consequences.
0x21
Menu Text: Radio0x21
Menu Text: Cluster0xa5
Body Text: Radio
C8 1F 3B A5 F1 05 60 59 6F 75 72 20 63 75 72 72 65 6E 74 20 70 6F 73 69 74 69 6F 6E 20 69 73 3A 9C
C8 14 3B A5 F1 05 41 4D 45 4C 42 4F 55 52 4E 45 2C 20 56 49 43 E2
C8 11 3B A5 F1 05 42 43 4F 4C 4C 49 4E 53 20 53 54 3B B5
C8 19 3B A5 F1 05 44 33 37 B0 20 34 38 27 20 35 31 2E 36 22 20 53 6F 75 74 68 2B
C8 19 3B A5 F1 05 45 31 34 34 B0 20 35 38 27 20 31 34 2E 35 22 20 45 61 73 74 6A
Length will vary with String.
Property | Index | Length | Type |
---|---|---|---|
Layout | 0 |
1 |
Bitfield |
Offset | 1 |
1 |
Bitfield |
Options | 2 |
1 |
Bitfield |
String | 3 |
-1 |
String |
DETAIL = 0xf1 # SMS: Message, SOS/Emergency
The 5 LSBs represent the offset, thus allowing an offset between 0 and 31 characters (2^5
).
# Note: an offset of 0 chars is _not_ 0x00!
0b0000_0001 # 0 chars offset
0b0000_0010 # 1 chars offset
0b0000_0011 # 2 chars offset
# [...]
0b0001_1101 # 29 chars offset
0b0001_1110 # 30 chars offset
0b0001_1111 # 31 chars offset
INDEX = 0b0001_1111 # Index of field to write to
CLEAR = 0b0010_0000 # Clear layout
BUFFER = 0b0100_0000 # Buffer the write
HIGHLIGHT = 0b1000_0000 # Highlight given field
See 0x21
for usage.
Code Point | Name | Description |
---|---|---|
0x00 |
NUL | Null-terminated string |
0x06 |
LF | Line Feed |
Given that several commands are associated with each use case, they're discussed in their own respective documentation.