/* --- Generated by genom 3.1. Do not edit ------------------------------ */
/*
 * Copyright (c) 2015-2018, 2021-2023, 2025-2026 LAAS/CNRS
 * All rights reserved.
 *
 * Redistribution and use  in source  and binary  forms,  with or without
 * modification, are permitted provided that the following conditions are
 * met:
 *
 *   1. Redistributions of  source  code must retain the  above copyright
 *      notice and this list of conditions.
 *   2. Redistributions in binary form must reproduce the above copyright
 *      notice and  this list of  conditions in the  documentation and/or
 *      other materials provided with the distribution.
 *
 *                                      Anthony Mallet on Thu May 31 2018
 */

#ifndef H_UAVPOS_CLIENT
#define H_UAVPOS_CLIENT

#include "genom3/c/client.h"


/* --- Interface types ----------------------------------------------------- */

#include <stdint.h>
#include <stdbool.h>
#include "genom3/c/idlsequence.h"
#include "genom3/c/context.h"

#ifndef _genom_state_stats_c_type
# define _genom_state_stats_c_type
typedef struct genom_state_stats genom_state_stats;
#endif /* _genom_state_stats_c_type */

#ifndef _genom_state_stats_definition_c_type
# define _genom_state_stats_definition_c_type
struct genom_state_stats {
 float last;
 float max;
 float avg;
};
#endif /* _genom_state_stats_definition_c_type */

#ifndef _genom_state_rusage_c_type
# define _genom_state_rusage_c_type
typedef struct genom_state_rusage genom_state_rusage;
#endif /* _genom_state_rusage_c_type */

#ifndef _genom_state_rusage_definition_c_type
# define _genom_state_rusage_definition_c_type
struct genom_state_rusage {
 uint32_t cycles;
 genom_state_stats timings;
 genom_state_stats load;
};
#endif /* _genom_state_rusage_definition_c_type */

#ifndef _genom_state_activity_c_type
# define _genom_state_activity_c_type
typedef struct genom_state_activity genom_state_activity;
#endif /* _genom_state_activity_c_type */

#ifndef _genom_state_activity_definition_c_type
# define _genom_state_activity_definition_c_type
struct genom_state_activity {
 uint32_t id;
 char name[64];
};
#endif /* _genom_state_activity_definition_c_type */

#ifndef _sequence_genom_state_activity_c_type
# define _sequence_genom_state_activity_c_type
typedef struct sequence_genom_state_activity {
  uint32_t _maximum, _length;
  genom_state_activity *_buffer;
  void (*_release)(void *_buffer);
} sequence_genom_state_activity;
#endif /* _sequence_genom_state_activity_c_type */

#ifndef _genom_state_task_c_type
# define _genom_state_task_c_type
typedef struct genom_state_task genom_state_task;
#endif /* _genom_state_task_c_type */

#ifndef _sequence_genom_state_activity_c_type
# define _sequence_genom_state_activity_c_type
typedef struct sequence_genom_state_activity {
  uint32_t _maximum, _length;
  genom_state_activity *_buffer;
  void (*_release)(void *_buffer);
} sequence_genom_state_activity;
#endif /* _sequence_genom_state_activity_c_type */

#ifndef _genom_state_task_definition_c_type
# define _genom_state_task_definition_c_type
struct genom_state_task {
 char name[64];
 genom_state_rusage rusage;
 sequence_genom_state_activity activity;
};
#endif /* _genom_state_task_definition_c_type */

#ifndef _sequence_genom_state_task_c_type
# define _sequence_genom_state_task_c_type
typedef struct sequence_genom_state_task {
  uint32_t _maximum, _length;
  genom_state_task *_buffer;
  void (*_release)(void *_buffer);
} sequence_genom_state_task;
#endif /* _sequence_genom_state_task_c_type */

#ifndef _genom_state_component_c_type
# define _genom_state_component_c_type
typedef struct genom_state_component genom_state_component;
#endif /* _genom_state_component_c_type */

#ifndef _sequence_genom_state_task_c_type
# define _sequence_genom_state_task_c_type
typedef struct sequence_genom_state_task {
  uint32_t _maximum, _length;
  genom_state_task *_buffer;
  void (*_release)(void *_buffer);
} sequence_genom_state_task;
#endif /* _sequence_genom_state_task_c_type */

#ifndef _genom_state_component_definition_c_type
# define _genom_state_component_definition_c_type
struct genom_state_component {
 sequence_genom_state_task task;
 char digest[33];
 char date[31];
 char version[32];
};
#endif /* _genom_state_component_definition_c_type */

#ifndef _or_time_ts_c_type
# define _or_time_ts_c_type
typedef struct or_time_ts or_time_ts;
#endif /* _or_time_ts_c_type */

#ifndef _or_time_ts_definition_c_type
# define _or_time_ts_definition_c_type
struct or_time_ts {
 int32_t sec;
 int32_t nsec;
};
#endif /* _or_time_ts_definition_c_type */

#ifndef _or_rb3d_force_c_type
# define _or_rb3d_force_c_type
typedef struct or_rb3d_force or_rb3d_force;
#endif /* _or_rb3d_force_c_type */

#ifndef _or_rb3d_force_definition_c_type
# define _or_rb3d_force_definition_c_type
struct or_rb3d_force {
 double x;
 double y;
 double z;
};
#endif /* _or_rb3d_force_definition_c_type */

#ifndef _optional_or_rb3d_force_c_type
# define _optional_or_rb3d_force_c_type
typedef struct optional_or_rb3d_force {
  bool _present;
  or_rb3d_force _value;
} optional_or_rb3d_force;
#endif /* _optional_or_rb3d_force_c_type */

#ifndef _or_t3d_att_c_type
# define _or_t3d_att_c_type
typedef struct or_t3d_att or_t3d_att;
#endif /* _or_t3d_att_c_type */

#ifndef _or_t3d_att_definition_c_type
# define _or_t3d_att_definition_c_type
struct or_t3d_att {
 double qw;
 double qx;
 double qy;
 double qz;
};
#endif /* _or_t3d_att_definition_c_type */

#ifndef _optional_or_t3d_att_c_type
# define _optional_or_t3d_att_c_type
typedef struct optional_or_t3d_att {
  bool _present;
  or_t3d_att _value;
} optional_or_t3d_att;
#endif /* _optional_or_t3d_att_c_type */

#ifndef _or_t3d_avel_c_type
# define _or_t3d_avel_c_type
typedef struct or_t3d_avel or_t3d_avel;
#endif /* _or_t3d_avel_c_type */

#ifndef _or_t3d_avel_definition_c_type
# define _or_t3d_avel_definition_c_type
struct or_t3d_avel {
 double wx;
 double wy;
 double wz;
};
#endif /* _or_t3d_avel_definition_c_type */

#ifndef _optional_or_t3d_avel_c_type
# define _optional_or_t3d_avel_c_type
typedef struct optional_or_t3d_avel {
  bool _present;
  or_t3d_avel _value;
} optional_or_t3d_avel;
#endif /* _optional_or_t3d_avel_c_type */

#ifndef _or_t3d_aacc_c_type
# define _or_t3d_aacc_c_type
typedef struct or_t3d_aacc or_t3d_aacc;
#endif /* _or_t3d_aacc_c_type */

#ifndef _or_t3d_aacc_definition_c_type
# define _or_t3d_aacc_definition_c_type
struct or_t3d_aacc {
 double awx;
 double awy;
 double awz;
};
#endif /* _or_t3d_aacc_definition_c_type */

#ifndef _optional_or_t3d_aacc_c_type
# define _optional_or_t3d_aacc_c_type
typedef struct optional_or_t3d_aacc {
  bool _present;
  or_t3d_aacc _value;
} optional_or_t3d_aacc;
#endif /* _optional_or_t3d_aacc_c_type */

#ifndef _or_uav_input_c_type
# define _or_uav_input_c_type
typedef struct or_uav_input or_uav_input;
#endif /* _or_uav_input_c_type */

#ifndef _optional_or_rb3d_force_c_type
# define _optional_or_rb3d_force_c_type
typedef struct optional_or_rb3d_force {
  bool _present;
  or_rb3d_force _value;
} optional_or_rb3d_force;
#endif /* _optional_or_rb3d_force_c_type */

#ifndef _optional_or_t3d_att_c_type
# define _optional_or_t3d_att_c_type
typedef struct optional_or_t3d_att {
  bool _present;
  or_t3d_att _value;
} optional_or_t3d_att;
#endif /* _optional_or_t3d_att_c_type */

#ifndef _optional_or_t3d_avel_c_type
# define _optional_or_t3d_avel_c_type
typedef struct optional_or_t3d_avel {
  bool _present;
  or_t3d_avel _value;
} optional_or_t3d_avel;
#endif /* _optional_or_t3d_avel_c_type */

#ifndef _optional_or_t3d_aacc_c_type
# define _optional_or_t3d_aacc_c_type
typedef struct optional_or_t3d_aacc {
  bool _present;
  or_t3d_aacc _value;
} optional_or_t3d_aacc;
#endif /* _optional_or_t3d_aacc_c_type */

#ifndef _or_uav_input_definition_c_type
# define _or_uav_input_definition_c_type
struct or_uav_input {
 or_time_ts ts;
 bool intrinsic;
 optional_or_rb3d_force thrust;
 optional_or_t3d_att att;
 optional_or_t3d_avel avel;
 optional_or_t3d_aacc aacc;
};
#endif /* _or_uav_input_definition_c_type */

#ifndef _or_rb3d_force_cov_c_type
# define _or_rb3d_force_cov_c_type
typedef struct or_rb3d_force_cov or_rb3d_force_cov;
#endif /* _or_rb3d_force_cov_c_type */

#ifndef _or_rb3d_force_cov_definition_c_type
# define _or_rb3d_force_cov_definition_c_type
struct or_rb3d_force_cov {
 double cov[6];
};
#endif /* _or_rb3d_force_cov_definition_c_type */

#ifndef _optional_or_rb3d_force_cov_c_type
# define _optional_or_rb3d_force_cov_c_type
typedef struct optional_or_rb3d_force_cov {
  bool _present;
  or_rb3d_force_cov _value;
} optional_or_rb3d_force_cov;
#endif /* _optional_or_rb3d_force_cov_c_type */

#ifndef _or_rb3d_torque_c_type
# define _or_rb3d_torque_c_type
typedef struct or_rb3d_torque or_rb3d_torque;
#endif /* _or_rb3d_torque_c_type */

#ifndef _or_rb3d_torque_definition_c_type
# define _or_rb3d_torque_definition_c_type
struct or_rb3d_torque {
 double x;
 double y;
 double z;
};
#endif /* _or_rb3d_torque_definition_c_type */

#ifndef _optional_or_rb3d_torque_c_type
# define _optional_or_rb3d_torque_c_type
typedef struct optional_or_rb3d_torque {
  bool _present;
  or_rb3d_torque _value;
} optional_or_rb3d_torque;
#endif /* _optional_or_rb3d_torque_c_type */

#ifndef _or_rb3d_torque_cov_c_type
# define _or_rb3d_torque_cov_c_type
typedef struct or_rb3d_torque_cov or_rb3d_torque_cov;
#endif /* _or_rb3d_torque_cov_c_type */

