Myserial Library extends RawSerial
MySerial.h@15:a0b05e764268, 2014-07-04 (annotated)
- Committer:
- naao
- Date:
- Fri Jul 04 11:06:02 2014 +0000
- Revision:
- 15:a0b05e764268
- Parent:
- 14:8bd054a87ac5
- Child:
- 16:596e062f6c45
correct cWord initiate size
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 | 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 | 5:72514f93cba9 | 31 | * // int iRtn = pc.GetString(6,&cWord); //Serial received chars by pointer cWord |
naao | 6:7853f8641372 | 32 | * int iRtn = pc.GetString(6,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 |