Notice: This forum has been recovered from an old backup, so some content, links, and dates may be outdated. The forum is currently read-only while we restore sign-in and registration functionality. Details
If you find this forum valuable and would like to help keep it online, donations to help cover hosting and domain costs are greatly appreciated, but never expected. You can support the forum through Buy Me a Coffee or Ko-fi. Thank you for helping preserve the EventGhost community.
If you find this forum valuable and would like to help keep it online, donations to help cover hosting and domain costs are greatly appreciated, but never expected. You can support the forum through Buy Me a Coffee or Ko-fi. Thank you for helping preserve the EventGhost community.
Generic HID
-
defender013
- Posts: 10
- Joined: Mon Feb 15, 2010 10:53 am
Re: Generic HID
Hi Bartman,
I have some general questions about the HID plugin, I hope you can shed some light on it.
This is what I understand of the HID plug-in, correct me if I am wrong.
1. when an HID function is asserted by a peripheral device, EG will try (if the device is registered) to log the raw data/event name of this function.
2. Even if this HID function is used as a trigger event to some EG marco, EG does NOT intercept it (stop it from being sent to other programs running concurrently), it just allows the ability to bind other desired functions to this key.
My second point is what I believe is killing me right now. I can detect all buttons on my HID remote just fine, it's just some specific buttons (HID.button7 HID.button9) seem to trigger a reaction for my media player (KMPlayer) even if EG catches the event and issues its' command.
Based on my reading and research, there is no way for me to get around this problem. If I disable HID service, then EG won't even detect it. If I enable it, there is no way to tell EG to NOT let other programs see it, so thus my only option should be to somehow find a way to stop KMPlayer from responding to it. Does this sound about right to you?
I have also been looking into autoHotKey, but it seems to fall in line with what EG does, parallel recognition but no interception.
I have some general questions about the HID plugin, I hope you can shed some light on it.
This is what I understand of the HID plug-in, correct me if I am wrong.
1. when an HID function is asserted by a peripheral device, EG will try (if the device is registered) to log the raw data/event name of this function.
2. Even if this HID function is used as a trigger event to some EG marco, EG does NOT intercept it (stop it from being sent to other programs running concurrently), it just allows the ability to bind other desired functions to this key.
My second point is what I believe is killing me right now. I can detect all buttons on my HID remote just fine, it's just some specific buttons (HID.button7 HID.button9) seem to trigger a reaction for my media player (KMPlayer) even if EG catches the event and issues its' command.
Based on my reading and research, there is no way for me to get around this problem. If I disable HID service, then EG won't even detect it. If I enable it, there is no way to tell EG to NOT let other programs see it, so thus my only option should be to somehow find a way to stop KMPlayer from responding to it. Does this sound about right to you?
I have also been looking into autoHotKey, but it seems to fall in line with what EG does, parallel recognition but no interception.
Re: Generic HID
The HID plugin cannot block keys.
The inUSB driver started in the 0.4. branch can do that.
The inUSB driver started in the 0.4. branch can do that.
-
defender013
- Posts: 10
- Joined: Mon Feb 15, 2010 10:53 am
Re: Generic HID
Hi Bartman,
thanks for the reply, but sorry, I'm not familiar with what you are referring to.
Do you mean i have to override the windows drivers? Or is this an alternate plugin? I don't remember seeing this with the default installation.
many thanks for your help.
thanks for the reply, but sorry, I'm not familiar with what you are referring to.
Do you mean i have to override the windows drivers? Or is this an alternate plugin? I don't remember seeing this with the default installation.
many thanks for your help.
Re: Generic HID
In 0.4 EG installs a generic driver for certain devices which complete removes all generic functionality of HID device and lets EG take complete control over the actions.
This is however not generic like HID but relativly easy to do.
This is however not generic like HID but relativly easy to do.
-
defender013
- Posts: 10
- Joined: Mon Feb 15, 2010 10:53 am
Re: Generic HID
Hi Bartman,
thanks I'll have a look into that. just curious, is 0.4 the experimental release? Because I don't see it in the official download list.
thanks,
thanks I'll have a look into that. just curious, is 0.4 the experimental release? Because I don't see it in the official download list.
thanks,
Re: Generic HID
A polite re-request, for a kind knowladgebale person, for a sample script as per my previous question, whereby I can detect an HID payload, and use it to assign actions, please?
If somone can also show how the script can detect if the value is rising or falling (as per my example on the previous post) it would be wonderful!
If somone can also show how the script can detect if the value is rising or falling (as per my example on the previous post) it would be wonderful!
Re: Generic HID
Here is a script triggering a new event Main.Up or Main.Down
Code: Select all
newValue = eg.event.payload
if hasattr(eg.globals, 'prevValue'):
prevValue = eg.globals.prevValue
eg.globals.prevValue = newValue
if prevValue < newValue:
eg.TriggerEvent("Up")
elif prevValue > newValue:
eg.TriggerEvent("Down")
else:
eg.globals.prevValue = newValueRe: Generic HID
Thank you Bartman, you ROCK!
SO I took your script above, and created the following folder structure:
And in the script modified your script as below:
However in the left hand EG screen, for my jog wheel input I get the following triggers:
Shuttle.Value.1 124
Jog wheel/Volume
Python Script
Main.Winamp: Volume Up
Shuttle.Value.1 125
Jog wheel/Volume
Python Script
Main.Winamp: Volume Up
Shuttle.Value.1 124
Jog wheel/Volume
Python Script
Main.Winamp: Volume Down
Shuttle.Value.1 123
Jog wheel/Volume
Python Script
Main.Winamp: Volume Down
SO its reading the input as I want it, but dont know where the Main.Winamp action signifies (the MAIN part being the determining factor!), and obviously its not changing the winamp volume.
I tried referencing the macro folders of Volume up and down, and also actions themselves, no joy. What am i doing wrong?
Thank you very very much for your script Bartman, I have my system, setup just as I like it now (almost)! Well, until the next modification that is!
PS after playing around a bit i got it working by the mimicking a key input (corresponding to the key triggers in the respective vol up/down folders) form the script as below:
ANd now get the following responses:
Shuttle.Value.1 140
Jog wheel/Volume
Python Script
Main.MceRemote.3737
Volume Up
Winamp: Volume Up
Shuttle.Value.1 139
Jog wheel/Volume
Python Script
Main.MceRemote.3734
Volume Down
Winamp: Volume Down
But have a feeling (in my not at all knowledgable opinion!) that there must be a cleaner way to reference the action directly instead of cross-referencing so many folders/actions?
SO I took your script above, and created the following folder structure:
Code: Select all
<?xml version="1.0" encoding="UTF-8" ?>
<EventGhost Version="1436">
<Macro Name="Jog wheel/Volume" Expanded="True">
<Event Name="Shuttle.Value.1" />
<Action>
EventGhost.PythonScript(u'newValue = eg.event.payload\nif hasattr(eg.globals, \'prevValue\'):\n prevValue = eg.globals.prevValue\n eg.globals.prevValue = newValue\n if prevValue < newValue:\n eg.TriggerEvent("Winamp: Volume Up")\n elif prevValue > newValue:\n eg.TriggerEvent("Winamp: Volume Down")\nelse:\n eg.globals.prevValue = newValue')
</Action>
</Macro>
</EventGhost>Code: Select all
newValue = eg.event.payload
if hasattr(eg.globals, 'prevValue'):
prevValue = eg.globals.prevValue
eg.globals.prevValue = newValue
if prevValue < newValue:
eg.TriggerEvent("Winamp: Volume Up")
elif prevValue > newValue:
eg.TriggerEvent("Winamp: Volume Down")
else:
eg.globals.prevValue = newValueShuttle.Value.1 124
Jog wheel/Volume
Python Script
Main.Winamp: Volume Up
Shuttle.Value.1 125
Jog wheel/Volume
Python Script
Main.Winamp: Volume Up
Shuttle.Value.1 124
Jog wheel/Volume
Python Script
Main.Winamp: Volume Down
Shuttle.Value.1 123
Jog wheel/Volume
Python Script
Main.Winamp: Volume Down
SO its reading the input as I want it, but dont know where the Main.Winamp action signifies (the MAIN part being the determining factor!), and obviously its not changing the winamp volume.
I tried referencing the macro folders of Volume up and down, and also actions themselves, no joy. What am i doing wrong?
Thank you very very much for your script Bartman, I have my system, setup just as I like it now (almost)! Well, until the next modification that is!
PS after playing around a bit i got it working by the mimicking a key input (corresponding to the key triggers in the respective vol up/down folders) form the script as below:
Code: Select all
eg.TriggerEvent("MceRemote.3737")
elif prevValue > newValue:
eg.TriggerEvent("MceRemote.3734")
else:Shuttle.Value.1 140
Jog wheel/Volume
Python Script
Main.MceRemote.3737
Volume Up
Winamp: Volume Up
Shuttle.Value.1 139
Jog wheel/Volume
Python Script
Main.MceRemote.3734
Volume Down
Winamp: Volume Down
But have a feeling (in my not at all knowledgable opinion!) that there must be a cleaner way to reference the action directly instead of cross-referencing so many folders/actions?
Re: Generic HID
What is the Main.MceRemote.??? event for?
You can assign multiple events to a macro.
You can assign multiple events to a macro.
Re: Generic HID
Its the trigger from the remote (ie the reading from the IR receiver for that button) for "normal" use; in my winamp context folder, i have volume control assigned to that MCE remote button as a macro below:
And when I was playing around with the script, and couldnt get it to work directly, I referenced the MCE remote keystroke.
My question was, whether I was doing something wrong, not being able to reference the vol up/down action directly from your script, rather than having to reference it to the above keystroke to make it work?
Code: Select all
<?xml version="1.0" encoding="UTF-8" ?>
<EventGhost Version="1436">
<Macro Name="Volume Up" Expanded="True">
<Event Name="MceRemote.3737" />
<Action>
Winamp.VolumeUp()
</Action>
<Action>
EventGhost.AutoRepeat(0.33000000000000002, 0.050000000000000003, 0.050000000000000003, 2.0)
</Action>
</Macro>
</EventGhost>My question was, whether I was doing something wrong, not being able to reference the vol up/down action directly from your script, rather than having to reference it to the above keystroke to make it work?
Re: Generic HID
Hi Bartman,
I just want to thank for the development for EventGhost and for this Generic HID plugin.
I have this USB device:
Conceptronic "Multimedia remote control" model CMMRC
Order code : C08-039
http://www.conceptronic.net/site/deskto ... &pid=CMMRC
I just want to confirm that this device is working perfectly with EventGhost, with the Generic HID plugin. When I tried to add the Generic HID plugin, it offered two device option to select:
- Generic USB K/B, Manufacturer: unknow non-english character
- Formosa RC102-809 USB Remot, Formosa Indrustrial Computin
I selected the "Formosa RC102-809 USB Remot, Formosa Indrustrial Computin". By default it doesn't recognise button presses, gives "HID.Button.None" in Log.
But when I turn on the option "Use Raw Data as event name", then I get the raw values, so I can configure it properly. It works perfectly.
I just wanted to post here my raw codes, helping the development of this application. You maybe could include this device in next build, so it will be supported.
So here are the details:
Conceptronic "Multimedia remote control" model CMMRC
Order code : C08-039
http://www.conceptronic.net/site/deskto ... &pid=CMMRC
When I install the official driver 1.3, a program is installed in Start Menu creating a "Formosa21" folder, inside another folder "Remote Master for RC105 v1.3". So this USB device is Formosa21 RC105 in fact.
EventGhost 0.3.7.r1436
Using Windows XP SP3 Hungarian
Plugin: HID: Formosa Industrial Computin Formosa RC102-809 USB Remot
With setting "Use Raw Data as event name" turned on
HID.0000F717E8 = DVD
HID.0000F716E9 = MUSIC
HID.0000F715EA = PRESENT
HID.0000F714EB = EXIT
HID.0000F713EC = Previous track
HID.0000F712ED = Play
HID.0000F711EE = Next track
HID.0000F710EF = SCREEN
HID.0000F70FF0 = Reward
HID.0000F70EF1 = Pause
HID.0000F70DF2 = Forward
HID.0000F70CF3 = CH+
HID.0000F70BF4 = ESC
HID.0000F70AF5 = Up
HID.0000F709F6 = Stop
HID.0000F708F7 = CH-
HID.0000F707F8 = Left
HID.0000F706F9 = OK
HID.0000F705FA = Right
HID.0000F704FB = Volume Up
HID.0000F703FC = Menu
HID.0000F702FD = Down
HID.0000F701FE = Mute
HID.0000F700FF = Volume Down
When removed from USB port, then reattached, maybe it helps to identify this device:
Error reading HID device: Formosa Industrial Computin Formosa RC102-809 USB Remot
HID.746F726500
HID.Stopped
System.DeviceRemoved [u'\\\\?\\HID#Vid_147a&Pid_e019#6&4291489&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}']
System.DeviceRemoved [u'\\\\?\\USB#Vid_147a&Pid_e019#5&25a083c0&0&2#{a5dcbf10-6530-11d2-901f-00c04fb951ed}']
System.DeviceAttached [u'\\\\?\\USB#Vid_147a&Pid_e019#5&25a083c0&0&2#{a5dcbf10-6530-11d2-901f-00c04fb951ed}']
System.DeviceAttached [u'\\\\?\\HID#Vid_147a&Pid_e019#6&4291489&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}']
Regards
batagy
I just want to thank for the development for EventGhost and for this Generic HID plugin.
I have this USB device:
Conceptronic "Multimedia remote control" model CMMRC
Order code : C08-039
http://www.conceptronic.net/site/deskto ... &pid=CMMRC
I just want to confirm that this device is working perfectly with EventGhost, with the Generic HID plugin. When I tried to add the Generic HID plugin, it offered two device option to select:
- Generic USB K/B, Manufacturer: unknow non-english character
- Formosa RC102-809 USB Remot, Formosa Indrustrial Computin
I selected the "Formosa RC102-809 USB Remot, Formosa Indrustrial Computin". By default it doesn't recognise button presses, gives "HID.Button.None" in Log.
But when I turn on the option "Use Raw Data as event name", then I get the raw values, so I can configure it properly. It works perfectly.
I just wanted to post here my raw codes, helping the development of this application. You maybe could include this device in next build, so it will be supported.
So here are the details:
Conceptronic "Multimedia remote control" model CMMRC
Order code : C08-039
http://www.conceptronic.net/site/deskto ... &pid=CMMRC
When I install the official driver 1.3, a program is installed in Start Menu creating a "Formosa21" folder, inside another folder "Remote Master for RC105 v1.3". So this USB device is Formosa21 RC105 in fact.
EventGhost 0.3.7.r1436
Using Windows XP SP3 Hungarian
Plugin: HID: Formosa Industrial Computin Formosa RC102-809 USB Remot
With setting "Use Raw Data as event name" turned on
HID.0000F717E8 = DVD
HID.0000F716E9 = MUSIC
HID.0000F715EA = PRESENT
HID.0000F714EB = EXIT
HID.0000F713EC = Previous track
HID.0000F712ED = Play
HID.0000F711EE = Next track
HID.0000F710EF = SCREEN
HID.0000F70FF0 = Reward
HID.0000F70EF1 = Pause
HID.0000F70DF2 = Forward
HID.0000F70CF3 = CH+
HID.0000F70BF4 = ESC
HID.0000F70AF5 = Up
HID.0000F709F6 = Stop
HID.0000F708F7 = CH-
HID.0000F707F8 = Left
HID.0000F706F9 = OK
HID.0000F705FA = Right
HID.0000F704FB = Volume Up
HID.0000F703FC = Menu
HID.0000F702FD = Down
HID.0000F701FE = Mute
HID.0000F700FF = Volume Down
When removed from USB port, then reattached, maybe it helps to identify this device:
Error reading HID device: Formosa Industrial Computin Formosa RC102-809 USB Remot
HID.746F726500
HID.Stopped
System.DeviceRemoved [u'\\\\?\\HID#Vid_147a&Pid_e019#6&4291489&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}']
System.DeviceRemoved [u'\\\\?\\USB#Vid_147a&Pid_e019#5&25a083c0&0&2#{a5dcbf10-6530-11d2-901f-00c04fb951ed}']
System.DeviceAttached [u'\\\\?\\USB#Vid_147a&Pid_e019#5&25a083c0&0&2#{a5dcbf10-6530-11d2-901f-00c04fb951ed}']
System.DeviceAttached [u'\\\\?\\HID#Vid_147a&Pid_e019#6&4291489&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}']
Regards
batagy
Re: Generic HID
Mapping the raw codes to specific names should be done in seperate plugins.
The additional event with random data when unplugging will no longer occur in the next build.
The additional event with random data when unplugging will no longer occur in the next build.
Re: Generic HID
Hi!Bartman wrote:Mapping the raw codes to specific names should be done in seperate plugins.
Thanks for clarification. I thought your plugin can include it, because it recognises it as "Formosa RC102-809 USB Remot".
So why not recognise it properly as Formosa21 RC105?
Thanks
batagy
Re: Generic HID
Because the device tells that it is namedbatagy wrote:So why not recognise it properly as Formosa21 RC105?
"Formosa RC102-809 USB Remot". ALthough still better than some devices which don't give a name at all.
Re: Generic HID
Ok, so it is in fact "Formosa RC102-809 USB Remot", as it says itself.
Hmm ok, nice to know.
Thanks for clarification!
Keep up your good work!
Hmm ok, nice to know.
Thanks for clarification!
Keep up your good work!