Myserial Library extends RawSerial

Committer:
naao
Date:
Tue Jun 24 08:58:43 2014 +0000
Revision:
9:981384455445
Parent:
7:d5fe75a0a885
Child:
10:930d325f3d31
added procedure to set rx wait time

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