ESP8266 driver from ARM

Dependents:   8-0_OneNet_IoT_demo STM32F103C8T6_OneNet_IoT

Committer:
TaylorGy
Date:
Wed Mar 29 03:09:15 2017 +0000
Revision:
0:dfb22bd0e039
ESP8266 driver from ARM

Who changed what in which revision?

UserRevisionLine numberNew contents of line
TaylorGy 0:dfb22bd0e039 1 /*
TaylorGy 0:dfb22bd0e039 2 * Copyright (c) 2014-2015 ARM Limited. All rights reserved.
TaylorGy 0:dfb22bd0e039 3 * SPDX-License-Identifier: Apache-2.0
TaylorGy 0:dfb22bd0e039 4 * Licensed under the Apache License, Version 2.0 (the License); you may
TaylorGy 0:dfb22bd0e039 5 * not use this file except in compliance with the License.
TaylorGy 0:dfb22bd0e039 6 * You may obtain a copy of the License at
TaylorGy 0:dfb22bd0e039 7 *
TaylorGy 0:dfb22bd0e039 8 * http://www.apache.org/licenses/LICENSE-2.0
TaylorGy 0:dfb22bd0e039 9 *
TaylorGy 0:dfb22bd0e039 10 * Unless required by applicable law or agreed to in writing, software
TaylorGy 0:dfb22bd0e039 11 * distributed under the License is distributed on an AS IS BASIS, WITHOUT
TaylorGy 0:dfb22bd0e039 12 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
TaylorGy 0:dfb22bd0e039 13 * See the License for the specific language governing permissions and
TaylorGy 0:dfb22bd0e039 14 * limitations under the License.
TaylorGy 0:dfb22bd0e039 15 */
TaylorGy 0:dfb22bd0e039 16
TaylorGy 0:dfb22bd0e039 17 #include <stdarg.h>
TaylorGy 0:dfb22bd0e039 18 #include <stdint.h>
TaylorGy 0:dfb22bd0e039 19 #include <stdio.h>
TaylorGy 0:dfb22bd0e039 20 #include <string.h>
TaylorGy 0:dfb22bd0e039 21
TaylorGy 0:dfb22bd0e039 22 #include "mbed_error.h"
TaylorGy 0:dfb22bd0e039 23
TaylorGy 0:dfb22bd0e039 24 size_t BufferedSerialThunk(void *buf_serial, const void *s, size_t length);
TaylorGy 0:dfb22bd0e039 25
TaylorGy 0:dfb22bd0e039 26 int BufferedPrintfC(void *stream, int size, const char* format, va_list arg)
TaylorGy 0:dfb22bd0e039 27 {
TaylorGy 0:dfb22bd0e039 28 int r;
TaylorGy 0:dfb22bd0e039 29 char buffer[512];
TaylorGy 0:dfb22bd0e039 30 if (size >= 512) {
TaylorGy 0:dfb22bd0e039 31 return -1;
TaylorGy 0:dfb22bd0e039 32 }
TaylorGy 0:dfb22bd0e039 33 memset(buffer, 0, size);
TaylorGy 0:dfb22bd0e039 34 r = vsprintf(buffer, format, arg);
TaylorGy 0:dfb22bd0e039 35 // this may not hit the heap but should alert the user anyways
TaylorGy 0:dfb22bd0e039 36 if(r > (int32_t) size) {
TaylorGy 0:dfb22bd0e039 37 error("%s %d buffer overwrite (max_buf_size: %d exceeded: %d)!\r\n", __FILE__, __LINE__, size, r);
TaylorGy 0:dfb22bd0e039 38 return 0;
TaylorGy 0:dfb22bd0e039 39 }
TaylorGy 0:dfb22bd0e039 40 if ( r > 0 ) {
TaylorGy 0:dfb22bd0e039 41 BufferedSerialThunk(stream, buffer, r);
TaylorGy 0:dfb22bd0e039 42 }
TaylorGy 0:dfb22bd0e039 43 return r;
TaylorGy 0:dfb22bd0e039 44 }