Hide navigation sidebar
Hide table of contents sidebar
Back to top
Toggle table of contents sidebar

# Device Control Host API

The following structures and functions are used to initialize and call a control instance on the host.

control_ret_t control_init_i2c(unsigned char i2c_slave_address)

  Initialize the xscope host interface

  Parameters:

    - host_str – String containing the name of the xscope host. Eg. “localhost”

    - port_str – String containing the port number of the xscope host

    - spi_mode – Mode that the SPI will run in

    - clock_divider – The amount to divide the Raspberry Pi’s clock by, e.g. BCM2835_SPI_CLOCK_DIVIDER_1024 gives a clock of ~122kHz on the RPI 2.

    - delay_for_read – Delay between send and recieve for read command

    - spi_mode – Mode that the SPI will run in

    - spi_bitrate – Bitrate for SPI to run at

    - delay_for_read – Delay between send and recieve for read command

    - i2c_slave_address – I2C address of the slave (controlled device)

  Returns:

    Whether the initialization was successful or not Shutdown the xscope host interface

  Returns:

    Whether the shutdown was successful or not Initialize the SPI host (master) interface for the Raspberry Pi

  Returns:

    Whether the initialization was successful or not Initialize the SPI host (master) interface

  Returns:

    Whether the initialization was successful or not Shutdown the SPI host (master) interface connection

  Returns:

    Whether the shutdown was successful or not Initialize the I2C host (master) interface

  Returns:

    Whether the initialization was successful or not

control_ret_t control_cleanup_i2c(void)

  Shutdown the I2C host (master) interface connection

  Returns:

    Whether the shutdown was successful or not

control_ret_t control_init_usb(int vendor_id, int product_id, int interface_num)

  Initialize the USB host interface

  Parameters:

    - vendor_id – Vendor ID of controlled USB device

    - product_id – Product ID of controlled USB device

    - interface_num – USB Control interface number of controlled device

  Returns:

    Whether the initialization was successful or not

control_ret_t control_cleanup_usb(void)

  Shutdown the USB host interface connection

  Returns:

    Whether the shutdown was successful or not

control_ret_t control_init_spi_pi(spi_mode_t spi_mode, bcm2835SPIClockDivider clock_divider, long intertransation_delay_ns)

  Initialize the SPI host (master) interface for the Raspberry Pi

  Parameters:

    - spi_mode – Mode that the SPI will run in

    - clock_divider – The amount to divide the Raspberry Pi’s clock by, e.g. BCM2835_SPI_CLOCK_DIVIDER_1024 gives a clock of ~122kHz on the RPI 2.

    - intertransaction_delay – Delay in nanoseconds that will be applied between each spi transaction. This is implemented with nanosleep() from time.h.

  Returns:

    Whether the initialization was successful or not

control_ret_t control_cleanup_spi(void)

  Shutdown the SPI host (master) interface connection

  Returns:

    Whether the shutdown was successful or not

control_ret_t control_query_version(control_version_t *version)

  Checks to see that the version of control library in the device is the same as the host

  Parameters:

    - version – Reference to control version variable that is set on this call

  Returns:

    Whether the checking of control library version was successful or not

control_ret_t control_write_command(control_resid_t resid, control_cmd_t cmd, const uint8_t payload[], size_t payload_len)

  Request to write to controllable resource inside the device. The command consists of a resource ID, command and a byte payload of length payload_len.

  Parameters:

    - resid – Resource ID. Indicates which resource the command is intended for

    - cmd – Command code. Note that this will be in the range 0x80 to 0xFF because bit 7 set indiciates a write command

    - payload – Array of bytes which constitutes the data payload

    - payload_len – Size of the payload in bytes

  Returns:

    Whether the write to the device was successful or not

control_ret_t control_read_command(control_resid_t resid, control_cmd_t cmd, uint8_t payload[], size_t payload_len)

  Request to read from controllable resource inside the device. The command consists of a resource ID, command and a byte payload of length payload_len.

  Parameters:

    - resid – Resource ID. Indicates which resource the command is intended for

    - cmd – Command code. Note that this will be in the range 0x80 to 0xFF because bit 7 set indiciates a write command

    - payload – Array of bytes which constitutes the data payload

    - payload_len – Size of the payload in bytes

  Returns:

    Whether the read from the device was successful or not