Integration
Pi3 firmware offers X-keys users and developers a broad range of alternatives for USB input.
- Using MacroWorks 3.1 Software
- Using Your Application with Our SDK
- Using X-keys as a Stand Alone USB Device
- Using X-keys Reflector Feature
- Alternate Firmware Configurations
Using MacroWorks 3.1 Software
An X-keys with our free MacroWorks 3.1 (MW3.1) software offers a great deal of flexibility for customization with little work required from the programmer. The MW3.1 script uses VB language so anyone proficient on VB can easily create custom scriptlets of modify existing script parameters in MW3.
- Software messaging: keystrokes, mouse, Unicode, pre-defined scriptlets
- Hardware messaging: keystrokes and mouse commands
- Custom messaging: VB scripting
- Reflector messaging: data is received as hardware keystroke or mouse message
- Simultaneous messaging: any combination of above is possible
P.I. Engineering provides live technical support for installation, programming, and scripting.
Pros:
- Application sensitivity
- Virtually unlimited macro length
- Allows mixing of messages, commands, and scripting
- GUI driven programming
- Supports VB scripting
- Works for everyone from complete novice to experienced programmer
- End user may be given access to change programming
Cons:
- Requires MW3.1 installation on end user's PC
- No direct communication from application to X-keys device
- End user may have access to change programming
Using Your Application with Our SDK
Direct communication between the X-keys and your software provides the most reliable and best control on both ends.
- Direct link from key press to action
- Direct path to analog control position
- Direct control of indicators and displays on X-keys devices
- Hardware and Reflector messaging are also supported
P.I. Engineering provides live technical support to assist the developer and support our SDK.
Pros:
- Best possible link from X-keys to application - bypasses keyboard and mouse data filters
- Absolute position of analog controls reported directly to application
- All backlighting and indicators may be controlled by the application
- Dongle feature may be implemented
- Allows for control of hardware or reflector messages
Cons:
- Requires developer to understand and implement X-keys data reports
- Requires developer to manage and update software
Using X-keys as a Stand Alone USB Device
- Operation uses standard HID drivers
- No software to install on end user PCs
- Programming stored in X-keys onboard memory
- Keyboard, mouse, and game controller (joystick) input
X-keys installs as a compound USB device: Keyboard and Mouse (or other configurations - see Alternate Firmware Configurations below). A programmed X-keys can be plugged to any computer supporting USB HID Keyboard and mouse and sends standard USB messages.
Pros:
- Every application open to USB keyboard, mouse, or game controller is supported
- Software has full control of hardware messages
- Feedback from applications can affect hardware messages
- Can be combined with other forms of input
Cons:
- Requires custom scripting or programming
Using X-keys Reflector Feature
- Messages sent to the X-keys are reflected back
- Messages come through lowest level HID input
- Messages can originate in MW3.1 or your custom application
- Keyboard, mouse, and game controller (joystick) input
Keyboard, mouse, or joystick messages are reflected back into the PC at the lowest possible level, coming from HID USB Hardware.Even the most "reluctant" applications will not ignore messages coming from a USB keyboard or mouse. MW3.1 and our SDK support this new feature available in Pi3 devices only.
Pros:
- Every application open to USB keyboard, mouse, or game controller is supported
- Software has full control of hardware messages
- Feedback from applications can affect hardware messages
- Can be combined with other forms of input
Cons:
- Requires custom scripting or programming
Alternate Firmware Configurations
X-keys with Pi3 firmware have four possible USB HID endpoints. Changing endpoints in a Pi3 device is available as a standard feature in our SDK. Changing the endpoints also changes our USB Product I. D. (PID).
In standard configuration from our warehouse X-keys four endpoints are defined as:
- HID Consumer Page Input
- HID Keyboard Input
- HID Mouse Input
- HID Consumer Page Outbound Report (for programming, backlighting, or display control)
Developers can reconfigure the endpoints to be:
- HID Consumer Page Input
- HID Keyboard Input
- HID Game Controller (Joystick Input)
- HID Consumer Page Outbound Report (for programming, backlighting, or display control)
Or:
- HID Keyboard Input
- HID Mouse Input
- HID Game Controller (Joystick) Input)
- HID Consumer Page Outbound Report (for programming, backlighting, or display control)
In all cases #4, the outbound report, is required to communicate with the device. Windows requires a game controller endpoint on a USB port to allow software emulation of game controller commands.
-
Game Controller input includes:
- Joystick X, Y, Z
- Z rotation
- Slider
- POV Hat
- Game Buttons 1-32