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.
GHVentilatorChannel.hpp@9:256989faeb3b, 2020-04-10 (annotated)
- 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?
User | Revision | Line number | New 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 |