Hi everyone,
this topic was already discussed several times, but not sufficiently for my needs, so I have to bring it up again.
Here is my situation: I own an IRTrans Ethernet Module and need to control the motor zoom of a projector by a Linux command line utility. With the IR remote control of the projector, controlling the zoom is done by pressing + and – buttons for prolonged periods of time. In IRTrans, I cannot "simulate" this action by simply repeating short button presses fast, as this does not result in smooth motor movement and would destroy the motor rather sooner than later. Instead, I need to exactly reproduce the behavior of the original IR remote control.
I had been told by IRTrans' Sales & Marketing that this could be difficult, but in fact, the first step of making IRTrans perform in the desired way via the GUI control application turned out to be as simple as possible.
My desktop computers are all Macs, so I was using iRed. In iRed, I simply had to learn the Basic code and the Repeat code and set the Repeat time to 100 ms. Then, when pressing the Test button in iRed's Action Editor for a prolonged period of time, everything worked perfectly.
So, from iRed I know that my task can be done with IRTrans. My problem is the second step: to make this functionality available via a command line utility on my Linux home server.
From within iRed, I flashed my learned codes to the IRTrans EPROM.
While IRTrans comes with a Linux ASCII command line utility, this command line utility is obviously unable to emulate prolonged button presses. (I wonder why …)
So it seems I will have to write my own utility. I thought that this would be no big deal, but my first trial, a simple Perl test implementation, failed badly: Using the TCP/IP ASCII interface as described in the TCP/IP ASCII interface Protocol guide, I established a TCP/IP ASCII connection and sent Asnd and Asndr commands in 100 ms periods. (I tried an implementation with first sending Asnd and then Asndr repeatedly, as well as only sending Asndr repeatedly – what would be the correct way?)
However, as a result, the motor zoom behaves as if I was pressing the IR remote control button repeatedly – exactly the behavior I need to avoid.
So, the question is: What exactly does iRed do when I press its Test button for a longer period of time, and how can I do this myself in my command line utility? Obviously, using the TCP/IP ASCII interface and sending Asndr repeatedly is not the way to do it – but what is?
I'm completely at a loss here and would be very grateful for any information, code samples etc.
TIA!
Uli