SEDSnet 4.0.0

A memory safe, no_std-capable networking stack with routing, discovery, reliability, and Rust/C/Python bindings.
Documentation
#include "telemetry.h"
#include "sedsnet_c_wrapper.h"
#include <unistd.h>

int main(void) {
  SedsResult result = init_telemetry_router();
  if (result != SEDS_OK) {
    return (int)print_telemetry_error(result);
  }

  SedsTypeRef gps_data;
  SedsTypeRef message_data;
  result = seds_type_ref_by_name(SEDS_NAME_LITERAL("GPS_DATA"), &gps_data);
  if (result != SEDS_OK) {
    return (int)print_telemetry_error(result);
  }
  result = seds_type_ref_by_name(SEDS_NAME_LITERAL("MESSAGE_DATA"), &message_data);
  if (result != SEDS_OK) {
    return (int)print_telemetry_error(result);
  }

  const float gps[3] = {37.7749f, -122.4194f, 30.0f};
  result = log_telemetry_synchronous(gps_data, gps, 3, sizeof(gps[0]));
  if (result != SEDS_OK) {
    print_telemetry_error(result);
  }

  usleep(1000);

  result = log_telemetry_asynchronous(gps_data, gps, 3, sizeof(gps[0]));
  if (result != SEDS_OK) {
    print_telemetry_error(result);
  }

  result = log_telemetry_string_asynchronous(message_data, "hello from the async queue");
  if (result != SEDS_OK) {
    print_telemetry_error(result);
  }

  result = telemetry_periodic(20);
  if (result != SEDS_OK) {
    print_telemetry_error(result);
  }

  return 0;
}