Fusion Arduino SDK Event Hooks

onTelemetryUpdated

void onTelemetryUpdated(TelemetryUpdateHandler &handler);
using TelemetryUpdateHandler = void (*)(const FusionTelemetry& current);

Parameters

Name Type Required Description
current const FusionTelemetry& Yes Telemetry snapshot.

Example

void onTelemetryUpdated(const FusionTelemetry &now)
{
  fuel = static_cast(now.liquidFuelPct);
  orbital_speed = static_cast(now.orbitalSpeed);
  apoapsis = static_cast(now.apoapsis);
  periapsis = static_cast(now.periapsis);

  // Here you would normally update your display
  // or LEDs, gauges, motor drivers etc.
}

void setup()
{
  ksa.onTelemetryUpdated(onTelemetryUpdated);
}

onVehicleChanged

void onVehicleChanged(VehicleChangeHandler &handler);
using VehicleChangeHandler = void (*)(const FusionTelemetry& previous, const FusionTelemetry& current);

Parameters

Name Type Required Description
previous const FusionTelemetry& Yes Telemetry snapshot.
current const FusionTelemetry& Yes Telemetry snapshot.

Example

void onVehicleChanged(const FusionTelemetry &prev, const FusionTelemetry &now)
{
  vehicle_name = now.vesselName;
}

void setup()
{
  ksa.onVehicleChanged(onTelemetryUpdated);
}

onEngineIgnited

void onEngineIgnited(EngineIgnitedHandler &handler);
using EngineIgnitedHandler = void (*)(const FusionTelemetry& previous, const FusionTelemetry& current);

Parameters

Name Type Required Description
previous const FusionTelemetry& Yes Telemetry snapshot.
current const FusionTelemetry& Yes Telemetry snapshot.

Example

void onEngineIgnited(const FusionTelemetry &prev, const FusionTelemetry &now)
{
  // Engine ignition edge only — use for LEDs, buzzers, animations, etc.
  engine_status = now.engineIgnited ? "Ignited" : "Shutdown";
}

void setup()
{
  ksa.onEngineIgnited(onTelemetryUpdated);
}

onThrottleChanged

void onThrottleChanged(ThrottleChangeHandler &handler);
using ThrottleChangeHandler = void (*)(const FusionTelemetry& previous, const FusionTelemetry& current);

Parameters

Name Type Required Description
previous const FusionTelemetry& Yes Telemetry snapshot.
current const FusionTelemetry& Yes Telemetry snapshot.

Example

void onThrottleChanged(const FusionTelemetry &prev, const FusionTelemetry &now)
{
  throttle = static_cast(now.throttle * 100.0f);
  // We can feed back to motorized faders
}

void setup()
{
  ksa.onThrottleChanged(onTelemetryUpdated);
}