You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
77 lines
1.7 KiB
77 lines
1.7 KiB
/**
|
|
* \file
|
|
* \brief Interface to the line following module
|
|
* \author Erich Styger, erich.styger@hslu.ch
|
|
* \license SPDX-License-Identifier: BSD-3-Clause
|
|
* This is the interface to line following module.
|
|
*/
|
|
|
|
#ifndef LINEFOLLOW_H_
|
|
#define LINEFOLLOW_H_
|
|
|
|
#include "platform.h"
|
|
#if PL_CONFIG_APP_LINE_FOLLOWING || PL_CONFIG_APP_LINE_MAZE
|
|
#include "Reflectance.h"
|
|
|
|
#if PL_CONFIG_USE_SHELL
|
|
#include "McuShell.h"
|
|
|
|
/*!
|
|
* \brief Module command line parser
|
|
* \param cmd Pointer to command string to be parsed
|
|
* \param handled Set to TRUE if command has handled by parser
|
|
* \param io Shell standard I/O handler
|
|
* \return Error code, ERR_OK if everything was ok
|
|
*/
|
|
uint8_t LF_ParseCommand(const unsigned char *cmd, bool *handled, const McuShell_StdIOType *io);
|
|
#endif
|
|
|
|
/*!
|
|
* \brief Start line following
|
|
*/
|
|
void LF_StartFollowing(void);
|
|
|
|
/*!
|
|
* \brief Stop line following
|
|
*/
|
|
void LF_StopFollowing(void);
|
|
|
|
/*!
|
|
* \brief Start/stop line following
|
|
*/
|
|
void LF_StartStopFollowing(void);
|
|
|
|
/*!
|
|
* \brief Function to determine if line following is active
|
|
* \return TRUE if currently line following, FALSE otherwise
|
|
*/
|
|
bool LF_IsFollowing(void);
|
|
|
|
/*!
|
|
* \brief Move from outside onto a line/segment to follow it.
|
|
* \return Returns TRUE if still on line
|
|
*/
|
|
bool LF_MoveOnSegment(bool turningLeft);
|
|
|
|
/*!
|
|
* \brief follows a line segment.
|
|
* \return Returns TRUE if still on line segment
|
|
*/
|
|
bool LF_FollowSegment(REF_LineKindMode mode, bool forward);
|
|
|
|
bool LF_FollowSegmentLinePos(REF_LineKindMode mode, uint16_t setLinePos);
|
|
|
|
|
|
/*!
|
|
* \brief Module initialization.
|
|
*/
|
|
void LF_Init(void);
|
|
|
|
/*!
|
|
* \brief Module de-initialization.
|
|
*/
|
|
void LF_Deinit(void);
|
|
|
|
#endif /* PL_CONFIG_APP_LINE_FOLLOWING || PL_CONFIG_APP_LINE_MAZE */
|
|
|
|
#endif /* LINEFOLLOW_H_ */
|
|
|