Kabuki Starship / Mbed 2 deprecated GHVentilator

Dependencies:   mbed SickBayTek

Committer:
kabukistarship
Date:
Fri Apr 10 11:56:58 2020 +0000
Revision:
9:256989faeb3b
Change.GHVentilator.Firmware.Switch to Arduino and mbed compatible format. #74

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kabukistarship 9:256989faeb3b 1 /** Gravity Hookah Ventilator @version 0.x
kabukistarship 9:256989faeb3b 2 @link https://github.com/KabukiStarship/SickBay.git
kabukistarship 9:256989faeb3b 3 @file /GHVentilatorChannel.cpp
kabukistarship 9:256989faeb3b 4 @author Cale McCollough <https://cale-mccollough.github.io>
kabukistarship 9:256989faeb3b 5 @license Copyright 2020 (C) Kabuki Starship <kabukistarship.com>.
kabukistarship 9:256989faeb3b 6 This Source Code Form is subject to the terms of the Mozilla Public License,
kabukistarship 9:256989faeb3b 7 v. 2.0. If a copy of the MPL was not distributed with this file, you can obtain
kabukistarship 9:256989faeb3b 8 one at <https://mozilla.org/MPL/2.0/>. */
kabukistarship 9:256989faeb3b 9
kabukistarship 9:256989faeb3b 10 #include "GHVentilatorChannel.h"
kabukistarship 9:256989faeb3b 11
kabukistarship 9:256989faeb3b 12 #include <mbedBug.h>
kabukistarship 9:256989faeb3b 13 using namespace mbedBug;
kabukistarship 9:256989faeb3b 14
kabukistarship 9:256989faeb3b 15 namespace SickBay {
kabukistarship 9:256989faeb3b 16
kabukistarship 9:256989faeb3b 17 GHVentilatorChannel::GHVentilatorChannel () :
kabukistarship 9:256989faeb3b 18 Ticks (0),
kabukistarship 9:256989faeb3b 19 TicksInhale (0),
kabukistarship 9:256989faeb3b 20 TicksExhale (0),
kabukistarship 9:256989faeb3b 21 PulseOximeter (0),
kabukistarship 9:256989faeb3b 22 Servo (0),
kabukistarship 9:256989faeb3b 23 ServoClosed (0),
kabukistarship 9:256989faeb3b 24 ServoOpen (1) {}
kabukistarship 9:256989faeb3b 25
kabukistarship 9:256989faeb3b 26 void GHVentilatorChannel::Init (GHVentilator* Parent, int TicksInhale,
kabukistarship 9:256989faeb3b 27 int TicksExhale, float PressureHysteresis) {
kabukistarship 9:256989faeb3b 28 this->Parent = Parent;
kabukistarship 9:256989faeb3b 29 this->TicksInhale = TicksInhale;
kabukistarship 9:256989faeb3b 30 this->TicksExhale = TicksExhale;
kabukistarship 9:256989faeb3b 31 this->PressureHysteresis = Pressure * PressureHysteresis;
kabukistarship 9:256989faeb3b 32 }
kabukistarship 9:256989faeb3b 33
kabukistarship 9:256989faeb3b 34 GHVentilatorChannel* GHVentilatorChannel::This() { return this; }
kabukistarship 9:256989faeb3b 35
kabukistarship 9:256989faeb3b 36 void GHVentilatorChannel::TurnOff () {
kabukistarship 9:256989faeb3b 37 Parent->ChannelValveSet(this, LLLow);
kabukistarship 9:256989faeb3b 38 Ticks = 0;
kabukistarship 9:256989faeb3b 39 }
kabukistarship 9:256989faeb3b 40
kabukistarship 9:256989faeb3b 41 void GHVentilatorChannel::TicksInhaleExhaleSet (int NewTicksInhale,
kabukistarship 9:256989faeb3b 42 int NewTicksExhale) {
kabukistarship 9:256989faeb3b 43 int Tick = Ticks;
kabukistarship 9:256989faeb3b 44 if (Tick == 0) {
kabukistarship 9:256989faeb3b 45 TicksInhale = NewTicksInhale;
kabukistarship 9:256989faeb3b 46 TicksExhale = NewTicksExhale;
kabukistarship 9:256989faeb3b 47 }
kabukistarship 9:256989faeb3b 48 TicksInhale = NewTicksInhale;
kabukistarship 9:256989faeb3b 49 TicksExhale = NewTicksExhale;
kabukistarship 9:256989faeb3b 50 if (Tick < 0) { // We're exhaling.
kabukistarship 9:256989faeb3b 51 if (Ticks > NewTicksExhale) {
kabukistarship 9:256989faeb3b 52 Ticks = NewTicksExhale;
kabukistarship 9:256989faeb3b 53 Inhale ();
kabukistarship 9:256989faeb3b 54 }
kabukistarship 9:256989faeb3b 55 }
kabukistarship 9:256989faeb3b 56 else if (Tick > 0) { // We're inhaling.
kabukistarship 9:256989faeb3b 57 if (Ticks > NewTicksInhale) {
kabukistarship 9:256989faeb3b 58 Ticks = NewTicksInhale;
kabukistarship 9:256989faeb3b 59 Exhale ();
kabukistarship 9:256989faeb3b 60 }
kabukistarship 9:256989faeb3b 61 return;
kabukistarship 9:256989faeb3b 62 }
kabukistarship 9:256989faeb3b 63 }
kabukistarship 9:256989faeb3b 64
kabukistarship 9:256989faeb3b 65 void GHVentilatorChannel::TickFlow () {
kabukistarship 9:256989faeb3b 66 ++TicksFlow;
kabukistarship 9:256989faeb3b 67 }
kabukistarship 9:256989faeb3b 68
kabukistarship 9:256989faeb3b 69 void GHVentilatorChannel::Inhale () {
kabukistarship 9:256989faeb3b 70 DPrintf ("\n ? Inhaling. <");
kabukistarship 9:256989faeb3b 71 Ticks = StateInhaling;
kabukistarship 9:256989faeb3b 72 Parent->ChannelValveSet(this, LLHigh);
kabukistarship 9:256989faeb3b 73 }
kabukistarship 9:256989faeb3b 74
kabukistarship 9:256989faeb3b 75 void GHVentilatorChannel::Exhale () {
kabukistarship 9:256989faeb3b 76 DPrintf ("\n ? Exhaling. <");
kabukistarship 9:256989faeb3b 77 Ticks = StateExhaling;
kabukistarship 9:256989faeb3b 78 Parent->ChannelValveSet(this, LLLow);
kabukistarship 9:256989faeb3b 79 TicksFlowLast = TicksFlow;
kabukistarship 9:256989faeb3b 80 }
kabukistarship 9:256989faeb3b 81
kabukistarship 9:256989faeb3b 82 } //< namespace SickBay