1
0
mirror of https://github.com/mjg59/python-broadlink.git synced 2024-11-23 15:21:25 +01:00

Update protocol.md (#436)

Adjust documentation on transmit format

* Trailer is actually 0x00 0x0d 0x05 (ie the extended pulse length format)
* Trailer doesn't have to be this value on transmit

This is based on work in https://github.com/elupus/irgen, but is just a qualified guess that seem to match reality.
This commit is contained in:
Joakim Plate 2020-10-18 22:31:56 +02:00 committed by GitHub
parent 957baf5447
commit bbab292bbe
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -181,11 +181,13 @@ Send the following payload with a command byte of 0x006a
|0x05|repeat count, (0 = no repeat, 1 send twice, .....)| |0x05|repeat count, (0 = no repeat, 1 send twice, .....)|
|0x06-0x07|Length of the following data in little endian| |0x06-0x07|Length of the following data in little endian|
|0x08 ....|Pulse lengths in 2^-15 s units (µs * 269 / 8192 works very well)| |0x08 ....|Pulse lengths in 2^-15 s units (µs * 269 / 8192 works very well)|
|....|0x0d 0x05 at the end for IR only| |....|For IR codes, the pulse lengths should be paired as ON, OFF|
Each value is represented by one byte. If the length exceeds one byte Each value is represented by one byte. If the length exceeds one byte
then it is stored big endian with a leading 0. then it is stored big endian with a leading 0.
Captures of IR codes from the device will always end with a constant OFF value of `0x00 0x0d 0x05` but the trailing silence can be anything on transmit. The likely reason for this value is a capped timeout value on detection. The value is about 102 milliseconds.
Example: The header for my Optoma projector is 8920 4450 Example: The header for my Optoma projector is 8920 4450
8920 * 269 / 8192 = 0x124 8920 * 269 / 8192 = 0x124
4450 * 269 / 8192 = 0x92 4450 * 269 / 8192 = 0x92