LIRC/IgorPlug kind of receivers

If you have a question or need help, this is the place to be.

LIRC/IgorPlug kind of receivers

Postby Bitmonster » Wed Aug 30, 2006 5:32 pm

The last pair of days, I have tried to implement a plugin for the simple serial port receivers like the LIRC/WinLIRC type and IgorPlug. At first sight it seemed promising but after some time, I noticed problems that are currently unsolvable.

As soon as some process needs some CPU cycles (like a media player is playing), the plugin will not be able to receive consistent IR codes. The reason for this lies in the architecture of Windows XP. There is no way to let a task get called fast enough, so it can measure the real time events that happen on a COM port. As soon as another task gets executed, the task scheduler of Windows will execute the plugin code only after an indefinite time again and we need a definite time, as a typical single IR pulse might only be 300µs long. And since we want to measure this time, the plugin codes needs to be called only a pair of micro-seconds after the event on the COM port has happened. WinLIRC suffers from the same problem under Window XP.

Some of you might know that there is a Girder plugin, that is able to get relative reliable reception with these kind of receivers even under a substantial load. The plugin is written by Igor Cesko and the question arrives, what is he doing to make it work?

Well, he has implemented a “Ring0 priority patch”. Normally only kernel drivers run in Ring0 priority and this priority will give some code a small enough time schedule to make such measuring tasks possible, even if other programs consume substantial processing power.

Such a “Ring0 priority patch” is only possible because Windows has a kind of security hole. I expect that with the introduction of the final Windows Vista this kind of patch will not be possible anymore.

And it seems that Igor Cesko has used the TVicHW32 Toolkit of EnTech to accomplish this. The commercial license of this toolkit costs $297.

So there isn't much I can do. The only chance I can see to get these receivers working with EventGhost is if Igor Cesko would write some DLL we can use. I have asked him long time ago if he is interested in supporting the EventGhost project and he basically agreed. But after this I haven't heard much of him, even after I have cautiously reminded him some times.
User avatar
Bitmonster
Site Admin
 
Posts: 2239
Joined: Mon Feb 06, 2006 10:28 pm

Re: LIRC/IgorPlug kind of receivers

Postby ahamilto » Sat Dec 09, 2006 5:24 pm

Bitmonster wrote:The last pair of days, I have tried to implement a plugin for the simple serial port receivers like the LIRC/WinLIRC type and IgorPlug. At first sight it seemed promising but after some time, I noticed problems that are currently unsolvable.

As soon as some process needs some CPU cycles (like a media player is playing), the plugin will not be able to receive consistent IR codes. The reason for this lies in the architecture of Windows XP. There is no way to let a task get called fast enough, so it can measure the real time events that happen on a COM port. As soon as another task gets executed, the task scheduler of Windows will execute the plugin code only after an indefinite time again and we need a definite time, as a typical single IR pulse might only be 300µs long. And since we want to measure this time, the plugin codes needs to be called only a pair of micro-seconds after the event on the COM port has happened. WinLIRC suffers from the same problem under Window XP.

Some of you might know that there is a Girder plugin, that is able to get relative reliable reception with these kind of receivers even under a substantial load. The plugin is written by Igor Cesko and the question arrives, what is he doing to make it work?

Well, he has implemented a “Ring0 priority patch”. Normally only kernel drivers run in Ring0 priority and this priority will give some code a small enough time schedule to make such measuring tasks possible, even if other programs consume substantial processing power.

Such a “Ring0 priority patch” is only possible because Windows has a kind of security hole. I expect that with the introduction of the final Windows Vista this kind of patch will not be possible anymore.

And it seems that Igor Cesko has used the TVicHW32 Toolkit of EnTech to accomplish this. The commercial license of this toolkit costs $297.

So there isn't much I can do. The only chance I can see to get these receivers working with EventGhost is if Igor Cesko would write some DLL we can use. I have asked him long time ago if he is interested in supporting the EventGhost project and he basically agreed. But after this I haven't heard much of him, even after I have cautiously reminded him some times.


Bitmonster,

There are a couple of ways around this. For one, the priority that WinLIRC runs can be adjusted. See http://winlirc.sourceforge.net/priority.txt for one.

I don't know that much about Windows, but maybe running it as a service increases the priority. Anyway, if so here is a way to run programs as a service. It says it works for Windows 2000, but I have used it successfully to run WinLIRC on my Windows XP HTPC. See http://www.tacktech.com/display.cfm?ttid=197

What do you think?

A.
ahamilto
 
Posts: 1
Joined: Sat Dec 09, 2006 5:17 pm

Postby Bitmonster » Mon Dec 11, 2006 3:25 pm

@ahamilto
Are you sure, WinLIRC runs reliable if you have a substantial load, like lets say over 65% CPU consumption (some DVD playback with some challenging filters like ffdshow)?
My tests let me assume, that WinLIRC also gets no consistent codes in this situation. I had WinLIRC running with realtime priority. I haven't tried it as service, but I don't think it will help much because services get a lower priority than normal program tasks under a default WinXP configuration.
User avatar
Bitmonster
Site Admin
 
Posts: 2239
Joined: Mon Feb 06, 2006 10:28 pm

Re: LIRC/IgorPlug kind of receivers

Postby IGORianer » Mon Dec 01, 2008 8:50 pm

I idiot, why did i not found this Topic here, sorry:
viewtopic.php?f=1&t=1112

I think i understand the problem, i try my best, write Igor again an email and hope that he answearing.

Greetings IGORianer

Bitmonster:
Did you was looking at this page for any source or any docu wich helps you solve this problem?:
http://www.cesko.host.sk/download.php
IGORianer
 
Posts: 3
Joined: Mon Nov 24, 2008 11:01 pm

Re: LIRC/IgorPlug kind of receivers

Postby kristinjenson123 » Tue Sep 25, 2012 10:28 am

Nice post
Liza smith
kristinjenson123
 
Posts: 1
Joined: Tue Sep 25, 2012 10:25 am

Re: LIRC/IgorPlug kind of receivers

Postby InterlinkKnight » Mon Jan 21, 2013 3:41 am

Before, I did have the problem mention here, but sense i upgrade my computer 1 year ago with intel i5 and windows 7, i don't have any problem at all. WinLIRC receive the signal of my remote perfectly even with 100% of use in all cores of my processor.

To be honest i am not sure why the problem is fix with new computers. Is because the newer processors? or is because a improvement on Windows 7? Don't know. But i can tell you, the problem is solve.
User avatar
InterlinkKnight
 
Posts: 29
Joined: Mon Sep 13, 2010 1:17 am


Return to General Support

Who is online

Users browsing this forum: Bing [Bot], Google [Bot] and 5 guests

cron