STAR
Cal STAR — firmware, DAQ server, and engine design
Loading...
Searching...
No Matches
solenoid.h
Go to the documentation of this file.
1
// solenoid_controls.h
2
// Interface for controlling solenoid valves via MCP23S17 GPIO expanders.
3
4
#ifndef SOLENOID_CONTROLS_H_
5
#define SOLENOID_CONTROLS_H_
6
7
#include <
Arduino.h
>
8
#include <MCP23S17.h>
9
#include <
SPI.h
>
10
#include <stddef.h>
11
#include <stdint.h>
12
13
namespace
solenoids
{
14
15
// ===================== CONFIG =====================
16
constexpr
bool
SOLENOID_ACTIVE_HIGH
=
true
;
// set to false if LOW = open
17
constexpr
int
PYRO_CS_1
= 48;
18
19
// ===================== PUBLIC ENUM =====================
20
enum
SolenoidID
{
OVP
= 0,
FVP
,
OUP
,
FUP
,
ODP
,
FDP
,
PVF
,
PVO
};
21
22
// ===================== API =====================
23
24
// Initializes the MCP23S17 and configures all solenoid channels as outputs.
25
void
init
(SPIClass& spi,
int
sclk,
int
miso,
int
mosi,
int
cs_pin,
26
uint8_t mcp_hw_addr = 0x00);
27
28
// Individual solenoid controls
29
void
open
(
SolenoidID
id
);
30
void
close
(
SolenoidID
id
);
31
bool
isOpen
(
SolenoidID
id
);
32
33
// Safety and helper utilities
34
void
safeAllOff
();
35
void
pulseBlocking
(
SolenoidID
id
, uint32_t ms);
36
37
// Higher-level operational macros
38
void
openAll
();
39
void
closeAll
();
40
41
void
fillTanks
();
42
void
basePress
();
43
void
pressKero
();
44
void
pressLOX
();
45
void
pressKeroLOX
();
46
void
Pressurization
();
47
void
ventKeroLOX
();
48
void
openMains
();
49
void
ventTanks
();
50
void
ventAll
();
51
void
Abort
();
52
53
}
// namespace solenoids
54
55
#endif
// SOLENOID_CONTROLS_H_
Arduino.h
SPI.h
solenoids
Definition
solenoid.cpp:6
solenoids::closeAll
void closeAll()
Definition
solenoid.cpp:70
solenoids::ventKeroLOX
void ventKeroLOX()
Definition
solenoid.cpp:123
solenoids::close
void close(SolenoidID id)
Definition
solenoid.cpp:46
solenoids::pressKero
void pressKero()
Definition
solenoid.cpp:85
solenoids::Abort
void Abort()
Definition
solenoid.cpp:150
solenoids::Pressurization
void Pressurization()
Definition
solenoid.cpp:117
solenoids::pressLOX
void pressLOX()
Definition
solenoid.cpp:95
solenoids::fillTanks
void fillTanks()
Definition
solenoid.cpp:75
solenoids::ventAll
void ventAll()
Definition
solenoid.cpp:142
solenoids::openAll
void openAll()
Definition
solenoid.cpp:65
solenoids::pressKeroLOX
void pressKeroLOX()
Definition
solenoid.cpp:105
solenoids::open
void open(SolenoidID id)
Definition
solenoid.cpp:43
solenoids::SolenoidID
SolenoidID
Definition
solenoid.h:20
solenoids::ODP
@ ODP
Definition
solenoid.h:20
solenoids::PVO
@ PVO
Definition
solenoid.h:20
solenoids::FVP
@ FVP
Definition
solenoid.h:20
solenoids::PVF
@ PVF
Definition
solenoid.h:20
solenoids::OUP
@ OUP
Definition
solenoid.h:20
solenoids::FDP
@ FDP
Definition
solenoid.h:20
solenoids::OVP
@ OVP
Definition
solenoid.h:20
solenoids::FUP
@ FUP
Definition
solenoid.h:20
solenoids::SOLENOID_ACTIVE_HIGH
constexpr bool SOLENOID_ACTIVE_HIGH
Definition
solenoid.h:16
solenoids::safeAllOff
void safeAllOff()
Definition
solenoid.cpp:53
solenoids::pulseBlocking
void pulseBlocking(SolenoidID id, uint32_t ms)
Definition
solenoid.cpp:58
solenoids::isOpen
bool isOpen(SolenoidID id)
Definition
solenoid.cpp:49
solenoids::init
void init(SPIClass &spi, int sclk, int miso, int mosi, int cs_pin, uint8_t mcp_hw_addr)
Definition
solenoid.cpp:31
solenoids::basePress
void basePress()
Definition
solenoid.cpp:81
solenoids::openMains
void openMains()
Definition
solenoid.cpp:130
solenoids::PYRO_CS_1
constexpr int PYRO_CS_1
Definition
solenoid.h:17
solenoids::ventTanks
void ventTanks()
Definition
solenoid.cpp:136
firmware
DAQv1_FA25
src
solenoid.h
Generated by
1.15.0