KerbalSimpit Class Documentation

class KerbalSimpit

The KerbalSimpit class manages a serial connection to KSP.

It automates the handshaking process, and provides utility functions to encapsulate most message types in and out of the game.

Public Functions

KerbalSimpit(Stream &serial)

Default constructor.

Parameters:

serial – The serial instance this instance will use to communicate with the plugin. Usually “Serial”.

bool init()

Initialise the serial connection.

Performs handshaking with the plugin. Note that the KSPit library does not* call the begin() method on the serial object. You’ll need to ensure you’ve run Serial.begin(115200) (or similar) before calling this method.

inline bool connectedToKSP2()

See which KSP version the controller is connected to.

Can be used to adjust the controllers behaviour depending on which KSP game is played as not all features are available in both games.

Returns:

true if connected to KSP2; false if connected to KSP1 or not connected yet.

void inboundHandler(void (*messageHandler)(byte messageType, byte msg[], byte msgSize))

Specify a callback function to handle messages received from the plugin.

See also

messageHandler

Parameters:

messageHandler – The callback function.

void closeSerialConnection()

Call to request the computer closes the serial connection to this controller.

The computer will deregister all channels that this controller is subscribed to before closing the connection.

void registerChannel(byte channelID)

Subscribe to a channel of messages coming from the plugin.

This function sends a channel subscription message to the plugin, indicating that this device would like to receive messages send to a given channel. This function should only be called with an ID from the OutboundPackets enum. The IDs from the InboundPackets enum are only used when sending data to KSP and should not be registered.

Parameters:

channelID – The ID of the channel to subscribe to.

void deregisterChannel(byte channelID)

Unsubscribe from a channel of messages coming from the plugin.

This function sends a channel subscription message to the plugin, indicating that no further messages for the given channel should be sent to this device.

Parameters:

channelID – The ID of the channel to unsubscribe from.

template<typename T>
inline void send(byte messageType, T &msg)

Send a formatted KSPit packet.

Sends the given message as payload of a KSPit message.

Parameters:
  • messageType – The ID of the message channel.

  • msg – Any object to be sent. The expected object depends on the message type. No type checking is done by this library.

template<typename T>
inline void send(byte messageType, T &msg, byte msgSize)

Send a formatted KSPit packet.

Sends the given message as payload of a KSPit message.

Parameters:
  • messageType – The ID of the message channel.

  • msg – A byte array representing the message contents.

  • msgSize – The size of msg.

void update()

Regular library update function.

This function polls the serial device for new data, and performs other tasks that must be done regularly. The function should be called from an Arduino sketch loop() method.

void activateCAG(byte actiongroup)

Activate Custom Action Group.

Sends a message to activate the given Custom Action Group.

Parameters:

actiongroup – The ID of the Custom Action Group to activate.

void deactivateCAG(byte actiongroup)

Deactivate Custom Action Group.

Sends a message to deactivate the given Custom Action Group.

Parameters:

actiongroup – The ID of the Custom Action Group to deactivate.

void toggleCAG(byte actiongroup)

Toggle Custom Action Group.

Sends a message to toggle the state of the given Custom Action Group.

Parameters:

actiongroup – The ID of the Custom Action Group to toggle.

void activateAction(byte action)

Activate Action Group.

Sends a message to activate the given standard Action Group(s).

Parameters:

action – A bitfield representing one or more Action Groups to activate.

void deactivateAction(byte action)

Deactivate Action Group.

Sends a message to deactivate the given standard Action Group(s).

Parameters:

action – A bitfield representing one or more Action Groups to deactivate.

void toggleAction(byte action)

Toggle Action Group.

Sends a message to toggle the state of the given standard Action Group(s).

Parameters:

action – A bitfield representing one or more Action Groups to toggle.

void setSASMode(byte mode)

Set SAS mode Send a message to set the desired Autopilot (SAS) mode.

Parameters:

mode – The mode to set. Possible modes are listed in the AutopilotMode enum.

void requestMessageOnChannel(byte channelID)

Ask Simpit to resend a message on the given channel (useful for channels that only send on change).

When subscribing on a channel, a message is automatically sent so there is no need to call this during init. May not work on all channels.

Parameters:

channelID – The channel ID to request from (taken from the OutboundPackets enum). Use 0 as a special value for all channels

Public Members

unsigned int packetDroppedNbr

Number of message dropped due to corrupted packet (missing data or bad checksum).

This may not be accurate in all cases, some packets can be lost without being noticed here in case of extreme congestion.


This documentation was built using ArduinoDocs.