wts_getertxt.c
上传用户:fy98168
上传日期:2015-06-26
资源大小:13771k
文件大小:6k
源码类别:

DVD

开发平台:

C/C++

  1. /*****************************************************************************
  2.  
  3. File name   : getertxt.c
  4. Description : Get error descriptions from error code
  5. COPYRIGHT (C) STMicroelectronics 2004.
  6. *****************************************************************************/
  7. /* Includes --------------------------------------------------------------- */
  8. #include "stddefs.h"
  9. #include "stdio.h"
  10. #include "stpio.h"
  11. #include "stflash.h"
  12. #include "stuart.h"
  13. /* Private Types ------------------------------------------------------ */
  14. /* Private Constants -------------------------------------------------- */
  15. /* Private Variables -------------------------------------------------- */
  16. static char *wts_Unrecognised = "*** wts_Unrecognised return code ***";
  17. /* Private Macros ----------------------------------------------------- */
  18. /* Private Function prototypes ---------------------------------------- */
  19. /* Functions ---------------------------------------------------------- */
  20. /*-------------------------------------------------------------------------
  21.  * Function : wts_GeneralError
  22.  *            Return general error descriptions
  23.  * Input    : Error Code
  24.  * Output   :
  25.  * Return   : pointer to error description
  26.  * ----------------------------------------------------------------------*/
  27. static char *wts_GeneralError( ST_ErrorCode_t Error )
  28. {
  29.     switch( Error )
  30.     {
  31.         case ST_NO_ERROR:
  32.             return("Ok");
  33.         case ST_ERROR_BAD_PARAMETER:
  34.             return("BAD_PARAMETER - Parameter(s) invalid");
  35.         case ST_ERROR_NO_MEMORY:
  36.             return("NO_MEMORY - Memory allocation failed");
  37.         case ST_ERROR_UNKNOWN_DEVICE:
  38.             return("UNKNOWN_DEVICE - Init call must precede access");
  39.         case ST_ERROR_ALREADY_INITIALIZED:
  40.             return("ALREADY_INITIALIZED - already initialised");
  41.         case ST_ERROR_NO_FREE_HANDLES:
  42.             return("NO_FREE_HANDLES - Channel already Open");
  43.         case ST_ERROR_OPEN_HANDLE:
  44.             return("OPEN_HANDLE - Handle(s) open on Termination");
  45.         case ST_ERROR_INVALID_HANDLE:
  46.             return("INVALID_HANDLE - Handle number not recognized");
  47.         case ST_ERROR_FEATURE_NOT_SUPPORTED:
  48.             return("FEATURE_NOT_SUPPORTED - Feature not supported");
  49.         case ST_ERROR_INTERRUPT_INSTALL:
  50.             return("INTERRUPT_INSTALL");
  51.         case ST_ERROR_INTERRUPT_UNINSTALL:
  52.             return("INTERRUPT_UNINSTALL");
  53.         case ST_ERROR_TIMEOUT:
  54.             return("TIMEOUT - Operation has timed out");
  55.         case ST_ERROR_DEVICE_BUSY:
  56.             return("DEVICE_BUSY - Device unable to satisfy request");
  57.         default:
  58.         break;
  59.     }
  60.     return wts_Unrecognised;
  61. }
  62. /*-------------------------------------------------------------------------
  63.  * Function : wts_FLASHError
  64.  *            Return STFLASH error descriptions
  65.  * Input    : Error Code
  66.  * Output   :
  67.  * Return   : pointer to error description
  68.  * ----------------------------------------------------------------------*/
  69. static char *wts_FLASHError( ST_ErrorCode_t Error )
  70. {
  71. #ifdef __STFLASH_H
  72.     switch( Error )
  73.     {
  74.         case STFLASH_ERROR_WRITE:
  75.             return("STFLASH_ERROR_WRITE - Error writing FLASH");
  76.         case STFLASH_ERROR_ERASE:
  77.             return("STFLASH_ERROR_ERASE - Error erasing FLASH");
  78.         case STFLASH_ERROR_VPP_LOW:
  79.             return("STFLASH_ERROR_VPP_LOW - Vpp Low Error");
  80.         default:
  81.             break;
  82.     }
  83. #endif
  84.     return wts_Unrecognised;
  85. }
  86. /*-------------------------------------------------------------------------
  87.  * Function : wts_PIOError
  88.  *            Return STPIO error descriptions
  89.  * Input    : Error Code
  90.  * Output   :
  91.  * Return   : pointer to error description
  92.  * ----------------------------------------------------------------------*/
  93. static char *wts_PIOError( ST_ErrorCode_t Error )
  94. {
  95. #ifdef __STPIO_H
  96.     /* no API specific error codes */
  97. #endif
  98.     return wts_Unrecognised;
  99. }
  100. /*-------------------------------------------------------------------------
  101.  * Function : wts_UARTError
  102.  *            Return STUART error descriptions
  103.  * Input    : Error Code
  104.  * Output   :
  105.  * Return   : pointer to error description
  106.  * ----------------------------------------------------------------------*/
  107. static char *wts_UARTError( ST_ErrorCode_t Error )
  108. {
  109. #ifdef __STUART_H
  110.     switch( Error )
  111.     {
  112.         case STUART_ERROR_OVERRUN:
  113.             return("STUART_ERROR_OVERRUN - read buffer overrun");
  114.         case STUART_ERROR_PARITY:
  115.             return("STUART_ERROR_PARITY - parity error has occurred");
  116.         case STUART_ERROR_FRAMING:
  117.             return("STUART_ERROR_FRAMING - framing error has occurred");
  118.         case STUART_ERROR_ABORT:
  119.             return("STUART_ERROR_ABORT - operation aborted");
  120.         case STUART_ERROR_RETRIES:
  121.             return("STUART_ERROR_RETRIES - error retrying transmit");
  122.         case STUART_ERROR_PIO:
  123.             return("STUART_ERROR_PIO - error calling PIO command");
  124.         default:
  125.             break;
  126.     }
  127. #endif
  128.     return wts_Unrecognised;
  129. }
  130. /*-------------------------------------------------------------------------
  131.  * Function : wts_GetErrorText
  132.  *            Return  error descriptions
  133.  * Input    : Error Code
  134.  * Output   :
  135.  * Return   : pointer to error description
  136.  * ----------------------------------------------------------------------*/
  137. char *wts_GetErrorText( ST_ErrorCode_t Error )
  138. {
  139.     int          Driver_Id;
  140.     char         *ErrorTxt_p;
  141.     static char  ErrorText[128];
  142.     Driver_Id = Error >> 16;
  143.     switch( Driver_Id )
  144.     {
  145.         case STFLASH_DRIVER_ID:         /* DVD-API-004 */
  146.             ErrorTxt_p = wts_FLASHError( Error );
  147.             break;
  148.         case STPIO_DRIVER_ID:           /* DVD-API-068 */
  149.             ErrorTxt_p = wts_PIOError( Error );
  150.             break;
  151.         case STUART_DRIVER_ID:          /* DVD-API-022 */
  152.             ErrorTxt_p = wts_UARTError( Error );
  153.             break;
  154.         default:
  155.             ErrorTxt_p = wts_GeneralError( Error );
  156.             break;
  157.     }
  158.     if ( Error != 0 )
  159.     {
  160.         sprintf( ErrorText, "%s (0x%08x)", ErrorTxt_p, Error );
  161.     }
  162.     else
  163.     {
  164.         sprintf( ErrorText, "%s", ErrorTxt_p );
  165.     }
  166.     return ErrorText;
  167. }
  168. /* EOF --------------------------------------------------------------------- */