Re: [RFC] Should we create a raw input interface for IR's ? - Was: Re: [PATCH 1/3 v2] lirc core device driver infrastructure

From: Christoph Bartelmus
Date: Wed Nov 25 2009 - 17:33:36 EST


Hi Gerd,

on 25 Nov 09 at 22:58, Gerd Hoffmann wrote:
[...]
> (1) ir code (say rc5) -> keycode conversion looses information.
>
> I think this can easily be addressed by adding a IR event type to the
> input layer, which could look like this:
>
> input_event->type = EV_IR
> input_event->code = IR_RC5
> input_event->value = <rc5 value>
>
> In case the 32bit value is too small we might want send two events
> instead, with ->code being set to IR_<code>_1 and IR_<code>_2
>
> Advantages:
> * Applications (including lircd) can get access to the unmodified
> rc5/rc6/... codes.

Unfortunately with most hardware decoders the code that you get is only
remotely related to the actual code sent. Most RC-5 decoders strip off
start bits. Toggle-bits are thrown away. NEC decoders usually don't pass
through the address part. Some even generate some pseudo-random code
(Irman). There is no common standard which bit is sent first, LSB or MSB.
Checksums are thrown away.
To sum it up: I don't think this information will be useful at all for
lircd or anyone else. Actually lircd does not even know anything about
actual protocols. We only distinguish between certain protocol types, like
Manchester encoded, space encoded, pulse encoded etc. Everything else like
the actual timing is fully configurable.

[...]
> If we keep the lirc interface for raw samples anyway, then we can keep
> it for sending too, problem solved ;) How does sending hardware work
> btw? Do they all accept just raw samples? Or does some hardware also
> accept ir-codes?

Usually raw samples in some form. I've never seen any device that would
accept just ir-codes. UIRT2 devices have some more advanced modes but also
accept raw samples.

Christoph
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/