#include <ArduinoJson.h>
#define inImpuls 10 //D10 I/O impulsy
#define inImpuls2 8
int impulsPocet = 0;
boolean impulsPress = false;
DynamicJsonDocument doc(1024);
JsonArray ports = doc.createNestedArray("ports");
void setup() {
Serial.begin(9600);
pinMode(inImpuls,INPUT_PULLUP);
pinMode(inImpuls2,INPUT_PULLUP);
Serial.println("Hello Arduino\n");
//DynamicJsonDocument doc1(1024);
//doc1["answer"] = 42;
//JsonArray ports = doc.createNestedArray("ports");
//ports.add("8");
//ports.add("8");
//ports.add("8");
/*
serializeJson(doc, Serial);
Serial.println();
Serial.println();
for (JsonVariant value : ports) {
//Serial.println(value.as<int>());
}
for (JsonArray::iterator it=ports.begin(); it!=ports.end(); ++it) {
//Serial.println(it->as<int>());
if (it->as<int>() == 55) {
Serial.println(it->as<int>());
ports.remove(it);
}
}
*/
//StaticJsonDocument<200> doc1;
// StaticJsonObject allocates memory on the stack, it can be
// replaced by DynamicJsonDocument which allocates in the heap.
//
// DynamicJsonDocument doc(200);
// Add values in the document
//
//doc["sensor"] = "gps";
//doc["time"] = 1351824120;
/*
doc[0]["key"] = 1;
doc[0]["value"] = 123;
doc[1]["key"] = 2;
doc[1]["value"] = 456;
Serial.println(doc.size());
doc[2]["key"] = 3;
doc[2]["value"] = 789;
Serial.println(doc.size());
doc.remove(1);
Serial.println(doc.size());
*/
// Add an array.
//
//JsonArray data = doc.createNestedArray("data");
//data.add(48.756080);
//data.add(2.302038);
// Generate the minified JSON and send it to the Serial port.
//
/*
JsonArray ports = doc.createNestedArray("ports");
ports.add("80");
ports.add("443");
ports.add("123");
*/
//serializeJson(doc, Serial);
// The above line prints:
// {"sensor":"gps","time":1351824120,"data":[48.756080,2.302038]}
// Start a new line
Serial.println();
JsonArray arr = doc.as<JsonArray>();
//Serial.println(doc.size());
Serial.print("Aray: ");
//Serial.println(ports.size());
// Generate the prettified JSON and send it to the Serial port.
//
////serializeJsonPretty(doc, Serial);
}
void loop() {
//Serial.println(digitalRead(inImpuls));
if (digitalRead(inImpuls) == 0 && impulsPress == false) {
impulsPress = true;
impulsPocet = impulsPocet + 1;
ports.add(impulsPocet);
Serial.print("Pocet: ");
Serial.println(impulsPocet);
}
if (digitalRead(inImpuls2) == 0 && impulsPress == true) {
impulsPress = false;
Serial.println("Vypnuto: ");
Serial.print("Aray Size: ");
Serial.println(ports.size());
////serializeJson(doc, Serial);
for (JsonArray::iterator it=ports.begin(); it!=ports.end(); ++it) {
Serial.println(it->as<int>());
}
}
for (JsonArray::iterator it=ports.begin(); it!=ports.end(); ++it) {
//Serial.println(it->as<int>());
if (it->as<int>() > 4) {
Serial.println(it->as<int>());
ports.remove(it);
}
}
}