TI's CC3100 websocket camera demo with Arducam mini ov5642 and freertos. Should work with other M3's. Work in progress test demo.
base64.cpp
00001 //***************************************************************************** 00002 // Copyright (C) 2014 Texas Instruments Incorporated 00003 // 00004 // All rights reserved. Property of Texas Instruments Incorporated. 00005 // Restricted rights to use, duplicate or disclose this code are 00006 // granted through contract. 00007 // The program may not be used without the written permission of 00008 // Texas Instruments Incorporated or against the terms and conditions 00009 // stipulated in the agreement under which this program has been supplied, 00010 // and under no circumstances can it be used with non-TI connectivity device. 00011 // 00012 //***************************************************************************** 00013 00014 /** 00015 * @defgroup base64_api 00016 * 00017 * @{ 00018 */ 00019 #include "base64.h" 00020 00021 static const char g_ccB64Tbl[65] = 00022 "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; 00023 00024 00025 void ConvertToBase64(char *pcOutStr, const char *pccInStr, int iLen) 00026 { 00027 const char* pccIn = (const char *)pccInStr; 00028 char* pcOut; 00029 int iCount; 00030 pcOut = pcOutStr; 00031 00032 //Loop in for Multiple of 24Bits and Convert to Base 64 00033 for (iCount = 0; iLen - iCount >=3 ; iCount += 3,pccIn += 3) 00034 { 00035 *pcOut++ = g_ccB64Tbl[pccIn[0] >> 2]; 00036 *pcOut++ = g_ccB64Tbl[((pccIn[0] & 0x03)<<4) | (pccIn[1] >> 4)]; 00037 *pcOut++ = g_ccB64Tbl[((pccIn[1] & 0x0F)<<2) | (pccIn[2] >> 6)]; 00038 *pcOut++ = g_ccB64Tbl[pccIn[2] & 0x3f]; 00039 00040 } 00041 00042 //Check if String is not multiple of 3 Bytes 00043 if (iCount != iLen) 00044 { 00045 00046 unsigned char ucLastByte; 00047 00048 *pcOut++ = g_ccB64Tbl[pccIn[0] >> 2]; 00049 ucLastByte = ((pccIn[0] & 0x03)<<4); 00050 00051 00052 if (iLen - iCount > 1) 00053 { 00054 //If there are 2 Extra Bytes 00055 ucLastByte |= (pccIn[1] >> 4); 00056 *pcOut++ = g_ccB64Tbl[ucLastByte]; 00057 *pcOut++ = g_ccB64Tbl[((pccIn[1] & 0x0F)<<2)]; 00058 } 00059 else 00060 { 00061 //If there is only 1 Extra Byte 00062 *pcOut++ = g_ccB64Tbl[ucLastByte]; 00063 *pcOut++ = '='; 00064 } 00065 00066 *pcOut++ = '='; 00067 } 00068 00069 *pcOut = '\0'; 00070 00071 } 00072 00073 /// @} 00074 00075
Generated on Wed Jul 13 2022 15:58:45 by 1.7.2