#ifndef _or_rb3d_torque_cov_definition_c_type
# define _or_rb3d_torque_cov_definition_c_type
struct or_rb3d_torque_cov {
 double cov[6];
};
#endif /* _or_rb3d_torque_cov_definition_c_type */

#ifndef _optional_or_rb3d_torque_cov_c_type
# define _optional_or_rb3d_torque_cov_c_type
typedef struct optional_or_rb3d_torque_cov {
  bool _present;
  or_rb3d_torque_cov _value;
} optional_or_rb3d_torque_cov;
#endif /* _optional_or_rb3d_torque_cov_c_type */

#ifndef _or_wrench_estimator_state_c_type
# define _or_wrench_estimator_state_c_type
typedef struct or_wrench_estimator_state or_wrench_estimator_state;
#endif /* _or_wrench_estimator_state_c_type */

#ifndef _optional_or_rb3d_force_c_type
# define _optional_or_rb3d_force_c_type
typedef struct optional_or_rb3d_force {
  bool _present;
  or_rb3d_force _value;
} optional_or_rb3d_force;
#endif /* _optional_or_rb3d_force_c_type */

#ifndef _optional_or_rb3d_force_cov_c_type
# define _optional_or_rb3d_force_cov_c_type
typedef struct optional_or_rb3d_force_cov {
  bool _present;
  or_rb3d_force_cov _value;
} optional_or_rb3d_force_cov;
#endif /* _optional_or_rb3d_force_cov_c_type */

#ifndef _optional_or_rb3d_torque_c_type
# define _optional_or_rb3d_torque_c_type
typedef struct optional_or_rb3d_torque {
  bool _present;
  or_rb3d_torque _value;
} optional_or_rb3d_torque;
#endif /* _optional_or_rb3d_torque_c_type */

#ifndef _optional_or_rb3d_torque_cov_c_type
# define _optional_or_rb3d_torque_cov_c_type
typedef struct optional_or_rb3d_torque_cov {
  bool _present;
  or_rb3d_torque_cov _value;
} optional_or_rb3d_torque_cov;
#endif /* _optional_or_rb3d_torque_cov_c_type */

#ifndef _or_wrench_estimator_state_definition_c_type
# define _or_wrench_estimator_state_definition_c_type
struct or_wrench_estimator_state {
 or_time_ts ts;
 bool intrinsic;
 optional_or_rb3d_force force;
 optional_or_rb3d_force_cov force_cov;
 optional_or_rb3d_torque torque;
 optional_or_rb3d_torque_cov torque_cov;
};
#endif /* _or_wrench_estimator_state_definition_c_type */

#ifndef _or_t3d_pos_c_type
# define _or_t3d_pos_c_type
typedef struct or_t3d_pos or_t3d_pos;
#endif /* _or_t3d_pos_c_type */

#ifndef _or_t3d_pos_definition_c_type
# define _or_t3d_pos_definition_c_type
struct or_t3d_pos {
 double x;
 double y;
 double z;
};
#endif /* _or_t3d_pos_definition_c_type */

#ifndef _optional_or_t3d_pos_c_type
# define _optional_or_t3d_pos_c_type
typedef struct optional_or_t3d_pos {
  bool _present;
  or_t3d_pos _value;
} optional_or_t3d_pos;
#endif /* _optional_or_t3d_pos_c_type */

#ifndef _or_t3d_vel_c_type
# define _or_t3d_vel_c_type
typedef struct or_t3d_vel or_t3d_vel;
#endif /* _or_t3d_vel_c_type */

#ifndef _or_t3d_vel_definition_c_type
# define _or_t3d_vel_definition_c_type
struct or_t3d_vel {
 double vx;
 double vy;
 double vz;
};
#endif /* _or_t3d_vel_definition_c_type */

#ifndef _optional_or_t3d_vel_c_type
# define _optional_or_t3d_vel_c_type
typedef struct optional_or_t3d_vel {
  bool _present;
  or_t3d_vel _value;
} optional_or_t3d_vel;
#endif /* _optional_or_t3d_vel_c_type */

#ifndef _or_t3d_acc_c_type
# define _or_t3d_acc_c_type
typedef struct or_t3d_acc or_t3d_acc;
#endif /* _or_t3d_acc_c_type */

#ifndef _or_t3d_acc_definition_c_type
# define _or_t3d_acc_definition_c_type
struct or_t3d_acc {
 double ax;
 double ay;
 double az;
};
#endif /* _or_t3d_acc_definition_c_type */

#ifndef _optional_or_t3d_acc_c_type
# define _optional_or_t3d_acc_c_type
typedef struct optional_or_t3d_acc {
  bool _present;
  or_t3d_acc _value;
} optional_or_t3d_acc;
#endif /* _optional_or_t3d_acc_c_type */

#ifndef _or_t3d_pos_cov_c_type
# define _or_t3d_pos_cov_c_type
typedef struct or_t3d_pos_cov or_t3d_pos_cov;
#endif /* _or_t3d_pos_cov_c_type */

#ifndef _or_t3d_pos_cov_definition_c_type
# define _or_t3d_pos_cov_definition_c_type
struct or_t3d_pos_cov {
 double cov[6];
};
#endif /* _or_t3d_pos_cov_definition_c_type */

#ifndef _optional_or_t3d_pos_cov_c_type
# define _optional_or_t3d_pos_cov_c_type
typedef struct optional_or_t3d_pos_cov {
  bool _present;
  or_t3d_pos_cov _value;
} optional_or_t3d_pos_cov;
#endif /* _optional_or_t3d_pos_cov_c_type */

#ifndef _or_t3d_att_cov_c_type
# define _or_t3d_att_cov_c_type
typedef struct or_t3d_att_cov or_t3d_att_cov;
#endif /* _or_t3d_att_cov_c_type */

#ifndef _or_t3d_att_cov_definition_c_type
# define _or_t3d_att_cov_definition_c_type
struct or_t3d_att_cov {
 double cov[10];
};
#endif /* _or_t3d_att_cov_definition_c_type */

#ifndef _optional_or_t3d_att_cov_c_type
# define _optional_or_t3d_att_cov_c_type
typedef struct optional_or_t3d_att_cov {
  bool _present;
  or_t3d_att_cov _value;
} optional_or_t3d_att_cov;
#endif /* _optional_or_t3d_att_cov_c_type */

#ifndef _or_t3d_att_pos_cov_c_type
# define _or_t3d_att_pos_cov_c_type
typedef struct or_t3d_att_pos_cov or_t3d_att_pos_cov;
#endif /* _or_t3d_att_pos_cov_c_type */

#ifndef _or_t3d_att_pos_cov_definition_c_type
# define _or_t3d_att_pos_cov_definition_c_type
struct or_t3d_att_pos_cov {
 double cov[12];
};
#endif /* _or_t3d_att_pos_cov_definition_c_type */

#ifndef _optional_or_t3d_att_pos_cov_c_type
# define _optional_or_t3d_att_pos_cov_c_type
typedef struct optional_or_t3d_att_pos_cov {
  bool _present;
  or_t3d_att_pos_cov _value;
} optional_or_t3d_att_pos_cov;
#endif /* _optional_or_t3d_att_pos_cov_c_type */

#ifndef _or_t3d_vel_cov_c_type
# define _or_t3d_vel_cov_c_type
typedef struct or_t3d_vel_cov or_t3d_vel_cov;
#endif /* _or_t3d_vel_cov_c_type */

#ifndef _or_t3d_vel_cov_definition_c_type
# define _or_t3d_vel_cov_definition_c_type
struct or_t3d_vel_cov {
 double cov[6];
};
#endif /* _or_t3d_vel_cov_definition_c_type */

#ifndef _optional_or_t3d_vel_cov_c_type
# define _optional_or_t3d_vel_cov_c_type
typedef struct optional_or_t3d_vel_cov {
  bool _present;
  or_t3d_vel_cov _value;
} optional_or_t3d_vel_cov;
#endif /* _optional_or_t3d_vel_cov_c_type */

#ifndef _or_t3d_avel_cov_c_type
# define _or_t3d_avel_cov_c_type
typedef struct or_t3d_avel_cov or_t3d_avel_cov;
#endif /* _or_t3d_avel_cov_c_type */

#ifndef _or_t3d_avel_cov_definition_c_type
# define _or_t3d_avel_cov_definition_c_type
struct or_t3d_avel_cov {
 double cov[6];
};
#endif /* _or_t3d_avel_cov_definition_c_type */

#ifndef _optional_or_t3d_avel_cov_c_type
# define _optional_or_t3d_avel_cov_c_type
typedef struct optional_or_t3d_avel_cov {
  bool _present;
  or_t3d_avel_cov _value;
} optional_or_t3d_avel_cov;
#endif /* _optional_or_t3d_avel_cov_c_type */

#ifndef _or_t3d_acc_cov_c_type
# define _or_t3d_acc_cov_c_type
typedef struct or_t3d_acc_cov or_t3d_acc_cov;
#endif /* _or_t3d_acc_cov_c_type */

#ifndef _or_t3d_acc_cov_definition_c_type
# define _or_t3d_acc_cov_definition_c_type
struct or_t3d_acc_cov {
 double cov[6];
};
#endif /* _or_t3d_acc_cov_definition_c_type */

#ifndef _optional_or_t3d_acc_cov_c_type
# define _optional_or_t3d_acc_cov_c_type
typedef struct optional_or_t3d_acc_cov {
  bool _present;
  or_t3d_acc_cov _value;
} optional_or_t3d_acc_cov;
#endif /* _optional_or_t3d_acc_cov_c_type */

#ifndef _or_t3d_aacc_cov_c_type
# define _or_t3d_aacc_cov_c_type
typedef struct or_t3d_aacc_cov or_t3d_aacc_cov;
#endif /* _or_t3d_aacc_cov_c_type */

#ifndef _or_t3d_aacc_cov_definition_c_type
# define _or_t3d_aacc_cov_definition_c_type
struct or_t3d_aacc_cov {
 double cov[6];
};
#endif /* _or_t3d_aacc_cov_definition_c_type */

#ifndef _optional_or_t3d_aacc_cov_c_type
# define _optional_or_t3d_aacc_cov_c_type
typedef struct optional_or_t3d_aacc_cov {
  bool _present;
  or_t3d_aacc_cov _value;
} optional_or_t3d_aacc_cov;
#endif /* _optional_or_t3d_aacc_cov_c_type */

#ifndef _or_pose_estimator_state_c_type
# define _or_pose_estimator_state_c_type
typedef struct or_pose_estimator_state or_pose_estimator_state;
#endif /* _or_pose_estimator_state_c_type */

#ifndef _optional_or_t3d_pos_c_type
# define _optional_or_t3d_pos_c_type
typedef struct optional_or_t3d_pos {
  bool _present;
  or_t3d_pos _value;
} optional_or_t3d_pos;
#endif /* _optional_or_t3d_pos_c_type */

#ifndef _optional_or_t3d_att_c_type
# define _optional_or_t3d_att_c_type
typedef struct optional_or_t3d_att {
  bool _present;
  or_t3d_att _value;
} optional_or_t3d_att;
#endif /* _optional_or_t3d_att_c_type */

