Myserial Library extends RawSerial
MySerial.h@10:930d325f3d31, 2014-06-27 (annotated)
- Committer:
- naao
- Date:
- Fri Jun 27 15:33:01 2014 +0000
- Revision:
- 10:930d325f3d31
- Parent:
- 9:981384455445
- Child:
- 11:34ae126807a0
correct spell in comment
Who changed what in which revision?
User | Revision | Line number | New 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 | 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 | 10:930d325f3d31 | 57 | /** function to get chars after received chars 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 | 10:930d325f3d31 | 65 | /** overload function to get chars after received chars by serial |
naao | 0:5b0b84a10bba | 66 | * |
naao | 0:5b0b84a10bba | 67 | * @param int size for get chars |
naao | 10:930d325f3d31 | 68 | * @param cWord 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 | 10:930d325f3d31 | 79 | |
naao | 10:930d325f3d31 | 80 | }; /* class MySerial */ |
naao | 0:5b0b84a10bba | 81 | |
naao | 0:5b0b84a10bba | 82 | #endif |