Download the PHP package microscrap/ftdi without Composer
On this page you can find all versions of the php package microscrap/ftdi. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download microscrap/ftdi
More information about microscrap/ftdi
Files in microscrap/ftdi
Package ftdi
Short Description libFTDI Bindings for The PHP FTDI Extension
License MIT
Homepage https://dosr.projectsaturnstudios.com
Informations about the package ftdi
microscrap/ftdi - libFTDI helper bindings for ScrapyardIO
PHP helper library that wraps the ftdi extension with global functions and enums. Each helper delegates to Ftdi\FTDI.
This project provides direct bindings to libftdi1 through helper-style globals.
Highlights
- C-ish global helper API (
ftdi_usb_open,ftdi_read_data, etc.) - Support for serial-only devices (for example FT232RL) and MPSSE-capable devices (for example FT232H)
- USB open/read/write/flush/reset operations
- EEPROM read/write/decode/build operations
- Async transfer submission and completion
Requirements
- PHP 8.3+
- ext-ftdi ^0.4.0 - install from php-io-extensions/ftdi
- Runtime dependency of ext-ftdi:
- Debian/Ubuntu/Raspberry Pi OS:
libftdi1-2(dev package for builds:libftdi1-dev) - macOS:
brew install libftdi
- Debian/Ubuntu/Raspberry Pi OS:
Installation
Confirm ext-ftdi is loaded before using this package:
Install the helper package:
Composer autoloads src/Helpers/ftdi.php, registering global helpers when installed.
Usage
FTDI bindings are exposed as global helper functions (ftdi_new, ftdi_usb_open, etc). Helpers are only defined when a function name is not already taken (function_exists guard), matching the style used in other microscrap binding packages.
Optional enums are available under:
Microscrap\Bindings\FTDI\Enums\FtdiVendorIdMicroscrap\Bindings\FTDI\Enums\FtdiProductId
Constants and enum values follow libftdi1 conventions. Define them in PHP or load them from your platform headers.
Global Helper API
ftdi_new(): Ftdi\FTDIContext
Allocates a new libftdi1 context (ftdi_new). Check $ctx->handle >= 0 before use.
ftdi_init(Ftdi\FTDIContext $ftdi): int
Initialises an allocated context (ftdi_init). Returns 0 on success.
ftdi_deinit(Ftdi\FTDIContext $ftdi): void
Deinitialises the context (ftdi_deinit) without freeing it.
ftdi_free(Ftdi\FTDIContext $ftdi): void
Frees the context (ftdi_free). Do not use it afterward.
ftdi_usb_open(Ftdi\FTDIContext $ftdi, int $vendor, int $product): int
Opens the first device matching vendor/product (ftdi_usb_open). Returns 0 on success.
ftdi_usb_close(Ftdi\FTDIContext $ftdi): int
Closes the open USB connection (ftdi_usb_close).
ftdi_set_baudrate(Ftdi\FTDIContext $ftdi, int $baudrate): int
Sets UART baud rate (ftdi_set_baudrate).
ftdi_set_line_property(Ftdi\FTDIContext $ftdi, int $bits, int $sbit, int $parity): int
Sets line framing (ftdi_set_line_property).
ftdi_write_data(Ftdi\FTDIContext $ftdi, string $data, int $size): int
Writes up to $size bytes (ftdi_write_data).
ftdi_read_data(Ftdi\FTDIContext $ftdi, int $size): string
Reads up to $size bytes (ftdi_read_data).
ftdi_set_bitmode(Ftdi\FTDIContext $ftdi, int $bitmask, int $mode): int
Enables/disables bitbang or MPSSE mode (ftdi_set_bitmode).
ftdi_get_error_string(Ftdi\FTDIContext $ftdi): string
Returns the last libftdi1 error string (ftdi_get_error_string).
Quick reference
| Helper | Signature |
|---|---|
ftdi_new |
ftdi_new(): Ftdi\FTDIContext |
ftdi_init |
ftdi_init(Ftdi\FTDIContext $ftdi): int |
ftdi_set_interface |
ftdi_set_interface(Ftdi\FTDIContext $ftdi, int $iface): int |
ftdi_deinit |
ftdi_deinit(Ftdi\FTDIContext $ftdi): void |
ftdi_free |
ftdi_free(Ftdi\FTDIContext $ftdi): void |
ftdi_set_usb_dev |
ftdi_set_usb_dev(Ftdi\FTDIContext $ftdi, int $usbDevHandle): void |
ftdi_get_library_version |
ftdi_get_library_version(): Ftdi\FTDIVersionInfo |
ftdi_usb_find_all |
ftdi_usb_find_all(Ftdi\FTDIContext $ftdi, int $vendor, int $product): array |
ftdi_list_free |
ftdi_list_free(int $listHandle): void |
ftdi_list_free2 |
ftdi_list_free2(int $listHandle): void |
ftdi_usb_get_strings |
ftdi_usb_get_strings(Ftdi\FTDIContext $ftdi, int $devHandle): array |
ftdi_usb_get_strings2 |
ftdi_usb_get_strings2(Ftdi\FTDIContext $ftdi, int $devHandle): array |
ftdi_usb_open_dev |
ftdi_usb_open_dev(Ftdi\FTDIContext $ftdi, int $devHandle): int |
ftdi_usb_open |
ftdi_usb_open(Ftdi\FTDIContext $ftdi, int $vendor, int $product): int |
ftdi_usb_open_desc |
ftdi_usb_open_desc(Ftdi\FTDIContext $ftdi, int $vendor, int $product, string $description, string $serial): int |
ftdi_usb_open_desc_index |
ftdi_usb_open_desc_index(Ftdi\FTDIContext $ftdi, int $vendor, int $product, string $description, string $serial, int $index): int |
ftdi_usb_open_bus_addr |
ftdi_usb_open_bus_addr(Ftdi\FTDIContext $ftdi, int $bus, int $addr): int |
ftdi_usb_open_string |
ftdi_usb_open_string(Ftdi\FTDIContext $ftdi, string $description): int |
ftdi_usb_close |
ftdi_usb_close(Ftdi\FTDIContext $ftdi): int |
ftdi_usb_reset |
ftdi_usb_reset(Ftdi\FTDIContext $ftdi): int |
ftdi_tci_flush |
ftdi_tci_flush(Ftdi\FTDIContext $ftdi): int |
ftdi_tco_flush |
ftdi_tco_flush(Ftdi\FTDIContext $ftdi): int |
ftdi_tcio_flush |
ftdi_tcio_flush(Ftdi\FTDIContext $ftdi): int |
ftdi_usb_purge_rx_buffer |
ftdi_usb_purge_rx_buffer(Ftdi\FTDIContext $ftdi): int |
ftdi_usb_purge_tx_buffer |
ftdi_usb_purge_tx_buffer(Ftdi\FTDIContext $ftdi): int |
ftdi_usb_purge_buffers |
ftdi_usb_purge_buffers(Ftdi\FTDIContext $ftdi): int |
ftdi_convert_baudrate_ut_export |
ftdi_convert_baudrate_ut_export(int $baudrate, Ftdi\FTDIContext $ftdi): array |
ftdi_set_baudrate |
ftdi_set_baudrate(Ftdi\FTDIContext $ftdi, int $baudrate): int |
ftdi_set_line_property |
ftdi_set_line_property(Ftdi\FTDIContext $ftdi, int $bits, int $sbit, int $parity): int |
ftdi_set_line_property2 |
ftdi_set_line_property2(Ftdi\FTDIContext $ftdi, int $bits, int $sbit, int $parity, int $breakType): int |
ftdi_write_data |
ftdi_write_data(Ftdi\FTDIContext $ftdi, string $data, int $size): int |
ftdi_write_data_submit |
ftdi_write_data_submit(Ftdi\FTDIContext $ftdi, string $data, int $size): Ftdi\FTDITransferControl |
ftdi_read_data_submit |
ftdi_read_data_submit(Ftdi\FTDIContext $ftdi, int $size): Ftdi\FTDITransferControl |
ftdi_transfer_data_done |
ftdi_transfer_data_done(Ftdi\FTDITransferControl $tc): int |
ftdi_transfer_data_cancel |
ftdi_transfer_data_cancel(Ftdi\FTDITransferControl $tc): void |
ftdi_write_data_set_chunksize |
ftdi_write_data_set_chunksize(Ftdi\FTDIContext $ftdi, int $chunksize): int |
ftdi_write_data_get_chunksize |
ftdi_write_data_get_chunksize(Ftdi\FTDIContext $ftdi): int |
ftdi_read_data |
ftdi_read_data(Ftdi\FTDIContext $ftdi, int $size): string |
ftdi_read_data_set_chunksize |
ftdi_read_data_set_chunksize(Ftdi\FTDIContext $ftdi, int $chunksize): int |
ftdi_read_data_get_chunksize |
ftdi_read_data_get_chunksize(Ftdi\FTDIContext $ftdi): int |
ftdi_set_bitmode |
ftdi_set_bitmode(Ftdi\FTDIContext $ftdi, int $bitmask, int $mode): int |
ftdi_disable_bitbang |
ftdi_disable_bitbang(Ftdi\FTDIContext $ftdi): int |
ftdi_read_pins |
ftdi_read_pins(Ftdi\FTDIContext $ftdi): int |
ftdi_set_latency_timer |
ftdi_set_latency_timer(Ftdi\FTDIContext $ftdi, int $latency): int |
ftdi_set_timeouts |
ftdi_set_timeouts(Ftdi\FTDIContext $ftdi, int $readTimeout, int $writeTimeout): void |
ftdi_get_latency_timer |
ftdi_get_latency_timer(Ftdi\FTDIContext $ftdi): int |
ftdi_poll_modem_status |
ftdi_poll_modem_status(Ftdi\FTDIContext $ftdi): int |
ftdi_setflowctrl |
ftdi_setflowctrl(Ftdi\FTDIContext $ftdi, int $flowctrl): int |
ftdi_setflowctrl_xonxoff |
ftdi_setflowctrl_xonxoff(Ftdi\FTDIContext $ftdi, int $xon, int $xoff): int |
ftdi_setdtr |
ftdi_setdtr(Ftdi\FTDIContext $ftdi, int $state): int |
ftdi_setrts |
ftdi_setrts(Ftdi\FTDIContext $ftdi, int $state): int |
ftdi_setdtr_rts |
ftdi_setdtr_rts(Ftdi\FTDIContext $ftdi, int $dtr, int $rts): int |
ftdi_set_event_char |
ftdi_set_event_char(Ftdi\FTDIContext $ftdi, int $eventch, int $enable): int |
ftdi_set_error_char |
ftdi_set_error_char(Ftdi\FTDIContext $ftdi, int $errorch, int $enable): int |
ftdi_get_eeprom |
ftdi_get_eeprom(Ftdi\FTDIContext $ftdi): Ftdi\FTDIEeprom |
ftdi_eeprom_initdefaults |
ftdi_eeprom_initdefaults(Ftdi\FTDIContext $ftdi, string $manufacturer, string $product, string $serial): int |
ftdi_eeprom_set_strings |
ftdi_eeprom_set_strings(Ftdi\FTDIContext $ftdi, string $manufacturer, string $product, string $serial): int |
ftdi_eeprom_get_strings |
ftdi_eeprom_get_strings(Ftdi\FTDIContext $ftdi): array |
set_ft232h_cbus |
set_ft232h_cbus(Ftdi\FTDIEeprom $eeprom): string |
ftdi_eeprom_build |
ftdi_eeprom_build(Ftdi\FTDIContext $ftdi): int |
ftdi_eeprom_decode |
ftdi_eeprom_decode(Ftdi\FTDIContext $ftdi, int $verbose): int |
ftdi_get_eeprom_value |
ftdi_get_eeprom_value(Ftdi\FTDIContext $ftdi, int $valueName): int |
ftdi_set_eeprom_value |
ftdi_set_eeprom_value(Ftdi\FTDIContext $ftdi, int $valueName, int $value): int |
ftdi_get_eeprom_buf |
ftdi_get_eeprom_buf(Ftdi\FTDIContext $ftdi, int $size): string |
ftdi_set_eeprom_buf |
ftdi_set_eeprom_buf(Ftdi\FTDIContext $ftdi, string $buf): int |
ftdi_set_eeprom_user_data |
ftdi_set_eeprom_user_data(Ftdi\FTDIContext $ftdi, string $buf): int |
ftdi_read_eeprom_location |
ftdi_read_eeprom_location(Ftdi\FTDIContext $ftdi, int $addr): int |
ftdi_read_eeprom |
ftdi_read_eeprom(Ftdi\FTDIContext $ftdi): int |
ftdi_read_chip_id |
ftdi_read_chip_id(Ftdi\FTDIContext $ftdi, ?int &$chip_id): int |
ftdi_write_eeprom_location |
ftdi_write_eeprom_location(Ftdi\FTDIContext $ftdi, int $addr, int $val): int |
ftdi_write_eeprom |
ftdi_write_eeprom(Ftdi\FTDIContext $ftdi): int |
ftdi_erase_eeprom |
ftdi_erase_eeprom(Ftdi\FTDIContext $ftdi): int |
ftdi_get_error_string |
ftdi_get_error_string(Ftdi\FTDIContext $ftdi): string |
License
MIT. See LICENSE.
All versions of ftdi with dependencies
ext-ftdi Version ^0.4.3|^0.5.0