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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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 }