Sakis Kasampalis
/
infrared
LPC1768 IR breakbeam sensor
infrared.cpp@1:88b1d9bcf3a3, 2016-11-13 (annotated)
- Committer:
- faif
- Date:
- Sun Nov 13 11:33:08 2016 +0000
- Revision:
- 1:88b1d9bcf3a3
- Parent:
- 0:ca4cef100279
Fix coding style
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
faif | 0:ca4cef100279 | 1 | #include "infrared.h" |
faif | 0:ca4cef100279 | 2 | |
faif | 0:ca4cef100279 | 3 | static const char cls[] = "\x1B[2J"; |
faif | 0:ca4cef100279 | 4 | static const char home[] = "\x1B[H"; |
faif | 0:ca4cef100279 | 5 | static const float DEBOUNCING_DELAY = 0.1; |
faif | 0:ca4cef100279 | 6 | static const float TEXT_DELAY = 0.5; |
faif | 0:ca4cef100279 | 7 | enum led_state { OFF = 0, ON = 1 }; |
faif | 0:ca4cef100279 | 8 | |
faif | 0:ca4cef100279 | 9 | int main() |
faif | 0:ca4cef100279 | 10 | { |
faif | 0:ca4cef100279 | 11 | pc.printf(home); |
faif | 0:ca4cef100279 | 12 | pc.printf(cls); |
faif | 0:ca4cef100279 | 13 | |
faif | 1:88b1d9bcf3a3 | 14 | while (true) |
faif | 1:88b1d9bcf3a3 | 15 | { |
faif | 1:88b1d9bcf3a3 | 16 | if (!infrared) |
faif | 1:88b1d9bcf3a3 | 17 | { |
faif | 0:ca4cef100279 | 18 | set_led(my_led, ON, DEBOUNCING_DELAY); |
faif | 0:ca4cef100279 | 19 | std::string alert("Intrusion dectected: " + current_date_time()); |
faif | 0:ca4cef100279 | 20 | show_alert(alert, TEXT_DELAY); |
faif | 0:ca4cef100279 | 21 | } |
faif | 1:88b1d9bcf3a3 | 22 | else |
faif | 1:88b1d9bcf3a3 | 23 | { |
faif | 0:ca4cef100279 | 24 | set_led(my_led, OFF, DEBOUNCING_DELAY); |
faif | 0:ca4cef100279 | 25 | } |
faif | 0:ca4cef100279 | 26 | } |
faif | 0:ca4cef100279 | 27 | } |
faif | 0:ca4cef100279 | 28 | |
faif | 0:ca4cef100279 | 29 | void set_led(DigitalOut led, led_state state, const float delay) |
faif | 0:ca4cef100279 | 30 | { |
faif | 0:ca4cef100279 | 31 | led = state; |
faif | 0:ca4cef100279 | 32 | wait(delay); |
faif | 0:ca4cef100279 | 33 | } |
faif | 0:ca4cef100279 | 34 | |
faif | 1:88b1d9bcf3a3 | 35 | const std::string current_date_time() |
faif | 1:88b1d9bcf3a3 | 36 | { |
faif | 0:ca4cef100279 | 37 | time_t rawtime; |
faif | 0:ca4cef100279 | 38 | time(&rawtime); |
faif | 0:ca4cef100279 | 39 | return ctime(&rawtime); |
faif | 0:ca4cef100279 | 40 | } |
faif | 0:ca4cef100279 | 41 | |
faif | 1:88b1d9bcf3a3 | 42 | void show_alert(const std::string& alert, const float delay) |
faif | 1:88b1d9bcf3a3 | 43 | { |
faif | 0:ca4cef100279 | 44 | pc.printf(home); |
faif | 0:ca4cef100279 | 45 | pc.printf(alert.c_str()); |
faif | 0:ca4cef100279 | 46 | pc.printf("\r"); |
faif | 0:ca4cef100279 | 47 | wait(delay); |
faif | 0:ca4cef100279 | 48 | } |
faif | 0:ca4cef100279 | 49 | |
faif | 0:ca4cef100279 | 50 |