データの保存、更新、取得ができるWebサービス「milkcocoa」に接続し、データのプッシュ、送信、取得ができるライブラリです。 https://mlkcca.com/
Dependents: MilkcocoaSample MilkcocoaSampleESP8266_LED MilkcocoaSampleESP8266 MilkcocoaSample_3G ... more
SoftSerialSendOnly/SoftSerialSendOnry.h@0:23e533c4b1ec, 2015-12-15 (annotated)
- Committer:
- jksoft
- Date:
- Tue Dec 15 09:56:32 2015 +0000
- Revision:
- 0:23e533c4b1ec
??; Subscribe?1?????; ?Milkcocoa::on???????????????????????
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| jksoft | 0:23e533c4b1ec | 1 | #ifndef SOFTSERIAL_SEND_ONRY_H |
| jksoft | 0:23e533c4b1ec | 2 | #define SOFTSERIAL_SEND_ONRY_H |
| jksoft | 0:23e533c4b1ec | 3 | |
| jksoft | 0:23e533c4b1ec | 4 | #include "mbed.h" |
| jksoft | 0:23e533c4b1ec | 5 | #include "SoftSerial_Ticker.h" |
| jksoft | 0:23e533c4b1ec | 6 | /** A software serial implementation |
| jksoft | 0:23e533c4b1ec | 7 | * |
| jksoft | 0:23e533c4b1ec | 8 | */ |
| jksoft | 0:23e533c4b1ec | 9 | class SoftSerialSendOnry: public Stream { |
| jksoft | 0:23e533c4b1ec | 10 | |
| jksoft | 0:23e533c4b1ec | 11 | public: |
| jksoft | 0:23e533c4b1ec | 12 | /** |
| jksoft | 0:23e533c4b1ec | 13 | * Constructor |
| jksoft | 0:23e533c4b1ec | 14 | * |
| jksoft | 0:23e533c4b1ec | 15 | * @param TX Name of the TX pin, NC for not connected |
| jksoft | 0:23e533c4b1ec | 16 | * @param name Name of the connection |
| jksoft | 0:23e533c4b1ec | 17 | */ |
| jksoft | 0:23e533c4b1ec | 18 | SoftSerialSendOnry(PinName TX, const char* name = NULL); |
| jksoft | 0:23e533c4b1ec | 19 | virtual ~SoftSerialSendOnry(); |
| jksoft | 0:23e533c4b1ec | 20 | |
| jksoft | 0:23e533c4b1ec | 21 | /** Set the baud rate of the serial port |
| jksoft | 0:23e533c4b1ec | 22 | * |
| jksoft | 0:23e533c4b1ec | 23 | * @param baudrate The baudrate of the serial port (default = 9600). |
| jksoft | 0:23e533c4b1ec | 24 | */ |
| jksoft | 0:23e533c4b1ec | 25 | void baud(int baudrate); |
| jksoft | 0:23e533c4b1ec | 26 | |
| jksoft | 0:23e533c4b1ec | 27 | enum Parity { |
| jksoft | 0:23e533c4b1ec | 28 | None = 0, |
| jksoft | 0:23e533c4b1ec | 29 | Odd, |
| jksoft | 0:23e533c4b1ec | 30 | Even, |
| jksoft | 0:23e533c4b1ec | 31 | Forced1, |
| jksoft | 0:23e533c4b1ec | 32 | Forced0 |
| jksoft | 0:23e533c4b1ec | 33 | }; |
| jksoft | 0:23e533c4b1ec | 34 | |
| jksoft | 0:23e533c4b1ec | 35 | enum IrqType { |
| jksoft | 0:23e533c4b1ec | 36 | RxIrq = 0, |
| jksoft | 0:23e533c4b1ec | 37 | TxIrq |
| jksoft | 0:23e533c4b1ec | 38 | }; |
| jksoft | 0:23e533c4b1ec | 39 | |
| jksoft | 0:23e533c4b1ec | 40 | /** Set the transmission format used by the serial port |
| jksoft | 0:23e533c4b1ec | 41 | * |
| jksoft | 0:23e533c4b1ec | 42 | * @param bits The number of bits in a word (default = 8) |
| jksoft | 0:23e533c4b1ec | 43 | * @param parity The parity used (SerialBase::None, SerialBase::Odd, SerialBase::Even, SerialBase::Forced1, SerialBase::Forced0; default = SerialBase::None) |
| jksoft | 0:23e533c4b1ec | 44 | * @param stop The number of stop bits (default = 1) |
| jksoft | 0:23e533c4b1ec | 45 | */ |
| jksoft | 0:23e533c4b1ec | 46 | void format(int bits=8, Parity parity=SoftSerialSendOnry::None, int stop_bits=1); |
| jksoft | 0:23e533c4b1ec | 47 | |
| jksoft | 0:23e533c4b1ec | 48 | /** Determine if there is space available to write a character |
| jksoft | 0:23e533c4b1ec | 49 | * |
| jksoft | 0:23e533c4b1ec | 50 | * @returns |
| jksoft | 0:23e533c4b1ec | 51 | * 1 if there is space to write a character, |
| jksoft | 0:23e533c4b1ec | 52 | * 0 otherwise |
| jksoft | 0:23e533c4b1ec | 53 | */ |
| jksoft | 0:23e533c4b1ec | 54 | int writeable(); |
| jksoft | 0:23e533c4b1ec | 55 | |
| jksoft | 0:23e533c4b1ec | 56 | /** Attach a function to call whenever a serial interrupt is generated |
| jksoft | 0:23e533c4b1ec | 57 | * |
| jksoft | 0:23e533c4b1ec | 58 | * @param fptr A pointer to a void function, or 0 to set as none |
| jksoft | 0:23e533c4b1ec | 59 | * @param type Which serial interrupt to attach the member function to (Seriall::RxIrq for receive, TxIrq for transmit buffer empty) |
| jksoft | 0:23e533c4b1ec | 60 | */ |
| jksoft | 0:23e533c4b1ec | 61 | void attach(void (*fptr)(void), IrqType type=RxIrq) { |
| jksoft | 0:23e533c4b1ec | 62 | fpointer[type].attach(fptr); |
| jksoft | 0:23e533c4b1ec | 63 | } |
| jksoft | 0:23e533c4b1ec | 64 | |
| jksoft | 0:23e533c4b1ec | 65 | /** Attach a member function to call whenever a serial interrupt is generated |
| jksoft | 0:23e533c4b1ec | 66 | * |
| jksoft | 0:23e533c4b1ec | 67 | * @param tptr pointer to the object to call the member function on |
| jksoft | 0:23e533c4b1ec | 68 | * @param mptr pointer to the member function to be called |
| jksoft | 0:23e533c4b1ec | 69 | * @param type Which serial interrupt to attach the member function to (Seriall::RxIrq for receive, TxIrq for transmit buffer empty) |
| jksoft | 0:23e533c4b1ec | 70 | */ |
| jksoft | 0:23e533c4b1ec | 71 | template<typename T> |
| jksoft | 0:23e533c4b1ec | 72 | void attach(T* tptr, void (T::*mptr)(void), IrqType type=RxIrq) { |
| jksoft | 0:23e533c4b1ec | 73 | fpointer[type].attach(tptr, mptr); |
| jksoft | 0:23e533c4b1ec | 74 | } |
| jksoft | 0:23e533c4b1ec | 75 | |
| jksoft | 0:23e533c4b1ec | 76 | /** Generate a break condition on the serial line |
| jksoft | 0:23e533c4b1ec | 77 | */ |
| jksoft | 0:23e533c4b1ec | 78 | void send_break(); |
| jksoft | 0:23e533c4b1ec | 79 | |
| jksoft | 0:23e533c4b1ec | 80 | protected: |
| jksoft | 0:23e533c4b1ec | 81 | DigitalOut *tx; |
| jksoft | 0:23e533c4b1ec | 82 | |
| jksoft | 0:23e533c4b1ec | 83 | bool tx_en; |
| jksoft | 0:23e533c4b1ec | 84 | int bit_period; |
| jksoft | 0:23e533c4b1ec | 85 | int _bits, _stop_bits, _total_bits; |
| jksoft | 0:23e533c4b1ec | 86 | Parity _parity; |
| jksoft | 0:23e533c4b1ec | 87 | |
| jksoft | 0:23e533c4b1ec | 88 | FunctionPointer fpointer[2]; |
| jksoft | 0:23e533c4b1ec | 89 | |
| jksoft | 0:23e533c4b1ec | 90 | //tx |
| jksoft | 0:23e533c4b1ec | 91 | void tx_handler(void); |
| jksoft | 0:23e533c4b1ec | 92 | void prepare_tx(int c); |
| jksoft | 0:23e533c4b1ec | 93 | FlexTicker txticker; |
| jksoft | 0:23e533c4b1ec | 94 | int _char; |
| jksoft | 0:23e533c4b1ec | 95 | volatile int tx_bit; |
| jksoft | 0:23e533c4b1ec | 96 | |
| jksoft | 0:23e533c4b1ec | 97 | |
| jksoft | 0:23e533c4b1ec | 98 | |
| jksoft | 0:23e533c4b1ec | 99 | virtual int _getc(); |
| jksoft | 0:23e533c4b1ec | 100 | virtual int _putc(int c); |
| jksoft | 0:23e533c4b1ec | 101 | }; |
| jksoft | 0:23e533c4b1ec | 102 | |
| jksoft | 0:23e533c4b1ec | 103 | |
| jksoft | 0:23e533c4b1ec | 104 | #endif |
| jksoft | 0:23e533c4b1ec | 105 |
Milkcocoa