|
6 | 6 | from construct import * |
7 | 7 | from .cmdqueue import * |
8 | 8 |
|
9 | | -__all__ = ["channelNames", "channelRings", "DeviceControlMsg", "EventMsg", "StatsMsg"] |
| 9 | +__all__ = ["channelNames", "channelRings", "DeviceControlMsg", "EventMsg", "StatsMsg", "StatsSize"] |
10 | 10 |
|
11 | 11 | if Ver.check("G >= G14 && V >= V13_2 && G < G14X"): |
12 | 12 | RunCmdQueueSize = 0x40 |
@@ -101,6 +101,17 @@ class DC_09(ConstructClass): |
101 | 101 | Ver("G == G14 && V >= V13_2", ZPadding(0x10)), |
102 | 102 | ) |
103 | 103 |
|
| 104 | +class DC_GrowTVBAck(ConstructClass): |
| 105 | + subcon = Struct ( |
| 106 | + "msg_type" / Const(0xd, Int32ul), |
| 107 | + "unk_4" / Int32ul, |
| 108 | + "bm_id" / Int32ul, |
| 109 | + "vm_id" / Int32ul, |
| 110 | + "counter" / Int32ul, |
| 111 | + "rest" / HexDump(Default(Bytes(0x1c), bytes(0x1c))), |
| 112 | + Ver("G == G14 && V >= V13_2", ZPadding(0x10)), |
| 113 | + ) |
| 114 | + |
104 | 115 | class DC_Any(ConstructClass): |
105 | 116 | subcon = Struct ( |
106 | 117 | "msg_type" / Int32ul, |
@@ -142,6 +153,7 @@ class UnknownMsg(ConstructClass): |
142 | 153 | DC_UpdateIdleTS, |
143 | 154 | DC_1e, |
144 | 155 | DC_Write32, |
| 156 | + DC_GrowTVBAck, |
145 | 157 | UnknownMsg, |
146 | 158 | )) |
147 | 159 |
|
@@ -337,10 +349,20 @@ class TimeoutMsg(ConstructClass): |
337 | 349 | "unkpad_16" / HexDump(Bytes(0x38 - 0x10)), |
338 | 350 | ) |
339 | 351 |
|
| 352 | +class GrowTVBMsg(ConstructClass): |
| 353 | + subcon = Struct ( |
| 354 | + "msg_type" / Hex(Const(7, Int32ul)), |
| 355 | + "vm_id" / Hex(Int32ul), |
| 356 | + "bm_id" / Hex(Int32ul), |
| 357 | + "counter" / Hex(Int32ul), |
| 358 | + "tail" / HexDump(Bytes(0x38 - 0x10)), |
| 359 | + ) |
| 360 | + |
340 | 361 | EventMsg = FixedSized(0x38, Select( |
341 | 362 | FaultMsg, |
342 | 363 | FlagMsg, |
343 | 364 | TimeoutMsg, |
| 365 | + GrowTVBMsg, |
344 | 366 | HexDump(Bytes(0x38)), |
345 | 367 | )) |
346 | 368 |
|
|
0 commit comments