SHOW.c 7.55 KB
#include "SHOW.h"
void SetAlarm(int Alarmdata)
{
	agv.Public.Error_Flag |= Alarmdata;
}

void Reset_Alarm(int Alarmdata)
{
	agv.Public.Error_Flag &= ~Alarmdata;
}

bool Nsecend(u16 flicktime)
{
	static int LastTime = 0;
	static bool LEDState;
	if(agv.Public.SystemTime - LastTime > flicktime)
	{
		LastTime = agv.Public.SystemTime;
		LEDState = !LEDState;
	}
	return LEDState;
}


void LED_color(uint8_t color, u16 flicker)
{
//	color = flicker > 0 ? color*Nsecend(flicker) : color;
//	switch (color)
//	{
//	case 0://#define LED_close 0
//		Y5(!LED_ON);//LED_RED关闭
//		Y7(!LED_ON);//LED_GREEN
//		Y6(!LED_ON);
//		break;
//	case 1://#define LED_blue 1绿色
//		Y5(!LED_ON);//LED_RED
//		Y7(LED_ON);//LED_GREEN
//		Y6(!LED_ON); //LED_YELLOW
//		break;
//	case 2://#define  Blue 2黄色
//		Y5(!LED_ON);//LED_RED
//		Y7(!LED_ON);//LED_GREEN
//		Y6(LED_ON); //LED_YELLOW
//		break;
//	case 3://#define LED_red 3红色
//		Y5(LED_ON);//LED_RED
//		Y7(!LED_ON);//LED_GREEN
//		Y6(!LED_ON); //LED_YELLOW
//		break;
//	case 4:         //白色
//		Y5(LED_ON);//LED_RED
//		Y7(LED_ON);//LED_GREEN
//		Y6(LED_ON); //LED_YELLOW
//		break;
//	case 5:         //紫色
//		Y5(LED_ON);//LED_RED
//		Y7(!LED_ON);//LED_GREEN
//		Y6(LED_ON); //LED_YELLOW
//		break;
//	case 6:        //黄色
//		Y5(LED_ON);//LED_RED
//		Y7(LED_ON);//LED_GREEN
//		Y6(!LED_ON);//LED_YELLOW
//		break;
//	case 7:       //浅蓝
//		Y5(!LED_ON);//LED_RED
//		Y7(LED_ON);//LED_GREEN
//		Y6(LED_ON); //LED_YELLOW
//		break;
//	default://#define LED_close
//		Y5(!LED_ON);//LED_RED
//		Y7(!LED_ON);//LED_GREEN
//		Y6(!LED_ON); //LED_YELLOW
//		break;
//	}
}

