MotionSystems

Disclaimer

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Liability

THE MOTION SYSTEMS COMPANY AND ITS DISTRIBUTORS ARE NOT LIABLE FOR ANY DAMAGE, INJURIES OR EVEN DEATH RESULTING FROM ANY ELEMENTS NOT PROVIDED BY THE MOTION SYSTEMS COMPANY AND/OR INCORRECT USE OR ASSEMBLY OF THE PRODUCT.

All trademarks, brands and logos are copyright of their respective owners.

ForceSeatMI library in your C/C++ project

The ForceSeatMI can be easily used in any C/C++ x86 or x64 Windows application. You can leave loading the DLL to the operation system (conventional approach, e.g. delay loadig) or use our small loader class (recommended solution). Our loader class makes sure that even if the DLL is not found, nothing bad will happen. Basically when DLL is not loaded, all functions will return an error instead of crashing application (like it often happens in conventional approach).

Compilation and linking

Please follow below steps in order to introduce ForceSeatMI to your SIM:

  1. Make sure that ForceSeatPM is installed in the system.
  2. Add directory containing ForceSeatMI_*.h files to your include paths.
  3. Include ForceSeatMI_Loader.c file in your project. This file contains implementation of all ForceSeatMI functions (from ForceSeatMI_Functions.h). It forwards function calls to real DLL or returns error code when DLL is not found. ForceSeatMI_Loader handles also DLL loading.
  4. Compile and link the program.

ForceSeatMI_Loader uses DLL which is installed as part of the ForceSeatPM software. Make sure that you have ForceSeatPM installed on your computer.

Using API object

Typical operation routine consists of following steps:

  1. Create API handle at the begining of the application:
    api = ForceSeatMI_Create();
  2. When simulation starts, call:
    ForceSeatMI_BeginMotionControl(api);
  3. The SIM should send telemetry data or positioning data in constant interval using one of following functions:
    ForceSeatMI_SendTelemetry(api, ...);
    ForceSeatMI_SendTopTablePosLog(api, ...);
    ForceSeatMI_SendTopTablePosPhy(api, ...);
    ForceSeatMI_SendTopTableMatrixPhy(api, ...);
    ForceSeatMI_SendTactileFeedbackEffects(...);
     
  4. When simulation stops, send:
    ForceSeatMI_EndMotionControl(api);
  5. Finally when the API is no longer needed, release it:
    ForceSeatMI_Delete(api);