From ae2ee90b730b75cbd9f9342f0cda881accd24e4c Mon Sep 17 00:00:00 2001
From: finikokasulanovenda <13515029@std.stei.itb.ac.id>
Date: Tue, 10 Apr 2018 04:37:23 +0700
Subject: [PATCH] Add json parser on main 2

---
 src/client_connect.cpp/json_parser.cpp.ino | 60 ++++++++++++++++++++++
 src/json_parser.cpp/json_parser.cpp.ino    | 12 ++---
 src/main_2/main_2.ino                      | 41 +++++++++++++--
 3 files changed, 104 insertions(+), 9 deletions(-)
 create mode 100644 src/client_connect.cpp/json_parser.cpp.ino

diff --git a/src/client_connect.cpp/json_parser.cpp.ino b/src/client_connect.cpp/json_parser.cpp.ino
new file mode 100644
index 0000000..7a0e32c
--- /dev/null
+++ b/src/client_connect.cpp/json_parser.cpp.ino
@@ -0,0 +1,60 @@
+#include <ArduinoJson.h>
+
+bool isSuccess;
+int year;
+int humidity;
+int light;
+
+char json[] = "{\"success\":true,\"year\":3,\"humidity\":5,\"light\":10}";
+
+void ReadJson();
+char* GenerateJSONString();
+
+void setup() {
+  // put your setup code here, to run once:
+  Serial.begin(9600);
+  while (!Serial) continue;
+}
+
+void loop() {
+// put your main code here, to run repeatedly:
+
+}
+
+void ReadJson() {
+  StaticJsonBuffer<200> jsonBuffer;
+  
+  JsonObject& jsonReader = jsonBuffer.parseObject(json);
+  
+  if (!jsonReader.success()) {
+    Serial.println("parseObject() failed");
+    return;
+  }
+
+  isSuccess = jsonReader["success"];
+  year = jsonReader["year"];
+  humidity = jsonReader["humidity"];
+  light = jsonReader["light"];
+
+  char* jsonString = GenerateJSONString();
+
+  Serial.println(jsonString);
+  /*Serial.println(isSuccess);
+  Serial.println(year);
+  Serial.println(humidity);
+  Serial.println(light);*/
+}
+
+char* GenerateJSONString() {
+  char buff[12];
+  char* totalString, ageText, humidityText, lightText, yearString, humidityString, lightString;
+  //yearString = itoa(year,buff,10);
+  //humidityString = itoa(humidity,buff,10);
+  //lightString = "12";
+  //lightString = itoa(light,buff,10);
+  //ageText = "age : ";
+  
+  totalString = "|age : ";//, yearString, " humidity : ", humidityString, " light : ";//, lightString, "|";
+  return (totalString);
+}
+
diff --git a/src/json_parser.cpp/json_parser.cpp.ino b/src/json_parser.cpp/json_parser.cpp.ino
index 7a0e32c..3d982aa 100644
--- a/src/json_parser.cpp/json_parser.cpp.ino
+++ b/src/json_parser.cpp/json_parser.cpp.ino
@@ -48,13 +48,13 @@ void ReadJson() {
 char* GenerateJSONString() {
   char buff[12];
   char* totalString, ageText, humidityText, lightText, yearString, humidityString, lightString;
-  //yearString = itoa(year,buff,10);
-  //humidityString = itoa(humidity,buff,10);
-  //lightString = "12";
-  //lightString = itoa(light,buff,10);
-  //ageText = "age : ";
+  yearString = itoa(year,buff,10);
+  humidityString = itoa(humidity,buff,10);
+  lightString = "12";
+  lightString = itoa(light,buff,10);
+  ageText = "age : ";
   
-  totalString = "|age : ";//, yearString, " humidity : ", humidityString, " light : ";//, lightString, "|";
+  totalString = "|age : ", yearString, " humidity : ", humidityString, " light : ", lightString, "|";
   return (totalString);
 }
 
diff --git a/src/main_2/main_2.ino b/src/main_2/main_2.ino
index 2007a74..8100dce 100644
--- a/src/main_2/main_2.ino
+++ b/src/main_2/main_2.ino
@@ -1,6 +1,7 @@
 #include <HttpClient.h>
 #include <Wire.h> 
 #include <LiquidCrystal_I2C.h>
+#include <ArduinoJson.h>
 
 const int ledPin = 2;
 const int buttonPin = 4;
@@ -42,6 +43,13 @@ const byte digit_pattern[10] =
 
 unsigned int counter = 0;
 
+bool isSuccess;
+int year;
+int humidity;
+int light;
+
+char json[] = "{\"success\":true,\"year\":3,\"humidity\":5,\"light\":10}";
+
 void setup() {
   // put your setup code here, to run once:
   Serial.begin(9600);
@@ -78,11 +86,11 @@ void loop() {
   
   lcd.setCursor(0,0);
   lcd.autoscroll();
-  lcd.print("Hello! Welcome to GreenTyNo :)");
+  lcd.println(json);
+  //lcd.print(ReadJson());
+  //lcd.print("Hello! Welcome to GreenTyNo :)");
   delay(1000);
   
-  
-  
   // put your main code here, to run repeatedly:
   buttonState = digitalRead(buttonPin);
 
@@ -149,3 +157,30 @@ void update_one_digit(int data)
   digitalWrite(digit_clock_pin, HIGH);
 }
 
+void ReadJson() {
+  StaticJsonBuffer<200> jsonBuffer;
+  JsonObject& jsonReader = jsonBuffer.parseObject(json);
+  if (!jsonReader.success()) {
+    Serial.println("parseObject() failed");
+    return;
+  }
+  isSuccess = jsonReader["success"];
+  year = jsonReader["year"];
+  humidity = jsonReader["humidity"];
+  light = jsonReader["light"];
+  
+  char* jsonString = GenerateJSONString();
+  Serial.println(jsonString);
+}
+
+char* GenerateJSONString() {
+  char buff[12];
+  char* totalString, yearString, humidityString, lightString;
+  yearString = itoa(year,buff,10);
+  humidityString = itoa(humidity,buff,10);
+  lightString = itoa(light,buff,10);
+  
+  totalString = "|Antyno| Humidity : ", humidityString, " Light : ", lightString, "|";
+  return (totalString);
+}
+
-- 
GitLab