From 109f00e2a3a0ecfeb3e57e3c4f497fdc4520bf9a Mon Sep 17 00:00:00 2001 From: Zhaoliang <zhz03@g.ucla.edu> Date: Fri, 15 Oct 2021 02:09:13 -0700 Subject: [PATCH] Test the goal id value --- .../ESP32_slave/ESP32_slave.ino | 99 +++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 Code/ESP32_communication/test_more_variables/ESP32_slave/ESP32_slave.ino diff --git a/Code/ESP32_communication/test_more_variables/ESP32_slave/ESP32_slave.ino b/Code/ESP32_communication/test_more_variables/ESP32_slave/ESP32_slave.ino new file mode 100644 index 0000000..f6dbb95 --- /dev/null +++ b/Code/ESP32_communication/test_more_variables/ESP32_slave/ESP32_slave.ino @@ -0,0 +1,99 @@ +//ESP-NOW: Receiver +//Ref: Random Nerd Tutorials https://randomnerdtutorials.com +//----------------------------------------------------------- +#include <esp_now.h> +#include <WiFi.h> +#include <Wire.h> + +//------------------------------------------------------------------------------------- +String strData = ""; +double valData = 0.0; +double Kpx=2, Kix=0.1, Kdx=0.25; +double Kpy=1, Kiy=0.1, Kdy=0.25; +int g1 = 0,g2=1,g3=2; +int goal_id[3] = {g1, g2, g3}; +//------------------------------------------------------------------------------------- +typedef struct RxStruct +{ + String StrD; + double ValD; +}RxStruct; +RxStruct receivedData; +//------------------------------------------------------------------------------------- +void OnDataRecv(const uint8_t * mac, const uint8_t *incomingData, int len) +{ + memcpy(&receivedData, incomingData, sizeof(receivedData)); + Serial.print("data:"); + Serial.println(receivedData.StrD); + Serial.println(receivedData.ValD); + strData = receivedData.StrD; + valData = receivedData.ValD; +} +//====================================================================================== +void setup() +{ + Serial.begin(9600); + + WiFi.mode(WIFI_STA); + if (esp_now_init() != ESP_OK) + { + Serial.println("Error initializing ESP-NOW"); + return; + } + esp_now_register_recv_cb(OnDataRecv); +} +//====================================================================================== +void loop() +{ + Kpx = getDoubleVal(strData,"kpx",valData,Kpx); + Kix = getDoubleVal(strData,"kix",valData,Kix); + Kdx = getDoubleVal(strData,"kdx",valData,Kdx); + Kpy = getDoubleVal(strData,"kpy",valData,Kpy); + Kiy = getDoubleVal(strData,"kiy",valData,Kiy); + Kdy = getDoubleVal(strData,"kdy",valData,Kdy); + g1 = getDoubleVal(strData,"gda",valData,goal_id[0]); + g2 = getDoubleVal(strData,"gdb",valData,goal_id[1]); + g3 = getDoubleVal(strData,"gdc",valData,goal_id[2]); + goal_id[0] = g1; + goal_id[1] = g2; + goal_id[2] = g3; + Serial.print("gid:"); + Serial.print(goal_id[0]); + Serial.print(goal_id[1]); + Serial.println(goal_id[2]); + /* + Serial.print("Kpx:"); + Serial.println(Kpx); + Serial.print("Kix:"); + Serial.println(Kix); + Serial.print("Kdx:"); + Serial.println(Kdx); + Serial.print("Kdy:"); + Serial.println(Kdy); + Serial.print("Kiy:"); + Serial.println(Kiy); + Serial.print("Kdy:"); + Serial.println(Kdy); +*/ +} + +double getDoubleVal(String checkData,String Ans,double val,double ori_val){ + if (checkData == Ans){ + strData = ""; + valData = 0.0; + return val; + }else { + return ori_val; + } +} + +int getIntVal(String checkData,String Ans,double val,int ori_val){ + if (checkData == Ans){ + strData = ""; + valData = 0.0; + + return (int)val; + }else { + return ori_val; + } +} -- GitLab