#ifndef _optional_or_t3d_vel_c_type
# define _optional_or_t3d_vel_c_type
typedef struct optional_or_t3d_vel {
  bool _present;
  or_t3d_vel _value;
} optional_or_t3d_vel;
#endif /* _optional_or_t3d_vel_c_type */

#ifndef _optional_or_t3d_avel_c_type
# define _optional_or_t3d_avel_c_type
typedef struct optional_or_t3d_avel {
  bool _present;
  or_t3d_avel _value;
} optional_or_t3d_avel;
#endif /* _optional_or_t3d_avel_c_type */

#ifndef _optional_or_t3d_acc_c_type
# define _optional_or_t3d_acc_c_type
typedef struct optional_or_t3d_acc {
  bool _present;
  or_t3d_acc _value;
} optional_or_t3d_acc;
#endif /* _optional_or_t3d_acc_c_type */

#ifndef _optional_or_t3d_aacc_c_type
# define _optional_or_t3d_aacc_c_type
typedef struct optional_or_t3d_aacc {
  bool _present;
  or_t3d_aacc _value;
} optional_or_t3d_aacc;
#endif /* _optional_or_t3d_aacc_c_type */

#ifndef _optional_or_t3d_pos_cov_c_type
# define _optional_or_t3d_pos_cov_c_type
typedef struct optional_or_t3d_pos_cov {
  bool _present;
  or_t3d_pos_cov _value;
} optional_or_t3d_pos_cov;
#endif /* _optional_or_t3d_pos_cov_c_type */

#ifndef _optional_or_t3d_att_cov_c_type
# define _optional_or_t3d_att_cov_c_type
typedef struct optional_or_t3d_att_cov {
  bool _present;
  or_t3d_att_cov _value;
} optional_or_t3d_att_cov;
#endif /* _optional_or_t3d_att_cov_c_type */

#ifndef _optional_or_t3d_att_pos_cov_c_type
# define _optional_or_t3d_att_pos_cov_c_type
typedef struct optional_or_t3d_att_pos_cov {
  bool _present;
  or_t3d_att_pos_cov _value;
} optional_or_t3d_att_pos_cov;
#endif /* _optional_or_t3d_att_pos_cov_c_type */

#ifndef _optional_or_t3d_vel_cov_c_type
# define _optional_or_t3d_vel_cov_c_type
typedef struct optional_or_t3d_vel_cov {
  bool _present;
  or_t3d_vel_cov _value;
} optional_or_t3d_vel_cov;
#endif /* _optional_or_t3d_vel_cov_c_type */

#ifndef _optional_or_t3d_avel_cov_c_type
# define _optional_or_t3d_avel_cov_c_type
typedef struct optional_or_t3d_avel_cov {
  bool _present;
  or_t3d_avel_cov _value;
} optional_or_t3d_avel_cov;
#endif /* _optional_or_t3d_avel_cov_c_type */

#ifndef _optional_or_t3d_acc_cov_c_type
# define _optional_or_t3d_acc_cov_c_type
typedef struct optional_or_t3d_acc_cov {
  bool _present;
  or_t3d_acc_cov _value;
} optional_or_t3d_acc_cov;
#endif /* _optional_or_t3d_acc_cov_c_type */

#ifndef _optional_or_t3d_aacc_cov_c_type
# define _optional_or_t3d_aacc_cov_c_type
typedef struct optional_or_t3d_aacc_cov {
  bool _present;
  or_t3d_aacc_cov _value;
} optional_or_t3d_aacc_cov;
#endif /* _optional_or_t3d_aacc_cov_c_type */

#ifndef _or_pose_estimator_state_definition_c_type
# define _or_pose_estimator_state_definition_c_type
struct or_pose_estimator_state {
 or_time_ts ts;
 bool intrinsic;
 optional_or_t3d_pos pos;
 optional_or_t3d_att att;
 optional_or_t3d_vel vel;
 optional_or_t3d_avel avel;
 optional_or_t3d_acc acc;
 optional_or_t3d_aacc aacc;
 optional_or_t3d_pos_cov pos_cov;
 optional_or_t3d_att_cov att_cov;
 optional_or_t3d_att_pos_cov att_pos_cov;
 optional_or_t3d_vel_cov vel_cov;
 optional_or_t3d_avel_cov avel_cov;
 optional_or_t3d_acc_cov acc_cov;
 optional_or_t3d_aacc_cov aacc_cov;
};
#endif /* _or_pose_estimator_state_definition_c_type */

#ifndef _or_t3d_jerk_c_type
# define _or_t3d_jerk_c_type
typedef struct or_t3d_jerk or_t3d_jerk;
#endif /* _or_t3d_jerk_c_type */

#ifndef _or_t3d_jerk_definition_c_type
# define _or_t3d_jerk_definition_c_type
struct or_t3d_jerk {
 double jx;
 double jy;
 double jz;
};
#endif /* _or_t3d_jerk_definition_c_type */

#ifndef _optional_or_t3d_jerk_c_type
# define _optional_or_t3d_jerk_c_type
typedef struct optional_or_t3d_jerk {
  bool _present;
  or_t3d_jerk _value;
} optional_or_t3d_jerk;
#endif /* _optional_or_t3d_jerk_c_type */

#ifndef _or_t3d_snap_c_type
# define _or_t3d_snap_c_type
typedef struct or_t3d_snap or_t3d_snap;
#endif /* _or_t3d_snap_c_type */

#ifndef _or_t3d_snap_definition_c_type
# define _or_t3d_snap_definition_c_type
struct or_t3d_snap {
 double sx;
 double sy;
 double sz;
};
#endif /* _or_t3d_snap_definition_c_type */

#ifndef _optional_or_t3d_snap_c_type
# define _optional_or_t3d_snap_c_type
typedef struct optional_or_t3d_snap {
  bool _present;
  or_t3d_snap _value;
} optional_or_t3d_snap;
#endif /* _optional_or_t3d_snap_c_type */

#ifndef _or_rigid_body_state_c_type
# define _or_rigid_body_state_c_type
typedef struct or_rigid_body_state or_rigid_body_state;
#endif /* _or_rigid_body_state_c_type */

#ifndef _optional_or_t3d_pos_c_type
# define _optional_or_t3d_pos_c_type
typedef struct optional_or_t3d_pos {
  bool _present;
  or_t3d_pos _value;
} optional_or_t3d_pos;
#endif /* _optional_or_t3d_pos_c_type */

#ifndef _optional_or_t3d_att_c_type
# define _optional_or_t3d_att_c_type
typedef struct optional_or_t3d_att {
  bool _present;
  or_t3d_att _value;
} optional_or_t3d_att;
#endif /* _optional_or_t3d_att_c_type */

#ifndef _optional_or_t3d_vel_c_type
# define _optional_or_t3d_vel_c_type
typedef struct optional_or_t3d_vel {
  bool _present;
  or_t3d_vel _value;
} optional_or_t3d_vel;
#endif /* _optional_or_t3d_vel_c_type */

#ifndef _optional_or_t3d_avel_c_type
# define _optional_or_t3d_avel_c_type
typedef struct optional_or_t3d_avel {
  bool _present;
  or_t3d_avel _value;
} optional_or_t3d_avel;
#endif /* _optional_or_t3d_avel_c_type */

#ifndef _optional_or_t3d_acc_c_type
# define _optional_or_t3d_acc_c_type
typedef struct optional_or_t3d_acc {
  bool _present;
  or_t3d_acc _value;
} optional_or_t3d_acc;
#endif /* _optional_or_t3d_acc_c_type */

#ifndef _optional_or_t3d_aacc_c_type
# define _optional_or_t3d_aacc_c_type
typedef struct optional_or_t3d_aacc {
  bool _present;
  or_t3d_aacc _value;
} optional_or_t3d_aacc;
#endif /* _optional_or_t3d_aacc_c_type */

#ifndef _optional_or_t3d_jerk_c_type
# define _optional_or_t3d_jerk_c_type
typedef struct optional_or_t3d_jerk {
  bool _present;
  or_t3d_jerk _value;
} optional_or_t3d_jerk;
#endif /* _optional_or_t3d_jerk_c_type */

#ifndef _optional_or_t3d_snap_c_type
# define _optional_or_t3d_snap_c_type
typedef struct optional_or_t3d_snap {
  bool _present;
  or_t3d_snap _value;
} optional_or_t3d_snap;
#endif /* _optional_or_t3d_snap_c_type */

#ifndef _or_rigid_body_state_definition_c_type
# define _or_rigid_body_state_definition_c_type
struct or_rigid_body_state {
 or_time_ts ts;
 bool intrinsic;
 optional_or_t3d_pos pos;
 optional_or_t3d_att att;
 optional_or_t3d_vel vel;
 optional_or_t3d_avel avel;
 optional_or_t3d_acc acc;
 optional_or_t3d_aacc aacc;
 optional_or_t3d_jerk jerk;
 optional_or_t3d_snap snap;
};
#endif /* _or_rigid_body_state_definition_c_type */

#ifndef _genom_incompatible_digest_client_digest_c_type
# define _genom_incompatible_digest_client_digest_c_type
typedef struct genom_incompatible_digest_client_digest genom_incompatible_digest_client_digest;
#endif /* _genom_incompatible_digest_client_digest_c_type */

#ifndef _genom_incompatible_digest_client_digest_definition_c_type
# define _genom_incompatible_digest_client_digest_definition_c_type
struct genom_incompatible_digest_client_digest {
 char version[32];
 char date[32];
};
#endif /* _genom_incompatible_digest_client_digest_definition_c_type */

#ifndef _genom_incompatible_digest_server_digest_c_type
# define _genom_incompatible_digest_server_digest_c_type
typedef struct genom_incompatible_digest_server_digest genom_incompatible_digest_server_digest;
#endif /* _genom_incompatible_digest_server_digest_c_type */

#ifndef _genom_incompatible_digest_server_digest_definition_c_type
# define _genom_incompatible_digest_server_digest_definition_c_type
struct genom_incompatible_digest_server_digest {
 char version[32];
 char date[32];
};
#endif /* _genom_incompatible_digest_server_digest_definition_c_type */

#ifndef _genom_incompatible_digest_c_type
# define _genom_incompatible_digest_c_type
#include "genom3/c/exception.h"
const char genom_extern_weak genom_incompatible_digest_id[] = "::genom::incompatible_digest";
typedef struct genom_incompatible_digest_detail genom_incompatible_digest_detail;
#endif /* _genom_incompatible_digest_c_type */

#ifndef _genom_incompatible_digest_definition_c_type
# define _genom_incompatible_digest_definition_c_type
struct genom_incompatible_digest_detail {
 genom_incompatible_digest_client_digest client;
 genom_incompatible_digest_server_digest server;
};
static inline genom_event
genom_incompatible_digest(const genom_incompatible_digest_detail *d, genom_context self) {
 return self->raise(genom_incompatible_digest_id, d, sizeof(*d), self);
}
#endif /* _genom_incompatible_digest_definition_c_type */

#ifndef _genom_bad_transition_c_type
# define _genom_bad_transition_c_type
#include "genom3/c/exception.h"
const char genom_extern_weak genom_bad_transition_id[] = "::genom::bad_transition";
typedef struct genom_bad_transition_detail genom_bad_transition_detail;
#endif /* _genom_bad_transition_c_type */

