Blynk library for embedded hardware. Works with Arduino, ESP8266, Raspberry Pi, Intel Edison/Galileo, LinkIt ONE, Particle Core/Photon, Energia, ARM mbed, etc. http://www.blynk.cc/
Dependents: Blynk_RBL_BLE_Nano Blynk_MicroBit Blynk_Serial Blynk_RBL_BLE_Nano
BlynkSimpleSerial.h@22:e1d3971fd902, 2018-01-26 (annotated)
- Committer:
- vshymanskyy
- Date:
- Fri Jan 26 22:18:19 2018 +0000
- Revision:
- 22:e1d3971fd902
- Parent:
- 17:b4022b9c54e4
Fix BlynkSystemInit for MBED
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 1 | /** |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 2 | * @file BlynkSimpleSerial.h |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 3 | * @author Volodymyr Shymanskyy |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 4 | * @license This project is released under the MIT License (MIT) |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 5 | * @copyright Copyright (c) 2015 Volodymyr Shymanskyy |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 6 | * @date Jan 2015 |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 7 | * @brief |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 8 | * |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 9 | */ |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 10 | |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 11 | #ifndef BlynkSimpleSerial_h |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 12 | #define BlynkSimpleSerial_h |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 13 | |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 14 | #ifndef BLYNK_INFO_CONNECTION |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 15 | #define BLYNK_INFO_CONNECTION "Serial" |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 16 | #endif |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 17 | |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 18 | #include <BlynkApiMbed.h> |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 19 | #include <Blynk/BlynkProtocol.h> |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 20 | |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 21 | class BlynkTransportSerial |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 22 | { |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 23 | public: |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 24 | BlynkTransportSerial() |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 25 | : serial(NULL), conn(0) |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 26 | {} |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 27 | |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 28 | // IP redirect not available |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 29 | void begin(char BLYNK_UNUSED *h, uint16_t BLYNK_UNUSED p) {} |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 30 | |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 31 | void begin(Serial& s) { |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 32 | serial = &s; |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 33 | } |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 34 | |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 35 | bool connect() { |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 36 | BLYNK_LOG1(BLYNK_F("Connecting...")); |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 37 | return conn = true; |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 38 | } |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 39 | void disconnect() { conn = false; } |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 40 | |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 41 | size_t read(void* buf, size_t len) { |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 42 | return fread(buf, 1, len, *serial); |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 43 | } |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 44 | size_t write(const void* buf, size_t len) { |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 45 | return fwrite(buf, 1, len, *serial); |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 46 | } |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 47 | |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 48 | bool connected() { return conn; } |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 49 | int available() { return serial->readable(); } |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 50 | |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 51 | protected: |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 52 | Serial* serial; |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 53 | bool conn; |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 54 | }; |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 55 | |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 56 | class BlynkSerial |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 57 | : public BlynkProtocol<BlynkTransportSerial> |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 58 | { |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 59 | typedef BlynkProtocol<BlynkTransportSerial> Base; |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 60 | public: |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 61 | BlynkSerial(BlynkTransportSerial& transp) |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 62 | : Base(transp) |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 63 | {} |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 64 | |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 65 | void config(Serial& serial, |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 66 | const char* auth) |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 67 | { |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 68 | Base::begin(auth); |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 69 | this->conn.begin(serial); |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 70 | } |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 71 | |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 72 | void begin(Serial& serial, const char* auth) { |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 73 | config(serial, auth); |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 74 | while(this->connect() != true) {} |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 75 | } |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 76 | }; |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 77 | |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 78 | static BlynkTransportSerial _blynkTransport; |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 79 | BlynkSerial Blynk(_blynkTransport); |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 80 | |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 81 | #include <BlynkWidgets.h> |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 82 | |
Volodymyr Shymanskyy |
17:b4022b9c54e4 | 83 | #endif |