-
Malaurie Bernard authoredMalaurie Bernard authored
syringe.h 1.52 KiB
#pragma once
#include "motor.h"
#include <ArduinoJson.h>
#include <interrupts.h> // InterruptLock
using InterruptLock = esp8266::InterruptLock;
#include <iostream>
using namespace std;
class Syringe
{
private :
String _name; //Would be used as the key
String _ref;
String brand;
float _total_volume_mL;
float _internal_diameter_mm;
//JSON DOCUMENT
static StaticJsonDocument<200> syringe_json; //200 = RAM allocated to this document
public :
//CONSTRUCTORS
Syringe(); //There is no arguments because we add the generic syringe to use
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_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 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();
//CONFIGURATION
bool check_configuration(String name);
//JSON METHODS
void write_Json (Stream& output_stream);
void read_Json (Stream& input_stream);
};
extern Syringe syringe;