#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 "actuator_board_pins.h"
#include "actuator_config.h"
Go to the source code of this file.
|
| enum class | ActuatorControllerState {
WaitingForServer
, Active
, StandardAbort
, NoConnectionAbort
,
PTAbort
, NoPTAbort
, AbortFinished
, ConnectionLossDetected
,
StandaloneAbort
, WaitingForServer
, Active
, StandardAbort
,
NoConnectionAbort
, AbortFinished
, ConnectionLossDetected
, WaitingForServer = 1
,
Active = 2
, ConnectionLossDetected = 3
, NoConnectionAbort = 4
, NoConnAbortFollower = 5
,
PTAbort = 6
, NoPTAbort = 7
, AbortFinished = 8
, WaitingForServer = 1
,
Active = 2
, ConnectionLossDetected = 3
, NoConnectionAbort = 4
, NoConnAbortFollower = 5
,
PTAbort = 6
, NoPTAbort = 7
, AbortFinished = 8
} |
| enum class | LedPhase {
Idle
, On
, Off
, Idle
,
On
, Off
, Idle
, On
,
Off
} |
| 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 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) |
| IPAddress | serverIP (192, 168, 2, 20) |
| const int | udpListenPort = 5005 |
| const int | serverPort = 5006 |
| EthernetUDP | udp |
| static ActuatorControllerState | state |
| static unsigned long | last_server_heartbeat_ms = 0 |
| static unsigned long | state_enter_ms = 0 |
| static StoredConfig | stored_config = {false, {0}, 0} |
| const uint8_t | NUM_SENSORS = NUM_ACTUATORS |
| static unsigned long | last_adc_read_ms = 0 |
| static uint8_t | actuator_states [NUM_ACTUATORS] |
| static unsigned long | lastHeartbeatMillis = 0 |
| static LedPhase | led_phase = LedPhase::Idle |
| static unsigned long | led_cycle_start_ms = 0 |
| static uint8_t | led_blink_index = 0 |
| static unsigned long | led_phase_start_ms = 0 |
| static ActuatorControllerState | last_led_state |
◆ ActuatorControllerState
| Enumerator |
|---|
| WaitingForServer | |
| Active | |
| StandardAbort | |
| NoConnectionAbort | |
| PTAbort | |
| NoPTAbort | |
| AbortFinished | |
| ConnectionLossDetected | |
| StandaloneAbort | |
| WaitingForServer | |
| Active | |
| StandardAbort | |
| NoConnectionAbort | |
| AbortFinished | |
| ConnectionLossDetected | |
| WaitingForServer | |
| Active | |
| ConnectionLossDetected | |
| NoConnectionAbort | |
| NoConnAbortFollower | |
| PTAbort | |
| NoPTAbort | |
| AbortFinished | |
| WaitingForServer | |
| Active | |
| ConnectionLossDetected | |
| NoConnectionAbort | |
| NoConnAbortFollower | |
| PTAbort | |
| NoPTAbort | |
| AbortFinished | |
Definition at line 42 of file actuator_c.cpp.
◆ 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 209 of file actuator_c.cpp.
◆ LedPhase
| Enumerator |
|---|
| Idle | |
| On | |
| Off | |
| Idle | |
| On | |
| Off | |
| Idle | |
| On | |
| Off | |
Definition at line 79 of file actuator_c.cpp.
◆ applyPacketTransition()
Definition at line 392 of file actuator_c.cpp.
References Abort, AbortDone, AbortFinished, Active, ClearAbort, Config, ConnectionLossDetected, millis(), NoConnectionAbort, ServerHeartbeat, StandardAbort, state, state_enter_ms, and WaitingForServer.
Referenced by loop().
◆ getBoardStateForHeartbeat()
Definition at line 154 of file actuator_c.cpp.
References daq::ABORT_FINISHED, AbortFinished, daq::ACTIVE, Active, daq::CONNECTION_LOSS_DETECTED, ConnectionLossDetected, daq::NO_CONNECTION_ABORT, NoConnectionAbort, daq::PT_ABORT, daq::SETUP, StandardAbort, state, and WaitingForServer.
Referenced by sendBoardHeartbeat().
◆ getStateNumber()
◆ heartbeatTimedOut()
| bool heartbeatTimedOut |
( |
| ) |
|
|
static |
◆ initializeActuators()
| void initializeActuators |
( |
| ) |
|
|
static |
◆ initializeCurrentSensePins()
| void initializeCurrentSensePins |
( |
| ) |
|
|
static |
◆ loop()
Definition at line 551 of file actuator_c.cpp.
References AbortFinished, Active, applyPacketTransition(), BOARD_HEARTBEAT_INTERVAL_MS, ConnectionLossDetected, delay(), lastHeartbeatMillis, LOOP_DELAY_MS, MAX_PACKET_SIZE, millis(), NoConnectionAbort, packetBuffer, processIncomingPacket(), run_AbortFinished(), run_Active(), run_ConnectionLossDetected(), run_NoConnectionAbort(), run_StandardAbort(), run_WaitingForServer(), sendBoardHeartbeat(), StandardAbort, state, udp, updateLedNonBlocking(), and WaitingForServer.
◆ processActuatorCommands()
| void processActuatorCommands |
( |
const std::vector< daq::ActuatorCommand > & | commands | ) |
|
|
static |
◆ processIncomingPacket()
Definition at line 218 of file actuator_c.cpp.
References daq::ABORT, Abort, daq::ABORT_DONE, AbortDone, Active, daq::ACTUATOR_COMMAND, daq::ACTUATOR_CONFIG, daq::CLEAR_ABORT, ClearAbort, commands, Config, last_server_heartbeat_ms, millis(), None, daq::parse_actuator_command_packet(), daq::parse_server_heartbeat_packet(), processActuatorCommands(), readPacketHeader(), daq::SERVER_HEARTBEAT, ServerHeartbeat, StandardAbort, state, and stored_config.
Referenced by loop().
◆ readCurrentSensePinsAndSend()
| void readCurrentSensePinsAndSend |
( |
| ) |
|
|
static |
Definition at line 290 of file actuator_c.cpp.
References analogRead(), chunk, chunks, daq::create_sensor_data_packet(), actuator_board_pins::getCurrentSensePin(), MAX_PACKET_SIZE, millis(), NUM_SENSORS, packetBuffer, serverIP, serverPort, and udp.
Referenced by streamSensorDataIfDue().
◆ readPacketHeader()
| bool readPacketHeader |
( |
const uint8_t * | buffer, |
|
|
size_t | buffer_size, |
|
|
daq::PacketHeader & | header_out ) |
|
static |
◆ run_AbortFinished()
| void run_AbortFinished |
( |
| ) |
|
|
static |
◆ run_Active()
◆ run_ConnectionLossDetected()
| void run_ConnectionLossDetected |
( |
| ) |
|
|
static |
◆ run_NoConnectionAbort()
| void run_NoConnectionAbort |
( |
| ) |
|
|
static |
◆ run_StandardAbort()
| void run_StandardAbort |
( |
| ) |
|
|
static |
◆ run_WaitingForServer()
| void run_WaitingForServer |
( |
| ) |
|
|
static |
◆ sendBoardHeartbeat()
| void sendBoardHeartbeat |
( |
| ) |
|
|
static |
◆ setup()
Definition at line 472 of file actuator_c.cpp.
References actuator_board_pins::Actuator_Board, b, board_id, delay(), digitalWrite(), dns, Ethernet, ETHERNET_BEGIN_DELAY_MS, ETHERNET_INIT_DELAY_MS, ETHERNET_SPI_DELAY_MS, gateway, HEX, initializeActuators(), initializeCurrentSensePins(), IPAddress, last_led_state, last_server_heartbeat_ms, led_cycle_start_ms, LOW, mac, millis(), OUTPUT, pinMode(), Serial, SPIFFS_BOARD_VALUE_PATH, state, state_enter_ms, staticIP, subnet, udp, udpListenPort, and WaitingForServer.
◆ streamSensorDataIfDue()
| void streamSensorDataIfDue |
( |
| ) |
|
|
static |
◆ updateLedNonBlocking()
| void updateLedNonBlocking |
( |
| ) |
|
|
static |
Definition at line 106 of file actuator_c.cpp.
References actuator_board_pins::Actuator_Board, digitalWrite(), getStateNumber(), HIGH, Idle, last_led_state, led_blink_index, LED_BLINK_OFF_MS, LED_BLINK_ON_MS, LED_CYCLE_MS, led_cycle_start_ms, led_phase, led_phase_start_ms, LOW, millis(), Off, On, and state.
Referenced by loop().
◆ actuator_states
◆ board_id
◆ dns
| IPAddress dns(192, 168, 2, 1) |
( |
192 | , |
|
|
168 | , |
|
|
2 | , |
|
|
1 | ) |
◆ gateway
| IPAddress gateway(0, 0, 0, 0) |
( |
0 | , |
|
|
0 | , |
|
|
0 | , |
|
|
0 | ) |
◆ last_adc_read_ms
| unsigned long last_adc_read_ms = 0 |
|
static |
◆ last_led_state
◆ last_server_heartbeat_ms
| unsigned long last_server_heartbeat_ms = 0 |
|
static |
◆ lastHeartbeatMillis
| unsigned long lastHeartbeatMillis = 0 |
|
static |
◆ led_blink_index
| uint8_t led_blink_index = 0 |
|
static |
◆ led_cycle_start_ms
| unsigned long led_cycle_start_ms = 0 |
|
static |
◆ led_phase
◆ led_phase_start_ms
| unsigned long led_phase_start_ms = 0 |
|
static |
◆ mac
◆ NUM_SENSORS
◆ serverIP
| IPAddress serverIP(192, 168, 2, 20) |
( |
192 | , |
|
|
168 | , |
|
|
2 | , |
|
|
20 | ) |
◆ serverPort
| const int serverPort = 5006 |
◆ state
◆ state_enter_ms
| unsigned long state_enter_ms = 0 |
|
static |
◆ staticIP
◆ stored_config
◆ subnet
| IPAddress subnet(255, 255, 255, 0) |
( |
255 | , |
|
|
255 | , |
|
|
255 | , |
|
|
0 | ) |
◆ udp
◆ udpListenPort
| const int udpListenPort = 5005 |