Hayato Kikuchi
/
MonitoringTest
Communication Class and Controller Class (ControllerForMbed Class)
Button.cpp@2:fd0c21600586, 2021-12-23 (annotated)
- Committer:
- kikuchi8810
- Date:
- Thu Dec 23 08:56:26 2021 +0000
- Revision:
- 2:fd0c21600586
modified
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
kikuchi8810 | 2:fd0c21600586 | 1 | #include "Button.h" |
kikuchi8810 | 2:fd0c21600586 | 2 | |
kikuchi8810 | 2:fd0c21600586 | 3 | // コンストラクタ |
kikuchi8810 | 2:fd0c21600586 | 4 | Button::Button(PinName pin):input(pin){ |
kikuchi8810 | 2:fd0c21600586 | 5 | pre_button_state = get_button_state(); |
kikuchi8810 | 2:fd0c21600586 | 6 | initial_flag = true; |
kikuchi8810 | 2:fd0c21600586 | 7 | } |
kikuchi8810 | 2:fd0c21600586 | 8 | |
kikuchi8810 | 2:fd0c21600586 | 9 | bool Button::get_button_state(){ |
kikuchi8810 | 2:fd0c21600586 | 10 | return input.read(); |
kikuchi8810 | 2:fd0c21600586 | 11 | } |
kikuchi8810 | 2:fd0c21600586 | 12 | |
kikuchi8810 | 2:fd0c21600586 | 13 | bool Button::button_rise(){ |
kikuchi8810 | 2:fd0c21600586 | 14 | bool ret = 0; |
kikuchi8810 | 2:fd0c21600586 | 15 | bool button_state = get_button_state(); |
kikuchi8810 | 2:fd0c21600586 | 16 | if(initial_flag){ |
kikuchi8810 | 2:fd0c21600586 | 17 | if(button_state == 0){ |
kikuchi8810 | 2:fd0c21600586 | 18 | pre_button_state = button_state; |
kikuchi8810 | 2:fd0c21600586 | 19 | initial_flag = false; |
kikuchi8810 | 2:fd0c21600586 | 20 | } |
kikuchi8810 | 2:fd0c21600586 | 21 | }else{ |
kikuchi8810 | 2:fd0c21600586 | 22 | if(button_state && !pre_button_state){ |
kikuchi8810 | 2:fd0c21600586 | 23 | initial_flag = true; |
kikuchi8810 | 2:fd0c21600586 | 24 | ret = 1; |
kikuchi8810 | 2:fd0c21600586 | 25 | } |
kikuchi8810 | 2:fd0c21600586 | 26 | pre_button_state = button_state; |
kikuchi8810 | 2:fd0c21600586 | 27 | } |
kikuchi8810 | 2:fd0c21600586 | 28 | return ret; |
kikuchi8810 | 2:fd0c21600586 | 29 | } |
kikuchi8810 | 2:fd0c21600586 | 30 | |
kikuchi8810 | 2:fd0c21600586 | 31 | bool Button::button_fall(){ |
kikuchi8810 | 2:fd0c21600586 | 32 | bool ret = 0; |
kikuchi8810 | 2:fd0c21600586 | 33 | bool button_state = get_button_state(); |
kikuchi8810 | 2:fd0c21600586 | 34 | if(initial_flag){ |
kikuchi8810 | 2:fd0c21600586 | 35 | if(button_state == 1){ |
kikuchi8810 | 2:fd0c21600586 | 36 | pre_button_state = button_state; |
kikuchi8810 | 2:fd0c21600586 | 37 | initial_flag = false; |
kikuchi8810 | 2:fd0c21600586 | 38 | } |
kikuchi8810 | 2:fd0c21600586 | 39 | }else{ |
kikuchi8810 | 2:fd0c21600586 | 40 | if(!button_state && pre_button_state){ |
kikuchi8810 | 2:fd0c21600586 | 41 | initial_flag = true; |
kikuchi8810 | 2:fd0c21600586 | 42 | ret = 1; |
kikuchi8810 | 2:fd0c21600586 | 43 | } |
kikuchi8810 | 2:fd0c21600586 | 44 | pre_button_state = button_state; |
kikuchi8810 | 2:fd0c21600586 | 45 | } |
kikuchi8810 | 2:fd0c21600586 | 46 | return ret; |
kikuchi8810 | 2:fd0c21600586 | 47 | } |
kikuchi8810 | 2:fd0c21600586 | 48 | |
kikuchi8810 | 2:fd0c21600586 | 49 | bool Button::button_changed(){ |
kikuchi8810 | 2:fd0c21600586 | 50 | bool ret = 0; |
kikuchi8810 | 2:fd0c21600586 | 51 | bool button_state = get_button_state(); |
kikuchi8810 | 2:fd0c21600586 | 52 | if(initial_flag){ |
kikuchi8810 | 2:fd0c21600586 | 53 | pre_button_state = button_state; |
kikuchi8810 | 2:fd0c21600586 | 54 | initial_flag = false; |
kikuchi8810 | 2:fd0c21600586 | 55 | }else{ |
kikuchi8810 | 2:fd0c21600586 | 56 | if(button_state != pre_button_state){ |
kikuchi8810 | 2:fd0c21600586 | 57 | initial_flag = true; |
kikuchi8810 | 2:fd0c21600586 | 58 | ret = 1; |
kikuchi8810 | 2:fd0c21600586 | 59 | } |
kikuchi8810 | 2:fd0c21600586 | 60 | pre_button_state = button_state; |
kikuchi8810 | 2:fd0c21600586 | 61 | } |
kikuchi8810 | 2:fd0c21600586 | 62 | return ret; |
kikuchi8810 | 2:fd0c21600586 | 63 | } |