#ifndef _genom_bad_transition_definition_c_type
# define _genom_bad_transition_definition_c_type
struct genom_bad_transition_detail {
 char from[128];
 char to[128];
};
static inline genom_event
genom_bad_transition(const genom_bad_transition_detail *d, genom_context self) {
 return self->raise(genom_bad_transition_id, d, sizeof(*d), self);
}
#endif /* _genom_bad_transition_definition_c_type */

#ifndef _genom_interrupted_c_type
# define _genom_interrupted_c_type
#include "genom3/c/exception.h"
const char genom_extern_weak genom_interrupted_id[] = "::genom::interrupted";
typedef struct genom_interrupted_detail genom_interrupted_detail;
#endif /* _genom_interrupted_c_type */

#ifndef _genom_interrupted_definition_c_type
# define _genom_interrupted_definition_c_type
struct genom_interrupted_detail {
 char by[128];
};
static inline genom_event
genom_interrupted(const genom_interrupted_detail *d, genom_context self) {
 return self->raise(genom_interrupted_id, d, sizeof(*d), self);
}
#endif /* _genom_interrupted_definition_c_type */

#ifndef _genom_serialization_c_type
# define _genom_serialization_c_type
#include "genom3/c/exception.h"
const char genom_extern_weak genom_serialization_id[] = "::genom::serialization";
typedef void genom_serialization_detail;
#endif /* _genom_serialization_c_type */

#ifndef _genom_serialization_definition_c_type
# define _genom_serialization_definition_c_type
static inline genom_event
genom_serialization(genom_context self) {
 return self->raise(genom_serialization_id, NULL, 0, self);
}
#endif /* _genom_serialization_definition_c_type */

#ifndef _genom_too_many_activities_c_type
# define _genom_too_many_activities_c_type
#include "genom3/c/exception.h"
const char genom_extern_weak genom_too_many_activities_id[] = "::genom::too_many_activities";
typedef void genom_too_many_activities_detail;
#endif /* _genom_too_many_activities_c_type */

#ifndef _genom_too_many_activities_definition_c_type
# define _genom_too_many_activities_definition_c_type
static inline genom_event
genom_too_many_activities(genom_context self) {
 return self->raise(genom_too_many_activities_id, NULL, 0, self);
}
#endif /* _genom_too_many_activities_definition_c_type */

#ifndef _genom_disallowed_c_type
# define _genom_disallowed_c_type
#include "genom3/c/exception.h"
const char genom_extern_weak genom_disallowed_id[] = "::genom::disallowed";
typedef void genom_disallowed_detail;
#endif /* _genom_disallowed_c_type */

#ifndef _genom_disallowed_definition_c_type
# define _genom_disallowed_definition_c_type
static inline genom_event
genom_disallowed(genom_context self) {
 return self->raise(genom_disallowed_id, NULL, 0, self);
}
#endif /* _genom_disallowed_definition_c_type */

#ifndef _genom_mwerr_c_type
# define _genom_mwerr_c_type
#include "genom3/c/exception.h"
const char genom_extern_weak genom_mwerr_id[] = "::genom::mwerr";
typedef struct genom_mwerr_detail genom_mwerr_detail;
#endif /* _genom_mwerr_c_type */

#ifndef _genom_mwerr_definition_c_type
# define _genom_mwerr_definition_c_type
struct genom_mwerr_detail {
 char what[256];
};
static inline genom_event
genom_mwerr(const genom_mwerr_detail *d, genom_context self) {
 return self->raise(genom_mwerr_id, d, sizeof(*d), self);
}
#endif /* _genom_mwerr_definition_c_type */

#ifndef _genom_no_such_activity_c_type
# define _genom_no_such_activity_c_type
#include "genom3/c/exception.h"
const char genom_extern_weak genom_no_such_activity_id[] = "::genom::no_such_activity";
typedef void genom_no_such_activity_detail;
#endif /* _genom_no_such_activity_c_type */

#ifndef _genom_no_such_activity_definition_c_type
# define _genom_no_such_activity_definition_c_type
static inline genom_event
genom_no_such_activity(genom_context self) {
 return self->raise(genom_no_such_activity_id, NULL, 0, self);
}
#endif /* _genom_no_such_activity_definition_c_type */

#ifndef _genom_no_such_inport_c_type
# define _genom_no_such_inport_c_type
#include "genom3/c/exception.h"
const char genom_extern_weak genom_no_such_inport_id[] = "::genom::no_such_inport";
typedef void genom_no_such_inport_detail;
#endif /* _genom_no_such_inport_c_type */

#ifndef _genom_no_such_inport_definition_c_type
# define _genom_no_such_inport_definition_c_type
static inline genom_event
genom_no_such_inport(genom_context self) {
 return self->raise(genom_no_such_inport_id, NULL, 0, self);
}
#endif /* _genom_no_such_inport_definition_c_type */

#ifndef _genom_no_such_outport_c_type
# define _genom_no_such_outport_c_type
#include "genom3/c/exception.h"
const char genom_extern_weak genom_no_such_outport_id[] = "::genom::no_such_outport";
typedef void genom_no_such_outport_detail;
#endif /* _genom_no_such_outport_c_type */

#ifndef _genom_no_such_outport_definition_c_type
# define _genom_no_such_outport_definition_c_type
static inline genom_event
genom_no_such_outport(genom_context self) {
 return self->raise(genom_no_such_outport_id, NULL, 0, self);
}
#endif /* _genom_no_such_outport_definition_c_type */

#ifndef _genom_port_io_c_type
# define _genom_port_io_c_type
#include "genom3/c/exception.h"
const char genom_extern_weak genom_port_io_id[] = "::genom::port_io";
typedef void genom_port_io_detail;
#endif /* _genom_port_io_c_type */

#ifndef _genom_port_io_definition_c_type
# define _genom_port_io_definition_c_type
static inline genom_event
genom_port_io(genom_context self) {
 return self->raise(genom_port_io_id, NULL, 0, self);
}
#endif /* _genom_port_io_definition_c_type */

#ifndef _genom_no_such_remote_c_type
# define _genom_no_such_remote_c_type
#include "genom3/c/exception.h"
const char genom_extern_weak genom_no_such_remote_id[] = "::genom::no_such_remote";
typedef void genom_no_such_remote_detail;
#endif /* _genom_no_such_remote_c_type */

#ifndef _genom_no_such_remote_definition_c_type
# define _genom_no_such_remote_definition_c_type
static inline genom_event
genom_no_such_remote(genom_context self) {
 return self->raise(genom_no_such_remote_id, NULL, 0, self);
}
#endif /* _genom_no_such_remote_definition_c_type */

#ifndef _genom_no_such_service_c_type
# define _genom_no_such_service_c_type
#include "genom3/c/exception.h"
const char genom_extern_weak genom_no_such_service_id[] = "::genom::no_such_service";
typedef void genom_no_such_service_detail;
#endif /* _genom_no_such_service_c_type */

#ifndef _genom_no_such_service_definition_c_type
# define _genom_no_such_service_definition_c_type
static inline genom_event
genom_no_such_service(genom_context self) {
 return self->raise(genom_no_such_service_id, NULL, 0, self);
}
#endif /* _genom_no_such_service_definition_c_type */

#ifndef _genom_remote_io_c_type
# define _genom_remote_io_c_type
#include "genom3/c/exception.h"
const char genom_extern_weak genom_remote_io_id[] = "::genom::remote_io";
typedef void genom_remote_io_detail;
#endif /* _genom_remote_io_c_type */

#ifndef _genom_remote_io_definition_c_type
# define _genom_remote_io_definition_c_type
static inline genom_event
genom_remote_io(genom_context self) {
 return self->raise(genom_remote_io_id, NULL, 0, self);
}
#endif /* _genom_remote_io_definition_c_type */

#ifndef _uavpos_ids_servo_s_sat_s_c_type
# define _uavpos_ids_servo_s_sat_s_c_type
typedef struct uavpos_ids_servo_s_sat_s uavpos_ids_servo_s_sat_s;
#endif /* _uavpos_ids_servo_s_sat_s_c_type */

#ifndef _uavpos_ids_servo_s_sat_s_definition_c_type
# define _uavpos_ids_servo_s_sat_s_definition_c_type
struct uavpos_ids_servo_s_sat_s {
 double x;
 double v;
 double ix;
};
#endif /* _uavpos_ids_servo_s_sat_s_definition_c_type */

#ifndef _uavpos_ids_servo_s_gain_s_c_type
# define _uavpos_ids_servo_s_gain_s_c_type
typedef struct uavpos_ids_servo_s_gain_s uavpos_ids_servo_s_gain_s;
#endif /* _uavpos_ids_servo_s_gain_s_c_type */

#ifndef _uavpos_ids_servo_s_gain_s_definition_c_type
# define _uavpos_ids_servo_s_gain_s_definition_c_type
struct uavpos_ids_servo_s_gain_s {
 double Kpxy;
 double Kpz;
 double Kvxy;
 double Kvz;
 double Kixy;
 double Kiz;
};
#endif /* _uavpos_ids_servo_s_gain_s_definition_c_type */

#ifndef _uavpos_ids_servo_s_emerg_s_c_type
# define _uavpos_ids_servo_s_emerg_s_c_type
typedef struct uavpos_ids_servo_s_emerg_s uavpos_ids_servo_s_emerg_s;
#endif /* _uavpos_ids_servo_s_emerg_s_c_type */

#ifndef _uavpos_ids_servo_s_emerg_s_definition_c_type
# define _uavpos_ids_servo_s_emerg_s_definition_c_type
struct uavpos_ids_servo_s_emerg_s {
 double descent;
 double dx;
 double dv;
};
#endif /* _uavpos_ids_servo_s_emerg_s_definition_c_type */

#ifndef _uavpos_ids_servo_s_c_type
# define _uavpos_ids_servo_s_c_type
typedef struct uavpos_ids_servo_s uavpos_ids_servo_s;
#endif /* _uavpos_ids_servo_s_c_type */

#ifndef _uavpos_ids_servo_s_definition_c_type
# define _uavpos_ids_servo_s_definition_c_type
struct uavpos_ids_servo_s {
 uavpos_ids_servo_s_sat_s sat;
 uavpos_ids_servo_s_gain_s gain;
 uavpos_ids_servo_s_emerg_s emerg;
};
#endif /* _uavpos_ids_servo_s_definition_c_type */

#ifndef _uavpos_ids_body_s_c_type
# define _uavpos_ids_body_s_c_type
typedef struct uavpos_ids_body_s uavpos_ids_body_s;
#endif /* _uavpos_ids_body_s_c_type */

#ifndef _uavpos_ids_body_s_definition_c_type
# define _uavpos_ids_body_s_definition_c_type
struct uavpos_ids_body_s {
 double mass;
 double rxy;
};
#endif /* _uavpos_ids_body_s_definition_c_type */

#ifndef _uavpos_e_input_c_type
# define _uavpos_e_input_c_type
#include "genom3/c/exception.h"
const char genom_extern_weak uavpos_e_input_id[] = "::uavpos::e_input";
typedef void uavpos_e_input_detail;
#endif /* _uavpos_e_input_c_type */

#ifndef _uavpos_e_input_definition_c_type
# define _uavpos_e_input_definition_c_type
static inline genom_event
uavpos_e_input(genom_context self) {
 return self->raise(uavpos_e_input_id, NULL, 0, self);
}
#endif /* _uavpos_e_input_definition_c_type */

