You're reading the documentation for an older, but still supported version (GL013300).
For information on the latest version, please have a look at GL013301.

flange_serial_close (Manual Mode)

This section explains how to use flange_serial_close during Manual (Teach) operations to terminate an active serial communication session on a specific flange port after completing manual I/O or sensor communication tests.

Typical usage

  • Close an open flange serial port used for tool, gripper, or sensor communication.

  • Ensure the port is properly released before switching to another device or reopening the port.

  • Prevent serial resource conflicts during repeated manual connection tests.

Note

  • The function should be called after flange_serial_open has successfully established a connection.

  • Always close the port before powering off the robot or changing communication parameters.

Example: Open, communicate, and close flange serial port

#include "DRFLEx.h"
#include <thread>
#include <chrono>
#include <cstdio>
using namespace DRAFramework;

int main() {
    CDRFLEx drfl;
    // Preconditions:
    // - Connection established (open_connection)
    // - Manual (Teach) mode active
    // - Tool or sensor connected to flange COM1

    // 1) Open the flange serial port (COM1, 115200 bps)
    bool opened = drfl.flange_serial_open(FLANGE_COM1, 115200, FLANGE_PARITY_NONE, 8, 1);
    if (!opened) {
        std::printf("[Flange] Failed to open serial port.\n");
        return -1;
    }
    std::printf("[Flange] Serial port opened successfully.\n");

    // 2) (Optional) Perform data transmission
    // drfl.flange_serial_write(FLANGE_COM1, tx_data, tx_length);
    // drfl.flange_serial_read(FLANGE_COM1, rx_buffer, rx_length);

    std::this_thread::sleep_for(std::chrono::seconds(1)); // simulation delay

    // 3) Close the serial port
    bool closed = drfl.flange_serial_close(FLANGE_COM1);
    if (closed)
        std::printf("[Flange] COM1 closed successfully.\n");
    else
        std::printf("[Flange] Failed to close COM1.\n");

    return 0;
}

Tips

  • Always call flange_serial_close() before reopening the same port to avoid busy resource errors.

  • If close fails, verify that all pending read/write operations are finished.

  • For multi-tool setups, manage ports individually (COM1, COM2) and close them in reverse order of use.