BLE switch interface with GROVE joystic for micro:bit http://mahoro-ba.net/e2073.html
KeyValueInt.cpp@0:28fb3e9ef81a, 2018-09-17 (annotated)
- Committer:
- masakjm
- Date:
- Mon Sep 17 02:48:51 2018 +0000
- Revision:
- 0:28fb3e9ef81a
- Child:
- 3:b6e9850d3e76
first release
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
masakjm | 0:28fb3e9ef81a | 1 | //================================= |
masakjm | 0:28fb3e9ef81a | 2 | // Class KeyValueInt |
masakjm | 0:28fb3e9ef81a | 3 | //================================= |
masakjm | 0:28fb3e9ef81a | 4 | // The MIT License (MIT) Copyright (c) 2018 Masatomo Kojima |
masakjm | 0:28fb3e9ef81a | 5 | // |
masakjm | 0:28fb3e9ef81a | 6 | // Keys and values are stored in pairs, maximum and minimum values are set, |
masakjm | 0:28fb3e9ef81a | 7 | // and values can be easily increased or decreased. |
masakjm | 0:28fb3e9ef81a | 8 | // キーと値をペアで記憶し、値の最大値、最小値を設定し、値の増減を容易にします。 |
masakjm | 0:28fb3e9ef81a | 9 | |
masakjm | 0:28fb3e9ef81a | 10 | #include "KeyValueInt.h" |
masakjm | 0:28fb3e9ef81a | 11 | |
masakjm | 0:28fb3e9ef81a | 12 | KeyValueInt::KeyValueInt(const char *key, char disp, int data, int min, int max, bool rotation) { |
masakjm | 0:28fb3e9ef81a | 13 | this->key = key; |
masakjm | 0:28fb3e9ef81a | 14 | this->disp = (disp==0 ? key[0] : disp); |
masakjm | 0:28fb3e9ef81a | 15 | this->value = data; |
masakjm | 0:28fb3e9ef81a | 16 | this->min = min; |
masakjm | 0:28fb3e9ef81a | 17 | this->max = max; |
masakjm | 0:28fb3e9ef81a | 18 | this->rotation = rotation; |
masakjm | 0:28fb3e9ef81a | 19 | set(data); |
masakjm | 0:28fb3e9ef81a | 20 | } |
masakjm | 0:28fb3e9ef81a | 21 | |
masakjm | 0:28fb3e9ef81a | 22 | int KeyValueInt::range(int data){ |
masakjm | 0:28fb3e9ef81a | 23 | if (this->rotation) { |
masakjm | 0:28fb3e9ef81a | 24 | if (data < this->min) data = this->max; |
masakjm | 0:28fb3e9ef81a | 25 | if (data > this->max) data = this->min; |
masakjm | 0:28fb3e9ef81a | 26 | } else { |
masakjm | 0:28fb3e9ef81a | 27 | if (data < this->min) data = this->min; |
masakjm | 0:28fb3e9ef81a | 28 | if (data > this->max) data = this->max; |
masakjm | 0:28fb3e9ef81a | 29 | } |
masakjm | 0:28fb3e9ef81a | 30 | return data; |
masakjm | 0:28fb3e9ef81a | 31 | } |
masakjm | 0:28fb3e9ef81a | 32 | |
masakjm | 0:28fb3e9ef81a | 33 | int KeyValueInt::set(int data){ |
masakjm | 0:28fb3e9ef81a | 34 | this->value = range(data); |
masakjm | 0:28fb3e9ef81a | 35 | return this->value; |
masakjm | 0:28fb3e9ef81a | 36 | } |
masakjm | 0:28fb3e9ef81a | 37 | |
masakjm | 0:28fb3e9ef81a | 38 | void KeyValueInt::inc(int delta){ |
masakjm | 0:28fb3e9ef81a | 39 | set(range(value + delta)); |
masakjm | 0:28fb3e9ef81a | 40 | } |
masakjm | 0:28fb3e9ef81a | 41 | |
masakjm | 0:28fb3e9ef81a | 42 | void KeyValueInt::dec(int delta){ |
masakjm | 0:28fb3e9ef81a | 43 | set(range(value - delta)); |
masakjm | 0:28fb3e9ef81a | 44 | } |