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