X2 Standard  Version 1.23
X2 Standard Documentation

The X2 Standard

TheSkyX's Cross-Platform, Plug In, Device Driver Architecture

X2 Features

  • Cross-platform (Windows/Mac/Linux)
  • Based upon C++ standard. Minimum dependencies for easy portability/maintainability across operating systems.
  • Smallest possible driver footprint. Only code specific to the hardware is in the driver, helpful cross platform interfaces are supplied (see Device Driver Tool Kit).
  • Qt is NOT required. Allows third parties to develop drivers independent of any cross-platform library.
  • Suitable architecture for hardware manufacturers to rely upon for their native, device driver development.
  • Consumable from most every programming language (thin operating system specific callable layering required).
  • Architected upon the basic principles of object oriented programming namely encapsulation, polymorphism, and inheritance.
    • Inheritance is used carefully where an interface (a C++ class with one or more pure virtual functions) purposefully hides implementation from caller (TheSkyX) minimizing dependencies while focusing the interface on one task.
    • Keeps client (TheSkyX) code more managable.
  • Modular in terms of levels of support.
    • Can handle devices of a given kind with a broad range of capabilities without being plagued with a "CanXXX" for every property/method.
    • Basic or "essence" support isn't plagued/complicated by "no op" stubs that must be re-implemented for devices that don't have such a capability.
    • Flexible for adding a new capability not found in any other device in kind. Only the device with the new feature needs recompiled not all devices in kind.
      • All other devices don't have to be brought up to the same level of support.
      • Clients (TheSkyX) wanting to leverage new capability must of course be updated (recompiled) to take advantage of new capability.
  • Easy to implement features in devices not up to superset. Clients (TheSkyX) compatible with superset automatically leverage new capability.
  • Shows/provides a way (means) to evolve.
  • Not a native "discovery" methodology (but discovery standard could be accommodated).
  • Supports control of an open-ended number of devices (coming to TheSkyX) along with their persistence .

Introduction

One of the main goals of the X2 standard is to make it possible and easy for third parties to write and maintain their own hardware drivers compatible with TheSkyX on all operating systems it supports. In addition, the X2 standard is by nature extensible, that is, it can grow at the optional, interface level without all drivers or clients needing to be simultaneously brought up to the same level or even recompiled for that matter.

How to Write a TheSkyX Driver

Installing Your X2 Driver

Change Log

X2 Examples
(C) Software Bisque, Inc. All rights reserved.