STAR
Cal STAR — firmware, DAQ server, and engine design
Loading...
Searching...
No Matches
main.cpp File Reference
#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"
Include dependency graph for main.cpp:

Go to the source code of this file.

Classes

struct  StoredSensorConfig

Macros

#define PINS_ACTIVE_LAYOUT   sense_board_pins::TC_Board
 TC (Thermocouple) Hotfire state machine — ESP32 PCB.
#define FILTER   ADS126X_SINC4
#define DATA_RATE   ADS126X_RATE_7200
#define TEST_PIN   1
#define NUM_PTS   10
#define READINGS_PER_MUX   5
#define MAX_CHUNKS   9

Enumerations

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
}

Functions

SPIClass ADC_SPI (HSPI)
static float convert_code_to_voltage (int32_t code)
static void flush_cycles (int cycles)
static bool readPacketHeader (const uint8_t *buffer, size_t len, daq::PacketHeader &hdr_out)
static IncomingPacketKind processIncomingPacket (const uint8_t *buffer, size_t len, IPAddress remote_ip, int remote_port)
static void sendBoardHeartbeat (daq::BoardState board_state, IPAddress dest_ip, int dest_port)
static void sendSensorDataPacketTo (IPAddress dest_ip, int dest_port)
static void read_data (int count)
static void run_WaitingForServer ()
static void run_Active ()
static void run_StandaloneAbort ()
static void applyPacketTransition (IncomingPacketKind kind)
void setup ()
void loop ()

Variables

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

Macro Definition Documentation

◆ DATA_RATE

#define DATA_RATE   ADS126X_RATE_7200

Definition at line 34 of file main.cpp.

◆ FILTER

#define FILTER   ADS126X_SINC4

Definition at line 33 of file main.cpp.

◆ MAX_CHUNKS

#define MAX_CHUNKS   9

Definition at line 38 of file main.cpp.

◆ NUM_PTS

#define NUM_PTS   10

Definition at line 36 of file main.cpp.

◆ PINS_ACTIVE_LAYOUT

#define PINS_ACTIVE_LAYOUT   sense_board_pins::TC_Board

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

Definition at line 37 of file main.cpp.

◆ TEST_PIN

#define TEST_PIN   1

Definition at line 35 of file main.cpp.

Enumeration Type Documentation

◆ IncomingPacketKind

enum class IncomingPacketKind
strong
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

enum class PTHotfireState
strong
Enumerator
WaitingForServer 
Active 
StandaloneAbort 

Definition at line 65 of file main.cpp.

Function Documentation

◆ ADC_SPI()

SPIClass ADC_SPI ( HSPI )

References HSPI.

◆ applyPacketTransition()

void applyPacketTransition ( IncomingPacketKind kind)
static

Definition at line 263 of file main.cpp.

References Active, ClearAbort, NoConnAbort, SensorConfig, StandaloneAbort, state, stored_config, and WaitingForServer.

Referenced by loop().

◆ convert_code_to_voltage()

float convert_code_to_voltage ( int32_t code)
static

Definition at line 99 of file main.cpp.

◆ flush_cycles()

void flush_cycles ( int cycles)
static

Definition at line 103 of file main.cpp.

References ads126x, delayMicroseconds(), digitalRead(), LOW, and sense_board_pins::Pins.

Referenced by loop().

◆ loop()

◆ processIncomingPacket()

IncomingPacketKind processIncomingPacket ( const uint8_t * buffer,
size_t len,
IPAddress remote_ip,
int remote_port )
static

◆ 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

Definition at line 114 of file main.cpp.

Referenced by processIncomingPacket().

◆ run_Active()

void run_Active ( )
static

Definition at line 242 of file main.cpp.

References dataChunks, MAX_CHUNKS, sendSensorDataPacketTo(), serverIP, and serverPort.

Referenced by loop().

◆ run_StandaloneAbort()

void run_StandaloneAbort ( )
static

Definition at line 249 of file main.cpp.

References dataChunks, MAX_CHUNKS, sendSensorDataPacketTo(), serverPortDefault, and stored_config.

Referenced by loop().

◆ run_WaitingForServer()

void run_WaitingForServer ( )
static

Definition at line 237 of file main.cpp.

Referenced by loop().

◆ sendBoardHeartbeat()

void sendBoardHeartbeat ( daq::BoardState board_state,
IPAddress dest_ip,
int dest_port )
static

◆ sendSensorDataPacketTo()

void sendSensorDataPacketTo ( IPAddress dest_ip,
int dest_port )
static

◆ setup()

Variable Documentation

◆ ads126x

ADS126X ads126x
static

Definition at line 40 of file main.cpp.

◆ board_id

uint8_t board_id = BOARD_ID_DEFAULT
static

Definition at line 47 of file main.cpp.

◆ currentConnector

uint8_t currentConnector = 1
static

Definition at line 42 of file main.cpp.

Referenced by loop(), and setup().

◆ dataChunks

std::vector<daq::SensorDataChunkCollection> dataChunks

Definition at line 79 of file main.cpp.

◆ 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

Definition at line 83 of file main.cpp.

◆ mac

byte mac[6]

Definition at line 48 of file main.cpp.

◆ sensorId

uint8_t sensorId = 0

Definition at line 80 of file main.cpp.

Referenced by loop(), read_data(), and setup().

◆ serverIP

IPAddress serverIP(192, 168, 2, 20) ( 192 ,
168 ,
2 ,
20  )

◆ serverPort

int serverPort = serverPortDefault

Definition at line 60 of file main.cpp.

◆ serverPortDefault

const int serverPortDefault = 5006

Definition at line 54 of file main.cpp.

Referenced by loop(), and run_StandaloneAbort().

◆ state

Definition at line 67 of file main.cpp.

◆ staticIP

IPAddress staticIP(192, 168, 2, BOARD_ID_DEFAULT) ( 192 ,
168 ,
2 ,
BOARD_ID_DEFAULT  )

◆ stored_config

StoredSensorConfig stored_config = {false, false, 0}
static

Definition at line 76 of file main.cpp.

◆ subnet

IPAddress subnet(255, 255, 255, 0) ( 255 ,
255 ,
255 ,
0  )

◆ udp

EthernetUDP udp

Definition at line 55 of file main.cpp.

◆ udpListenPort

const int udpListenPort = 5005

Definition at line 53 of file main.cpp.