From 0bf2cae32e3f2f41099abb2b4fa388babcdc526d Mon Sep 17 00:00:00 2001 From: Malaurie Bernard <mbernard@kinouby> Date: Thu, 6 Jul 2023 14:15:36 +0200 Subject: [PATCH] Correection of the way to use arduinoJson structure, and cretio of a name attribute to use it as the key --- syringe.cpp | 59 +++++++++++++++++++++++++---------------------- syringe.h | 20 ++++++++-------- syringefilled.cpp | 2 +- 3 files changed, 44 insertions(+), 37 deletions(-) diff --git a/syringe.cpp b/syringe.cpp index d3e641d..bb0f0ca 100644 --- a/syringe.cpp +++ b/syringe.cpp @@ -7,44 +7,49 @@ Syringe :: Syringe() { //First Syringe - set_ref("300912"); - set_brand("BD"); - set_total_volume_mL(10); - set_internal_diameter_mm(14.5); - + set_syringe("BD_10mL", "300912","BD", 10, 14.5); + set_syringe("Terumo_5mL", "0197","Terumo", 5, 10); } -Syringe :: Syringe(string ref, string brand, float total_volume_mL, float internal_diameter_mm) +Syringe :: Syringe(String name, string ref, string brand, float total_volume_mL, float internal_diameter_mm) { - set_ref(ref); - set_brand(brand); - set_total_volume_mL(total_volume_mL); - set_internal_diameter_mm(internal_diameter_mm); + set_ref(name, ref); + set_brand(name, brand); + set_total_volume_mL(name, total_volume_mL); + set_internal_diameter_mm(name, internal_diameter_mm); } - //SET METHODS -void Syringe :: set_ref(string ref) +void Syringe :: set_syringe(String name, string ref, string brand, float total_volume_mL, float internal_diameter_mm) +{ + SyringeJSON["name"] = name; + set_ref(name, ref); + set_brand(name, brand); + set_total_volume_mL(name, total_volume_mL); + set_internal_diameter_mm(name, internal_diameter_mm); +} + +void Syringe :: set_ref(String name, string ref) { - SyringeJSON["ref"] = ref; + SyringeJSON[name]["ref"] = ref; } -void Syringe :: set_brand(string brand) +void Syringe :: set_brand(String name, string brand) { - SyringeJSON["brand"] = brand; + SyringeJSON[name]["brand"] = brand; } -void Syringe :: set_total_volume_mL(float total_volume_mL) +void Syringe :: set_total_volume_mL(String name, float total_volume_mL) { - SyringeJSON["total_volume_mL"] = total_volume_mL; + SyringeJSON[name]["total_volume_mL"] = total_volume_mL; } -void Syringe :: set_internal_diameter_mm(float internal_diameter_mm) +void Syringe :: set_internal_diameter_mm(String name, float internal_diameter_mm) { - SyringeJSON["internal_diameter_mm"] = internal_diameter_mm; + SyringeJSON[name]["internal_diameter_mm"] = internal_diameter_mm; } @@ -52,24 +57,24 @@ void Syringe :: set_internal_diameter_mm(float internal_diameter_mm) //GET METHODS -string Syringe :: get_ref() +string Syringe :: get_ref(String name) { - return SyringeJSON["ref"].as<string>(); + return SyringeJSON[name]["ref"].as<string>(); } -string Syringe :: get_brand( ) +string Syringe :: get_brand(String name) { - return SyringeJSON["brand"].as<string>(); + return SyringeJSON[name]["brand"].as<string>(); } -float Syringe :: get_total_volume_mL() +float Syringe :: get_total_volume_mL(String name) { - return SyringeJSON["total_volume_mL"].as<float>(); + return SyringeJSON[name]["total_volume_mL"].as<float>(); } -float Syringe :: get_internal_diameter_mm() +float Syringe :: get_internal_diameter_mm(String name) { - return SyringeJSON["internal_diameter_mm"].as<float>(); + return SyringeJSON[name]["internal_diameter_mm"].as<float>(); } diff --git a/syringe.h b/syringe.h index b7d8f5d..7ff5edb 100644 --- a/syringe.h +++ b/syringe.h @@ -15,6 +15,7 @@ class Syringe { private : + string _name; //Would be used as the key string _ref; string brand; float _total_volume_mL; @@ -26,20 +27,21 @@ class Syringe //CONSTRUCTORS Syringe(); //There is no arguments because we add the generic syringe to use - Syringe(string ref, string brand, float total_volume_mL, float internal_diameter_mm); //There are arguments because we need to know what values to add in the Json document (no default syringe) + Syringe(String name, string ref, string brand, float total_volume_mL, float internal_diameter_mm); //There are arguments because we need to know what values to add in the Json document (no default syringe) //SET METHODS - void set_ref(string ref); - void set_brand(string brand); - void set_total_volume_mL(float total_volume_mL); - void set_internal_diameter_mm(float internal_diameter_mm); + void set_syringe(String name, string ref, string brand, float total_volume_mL, float internal_diameter_mm); + void set_ref(String name, string ref); + void set_brand(String name, string brand); + void set_total_volume_mL(String name, float total_volume_mL); + void set_internal_diameter_mm(String name, float internal_diameter_mm); //GET METHODS - string get_ref(); - string get_brand(); - float get_total_volume_mL(); - float get_internal_diameter_mm(); + string get_ref(String name); + string get_brand(String name); + float get_total_volume_mL(String name); + float get_internal_diameter_mm(String name); //JSON DOCUMENT StaticJsonDocument<200> SyringeJSON; //200 = RAM allocated to this document diff --git a/syringefilled.cpp b/syringefilled.cpp index 39ef443..7e1a495 100644 --- a/syringefilled.cpp +++ b/syringefilled.cpp @@ -326,6 +326,6 @@ void SyringeFilled :: read_Json (Stream& input_stream) //file_name sera le nom d InterruptLock lock; //useful thanks to its constructor (so a is not visible in the code) deserializeJson(SyringeFilledJSON, input_stream); - } + -- GitLab