soft_payload.h 875 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #pragma once
  2. #include <stdint.h>
  3. enum
  4. {
  5. PAYLOAD_TYPE_NULL = 0, /* 空类 */
  6. PAYLOAD_TYPE_GIMBAL = 1, /* 吊舱类载荷 */
  7. PAYLOAD_TYPE_ENGINE = 2, /* 发动机类载荷 */
  8. };
  9. enum
  10. {
  11. PAYLOAD_CTL_ID_NULL = 0, /* 空指令 */
  12. PAYLOAD_CTL_ID_BACK_MID = 1, /* 云台回中 */
  13. PAYLOAD_CTL_ID_SET_PITCH = 2, /* 给定俯仰 */
  14. PAYLOAD_CTL_ID_SET_ROLL = 3, /* 给定横滚 */
  15. PAYLOAD_CTL_ID_LOCK_DOWN = 4, /* 垂直下视 */
  16. PAYLOAD_CTL_TARGET_TRACE = 5, /* 目标跟踪 */
  17. };
  18. struct targetTraceArg
  19. {
  20. float p1x;
  21. float p1y;
  22. float p2x;
  23. float p2y;
  24. };
  25. struct payloadOps
  26. {
  27. void (*init)(void *arg);
  28. void (*targetTarceCtlRecevied)(void *arg);
  29. void (*backMidCtlRecevied)(void *arg);
  30. void (*setPitchCtlRecevied)(void *arg);
  31. };
  32. struct payload
  33. {
  34. uint8_t type;
  35. struct payloadOps ops;
  36. void *data;
  37. };