📄 main.c
字号:
/**********************************************************************
**
** Copyright (c) 2008 -- Michael.All right received.
**
** PROJECT: Tangtang's Graduation Design
**
** PURPOSE: Main function entry.
**
** DATE : 05/18/2008
**
** AUTHOR: Michael
**
** SCHOOL: CUIT
**
** FILENAME: main.c
**
**********************************************************************/
/* Include files. */
#include "main.h"
/* Macro constant definitions. */
/* Type definitions. */
/* Local function declarations. */
void Adjust();
void MacRun();
eMacMoveType ParseCoordinate();
/* Macro API definitions. */
/* Global variable definitions. */
eOsBool statFlag; /* Machine state flag. */
/* For avoid the angle between the vidicon data and the fact. */
double angleDifference;
tMessage currentMessage; /* current message */
/**********************************************************************
** Function Name: main
** Purpose:
** Main entry function.
** Parameters:
** argc - number of command line arguments.
** argvPP - array of command line argument strings.
** Return:
** OS_RET_SUCCESS - run sucessful.
** Notes:
** None.
**********************************************************************/
eOsReturn
main(int argc, char* argv[])
{
uint32 indexI;
ENTRY_FUN();
statFlag = OS_BOOL_TURE;
runStatFlag = OS_BOOL_FAIL;
/* Adjust the machine. */
Adjust();
while(statFlag)
{
MacRun();
}
EXIT_FUN();
return(OS_RET_SUCCESS);
} /* End of main() */
/**********************************************************************
** Function Name: Adjust
** Purpose:
** Ajust the machine.
** Parameters:
** None.
** Return:
** None.
** Notes:
** None.
**********************************************************************/
void
Adjust()
{
ENTRY_FUN();
EXIT_FUN();
} /* End of Adjust() */
/**********************************************************************
** Function Name: MacRun
** Purpose:
** Run the machine.
** Parameters:
** None.
** Return:
** None.
** Notes:
** None.
**********************************************************************/
void
MacRun()
{
eMotorOptType optType;
eMotorRunType runType;
uint32 optParameter;
eMacMoveType macMoveType;
eOsReturn ret;
ENTRY_FUN();
if(currentMessage.found)
{
/* Parse current coordinate of the message. */
macMoveType = ParseCoordinate();
switch(macMoveType)
{
case E_MAC_MOVE_TYPE_FORWARD:
ret = MacMoveForward();
if(OS_RET_SUCCESS != ret)
{
TRACE_LOG("Call MacMoveForward() Faild ret %d\n",ret);
}
break;
case E_MAC_MOVE_TYPE_BACKWARD:
ret = MacMoveBackward();
if(OS_RET_SUCCESS != ret)
{
TRACE_LOG("Call MacMoveBackward() Faild ret %d\n",ret);
}
break;
case E_MAC_MOVE_TYPE_TURN_LEFT:
ret = MacMoveTurnLeft(currentMessage.coordinate.angle);
if(OS_RET_SUCCESS != ret)
{
TRACE_LOG("Call MacMoveTurnLeft() Faild ret %d\n",ret);
}
break;
case E_MAC_MOVE_TYPE_TURN_RIGHT:
ret = MacMoveTurnRight(currentMessage.coordinate.angle);
if(OS_RET_SUCCESS != ret)
{
TRACE_LOG("Call MacMoveTurnRight() Faild ret %d\n",ret);
}
break;
default:
TRACE_LOG("Call ParseCoordinate() return wront type %d\n",
macMoveType);
break;
}
}
else
{
ret = MacMoveStop();
if(OS_RET_SUCCESS != ret)
{
TRACE_LOG("Call MacMoveStop() Faild ret %d\n",ret);
}
ret = MacMoveTurnLeft(90);
if(OS_RET_SUCCESS != ret)
{
TRACE_LOG("Call MacMoveTurnLeft() Faild ret %d\n",ret);
}
}
EXIT_FUN();
} /* End of MacRun() */
/**********************************************************************
** Function Name: ParseCoordinate
** Purpose:
** Ajust the machine.
** Parameters:
** None.
** Return:
** eMacMoveType - machine move type(forward,backward,turn_left,turn_right).
** Notes:
** None.
**********************************************************************/
eMacMoveType
ParseCoordinate()
{
eMacMoveType type = E_MAC_MOVE_TYPE_ERROR;
double angle = 0;
ENTRY_FUN();
if(currentMessage.coordinate.distance <= SPECIFY_DISTANCE)
{
type = E_MAC_MOVE_TYPE_BACKWARD;
}
else
{
/* Fact angle */
angle = currentMessage.coordinate.angle - angleDifference;
currentMessage.coordinate.angle = angle;
if (angle > 0)
{
type = E_MAC_MOVE_TYPE_TURN_LEFT;
}
else if (angle < 0)
{
type = E_MAC_MOVE_TYPE_TURN_RIGHT;
}
else
{
type = E_MAC_MOVE_TYPE_FORWARD;
}
}
EXIT_FUN();
return(type);
} /* End of ParseCoordinate() */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -