Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: GHVentilatorChannel.h
- Revision:
- 6:b2672da545f1
- Parent:
- 5:da629056644f
- Child:
- 8:fa5cc1397510
diff -r da629056644f -r b2672da545f1 GHVentilatorChannel.h
--- a/GHVentilatorChannel.h Wed Apr 08 12:36:36 2020 +0000
+++ b/GHVentilatorChannel.h Thu Apr 09 02:05:03 2020 +0000
@@ -18,34 +18,49 @@
/* A Gravity Hookah Ventilator channel for one patient. */
class GHVentilatorChannel {
public:
+
+ enum {
+ StateInhaling = 1, //< The value for the init Ticks inhale value.
+ StateExhaling = -1, //< The value for the init Ticks exhale value.
+ };
- int Ticks, //< Ticks since the beginning of the inhale.
- TicksExhale, //< The period of the breathing.
+ volatile int Ticks; //< Ticks since the beginning of the inhale.
+ int TicksExhale, //< The period of the breathing.
TicksInhale, //< The tick count in the inhale duty cycle.
- TicksFlowInhale; //< Flow sensor tick count on the last exhale.
- volatile int TicksFlowLast, //< The previous saved count.
- TicksFlow; //< Flow sensor pulse count.
+ TicksPeep; //< The max ticks between an exhale and inhale.
+ volatile int TicksFlowLast, //< The previous inhale TicksFlow count.
+ TicksFlow; //< Flow sensor pulse TicksFlow count.
BMP280 Atmosphere; //< The air Atmosphere going to the patient.
- float PressureReference, //< The pressure in the mask at one atmosphere.
- TemperatureReference; //< The refernce temperature,
+ float Temperature, //< The Temperature of the patients breath.
+ TemperatureReference, //< The refernce temperature,
+ Pressure, //< The pressure in the patient's mask.
+ PressureReference; //< The pressure in the mask at one atmosphere.
AnalogIn PulseOximeter; //< The 7-pin pulse oximeter pin.
InterruptIn FlowSensor; //< The flow sensor pin.
- DigitalOut Valve, //< The Solenoid valve.
- Status; //< The Status LED and optional alarm.
+ DigitalOut Valve; //< The Status LED and optional alarm.
PwmOut Servo; //< The Servo for reducing the pressrue.
int ServoClosed, //< The min servo duty cycle of no air flow.
- ServoOpen; //< The max servo duty cycle of an open tube.
-
+ ServoOpen, //< The max servo duty cycle of an open tube.
+ Status; //< The channel Status.
+
/* Constructs a smart waterer. */
GHVentilatorChannel (PinName PulseOximeterPin,
PinName FlowSensorPin,
PinName SolenoidPin,
- PinName StatusPin,
PinName ServoPin,
- I2C& AtmosphereAddress, char I2CAddress);
+ I2C& Bus, char BusAddress);
/* Returns a pointer to this. */
GHVentilatorChannel* This();
+
+ /* Turns off this channel. */
+ void TurnOff ();
+
+ /* Turns on the this chanel. */
+ void TurnOn ();
+
+ /* Polls the hardware for changes. */
+ void Poll();
/* Sets the number of ticks on the inhale and exhale. */
void TicksInhaleExhaleSet (int NewTicksInhale, int NewTicksExhale);
@@ -54,14 +69,11 @@
void BreatheStart (int Index);
/* Increments theflow rate sensor pulse counter. */
- void PulseFlowSensor ();
+ void TickFlow ();
/* Prints the state of object to the debug stream. */
void Print (int Index);
- /* Polls the PulseOximeter and updates the target flow. */
- void Update (int Index);
-
/* Updates the float rate. */
bool CheckIfDoneBreathing (int Index);
@@ -71,11 +83,11 @@
/* Closes the solenoid valve. */
void Exhale ();
- /* Handles any errors. */
- void HandleError ();
-
/* Samples the Atmospheric pressure and temperature. */
- void Tare (float HysteresisPatient);
+ void Tare (float PressureHysteresis);
+
+ /* Monitor the channel for if errors. */
+ int Monitor ();
/* Updates the channel with the DeviceTick. */
void Update();