Myserial Library extends RawSerial

Committer:
naao
Date:
Fri Jul 04 11:10:06 2014 +0000
Revision:
16:596e062f6c45
Parent:
15:a0b05e764268
fixed exmaple

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 13:8cf9a9d7d44d 24 * MySerial pc(USBTX,USBRX); //instance of MySerial Class
naao 0:5b0b84a10bba 25 * char cWord[16]; //receive chars or cWord[256], cWord[1024] etc..
naao 15:a0b05e764268 26 * int readSize = 15;
naao 0:5b0b84a10bba 27 *
naao 0:5b0b84a10bba 28 * void readbuf()
naao 0:5b0b84a10bba 29 * {
naao 15:a0b05e764268 30 * if (readSize >= sizeof(cWord)) { readSize = sizeof(cWord)-1; }
naao 16:596e062f6c45 31 * // int iRtn = pc.GetString(readSize,&cWord); //Serial received chars by pointer cWord
naao 16:596e062f6c45 32 * int iRtn = pc.GetString(readSize,cWord); //Serial received chars byref of cWord
naao 0:5b0b84a10bba 33 * }
naao 0:5b0b84a10bba 34 * int main() {
naao 9:981384455445 35 * pc.baud(9600); //set baud rate
naao 9:981384455445 36 * pc.format(8, MySerial::None, 1);//set bits for a byte, parity bit, stop bit
naao 9:981384455445 37 * pc.SetRxWait(0.01, 0.001); //set wait getting chars after interrupted, each char
naao 0:5b0b84a10bba 38 * pc.attach( readbuf, MySerial::RxIrq ); //Set Interrupt by Serial receive
naao 0:5b0b84a10bba 39 * }
naao 0:5b0b84a10bba 40 * @endcode
naao 0:5b0b84a10bba 41 */
naao 14:8bd054a87ac5 42 class MySerial : public Serial{
naao 0:5b0b84a10bba 43
naao 0:5b0b84a10bba 44 public:
naao 12:02b3877b48c6 45
naao 12:02b3877b48c6 46 /** constructor to get chars received by serial
naao 0:5b0b84a10bba 47 *
naao 3:e4c443ce0fbe 48 * @param PinName tx
naao 3:e4c443ce0fbe 49 * @param PinName rx
naao 0:5b0b84a10bba 50 */
naao 12:02b3877b48c6 51 MySerial(PinName tx, PinName rx);
naao 12:02b3877b48c6 52
naao 12:02b3877b48c6 53 /** set wait getting chars after interrupted
naao 9:981384455445 54 *
naao 9:981384455445 55 * @param float _fRxStartWait wait getting a 1st char after interrupted
naao 9:981384455445 56 * @param float _fRxEachWait wait getting each char
naao 9:981384455445 57 */
naao 9:981384455445 58 void SetRxWait(float _fRxStartWait, float _fRxEachWait);
naao 9:981384455445 59
naao 10:930d325f3d31 60 /** function to get chars after received chars by serial
naao 0:5b0b84a10bba 61 *
naao 0:5b0b84a10bba 62 * @param int size for get chars
naao 0:5b0b84a10bba 63 * @param *cWord returns got chars by pointer
naao 0:5b0b84a10bba 64 * @param returns success by 0
naao 0:5b0b84a10bba 65 */
naao 0:5b0b84a10bba 66 virtual int GetString(int size, char *cWord);
naao 0:5b0b84a10bba 67
naao 10:930d325f3d31 68 /** overload function to get chars after received chars by serial
naao 0:5b0b84a10bba 69 *
naao 0:5b0b84a10bba 70 * @param int size for get chars
naao 10:930d325f3d31 71 * @param cWord returns got chars by ref
naao 0:5b0b84a10bba 72 * @param returns success by 0
naao 0:5b0b84a10bba 73 */
naao 6:7853f8641372 74 template <class X> int GetString(int size, X cWord)
naao 6:7853f8641372 75 {
naao 7:d5fe75a0a885 76 return GetString(size, &cWord);
naao 6:7853f8641372 77 }
naao 0:5b0b84a10bba 78
naao 0:5b0b84a10bba 79 protected:
naao 9:981384455445 80 float fRxStartWait;
naao 9:981384455445 81 float fRxEachWait;
naao 10:930d325f3d31 82
naao 10:930d325f3d31 83 }; /* class MySerial */
naao 0:5b0b84a10bba 84
naao 0:5b0b84a10bba 85 #endif