Re: Forward LIRC from one machine to another via UDP over the network?

Sean Young <[email protected]> Sun, 8 Jun 2025 21:20:06 +0100
Newsgroups gmane.comp.hardware.lirc
Message-ID <[email protected]>
On Sun, Jun 08, 2025 at 10:41:52AM -0400, Paul Fox wrote:
> sean wrote:
>  > On Sun, Jun 08, 2025 at 06:56:39AM -0400, Paul Fox wrote:
>  > > sean wrote:
>  > >  > On Sat, May 31, 2025 at 06:51:00PM -0400, Paul Fox wrote:
>  > >  > > patrick wrote:
>  > >  > >  >    I cobbled together this command on the RPi, hoping it would send the IR
>  > >  > >  >    signals to the MythTV computer in the same way the HDHR did but it doesn't
>  > >  > >  >    seem to be working.  I'm running irw on the 192.168.1.2 computer but it's
>  > >  > >  >    not receiving any signals.
>  > >  > >  > 
>  > >  > >  >    /usr/bin/mode2 -d /dev/lirc0 | irtext2udp | socat -
>  > >  > >  >    udp-datagram:[1]192.168.1.2:5000,broadcast
>  > >  > >  > 
>  > >  > >  >    I'm hoping someone else has done this or has experience with it and could
>  > >  > >  >    offer me some assistance please.
>  > >  > > 
>  > >  > > Unless something has changed recently (and I doubt it), irtext2udp
>  > >  > > is broken, because it matches the documentation of the UDP protocol, which
>  > >  > > is also broken.  I submitted patches for these issues in March 2022:
>  > >  > >     https://sourceforge.net/p/lirc/tickets/370/
>  > >  > > I also sent mail to the (this) list about it at the same time -- I'm sure
>  > >  > > it's in the archives.  So that's probably at least part of your problem.
>  > >  > 
>  > >  > I've applied a fix. I think it's easier to simply fix plugins/udp.c rather
>  > >  > than making everything compatible with something that is clearly a bug.
>  > >  > 
>  > > 
>  > > No, I don't think you can do that.  You're changing an existing
>  > > protocol.  There is code out in the wild that's decades old at this
>  > > point, which depends on the current behavior.  (I know, I wrote some:
>  > > https://sourceforge.net/projects/airboard-ir/ )
>  > > 
>  > > If your patch were the right thing, I would have submitted it initially.
>  > > 
>  > > As it stands now, as soon as a new release a lirc makes it's way to
>  > > debian, half the devices in my house, and likely other peoples', will
>  > > stop working.
>  > 
>  > The lirc source tree contains two implementations of the udp protocol, one
>  > uses high bit set for pulse, the other space. The documentation says high
>  > bit set for pulse, and this also makes more sense. One or the other has to
>  > fixed.
> 
> Can you point me at the other implementation?  I didn't know there
> were two.   Sigh.

So the udp protocol is implemented by irtext2udp and plugins/udp.c. It is
also documented in various places, which is pretty unambiguous that a set
bit means pulse.

If we fix irtext2udp, that breaks the users of irtext2udp, however that might
be.

If we fix plugins/udp.c, then that breaks those users.

Either way you're breaking something for someone. Might as well do the right
think and implement the protocol as it is documented.


Sean