David Fletcher / Mbed 2 deprecated cc3100_Test_websock_Camera_CM4F

Dependencies:   mbed

Committer:
dflet
Date:
Tue Sep 15 16:45:04 2015 +0000
Revision:
22:f9b5e0b80bf2
Parent:
15:5433f9d94cd7
Removed some debug.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dflet 0:50cedd586816 1
dflet 0:50cedd586816 2 #include "mbed.h"
dflet 0:50cedd586816 3
dflet 0:50cedd586816 4 // Standard includes
dflet 0:50cedd586816 5 #include <stdarg.h>
dflet 0:50cedd586816 6
dflet 0:50cedd586816 7 #include "myBoardInit.h"
dflet 0:50cedd586816 8 #include "cli_uart.h"
dflet 0:50cedd586816 9 #include "osi.h"
dflet 0:50cedd586816 10
dflet 0:50cedd586816 11 OsiLockObj_t g_printLock;
dflet 0:50cedd586816 12
dflet 0:50cedd586816 13 #if (THIS_BOARD == Seeed_Arch_Max)
dflet 0:50cedd586816 14 Serial uart(PC_6, PC_7);//uart 6
dflet 14:90603ea1e85b 15 //Serial uart(USBTX, USBRX);
dflet 0:50cedd586816 16 #elif (THIS_BOARD == EA_MBED_LPC4088)
dflet 0:50cedd586816 17 Serial uart(p37, p31);
dflet 0:50cedd586816 18 #endif
dflet 0:50cedd586816 19
dflet 0:50cedd586816 20 int Uart_Write(unsigned char *inBuff)
dflet 0:50cedd586816 21 {
dflet 0:50cedd586816 22 uint16_t ret, ecount, usLength = strlen((const char *)inBuff);
dflet 0:50cedd586816 23 ecount = 0;
dflet 0:50cedd586816 24 ret = 0;
dflet 0:50cedd586816 25
dflet 0:50cedd586816 26 while(!(uart.writeable())){ecount++;if(ecount>3000)break;};
dflet 0:50cedd586816 27
dflet 0:50cedd586816 28 if(uart.writeable()) {
dflet 0:50cedd586816 29
dflet 0:50cedd586816 30 if(inBuff == NULL) {
dflet 0:50cedd586816 31 printf("Uart Write buffer empty\r\n");
dflet 0:50cedd586816 32 return -1;
dflet 0:50cedd586816 33 }
dflet 0:50cedd586816 34
dflet 0:50cedd586816 35 RTOS_MUTEX_ACQUIRE(&g_printLock);
dflet 0:50cedd586816 36 ret = usLength;
dflet 0:50cedd586816 37
dflet 0:50cedd586816 38 while (usLength) {
dflet 0:50cedd586816 39 uart.putc(*inBuff);
dflet 0:50cedd586816 40 usLength--;
dflet 0:50cedd586816 41 inBuff++;
dflet 0:50cedd586816 42 }
dflet 0:50cedd586816 43
dflet 0:50cedd586816 44 RTOS_MUTEX_RELEASE(&g_printLock);
dflet 0:50cedd586816 45 } else {
dflet 0:50cedd586816 46 printf("Uart Write failed [uart not writeable] now trying printf\r\n");
dflet 0:50cedd586816 47 while (usLength) {
dflet 0:50cedd586816 48 printf("%c",*inBuff);
dflet 0:50cedd586816 49 usLength--;
dflet 0:50cedd586816 50 inBuff++;
dflet 0:50cedd586816 51 }
dflet 0:50cedd586816 52 return -1;
dflet 0:50cedd586816 53 }
dflet 0:50cedd586816 54
dflet 0:50cedd586816 55 return (int)ret;
dflet 0:50cedd586816 56
dflet 0:50cedd586816 57 }
dflet 0:50cedd586816 58
dflet 0:50cedd586816 59 void CLI_Configure(void)
dflet 0:50cedd586816 60 {
dflet 15:5433f9d94cd7 61 uart.baud(115200);
dflet 0:50cedd586816 62
dflet 0:50cedd586816 63 RTOS_MUTEX_CREATE(&g_printLock);
dflet 0:50cedd586816 64
dflet 0:50cedd586816 65 }
dflet 0:50cedd586816 66
dflet 0:50cedd586816 67 //*****************************************************************************
dflet 0:50cedd586816 68 //
dflet 0:50cedd586816 69 //! prints the formatted string on to the console
dflet 0:50cedd586816 70 //!
dflet 0:50cedd586816 71 //! \param format is a pointer to the character string specifying the format in
dflet 0:50cedd586816 72 //! the following arguments need to be interpreted.
dflet 0:50cedd586816 73 //! \param [variable number of] arguments according to the format in the first
dflet 0:50cedd586816 74 //! parameters
dflet 0:50cedd586816 75 //! This function
dflet 0:50cedd586816 76 //! 1. prints the formatted error statement.
dflet 0:50cedd586816 77 //!
dflet 0:50cedd586816 78 //! \return count of characters printed
dflet 0:50cedd586816 79 //
dflet 0:50cedd586816 80 //*****************************************************************************
dflet 0:50cedd586816 81 int Report(const char *pcFormat, ...)
dflet 0:50cedd586816 82 {
dflet 0:50cedd586816 83 int iRet = 0;
dflet 0:50cedd586816 84 //#ifndef NOTERM
dflet 0:50cedd586816 85
dflet 0:50cedd586816 86 char *pcBuff, *pcTemp;
dflet 0:50cedd586816 87 int iSize = 256;
dflet 0:50cedd586816 88
dflet 0:50cedd586816 89 va_list list;
dflet 0:50cedd586816 90 pcBuff = (char*)malloc(iSize);
dflet 0:50cedd586816 91 if(pcBuff == NULL)
dflet 0:50cedd586816 92 {
dflet 0:50cedd586816 93 return -1;
dflet 0:50cedd586816 94 }
dflet 0:50cedd586816 95 while(1)
dflet 0:50cedd586816 96 {
dflet 0:50cedd586816 97 va_start(list,pcFormat);
dflet 0:50cedd586816 98 iRet = vsnprintf((char*)pcBuff,iSize,pcFormat,list);
dflet 0:50cedd586816 99 va_end(list);
dflet 0:50cedd586816 100 if(iRet > -1 && iRet < iSize)
dflet 0:50cedd586816 101 {
dflet 0:50cedd586816 102 break;
dflet 0:50cedd586816 103 }
dflet 0:50cedd586816 104 else
dflet 0:50cedd586816 105 {
dflet 0:50cedd586816 106 iSize*=2;
dflet 0:50cedd586816 107 if((pcTemp=(char*)realloc(pcBuff,iSize))==NULL)
dflet 0:50cedd586816 108 {
dflet 0:50cedd586816 109 Message("Could not reallocate memory\n\r");
dflet 0:50cedd586816 110 iRet = -1;
dflet 0:50cedd586816 111 break;
dflet 0:50cedd586816 112 }
dflet 0:50cedd586816 113 else
dflet 0:50cedd586816 114 {
dflet 0:50cedd586816 115 pcBuff=pcTemp;
dflet 0:50cedd586816 116 }
dflet 0:50cedd586816 117
dflet 0:50cedd586816 118 }
dflet 0:50cedd586816 119 }
dflet 0:50cedd586816 120 Message(pcBuff);
dflet 0:50cedd586816 121 free(pcBuff);
dflet 0:50cedd586816 122
dflet 0:50cedd586816 123 //#endif
dflet 0:50cedd586816 124 return iRet;
dflet 0:50cedd586816 125 }
dflet 0:50cedd586816 126
dflet 0:50cedd586816 127 //*****************************************************************************
dflet 0:50cedd586816 128 //
dflet 0:50cedd586816 129 //! Outputs a character string to the console
dflet 0:50cedd586816 130 //!
dflet 0:50cedd586816 131 //! \param str is the pointer to the string to be printed
dflet 0:50cedd586816 132 //!
dflet 0:50cedd586816 133 //! This function
dflet 0:50cedd586816 134 //! 1. prints the input string character by character on to the console.
dflet 0:50cedd586816 135 //!
dflet 0:50cedd586816 136 //! \return none
dflet 0:50cedd586816 137 //
dflet 0:50cedd586816 138 //*****************************************************************************
dflet 0:50cedd586816 139 void
dflet 0:50cedd586816 140 Message(const char *str)
dflet 0:50cedd586816 141 {
dflet 0:50cedd586816 142
dflet 0:50cedd586816 143 uint16_t ecount = 0;
dflet 0:50cedd586816 144
dflet 0:50cedd586816 145 //#ifndef NOTERM
dflet 0:50cedd586816 146 while(!(uart.writeable())){ecount++;if(ecount>3000)break;};
dflet 0:50cedd586816 147
dflet 0:50cedd586816 148 if(uart.writeable()) {
dflet 0:50cedd586816 149
dflet 0:50cedd586816 150 if(str != NULL){
dflet 0:50cedd586816 151 RTOS_MUTEX_ACQUIRE(&g_printLock);
dflet 0:50cedd586816 152 while(*str!='\0')
dflet 0:50cedd586816 153 {
dflet 0:50cedd586816 154 uart.putc(*str++);
dflet 0:50cedd586816 155 }
dflet 0:50cedd586816 156 RTOS_MUTEX_RELEASE(&g_printLock);
dflet 0:50cedd586816 157 }
dflet 0:50cedd586816 158 }
dflet 0:50cedd586816 159 //#endif
dflet 0:50cedd586816 160 }
dflet 0:50cedd586816 161
dflet 0:50cedd586816 162