/autokit-interface-sw

Primary LanguageTypeScriptApache License 2.0Apache-2.0

AutoKit Logo

This is the software interface for the AutoKit suite, structured as a node library.

It does not include details about the hardware, or assembly. Please refer to the parent repo for links to all relevant documentation here.

The AutoKit software interface is designed to take into account that it is comprised of hardware modules which may be added to or substituted. This project aims to provide a simple and generalized interface despite potentially different hardware implementations.

Currently, the AutoKit software interface supports:

  • Flashing of devices (either using SD card multiplexers or usbboot)
  • Controlling power to the DUT
  • Controlling the network connection of the DUT, via a Wi-FI hotspot or Ethernet connection sharing
  • Capturing video output of the DUT
  • Sending/receiving serial to/from the DUT

Installation

npm install @balena/autokit

Adding to the AutoKit software interface

The interface is divided into features, which are the pieces of functionality the kit can perform. Each feature can have multiple possible implementations, which represent potentially different hardware being used to achieve that functionality.

An implementation can be added so the kit can support a new piece of hardware, but the class used to create that implementation must have the same interface as the rest of the implementations that implement that feature.