📄 fish_notfinish.cpp
字号:
/*加水***/
void AddWater()
{
MESSAGE rxmsg;
MESSAGE txmsg;
txmsg.mSendId=MID_AddWater;
while(1)
{
if(msgQReceive(msgQIdAddWater,(char*)&rxmsg,MAX_MSG_LEN,WAIT_FOREVER)==ERROR)
{
printf("rec failed\n");
}
//wdStart(AddWater_wdog,Water_Delay_Ticks,(FUNCPTR)Water_Timeout,0);
if(rxmsg.mData==Apply)
{
printf("water=%f\n",water);
water=1;
//rxmsg.mData=Reset;
txmsg.mData=Finish;
msgQSend(msgQIdServer,(char*)&txmsg,sizeof(txmsg),NO_WAIT,MSG_PRI_NORMAL);
}
}
}/**AddWater End**/
/**加Food***/
void AddFood()
{
MESSAGE rxmsg;
MESSAGE txmsg;
txmsg.mSendId=MID_AddFood;
while(1)
{
if(msgQReceive(msgQIdAddFood,(char*)&rxmsg,MAX_MSG_LEN,WAIT_FOREVER)==ERROR)
{
printf("recv failed!");
}
//wdStart(AddFood_wdog,Food_Delay_Ticks,(FUNCPTR)Food_Timeout,0);
if(rxmsg.mData==Apply)
{
//printf("\nFoodNum=%d,FoodNum");
FoodNum=10*B_Fish_Num+7*M_Fish_Num+2*S_Fish_Num;
if(Food<FoodNum)
{
printf("\nFood left=%d",Food);
Food=FoodNum;
printf("\nFood has added,Food=%d",Food);
}
//rxmsg.mData=Reset;
txmsg.mData=Finish;
msgQSend(msgQIdServer,(char*)&txmsg,sizeof(txmsg),NO_WAIT,MSG_PRI_NORMAL);
}
}
}/*******AddFood End*******/
/****小鱼*****/
void S_Fish()
{
MESSAGE rxmsg;
MESSAGE txmsg;
txmsg.mSendId=MID_S_Fish;
while(1)
{
msgQReceive(msgQIdS_Fish,(char*)&rxmsg,MAX_MSG_LEN,WAIT_FOREVER);
//wdStart(S_Fish_wdog,S_Delay_Ticks,(FUNCPTR)S_Timeout,0);
if(rxmsg.mData==Apply)
{
if(S_EatedFlag==0)
{
if(Food<2*S_Fish_Num)
{
Food=0;
txmsg.mData=Hunger;
}
else
{
Food=Food-2*S_Fish_Num;
S_EatedFlag=1;
txmsg.mData=Finish;
}
}
else
{
printf("[S_Fsih]:I have eated!\n");
}
msgQSend(msgQIdServer,(char*)&txmsg,sizeof(txmsg),NO_WAIT,MSG_PRI_NORMAL);
}
}
}/*****小鱼End****/
/*****中鱼*****/
void M_Fish()
{
MESSAGE rxmsg;
MESSAGE txmsg;
txmsg.mSendId=MID_M_Fish;
while(1)
{
msgQReceive(msgQIdM_Fish,(char*)&rxmsg,MAX_MSG_LEN,WAIT_FOREVER);
//wdStart(M_Fish_wdog,M_Delay_Ticks,(FUNCPTR)M_Timeout,0);
if(rxmsg.mData==Apply)
{
if(M_EatedFlag==0)
{
if(Food<7*M_Fish_Num)
{
Food=0;
txmsg.mData=Hunger;
}
else
{
Food-=7*M_Fish_Num;
M_EatedFlag=1;
txmsg.mData=Finish;
}
}
else
{
printf("[M_Fsih]:I have eated!\n");
}
msgQSend(msgQIdServer,(char*)&txmsg,sizeof(txmsg),NO_WAIT,MSG_PRI_NORMAL);
}
}
}/****中鱼End****/
/****大鱼****/
void B_Fish()
{
MESSAGE rxmsg;
MESSAGE txmsg;
txmsg.mSendId=MID_B_Fish;
while(1)
{
msgQReceive(msgQIdB_Fish,(char*)&rxmsg,MAX_MSG_LEN,WAIT_FOREVER);
//wdStart(B_Fish_wdog,B_Delay_Ticks,(FUNCPTR)B_Timeout,0);
if(rxmsg.mData==Apply)
{
if(B_EatedFlag==0)
{
if(Food<10*B_Fish_Num)
{
Food=0;
txmsg.mData=Hunger;
}
else if(Food<=15*B_Fish_Num)
{
Food=0;
B_EatedFlag=1;
txmsg.mData=Finish;
}
else
{
Food-=15*B_Fish_Num;
B_EatedFlag=1;
txmsg.mData=Finish;
}
}
else
{
printf("[B_Fsih]:I have eated!\n");
}
msgQSend(msgQIdServer,(char*)&txmsg,sizeof(txmsg),NO_WAIT,MSG_PRI_NORMAL);
}
}
}/*****大鱼End******/
void Delete()
{
MESSAGE rxmsg;
MESSAGE txmsg;
txmsg.mSendId=MID_Delete;
while(1)
{
msgQReceive(msgQIdDelete,(char*)&rxmsg,MAX_MSG_LEN,WAIT_FOREVER);
if(rxmsg.mData==S_DeadForHunger)
{
S_Fish_Num=0;
S_HungerNum=0;
printf("\n[Delete]:SmallFishes are dead for Hunger!");
}
if(rxmsg.mData==M_DeadForHunger)
{
M_Fish_Num=0;
M_HungerNum=0;
printf("\n[Delete]:MidFishes are dead for Hunger!");
}
if(rxmsg.mData==B_DeadForHunger)
{
B_Fish_Num=0;
B_HungerNum=0;
printf("\n[Delete]:BigFishes are dead for Hunger!");
}
if(rxmsg.mData==S_DeadForWater)
{
S_Fish_Num=0;
printf("\n[Delete]:Water is too little,SmallFishes are dead!");
}
if(rxmsg.mData==M_DeadForWater)
{
M_Fish_Num=0;
printf("\n[Delete]:Water is too little,MidFishes are dead!");
}
if(rxmsg.mData==B_DeadForWater)
{
B_Fish_Num=0;
printf("\n[Delete]:Water is too little,BigFishes are dead!");
}
}
}/*****Delete End*****/
/****每天的检查,检查时间****/
void Checktime()
{
MESSAGE rxmsg;
MESSAGE txmsg;
txmsg.mSendId=MID_Checktime;
Hourtime++;
if(Hourtime%18==0)
{
txmsg.mData=Month;
msgQSend(msgQIdServer,(char*)&txmsg,sizeof(txmsg),NO_WAIT,MSG_PRI_NORMAL);
}
else if(Hourtime%3==0)
{
txmsg.mData=Day;
msgQSend(msgQIdServer,(char*)&txmsg,sizeof(txmsg),NO_WAIT,MSG_PRI_NORMAL);
}
else
{
txmsg.mData=Hour;
msgQSend(msgQIdServer,(char*)&txmsg,sizeof(txmsg),NO_WAIT,MSG_PRI_NORMAL);
}
wdStart(hour_wdog,Delay_Ticks,(FUNCPTR)Checktime,0);
}/***Checktime End****/
//////////////////各任务的中断程序/////////////////////
/*void S_Timeout()
{
//logMsg("\n[S_Fish]:Some problem happened!",0,0,0,0,0,0);
wdStart(S_Fish_wdog,S_Delay_Ticks,(FUNCPTR)B_Timeout,0);
MESSAGE rxmsg;
MESSAGE txmsg;
txmsg.mSendId=MID_S_Fish;
txmsg.mData=T_Finish;
msgQSend(msgQIdServer,(char*)&txmsg,sizeof(txmsg),NO_WAIT,MSG_PRI_NORMAL);
}
void M_Timeout()
{
//logMsg("\n[M_Fish]:Some problem happened!",0,0,0,0,0,0);
wdStart(M_Fish_wdog,M_Delay_Ticks,(FUNCPTR)B_Timeout,0);
MESSAGE rxmsg;
MESSAGE txmsg;
txmsg.mSendId=MID_M_Fish;
txmsg.mData=T_Finish;
msgQSend(msgQIdServer,(char*)&txmsg,sizeof(txmsg),NO_WAIT,MSG_PRI_NORMAL);
}
void B_Timeout()
{
//logMsg("\n[B_Fish]:Some problem happened!",0,0,0,0,0,0);
wdStart(B_Fish_wdog,B_Delay_Ticks,(FUNCPTR)B_Timeout,0);
MESSAGE rxmsg;
MESSAGE txmsg;
txmsg.mSendId=MID_B_Fish;
txmsg.mData=T_Finish;
msgQSend(msgQIdServer,(char*)&txmsg,sizeof(txmsg),NO_WAIT,MSG_PRI_NORMAL);
}
void Water_Timeout()
{
//logMsg("\n[AddWater]:Some problem happened!",0,0,0,0,0,0);
wdStart(AddWater_wdog,Water_Delay_Ticks,(FUNCPTR)Water_Timeout,0);
MESSAGE rxmsg;
MESSAGE txmsg;
txmsg.mSendId=MID_AddWater;
txmsg.mData=T_Finish;
msgQSend(msgQIdServer,(char*)&txmsg,sizeof(txmsg),NO_WAIT,MSG_PRI_NORMAL);
}
void Food_Timeout()
{
//logMsg("\n[AddFood]:Some problem happened!",0,0,0,0,0,0);
wdStart(AddFood_wdog,Food_Delay_Ticks,(FUNCPTR)Food_Timeout,0);
MESSAGE rxmsg;
MESSAGE txmsg;
txmsg.mSendId=MID_AddFood;
txmsg.mData=T_Finish;
msgQSend(msgQIdServer,(char*)&txmsg,sizeof(txmsg),NO_WAIT,MSG_PRI_NORMAL);
}
void Update_Timeout()
{
//logMsg("\n[Update]:Some problem happened!",0,0,0,0,0,0);
wdStart(Update_wdog,Update_Delay_Ticks,(FUNCPTR)Update_Timeout,0);
MESSAGE rxmsg;
MESSAGE txmsg;
txmsg.mSendId=MID_Update;
txmsg.mData=T_Finish;
msgQSend(msgQIdServer,(char*)&txmsg,sizeof(txmsg),NO_WAIT,MSG_PRI_NORMAL);
}*/
void Stop()
{
/*MESSAGE rxmsg;
MESSAGE txmsg;
txmsg.mSendId=MID_Stop;
txmsg.mData=Finish;*/
printf("\n bye!");
//msgQSend(msgQIdServer,(char*)&txmsg,sizeof(txmsg),NO_WAIT,MSG_PRI_URGENT);
wdDelete(hour_wdog);
wdDelete(S_Fish_wdog);
wdDelete(M_Fish_wdog);
wdDelete(B_Fish_wdog);
wdDelete(AddWater_wdog);
wdDelete(AddFood_wdog);
wdDelete(Update_wdog);
//taskDelete(tidChecktime);
taskDelete(tidServer);
taskDelete(tidAddFood);
taskDelete(tidAddWater);
taskDelete(tidDelete);
taskDelete(tidS_Fish);
taskDelete(tidM_Fish);
taskDelete(tidB_Fish);
taskDelete(tidUpdate);
msgQDelete(msgQIdServer);
msgQDelete(msgQIdS_Fish);
msgQDelete(msgQIdM_Fish);
msgQDelete(msgQIdB_Fish);
//msgQDelete(msgQIdChecktime);
msgQDelete(msgQIdAddFood);
msgQDelete(msgQIdUpdate);
msgQDelete(msgQIdDelete);
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -