STAR
Cal STAR — firmware, DAQ server, and engine design
Loading...
Searching...
No Matches
controller_integration.ActuatorComm Class Reference

Public Member Functions

 __init__ (self, str actuator_board_ip, int command_port=5005, int status_port=5006)
bool start (self)
 stop (self)
bytes create_actuator_command_packet (self, List[Tuple[int, int]] commands)
bool send_command (self, int actuator_id, int state)
bool send_commands_batch (self, List[Tuple[int, int]] commands)
List[ActuatorStatus] parse_actuator_status (self, bytes data, str source_ip)
 reset (self)

Public Attributes

 actuator_ip = actuator_board_ip
 command_port = command_port
 status_port = status_port
Optional[socket.socket] command_sock = None
Optional[socket.socket] status_sock = None
dict actuator_statuses = {}
deque status_queue = deque(maxlen=1000)
Optional[threading.Thread] status_thread = None
bool running = False

Detailed Description

Actuator command/status communication handler

Definition at line 74 of file controller_integration.py.

Constructor & Destructor Documentation

◆ __init__()

controller_integration.ActuatorComm.__init__ ( self,
str actuator_board_ip,
int command_port = 5005,
int status_port = 5006 )

Definition at line 77 of file controller_integration.py.

Member Function Documentation

◆ create_actuator_command_packet()

bytes controller_integration.ActuatorComm.create_actuator_command_packet ( self,
List[Tuple[int, int]] commands )
Create an actuator command packet (exact format from combined_gui.py).

Args:
    commands: List of (actuator_id, actuator_state) tuples
    actuator_id: 1-10 (1-indexed)
    actuator_state: 0 = OFF, non-zero = ON

Returns:
    Packet bytes, or empty bytes if invalid

Definition at line 128 of file controller_integration.py.

◆ parse_actuator_status()

List[ActuatorStatus] controller_integration.ActuatorComm.parse_actuator_status ( self,
bytes data,
str source_ip )
Parse actuator current sense data from sensor data packet.
Actuator board sends current sense as PT samples on same port as sensors (5006).
These come as sensor data packets with channel_id = actuator_id (1-10).

Returns:
    List of ActuatorStatus objects

Definition at line 247 of file controller_integration.py.

◆ reset()

controller_integration.ActuatorComm.reset ( self)
Reset controller state

Definition at line 308 of file controller_integration.py.

◆ send_command()

bool controller_integration.ActuatorComm.send_command ( self,
int actuator_id,
int state )
Send actuator command via UDP (exact DiabloAvionics format).

Args:
    actuator_id: 1-10 (1-indexed channel on actuator board)
    state: 0=OFF, 1=ON (hardware level)

Returns:
    True if sent successfully

Definition at line 182 of file controller_integration.py.

◆ send_commands_batch()

bool controller_integration.ActuatorComm.send_commands_batch ( self,
List[Tuple[int, int]] commands )
Send multiple actuator commands in a single packet.

Args:
    commands: List of (actuator_id, state) tuples

Returns:
    True if sent successfully

Definition at line 223 of file controller_integration.py.

◆ start()

bool controller_integration.ActuatorComm.start ( self)
Start actuator communication

Definition at line 96 of file controller_integration.py.

◆ stop()

controller_integration.ActuatorComm.stop ( self)
Stop actuator communication

Definition at line 119 of file controller_integration.py.

Member Data Documentation

◆ actuator_ip

controller_integration.ActuatorComm.actuator_ip = actuator_board_ip

Definition at line 80 of file controller_integration.py.

◆ actuator_statuses

dict controller_integration.ActuatorComm.actuator_statuses = {}

Definition at line 89 of file controller_integration.py.

◆ command_port

controller_integration.ActuatorComm.command_port = command_port

Definition at line 81 of file controller_integration.py.

◆ command_sock

Optional[socket.socket] controller_integration.ActuatorComm.command_sock = None

Definition at line 85 of file controller_integration.py.

◆ running

bool controller_integration.ActuatorComm.running = False

Definition at line 94 of file controller_integration.py.

Referenced by imu_calibration_gui.UDPReceiver.run().

◆ status_port

controller_integration.ActuatorComm.status_port = status_port

Definition at line 82 of file controller_integration.py.

◆ status_queue

deque controller_integration.ActuatorComm.status_queue = deque(maxlen=1000)

Definition at line 90 of file controller_integration.py.

◆ status_sock

Optional[socket.socket] controller_integration.ActuatorComm.status_sock = None

Definition at line 86 of file controller_integration.py.

◆ status_thread

Optional[threading.Thread] controller_integration.ActuatorComm.status_thread = None

Definition at line 93 of file controller_integration.py.


The documentation for this class was generated from the following file: