BLE switch interface with GROVE joystic for micro:bit http://mahoro-ba.net/e2073.html

Dependencies:   microbit

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?

UserRevisionLine numberNew 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 }