#ifndef _uavpos_e_sys_c_type
# define _uavpos_e_sys_c_type
#include "genom3/c/exception.h"
const char genom_extern_weak uavpos_e_sys_id[] = "::uavpos::e_sys";
typedef struct uavpos_e_sys_detail uavpos_e_sys_detail;
#endif /* _uavpos_e_sys_c_type */

#ifndef _uavpos_e_sys_definition_c_type
# define _uavpos_e_sys_definition_c_type
struct uavpos_e_sys_detail {
 int16_t code;
 char what[128];
};
static inline genom_event
uavpos_e_sys(const uavpos_e_sys_detail *d, genom_context self) {
 return self->raise(uavpos_e_sys_id, d, sizeof(*d), self);
}
#endif /* _uavpos_e_sys_definition_c_type */



/* --- Service input and output structures --------------------------------- */


/* input of abort_activity */
struct genom_uavpos_abort_activity_input {
  uint32_t activity;
};

/* output of abort_activity */
struct genom_uavpos_abort_activity_output {
};


/* input of connect_port */
struct genom_uavpos_connect_port_input {
  char local[128];
  char remote[128];
};

/* output of connect_port */
struct genom_uavpos_connect_port_output {
};


/* input of connect_service */
struct genom_uavpos_connect_service_input {
  char local[128];
  char remote[128];
};

/* output of connect_service */
struct genom_uavpos_connect_service_output {
};


/* input of kill */
struct genom_uavpos_kill_input {
};

/* output of kill */
struct genom_uavpos_kill_output {
};


/* input of set_saturation */
struct genom_uavpos_set_saturation_input {
  uavpos_ids_servo_s_sat_s sat;
};

/* output of set_saturation */
struct genom_uavpos_set_saturation_output {
};


/* input of set_servo_gain */
struct genom_uavpos_set_servo_gain_input {
  uavpos_ids_servo_s_gain_s gain;
};

/* output of set_servo_gain */
struct genom_uavpos_set_servo_gain_output {
};


/* input of set_mass */
struct genom_uavpos_set_mass_input {
  double mass;
};

/* output of set_mass */
struct genom_uavpos_set_mass_output {
};


/* input of set_xyradius */
struct genom_uavpos_set_xyradius_input {
  double rxy;
};

/* output of set_xyradius */
struct genom_uavpos_set_xyradius_output {
};


/* input of set_emerg */
struct genom_uavpos_set_emerg_input {
  uavpos_ids_servo_s_emerg_s emerg;
};

/* output of set_emerg */
struct genom_uavpos_set_emerg_output {
};


/* input of get_servo_parameters */
struct genom_uavpos_get_servo_parameters_input {
};

/* output of get_servo_parameters */
struct genom_uavpos_get_servo_parameters_output {
  uavpos_ids_servo_s servo;
};


/* input of get_body_parameters */
struct genom_uavpos_get_body_parameters_input {
};

/* output of get_body_parameters */
struct genom_uavpos_get_body_parameters_output {
  uavpos_ids_body_s body;
};


/* input of get_reference */
struct genom_uavpos_get_reference_input {
};

/* output of get_reference */
struct genom_uavpos_get_reference_output {
  or_rigid_body_state reference;
};


/* input of servo */
struct genom_uavpos_servo_input {
};

/* output of servo */
struct genom_uavpos_servo_output {
};


/* input of set_state */
struct genom_uavpos_set_state_input {
  or_t3d_pos pos;
  or_t3d_att att;
  or_t3d_vel vel;
  or_t3d_avel avel;
  or_t3d_acc acc;
  or_t3d_aacc aacc;
  or_t3d_jerk jerk;
  or_t3d_snap snap;
};

/* output of set_state */
struct genom_uavpos_set_state_output {
};


/* input of set_position */
struct genom_uavpos_set_position_input {
  double x;
  double y;
  double z;
  double yaw;
};

/* output of set_position */
struct genom_uavpos_set_position_output {
};


/* input of set_current_position */
struct genom_uavpos_set_current_position_input {
};

/* output of set_current_position */
struct genom_uavpos_set_current_position_output {
};


/* input of set_velocity */
struct genom_uavpos_set_velocity_input {
  double x;
  double y;
  double z;
  double yaw;
};

/* output of set_velocity */
struct genom_uavpos_set_velocity_output {
};


/* input of hover */
struct genom_uavpos_hover_input {
};

/* output of hover */
struct genom_uavpos_hover_output {
};


/* input of reset */
struct genom_uavpos_reset_input {
};

/* output of reset */
struct genom_uavpos_reset_output {
};


/* input of log */
struct genom_uavpos_log_input {
  char path[64];
  uint32_t decimation;
};

/* output of log */
struct genom_uavpos_log_output {
};


/* input of log_stop */
struct genom_uavpos_log_stop_input {
};

/* output of log_stop */
struct genom_uavpos_log_stop_output {
};


/* input of log_info */
struct genom_uavpos_log_info_input {
};

/* output of log_info */
struct genom_uavpos_log_info_output {
  uint32_t miss;
  uint32_t total;
};



