ActionCourse.h 2.65 KB
#ifndef __ACTIONCOURSE_H
#define __ACTIONCOURSE_H
#include "sys.h"
#include "my_data.h"
#include "math.h"

#include "Load.h"
#include "Charge.h"
#include "UpDown.h"
#include "Line.h"
#include "Rotation.h"
#include "Conveyor.h"
#include "Slam.h"
#include "Test.h"
#include "Task.h"
/******

*******/


#define ErrNums 3u
typedef struct {
	u8 AllAxisOK;//AllAxisOK:位0-AGV所有存在轴正常无故障;1-AGV所有存在轴都已使能;2-舵轮使能无故障且原点找到	;3-舵轮都使能无故障;4-存在轴在线
	u8 Load_Step;//Load_Step:1-50是CCD对中,51-89是SLAM对中
	u8 Type2_AdLev;//动作等级:比如调节等级	(对中/转向)+防撞等级
//	u8 Up_Step,Up_Time5Nums;
//	u8 Down_Step,Down_Time5Nums;
	u8 UpDown_Step;//UpDown_Step:1-29是上升;31-59是下降;60-89是升到任意高度
	u8 Type3_Ac;////0->无升降;1->上升到最高位;2->下降到最低位;3->升降到特定高度,且高度值明确;4->升降到特定高度,但高度值在建立任务时无法确定
	u8 Charge_Step,Charge_Time5Nums;
//	u8 ChargeAcType;//1充电,2退出充电
	u8 Line_Step,Line_Time7Nums;
	u8 GoDis_Step;
	u8 RotationSlam_Step,Rotation_Time5Nums;
	u8 RotationCCD_Step;
	u8 AxisEn_Step,Axis_No;//多轴使能时,需要对哪些轴使能操作选择用	
	u8 AllAct_Time5Nums;
//	u8 Busy;	
	u8 AllAxisResetStep;
	u8 Conveyor_Step,Conveyor_Dir;	
	u8 Task_Step;	
	u8 TaskManu_Step;	
	u8 Test_Step;	
	u8 DirGo;//AGV以车本体坐标系的具体哪个方向作为行驶方向 AGV运动方向。DirGo:1->Vx+;2->Vy+;3->Vx-;4->Vy-;
	float AngTarget;
	Str_SlamPoint CSP;//当前车中心SLam位置
	float Ang_CSAgv;//当前SLAM的中心角度
	
	u8 Status;//AGV状态 11->自动空闲;13->忙碌;14->充电中;20->手动模式
	u8 Dir;//AGV车头方向给ACS使用 	车头相对地面坐标系:1-4。1:x+;2:y+;3:x-;4:y-;
	u8 UDstatus;//升降状态:1-低位;3-高位;2-中间高度
	u8 Err[ErrNums];//错误1-3
	u32 VirCode;//虚拟码值
	u8 TaskNo[4];//任务号
//	u8 Done;//完成状态
//	u8 AxisDone;//对应轴下对应机构动作结束
	Str_TaskPoint RouteP[4];//
//	u8 LineDir;
	float RouteAngDir;//路径点方向,也是当前车行驶路线方向
	u8 Time7_NotActNums;
	u8 OtheSta;//其他。位0:0-无负载,1有负载;位1:0-任务中非最后一条任务,1是最后一条;位2:0-同任务号下第一次未走完,1走完;位3:0-任务未完成,1完成;位4:0-不忙碌,1忙碌;位5:0-无边界触发,1有边界触发;位6:1低电量标记;
	u8 OtheSta1;//其他。位0:0-不需要使用下相机,1需要;位1:0-不需要使用上相机,1需要上相机;位2:0-风扇未吹,1风扇已吹;位3:1-复位过程的所有动作暂停;位4:1-定位中参考上视觉对中;位5:有耦合机构下转盘未找打原点标记;位6:音乐切换标记;
	u8 OtheSta2;//其他。位0:AGV在路线上;位1:料台给信息;
	u8 EndP_Type1;
}Str_AgvAction;//AGV所有分解动作结构体

extern Str_AgvAction AGV;
extern Str_SlamPoint  EndPoint;
extern Str_SlamPoint  StartPoint;
extern Str_SlamPoint  StartVP;
extern Str_SlamPoint  LastEndP;//
void ActionCourse_Pro(void);
#define TpdoMauGetEn 0u


#endif