esp_interface.cpp 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. #include "esp_interface.h"
  2. HardwareSerial MySerial(1);
  3. void EspInterface::begin() {
  4. pinMode(ESP_RST, OUTPUT);
  5. pinMode(ESP_ZERO, OUTPUT);
  6. delay(100);
  7. digitalWrite(ESP_ZERO, HIGH);
  8. MySerial.begin(BAUD, SERIAL_8N1, 27, 26);
  9. this->bootRunMode();
  10. }
  11. void EspInterface::RunUpdate() {
  12. this->bootProgramMode();
  13. display_obj.tft.setTextWrap(true);
  14. display_obj.tft.setFreeFont(NULL);
  15. display_obj.tft.setCursor(0, 100);
  16. display_obj.tft.setTextSize(1);
  17. display_obj.tft.setTextColor(TFT_GREEN);
  18. display_obj.tft.println("Waiting for serial data...");
  19. display_obj.tft.setTextColor(TFT_WHITE);
  20. }
  21. void EspInterface::bootProgramMode() {
  22. Serial.println("[!] Setting ESP12 in program mode...");
  23. digitalWrite(ESP_ZERO, LOW);
  24. delay(100);
  25. digitalWrite(ESP_RST, LOW);
  26. delay(100);
  27. digitalWrite(ESP_RST, HIGH);
  28. delay(100);
  29. digitalWrite(ESP_ZERO, HIGH);
  30. Serial.println("[!] Complete");
  31. Serial.end();
  32. Serial.begin(BAUD);
  33. }
  34. void EspInterface::bootRunMode() {
  35. Serial.end();
  36. Serial.begin(115200);
  37. Serial.println("[!] Setting ESP12 in run mode...");
  38. digitalWrite(ESP_ZERO, HIGH);
  39. delay(100);
  40. digitalWrite(ESP_RST, LOW);
  41. delay(100);
  42. digitalWrite(ESP_RST, HIGH);
  43. delay(100);
  44. digitalWrite(ESP_ZERO, HIGH);
  45. Serial.println("[!] Complete");
  46. }
  47. void EspInterface::program() {
  48. if (MySerial.available()) {
  49. Serial.write((uint8_t)MySerial.read());
  50. }
  51. if (Serial.available()) {
  52. display_obj.tft.print(".");
  53. while (Serial.available()) {
  54. MySerial.write((uint8_t)Serial.read());
  55. }
  56. }
  57. }
  58. void EspInterface::main(uint32_t current_time) {
  59. if (MySerial.available()) {
  60. Serial.write((uint8_t)MySerial.read());
  61. }
  62. if (Serial.available()) {
  63. MySerial.write((uint8_t)Serial.read());
  64. }
  65. }