12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- #ifndef _TASK_SCHEDULER_H
- #define _TASK_SCHEDULER_H
- #include "stdint.h"
- #ifndef TASK_MAX_POINT
- #define TASK_MAX_POINT 64
- #endif
- #ifndef TASK_MAX_TRAJECTORY
- #define TASK_MAX_TRAJECTORY 2
- #endif
- typedef struct
- {
- uint8_t x;
- uint8_t y;
- uint8_t z;
- uint8_t action;
- }point_t;
- enum
- {
- TASK_ACT_NULL = 0x00,
- TASK_ACT_PICKUP = 0x01, //托盘取货
- TASK_ACT_RELEASE = 0x02, //托盘放货
- TASK_ACT_OPEN_CHARGE = 0x03, //开始充电
- TASK_ACT_CLOSE_CHARGE = 0x04, //关闭充电
- TASK_ACT_STEER_RAMP = 0x05, //换向到坡道
- TASK_ACT_TUNNEL = 0x06, //换向到巷道
- TASK_ACT_PALLET_CAL_LIFT = 0x09, //托盘校准+托盘顶升
- TASK_ACT_ERROR = 0x0a,
- };
- enum
- {
- TASK_STATUS_NONE, /* 无任务 */
- TASK_STATUS_INIT, /* 任务待命 */
- TASK_STATUS_EXE, /* 任务执行中 */
- TASK_STATUS_PAUSE, /* 任务暂停 */
- TASK_STATUS_DONE, /* 任务完成 */
- };
- int task_add_trajectory(uint8_t id, uint8_t cnt, point_t *trajectory);
- int task_set(uint8_t id, uint8_t target_id);
- int task_get(point_t cur_point, point_t *trajectory);
- void task_set_status(uint8_t status, point_t cur_point);
- uint8_t task_get_status(void);
- uint8_t task_get_seg(void);
- uint32_t task_get_target(void);
- int task_cancel(int force);
- #endif /* _TASK_SCHEDULER_H */
|