Вы находитесь на странице: 1из 2

ribsu

September 2005

ribsu is a pseudo-driver for USB-UIRT (http://www.usbuirt.com). In its current form, it is a Terminal application that facilitates interactive communication with
USB-UIRT. Future plans are that ribsu will evolve into an API that anyone can integrate into their application. The application in its current form is to help
debug the underlying API logic. ribsu is squarely targeted at developers, this means that you should be familiar with the USB-UIRT protocol and its various
operation modes.

Requirements

- USB-UIRT device
- Mac OS X 10.3.8 or later

Installation and Setup

To successfully run ribsu attach USB-UIRT to a USB port, open Terminal and run ribsu. You should also have a copy of the USB-UIRT command protocol
documentation, available at http://home.earthlink.net/~jrhees/USBUIRT/USB-UIRT%20Command%20Protocol.doc, to familiarize yourself with the commands.
The currently supported commands are 20, 21, 23, 24 and 36.

Exiting

To exit ribsu and return to the terminal, you can either press Ctrl-C, type Q and enter or signal an EOF with Ctrl-D.

Playing

When started ribsu should automatically detect USB-UIRT and wait. You can test ribsu by pointing a remote at USB-UIRT and pressing buttons. ribsu should
output numbers. To enter a command, type in the command number and enter. For instance, to get the firmware version block, type 23 followed by enter, ribsu
will respond with something similar to 090501011A0304CF which according to the USB-UIRT documentation means that this device has a firmware revision of
5.9, protocol compatibility 1.1 and was created on the 26th of March, 2004.
To enter UIR mode, type 20 and enter. You should get a response of 21, confirming the transition. When IR signals are detected UIR codes are generated by
USB-UIRT and shown by ribsu.
To enter RAW learning mode, type 21 and enter. You should get a 21 confirmation. Now when IR signals are detected, you should get a typically longer
response, starting with 36. ribsu has taken the USB-UIRT data and automatically processed it into a suitably formed 36 command which is the command used
for sending IR sequences. If you copy the 36 command line, paste it back into ribsu and press enter, USB-UIRT will output the learned IR sequence.
To enter RAW2 learning mode, type 24 and enter. This mode works similarly to RAW in that ribsu will process USB-UIRT output directly into a 36 command.

Metacommands

Q - quit
Fnnn - frequency to use when in RAW mode, no response (example: F38000)
In - toggle interpretation n=0 off, n=1 on, response is previous interpretation setting (example: I1)

Features and limitations

- ribsu can either work directly with USB-UIRT using the IOKit or through a TTY device exported by the 2.0 FTDI (http://www.ftdichip.com) driver. The 2.0 driver
version has not been released as of this writing. The 1.x drivers do not properly work with USB-UIRT.
- ribsu automatically processes RAW/RAW2 USB-UIRT output into 36 commands suitable for sending back to USB-UIRT for IR transmission
- ribsu has rudimentary support for learned Pronto codes. The codes have to be learned (0000 type) and both sequences in the pronto code are output at once
(this may cause unexpected behavior on the devices being controlled).
- ribsu has some command line options available to play with, you can view these with the -h option.
- ribsu output debug and error messages to stderr

- ribsu does not enforce USB-UIRT timing restrictions. In other words, it will not queue up commands and wait until previous IR sequences have been sent.
This is your responsibility.
- repeat counts in the generated 36 commands are set to 1. There is currently no way to change this through the interface but you can edit them manually
before pasting them back into ribsu.
- ribsu is not hardened against abuse. It is not difficult to make ribsu crash through buffer overruns as a result of garbage input. This will be easy to fix once the
underlying API code is mostly done. Conversely, there should be no reason for you to paste in garbage input.
- ribsu does not correctly handle IR sequences from some remotes that do not have sufficiently long gaps between sequence repetitions.

Interesting possibilities

- ribsu is a standard stdin/stdout application, this means that it can already be harnessed by other applications. An application could start ribsu with a C popen
() command to communicate with USB-UIRT.

- a particular incarnation of the point above is using ribsu in AppleScript to send previously recorded IR. To achieve this with the current incarnation of ribsu
one could use the snippet:

on sendIR(code)
do shell script ("echo " & code & " | /Applications/ribsu")
end sendIR

and call it like so:

sendIR("36392C01DD7D...")

- another interesting possibility is to have ribsu made available over a network using xinetd.

Questions and Comments

If you have any comments about ribsu, please visit the forums at http://www.xyster.net

Вам также может понравиться