void Laser_RosRun(u8 Data)
{
	switch (Data)//北洋激光对应25号区域
	{
		case 0://不避障
		agv.Command.Length1	 = 600;
		agv.Command.Length2	 = 500;
		agv.Command.Length3	 = 400;
		agv.Command.Width1	 = 600;
		agv.Command.Width2	 = 570;
		agv.Command.Width3	 = 550;
		break;
	case 1://中等  1500 
		agv.Command.Length1	 = 1000;
		agv.Command.Length2	 = 800;
		agv.Command.Length3	 = 600;
		agv.Command.Width1	 = 800 ;
		agv.Command.Width2	 = 800 ;
		agv.Command.Width3	 = 800 ;
		break;
	case 2://最小 、920 
		agv.Command.Length1	 = 150;
		agv.Command.Length2	 = 120;
		agv.Command.Length3	 = 100;
		agv.Command.Width1	 = 470;
		agv.Command.Width2	 = 440;
		agv.Command.Width3	 = 420;
		break;
	case 3://1200
		agv.Command.Length1	 = 1200;
		agv.Command.Length2	 = 1000;
		agv.Command.Length3	 = 800;
		agv.Command.Width1	 = 500 - agv.Command.Width4;
		agv.Command.Width2	 = 500 - agv.Command.Width4;
		agv.Command.Width3	 = 500 - agv.Command.Width4;
		break;
	case 4://1800
		agv.Command.Length1	 = 1200;
		agv.Command.Length2	 = 1000;
		agv.Command.Length3	 = 800;
		agv.Command.Width1	 = 800;
		agv.Command.Width2	 = 800;
		agv.Command.Width3	 = 800;
		break;
	case 5://2000
		agv.Command.Length1	 = 1500;
		agv.Command.Length2	 = 1100;
		agv.Command.Length3	 = 1000;
		agv.Command.Width1	 = 900 - agv.Command.Width4;
		agv.Command.Width2	 = 900 - agv.Command.Width4;
		agv.Command.Width3	 = 900 - agv.Command.Width4;
		break;
	case 6://2500
		agv.Command.Length1	 = 2000;
		agv.Command.Length2	 = 1600;
		agv.Command.Length3	 = 1200;
		agv.Command.Width1	 = 1100;
		agv.Command.Width2	 = 1100;
		agv.Command.Width3	 = 1100;
		break;
	case 7://1500-02
		agv.Command.Length1	 = 800;
		agv.Command.Length2	 = 600;
		agv.Command.Length3	 = 400;
		agv.Command.Width1	 = 800;
		agv.Command.Width2	 = 800;
		agv.Command.Width3	 = 800;
		break;
	case 8://56最大
		agv.Command.Length1	 = 0;
		agv.Command.Length2	 = 0;
		agv.Command.Length3	 = 0;
		agv.Command.Width1	 = 0;
		agv.Command.Width2	 = 0;
		agv.Command.Width3	 = 0;
		break;
	case 9:
		agv.Command.Length1	 = 0;
		agv.Command.Length2	 = 0;
		agv.Command.Length3	 = 0;
		agv.Command.Width1	 = 0;
		agv.Command.Width2	 = 0;
		agv.Command.Width3	 = 0;
		break;
	case 10://2000 de   kuwei
		agv.Command.Length1	 = 900;
		agv.Command.Length2	 = 700;
		agv.Command.Length3	 = 500;
		agv.Command.Width1	 = 800;
		agv.Command.Width2	 = 800;
		agv.Command.Width3	 = 800;
		break;
	case 11://1200   kuwei
		agv.Command.Length1	 = 800;
		agv.Command.Length2	 = 600;
		agv.Command.Length3	 = 400;
		agv.Command.Width1	 = 450;
		agv.Command.Width2	 = 450;
		agv.Command.Width3	 = 450;
		break;
	case 12:  //1800
		agv.Command.Length1	 = 800;
		agv.Command.Length2	 = 600;
		agv.Command.Length3	 = 200;
		agv.Command.Width1	 = 800;
		agv.Command.Width2	 = 800;
		agv.Command.Width3	 = 800;
		break;
	case 13://2500
		agv.Command.Length1	 = 1200;
		agv.Command.Length2	 = 1000;
		agv.Command.Length3	 = 800;
		agv.Command.Width1	 = 1000;
		agv.Command.Width2	 = 1000;
		agv.Command.Width3	 = 1000;
		break;
	case 14://1500
		agv.Command.Length1	 = 600;
		agv.Command.Length2	 = 400;
		agv.Command.Length3	 = 200;
		agv.Command.Width1	 = 800;
		agv.Command.Width2	 = 800;
		agv.Command.Width3	 = 800;
		break;
	case 15:
		agv.Command.Length1	 = 400;
		agv.Command.Length2	 = 300;
		agv.Command.Length3	 = 200;
		agv.Command.Width1	 = 200;
		agv.Command.Width2	 = 200;
		agv.Command.Width3	 = 200;
		break;
	default:
		break;
	}

}

