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 /**
TaylorGy 0:dfb22bd0e039 3 * @file Buffer.cpp
TaylorGy 0:dfb22bd0e039 4 * @brief Software Buffer - Templated Ring Buffer for most data types
TaylorGy 0:dfb22bd0e039 5 * @author sam grove
TaylorGy 0:dfb22bd0e039 6 * @version 1.0
TaylorGy 0:dfb22bd0e039 7 * @see
TaylorGy 0:dfb22bd0e039 8 *
TaylorGy 0:dfb22bd0e039 9 * Copyright (c) 2013
TaylorGy 0:dfb22bd0e039 10 *
TaylorGy 0:dfb22bd0e039 11 * Licensed under the Apache License, Version 2.0 (the "License");
TaylorGy 0:dfb22bd0e039 12 * you may not use this file except in compliance with the License.
TaylorGy 0:dfb22bd0e039 13 * You may obtain a copy of the License at
TaylorGy 0:dfb22bd0e039 14 *
TaylorGy 0:dfb22bd0e039 15 * http://www.apache.org/licenses/LICENSE-2.0
TaylorGy 0:dfb22bd0e039 16 *
TaylorGy 0:dfb22bd0e039 17 * Unless required by applicable law or agreed to in writing, software
TaylorGy 0:dfb22bd0e039 18 * distributed under the License is distributed on an "AS IS" BASIS,
TaylorGy 0:dfb22bd0e039 19 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
TaylorGy 0:dfb22bd0e039 20 * See the License for the specific language governing permissions and
TaylorGy 0:dfb22bd0e039 21 * limitations under the License.
TaylorGy 0:dfb22bd0e039 22 */
TaylorGy 0:dfb22bd0e039 23
TaylorGy 0:dfb22bd0e039 24 #include "MyBuffer.h"
TaylorGy 0:dfb22bd0e039 25
TaylorGy 0:dfb22bd0e039 26 template <class T>
TaylorGy 0:dfb22bd0e039 27 MyBuffer<T>::MyBuffer(uint32_t size)
TaylorGy 0:dfb22bd0e039 28 {
TaylorGy 0:dfb22bd0e039 29 _buf = new T [size];
TaylorGy 0:dfb22bd0e039 30 _size = size;
TaylorGy 0:dfb22bd0e039 31 clear();
TaylorGy 0:dfb22bd0e039 32
TaylorGy 0:dfb22bd0e039 33 return;
TaylorGy 0:dfb22bd0e039 34 }
TaylorGy 0:dfb22bd0e039 35
TaylorGy 0:dfb22bd0e039 36 template <class T>
TaylorGy 0:dfb22bd0e039 37 MyBuffer<T>::~MyBuffer()
TaylorGy 0:dfb22bd0e039 38 {
TaylorGy 0:dfb22bd0e039 39 delete [] _buf;
TaylorGy 0:dfb22bd0e039 40
TaylorGy 0:dfb22bd0e039 41 return;
TaylorGy 0:dfb22bd0e039 42 }
TaylorGy 0:dfb22bd0e039 43
TaylorGy 0:dfb22bd0e039 44 template <class T>
TaylorGy 0:dfb22bd0e039 45 uint32_t MyBuffer<T>::getSize()
TaylorGy 0:dfb22bd0e039 46 {
TaylorGy 0:dfb22bd0e039 47 return this->_size;
TaylorGy 0:dfb22bd0e039 48 }
TaylorGy 0:dfb22bd0e039 49
TaylorGy 0:dfb22bd0e039 50 template <class T>
TaylorGy 0:dfb22bd0e039 51 void MyBuffer<T>::clear(void)
TaylorGy 0:dfb22bd0e039 52 {
TaylorGy 0:dfb22bd0e039 53 _wloc = 0;
TaylorGy 0:dfb22bd0e039 54 _rloc = 0;
TaylorGy 0:dfb22bd0e039 55 memset(_buf, 0, _size);
TaylorGy 0:dfb22bd0e039 56
TaylorGy 0:dfb22bd0e039 57 return;
TaylorGy 0:dfb22bd0e039 58 }
TaylorGy 0:dfb22bd0e039 59
TaylorGy 0:dfb22bd0e039 60 template <class T>
TaylorGy 0:dfb22bd0e039 61 uint32_t MyBuffer<T>::peek(char c)
TaylorGy 0:dfb22bd0e039 62 {
TaylorGy 0:dfb22bd0e039 63 return 1;
TaylorGy 0:dfb22bd0e039 64 }
TaylorGy 0:dfb22bd0e039 65
TaylorGy 0:dfb22bd0e039 66 // make the linker aware of some possible types
TaylorGy 0:dfb22bd0e039 67 template class MyBuffer<uint8_t>;
TaylorGy 0:dfb22bd0e039 68 template class MyBuffer<int8_t>;
TaylorGy 0:dfb22bd0e039 69 template class MyBuffer<uint16_t>;
TaylorGy 0:dfb22bd0e039 70 template class MyBuffer<int16_t>;
TaylorGy 0:dfb22bd0e039 71 template class MyBuffer<uint32_t>;
TaylorGy 0:dfb22bd0e039 72 template class MyBuffer<int32_t>;
TaylorGy 0:dfb22bd0e039 73 template class MyBuffer<uint64_t>;
TaylorGy 0:dfb22bd0e039 74 template class MyBuffer<int64_t>;
TaylorGy 0:dfb22bd0e039 75 template class MyBuffer<char>;
TaylorGy 0:dfb22bd0e039 76 template class MyBuffer<wchar_t>;