#include "line_seek.h" #include "main.h" #include char LineSeek_Status[5]; /** * @brief 获取巡线状态 * @param[in] int *p_iL1, int *p_iL2, int *p_iR1, int *p_iR2 四路巡线位指针 * @retval void */ void LineSeek_GetStatus(int *p_iL1, int *p_iL2, int *p_iR1, int *p_iR2) { *p_iL1 = HAL_GPIO_ReadPin(LineSeek_L1_GPIO_Port, LineSeek_L1_Pin); *p_iL2 = HAL_GPIO_ReadPin(LineSeek_L2_GPIO_Port, LineSeek_L2_Pin); *p_iR1 = HAL_GPIO_ReadPin(LineSeek_R1_GPIO_Port, LineSeek_R1_Pin); *p_iR2 = HAL_GPIO_ReadPin(LineSeek_R2_GPIO_Port, LineSeek_R2_Pin); } /** * @brief 获取巡线状态并返回表示状态的字符串 * @retval char LineSeek_Status[5] */ char *LineSeek_GetStatusStr() { int iL1, iL2, iR1, iR2; LineSeek_GetStatus(&iL1, &iL2, &iR1, &iR2); sprintf(LineSeek_Status, "%d%d%d%d", iL1, iL2, iR1, iR2); return LineSeek_Status; } int LineSeek_Equals(const char *expression) { int i; for (i = 0; i < 4; i++) { if (expression[i] != 'x' && expression[i] != LineSeek_Status[i]) { return 0; } } return 1; }