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

Committer:
vshymanskyy
Date:
Fri Jan 26 22:18:19 2018 +0000
Revision:
22:e1d3971fd902
Parent:
18:c328c1a97f90
Fix BlynkSystemInit for MBED

Who changed what in which revision?

UserRevisionLine numberNew contents of line
vshymanskyy 0:58b20b438383 1 /**
vshymanskyy 0:58b20b438383 2 * @file BlynkUtility.h
vshymanskyy 0:58b20b438383 3 * @author Volodymyr Shymanskyy
vshymanskyy 0:58b20b438383 4 * @license This project is released under the MIT License (MIT)
vshymanskyy 0:58b20b438383 5 * @copyright Copyright (c) 2015 Volodymyr Shymanskyy
vshymanskyy 0:58b20b438383 6 * @date Jun 2015
vshymanskyy 0:58b20b438383 7 * @brief Utility functions
vshymanskyy 0:58b20b438383 8 *
vshymanskyy 0:58b20b438383 9 */
vshymanskyy 0:58b20b438383 10
vshymanskyy 0:58b20b438383 11 #ifndef BlynkUtility_h
vshymanskyy 0:58b20b438383 12 #define BlynkUtility_h
vshymanskyy 0:58b20b438383 13
vshymanskyy 0:58b20b438383 14 template<class T>
vshymanskyy 0:58b20b438383 15 const T& BlynkMin(const T& a, const T& b)
vshymanskyy 0:58b20b438383 16 {
vshymanskyy 0:58b20b438383 17 return (b < a) ? b : a;
vshymanskyy 0:58b20b438383 18 }
vshymanskyy 0:58b20b438383 19
vshymanskyy 0:58b20b438383 20 template<class T>
vshymanskyy 0:58b20b438383 21 const T& BlynkMax(const T& a, const T& b)
vshymanskyy 0:58b20b438383 22 {
vshymanskyy 0:58b20b438383 23 return (b < a) ? a : b;
vshymanskyy 0:58b20b438383 24 }
vshymanskyy 0:58b20b438383 25
vshymanskyy 0:58b20b438383 26 template <unsigned WSIZE, typename T>
vshymanskyy 0:58b20b438383 27 void BlynkAverageSample (T& avg, const T& input) {
vshymanskyy 0:58b20b438383 28 avg -= avg/WSIZE;
vshymanskyy 0:58b20b438383 29 const T add = input/WSIZE;
vshymanskyy 0:58b20b438383 30 // Fix for shorter delays
Volodymyr Shymanskyy 5:05777a102fdb 31 if (add > 0)
Volodymyr Shymanskyy 5:05777a102fdb 32 avg += add;
Volodymyr Shymanskyy 5:05777a102fdb 33 else
Volodymyr Shymanskyy 5:05777a102fdb 34 avg -= 1;
vshymanskyy 0:58b20b438383 35 }
vshymanskyy 0:58b20b438383 36
Volodymyr Shymanskyy 18:c328c1a97f90 37 class BlynkHelperAutoInc {
Volodymyr Shymanskyy 18:c328c1a97f90 38 public:
Volodymyr Shymanskyy 18:c328c1a97f90 39 BlynkHelperAutoInc(uint8_t& counter) : c(counter) { ++c; }
Volodymyr Shymanskyy 18:c328c1a97f90 40 ~BlynkHelperAutoInc() { --c; }
Volodymyr Shymanskyy 18:c328c1a97f90 41 private:
Volodymyr Shymanskyy 18:c328c1a97f90 42 uint8_t& c;
Volodymyr Shymanskyy 18:c328c1a97f90 43 };
Volodymyr Shymanskyy 18:c328c1a97f90 44
Volodymyr Shymanskyy 7:8879692d4e6c 45 #define BlynkBitSet(value, bit) ((value) |= (1UL << (bit)))
Volodymyr Shymanskyy 7:8879692d4e6c 46 #define BlynkBitClear(value, bit) ((value) &= ~(1UL << (bit)))
Volodymyr Shymanskyy 7:8879692d4e6c 47 #define BlynkBitRead(value, bit) (((value) >> (bit)) & 0x01)
Volodymyr Shymanskyy 7:8879692d4e6c 48 #define BlynkBitWrite(value, bit, bitvalue) (bitvalue ? bitSet(value, bit) : bitClear(value, bit))
Volodymyr Shymanskyy 7:8879692d4e6c 49
vshymanskyy 0:58b20b438383 50 #endif