Advanced Distributed Systems module at HSLU
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.
 
 

93 lines
2.1 KiB

/**
* \file
* \brief Module to identify different devices based on their unique ID.
* \author Erich Styger, erich.styger@hslu.ch
* \license SPDX-License-Identifier: BSD-3-Clause
* With this module individual devices are identified based on their unique ID.
*/
#ifndef __IDENTIFY_H_
#define __IDENTIFY_H_
#include "platform.h"
#ifdef __cplusplus
extern "C" {
#endif
#if PL_CONFIG_USE_IDENTIFY
#if PL_CONFIG_USE_SHELL
#include "McuShell.h"
/*!
* \brief Parses a command
* \param cmd Command string to be parsed
* \param handled Sets this variable to TRUE if command was handled
* \param io I/O stream to be used for input/output
* \return Error code, ERR_OK if everything was fine
*/
uint8_t ID_ParseCommand(const unsigned char *cmd, bool *handled, const McuShell_StdIOType *io);
#endif /* PL_CONFIG_USE_SHELL */
typedef enum { /*! \todo ADIS: Verify and update information */
ID_ROBOT_E0,
ID_ROBOT_E1,
ID_ROBOT_E2,
ID_ROBOT_E3,
ID_ROBOT_E4,
ID_ROBOT_E5,
ID_ROBOT_E6,
ID_ROBOT_E7,
ID_ROBOT_E8,
ID_ROBOT_E9,
ID_ROBOT_E10,
ID_ROBOT_E11,
ID_ROBOT_E12,
ID_ROBOT_E13,
ID_ROBOT_E14,
// ID_ROBOT_E15,
// ID_ROBOT_E16,
ID_ROBOT_E17,
ID_ROBOT_E18,
ID_ROBOT_E27,
ID_ROBOT_E34, /* no robot? */
ID_ROBOT_L0, /* USB port ripped off */
ID_ROBOT_L1,
ID_ROBOT_L3,
ID_ROBOT_L17,
ID_ROBOT_L20,
ID_ROBOT_R0, /* USB port ripped off */
ID_ROBOT_R8,
ID_ROBOT_R9,
ID_ROBOT_R23,
ID_ROBOT_R27,
ID_ROBOT_R28,
ID_ROBOT_R29,
ID_ROBOT_R32,
ID_ROBOT_R33,
ID_ROBOT_R34,
ID_ROBOT_R36,
ID_ROBOT_R37,
ID_ROBOT_R44,
ID_ROBOT_R45,
ID_ROBOT_UNKNOWN, /* unknown robot, unknown ID */
ID_ROBOT_NONE /* initialization value, used internally */
} ID_Robot_e;
ID_Robot_e ID_WhichDevice(void);
/*! \brief Module de-initialization */
void ID_Deinit(void);
/*! \brief Module initialization */
void ID_Init(void);
#endif /* PL_CONFIG_USE_IDENTIFY */
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /* __IDENTIFY_H_ */