Myserial Library extends RawSerial

Committer:
naao
Date:
Thu Jul 03 03:19:26 2014 +0000
Revision:
12:02b3877b48c6
Parent:
11:34ae126807a0
Child:
13:8cf9a9d7d44d
changed base library to SerialBase and reffers to RawSerial

Who changed what in which revision?

UserRevisionLine numberNew contents of line
naao 0:5b0b84a10bba 1 /** mbed Serial Library extend RawSerial
naao 0:5b0b84a10bba 2 * Copyright (c) 2014 Naoki Okino
naao 0:5b0b84a10bba 3 *
naao 0:5b0b84a10bba 4 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
naao 0:5b0b84a10bba 5 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
naao 0:5b0b84a10bba 6 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
naao 0:5b0b84a10bba 7 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
naao 0:5b0b84a10bba 8 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
naao 0:5b0b84a10bba 9 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
naao 0:5b0b84a10bba 10 * THE SOFTWARE.
naao 0:5b0b84a10bba 11 */
naao 0:5b0b84a10bba 12 #ifndef MBED_MYSERIAL_H
naao 0:5b0b84a10bba 13 #define MBED_MYSERIAL_H
naao 0:5b0b84a10bba 14
naao 0:5b0b84a10bba 15 #include "mbed.h"
naao 10:930d325f3d31 16
naao 0:5b0b84a10bba 17 /** MySerial control class, based on a RawSerial
naao 0:5b0b84a10bba 18 *
naao 0:5b0b84a10bba 19 * Example:
naao 0:5b0b84a10bba 20 * @code
naao 0:5b0b84a10bba 21 * #include "mbed.h"
naao 0:5b0b84a10bba 22 * #include "MySerial.h"
naao 0:5b0b84a10bba 23 *
naao 11:34ae126807a0 24 * char *name = "test";
naao 11:34ae126807a0 25 * MySerial pc(USBTX,USBRX,name); //instance of MySerial Class
naao 0:5b0b84a10bba 26 * char cWord[16]; //receive chars or cWord[256], cWord[1024] etc..
naao 0:5b0b84a10bba 27 *
naao 0:5b0b84a10bba 28 * void readbuf()
naao 0:5b0b84a10bba 29 * {
naao 5:72514f93cba9 30 * // int iRtn = pc.GetString(6,&cWord); //Serial received chars by pointer cWord
naao 6:7853f8641372 31 * int iRtn = pc.GetString(6,cWord); //Serial received chars byref of cWord
naao 0:5b0b84a10bba 32 * }
naao 0:5b0b84a10bba 33 * int main() {
naao 9:981384455445 34 * pc.baud(9600); //set baud rate
naao 9:981384455445 35 * pc.format(8, MySerial::None, 1);//set bits for a byte, parity bit, stop bit
naao 9:981384455445 36 * pc.SetRxWait(0.01, 0.001); //set wait getting chars after interrupted, each char
naao 0:5b0b84a10bba 37 * pc.attach( readbuf, MySerial::RxIrq ); //Set Interrupt by Serial receive
naao 0:5b0b84a10bba 38 * }
naao 0:5b0b84a10bba 39 * @endcode
naao 0:5b0b84a10bba 40 */
naao 12:02b3877b48c6 41 class MySerial : public SerialBase{
naao 0:5b0b84a10bba 42
naao 0:5b0b84a10bba 43 public:
naao 12:02b3877b48c6 44
naao 12:02b3877b48c6 45 /** constructor to get chars received by serial
naao 0:5b0b84a10bba 46 *
naao 3:e4c443ce0fbe 47 * @param PinName tx
naao 3:e4c443ce0fbe 48 * @param PinName rx
naao 0:5b0b84a10bba 49 */
naao 12:02b3877b48c6 50 MySerial(PinName tx, PinName rx);
naao 12:02b3877b48c6 51
naao 12:02b3877b48c6 52 /** Write a char to the serial port
naao 12:02b3877b48c6 53 *
naao 12:02b3877b48c6 54 * @param c The char to write
naao 12:02b3877b48c6 55 *
naao 12:02b3877b48c6 56 * @returns The written char or -1 if an error occured
naao 12:02b3877b48c6 57 */
naao 12:02b3877b48c6 58 int putc(int c);
naao 12:02b3877b48c6 59
naao 12:02b3877b48c6 60 /** Read a char from the serial port
naao 12:02b3877b48c6 61 *
naao 12:02b3877b48c6 62 * @returns The char read from the serial port
naao 12:02b3877b48c6 63 */
naao 12:02b3877b48c6 64 int getc();
naao 12:02b3877b48c6 65
naao 12:02b3877b48c6 66 /** Write a string to the serial port
naao 12:02b3877b48c6 67 *
naao 12:02b3877b48c6 68 * @param str The string to write
naao 12:02b3877b48c6 69 *
naao 12:02b3877b48c6 70 * @returns 0 if the write succeeds, EOF for error
naao 12:02b3877b48c6 71 */
naao 12:02b3877b48c6 72 int puts(const char *str);
naao 12:02b3877b48c6 73
naao 12:02b3877b48c6 74 /** set wait getting chars after interrupted
naao 9:981384455445 75 *
naao 9:981384455445 76 * @param float _fRxStartWait wait getting a 1st char after interrupted
naao 9:981384455445 77 * @param float _fRxEachWait wait getting each char
naao 9:981384455445 78 */
naao 9:981384455445 79 void SetRxWait(float _fRxStartWait, float _fRxEachWait);
naao 9:981384455445 80
naao 10:930d325f3d31 81 /** function to get chars after received chars by serial
naao 0:5b0b84a10bba 82 *
naao 0:5b0b84a10bba 83 * @param int size for get chars
naao 0:5b0b84a10bba 84 * @param *cWord returns got chars by pointer
naao 0:5b0b84a10bba 85 * @param returns success by 0
naao 0:5b0b84a10bba 86 */
naao 0:5b0b84a10bba 87 virtual int GetString(int size, char *cWord);
naao 0:5b0b84a10bba 88
naao 10:930d325f3d31 89 /** overload function to get chars after received chars by serial
naao 0:5b0b84a10bba 90 *
naao 0:5b0b84a10bba 91 * @param int size for get chars
naao 10:930d325f3d31 92 * @param cWord returns got chars by ref
naao 0:5b0b84a10bba 93 * @param returns success by 0
naao 0:5b0b84a10bba 94 */
naao 6:7853f8641372 95 template <class X> int GetString(int size, X cWord)
naao 6:7853f8641372 96 {
naao 7:d5fe75a0a885 97 return GetString(size, &cWord);
naao 6:7853f8641372 98 }
naao 0:5b0b84a10bba 99
naao 0:5b0b84a10bba 100 protected:
naao 9:981384455445 101 float fRxStartWait;
naao 9:981384455445 102 float fRxEachWait;
naao 10:930d325f3d31 103
naao 10:930d325f3d31 104 }; /* class MySerial */
naao 0:5b0b84a10bba 105
naao 0:5b0b84a10bba 106 #endif