#pragma once #include enum { PAYLOAD_TYPE_NULL = 0, /* 空类 */ PAYLOAD_TYPE_GIMBAL = 1, /* 吊舱类载荷 */ PAYLOAD_TYPE_ENGINE = 2, /* 发动机类载荷 */ }; enum { PAYLOAD_CTL_ID_NULL = 0, /* 空指令 */ PAYLOAD_CTL_ID_BACK_MID = 1, /* 云台回中 */ PAYLOAD_CTL_ID_SET_PITCH = 2, /* 给定俯仰 */ PAYLOAD_CTL_ID_SET_ROLL = 3, /* 给定横滚 */ PAYLOAD_CTL_ID_LOCK_DOWN = 4, /* 垂直下视 */ PAYLOAD_CTL_TARGET_TRACE = 5, /* 目标跟踪 */ }; struct targetTraceArg { float p1x; float p1y; float p2x; float p2y; }; struct payloadOps { void (*init)(void *arg); void (*targetTarceCtlRecevied)(void *arg); void (*backMidCtlRecevied)(void *arg); void (*setPitchCtlRecevied)(void *arg); }; struct payload { uint8_t type; struct payloadOps ops; void *data; };