Skip to content
Snippets Groups Projects
Commit 15ad2063 authored by Karol Hennessy's avatar Karol Hennessy
Browse files

minor additions to arduino

parent 4eb6c3de
Branches
No related merge requests found
#include "common.h"
void setValves(bool vin_air, bool vin_o2, bool vinhale, bool vexhale, bool vpurge)
void setValves(bool vin_air, bool vin_o2, bool vinhale,
bool vexhale, bool vpurge, bool vatmos)
{
digitalWrite(pin_valve_air_in, vin_air);
digitalWrite(pin_valve_o2_in, vin_o2);
digitalWrite(pin_valve_inhale, vinhale);
digitalWrite(pin_valve_exhale, vexhale);
digitalWrite(pin_valve_purge, vpurge);
digitalWrite(pin_valve_atmosphere, vatmos);
// save the state
bitWrite(valve_port_states, pin_valve_air_in, vin_air);
bitWrite(valve_port_states, pin_valve_o2_in, vin_o2);
bitWrite(valve_port_states, pin_valve_inhale, vinhale);
bitWrite(valve_port_states, pin_valve_exhale, vexhale);
bitWrite(valve_port_states, pin_valve_purge, vpurge);
bitWrite(valve_port_states, pin_valve_atmosphere, vatmos);
}
void getValves(bool &vin_air, bool &vin_o2, bool &vinhale, bool &vexhale, bool &vpurge)
void getValves(bool &vin_air, bool &vin_o2, bool &vinhale,
bool &vexhale, bool &vpurge, bool &vatmos)
{
vin_air = bitRead(PORTD, pin_valve_air_in);
vin_o2 = bitRead(PORTD, pin_valve_o2_in );
vinhale = bitRead(PORTD, pin_valve_inhale);
vexhale = bitRead(PORTD, pin_valve_exhale);
vpurge = bitRead(PORTD, pin_valve_purge);
// read the state
vin_air = bitRead(valve_port_states, pin_valve_air_in);
vin_o2 = bitRead(valve_port_states, pin_valve_o2_in );
vinhale = bitRead(valve_port_states, pin_valve_inhale);
vexhale = bitRead(valve_port_states, pin_valve_exhale);
vpurge = bitRead(valve_port_states, pin_valve_purge);
vatmos = bitRead(valve_port_states, pin_valve_atmosphere);
}
\ No newline at end of file
......@@ -33,10 +33,14 @@ enum hev_modes : byte
enum valve_states : bool
{
V_OPEN = LOW,
V_CLOSED = HIGH
V_OPEN = HIGH,
V_CLOSED = LOW
};
void setValves(bool vin_air, bool vin_o2, bool vinhale, bool vexhale, bool vpurge);
void getValves(bool &vin_air, bool &vin_o2, bool &vinhale, bool &vexhale, bool &vpurge);
static uint32_t valve_port_states = 0x0;
void setValves(bool vin_air, bool vin_o2, bool vinhale,
bool vexhale, bool vpurge, bool vatmos);
void getValves(bool &vin_air, bool &vin_o2, bool &vinhale,
bool &vexhale, bool &vpurge, bool &vatmos);
......@@ -99,13 +99,15 @@ void loop()
data.pressure_buffer = analogRead(pin_p_buffer);
data.pressure_inhale = analogRead(pin_p_inhale);
bool vin_air, vin_o2, vinhale, vexhale, vpurge;
getValves(vin_air, vin_o2, vinhale, vexhale, vpurge);
bool vin_air, vin_o2, vinhale, vexhale, vpurge, vatmos;
getValves(vin_air, vin_o2, vinhale, vexhale, vpurge, vatmos);
data.readback_valve_air_in = vin_air;
data.readback_valve_o2_in = vin_o2;
data.readback_valve_inhale = vinhale;
data.readback_valve_exhale = vexhale;
data.readback_valve_purge = vpurge;
// TODO ; add to dataFormat
// data.readback_valve_atmosphere = vpurge;
//breath_cycle();
FSM_assignment();
......
......@@ -104,18 +104,18 @@ void FSM_breath_cycle()
} else {
timeout = 1000;
}
setValves(V_CLOSED, V_CLOSED, V_OPEN, V_OPEN, V_CLOSED);
setValves(V_CLOSED, V_CLOSED, V_OPEN, V_OPEN, V_CLOSED, V_CLOSED);
break;
case BS_BUFF_PREFILL:
setValves(V_CLOSED, V_CLOSED, V_CLOSED, V_OPEN, V_CLOSED);
setValves(V_CLOSED, V_CLOSED, V_CLOSED, V_OPEN, V_CLOSED, V_CLOSED);
timeout = 100;
break;
case BS_BUFF_FILL:
setValves(V_OPEN, V_OPEN, V_CLOSED, V_OPEN, V_CLOSED);
setValves(V_OPEN, V_OPEN, V_CLOSED, V_OPEN, V_CLOSED, V_CLOSED);
timeout = 1200;
break;
case BS_BUFF_LOADED:
setValves(V_CLOSED, V_CLOSED, V_CLOSED, V_OPEN, V_CLOSED);
setValves(V_CLOSED, V_CLOSED, V_CLOSED, V_OPEN, V_CLOSED, V_CLOSED);
switch (lab_cycle_mode)
{
case LAB_MODE_FLUSH:
......@@ -131,40 +131,38 @@ void FSM_breath_cycle()
}
break;
case BS_BUFF_PRE_INHALE:
setValves(V_CLOSED, V_CLOSED, V_CLOSED, V_CLOSED, V_CLOSED);
setValves(V_CLOSED, V_CLOSED, V_CLOSED, V_CLOSED, V_CLOSED, V_CLOSED);
timeout = 100;
break;
case BS_INHALE:
setValves(V_CLOSED, V_CLOSED, V_OPEN, V_CLOSED, V_CLOSED);
setValves(V_CLOSED, V_CLOSED, V_OPEN, V_CLOSED, V_CLOSED, V_CLOSED);
timeout =1600;
break;
case BS_PAUSE:
setValves(V_CLOSED, V_CLOSED, V_CLOSED, V_CLOSED, V_CLOSED);
setValves(V_CLOSED, V_CLOSED, V_CLOSED, V_CLOSED, V_CLOSED, V_CLOSED);
timeout = 200;
break;
case BS_EXHALE_FILL:
setValves(V_OPEN, V_OPEN, V_CLOSED, V_OPEN, V_CLOSED);
setValves(V_OPEN, V_OPEN, V_CLOSED, V_OPEN, V_CLOSED, V_CLOSED);
timeout =1200;
break;
case BS_EXHALE:
setValves(V_CLOSED, V_CLOSED, V_CLOSED, V_OPEN, V_CLOSED);
setValves(V_CLOSED, V_CLOSED, V_CLOSED, V_OPEN, V_CLOSED, V_CLOSED);
timeout = 400;
break;
case BS_BUFF_PURGE:
setValves(V_CLOSED, V_CLOSED, V_CLOSED, V_OPEN, V_OPEN);
setValves(V_CLOSED, V_CLOSED, V_CLOSED, V_OPEN, V_OPEN, V_CLOSED);
timeout =1000;
break;
case BS_BUFF_FLUSH:
setValves(V_CLOSED, V_CLOSED, V_OPEN, V_OPEN, V_CLOSED);
setValves(V_CLOSED, V_CLOSED, V_OPEN, V_OPEN, V_CLOSED, V_CLOSED);
timeout =1000;
break;
}
// Serial.println("state FSM_breath_cycle: " + String(bs_state));
......
#!/usr/bin/env python3
from commsControl import commsControl
import logging
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment