flange_serial_read (Auto Mode)

This section explains how to use flange_serial_read during Auto (Run) operations to receive data from a device connected to the robot’s flange-mounted serial port.

This function waits up to the given timeout for data on the given port and returns the received bytes and their count in a FLANGE_SER_RXD_INFO_EX structure, allowing the robot to process responses or sensor readings from the tool.

Typical usage

  • Receive status feedback from a smart gripper.

  • Read barcode/QR scan data from a serial scanner.

  • Acquire sensor data from tool-mounted measurement devices.

  • Implement handshake/acknowledgment logic with external peripherals.

Note

  • The serial port must be opened beforehand with flange_serial_open.

  • Many devices require request–response timing considerations.

  • The flange board revision used by the flange serial and flange I/O functions is read at open_connection.

Example: Reading a Response From a Tool Device

// Open serial port
drfl.flange_serial_open(1, 115200);

// Wait up to 3 seconds for data on port 1 (X1)
LPFLANGE_SER_RXD_INFO_EX rx = drfl.flange_serial_read(3.0f, 1);

if (rx == nullptr || rx->_iSize <= 0) {
    printf("No data received.\n");
    return -1;
}

printf("Received (%d bytes): %.*s\n", rx->_iSize, rx->_iSize, (const char*)rx->_cRxd);

In this example, data is read from the tool after a previous write operation, allowing the robot to receive device responses in Auto mode.

Tips

  • One read returns at most 256 bytes.

  • Some devices require a delay after write before attempting to read.

  • Use polling or loop-based reads for larger or streaming data.

  • Combine with serial-write to implement command–response or handshake protocols.