diff --git a/cli.cpp b/cli.cpp index 2ee15aa643e909389278f341e92af741e43d7c6b..f2db71a936215dff58ff055056c1f6bfdcb25a8a 100644 --- a/cli.cpp +++ b/cli.cpp @@ -218,7 +218,7 @@ void Cli::loop (Stream& input) else if (kw(F("FMM"))) //*******************FRONT_DISTANCE*******************// { copyNextToTemp(); - String name_syringe = SyringeFilled :: get_syringe_filled_data()["name_syringe"]; + String name_syringe = syringe_filled.get_syringe_filled_data()["name_syringe"]; if (_temp.length()) { if (isdigit(_temp[0])) @@ -232,7 +232,7 @@ void Cli::loop (Stream& input) else if (kw(F("EMM"))) //*******************EXCHANGE_DISTANCE*******************// { copyNextToTemp(); - String name_syringe = SyringeFilled :: get_syringe_filled_data()["name_syringe"]; + String name_syringe = syringe_filled.get_syringe_filled_data()["name_syringe"]; if (_temp.length()) { if (isdigit(_temp[0]) || _temp[0] == '-') @@ -247,13 +247,13 @@ void Cli::loop (Stream& input) else if (kw(F("DIA"))) //*******************INTERNAL_DIAMETER*******************//* { copyNextToTemp(); - String name_syringe = SyringeFilled :: get_syringe_filled_data()["name_syringe"]; + String name_syringe = syringe_filled.get_syringe_filled_data()["name_syringe"]; if (_temp.length()) { - Syringe :: get_syringe_database()[name_syringe].set_internal_diameter_mm(name_syringe,atof(_temp.c_str()))); - answer( Syringe :: check_configuration(name_syringe), F("invalid diameter")); + syringe.get_syringe_database()[name_syringe].set_internal_diameter_mm(name_syringe,atof(_temp.c_str()))); + answer( syringe.check_configuration(name_syringe), F("invalid diameter")); } - Serial.printf("%sDIA: %g mm\n", _msgHeader, Syringe :: get_syringe_database()[name_syringe]["internal_diameter_mm"]); + Serial.printf("%sDIA: %g mm\n", _msgHeader, syringe.get_syringe_database()[name_syringe]["internal_diameter_mm"]); } #endif else if (kw(F("RVM"))) diff --git a/syringe.cpp b/syringe.cpp index 7e5157577dbcd291930bcc3f28e5fdbf64f80ca2..5f0ff8d2042e9c19c228997ec42cc692ab84ca11 100644 --- a/syringe.cpp +++ b/syringe.cpp @@ -2,23 +2,24 @@ #include <math.h> #include "syringe.h" +#include <StreamString.h> Syringe syringe; -StaticJsonDocument<200> Syringe :: syringe_json; //200 = RAM allocated to this document //CONSTRUCTOR Syringe :: Syringe() { - //First Syringe - Serial.println("okk"); - set_syringe("BD_10mL", "300912","BD", 10, 14.5); + //set_syringe("BD_10mL", "300912","BD", 10, 14.5); set_syringe("Terumo_5mL", "0197","Terumo", 5, 10); + syringe_json["BD_10mL"] = 10; + syringe_json["nom"] = "bidule"; } + //SET METHODS -void Syringe :: set_syringe(String name, string ref, string brand, float total_volume_mL, float internal_diameter_mm) +void Syringe :: set_syringe(String name, String ref, String brand, float total_volume_mL, float internal_diameter_mm) { syringe_json["name"] = name; set_ref(name, ref); @@ -27,12 +28,12 @@ void Syringe :: set_syringe(String name, string ref, string brand, float total_v set_internal_diameter_mm(name, internal_diameter_mm); } -void Syringe :: set_ref(String name, string ref) +void Syringe :: set_ref(String name, String ref) { syringe_json[name]["ref"] = ref; } -void Syringe :: set_brand(String name, string brand) +void Syringe :: set_brand(String name, String brand) { syringe_json[name]["brand"] = brand; } @@ -52,14 +53,14 @@ void Syringe :: set_internal_diameter_mm(String name, float internal_diameter_mm //GET METHODS -string Syringe :: get_ref(String name) +String Syringe :: get_ref(String name) { - return syringe_json[name]["ref"].as<string>(); + return syringe_json[name]["ref"].as<String>(); } -string Syringe :: get_brand(String name) +String Syringe :: get_brand(String name) { - return syringe_json[name]["brand"].as<string>(); + return syringe_json[name]["brand"].as<String>(); } float Syringe :: get_total_volume_mL(String name) diff --git a/syringe.h b/syringe.h index 555badca0da9a09217e84d6a3dc6a5af801b3867..62a6124d9abefc0a14038e46de9ac9af6cdfa473 100644 --- a/syringe.h +++ b/syringe.h @@ -24,8 +24,7 @@ class Syringe float _internal_diameter_mm; //JSON DOCUMENT - static StaticJsonDocument<200> syringe_json; //200 = RAM allocated to this document - + StaticJsonDocument<200> syringe_json; //200 = RAM allocated to this document public : @@ -33,20 +32,20 @@ class Syringe Syringe(); //There is no arguments because we add the generic syringe to use //SET METHODS - void set_syringe(String name, string ref, string brand, float total_volume_mL, 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_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 name); - string get_brand(String name); + String get_ref(String name); + String get_brand(String name); float get_total_volume_mL(String name); float get_internal_diameter_mm(String name); - static const StaticJsonDocument<200>& get_syringe_database(); + const StaticJsonDocument<200>& get_syringe_database(); const JsonObject get_syringe_database_object(); diff --git a/syringefilled.cpp b/syringefilled.cpp index e3d912ca459bd76d599219240f2686035cfc144e..79040d82073a7b2aad2b0e0823a859c03aa3825f 100644 --- a/syringefilled.cpp +++ b/syringefilled.cpp @@ -1,7 +1,6 @@ #include "syringefilled.h" -StaticJsonDocument<200> SyringeFilled :: syringe_filled_json; //200 = RAM allocated to this document ISRStepper stepper(AccelStepper::DRIVER, STEP, DIR); @@ -122,7 +121,7 @@ float SyringeFilled::volume_to_distance(float volume_mL) { float volume_mm3 = 1000*volume_mL; //mL->mm3 - float piston_surface_mm2 = Syringe :: get_syringe_database()[syringe_filled_json["name_syringe"]]["internal_diameter"]; + float piston_surface_mm2 = syringe.get_syringe_database()[syringe_filled_json["name_syringe"]]["internal_diameter"]; float distance_mm = volume_mm3/piston_surface_mm2; @@ -136,7 +135,7 @@ float SyringeFilled::distance_to_volume(float distance_mm) -Action : / ***/ { - float piston_surface_mm2 = Syringe :: get_syringe_database()[syringe_filled_json["name_syringe"]]["internal_diameter"]; + float piston_surface_mm2 = syringe.get_syringe_database()[syringe_filled_json["name_syringe"]]["internal_diameter"]; float volume_mm3 = distance_mm*piston_surface_mm2; @@ -168,7 +167,7 @@ void SyringeFilled :: move() float exchange_volume_mm3 = get_exchange_volume_mL()*1000; //Find the section - float radius = Syringe :: get_syringe_database()[syringe_filled_json["name_syringe"]]["internal_diameter_mm"]; + float radius = syringe.get_syringe_database()[syringe_filled_json["name_syringe"]]["internal_diameter_mm"]; float section_mm2 = M_PI*radius*radius; @@ -277,7 +276,7 @@ bool SyringeFilled :: check_configuration() -Action : Check if the values are correct. ***/ { - if (Syringe :: get_syringe_database()[syringe_filled_json["name_syringe"]]["internal_diameter"] <= 0) + if (syringe.get_syringe_database()[syringe_filled_json["name_syringe"]]["internal_diameter"] <= 0) return false; if (get_exchange_volume_mL() < 0) @@ -313,8 +312,8 @@ void SyringeFilled :: show_configuration() "# emergency: %d\n" "# current position: %g mm\n", get_clockwise_equals_push()? "yes": "no", - //Syringe :: get_syringe_database()[syringe_filled_json["name_syringe"]]["internal_diameter"], - //Syringe :: get_syringe_database()[syringe_filled_json["name_syringe"]]["total_volume_mL"], + //syringe.get_syringe_database()[syringe_filled_json["name_syringe"]]["internal_diameter"], + //syringe.get_syringe_database()[syringe_filled_json["name_syringe"]]["total_volume_mL"], get_exchange_throughput_uL_per_sec(), volume_to_distance(get_exchange_throughput_uL_per_sec()), get_remaining_volume_mL(), diff --git a/syringefilled.h b/syringefilled.h index 42ad4dc06d629e99c0428c9fb936d3b01d742643..3c590a977eff9ac724ddfccfc0cd97f3a87561fe 100644 --- a/syringefilled.h +++ b/syringefilled.h @@ -42,7 +42,7 @@ class SyringeFilled : public Motor bool _emergency; //JSON DOCUMENT - static StaticJsonDocument<200> syringe_filled_json; //200 = RAM allocated to this document + StaticJsonDocument<200> syringe_filled_json; //200 = RAM allocated to this document public : @@ -70,7 +70,7 @@ class SyringeFilled : public Motor float get_screw_thread_mm(); bool get_clockwise_equals_push(); bool get_emergency(); - static const StaticJsonDocument<200>& get_syringe_filled_data(); + const StaticJsonDocument<200>& get_syringe_filled_data();