#include <stdio.h> 
#include <stdarg.h> 
#include "my_includes.h"
#include "debug.h"
//#include "uart.h"


static  bool gbDebugEnable = FALSE;

void debug_output(char *pMessage){
 //   UART_WriteString(pMessage);  // UART debug
    printf(pMessage);
}

void DEBUG_Enable(void){
    gbDebugEnable = TRUE;
}

void DEBUG_Disable(void){
    gbDebugEnable = FALSE;
}

int DEBUG_Printf(char *format, ...){
    int rc;
    char szText[512];
    
    if (!gbDebugEnable)
        return 0;

    va_list paramList;
    va_start(paramList, format);
    rc = vsnprintf(szText, 512, format, paramList);
    va_end(paramList);
    
    debug_output(szText);

    return rc;    
}

int DEBUG_PrintfNone(char *format, ...){  // dummy
    return 0;    
}


int DEBUG_HexPrintf(unsigned char *pHex, int len){
    int i;
    unsigned char szText[16];
    for(i=0;i<len;i++){
        sprintf(szText, "[%02X]", *(pHex+i));
        DEBUG_Printf(szText);
    }
    return len;
}
