Skip to content
Snippets Groups Projects
Select Git revision
  • crash-fix
  • main default protected
  • v0.3.0
  • v0.2.0
  • v0.1.1
  • v0.1.0
6 results

serial-bridge

  • Clone with SSH
  • Clone with HTTPS
  • This README refers to the serialbridge module used for the Hardware In the Loop (HIL) simulation.

    How to Build

    The following steps will generate a mex file that can be used in MATLAB.

    With Just

    Just takes care of setting the correct extension.

    just build-env <MATLAB_PATH>

    Where <MATLAB_PATH> is the path to the MATLAB installation directory. This can be found by running matlabroot in the MATLAB command window as follows:

    fullfile(matlabroot(), 'bin', computer('arch'))

    Manually

    export MATLAB_LIB_DIR="<MATLAB_PATH>"
    cargo build --release
    mv target/release/libserial_bridge.dylib serialbridge.<EXT>

    <EXT> is the extension of the library file (e.g. mexa64 for Linux, mexw64 for Windows, mexmaci64 for macOS).

    Usage

    serialbridge can be used in matlab in the following way:

    • serialbridge("Open", string_serialPort, uint_baudrate):
      • "Open": specifies we want to open the serial port
      • string_serialPort: is the serial port we want to open (eg: "COM6")
      • uint_baudrate: is the baudrate of the port (eg: 256000)
    • serialbridge("Write", singleArray_Data):
      • "Write": specifies that we want to write to the serial port
      • singleArray_Data: is the array of singles we want to write on serial (eg: [1 2 3 4.5 5.4])
    • singleArray_Data = serialbridge("Read", uint_nData);
      • "Read": specifies that we want to read from the serial port
      • uint_nData: How many floats to read from serial (eg: 1)
      • singleArray_Data: array of floats read from the serial (eg: actuatorData)
    • serialbridge("Close", string_serialPort, uint_baudrate):
      • "Close": specifies we want to close the serial port

    Example in Matlab:

    serialbridge("Open", "COM6", 256000); % Opens the serial port
    serialbridge("Write", [1 2 3 4]);     % Sends the array "[1 2 3 4]" to the serial device
    data = serialbridge("Read", 2);       % Receives 2 floats and stores them in the variable "data"
    serialbridge("Close");                % Closes the serial port

    Procedure in order to use the MatlabTransceiver module: https://git.skywarder.eu/scs/hermes/r2a-obsw/-/blob/Serial4Simulations-dev/src/tests/hardware_in_the_loop/README.md

    WARNING:

    • It's possible to open just ONE serial port with this module

    Dev

    Tho have rustanalyzer working properly, you need to add a config.toml in the .cargo directory at the root of this repository with the following content:

    [env]
    MATLAB_LIB_DIR = <MATLAB_PATH>

    To get the <MATLAB_PATH> you can follow the instructions in the "How to Build" section.