Ejemplo n.º 1
0
void TaskReadCanToCom(void *Tags)
{
	uint16 Length;
	uint8 i;
	Tos_ArrayMessage *CurMsg,Msg[10]; 
  CanRxMsg *RxMessage,RxMessageBuf[10];	
	for(i=0;i<10;i++)Msg[i].Qmsg_Addr=&RxMessageBuf[i];
	Tos_TaskCreateQmsg(&Msg[0],10);
	Tos_TaskGetCAN();
	CAN_SIG_Init();
	CAN_SIG_Filter_Configs();
	while(1)
	{
		//DeBug_Get();
		Tos_TaskDelay(100);
		CurMsg=Tos_TaskGetQMsg();
		if(CurMsg)
		{
			RxMessage=CurMsg->Qmsg_Addr;
			Length=ZigBee_SendMsg(&USART1_TX_Buffer[0],20,0xfe,(uint8 *)RxMessage,sizeof(CanRxMsg));
			USART1_DMAWriteDatas(&USART1_TX_Buffer[0],Length); 
		}
		LED3_ON;
		Tos_TaskDelay(10);
		LED3_OFF;
	}
}
Ejemplo n.º 2
0
void TaskKey(void *Tags)
{
    uint16 i;
    Tos_ArrayMessage *CurMsg,Msg[10];
    MGUI_KeyMsg *KeyMsg,KeyMsgBuf[10];
    for(i=0; i<10; i++)Msg[i].Qmsg_Addr=&KeyMsgBuf[i];
    Tos_TaskCreateQmsg(&Msg[0],10);
    Tos_TaskGetKeyCode();
    while(1)
    {
        Tos_TaskDelay(10);
        CurMsg=Tos_TaskGetQMsg();
        if(CurMsg)
        {
            KeyMsg=CurMsg->Qmsg_Addr;
        }
    }
}
Ejemplo n.º 3
0
void TaskFor_SetWork(void *Tags)
{
	uint16 i;
	BOOL WorkTrue=False;
	Tos_ArrayMessage Msg[2];
  MGUI_KeyMsg *KeyMsg,KeyMsgBuf[2];	
	POWER_EN;//OLED电源
	LAMP9_ON;//料罐通电                                                                                                        ;
	LAMP10_ON;//阀门开到位
	LAMP11_ON;//阀门关到位
	LAMP12_ON;//密封到位
	LAMP13_ON;//通信
	LAMP14_OFF;//电源
	LAMP2_ON;//启动
	LAMP3_ON;//强制启动
	Load_Configs();
	Menu_Init(&MenuHome[0]);
	KeyBoard_Configuration();
	Tos_TaskGetHandKey();
	SetKey_WorkMode(KWM_Null);
  Set_Brightness();
  for(i=0;i<2;i++)Msg[i].Qmsg_Addr=&KeyMsgBuf[i];
	Tos_TaskCreateQmsg(&Msg[0],2);
	Run_Value.Status="";
	while(1)
	{
re:		 if(KeyMsg->KeyValue==Key_4)GoTo_Stop();
	 if(WorkTrue==True){Draw_Work();}
		 if(WorkTrue==False){Draw_Home();}
		 SSD1325_OutBuffer();
		 Tos_TaskDelay(1);
      KeyMsg=MUI_GetKey(0);
		 if(KeyMsg)
		 {
			if(KeyMsg->KeyType==KeyBoard_Null)goto re;
			if(WorkTrue==True)
			 {
					if(KeyMsg->KeyType==KeyBoard_Hand)
				{
				Beep_WithKey();
					Run_Value.HeartBeat=0;
					if(KeyMsg->KeyValue==Key_A){Run_Value.Status="开阀";Send_ButtonCommand(OC_UpDoorOpen);}
					if(KeyMsg->KeyValue==Key_B){Run_Value.Status="关阀";Send_ButtonCommand(OC_UpDoorClose);}
					if(KeyMsg->KeyValue==Key_1){Run_Value.Status="开阀";Send_ButtonCommand(OC_DownDoorOpen);}
					if(KeyMsg->KeyValue==Key_3){Run_Value.Status="关阀";Send_ButtonCommand(OC_DownDoorClose);}
					if(KeyMsg->KeyValue==Key_5)TankRelieveClick();
					if(KeyMsg->KeyValue==Key_C)TankPowerClick();
					if(KeyMsg->KeyValue==Key_D){Run_Value.Status="启动";Send_ButtonCommand(OC_Start);Printf_Waiting(String_Wating,10);}//启动
					if(KeyMsg->KeyValue==Key_E){Run_Value.Status="停止";Send_ButtonCommand(OC_Stop);WorkTrue=False;Menu_Init(&MenuHome[0]);Printf_Waiting(String_Wating,10);}//停车
				}
				if(KeyMsg->KeyType==KeyBoard_RockerBar)
				{
					Beep_WithKey();
					Run_Value.HeartBeat=0;
					if(KeyMsg->KeyValue==Key_X)if((KeyMsg->KeyTime<0)&(KeyMsg->KeyTime>-3)){Run_Value.Status="前进";Send_ButtonCommand(OC_TankForward1);}
					if(KeyMsg->KeyValue==Key_X)if((KeyMsg->KeyTime<-2)&(KeyMsg->KeyTime>-5)){Run_Value.Status="前进";Send_ButtonCommand(OC_TankForward2);}
					if(KeyMsg->KeyValue==Key_X)if((KeyMsg->KeyTime>0)&(KeyMsg->KeyTime<3)){Run_Value.Status="后退";Send_ButtonCommand(OC_TankBack1);}
					if(KeyMsg->KeyValue==Key_X)if((KeyMsg->KeyTime>2)&(KeyMsg->KeyTime<5)){Run_Value.Status="后退";Send_ButtonCommand(OC_TankBack2);}
					if(KeyMsg->KeyValue==Key_Y)if((KeyMsg->KeyTime<0)){Run_Value.Status="点动";Send_ButtonCommand(OC_TankBackDot);}
				if(KeyMsg->KeyValue==Key_Y)if((KeyMsg->KeyTime>0)){Run_Value.Status="点动";Send_ButtonCommand(OC_TankForwardDot);}
				}
				if(KeyMsg->KeyType==KeyBoard_Null)
				{

				}
			 }
			 if(WorkTrue==False)
			 {
				 if(KeyMsg->KeyType==KeyBoard_Hand)
				{
					Beep_WithKey();
					if(KeyMsg->KeyValue==Key_1){if(PageMenu.DeepRecord[PageMenu.Index])PageMenu.DeepRecord[PageMenu.Index]--;}
					if(KeyMsg->KeyValue==Key_3){if(PageMenu.OptionLength>PageMenu.DeepRecord[PageMenu.Index])PageMenu.DeepRecord[PageMenu.Index]++;}
					if(KeyMsg->KeyValue==Key_A)PageMenu.DeepRecord[PageMenu.Index]=0;
					if(KeyMsg->KeyValue==Key_B)Enter_Menu();
					if(KeyMsg->KeyValue==Key_D){Run_Value.Status="启动";WorkTrue=True;Menu_Init(&MenuWork[0]);Send_ButtonCommand(OC_Start);StartCheck();}//启动
					if(KeyMsg->KeyValue==Key_E){Send_ButtonCommand(OC_Stop);}//停车
				}
				if(KeyMsg->KeyType==KeyBoard_RockerBar)
				{
					Beep_WithKey();
					if(KeyMsg->KeyValue==Key_X)Run_Value.HandSpeedX=KeyMsg->KeyTime;
					if(KeyMsg->KeyValue==Key_Y)Run_Value.HandSpeedY=KeyMsg->KeyTime;
					if(KeyMsg->KeyValue==Key_X)if(KeyMsg->KeyTime<0){if(PageMenu.DeepRecord[PageMenu.Index])PageMenu.DeepRecord[PageMenu.Index]--;}
					if(KeyMsg->KeyValue==Key_X)if(KeyMsg->KeyTime>0){if(PageMenu.OptionLength>PageMenu.DeepRecord[PageMenu.Index])PageMenu.DeepRecord[PageMenu.Index]++;}
					if(KeyMsg->KeyValue==Key_Y)if(KeyMsg->KeyTime<0)PageMenu.DeepRecord[PageMenu.Index]=0;
					if(KeyMsg->KeyValue==Key_Y)if(KeyMsg->KeyTime>0)Enter_Menu();
					
				 }
			 }
		}
		
	}
}
Ejemplo n.º 4
0
void TaskCanRead(void *Tags)
{
    uint8 i;
    uint32 ADALL;
    Tos_ArrayMessage *CurMsg,Msg[10];
    CanRxMsg *RxMessage,RxMessageBuf[10];
    for(i=0; i<10; i++)Msg[i].Qmsg_Addr=&RxMessageBuf[i];
    Tos_TaskCreateQmsg(&Msg[0],10);
    Tos_TaskGetCAN();
    CAN_SIG_Init();
    CAN_SIG_Filter_Configs();
    DevRun_Value.ADC_Value[0]=0;
    DevRun_Value.ADC_Value[1]=0;
    while(1)
    {
        Tos_TaskDelay(10);
        CurMsg=Tos_TaskGetQMsg();
        if(CurMsg)
        {
            RxMessage=CurMsg->Qmsg_Addr;
            switch(RxMessage->StdId)
            {
            case 0x060:
                DevRun_Value.AD6x[0]=GetWordFromBytes(&RxMessage->Data[0],1);
                DevRun_Value.AllStatus|=WSA_SensorG1Ok;
                break;
            case 0x061:
                DevRun_Value.AD6x[1]=GetWordFromBytes(&RxMessage->Data[0],1);
                DevRun_Value.AllStatus|=WSA_SensorG2Ok;
                break;
            case 0x062:
                DevRun_Value.AD6x[2]=GetWordFromBytes(&RxMessage->Data[0],1);
                DevRun_Value.AllStatus|=WSA_SensorG3Ok;
                break;
            case 0x063:
                DevRun_Value.AD6x[3]=GetWordFromBytes(&RxMessage->Data[0],1);
                DevRun_Value.AllStatus|=WSA_SensorG4Ok;
                break;
            case 0x2a0:
                DevRun_Value.ADC_Value[1]=GetWordFromBytes(&RxMessage->Data[0],1);
                DevRun_Value.AllStatus|=WSA_SensorR1Ok;
                break;
            case 0x1C0:
                i=~RxMessage->Data[0];
                if(i&S0)DevRun_Value.AllStatus|=WSA_Tank1Place;
                else DevRun_Value.AllStatus&=~WSA_Tank1Place;
                if(i&S2)DevRun_Value.AllStatus|=WSA_Tank2Place;
                else DevRun_Value.AllStatus&=~WSA_Tank2Place;
                break;
            default:
                break;
            }
            ADALL=DevRun_Value.AD6x[0]+DevRun_Value.AD6x[1]+DevRun_Value.AD6x[2]+DevRun_Value.AD6x[3];
            DevRun_Value.ADC_Value[0]=ADALL/4;
            //DeBug("Tos_CPUInfor.Userate_CPU=%x",RxMessage->StdId,Infor_Infor);
        }
        LED3_ON;
        Tos_TaskDelay(10);
        LED3_OFF;
    }
}
Ejemplo n.º 5
0
void TaskFunc(void *Tags)
{
	uint8 i;
	Tos_ArrayMessage Msg[2];
	MGUI_KeyMsg *KeyMsg,KeyMsgBuf[2];	
	Tos_TaskGetHandKey();
  for(i=0;i<2;i++)Msg[i].Qmsg_Addr=&KeyMsgBuf[i];
	Tos_TaskCreateQmsg(&Msg[0],2);
	i=0;
	if(UIShowValue.SysWorkMode==0xff)
	while(1)
	{
		Ht1621_DrawMenu(i);
		Tos_TaskDelay(10);
		KeyMsg=MUI_GetKey(0);
		if(KeyMsg)
		{
			if(KeyMsg->KeyValue==Key_Printf)break;
			if(KeyMsg->KeyValue==Key_UpDown)i++;
			if(i>4)i=0;
		}
	}
	UIShowValue.SysWorkMode=i;
	while(1)
	{
		Tos_TaskDelay(10);
		KeyMsg=MUI_GetKey(0);
		if(KeyMsg)
		{
			if(KeyMsg->KeyValue==Key_Printf)if(KeyMsg->KeyType==Key_OneClick)
			{
				if(UIShowValue.SaveValue.WorkBit&WCB_RecordEN)Task_PrintfLog();
				else {if(UIShowValue.RunFlag&WRF_BeepDisable)UIShowValue.RunFlag&=~WRF_BeepDisable;else UIShowValue.RunFlag|=WRF_BeepDisable;}
			}
			if(KeyMsg->KeyValue==Key_Printf)if(KeyMsg->KeyType==Key_DownTimeOut)
			{
				if(UIShowValue.SaveValue.WorkBit&WCB_RecordEN)UIShowValue.SaveValue.WorkBit&=~WCB_RecordEN;else UIShowValue.SaveValue.WorkBit|=WCB_RecordEN;
				BEEP_Double();
				UIShowValue.RecordCount=0;
			  W25Q16_Erase(0,sizeof(NandHistoryRecord)*0xff);
				Task_SaveConfigs();
			}
			if(KeyMsg->KeyValue==Key_UpDown)if(KeyMsg->KeyType==Key_OneClick)
			{
				if(UIShowValue.RunFlag&WRF_BeepDisable)UIShowValue.RunFlag&=~WRF_BeepDisable;else UIShowValue.RunFlag|=WRF_BeepDisable;
			}
			if(KeyMsg->KeyValue==Key_WkUp)if(KeyMsg->KeyType==Key_DownTimeOut)
			{
				BEEP_Double();
				GPIO_DeInit(GPIOA);
				GPIO_DeInit(GPIOB);
				GPIO_DeInit(GPIOC);
				GPIO_DeInit(GPIOD);
				GPIO_DeInit(GPIOE);
				GPS_OFF;
				Standby_Init();
			}
			if(KeyMsg->KeyValue==Key_UpDown)if(KeyMsg->KeyType==Key_DownTimeOut)
			{
				BEEP_Double();
				UIShowValue.SysWorkMode=8;
				while(1)
				{
					Ht1621_DrawUpDown(UIShowValue.SysWorkMode-8);
					Tos_TaskDelay(10);
					KeyMsg=MUI_GetKey(0);
					if(KeyMsg)
					{
						if(KeyMsg->KeyValue==Key_UpDown)if(KeyMsg->KeyType==Key_OneClick)
						{
							UIShowValue.SysWorkMode++;
							if(UIShowValue.SysWorkMode>12)UIShowValue.SysWorkMode=8;
						}
						if(KeyMsg->KeyValue==Key_UpDown)if(KeyMsg->KeyType==Key_DownTimeOut)
							{
						  BEEP_Double();
							UIShowValue.SysWorkMode=0;
							break;
							}
						if(KeyMsg->KeyValue==Key_Printf)if(KeyMsg->KeyType==Key_OneClick)
							{
						  BEEP_Double();
							UIShowValue.SysWorkMode=0;
							break;
							}
					}
				}
			}
				
		}
	}
}