void Laser_Run(u8 Data)
{
	switch (Data)//北洋激光对应25号区域
	{
	case 0://最大  63
		Y22(!LaserOnSig);
		Y23(!LaserOnSig);
		Y24(!LaserOnSig);
		break;
	case 1://中等  62
		Y22(LaserOnSig);
		Y23(!LaserOnSig);
		Y24(!LaserOnSig);
		break;
	case 2://最小  61
		Y22(!LaserOnSig);
		Y23(LaserOnSig);
		Y24(!LaserOnSig);
		break;
	case 3:
		Y22(!LaserOnSig);
		Y23(!LaserOnSig);
		Y24(LaserOnSig);
		break;
	case 4:
		Y22(LaserOnSig);
		Y23(LaserOnSig);
		Y24(!LaserOnSig);
		break;
	case 5:
		Y22(!LaserOnSig);
		Y23(LaserOnSig);
		Y24(!LaserOnSig);
		break;
	case 6:
		Y22(LaserOnSig);
		Y23(!LaserOnSig);
		Y24(!LaserOnSig);
		break;
	case 7:
		Y22(!LaserOnSig);
		Y23(!LaserOnSig);
		Y24(!LaserOnSig);
		break;
	case 8://56最大
		Y22(LaserOnSig);
		Y23(LaserOnSig);
		Y24(LaserOnSig);
		break;
	case 9:
		Y22(LaserOnSig);
		Y23(!LaserOnSig);
		Y24(LaserOnSig);
		break;
	case 10:
		Y22(!LaserOnSig);
		Y23(LaserOnSig);
		Y24(LaserOnSig);
		break;
	case 11:
		Y22(LaserOnSig);
		Y23(LaserOnSig);
		Y24(LaserOnSig);
		break;
	case 12:
		Y22(LaserOnSig);
		Y23(LaserOnSig);
		Y24(!LaserOnSig);
		break;
	case 13:
		Y22(!LaserOnSig);
		Y23(!LaserOnSig);
		Y24(LaserOnSig);
		break;
	case 14:
		Y22(LaserOnSig);
		Y23(!LaserOnSig);
		Y24(LaserOnSig);
		break;
	case 15:
		Y22(!LaserOnSig);
		Y23(LaserOnSig);
		Y24(LaserOnSig);
		break;
	case 16:
		Y22(LaserOnSig);
		Y23(LaserOnSig);
		Y24(LaserOnSig);
		break;
	case 17:
		Y22(LaserOnSig);
		Y23(LaserOnSig);
		Y24(!LaserOnSig);
		break;
	case 18:
		Y22(!LaserOnSig);
		Y23(!LaserOnSig);
		Y24(LaserOnSig);
		break;
	case 19:
		Y22(LaserOnSig);
		Y23(!LaserOnSig);
		Y24(LaserOnSig);
		break;
	case 20:
		Y22(!LaserOnSig);
		Y23(LaserOnSig);
		Y24(LaserOnSig);
		break;
	case 21:
		Y22(LaserOnSig);
		Y23(LaserOnSig);
		Y24(LaserOnSig);
		break;
	case 22:
		Y22(LaserOnSig);
		Y23(LaserOnSig);
		Y24(!LaserOnSig);
		break;
	case 23:
		Y22(!LaserOnSig);
		Y23(!LaserOnSig);
		Y24(LaserOnSig);
		break;
	case 24:
		Y22(LaserOnSig);
		Y23(LaserOnSig);
		Y24(LaserOnSig);
		break;
	case 25:
		Y22(!LaserOnSig);
		Y23(LaserOnSig);
		Y24(LaserOnSig);
		break;
	case 26:
		Y22(LaserOnSig);
		Y23(!LaserOnSig);
		Y24(LaserOnSig);
		break;
	case 27:
		Y22(!LaserOnSig);
		Y23(!LaserOnSig);
		Y24(LaserOnSig);
		break;
	case 28:
		Y22(LaserOnSig);
		Y23(LaserOnSig);
		Y24(!LaserOnSig);
		break;
	case 29:
		Y22(!LaserOnSig);
		Y23(LaserOnSig);
		Y24(!LaserOnSig);
		break;
	case 30:
		Y22(LaserOnSig);
		Y23(!LaserOnSig);
		Y24(!LaserOnSig);
		break;
	case 31:
		Y22(!LaserOnSig);
		Y23(!LaserOnSig);
		Y24(!LaserOnSig);
		break;
	default:
		break;
	}
}