Identify a keyboard with ps/2 bus - operating-system

I am writing a keyboard driver for my custom OS. I have a PCI driver that can return the vendor ID and friends. However I searched on internet if it's possible to communicate directly with the keyboard and identify it directly. I found nothing.
My question is : Can I get a string from the keyboard that identify the keyboard directly using in / out commands ? ( for example "Logitech Keyboard" )
The keyboard communicates with a ps/2 interface
Has someone an Idea ?

This is a nice detailed doc about the ps/2 keyboard protocol: https://www.avrfreaks.net/sites/default/files/PS2%20Keyboard.pdf
There doesn't appear to be anything that would tell you some textual identification of the keyboard. I don't think you can even find out how many keys it has.
Short version: no, you cannot.

Related

Google smart home command for blinds

I would like to control blinds using google smart home action. How can I create commands like "turn/put my blind up/down" ? What device traits should I use? It seems OnOff trait doesn't understand up and down, can I custom it? Thanks!
You could use the undocumented (use at your own risk) device type: action.devices.types.BLINDS.
Instead you could use for traits:
On/Off: action.devices.traits.OnOff
Brightness: action.devices.traits.Brightness
In this way, you can ask Google to set a specific position, to close (in Italian it works as a turn off command, in English, I did not try yet), to turn on or to turn off. The open command instead seems to be not recognized as a turn on command.
Hope to help you and hope that Google releases soon types and traits for blinds/curtain control.
EDIT as pointed out by #robin-thoni is not documented: https://developers.google.com/actions/smarthome/guides/blinds

AutoHotKey doesn't recognise the Shuttle Xpress

For some reason, I need the Shuttle Xpress keypad to map to keys like "Caps lock + v", "Ins + a". But the shuttle doesn't recognise the "Caps lock" as a modifier key. It can only map "Caps" or "Ins" alone. I try to use AutoHotKey software, but it failed to catch the shuttle's input signal.
The shuttle has its own driver. How can I catch the Shuttle Xpress signal, and map it to any key combinations I want?
You MIGHT be lucky and the device may be a "HID" device.
Most input devices (All keyboards, mice, "normal" joysticks, XBox controllers, PS4 controllers, etc, etc) are HID devices.
From a cursory google, it seems that it is a HID device or there is maybe some mode you can put the device in to make it a standard HID device?
In which case, AHK natively cannot read it, but it can be done through WinAPI calls (DllCall()) to the RawInput API.
There is a library called AHKHID that will let you read HID devices from AHK, and I am working on similar solutions (Though mine these days are tending to be written as a C# DLL which you then call from AHK), but I don't think I have anything that could help you at the moment - I have only implemented mouse movement in RawInput so far.
If / when I do though, I would post it on the AHK forums (I post as evilC), so keep an eye out there.
I made a workaround that enables me to map ShuttleXpress buttons to any keystroke sequence or scripts. The input is routed to ahk via the Fn keys. This works very well for my use, could be worth a try.
1: Remap Shuttle Xpress buttons to function keys between 13-24. (1-12 is of course also possible, but then you would tie up the physical Fn keys on the keyboard.)
2: Use ahk to remap the same function keys to any script or keystroke.

Simulate input of a 3D Mouse in autohotkey

I want to use autohotkey to control a program, which relys on the input of a 3D-Mouse (3DConnexion SpaceNavigator). How can I simulate a axis in autohotkey?
Maybe 3DConnexion SpaceNavigator uses same axeses as joystick? So check joystic controls here: http://ahkscript.org/docs/KeyList.htm#Joystick
If it does not helps, you can try to get the name of the control with that guide: http://ahkscript.org/docs/KeyList.htm#SpecialKeys (some explanations here: Macro Keys not Detected AutoHotkey)
By the way please write your impressions about 3D-Mouse (3DConnexion SpaceNavigator) in comments.
I think you need to get the SDK and write your own intigration...seems to be the only option, unless you figure out a way to communicate with the device by watching the usb signal

Localhost arduino pincontrol

I want to make a browser-controlled Arduino, that can control 2 motors. The requrements for this, is that i want to be able to click on a button on the server that the Arduino hostes, and handle that input as if there was a button connected directly on the Arduino. Is that even possible ?
I have looked at the example called TempretureWebPanel(Arduino Tutorial), but that makes no sense to me..
Can someone please tell me where to find a tutorial for this, or even better, give an example of this.
Thanks in advice.
This example shows how to control an Arduino from a PC.
It uses C# on the PC side but you could drive it with any code you want as long as it supports writing to a USB/com port.
http://playground.arduino.cc/Csharp/SerialCommsCSharp#.UzK-F_l_t2c

Obtaining GUID for Existing USB Device on Windows XP

I need to find the GUID for an existing USB device attached to my Windows XP system. How can this be done using WMI or the registry? Or, is there another avenue that I should explore? Thanks.
Additional Information:
I need to find the GUID for a specific known device; it is not expected to change. If I need to write a little program, use some tool, or look somewhere in the Windows system to find this information, it's all the same to me.
Control Panel > Device Manager > Right Click on Device > Properties > Details Tab > Change 'Property' to Driver Key > Guid will be displayed in 'value' section
For a specific known device, the easiest way I've found is to open the .inf file for that device's driver (if you have the driver); it should be clearly indicated there.
You can probably also poke around under HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB.
DevViewer from Symantec also seems to do the trick.