- Joined
- Aug 6, 2011
- Messages
- 405
- Reaction score
- 2
- Points
- 18
I'm excited to announce my progress on my first addon - a modular simpit controller. Version 0.1 is released here, and will be on OH as soon as it gets approved!
Stable releases will reside on the master branch here, and unstable versions can be downloaded from the develop branch here.
First, a little background on the module. All of the submodules are linked into an event queue, and submodules can either fire or receive events. The submodules that will be included in v0.1 are the following (ignore the input/output designation, it was left over from the previous revision of the controller):
The first six modules above are currently on Github and are testable.
Any combination of the above modules can be used. Because the controller is modular, you can use it for as simple or as complicated things as you want.
For example, even if you do not have a simpit, you could use one (or several) SimpitMFD submodules to automatically place and resize ExternalMFD's at simulation start. No more buggy AutoHotKey scripts are needed to place them!
On the other hand, you could use it to drive an entire vessel-specific simpit. I use a SerialInput to read switch states from an Arduino, and those events feed two SimpitMFD's, an ExternalOutput which displays fuel information through an AutoHotKey script, and a KeyOutput for controlling time acceleration with physical buttons. Also, as I use some two-way toggle switches, I use StateSaver to ensure that my simpit is always synched with the scenario before I begin.
To anyone, but especially simpit builders, are there any submodules that would be useful?
Thanks! :tiphat:
Stable releases will reside on the master branch here, and unstable versions can be downloaded from the develop branch here.
First, a little background on the module. All of the submodules are linked into an event queue, and submodules can either fire or receive events. The submodules that will be included in v0.1 are the following (ignore the input/output designation, it was left over from the previous revision of the controller):
- SerialInput -Recieves event information from an external serial/USB source, such as an Arduino, and it fires events. I use this submodule in my simpit so that external buttons/switches can trigger certain actions in Orbiter.
- PanelEventOutput - Simulates mouseclicks on any 2D panel. This can be used to make simpits that have switches for vessel-specific actions. I use this to simulate clicks on all of the switches in the DGIV when their corresponding real life switch is pressed.
- PanelClickRecorderOutput - The recorder which obtains the necessary information about a PanelMouseEvent to re-simulate it with PanelEventOutput
- SimpitMFD - Places an ExternalMFD instance at a specified location with a specified size. It can also define a "clip" region, for more realistic-looking MFD's without the standard ExternalMFD border, like the ones in my simpit. Additionally, events can simulate MFD button presses.
- ExternalOutput - Starts any program in response to an event. This can be used to trigger AutoHotKey scripts, play sound files, etc.
- TimeBasedInput - Fires events at either simulation start, after a certain amount of real seconds, or after a certain amount of sim seconds.
- KeyOutput - Sends Orbiter simulated keypresses in response to an event.
- StateSaver - Stores information about the last-triggered event into the scenario file and can load that information on simulation start. Useful for syncronizing the Orbiter state with physical toggle switches.
The first six modules above are currently on Github and are testable.
Any combination of the above modules can be used. Because the controller is modular, you can use it for as simple or as complicated things as you want.
For example, even if you do not have a simpit, you could use one (or several) SimpitMFD submodules to automatically place and resize ExternalMFD's at simulation start. No more buggy AutoHotKey scripts are needed to place them!
On the other hand, you could use it to drive an entire vessel-specific simpit. I use a SerialInput to read switch states from an Arduino, and those events feed two SimpitMFD's, an ExternalOutput which displays fuel information through an AutoHotKey script, and a KeyOutput for controlling time acceleration with physical buttons. Also, as I use some two-way toggle switches, I use StateSaver to ensure that my simpit is always synched with the scenario before I begin.
To anyone, but especially simpit builders, are there any submodules that would be useful?
Thanks! :tiphat:
Last edited: