summaryrefslogtreecommitdiff
path: root/tasd/packets/input.py
diff options
context:
space:
mode:
authorTheMas3212 <mas3212@gmail.com>2025-04-23 16:37:49 +1000
committerTheMas3212 <mas3212@gmail.com>2025-04-23 16:37:49 +1000
commit908f4bab82778c72270af1a885f92c2c391ef831 (patch)
tree4ad7536a20d9b0b4431ef1bbe716012df03c72bc /tasd/packets/input.py
downloadtasd-py-908f4bab82778c72270af1a885f92c2c391ef831.tar.gz
tasd-py-908f4bab82778c72270af1a885f92c2c391ef831.zip
Inital Commit v1.0.0
Diffstat (limited to 'tasd/packets/input.py')
-rw-r--r--tasd/packets/input.py106
1 files changed, 106 insertions, 0 deletions
diff --git a/tasd/packets/input.py b/tasd/packets/input.py
new file mode 100644
index 0000000..00d9b2b
--- /dev/null
+++ b/tasd/packets/input.py
@@ -0,0 +1,106 @@
+from tasd.packet import _TASDPacketFactory as _TASD_PF, _VariableType as _VType, _VariableDefinition as _VDef, _EnumDefinition as _EDef
+from tasd.constants import PacketType
+
+'''
+ 4.3.5.1. INPUT_CHUNK Packet
+'''
+
+InputChunk = _TASD_PF(
+ "InputChunk",
+ PacketType.INPUT_CHUNK,
+ [
+ _VDef("port", _VType.UINT_8, 1),
+ _VDef("data", _VType.BYTES_EOP, b"")
+ ]
+)
+
+'''
+ 4.3.5.2. INPUT_MOMENT Packet
+'''
+
+class INPUT_MOMENT_INDEX_TYPE():
+ FRAME = 0x01
+ CYCLE_COUNT = 0x02
+ MILLISECONDS = 0x03
+ MICROSECONDS_X10 = 0x04
+InputMoment = _TASD_PF(
+ "InputMoment",
+ PacketType.INPUT_MOMENT,
+ [
+ _VDef("port", _VType.UINT_8, 1),
+ _VDef("hold", _VType.BOOL, False),
+ _VDef("index_type", _VType.UINT_8, INPUT_MOMENT_INDEX_TYPE.FRAME),
+ _VDef("index", _VType.UINT_64, 0),
+ _VDef("inputs", _VType.BYTES_EOP, b"")
+ ],
+ [
+ _EDef("INPUT_MOMENT_INDEX_TYPE", INPUT_MOMENT_INDEX_TYPE)
+ ]
+)
+
+'''
+ 4.3.5.3. TRANSITION Packet
+'''
+
+class TRANSITION_INDEX_TYPE():
+ FRAME = 0x01
+ CYCLE_COUNT = 0x02
+ MILLISECONDS = 0x03
+ MICROSECONDS = 0x04
+ NANOSECONDS = 0x05
+ INPUT_CHUNK_INDEX = 0x06
+class TRANSITION_TYPE():
+ SOFT_RESET = 0x01
+ POWER_RESET = 0x02
+ RESTART_TASD_FILE = 0x03
+ PACKET_DERIVED = 0xFF
+Transition = _TASD_PF(
+ "Transition",
+ PacketType.TRANSITION,
+ [
+ _VDef("port", _VType.UINT_8, 1),
+ _VDef("index_type", _VType.UINT_8, TRANSITION_INDEX_TYPE.FRAME),
+ _VDef("index", _VType.UINT_64, 0),
+ _VDef("type", _VType.UINT_8, TRANSITION_TYPE.SOFT_RESET),
+ _VDef("packet", _VType.BYTES_EOP, b"")
+ ],
+ [
+ _EDef("TRANSITION_INDEX_TYPE", TRANSITION_INDEX_TYPE),
+ _EDef("TRANSITION_TYPE", TRANSITION_TYPE)
+ ]
+)
+
+'''
+ 4.3.5.4. LAG_FRAME_CHUNK Packet
+'''
+
+LagFrameChunk = _TASD_PF(
+ "LagFrameChunk",
+ PacketType.LAG_FRAME_CHUNK,
+ [
+ _VDef("frame", _VType.UINT_32, 0),
+ _VDef("count", _VType.UINT_32, 0)
+ ]
+)
+
+'''
+ 4.3.5.5. MOVIE_TRANSITION
+'''
+
+class MOVIE_TRANSITION_TYPE():
+ SOFT_RESET = 0x01
+ POWER_RESET = 0x02
+ RESTART_TASD_FILE = 0x03
+ PACKET_DERIVED = 0xFF
+MovieTransition = _TASD_PF(
+ "MovieTransition",
+ PacketType.MOVIE_TRANSITION,
+ [
+ _VDef("frame", _VType.UINT_32, 0),
+ _VDef("type", _VType.UINT_8, MOVIE_TRANSITION_TYPE.SOFT_RESET),
+ _VDef("packet", _VType.BYTES_EOP, b"")
+ ],
+ [
+ _EDef("MOVIE_TRANSITION_TYPE", MOVIE_TRANSITION_TYPE),
+ ]
+) \ No newline at end of file