Newer
Older
Malaurie Bernard
committed
#include <math.h>
#include "syringe.h"
Malaurie Bernard
committed
#include <StreamString.h>
Malaurie Bernard
committed
Syringe :: Syringe()
Malaurie Bernard
committed
{
//set_syringe("Terumo_5mL", 5, 10);
//set_syringe("Terumo_2mL", 2, 3);
//set_syringe("FisherBrand_1mL", 1, 0.5);
Malaurie Bernard
committed
}
Malaurie Bernard
committed
Malaurie Bernard
committed
void Syringe :: set_syringe(String name, float total_volume_mL, float internal_diameter_mm)
Malaurie Bernard
committed
{
set_total_volume_mL(name, total_volume_mL);
set_internal_diameter_mm(name, internal_diameter_mm);
}
Malaurie Bernard
committed
Malaurie Bernard
committed
void Syringe :: set_total_volume_mL(String name, float total_volume_mL)
Malaurie Bernard
committed
syringe_json[name]["total_volume_mL"] = total_volume_mL;
Malaurie Bernard
committed
void Syringe :: set_internal_diameter_mm(String name, float internal_diameter_mm)
Malaurie Bernard
committed
syringe_json[name]["internal_diameter_mm"] = internal_diameter_mm;
Malaurie Bernard
committed
Malaurie Bernard
committed
Malaurie Bernard
committed
float Syringe :: get_total_volume_mL(String name)
Malaurie Bernard
committed
return syringe_json[name]["total_volume_mL"].as<float>();
Malaurie Bernard
committed
float Syringe :: get_internal_diameter_mm(String name)
Malaurie Bernard
committed
return syringe_json[name]["internal_diameter_mm"].as<float>();
const StaticJsonDocument<200>& Syringe :: get_syringe_database()
{
Malaurie Bernard
committed
return syringe_json;
const JsonObject Syringe :: get_syringe_database_object()
{
return syringe_json.as<JsonObject>();
}
Malaurie Bernard
committed
//CONFIGURATION
bool Syringe :: check_configuration(String name)
{
Malaurie Bernard
committed
if (syringe_json[name]["total_volume_mL"] < 0)
Malaurie Bernard
committed
return false;
Malaurie Bernard
committed
else if (syringe_json[name]["internal_diameter_mm"] < 0)
Malaurie Bernard
committed
return false;
else
return true;
}
//Example : File f = ({ InterruptLock lock; filesystem->open(filename, "w"); }); and the f becomes the argument input_stream
Malaurie Bernard
committed
//useful in web.cpp via a button to save data
Malaurie Bernard
committed
/***
-Argument : input_stream (= serial or a file)
Malaurie Bernard
committed
-Return : /
-Action : Save the Json structure in a file (convert it to text)
***/
InterruptLock lock; //useful thanks to its constructor (so a is not visible in the code)
File f = filesystem->open("syringe_json", "w"); //Creation du fichier
size_t a = serializeJson(syringe_json, f); //remettre f a la plce de json
Serial.println("Taille de syringe_json");
Serial.println(a);
f.close();
Malaurie Bernard
committed
}
//useful in setup of pousse-seringue.cpp(to check at the begining what has already been saved) and web.cpp via a button to recover data
Malaurie Bernard
committed
/***
-Argument : output_stream (= serial or a file)
Malaurie Bernard
committed
-Return : /
-Action : Check if a Json Document alredy exist or not, if it does it is load
Malaurie Bernard
committed
***/
Malaurie Bernard
committed
InterruptLock lock; //useful thanks to its constructor (so a is not visible in the code)
deserializeJson(syringe_json, f);
Malaurie Bernard
committed
}