11#include "STAR_ADS126X.h"
17#define PINS_ACTIVE_LAYOUT sense_board_pins::PT_Board
28#define NUM_CONNECTORS 10
29#define MAX_CHUNKS_BEFORE_SEND 9
55std::vector<daq::SensorDataChunkCollection>
chunks;
59 return ((
float)code * 2.5f) / 2147483648.0f;
68 Serial.println(
"Starting ADC with Ethernet...");
72 Serial.println(
"ADC Reference: VDD");
74 Serial.println(
"ADC Reference: Internal 2.5V");
121 esp_read_mac(
mac, ESP_MAC_ETH));
123 Serial.print(
"Generated unique MAC address: ");
124 for (
int i = 0; i < 6; i++) {
134 Serial.println(
"Initializing Ethernet...");
150 Serial.print(
"Ethernet initialized. IP: ");
152 Serial.print(
"Link Status: ");
153 if (
Ethernet.linkStatus() == LinkON) {
154 Serial.println(
"Connected");
155 }
else if (
Ethernet.linkStatus() == LinkOFF) {
156 Serial.println(
"Disconnected");
158 Serial.println(
"Unknown");
161 Serial.println(
"Setup complete!");
174 for (
int i = 0; i < cycles; i++) {
184 for (
int i = 0; i < num_readings; i++) {
187 const auto reading =
ads126x.readADC1();
188 if (!reading.checksumValid)
190 value =
static_cast<uint32_t
>(reading.value);
219 if (packetSize == 0) {
220 Serial.println(
"Error: Failed to create sensor data packet");
228 Serial.print(
"Sent sensor data packet: ");
232 Serial.println(
" chunks");
void delayMicroseconds(unsigned int)
static EthernetClass Ethernet
#define ADS126X_REF_POS_VDD
#define ADS126X_REF_NEG_VSS
constexpr uint8_t settlePulses(uint8_t filter, uint8_t data_rate, bool chop_enabled=false, bool idac_rotation_enabled=false)
IPAddress receiverIP(192, 168, 2, 20)
void read_single_connector(uint8_t connector_id, int num_readings, daq::SensorDataChunkCollection &chunk)
#define MAX_CHUNKS_BEFORE_SEND
IPAddress dns(192, 168, 2, 1)
IPAddress subnet(255, 255, 255, 0)
IPAddress receiverIP(192, 168, 2, 20)
void sendSensorDataPacket()
std::vector< daq::SensorDataChunkCollection > chunks
float convert_code_to_voltage(int32_t code)
void flush_adc_cycles(int cycles)
IPAddress staticIP(192, 168, 2, 101)
IPAddress gateway(0, 0, 0, 0)
IPAddress dns(192, 168, 2, 1)
IPAddress subnet(255, 255, 255, 0)
IPAddress staticIP(192, 168, 2, BOARD_ID_DEFAULT)
IPAddress gateway(0, 0, 0, 0)
char packetBuffer[UDP_TX_PACKET_MAX_SIZE]
size_t create_sensor_data_packet(const std::vector< SensorDataChunkCollection > &chunks, const uint8_t num_sensors, uint32_t timestamp_ms, uint8_t *buffer, size_t buffer_size)
Creates a complete Sensor Data packet in the provided buffer.
constexpr int getAdcChannel(uint8_t connector, uint8_t pin)
constexpr const Layout & Pins
Represents a single data chunk with timestamp and sensor datapoints.