Untitled
plain_text
a month ago
4.5 kB
3
Indexable
Never
#include "_433PTT.h" #include <EEPROM.h> #include "WiFi.h" #include "ESPAsyncWebServer.h" #include "SPIFFS.h" //library for reading file #include <ArduinoJson.h> //library for formating as JSON - version 5.13 #define EPROMSIZE 512 // Size of EEPROM in your Arduino chip. For ESP32 it is Flash simulated so very slow AsyncWebServer server(80); StaticJsonBuffer<200> jsonBuffer; String jsonString; _433PTT tool; void setupAPMode() { const char* ssid = "433PTT"; // Set the name of the access point const char* password = "12345678"; // Set the password for the access point WiFi.softAP(ssid, password); // Set the ESP32 to AP mode with the specified SSID and password Serial.print("Access point IP address: "); Serial.println(WiFi.softAPIP()); // Print the IP address of the access point } void handleGetView(AsyncWebServerRequest *request) { jsonBuffer.clear(); JsonObject& object = jsonBuffer.createObject(); // { // "hello": "world"; // } object["hello"] = "world"; String response; object.printTo(response); request->send(200, "application/json", response); } // example data to post: // { // "key1": "value1", // "key2": "value2" // } void handlePostBodySend(AsyncWebServerRequest *request, uint8_t *data, size_t len, size_t index, size_t total){ DynamicJsonBuffer jsonDynamicBuffer; JsonObject& root = jsonDynamicBuffer.parseObject((const char*)data); if (root.success()) { if (root.containsKey("key1")) { Serial.println(root["key"].asString()); } if (root.containsKey("key2")) { Serial.println(root["key2"].asString()); } request->send(200, "text/plain", ""); } else { request->send(404, "text/plain", ""); } } void setUpRoutes(){ if(!SPIFFS.begin(true)){ Serial.println("An Error has occurred while mounting SPIFFS"); return; } DefaultHeaders::Instance().addHeader("Access-Control-Allow-Origin", "*"); server.on("/", HTTP_GET, [](AsyncWebServerRequest *request){ request->send(SPIFFS, "/main.html", String(), false); }); server.on("/styles.css", HTTP_GET, [](AsyncWebServerRequest *request){ request->send(SPIFFS, "/styles.css", "text/css"); }); server.on("/main.js", HTTP_GET, [](AsyncWebServerRequest *request){ request->send(SPIFFS, "/main.js", "application/javascript"); }); server.on("/on", HTTP_GET, handleGetView); server.on("/postDataRF", HTTP_POST, [](AsyncWebServerRequest *request){},NULL, handlePostBodySend); server.begin(); } void setup() { Serial.begin(9600); //define frequency of serial monitor Serial.println("successfully"); setupAPMode(); setUpRoutes(); EEPROM.begin(EPROMSIZE); if (tool.getConnectionStatus()) { // Check the CC1101 Spi connection. Serial.println(F("Connection OK\n\r")); } else { Serial.println(F("Connection Error\n\r")); }; tool.init(); tool.changeState(IDLE_STATE); } void handle_RX_State(){ if(tool.getDriver()==RCSWITCH_DRIVER){ if(tool.getState()!=SCAN_STATE && tool.getState()!=RX_STATE ){ tool.RCSwitch_SetRX(); } if(tool.RCSwitch_available()){ tool.receiveRF_RCSwitch(); //TODO: DATA TO FE // tool.RCSwitch_Received_Value // tool.RCSwitch_Received_Bitlength // tool.RCSwitch_Received_Protocol // tool.RCSwitch_RSSI } } else if(tool.getDriver()==ELECHOUSE_CC1101_DRIVER){ if(tool.getState()!=SCAN_STATE && tool.getState()!=RX_STATE ){ tool.ELECHOUSE_CC1101_SetRX(); } if(tool.ELECHOUSE_CC1101_DRIVER_CheckReceiveFlag()){ tool.ELECHOUSE_CC1101_DRIVER_RX(); //TODO: DATA TO FE // tool.ccreceivingbuffer // tool.textbuffer } } } void handle_Scan_State(){ float start_Frequency; float increasement; tool.getRSSIcc1101(start_Frequency, increasement); //TODO: DATA TO FE // tool.RSSIScanData[i]; } void embedded_app(){ switch(tool.getState()){ case IDLE_STATE: break; case TX_STATE: // char* send_buffer; // char* send_buffer = "A123"; // tool.ELECHOUSE_CC1101_DRIVER_TX(send_buffer); break; case RX_STATE: handle_RX_State(); break; case SCAN_STATE: handle_Scan_State(); break; case JAMMING_STATE: tool.signalJamming(); break; default: break; } } void loop() { embedded_app(); }