Mercurial > code > home > repos > homeauto
annotate espNode/desk/src/main.cpp @ 1710:f4009f41f15d
patchablegraph to its own repo
author | drewp@bigasterisk.com |
---|---|
date | Wed, 24 Nov 2021 10:16:03 -0800 |
parents | 3ff074ba25f1 |
children |
rev | line source |
---|---|
781
6c42c1f64f00
new driver for esp32 and R503 fingerprint sensor
drewp@bigasterisk.com
parents:
diff
changeset
|
1 #include <Arduino.h> |
6c42c1f64f00
new driver for esp32 and R503 fingerprint sensor
drewp@bigasterisk.com
parents:
diff
changeset
|
2 |
783
e4cf795d3677
support download/set/delete, but somehow enroll has broken
drewp@bigasterisk.com
parents:
781
diff
changeset
|
3 #include <string> |
e4cf795d3677
support download/set/delete, but somehow enroll has broken
drewp@bigasterisk.com
parents:
781
diff
changeset
|
4 |
781
6c42c1f64f00
new driver for esp32 and R503 fingerprint sensor
drewp@bigasterisk.com
parents:
diff
changeset
|
5 #include "display.h" |
6c42c1f64f00
new driver for esp32 and R503 fingerprint sensor
drewp@bigasterisk.com
parents:
diff
changeset
|
6 #include "fingerprint.h" |
6c42c1f64f00
new driver for esp32 and R503 fingerprint sensor
drewp@bigasterisk.com
parents:
diff
changeset
|
7 #include "mqtt.h" |
6c42c1f64f00
new driver for esp32 and R503 fingerprint sensor
drewp@bigasterisk.com
parents:
diff
changeset
|
8 #include "wifi.h" |
6c42c1f64f00
new driver for esp32 and R503 fingerprint sensor
drewp@bigasterisk.com
parents:
diff
changeset
|
9 |
6c42c1f64f00
new driver for esp32 and R503 fingerprint sensor
drewp@bigasterisk.com
parents:
diff
changeset
|
10 #define ADC_EN 14 |
6c42c1f64f00
new driver for esp32 and R503 fingerprint sensor
drewp@bigasterisk.com
parents:
diff
changeset
|
11 #define ADC_PIN 34 |
6c42c1f64f00
new driver for esp32 and R503 fingerprint sensor
drewp@bigasterisk.com
parents:
diff
changeset
|
12 |
6c42c1f64f00
new driver for esp32 and R503 fingerprint sensor
drewp@bigasterisk.com
parents:
diff
changeset
|
13 // #include <Button2.h> |
6c42c1f64f00
new driver for esp32 and R503 fingerprint sensor
drewp@bigasterisk.com
parents:
diff
changeset
|
14 // #define BUTTON_1 35 |
6c42c1f64f00
new driver for esp32 and R503 fingerprint sensor
drewp@bigasterisk.com
parents:
diff
changeset
|
15 // #define BUTTON_2 0 |
6c42c1f64f00
new driver for esp32 and R503 fingerprint sensor
drewp@bigasterisk.com
parents:
diff
changeset
|
16 |
6c42c1f64f00
new driver for esp32 and R503 fingerprint sensor
drewp@bigasterisk.com
parents:
diff
changeset
|
17 void setup() { |
6c42c1f64f00
new driver for esp32 and R503 fingerprint sensor
drewp@bigasterisk.com
parents:
diff
changeset
|
18 Serial.begin(115200); |
6c42c1f64f00
new driver for esp32 and R503 fingerprint sensor
drewp@bigasterisk.com
parents:
diff
changeset
|
19 Serial.println("Serial.begin"); |
6c42c1f64f00
new driver for esp32 and R503 fingerprint sensor
drewp@bigasterisk.com
parents:
diff
changeset
|
20 |
6c42c1f64f00
new driver for esp32 and R503 fingerprint sensor
drewp@bigasterisk.com
parents:
diff
changeset
|
21 fingerprint::Setup(); // go early since the others display status on our LED |
6c42c1f64f00
new driver for esp32 and R503 fingerprint sensor
drewp@bigasterisk.com
parents:
diff
changeset
|
22 display::Setup(); |
6c42c1f64f00
new driver for esp32 and R503 fingerprint sensor
drewp@bigasterisk.com
parents:
diff
changeset
|
23 display::Message("Hello world"); |
6c42c1f64f00
new driver for esp32 and R503 fingerprint sensor
drewp@bigasterisk.com
parents:
diff
changeset
|
24 wifi::Setup(); |
6c42c1f64f00
new driver for esp32 and R503 fingerprint sensor
drewp@bigasterisk.com
parents:
diff
changeset
|
25 mqtt::Setup(); |
6c42c1f64f00
new driver for esp32 and R503 fingerprint sensor
drewp@bigasterisk.com
parents:
diff
changeset
|
26 } |
6c42c1f64f00
new driver for esp32 and R503 fingerprint sensor
drewp@bigasterisk.com
parents:
diff
changeset
|
27 |
783
e4cf795d3677
support download/set/delete, but somehow enroll has broken
drewp@bigasterisk.com
parents:
781
diff
changeset
|
28 namespace { |
e4cf795d3677
support download/set/delete, but somehow enroll has broken
drewp@bigasterisk.com
parents:
781
diff
changeset
|
29 uint16_t LastComponentNumber(const std::string &s) { |
e4cf795d3677
support download/set/delete, but somehow enroll has broken
drewp@bigasterisk.com
parents:
781
diff
changeset
|
30 return atoi(s.substr(s.rfind("/") + 1).c_str()); |
e4cf795d3677
support download/set/delete, but somehow enroll has broken
drewp@bigasterisk.com
parents:
781
diff
changeset
|
31 } |
e4cf795d3677
support download/set/delete, but somehow enroll has broken
drewp@bigasterisk.com
parents:
781
diff
changeset
|
32 } // namespace |
e4cf795d3677
support download/set/delete, but somehow enroll has broken
drewp@bigasterisk.com
parents:
781
diff
changeset
|
33 |
785
3ff074ba25f1
updates to mqtt message API; much more consistent logging
drewp@bigasterisk.com
parents:
783
diff
changeset
|
34 void HandleCommand(const std::string &payload_string) { |
3ff074ba25f1
updates to mqtt message API; much more consistent logging
drewp@bigasterisk.com
parents:
783
diff
changeset
|
35 if (payload_string == "enroll") { |
3ff074ba25f1
updates to mqtt message API; much more consistent logging
drewp@bigasterisk.com
parents:
783
diff
changeset
|
36 fingerprint::Enroll(); |
3ff074ba25f1
updates to mqtt message API; much more consistent logging
drewp@bigasterisk.com
parents:
783
diff
changeset
|
37 } else if (payload_string == "show_success") { |
3ff074ba25f1
updates to mqtt message API; much more consistent logging
drewp@bigasterisk.com
parents:
783
diff
changeset
|
38 fingerprint::BlinkSuccess(); |
3ff074ba25f1
updates to mqtt message API; much more consistent logging
drewp@bigasterisk.com
parents:
783
diff
changeset
|
39 while (!mqtt::HasPendingMessage()) yield(); |
3ff074ba25f1
updates to mqtt message API; much more consistent logging
drewp@bigasterisk.com
parents:
783
diff
changeset
|
40 mqtt::PopPendingMessage(); |
3ff074ba25f1
updates to mqtt message API; much more consistent logging
drewp@bigasterisk.com
parents:
783
diff
changeset
|
41 // hope it's "clear_success", but who cares |
3ff074ba25f1
updates to mqtt message API; much more consistent logging
drewp@bigasterisk.com
parents:
783
diff
changeset
|
42 fingerprint::BlinkClearSuccess(); |
3ff074ba25f1
updates to mqtt message API; much more consistent logging
drewp@bigasterisk.com
parents:
783
diff
changeset
|
43 } else if (payload_string == "delete_all") { |
3ff074ba25f1
updates to mqtt message API; much more consistent logging
drewp@bigasterisk.com
parents:
783
diff
changeset
|
44 fingerprint::DeleteAll(); |
3ff074ba25f1
updates to mqtt message API; much more consistent logging
drewp@bigasterisk.com
parents:
783
diff
changeset
|
45 } else if (payload_string.rfind("delete/model/", 0) == 0) { |
3ff074ba25f1
updates to mqtt message API; much more consistent logging
drewp@bigasterisk.com
parents:
783
diff
changeset
|
46 uint16_t fid = LastComponentNumber(payload_string); |
3ff074ba25f1
updates to mqtt message API; much more consistent logging
drewp@bigasterisk.com
parents:
783
diff
changeset
|
47 fingerprint::DeleteModel(fid); |
3ff074ba25f1
updates to mqtt message API; much more consistent logging
drewp@bigasterisk.com
parents:
783
diff
changeset
|
48 } else if (payload_string.rfind("get/model/", 0) == 0) { |
3ff074ba25f1
updates to mqtt message API; much more consistent logging
drewp@bigasterisk.com
parents:
783
diff
changeset
|
49 uint16_t fid = LastComponentNumber(payload_string); |
3ff074ba25f1
updates to mqtt message API; much more consistent logging
drewp@bigasterisk.com
parents:
783
diff
changeset
|
50 fingerprint::DownloadModel(fid); |
3ff074ba25f1
updates to mqtt message API; much more consistent logging
drewp@bigasterisk.com
parents:
783
diff
changeset
|
51 } |
3ff074ba25f1
updates to mqtt message API; much more consistent logging
drewp@bigasterisk.com
parents:
783
diff
changeset
|
52 } |
3ff074ba25f1
updates to mqtt message API; much more consistent logging
drewp@bigasterisk.com
parents:
783
diff
changeset
|
53 |
781
6c42c1f64f00
new driver for esp32 and R503 fingerprint sensor
drewp@bigasterisk.com
parents:
diff
changeset
|
54 void loop() { |
6c42c1f64f00
new driver for esp32 and R503 fingerprint sensor
drewp@bigasterisk.com
parents:
diff
changeset
|
55 Serial.println("--loop--"); |
783
e4cf795d3677
support download/set/delete, but somehow enroll has broken
drewp@bigasterisk.com
parents:
781
diff
changeset
|
56 |
781
6c42c1f64f00
new driver for esp32 and R503 fingerprint sensor
drewp@bigasterisk.com
parents:
diff
changeset
|
57 fingerprint::ExecuteAnyQueued(); |
783
e4cf795d3677
support download/set/delete, but somehow enroll has broken
drewp@bigasterisk.com
parents:
781
diff
changeset
|
58 |
781
6c42c1f64f00
new driver for esp32 and R503 fingerprint sensor
drewp@bigasterisk.com
parents:
diff
changeset
|
59 fingerprint::ScanLoop(); |
783
e4cf795d3677
support download/set/delete, but somehow enroll has broken
drewp@bigasterisk.com
parents:
781
diff
changeset
|
60 |
e4cf795d3677
support download/set/delete, but somehow enroll has broken
drewp@bigasterisk.com
parents:
781
diff
changeset
|
61 if (mqtt::HasPendingMessage()) { |
e4cf795d3677
support download/set/delete, but somehow enroll has broken
drewp@bigasterisk.com
parents:
781
diff
changeset
|
62 std::pair<std::string, std::vector<byte>> msg = mqtt::PopPendingMessage(); |
e4cf795d3677
support download/set/delete, but somehow enroll has broken
drewp@bigasterisk.com
parents:
781
diff
changeset
|
63 const std::string &topic = msg.first; |
e4cf795d3677
support download/set/delete, but somehow enroll has broken
drewp@bigasterisk.com
parents:
781
diff
changeset
|
64 const std::vector<byte> &payload = msg.second; |
e4cf795d3677
support download/set/delete, but somehow enroll has broken
drewp@bigasterisk.com
parents:
781
diff
changeset
|
65 |
e4cf795d3677
support download/set/delete, but somehow enroll has broken
drewp@bigasterisk.com
parents:
781
diff
changeset
|
66 if (topic == "fingerprint/command") { |
785
3ff074ba25f1
updates to mqtt message API; much more consistent logging
drewp@bigasterisk.com
parents:
783
diff
changeset
|
67 const std::string payload_string(payload.begin(), payload.end()); |
3ff074ba25f1
updates to mqtt message API; much more consistent logging
drewp@bigasterisk.com
parents:
783
diff
changeset
|
68 HandleCommand(payload_string); |
783
e4cf795d3677
support download/set/delete, but somehow enroll has broken
drewp@bigasterisk.com
parents:
781
diff
changeset
|
69 } else if (topic.rfind("fingerprint/set/model/", 0) == 0) { |
e4cf795d3677
support download/set/delete, but somehow enroll has broken
drewp@bigasterisk.com
parents:
781
diff
changeset
|
70 uint16_t fid = LastComponentNumber(topic); |
e4cf795d3677
support download/set/delete, but somehow enroll has broken
drewp@bigasterisk.com
parents:
781
diff
changeset
|
71 |
e4cf795d3677
support download/set/delete, but somehow enroll has broken
drewp@bigasterisk.com
parents:
781
diff
changeset
|
72 fingerprint::SetModel(fid, payload); |
781
6c42c1f64f00
new driver for esp32 and R503 fingerprint sensor
drewp@bigasterisk.com
parents:
diff
changeset
|
73 } |
6c42c1f64f00
new driver for esp32 and R503 fingerprint sensor
drewp@bigasterisk.com
parents:
diff
changeset
|
74 } |
6c42c1f64f00
new driver for esp32 and R503 fingerprint sensor
drewp@bigasterisk.com
parents:
diff
changeset
|
75 } |