
Input / Output Device (IOD) Interface for Communication with Joystick and Other Hardware / Software Interfaces
Bihrle developed the Input/Output Device (IOD) interface to eliminate the need for the user to develop and embed custom hardware interfaces and controls in the simulation code. This reconfigurable interface provides the user with a sophisticated I/O controller that allows a wide variety
of interaction with other devices and hardware. The specific description of the interface itself is complex, but in general, the I/O Devices interface (IOD) enables the user to graphically map D-Six export variables to other hardware and software, and concurrently, map hardware output
into D-Six with unprecedented graphical control. A very common requirement for most simulation models developed under D-Six is the need for input from devices that are not controlled directly by D-Six, such as control sticks, switches, and keyboards. In addition to being used to control
D-Six simulation models, these devices need to be able to communicate with D-Six and any modules D-Six has loaded. For example, the user may want to control the views in D-Six from switches on a joystick, or a loadable graphics module may need to know the position of the control
deflections on the simulation model to display them correctly. To support this requirement, the I/O Devices is available in D-Six.

The IOD interface consists of three independent components: devices, events, and channels. Together, these components provide communication services through which D-Six and external devices pass information. Each component is designed to provide common operations and services to
D-Six and other associated programs, greatly simplifying interface module development, and providing the user with standardized configuration options. Other modular component interfaces designed for specific communication tasks can be added as required to give simulation control over a
wide range of hardware devices. In many cases, these components are user configurable, and can be accessed by the user. Devices are interfaced as loadable modules that register themselves with IOD. Common examples are joysticks, switches, and keyboards. However, a device does not have
to represent real hardware attached to the computer. Anytime software attached to D-Six needs to have user configurable data passed to or from other software in D-Six, it will register itself with IOD as a device. For example, a configurable network interface may register itself as a
device to allow the user to configure the variables passed between D-Six and the network.
Events are triggered occurrences in D-Six, such as starting or stopping the simulation, manipulating the graphics viewpoint, firing a missile, raising the landing gear, or initiating data recording. One or more devices can provide digital input to trigger an event. For example, a
button on a joystick may be used to fire a missile, or a key can be pressed to raise the landing gear. An event can be registered with IOD by D-Six, loadable modules, or even a simulation model. D-Six also provide the users with a D-Six Data trigger interface that allows users to build
variable triggers, such as Alt>1000, that can be use to initiate event sequences, such as the playing of a sound file, etc.
Channels represent streams of data passed between modules to D-Six. For example, a joystick can be used to provide control information from the pilot, or a graphics module may require control deflection information from the simulation. Devices register channels with IOD as inputs or
outputs, and IOD allows the simulation user to map D-Six data to and from the channels based on the user's requirements. This provides a direct method for delivering channel data to and from a simulation model.
A number of simulation projects have exercised the interfacing capability of D-Six. These range from communication with analog cockpit devices using an on board A/D card, to export of simulation parameters to an external SGI graphics image generation platform via LAN to Ethernet
communication with the F-18E/F flight control hardware. Industry standard VME and SCRAMNET interfacing has been used in a number of large scale cockpit mechanizations where D-Six serves as the flight model host. IOD also serves as the gateway for mapping networked simulation
applications such as D-SixNet, a very low latency, multi-vehicle simulation application where several remote D-Six simulation stations are concurrently operated in a simultaneous simulated common environment. The IOD interface enables the user to engage numerous vehicle control devices
as well, ranging from simple game joysticks, to recent force feedback PC joysticks to fully loaded commercial stick systems. A very unique feature of the IOD interface is the ability to dynamically scale, offset or completely remap the I/O variables during the simulation session as
needed by the user.

Other Product Package Descriptions