11#include "STAR_ADS126X.h"
17#define PINS_ACTIVE_LAYOUT sense_board_pins::RTD_Board
26#define NUM_CONNECTORS 2
27#define MAX_CHUNKS_PER_PACKET 8
52std::vector<daq::SensorDataChunkCollection>
chunks;
55 return ((
float)code * 2.5f) / 2147483648.0f;
60 Serial.println(
"Starting RTD streaming (connectors 1 & 2)...");
80 ads126x.setIDAC1Pin(
static_cast<uint8_t
>(idac1));
84 ads126x.setIDAC2Pin(
static_cast<uint8_t
>(idac2));
92 ESP_ERROR_CHECK(esp_read_mac(
mac, ESP_MAC_ETH));
94 for (
int i = 0; i < 6; i++) {
112 Serial.print(
"Ethernet OK, IP: ");
114 Serial.println(
"Setup complete.");
127 for (
int i = 0; i < cycles; i++) {
140 ads126x.setIDAC1Pin(
static_cast<uint8_t
>(idac1));
144 ads126x.setIDAC2Pin(
static_cast<uint8_t
>(idac2));
153 for (
int i = 0; i < num_readings; i++) {
157 const auto reading =
ads126x.readADC1();
158 if (!reading.checksumValid) {
159 Serial.println(
"Warning: Bad checksum");
162 value =
static_cast<uint32_t
>(reading.value);
178 if (!
chunk.empty()) {
192 if (packetSize == 0) {
193 Serial.println(
"Error: Failed to create sensor data packet");
201 Serial.print(
"Sent RTD packet: ");
205 Serial.println(
" chunks");
void delayMicroseconds(unsigned int)
static EthernetClass Ethernet
#define READINGS_PER_CONNECTOR
#define ADS126X_IDAC_MAG_1000
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)
std::vector< daq::SensorDataChunkCollection > chunks
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]
void read_single_connector(uint8_t connector_id, int num_readings, daq::SensorDataChunkCollection &chunk)
#define MAX_CHUNKS_PER_PACKET
IPAddress dns(192, 168, 2, 1)
IPAddress subnet(255, 255, 255, 0)
IPAddress receiverIP(192, 168, 2, 20)
void sendSensorDataPacket()
float convert_code_to_voltage(int32_t code)
void flush_adc_cycles(int cycles)
IPAddress staticIP(192, 168, 2, 101)
void set_connector_rtd(uint8_t connector_id)
IPAddress gateway(0, 0, 0, 0)
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 getIdacChannel(uint8_t connector, uint8_t pin)
constexpr int getAdcChannel(uint8_t connector, uint8_t pin)
constexpr const Layout & Pins
Represents a single data chunk with timestamp and sensor datapoints.