text: /**
    ******************************************************************************
    * @file    IAP/IAP_Main/Inc/common.h
    * @author  MCD Application Team
    * @brief   This file provides all the headers of the common functions.
    ******************************************************************************
    * @attention
    *
    * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics International N.V. 
    * All rights reserved.</center></h2>
    *
    * Redistribution and use in source and binary forms, with or without 
    * modification, are permitted, provided that the following conditions are met:
    *
    * 1. Redistribution of source code must retain the above copyright notice, 
    *    this list of conditions and the following disclaimer.
    * 2. Redistributions in binary form must reproduce the above copyright notice,
    *    this list of conditions and the following disclaimer in the documentation
    *    and/or other materials provided with the distribution.
    * 3. Neither the name of STMicroelectronics nor the names of other 
    *    contributors to this software may be used to endorse or promote products 
    *    derived from this software without specific written permission.
    * 4. This software, including modifications and/or derivative works of this 
    *    software, must execute solely and exclusively on microcontroller or
    *    microprocessor devices manufactured by or for STMicroelectronics.
    * 5. Redistribution and use of this software other than as permitted under 
    *    this license is void and will automatically terminate your rights under 
    *    this license. 
    *
    * THIS SOFTWARE IS PROVIDED BY STMICROELECTRONICS AND CONTRIBUTORS "AS IS" 
    * AND ANY EXPRESS, IMPLIED OR STATUTORY WARRANTIES, INCLUDING, BUT NOT 
    * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 
    * PARTICULAR PURPOSE AND NON-INFRINGEMENT OF THIRD PARTY INTELLECTUAL PROPERTY
    * RIGHTS ARE DISCLAIMED TO THE FULLEST EXTENT PERMITTED BY LAW. IN NO EVENT 
    * SHALL STMICROELECTRONICS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
    * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
    * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, 
    * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 
    * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 
    * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    *
    * @statement DJI has modified some symbols' name.
    *
    ******************************************************************************
    */
  /* Define to prevent recursive inclusion -------------------------------------*/
  #ifndef __COMMON_H
  #define __COMMON_H
  
  /* Includes ------------------------------------------------------------------*/
  #include "stm32f4xx.h"
  
  /* Exported types ------------------------------------------------------------*/
  /* Exported constants --------------------------------------------------------*/
  #define FILE_NAME_LENGTH    ((uint32_t)64)
  /* Constants used by Serial Command Line Mode */
  #define TX_TIMEOUT          ((uint32_t)100)
  #define RX_TIMEOUT          ((uint32_t)0xFFFFFFFF)
  
  /* Exported macro ------------------------------------------------------------*/
  #define IS_CAP_LETTER(c)    (((c) >= 'A') && ((c) <= 'F'))
  #define IS_LC_LETTER(c)     (((c) >= 'a') && ((c) <= 'f'))
  #define IS_09(c)            (((c) >= '0') && ((c) <= '9'))
  #define ISVALIDHEX(c)       (IS_CAP_LETTER(c) || IS_LC_LETTER(c) || IS_09(c))
  #define ISVALIDDEC(c)       IS_09(c)
  #define CONVERTDEC(c)       (c - '0')
  
  #define CONVERTHEX_ALPHA(c) (IS_CAP_LETTER(c) ? ((c) - 'A'+10) : ((c) - 'a'+10))
  #define CONVERTHEX(c)       (IS_09(c) ? ((c) - '0') : CONVERTHEX_ALPHA(c))
  #define CRC16               ((uint8_t)0x43)  /* 'C' == 0x43, request 16-bit CRC */
  
  typedef enum
  {
      COM_OK       = 0x00,
      COM_ERROR    = 0x01,
      COM_ABORT    = 0x02,
      COM_TIMEOUT  = 0x03,
      COM_DATA     = 0x04,
      COM_LIMIT    = 0x05
  } COM_StatusTypeDef;
  
  /* Exported functions ------------------------------------------------------- */
  void Int2Str(uint8_t *p_str, uint32_t intnum);
  uint32_t Str2Int(uint8_t *inputstr, uint32_t *intnum);
  void Serial_PutString(uint8_t *p_string);
  HAL_StatusTypeDef Serial_PutByte(uint8_t param);
  
  #endif  /* __COMMON_H */
  
  /*******************(C)COPYRIGHT 2016 STMicroelectronics *****END OF FILE******/
  