#include "main.h"
#include <Arduino.h>
#include <Ethernet.h>
#include <EthernetUdp.h>
#include <SPI.h>
#include <SPIFFS.h>
#include <daq-protocol.h>
#include <esp_mac.h>
#include <cstring>
#include <vector>
#include "STAR_ADS126X.h"
#include "adc_mappings.h"
#include "connector_adc_map.h"
#include "sense_board_pins.h"
Go to the source code of this file.
|
| enum class | PTHotfireState { WaitingForServer
, Active
, StandaloneAbort
} |
| enum class | IncomingPacketKind {
None
, ServerHeartbeat
, Config
, Abort
,
AbortDone
, ClearAbort
, SensorData
, None
,
ServerHeartbeat
, Config
, Abort
, AbortDone
,
ClearAbort
, None
, ServerHeartbeat
, Config
,
Abort
, AbortDone
, ClearAbort
, SensorData
,
NoConnAbort
, None
, ServerHeartbeat
, Config
,
Abort
, AbortDone
, ClearAbort
, SensorData
,
NoConnAbort
, None
, ServerHeartbeat
, SensorConfig
,
ClearAbort
, NoConnAbort
} |
|
| static ADS126X | ads126x |
| static uint8_t | currentConnector = 1 |
| static uint8_t | board_id = BOARD_ID_DEFAULT |
| byte | mac [6] |
| IPAddress | staticIP (192, 168, 2, BOARD_ID_DEFAULT) |
| IPAddress | gateway (0, 0, 0, 0) |
| IPAddress | subnet (255, 255, 255, 0) |
| IPAddress | dns (192, 168, 2, 1) |
| const int | udpListenPort = 5005 |
| const int | serverPortDefault = 5006 |
| EthernetUDP | udp |
| IPAddress | serverIP (192, 168, 2, 20) |
| int | serverPort = serverPortDefault |
| static PTHotfireState | state = PTHotfireState::WaitingForServer |
| static StoredSensorConfig | stored_config = {false, false, 0} |
| std::vector< daq::SensorDataChunkCollection > | dataChunks |
| uint8_t | sensorId = 0 |
| static unsigned long | lastHeartbeatMillis = 0 |
◆ DATA_RATE
◆ FILTER
◆ MAX_CHUNKS
◆ NUM_PTS
◆ PINS_ACTIVE_LAYOUT
TC (Thermocouple) Hotfire state machine — ESP32 PCB.
Same state machine as PT Hotfire: Waiting for Server → Active → Standalone Abort (and back to Active on clear). Sends heartbeats, streams thermocouple/sensor data to server or to actuator controller in abort. Uses TC_Board pin layout and BoardType::THERMOCOUPLE.
Definition at line 22 of file main.cpp.
◆ READINGS_PER_MUX
| #define READINGS_PER_MUX 5 |
◆ TEST_PIN
◆ IncomingPacketKind
| Enumerator |
|---|
| None | |
| ServerHeartbeat | |
| Config | |
| Abort | |
| AbortDone | |
| ClearAbort | |
| SensorData | |
| None | |
| ServerHeartbeat | |
| Config | |
| Abort | |
| AbortDone | |
| ClearAbort | |
| None | |
| ServerHeartbeat | |
| Config | |
| Abort | |
| AbortDone | |
| ClearAbort | |
| SensorData | |
| NoConnAbort | |
| None | |
| ServerHeartbeat | |
| Config | |
| Abort | |
| AbortDone | |
| ClearAbort | |
| SensorData | |
| NoConnAbort | |
| None | |
| ServerHeartbeat | |
| SensorConfig | |
| ClearAbort | |
| NoConnAbort | |
Definition at line 88 of file main.cpp.
◆ PTHotfireState
| Enumerator |
|---|
| WaitingForServer | |
| Active | |
| StandaloneAbort | |
Definition at line 65 of file main.cpp.
◆ ADC_SPI()
| SPIClass ADC_SPI |
( |
HSPI | | ) |
|
◆ applyPacketTransition()
◆ convert_code_to_voltage()
| float convert_code_to_voltage |
( |
int32_t | code | ) |
|
|
static |
◆ flush_cycles()
| void flush_cycles |
( |
int | cycles | ) |
|
|
static |
◆ loop()
Definition at line 350 of file main.cpp.
References daq::ACTIVE, Active, ads126x, ADS126X_AINCOM, applyPacketTransition(), BOARD_HEARTBEAT_INTERVAL_MS, ch(), currentConnector, DATA_RATE, delay(), FILTER, flush_cycles(), sense_board_pins::getAdcChannel(), lastHeartbeatMillis, LOOP_DELAY_MS, MAX_PACKET_SIZE, millis(), NUM_PTS, packetBuffer, processIncomingPacket(), read_data(), READINGS_PER_MUX, run_Active(), run_StandaloneAbort(), run_WaitingForServer(), sendBoardHeartbeat(), sensorId, serverIP, serverPort, serverPortDefault, settlePulses(), daq::SETUP, daq::STANDALONE_ABORT, StandaloneAbort, state, stored_config, TEST_PIN, udp, and WaitingForServer.
◆ processIncomingPacket()
Definition at line 127 of file main.cpp.
References daq::CLEAR_ABORT, ClearAbort, daq::NO_CONNECTION_ABORT, NoConnAbort, None, daq::parse_server_heartbeat_packet(), readPacketHeader(), daq::SENSOR_CONFIG, SensorConfig, daq::SERVER_HEARTBEAT, ServerHeartbeat, serverIP, serverPort, and stored_config.
Referenced by loop().
◆ read_data()
| void read_data |
( |
int | count | ) |
|
|
static |
Definition at line 217 of file main.cpp.
References ads126x, chunk, count(), dataChunks, delayMicroseconds(), digitalRead(), LOW, millis(), NUM_PTS, sense_board_pins::Pins, and sensorId.
Referenced by loop().
◆ readPacketHeader()
| bool readPacketHeader |
( |
const uint8_t * | buffer, |
|
|
size_t | len, |
|
|
daq::PacketHeader & | hdr_out ) |
|
static |
◆ run_Active()
◆ run_StandaloneAbort()
| void run_StandaloneAbort |
( |
| ) |
|
|
static |
◆ run_WaitingForServer()
| void run_WaitingForServer |
( |
| ) |
|
|
static |
◆ sendBoardHeartbeat()
◆ sendSensorDataPacketTo()
| void sendSensorDataPacketTo |
( |
IPAddress | dest_ip, |
|
|
int | dest_port ) |
|
static |
◆ setup()
Definition at line 286 of file main.cpp.
References ADC_SPI(), ads126x, ADS126X_AINCOM, ADS126X_REF_NEG_VSS, ADS126X_REF_POS_VDD, b, board_id, currentConnector, DATA_RATE, delay(), dns, Ethernet, ETHERNET_BEGIN_DELAY_MS, ETHERNET_INIT_DELAY_MS, ETHERNET_SPI_DELAY_MS, FILTER, gateway, sense_board_pins::getAdcChannel(), INPUT, IPAddress, mac, pinMode(), sense_board_pins::Pins, sensorId, Serial, SPI_MODE1, SPIFFS_BOARD_VALUE_PATH, state, staticIP, subnet, TEST_PIN, udp, udpListenPort, and WaitingForServer.
◆ ads126x
◆ board_id
◆ currentConnector
| uint8_t currentConnector = 1 |
|
static |
◆ dataChunks
◆ dns
| IPAddress dns(192, 168, 2, 1) |
( |
192 | , |
|
|
168 | , |
|
|
2 | , |
|
|
1 | ) |
◆ gateway
| IPAddress gateway(0, 0, 0, 0) |
( |
0 | , |
|
|
0 | , |
|
|
0 | , |
|
|
0 | ) |
◆ lastHeartbeatMillis
| unsigned long lastHeartbeatMillis = 0 |
|
static |
◆ mac
◆ sensorId
◆ serverIP
| IPAddress serverIP(192, 168, 2, 20) |
( |
192 | , |
|
|
168 | , |
|
|
2 | , |
|
|
20 | ) |
◆ serverPort
◆ serverPortDefault
| const int serverPortDefault = 5006 |
◆ state
◆ staticIP
◆ stored_config
◆ subnet
| IPAddress subnet(255, 255, 255, 0) |
( |
255 | , |
|
|
255 | , |
|
|
255 | , |
|
|
0 | ) |
◆ udp
◆ udpListenPort
| const int udpListenPort = 5005 |