#ifdef __cplusplus
extern "C" {
#endif

/* --- Services ------------------------------------------------------------ */

genom_client		genom_uavpos_client_init(int argc, char *argv[],
                                genom_event *ex, const void **exdetail);
void			genom_uavpos_client_fini(genom_client h);
genom_context		genom_uavpos_client_context(genom_client h);
const char *		genom_uavpos_client_instance(genom_client h);
int			genom_uavpos_client_eventfd(genom_client h);
const struct genom_service_info *
			genom_uavpos_client_service_info(genom_client h,
				int rqstid);
int			genom_uavpos_client_done(genom_client h, int rqstid);
genom_event		genom_uavpos_client_wait(genom_client h, int rqstid);
genom_event		genom_uavpos_client_result(genom_client h,
                                int rqstid, genom_event *report, void **output,
                                void **exdetail);
genom_event		genom_uavpos_client_clean(genom_client h,
				int rqstid);
genom_event		genom_uavpos_client_abort(genom_client h,
                                int rqstid);
genom_event		genom_uavpos_client_doevents(genom_client h);
char *			genom_uavpos_client_json_error(genom_client h,
				genom_event e, const void *detail);

/* abort_activity */
typedef void (*uavpos_abort_activity_cb)(
  genom_client h,
  int rqstid,
  int done,
  genom_event report,
  struct genom_uavpos_abort_activity_output *out,
  const void *exdetail,
  void *cb_data);

genom_event genom_uavpos_client_abort_activity_rqst(
  genom_client h,
  const struct genom_uavpos_abort_activity_input *in,
  uavpos_abort_activity_cb sentcb, uavpos_abort_activity_cb donecb,
  void *cb_data, int *rqstid);

genom_event genom_uavpos_client_abort_activity_result(
  genom_client h, int rqstid, genom_event *report,
  struct genom_uavpos_abort_activity_output **out,
  void **exdetail);

void	genom_uavpos_client_abort_activity_init_input(
  struct genom_uavpos_abort_activity_input *input);
void	genom_uavpos_client_abort_activity_init_output(
  struct genom_uavpos_abort_activity_output *output);
void	genom_uavpos_client_abort_activity_fini_input(
  struct genom_uavpos_abort_activity_input *input);
void	genom_uavpos_client_abort_activity_fini_output(
  struct genom_uavpos_abort_activity_output *output);

int	genom_uavpos_client_abort_activity_json_scan(
  struct genom_uavpos_abort_activity_input *in,
  const char *json, char **endptr);
int	genom_uavpos_client_abort_activity_json_print(
  char **json, const struct genom_uavpos_abort_activity_output *out);

/* connect_port */
typedef void (*uavpos_connect_port_cb)(
  genom_client h,
  int rqstid,
  int done,
  genom_event report,
  struct genom_uavpos_connect_port_output *out,
  const void *exdetail,
  void *cb_data);

genom_event genom_uavpos_client_connect_port_rqst(
  genom_client h,
  const struct genom_uavpos_connect_port_input *in,
  uavpos_connect_port_cb sentcb, uavpos_connect_port_cb donecb,
  void *cb_data, int *rqstid);

genom_event genom_uavpos_client_connect_port_result(
  genom_client h, int rqstid, genom_event *report,
  struct genom_uavpos_connect_port_output **out,
  void **exdetail);

void	genom_uavpos_client_connect_port_init_input(
  struct genom_uavpos_connect_port_input *input);
void	genom_uavpos_client_connect_port_init_output(
  struct genom_uavpos_connect_port_output *output);
void	genom_uavpos_client_connect_port_fini_input(
  struct genom_uavpos_connect_port_input *input);
void	genom_uavpos_client_connect_port_fini_output(
  struct genom_uavpos_connect_port_output *output);

int	genom_uavpos_client_connect_port_json_scan(
  struct genom_uavpos_connect_port_input *in,
  const char *json, char **endptr);
int	genom_uavpos_client_connect_port_json_print(
  char **json, const struct genom_uavpos_connect_port_output *out);

/* connect_service */
typedef void (*uavpos_connect_service_cb)(
  genom_client h,
  int rqstid,
  int done,
  genom_event report,
  struct genom_uavpos_connect_service_output *out,
  const void *exdetail,
  void *cb_data);

genom_event genom_uavpos_client_connect_service_rqst(
  genom_client h,
  const struct genom_uavpos_connect_service_input *in,
  uavpos_connect_service_cb sentcb, uavpos_connect_service_cb donecb,
  void *cb_data, int *rqstid);

genom_event genom_uavpos_client_connect_service_result(
  genom_client h, int rqstid, genom_event *report,
  struct genom_uavpos_connect_service_output **out,
  void **exdetail);

void	genom_uavpos_client_connect_service_init_input(
  struct genom_uavpos_connect_service_input *input);
void	genom_uavpos_client_connect_service_init_output(
  struct genom_uavpos_connect_service_output *output);
void	genom_uavpos_client_connect_service_fini_input(
  struct genom_uavpos_connect_service_input *input);
void	genom_uavpos_client_connect_service_fini_output(
  struct genom_uavpos_connect_service_output *output);

int	genom_uavpos_client_connect_service_json_scan(
  struct genom_uavpos_connect_service_input *in,
  const char *json, char **endptr);
int	genom_uavpos_client_connect_service_json_print(
  char **json, const struct genom_uavpos_connect_service_output *out);

/* kill */
typedef void (*uavpos_kill_cb)(
  genom_client h,
  int rqstid,
  int done,
  genom_event report,
  struct genom_uavpos_kill_output *out,
  const void *exdetail,
  void *cb_data);

genom_event genom_uavpos_client_kill_rqst(
  genom_client h,
  const struct genom_uavpos_kill_input *in,
  uavpos_kill_cb sentcb, uavpos_kill_cb donecb,
  void *cb_data, int *rqstid);

genom_event genom_uavpos_client_kill_result(
  genom_client h, int rqstid, genom_event *report,
  struct genom_uavpos_kill_output **out,
  void **exdetail);

void	genom_uavpos_client_kill_init_input(
  struct genom_uavpos_kill_input *input);
void	genom_uavpos_client_kill_init_output(
  struct genom_uavpos_kill_output *output);
void	genom_uavpos_client_kill_fini_input(
  struct genom_uavpos_kill_input *input);
void	genom_uavpos_client_kill_fini_output(
  struct genom_uavpos_kill_output *output);

int	genom_uavpos_client_kill_json_scan(
  struct genom_uavpos_kill_input *in,
  const char *json, char **endptr);
int	genom_uavpos_client_kill_json_print(
  char **json, const struct genom_uavpos_kill_output *out);

/* set_saturation */
typedef void (*uavpos_set_saturation_cb)(
  genom_client h,
  int rqstid,
  int done,
  genom_event report,
  struct genom_uavpos_set_saturation_output *out,
  const void *exdetail,
  void *cb_data);

genom_event genom_uavpos_client_set_saturation_rqst(
  genom_client h,
  const struct genom_uavpos_set_saturation_input *in,
  uavpos_set_saturation_cb sentcb, uavpos_set_saturation_cb donecb,
  void *cb_data, int *rqstid);

genom_event genom_uavpos_client_set_saturation_result(
  genom_client h, int rqstid, genom_event *report,
  struct genom_uavpos_set_saturation_output **out,
  void **exdetail);

void	genom_uavpos_client_set_saturation_init_input(
  struct genom_uavpos_set_saturation_input *input);
void	genom_uavpos_client_set_saturation_init_output(
  struct genom_uavpos_set_saturation_output *output);
void	genom_uavpos_client_set_saturation_fini_input(
  struct genom_uavpos_set_saturation_input *input);
void	genom_uavpos_client_set_saturation_fini_output(
  struct genom_uavpos_set_saturation_output *output);

int	genom_uavpos_client_set_saturation_json_scan(
  struct genom_uavpos_set_saturation_input *in,
  const char *json, char **endptr);
int	genom_uavpos_client_set_saturation_json_print(
  char **json, const struct genom_uavpos_set_saturation_output *out);

/* set_servo_gain */
typedef void (*uavpos_set_servo_gain_cb)(
  genom_client h,
  int rqstid,
  int done,
  genom_event report,
  struct genom_uavpos_set_servo_gain_output *out,
  const void *exdetail,
  void *cb_data);

genom_event genom_uavpos_client_set_servo_gain_rqst(
  genom_client h,
  const struct genom_uavpos_set_servo_gain_input *in,
  uavpos_set_servo_gain_cb sentcb, uavpos_set_servo_gain_cb donecb,
  void *cb_data, int *rqstid);

genom_event genom_uavpos_client_set_servo_gain_result(
  genom_client h, int rqstid, genom_event *report,
  struct genom_uavpos_set_servo_gain_output **out,
  void **exdetail);

void	genom_uavpos_client_set_servo_gain_init_input(
  struct genom_uavpos_set_servo_gain_input *input);
void	genom_uavpos_client_set_servo_gain_init_output(
  struct genom_uavpos_set_servo_gain_output *output);
void	genom_uavpos_client_set_servo_gain_fini_input(
  struct genom_uavpos_set_servo_gain_input *input);
void	genom_uavpos_client_set_servo_gain_fini_output(
  struct genom_uavpos_set_servo_gain_output *output);

int	genom_uavpos_client_set_servo_gain_json_scan(
  struct genom_uavpos_set_servo_gain_input *in,
  const char *json, char **endptr);
int	genom_uavpos_client_set_servo_gain_json_print(
  char **json, const struct genom_uavpos_set_servo_gain_output *out);

/* set_mass */
typedef void (*uavpos_set_mass_cb)(
  genom_client h,
  int rqstid,
  int done,
  genom_event report,
  struct genom_uavpos_set_mass_output *out,
  const void *exdetail,
  void *cb_data);

genom_event genom_uavpos_client_set_mass_rqst(
  genom_client h,
  const struct genom_uavpos_set_mass_input *in,
  uavpos_set_mass_cb sentcb, uavpos_set_mass_cb donecb,
  void *cb_data, int *rqstid);

genom_event genom_uavpos_client_set_mass_result(
  genom_client h, int rqstid, genom_event *report,
  struct genom_uavpos_set_mass_output **out,
  void **exdetail);

void	genom_uavpos_client_set_mass_init_input(
  struct genom_uavpos_set_mass_input *input);
void	genom_uavpos_client_set_mass_init_output(
  struct genom_uavpos_set_mass_output *output);
void	genom_uavpos_client_set_mass_fini_input(
  struct genom_uavpos_set_mass_input *input);
void	genom_uavpos_client_set_mass_fini_output(
  struct genom_uavpos_set_mass_output *output);

int	genom_uavpos_client_set_mass_json_scan(
  struct genom_uavpos_set_mass_input *in,
  const char *json, char **endptr);
int	genom_uavpos_client_set_mass_json_print(
  char **json, const struct genom_uavpos_set_mass_output *out);

/* set_xyradius */
typedef void (*uavpos_set_xyradius_cb)(
  genom_client h,
  int rqstid,
  int done,
  genom_event report,
  struct genom_uavpos_set_xyradius_output *out,
  const void *exdetail,
  void *cb_data);

genom_event genom_uavpos_client_set_xyradius_rqst(
  genom_client h,
  const struct genom_uavpos_set_xyradius_input *in,
  uavpos_set_xyradius_cb sentcb, uavpos_set_xyradius_cb donecb,
  void *cb_data, int *rqstid);

genom_event genom_uavpos_client_set_xyradius_result(
  genom_client h, int rqstid, genom_event *report,
  struct genom_uavpos_set_xyradius_output **out,
  void **exdetail);

void	genom_uavpos_client_set_xyradius_init_input(
  struct genom_uavpos_set_xyradius_input *input);
void	genom_uavpos_client_set_xyradius_init_output(
  struct genom_uavpos_set_xyradius_output *output);
void	genom_uavpos_client_set_xyradius_fini_input(
  struct genom_uavpos_set_xyradius_input *input);
void	genom_uavpos_client_set_xyradius_fini_output(
  struct genom_uavpos_set_xyradius_output *output);

int	genom_uavpos_client_set_xyradius_json_scan(
  struct genom_uavpos_set_xyradius_input *in,
  const char *json, char **endptr);
int	genom_uavpos_client_set_xyradius_json_print(
  char **json, const struct genom_uavpos_set_xyradius_output *out);

/* set_emerg */
typedef void (*uavpos_set_emerg_cb)(
  genom_client h,
  int rqstid,
  int done,
  genom_event report,
  struct genom_uavpos_set_emerg_output *out,
  const void *exdetail,
  void *cb_data);

genom_event genom_uavpos_client_set_emerg_rqst(
  genom_client h,
  const struct genom_uavpos_set_emerg_input *in,
  uavpos_set_emerg_cb sentcb, uavpos_set_emerg_cb donecb,
  void *cb_data, int *rqstid);

genom_event genom_uavpos_client_set_emerg_result(
  genom_client h, int rqstid, genom_event *report,
  struct genom_uavpos_set_emerg_output **out,
  void **exdetail);

void	genom_uavpos_client_set_emerg_init_input(
  struct genom_uavpos_set_emerg_input *input);
void	genom_uavpos_client_set_emerg_init_output(
  struct genom_uavpos_set_emerg_output *output);
void	genom_uavpos_client_set_emerg_fini_input(
  struct genom_uavpos_set_emerg_input *input);
void	genom_uavpos_client_set_emerg_fini_output(
  struct genom_uavpos_set_emerg_output *output);

int	genom_uavpos_client_set_emerg_json_scan(
  struct genom_uavpos_set_emerg_input *in,
  const char *json, char **endptr);
int	genom_uavpos_client_set_emerg_json_print(
  char **json, const struct genom_uavpos_set_emerg_output *out);

/* get_servo_parameters */
typedef void (*uavpos_get_servo_parameters_cb)(
  genom_client h,
  int rqstid,
  int done,
  genom_event report,
  struct genom_uavpos_get_servo_parameters_output *out,
  const void *exdetail,
  void *cb_data);

genom_event genom_uavpos_client_get_servo_parameters_rqst(
  genom_client h,
  const struct genom_uavpos_get_servo_parameters_input *in,
  uavpos_get_servo_parameters_cb sentcb, uavpos_get_servo_parameters_cb donecb,
  void *cb_data, int *rqstid);

genom_event genom_uavpos_client_get_servo_parameters_result(
  genom_client h, int rqstid, genom_event *report,
  struct genom_uavpos_get_servo_parameters_output **out,
  void **exdetail);

void	genom_uavpos_client_get_servo_parameters_init_input(
  struct genom_uavpos_get_servo_parameters_input *input);
void	genom_uavpos_client_get_servo_parameters_init_output(
  struct genom_uavpos_get_servo_parameters_output *output);
void	genom_uavpos_client_get_servo_parameters_fini_input(
  struct genom_uavpos_get_servo_parameters_input *input);
void	genom_uavpos_client_get_servo_parameters_fini_output(
  struct genom_uavpos_get_servo_parameters_output *output);

int	genom_uavpos_client_get_servo_parameters_json_scan(
  struct genom_uavpos_get_servo_parameters_input *in,
  const char *json, char **endptr);
int	genom_uavpos_client_get_servo_parameters_json_print(
  char **json, const struct genom_uavpos_get_servo_parameters_output *out);

/* get_body_parameters */
typedef void (*uavpos_get_body_parameters_cb)(
  genom_client h,
  int rqstid,
  int done,
  genom_event report,
  struct genom_uavpos_get_body_parameters_output *out,
  const void *exdetail,
  void *cb_data);

genom_event genom_uavpos_client_get_body_parameters_rqst(
  genom_client h,
  const struct genom_uavpos_get_body_parameters_input *in,
  uavpos_get_body_parameters_cb sentcb, uavpos_get_body_parameters_cb donecb,
  void *cb_data, int *rqstid);

genom_event genom_uavpos_client_get_body_parameters_result(
  genom_client h, int rqstid, genom_event *report,
  struct genom_uavpos_get_body_parameters_output **out,
  void **exdetail);

void	genom_uavpos_client_get_body_parameters_init_input(
  struct genom_uavpos_get_body_parameters_input *input);
void	genom_uavpos_client_get_body_parameters_init_output(
  struct genom_uavpos_get_body_parameters_output *output);
void	genom_uavpos_client_get_body_parameters_fini_input(
  struct genom_uavpos_get_body_parameters_input *input);
void	genom_uavpos_client_get_body_parameters_fini_output(
  struct genom_uavpos_get_body_parameters_output *output);

int	genom_uavpos_client_get_body_parameters_json_scan(
  struct genom_uavpos_get_body_parameters_input *in,
  const char *json, char **endptr);
int	genom_uavpos_client_get_body_parameters_json_print(
  char **json, const struct genom_uavpos_get_body_parameters_output *out);

/* get_reference */
typedef void (*uavpos_get_reference_cb)(
  genom_client h,
  int rqstid,
  int done,
  genom_event report,
  struct genom_uavpos_get_reference_output *out,
  const void *exdetail,
  void *cb_data);

genom_event genom_uavpos_client_get_reference_rqst(
  genom_client h,
  const struct genom_uavpos_get_reference_input *in,
  uavpos_get_reference_cb sentcb, uavpos_get_reference_cb donecb,
  void *cb_data, int *rqstid);

genom_event genom_uavpos_client_get_reference_result(
  genom_client h, int rqstid, genom_event *report,
  struct genom_uavpos_get_reference_output **out,
  void **exdetail);

void	genom_uavpos_client_get_reference_init_input(
  struct genom_uavpos_get_reference_input *input);
void	genom_uavpos_client_get_reference_init_output(
  struct genom_uavpos_get_reference_output *output);
void	genom_uavpos_client_get_reference_fini_input(
  struct genom_uavpos_get_reference_input *input);
void	genom_uavpos_client_get_reference_fini_output(
  struct genom_uavpos_get_reference_output *output);

int	genom_uavpos_client_get_reference_json_scan(
  struct genom_uavpos_get_reference_input *in,
  const char *json, char **endptr);
int	genom_uavpos_client_get_reference_json_print(
  char **json, const struct genom_uavpos_get_reference_output *out);

/* servo */
typedef void (*uavpos_servo_cb)(
  genom_client h,
  int rqstid,
  int done,
  genom_event report,
  struct genom_uavpos_servo_output *out,
  const void *exdetail,
  void *cb_data);

genom_event genom_uavpos_client_servo_rqst(
  genom_client h,
  const struct genom_uavpos_servo_input *in,
  uavpos_servo_cb sentcb, uavpos_servo_cb donecb,
  void *cb_data, int *rqstid);

genom_event genom_uavpos_client_servo_result(
  genom_client h, int rqstid, genom_event *report,
  struct genom_uavpos_servo_output **out,
  void **exdetail);

void	genom_uavpos_client_servo_init_input(
  struct genom_uavpos_servo_input *input);
void	genom_uavpos_client_servo_init_output(
  struct genom_uavpos_servo_output *output);
void	genom_uavpos_client_servo_fini_input(
  struct genom_uavpos_servo_input *input);
void	genom_uavpos_client_servo_fini_output(
  struct genom_uavpos_servo_output *output);

int	genom_uavpos_client_servo_json_scan(
  struct genom_uavpos_servo_input *in,
  const char *json, char **endptr);
int	genom_uavpos_client_servo_json_print(
  char **json, const struct genom_uavpos_servo_output *out);

/* set_state */
typedef void (*uavpos_set_state_cb)(
  genom_client h,
  int rqstid,
  int done,
  genom_event report,
  struct genom_uavpos_set_state_output *out,
  const void *exdetail,
  void *cb_data);

genom_event genom_uavpos_client_set_state_rqst(
  genom_client h,
  const struct genom_uavpos_set_state_input *in,
  uavpos_set_state_cb sentcb, uavpos_set_state_cb donecb,
  void *cb_data, int *rqstid);

genom_event genom_uavpos_client_set_state_result(
  genom_client h, int rqstid, genom_event *report,
  struct genom_uavpos_set_state_output **out,
  void **exdetail);

void	genom_uavpos_client_set_state_init_input(
  struct genom_uavpos_set_state_input *input);
void	genom_uavpos_client_set_state_init_output(
  struct genom_uavpos_set_state_output *output);
void	genom_uavpos_client_set_state_fini_input(
  struct genom_uavpos_set_state_input *input);
void	genom_uavpos_client_set_state_fini_output(
  struct genom_uavpos_set_state_output *output);

int	genom_uavpos_client_set_state_json_scan(
  struct genom_uavpos_set_state_input *in,
  const char *json, char **endptr);
int	genom_uavpos_client_set_state_json_print(
  char **json, const struct genom_uavpos_set_state_output *out);

/* set_position */
typedef void (*uavpos_set_position_cb)(
  genom_client h,
  int rqstid,
  int done,
  genom_event report,
  struct genom_uavpos_set_position_output *out,
  const void *exdetail,
  void *cb_data);

genom_event genom_uavpos_client_set_position_rqst(
  genom_client h,
  const struct genom_uavpos_set_position_input *in,
  uavpos_set_position_cb sentcb, uavpos_set_position_cb donecb,
  void *cb_data, int *rqstid);

genom_event genom_uavpos_client_set_position_result(
  genom_client h, int rqstid, genom_event *report,
  struct genom_uavpos_set_position_output **out,
  void **exdetail);

void	genom_uavpos_client_set_position_init_input(
  struct genom_uavpos_set_position_input *input);
void	genom_uavpos_client_set_position_init_output(
  struct genom_uavpos_set_position_output *output);
void	genom_uavpos_client_set_position_fini_input(
  struct genom_uavpos_set_position_input *input);
void	genom_uavpos_client_set_position_fini_output(
  struct genom_uavpos_set_position_output *output);

int	genom_uavpos_client_set_position_json_scan(
  struct genom_uavpos_set_position_input *in,
  const char *json, char **endptr);
int	genom_uavpos_client_set_position_json_print(
  char **json, const struct genom_uavpos_set_position_output *out);

/* set_current_position */
typedef void (*uavpos_set_current_position_cb)(
  genom_client h,
  int rqstid,
  int done,
  genom_event report,
  struct genom_uavpos_set_current_position_output *out,
  const void *exdetail,
  void *cb_data);

genom_event genom_uavpos_client_set_current_position_rqst(
  genom_client h,
  const struct genom_uavpos_set_current_position_input *in,
  uavpos_set_current_position_cb sentcb, uavpos_set_current_position_cb donecb,
  void *cb_data, int *rqstid);

genom_event genom_uavpos_client_set_current_position_result(
  genom_client h, int rqstid, genom_event *report,
  struct genom_uavpos_set_current_position_output **out,
  void **exdetail);

void	genom_uavpos_client_set_current_position_init_input(
  struct genom_uavpos_set_current_position_input *input);
void	genom_uavpos_client_set_current_position_init_output(
  struct genom_uavpos_set_current_position_output *output);
void	genom_uavpos_client_set_current_position_fini_input(
  struct genom_uavpos_set_current_position_input *input);
void	genom_uavpos_client_set_current_position_fini_output(
  struct genom_uavpos_set_current_position_output *output);

int	genom_uavpos_client_set_current_position_json_scan(
  struct genom_uavpos_set_current_position_input *in,
  const char *json, char **endptr);
int	genom_uavpos_client_set_current_position_json_print(
  char **json, const struct genom_uavpos_set_current_position_output *out);

/* set_velocity */
typedef void (*uavpos_set_velocity_cb)(
  genom_client h,
  int rqstid,
  int done,
  genom_event report,
  struct genom_uavpos_set_velocity_output *out,
  const void *exdetail,
  void *cb_data);

genom_event genom_uavpos_client_set_velocity_rqst(
  genom_client h,
  const struct genom_uavpos_set_velocity_input *in,
  uavpos_set_velocity_cb sentcb, uavpos_set_velocity_cb donecb,
  void *cb_data, int *rqstid);

genom_event genom_uavpos_client_set_velocity_result(
  genom_client h, int rqstid, genom_event *report,
  struct genom_uavpos_set_velocity_output **out,
  void **exdetail);

void	genom_uavpos_client_set_velocity_init_input(
  struct genom_uavpos_set_velocity_input *input);
void	genom_uavpos_client_set_velocity_init_output(
  struct genom_uavpos_set_velocity_output *output);
void	genom_uavpos_client_set_velocity_fini_input(
  struct genom_uavpos_set_velocity_input *input);
void	genom_uavpos_client_set_velocity_fini_output(
  struct genom_uavpos_set_velocity_output *output);

int	genom_uavpos_client_set_velocity_json_scan(
  struct genom_uavpos_set_velocity_input *in,
  const char *json, char **endptr);
int	genom_uavpos_client_set_velocity_json_print(
  char **json, const struct genom_uavpos_set_velocity_output *out);

/* hover */
typedef void (*uavpos_hover_cb)(
  genom_client h,
  int rqstid,
  int done,
  genom_event report,
  struct genom_uavpos_hover_output *out,
  const void *exdetail,
  void *cb_data);

genom_event genom_uavpos_client_hover_rqst(
  genom_client h,
  const struct genom_uavpos_hover_input *in,
  uavpos_hover_cb sentcb, uavpos_hover_cb donecb,
  void *cb_data, int *rqstid);

genom_event genom_uavpos_client_hover_result(
  genom_client h, int rqstid, genom_event *report,
  struct genom_uavpos_hover_output **out,
  void **exdetail);

void	genom_uavpos_client_hover_init_input(
  struct genom_uavpos_hover_input *input);
void	genom_uavpos_client_hover_init_output(
  struct genom_uavpos_hover_output *output);
void	genom_uavpos_client_hover_fini_input(
  struct genom_uavpos_hover_input *input);
void	genom_uavpos_client_hover_fini_output(
  struct genom_uavpos_hover_output *output);

int	genom_uavpos_client_hover_json_scan(
  struct genom_uavpos_hover_input *in,
  const char *json, char **endptr);
int	genom_uavpos_client_hover_json_print(
  char **json, const struct genom_uavpos_hover_output *out);

/* reset */
typedef void (*uavpos_reset_cb)(
  genom_client h,
  int rqstid,
  int done,
  genom_event report,
  struct genom_uavpos_reset_output *out,
  const void *exdetail,
  void *cb_data);

genom_event genom_uavpos_client_reset_rqst(
  genom_client h,
  const struct genom_uavpos_reset_input *in,
  uavpos_reset_cb sentcb, uavpos_reset_cb donecb,
  void *cb_data, int *rqstid);

genom_event genom_uavpos_client_reset_result(
  genom_client h, int rqstid, genom_event *report,
  struct genom_uavpos_reset_output **out,
  void **exdetail);

void	genom_uavpos_client_reset_init_input(
  struct genom_uavpos_reset_input *input);
void	genom_uavpos_client_reset_init_output(
  struct genom_uavpos_reset_output *output);
void	genom_uavpos_client_reset_fini_input(
  struct genom_uavpos_reset_input *input);
void	genom_uavpos_client_reset_fini_output(
  struct genom_uavpos_reset_output *output);

int	genom_uavpos_client_reset_json_scan(
  struct genom_uavpos_reset_input *in,
  const char *json, char **endptr);
int	genom_uavpos_client_reset_json_print(
  char **json, const struct genom_uavpos_reset_output *out);

/* log */
typedef void (*uavpos_log_cb)(
  genom_client h,
  int rqstid,
  int done,
  genom_event report,
  struct genom_uavpos_log_output *out,
  const void *exdetail,
  void *cb_data);

genom_event genom_uavpos_client_log_rqst(
  genom_client h,
  const struct genom_uavpos_log_input *in,
  uavpos_log_cb sentcb, uavpos_log_cb donecb,
  void *cb_data, int *rqstid);

genom_event genom_uavpos_client_log_result(
  genom_client h, int rqstid, genom_event *report,
  struct genom_uavpos_log_output **out,
  void **exdetail);

void	genom_uavpos_client_log_init_input(
  struct genom_uavpos_log_input *input);
void	genom_uavpos_client_log_init_output(
  struct genom_uavpos_log_output *output);
void	genom_uavpos_client_log_fini_input(
  struct genom_uavpos_log_input *input);
void	genom_uavpos_client_log_fini_output(
  struct genom_uavpos_log_output *output);

int	genom_uavpos_client_log_json_scan(
  struct genom_uavpos_log_input *in,
  const char *json, char **endptr);
int	genom_uavpos_client_log_json_print(
  char **json, const struct genom_uavpos_log_output *out);

/* log_stop */
typedef void (*uavpos_log_stop_cb)(
  genom_client h,
  int rqstid,
  int done,
  genom_event report,
  struct genom_uavpos_log_stop_output *out,
  const void *exdetail,
  void *cb_data);

genom_event genom_uavpos_client_log_stop_rqst(
  genom_client h,
  const struct genom_uavpos_log_stop_input *in,
  uavpos_log_stop_cb sentcb, uavpos_log_stop_cb donecb,
  void *cb_data, int *rqstid);

genom_event genom_uavpos_client_log_stop_result(
  genom_client h, int rqstid, genom_event *report,
  struct genom_uavpos_log_stop_output **out,
  void **exdetail);

void	genom_uavpos_client_log_stop_init_input(
  struct genom_uavpos_log_stop_input *input);
void	genom_uavpos_client_log_stop_init_output(
  struct genom_uavpos_log_stop_output *output);
void	genom_uavpos_client_log_stop_fini_input(
  struct genom_uavpos_log_stop_input *input);
void	genom_uavpos_client_log_stop_fini_output(
  struct genom_uavpos_log_stop_output *output);

int	genom_uavpos_client_log_stop_json_scan(
  struct genom_uavpos_log_stop_input *in,
  const char *json, char **endptr);
int	genom_uavpos_client_log_stop_json_print(
  char **json, const struct genom_uavpos_log_stop_output *out);

/* log_info */
typedef void (*uavpos_log_info_cb)(
  genom_client h,
  int rqstid,
  int done,
  genom_event report,
  struct genom_uavpos_log_info_output *out,
  const void *exdetail,
  void *cb_data);

genom_event genom_uavpos_client_log_info_rqst(
  genom_client h,
  const struct genom_uavpos_log_info_input *in,
  uavpos_log_info_cb sentcb, uavpos_log_info_cb donecb,
  void *cb_data, int *rqstid);

genom_event genom_uavpos_client_log_info_result(
  genom_client h, int rqstid, genom_event *report,
  struct genom_uavpos_log_info_output **out,
  void **exdetail);

void	genom_uavpos_client_log_info_init_input(
  struct genom_uavpos_log_info_input *input);
void	genom_uavpos_client_log_info_init_output(
  struct genom_uavpos_log_info_output *output);
void	genom_uavpos_client_log_info_fini_input(
  struct genom_uavpos_log_info_input *input);
void	genom_uavpos_client_log_info_fini_output(
  struct genom_uavpos_log_info_output *output);

int	genom_uavpos_client_log_info_json_scan(
  struct genom_uavpos_log_info_input *in,
  const char *json, char **endptr);
int	genom_uavpos_client_log_info_json_print(
  char **json, const struct genom_uavpos_log_info_output *out);



/* --- Ports --------------------------------------------------------------- */

/* genom_state */
#line 78 "/opt/openrobots/share/genom/templates/common/genom.gen"
genom_state_component *
  genom_uavpos_client_genom_state_data(
    genom_client h
  );
#line 78 "/opt/openrobots/share/genom/templates/common/genom.gen"
genom_event genom_uavpos_client_genom_state_read(
  genom_client h,
  genom_state_component *data);
#line 78 "/opt/openrobots/share/genom/templates/common/genom.gen"
genom_event genom_uavpos_client_genom_state_port(
  genom_client h,
  genom_state_component *data)
  __attribute__((deprecated(
                   "use genom_uavpos_client_genom_state_read instead")));

/* uav_input */
#line 41 "/opt/openrobots/share/idl/openrobots2-idl/or/robot/uav.gen"
or_uav_input *
  genom_uavpos_client_uav_input_data(
    genom_client h
  );
#line 41 "/opt/openrobots/share/idl/openrobots2-idl/or/robot/uav.gen"
genom_event genom_uavpos_client_uav_input_read(
  genom_client h,
  or_uav_input *data);
#line 41 "/opt/openrobots/share/idl/openrobots2-idl/or/robot/uav.gen"
genom_event genom_uavpos_client_uav_input_port(
  genom_client h,
  or_uav_input *data)
  __attribute__((deprecated(
                   "use genom_uavpos_client_uav_input_read instead")));


/* wrench_measure */
#line 49 "/opt/openrobots/share/idl/openrobots2-idl/or/robot/uav.gen"
genom_event genom_uavpos_client_wrench_measure_open(
  genom_client h, const char *path, const char **name);
#line 49 "/opt/openrobots/share/idl/openrobots2-idl/or/robot/uav.gen"
genom_event genom_uavpos_client_wrench_measure_close(
  genom_client h, const char *name);
#line 49 "/opt/openrobots/share/idl/openrobots2-idl/or/robot/uav.gen"
or_wrench_estimator_state *
   genom_uavpos_client_wrench_measure_data(genom_client h, const char *name);
#line 49 "/opt/openrobots/share/idl/openrobots2-idl/or/robot/uav.gen"
genom_event genom_uavpos_client_wrench_measure_write(
  genom_client h, const char *name,
  const or_wrench_estimator_state *data);

/* state */
#line 33 "/local/robotpkg/var/tmp/robotpkg/motion/uavpos-genom3/work/uavpos-genom3-1.4/uavpos.gen"
genom_event genom_uavpos_client_state_open(
  genom_client h, const char *path, const char **name);
#line 33 "/local/robotpkg/var/tmp/robotpkg/motion/uavpos-genom3/work/uavpos-genom3-1.4/uavpos.gen"
genom_event genom_uavpos_client_state_close(
  genom_client h, const char *name);
#line 33 "/local/robotpkg/var/tmp/robotpkg/motion/uavpos-genom3/work/uavpos-genom3-1.4/uavpos.gen"
or_pose_estimator_state *
   genom_uavpos_client_state_data(genom_client h, const char *name);
#line 33 "/local/robotpkg/var/tmp/robotpkg/motion/uavpos-genom3/work/uavpos-genom3-1.4/uavpos.gen"
genom_event genom_uavpos_client_state_write(
  genom_client h, const char *name,
  const or_pose_estimator_state *data);

/* reference */
#line 34 "/local/robotpkg/var/tmp/robotpkg/motion/uavpos-genom3/work/uavpos-genom3-1.4/uavpos.gen"
genom_event genom_uavpos_client_reference_open(
  genom_client h, const char *path, const char **name);
#line 34 "/local/robotpkg/var/tmp/robotpkg/motion/uavpos-genom3/work/uavpos-genom3-1.4/uavpos.gen"
genom_event genom_uavpos_client_reference_close(
  genom_client h, const char *name);
#line 34 "/local/robotpkg/var/tmp/robotpkg/motion/uavpos-genom3/work/uavpos-genom3-1.4/uavpos.gen"
or_rigid_body_state *
   genom_uavpos_client_reference_data(genom_client h, const char *name);
#line 34 "/local/robotpkg/var/tmp/robotpkg/motion/uavpos-genom3/work/uavpos-genom3-1.4/uavpos.gen"
genom_event genom_uavpos_client_reference_write(
  genom_client h, const char *name,
  const or_rigid_body_state *data);


void	genom_uavpos_client_genom_state_init_data(
  genom_state_component *data);
void	genom_uavpos_client_genom_state_fini_data(
  genom_state_component *data);
int	genom_uavpos_client_genom_state_json_print(char **json,
  const genom_state_component *data);
void	genom_uavpos_client_uav_input_init_data(
  or_uav_input *data);
void	genom_uavpos_client_uav_input_fini_data(
  or_uav_input *data);
int	genom_uavpos_client_uav_input_json_print(char **json,
  const or_uav_input *data);
void	genom_uavpos_client_wrench_measure_init_data(
  or_wrench_estimator_state *data);
void	genom_uavpos_client_wrench_measure_fini_data(
  or_wrench_estimator_state *data);
int	genom_uavpos_client_wrench_measure_json_print(char **json,
  const or_wrench_estimator_state *data);
int	genom_uavpos_client_wrench_measure_json_scan(
  or_wrench_estimator_state *data,
  const char *json, char **endptr);
void	genom_uavpos_client_state_init_data(
  or_pose_estimator_state *data);
void	genom_uavpos_client_state_fini_data(
  or_pose_estimator_state *data);
int	genom_uavpos_client_state_json_print(char **json,
  const or_pose_estimator_state *data);
int	genom_uavpos_client_state_json_scan(
  or_pose_estimator_state *data,
  const char *json, char **endptr);
void	genom_uavpos_client_reference_init_data(
  or_rigid_body_state *data);
void	genom_uavpos_client_reference_fini_data(
  or_rigid_body_state *data);
int	genom_uavpos_client_reference_json_print(char **json,
  const or_rigid_body_state *data);
int	genom_uavpos_client_reference_json_scan(
  or_rigid_body_state *data,
  const char *json, char **endptr);



/* --- Data ---------------------------------------------------------------- */

extern const struct genom_client_option genom_uavpos_options[];

extern const struct genom_client_info genom_uavpos_client_info;

extern const struct genom_service_info *
			genom_uavpos_client_abort_activity_info;
extern const struct genom_service_info *
			genom_uavpos_client_connect_port_info;
extern const struct genom_service_info *
			genom_uavpos_client_connect_service_info;
extern const struct genom_service_info *
			genom_uavpos_client_kill_info;
extern const struct genom_service_info *
			genom_uavpos_client_set_saturation_info;
extern const struct genom_service_info *
			genom_uavpos_client_set_servo_gain_info;
extern const struct genom_service_info *
			genom_uavpos_client_set_mass_info;
extern const struct genom_service_info *
			genom_uavpos_client_set_xyradius_info;
extern const struct genom_service_info *
			genom_uavpos_client_set_emerg_info;
extern const struct genom_service_info *
			genom_uavpos_client_get_servo_parameters_info;
extern const struct genom_service_info *
			genom_uavpos_client_get_body_parameters_info;
extern const struct genom_service_info *
			genom_uavpos_client_get_reference_info;
extern const struct genom_service_info *
			genom_uavpos_client_servo_info;
extern const struct genom_service_info *
			genom_uavpos_client_set_state_info;
extern const struct genom_service_info *
			genom_uavpos_client_set_position_info;
extern const struct genom_service_info *
			genom_uavpos_client_set_current_position_info;
extern const struct genom_service_info *
			genom_uavpos_client_set_velocity_info;
extern const struct genom_service_info *
			genom_uavpos_client_hover_info;
extern const struct genom_service_info *
			genom_uavpos_client_reset_info;
extern const struct genom_service_info *
			genom_uavpos_client_log_info;
extern const struct genom_service_info *
			genom_uavpos_client_log_stop_info;
extern const struct genom_service_info *
			genom_uavpos_client_log_info_info;

extern const struct genom_port_info *
			genom_uavpos_client_genom_state_info;
extern const struct genom_port_info *
			genom_uavpos_client_uav_input_info;

extern const struct genom_pub_info *
			genom_uavpos_client_wrench_measure_info;
extern const struct genom_pub_info *
			genom_uavpos_client_state_info;
extern const struct genom_pub_info *
			genom_uavpos_client_reference_info;

#ifdef __cplusplus
}
#endif

#endif /* H_UAVPOS_CLIENT */
