SqueezeIR‎ > ‎

Protocols

A protocol is a set of rules that defines how the various ir codes should be transmitted between the remote control and the receiving device.  There is no universal standard so each manufacturer is at liberty to define their own protocol that their products use.  In practice however, there are a few popular protocols that have been adopted by many manufacturers; RC5 is often used by european manufacturers whilst NEC is almost ubiquitous amongst east asian manufacturers although there are a few notable exceptions (eg Sony and Panasonic).
 
In addition to supporting several protocols, SqueezeIR includes support for LIRC files.  LIRC Is not really a protocol as the files specify the raw data that is sent by ir rather than a method for generating it from the commands but SqueezeIR implements LIRC support as if it were.  The repository of LIRC files is at http://lirc.sourceforge.net/remotes/ and more infomation about the LIRC project can be found at http://www.lirc.org.  Not all LIRC files will work with SqueezeIR but the vast majority will.  Of those that don't work, many can be tweaked to be made compatible with SqueezeIR.
 
Due to the large number of protocols that SqueezeIR could potentially support, there is a flexible method for listing all the parameters that each protocol uses.  The following table details the permissable command parameters and values for each of the protocols supported by SqueezeIR:
 
Protocol
<protocol>
<command> Elements
<parameter> Elements
Value
<value> Value
ID
Type
Status
Value
Notes
LIRC
LIRC
No <comands> needed.
filename
String
Required
*.txt
1, 2
remote
String
Required
any
3
SIRC-8
SIRC
0 - 255
type
Integer
Required
8
 
SIRC-12
SIRC
0 - 127
device
Integer
Required
0 - 31
 
SIRC-15
SIRC
0 - 127
device
Integer
Required
0 - 255
 
type
Integer
Required
15
 
SIRC-20
SIRC
0 - 127
device
Integer
Required
0 - 31
 
type
Integer
Required
20
 
subdevice
Integer
Required
0 - 255
 
RC5
RC5X
0 - 127
address
Integer
Required
0 - 31
 
RC5x
RC5X
0 - 127:0 - 63
address
Integer
Required
0 - 31
 
RC6 Mode 0 (RC6-0-16)
RC6
0 - 255
address
Integer
Required
0 - 255
 
NEC
NEC
0 - 255
device
Integer
Required
0 - 255
 
subdevice
Integer
Optional
0 - 255
4
NECX
NEC
0 - 255
device
Integer
Required
0 - 255
 
subdevice
Integer
Optional
0 - 255
5
type
String
Required
'X'
 
NAD
NAD
0 - 255
device
Integer
Required
0 - 255
 
subdevice
Integer
Required
0 - 255
 
Panasonic (old)
PAN_OLD
0 - 63
region
String
Required
'USA', 'EUR'
6
device
Integer
Required
0 - 31
 
Panasonic (new)
PAN_NEW
0 - 255
device
Integer
Required
0 - 255
 
subdevice
Integer
Required
0 - 255
 
Denon
DENON
0 - 255
device
Integer
Required
0 - 31
 
Pronto (learned)
PRONTO
String of space - delimited hexadecimal numbers 0000 - FFFF
 
 
 
 
 
Native
NATIVE
String of space - delimited hexadecimal numbers 0x00000000 - 0xFFFFFFFF
prefix
String
Optional
as command value
7
suffix
String
Optional
as command value
8
rate
Integer
Optional
> 0
9
gap
Integer
Optional
> 0
10
frequency
Integer
Optional
35000 - 40000
11
 
Notes
  1. Use the code names in the LIRC file as values for the <action><command> elements.
  2. Must match filename of LIRC file, case sensitive.
  3. Must match value of 'name' field in LIRC file, case sensitive.
  4. Deafult = 255 - <device>.
  5. Default = <device>.
  6. European & USA implementations vary slightly.
  7. Constant portion of command to prepend to all commands. Default = ''.
  8. Constant portion of command to append to all commands. Default = ''.
  9. Repeat rate (ms). Default=1.5 * command length. Overrides <parameter ID="gap">.
  10. Command gap (us). Default=0.5 * command length. Overridden by <parameter ID="rate">.
  11. Modulation frequency (Hz). Overrides the frequency in the command string (if present).