Чтобы облегчить себе и другим разработку программ для шлюза UART-to-I2C/SPI/1W я решил собрать реализацию всех поддерживаемых шлюзом команд в отдельную Dll. Это избавит программистов от необходимости писать код для работы с железкой и позволит им сосредоточиться на прикладной части своих приложений.
Dll-ка выложена с исходниками и может распространяться совершенно свободно, — делайте с ней что хотите, только было бы неплохо в случае каких-либо модификаций отписываться на форум на предмет того, что, зачем и для чего модифицировано.
Готовая dll (с хидером) | Исходники |
rh0004.dll + rh0004.h | rh0004.dll sources |
Коротко о том, как подключать dll-ки и пользоваться функциями из них в своих программах на C++ Builder, можно почитать вот здесь.
Ниже приводится список экспортируемых функций. Для того, чтобы увидеть описание какой-либо функции — щёлкните по ней левой кнопкой мыши.
Функции для работы с портом
- ConnectPort — подключение к порту
- DisconnectPort — отключение от порта
Общие функции для работы со шлюзом
- ResetDevice — сброс шлюза
- InterfaceChoiceI2C — выбор I2C
- InterfaceChoiceSPI — выбор SPI
- InterfaceChoice1W — выбор 1W
- ReadError — чтение регистра ошибок
- SaveToEPROM — сохранение настроек в EPROM
- ReadFromEPROM — чтение настроек из EPROM
- EnableReports — включить отчёты
- DisableReports — выключить отчёты
- EnableAutoload — установить флаг автозагрузки
- DisableAutoload — сбросить флаг автозагрузки
- ReadCommonConfig — считать регистр CommonConfig
- ReadVersion — считать версию ПО шлюза
Функции для работы с I/O
- IO0ConfigOutput — переключить I/O_0 на выход
- IO0ConfigInput — переключить I/O_0 на вход
- IO0Output0 — установить I/O_0=0 (защёлка)
- IO0Output1 — установить I/O_0=1 (защёлка)
- IO1ConfigOutput — переключить I/O_1 на выход
- IO1ConfigInput — переключить I/O_1 на вход
- IO1Output0 — установить I/O_1=0 (защёлка)
- IO1Output1 — установить I/O_1=1 (защёлка)
- IO2ConfigOutput — переключить I/O_2 на выход
- IO2ConfigInput — переключить I/O_2 на вход
- IO2Output0 — установить I/O_2=0 (защёлка)
- IO2Output1 — установить I/O_2=1 (защёлка)
- TestIO_0 — считать состояние I/O_0
- TestIO_1 — считать состояние I/O_1
- TestIO_2 — считать состояние I/O_2
- SetIOG — установка I/O_0,1 с задержкой
Функции для работы с I2C
- SendStart_I2C — послать START-условие
- SendSTOP_I2C — послать STOP-условие
- SendByte_I2C — послать байт по I2C
- ReadByteA_I2C — читает байт и выдаёт ACK
- ReadByte_I2C — читает байт и не выдаёт ACK
- ClearCS_I2C — сбрасывает CS в ноль
- SetCS_I2C — устанавливает CS в единицу
- ReadCS_I2C — читает состояние линии CS
Функции для работы с SPI
- LoadConfig_SPI — загрузить конфигурацию SPI
- ReadConfig_SPI — читает конфигурацию SPI
- LoadPaketSize_SPI — загрузить размер пакета SPI
- ReadPaketSize_SPI — читает размер пакета SPI
- LoadPaket_SPI — загрузить пакет SPI в сдвиговый регистр шлюза
- ReadPaket_SPI — прочитать пакет SPI из сдвигового регистра шлюза
- StartChange_SPI — выполняет обмен данными сдвиговых регистров по шине SPI
- ClearSS_SPI — сбрасывает SS в ноль
- SetSS_SPI — устанавливает SS в единицу
- ReadSS_SPI — читает состояние линии SS
Функции для работы с 1W
SendReset_1W — посылает в шину Reset
SendByte_1W — послать байт по 1W
ReadByte_1W — читает байт с шины 1W
SendBit_1W — послать бит по 1W (младший бит от Byte)
ReadBit_1W — читает бит с шины 1W
HANDLE ConnectPort(char *PortName) — подключение к COM-порту
Функция принимает в качестве входного параметра указатель на символьный массив, содержащий имя порта, который нужно открыть, и возвращает хэндл открытого порта в случае успешного выполнения или INVALID_HANDLE_VALUE, если указанный порт открыть не удалось.
HANDLE DisconnectPort(HANDLE Port) — отключение от COM-порта
Функция принимает в качестве входного параметра хэндл порта, который нужно закрыть и в результате возвращает INVALID_HANDLE_VALUE.
unsigned char ResetDevice (HANDLE Port, bool Control) — сброс шлюза
Функция принимает в качестве входных параметров хэндл открытого порта (через который подключен шлюз) и флаг контроля выполнения (Control). В случае успешного выполнения возвращает ноль, в случае ошибки записи в порт возвращает 0xFF (WriteError), в случае, если флаг Control установлен в true и от шлюза не получено подтверждение выполнения команды — возвращает 0xFE (ReadError).
Если шлюз настроен на отправку отчётов о выполнении команд (в шлюзе установлен флаг Reports_EN), флаг Control при вызове функции должен быть установлен в true, в противном случае, он должен быть сброшен в false.
unsigned char InterfaceChoiceI2C (HANDLE Port, bool Control) — выбор интерфейса I2C
Функция конфигурирует шлюз для работы через интерфейс I2C. Она принимает в качестве входных параметров хэндл открытого порта (через который подключен шлюз) и флаг контроля выполнения (Control). В случае успешного выполнения возвращает ноль, в случае ошибки записи в порт возвращает 0xFF (WriteError), в случае, если флаг Control установлен в true и от шлюза не получено подтверждение выполнения команды — возвращает 0xFE (ReadError).
Если шлюз настроен на отправку отчётов о выполнении команд (в шлюзе установлен флаг Reports_EN), флаг Control при вызове функции должен быть установлен в true, в противном случае, он должен быть сброшен в false.
unsigned char InterfaceChoiceSPI (HANDLE Port, bool Control) — выбор интерфейса SPI
Функция конфигурирует шлюз для работы через интерфейс SPI. Она принимает в качестве входных параметров хэндл открытого порта (через который подключен шлюз) и флаг контроля выполнения (Control). В случае успешного выполнения возвращает ноль, в случае ошибки записи в порт возвращает 0xFF (WriteError), в случае, если флаг Control установлен в true и от шлюза не получено подтверждение выполнения команды — возвращает 0xFE (ReadError).
Если шлюз настроен на отправку отчётов о выполнении команд (в шлюзе установлен флаг Reports_EN), флаг Control при вызове функции должен быть установлен в true, в противном случае, он должен быть сброшен в false.
unsigned char InterfaceChoice1W (HANDLE Port, bool Control) — выбор интерфейса 1W
Функция конфигурирует шлюз для работы через интерфейс 1W. Она принимает в качестве входных параметров хэндл открытого порта (через который подключен шлюз) и флаг контроля выполнения (Control). В случае успешного выполнения возвращает ноль, в случае ошибки записи в порт возвращает 0xFF (WriteError), в случае, если флаг Control установлен в true и от шлюза не получено подтверждение выполнения команды — возвращает 0xFE (ReadError).
Если шлюз настроен на отправку отчётов о выполнении команд (в шлюзе установлен флаг Reports_EN), флаг Control при вызове функции должен быть установлен в true, в противном случае, он должен быть сброшен в false.
unsigned char ReadError (HANDLE Port) — чтение регистра ошибок
Функция принимает в качестве входных параметров хэндл открытого порта (через который подключен шлюз). В случае успешного выполнения возвращает содержимое регистра ошибок шлюза, в случае ошибки записи в порт возвращает 0xFF (WriteError), в случае ошибки чтения данных из порта возвращает 0xFE (ReadError).
unsigned char SaveToEPROM (HANDLE Port, bool Control) — сохранение данных в EPROM
Функция посылает в шлюз команду сохранения данных в EPROM. Она принимает в качестве входных параметров хэндл открытого порта (через который подключен шлюз) и флаг контроля выполнения (Control). В случае успешного выполнения возвращает ноль, в случае ошибки записи в порт возвращает 0xFF (WriteError), в случае, если флаг Control установлен в true и от шлюза не получено подтверждение выполнения команды — возвращает 0xFE (ReadError).
Если шлюз настроен на отправку отчётов о выполнении команд (в шлюзе установлен флаг Reports_EN), флаг Control при вызове функции должен быть установлен в true, в противном случае, он должен быть сброшен в false.
Result ReadFromEPROM (HANDLE Port) — чтение данных из EPROM
Функция принимает в качестве входных параметров хэндл открытого порта (через который подключен шлюз). В случае успешного выполнения возвращает содержимое EPROM
шлюза (хранящиеся в нём значения регистров). В случае ошибки функция возвращает Result.Size=0, при этом Result.Buffer[0] = 0xFF означает ошибку записи (WriteError), а Result.Buffer[0] = 0xFE означает ошибку чтения (ReadError).
unsigned char EnableReports (HANDLE Port) — включить отчёты
Функция посылает в шлюз команду установки флага Reports_EN. Она принимает в качестве входных параметров хэндл открытого порта (через который подключен шлюз). В случае успешного выполнения возвращает ноль, в случае ошибки записи в порт возвращает 0xFF (WriteError), в случае ошибки чтения данных из порта возвращает 0xFE (ReadError).
unsigned char DisableReports (HANDLE Port) — выключить отчёты
Функция посылает в шлюз команду сброса флага Reports_EN. Она принимает в качестве входных параметров хэндл открытого порта (через который подключен шлюз). В случае успешного выполнения возвращает ноль, в случае ошибки записи в порт возвращает 0xFF (WriteError), в случае ошибки чтения данных из порта возвращает 0xFE (ReadError).
unsigned char EnableAutoload (HANDLE Port, bool Control) — установить флаг автозагрузки
Функция посылает в шлюз команду установки флага Autoload_EN. Она принимает в качестве входных параметров хэндл открытого порта (через который подключен шлюз) и флаг контроля выполнения (Control). В случае успешного выполнения возвращает ноль, в случае ошибки записи в порт возвращает 0xFF (WriteError), в случае, если флаг Control установлен в true и от шлюза не получено подтверждение выполнения команды — возвращает 0xFE (ReadError).
Если шлюз настроен на отправку отчётов о выполнении команд (в шлюзе установлен флаг Reports_EN), флаг Control при вызове функции должен быть установлен в true, в противном случае, он должен быть сброшен в false.
unsigned char DisableAutoload (HANDLE Port, bool Control) — сбросить флаг автозагрузки
Функция посылает в шлюз команду сброса флага Autoload_EN. Она принимает в качестве входных параметров хэндл открытого порта (через который подключен шлюз) и флаг контроля выполнения (Control). В случае успешного выполнения возвращает ноль, в случае ошибки записи в порт возвращает 0xFF (WriteError), в случае, если флаг Control установлен в true и от шлюза не получено подтверждение выполнения команды — возвращает 0xFE (ReadError).
Если шлюз настроен на отправку отчётов о выполнении команд (в шлюзе установлен флаг Reports_EN), флаг Control при вызове функции должен быть установлен в true, в противном случае, он должен быть сброшен в false.
unsigned char ReadCommonConfig (HANDLE Port) — считать регистр CommonConfig
Функция принимает в качестве входных параметров хэндл открытого порта (через который подключен шлюз). В случае успешного выполнения возвращает значение регистра CommonConfig, в случае ошибки записи в порт возвращает 0xFF (WriteError), в случае ошибки чтения данных из порта возвращает 0xFE (ReadError).
unsigned char ReadVersion (HANDLE Port) — считать версию ПО шлюза
Функция принимает в качестве входных параметров хэндл открытого порта (через который подключен шлюз). В случае успешного выполнения возвращает версию ПО шлюза, в случае ошибки записи в порт возвращает 0xFF (WriteError), в случае ошибки чтения данных из порта возвращает 0xFE (ReadError).
unsigned char IO0ConfigOutput (HANDLE Port, bool Control) — переключить I/O_0 на выход
Функция принимает в качестве входных параметров хэндл открытого порта (через который подключен шлюз) и флаг контроля выполнения (Control). В случае успешного выполнения возвращает ноль, в случае ошибки записи в порт возвращает 0xFF (WriteError), в случае, если флаг Control установлен в true и от шлюза не получено подтверждение выполнения команды — возвращает 0xFE (ReadError).
Если шлюз настроен на отправку отчётов о выполнении команд (в шлюзе установлен флаг Reports_EN), флаг Control при вызове функции должен быть установлен в true, в противном случае, он должен быть сброшен в false.
unsigned char IO0ConfigInput (HANDLE Port, bool Control) — переключить I/O_0 на вход
Функция принимает в качестве входных параметров хэндл открытого порта (через который подключен шлюз) и флаг контроля выполнения (Control). В случае успешного выполнения возвращает ноль, в случае ошибки записи в порт возвращает 0xFF (WriteError), в случае, если флаг Control установлен в true и от шлюза не получено подтверждение выполнения команды — возвращает 0xFE (ReadError).
Если шлюз настроен на отправку отчётов о выполнении команд (в шлюзе установлен флаг Reports_EN), флаг Control при вызове функции должен быть установлен в true, в противном случае, он должен быть сброшен в false.
unsigned char IO0Output0 (HANDLE Port, bool Control) — установить I/O_0=0 (защёлка)
Функция принимает в качестве входных параметров хэндл открытого порта (через который подключен шлюз) и флаг контроля выполнения (Control). В случае успешного выполнения возвращает ноль, в случае ошибки записи в порт возвращает 0xFF (WriteError), в случае, если флаг Control установлен в true и от шлюза не получено подтверждение выполнения команды — возвращает 0xFE (ReadError).
Если шлюз настроен на отправку отчётов о выполнении команд (в шлюзе установлен флаг Reports_EN), флаг Control при вызове функции должен быть установлен в true, в противном случае, он должен быть сброшен в false.
unsigned char IO0Output1 (HANDLE Port, bool Control) — установить I/O_0=1 (защёлка)
Функция принимает в качестве входных параметров хэндл открытого порта (через который подключен шлюз) и флаг контроля выполнения (Control). В случае успешного выполнения возвращает ноль, в случае ошибки записи в порт возвращает 0xFF (WriteError), в случае, если флаг Control установлен в true и от шлюза не получено подтверждение выполнения команды — возвращает 0xFE (ReadError).
Если шлюз настроен на отправку отчётов о выполнении команд (в шлюзе установлен флаг Reports_EN), флаг Control при вызове функции должен быть установлен в true, в противном случае, он должен быть сброшен в false.
unsigned char IO1ConfigOutput (HANDLE Port, bool Control) — переключить I/O_1 на выход
Функция принимает в качестве входных параметров хэндл открытого порта (через который подключен шлюз) и флаг контроля выполнения (Control). В случае успешного выполнения возвращает ноль, в случае ошибки записи в порт возвращает 0xFF (WriteError), в случае, если флаг Control установлен в true и от шлюза не получено подтверждение выполнения команды — возвращает 0xFE (ReadError).
Если шлюз настроен на отправку отчётов о выполнении команд (в шлюзе установлен флаг Reports_EN), флаг Control при вызове функции должен быть установлен в true, в противном случае, он должен быть сброшен в false.
unsigned char IO1ConfigInput (HANDLE Port, bool Control) — переключить I/O_1 на вход
Функция принимает в качестве входных параметров хэндл открытого порта (через который подключен шлюз) и флаг контроля выполнения (Control). В случае успешного выполнения возвращает ноль, в случае ошибки записи в порт возвращает 0xFF (WriteError), в случае, если флаг Control установлен в true и от шлюза не получено подтверждение выполнения команды — возвращает 0xFE (ReadError).
Если шлюз настроен на отправку отчётов о выполнении команд (в шлюзе установлен флаг Reports_EN), флаг Control при вызове функции должен быть установлен в true, в противном случае, он должен быть сброшен в false.
unsigned char IO1Output0 (HANDLE Port, bool Control) — установить I/O_1=0 (защёлка)
Функция принимает в качестве входных параметров хэндл открытого порта (через который подключен шлюз) и флаг контроля выполнения (Control). В случае успешного выполнения возвращает ноль, в случае ошибки записи в порт возвращает 0xFF (WriteError), в случае, если флаг Control установлен в true и от шлюза не получено подтверждение выполнения команды — возвращает 0xFE (ReadError).
Если шлюз настроен на отправку отчётов о выполнении команд (в шлюзе установлен флаг Reports_EN), флаг Control при вызове функции должен быть установлен в true, в противном случае, он должен быть сброшен в false.
unsigned char IO1Output1 (HANDLE Port, bool Control) — установить I/O_1=1 (защёлка)
Функция принимает в качестве входных параметров хэндл открытого порта (через который подключен шлюз) и флаг контроля выполнения (Control). В случае успешного выполнения возвращает ноль, в случае ошибки записи в порт возвращает 0xFF (WriteError), в случае, если флаг Control установлен в true и от шлюза не получено подтверждение выполнения команды — возвращает 0xFE (ReadError).
Если шлюз настроен на отправку отчётов о выполнении команд (в шлюзе установлен флаг Reports_EN), флаг Control при вызове функции должен быть установлен в true, в противном случае, он должен быть сброшен в false.
unsigned char IO2ConfigOutput (HANDLE Port, bool Control) — переключить I/O_2 на выход
Функция принимает в качестве входных параметров хэндл открытого порта (через который подключен шлюз) и флаг контроля выполнения (Control). В случае успешного выполнения возвращает ноль, в случае ошибки записи в порт возвращает 0xFF (WriteError), в случае, если флаг Control установлен в true и от шлюза не получено подтверждение выполнения команды — возвращает 0xFE (ReadError).
Если шлюз настроен на отправку отчётов о выполнении команд (в шлюзе установлен флаг Reports_EN), флаг Control при вызове функции должен быть установлен в true, в противном случае, он должен быть сброшен в false.
unsigned char IO2ConfigInput (HANDLE Port, bool Control) — переключить I/O_2 на вход
Функция принимает в качестве входных параметров хэндл открытого порта (через который подключен шлюз) и флаг контроля выполнения (Control). В случае успешного выполнения возвращает ноль, в случае ошибки записи в порт возвращает 0xFF (WriteError), в случае, если флаг Control установлен в true и от шлюза не получено подтверждение выполнения команды — возвращает 0xFE (ReadError).
Если шлюз настроен на отправку отчётов о выполнении команд (в шлюзе установлен флаг Reports_EN), флаг Control при вызове функции должен быть установлен в true, в противном случае, он должен быть сброшен в false.
unsigned char IO2Output0 (HANDLE Port, bool Control) — установить I/O_2=0 (защёлка)
Функция принимает в качестве входных параметров хэндл открытого порта (через который подключен шлюз) и флаг контроля выполнения (Control). В случае успешного выполнения возвращает ноль, в случае ошибки записи в порт возвращает 0xFF (WriteError), в случае, если флаг Control установлен в true и от шлюза не получено подтверждение выполнения команды — возвращает 0xFE (ReadError).
Если шлюз настроен на отправку отчётов о выполнении команд (в шлюзе установлен флаг Reports_EN), флаг Control при вызове функции должен быть установлен в true, в противном случае, он должен быть сброшен в false.
unsigned char IO2Output1 (HANDLE Port, bool Control) — установить I/O_2=1 (защёлка)
Функция принимает в качестве входных параметров хэндл открытого порта (через который подключен шлюз) и флаг контроля выполнения (Control). В случае успешного выполнения возвращает ноль, в случае ошибки записи в порт возвращает 0xFF (WriteError), в случае, если флаг Control установлен в true и от шлюза не получено подтверждение выполнения команды — возвращает 0xFE (ReadError).
Если шлюз настроен на отправку отчётов о выполнении команд (в шлюзе установлен флаг Reports_EN), флаг Control при вызове функции должен быть установлен в true, в противном случае, он должен быть сброшен в false.
unsigned char TestIO_0 (HANDLE Port) — считать состояние I/O_0
Функция принимает в качестве входных параметров хэндл открытого порта (через который подключен шлюз). В случае успешного выполнения возвращает состояние вывода I/O_0 (ноль/единица), в случае ошибки записи в порт возвращает 0xFF (WriteError), в случае отсутствия ответа от шлюза возвращает 0xFE (ReadError).
unsigned char TestIO_1 (HANDLE Port) — считать состояние I/O_1
Функция принимает в качестве входных параметров хэндл открытого порта (через который подключен шлюз). В случае успешного выполнения возвращает состояние вывода I/O_0 (ноль/единица), в случае ошибки записи в порт возвращает 0xFF (WriteError), в случае отсутствия ответа от шлюза возвращает 0xFE (ReadError).
unsigned char TestIO_2 (HANDLE Port) — считать состояние I/O_2
Функция принимает в качестве входных параметров хэндл открытого порта (через который подключен шлюз). В случае успешного выполнения возвращает состояние вывода I/O_0 (ноль/единица), в случае ошибки записи в порт возвращает 0xFF (WriteError), в случае отсутствия ответа от шлюза возвращает 0xFE (ReadError).
unsigned char SetIOG (HANDLE Port, bool Control) — установка I/O_0,1 с задержкой
Функция принимает в качестве входных параметров хэндл открытого порта (через который подключен шлюз) и флаг контроля выполнения (Control). В случае успешного выполнения возвращает ноль, в случае ошибки записи в порт возвращает 0xFF (WriteError), в случае, если флаг Control установлен в true и от шлюза не получено подтверждение выполнения команды — возвращает 0xFE (ReadError).
Если шлюз настроен на отправку отчётов о выполнении команд (в шлюзе установлен флаг Reports_EN), флаг Control при вызове функции должен быть установлен в true, в противном случае, он должен быть сброшен в false.
unsigned char SendStart_I2C (HANDLE Port, bool Control) — послать START-условие
Функция принимает в качестве входных параметров хэндл открытого порта (через который подключен шлюз) и флаг контроля выполнения (Control). В случае успешного выполнения возвращает ноль, в случае ошибки записи в порт возвращает 0xFF (WriteError), в случае, если флаг Control установлен в true и от шлюза не получено подтверждение выполнения команды — возвращает 0xFE (ReadError).
Если шлюз настроен на отправку отчётов о выполнении команд (в шлюзе установлен флаг Reports_EN), флаг Control при вызове функции должен быть установлен в true, в противном случае, он должен быть сброшен в false.
unsigned char SendSTOP_I2C (HANDLE Port, bool Control) — послать STOP-условие
Функция принимает в качестве входных параметров хэндл открытого порта (через который подключен шлюз) и флаг контроля выполнения (Control). В случае успешного выполнения возвращает ноль, в случае ошибки записи в порт возвращает 0xFF (WriteError), в случае, если флаг Control установлен в true и от шлюза не получено подтверждение выполнения команды — возвращает 0xFE (ReadError).
Если шлюз настроен на отправку отчётов о выполнении команд (в шлюзе установлен флаг Reports_EN), флаг Control при вызове функции должен быть установлен в true, в противном случае, он должен быть сброшен в false.
unsigned int SendByte_I2C (HANDLE Port, bool Control, unsigned char Byte) — послать байт по I2C
Функция принимает в качестве входных параметров хэндл открытого порта (через который подключен шлюз), флаг контроля выполнения (Control) и байт, который нужно передать по I2C. В случае успешного выполнения возвращает ноль, в случае ошибок возвращает 0xFF (WriteError) или 0xFE (ReadError) в одном из двух младших байтов ответа.
Если шлюз настроен на отправку отчётов о выполнении команд (в шлюзе установлен флаг Reports_EN), флаг Control при вызове функции должен быть установлен в true, в противном случае, он должен быть сброшен в false.
Result ReadByteA_I2C (HANDLE Port) — прочитать байт с шины I2C и выдать ACK
Функция принимает в качестве входных параметров хэндл открытого порта (через который подключен шлюз). В случае успешного выполнения возвращает считанный с шины байт. В случае ошибки функция возвращает Result.Size=0, при этом Result.Buffer[0] = 0xFF означает ошибку записи (WriteError).
Result ReadByte_I2C (HANDLE Port) — прочитать байт с шины I2C без выдачи ACK
Функция принимает в качестве входных параметров хэндл открытого порта (через который подключен шлюз). В случае успешного выполнения возвращает считанный с шины байт. В случае ошибки функция возвращает Result.Size=0, при этом Result.Buffer[0] = 0xFF означает ошибку записи (WriteError).
unsigned char ClearCS_I2C (HANDLE Port, bool Control) — сбросить линию CS в ноль
Функция принимает в качестве входных параметров хэндл открытого порта (через который подключен шлюз) и флаг контроля выполнения (Control). В случае успешного выполнения возвращает ноль, в случае ошибки записи в порт возвращает 0xFF (WriteError), в случае, если флаг Control установлен в true и от шлюза не получено подтверждение выполнения команды — возвращает 0xFE (ReadError).
Если шлюз настроен на отправку отчётов о выполнении команд (в шлюзе установлен флаг Reports_EN), флаг Control при вызове функции должен быть установлен в true, в противном случае, он должен быть сброшен в false.
unsigned char SetCS_I2C (HANDLE Port, bool Control) — установить линию CS в единицу
Функция принимает в качестве входных параметров хэндл открытого порта (через который подключен шлюз) и флаг контроля выполнения (Control). В случае успешного выполнения возвращает ноль, в случае ошибки записи в порт возвращает 0xFF (WriteError), в случае, если флаг Control установлен в true и от шлюза не получено подтверждение выполнения команды — возвращает 0xFE (ReadError).
Если шлюз настроен на отправку отчётов о выполнении команд (в шлюзе установлен флаг Reports_EN), флаг Control при вызове функции должен быть установлен в true, в противном случае, он должен быть сброшен в false.
unsigned char ReadCS_I2C (HANDLE Port) — прочитать состояние линии CS
Функция принимает в качестве входных параметров хэндл открытого порта (через который подключен шлюз). В случае успешного выполнения возвращает состояние линии CS (ноль/единица), в случае ошибки записи в порт возвращает 0xFF (WriteError), в случае отсутствия ответа от шлюза возвращает 0xFE (ReadError).
unsigned int LoadConfig_SPI (HANDLE Port, bool Control, unsigned char Byte) — загрузить конфигурацию SPI
Функция принимает в качестве входных параметров хэндл открытого порта (через который подключен шлюз), флаг контроля выполнения (Control) и байт конфигурации SPI. В случае успешного выполнения возвращает ноль, в случае ошибок возвращает 0xFF (WriteError) или 0xFE (ReadError) в одном из двух младших байтов ответа.
Если шлюз настроен на отправку отчётов о выполнении команд (в шлюзе установлен флаг Reports_EN), флаг Control при вызове функции должен быть установлен в true, в противном случае, он должен быть сброшен в false.
unsigned char ReadConfig_SPI (HANDLE Port) — cчитать конфигурацию SPI
Функция принимает в качестве входных параметров хэндл открытого порта (через который подключен шлюз). В случае успешного выполнения возвращает байт конфигурации SPI, в случае ошибки записи в порт возвращает 0xFF (WriteError), в случае отсутствия ответа от шлюза возвращает 0xFE (ReadError).
unsigned int LoadPaketSize_SPI (HANDLE Port, bool Control, unsigned char Byte) — загрузить размер пакета SPI
Функция принимает в качестве входных параметров хэндл открытого порта (через который подключен шлюз), флаг контроля выполнения (Control) и байт, содержащий размер пакета SPI. В случае успешного выполнения возвращает ноль, в случае ошибок возвращает 0xFF (WriteError) или 0xFE (ReadError) в одном из двух младших байтов ответа.
Если шлюз настроен на отправку отчётов о выполнении команд (в шлюзе установлен флаг Reports_EN), флаг Control при вызове функции должен быть установлен в true, в противном случае, он должен быть сброшен в false.
Result ReadPaketSize_SPI (HANDLE Port) — прочитать размер пакета SPI
Функция принимает в качестве входных параметров хэндл открытого порта (через который подключен шлюз). В случае успешного выполнения возвращает считанный из шлюза размер пакета SPI. В случае ошибки функция возвращает Result.Size=0, при этом Result.Buffer[0] = 0xFF означает ошибку записи (WriteError).
unsigned int LoadPaket_SPI (HANDLE Port, bool Control, Result Input) — загрузить пакет SPI в сдвиговый регистр шлюза
Функция принимает в качестве входных параметров хэндл открытого порта (через который подключен шлюз), флаг контроля выполнения (Control) и структуру, содержащую количество передаваемых шлюзу байт и сами эти байты. В случае успешного выполнения возвращает ноль, в случае ошибок возвращает 0xFF (WriteError) или 0xFE (ReadError) в одном из двух младших байтов ответа.
Если шлюз настроен на отправку отчётов о выполнении команд (в шлюзе установлен флаг Reports_EN), флаг Control при вызове функции должен быть установлен в true, в противном случае, он должен быть сброшен в false.
Result ReadPaket_SPI (HANDLE Port) — прочитать пакет SPI из сдвигового регистра шлюза
Функция принимает в качестве входных параметров хэндл открытого порта (через который подключен шлюз). В случае успешного выполнения возвращает 8 байт, считанные из сдвигового регистра шлюза. В случае ошибки функция возвращает Result.Size=0, при этом Result.Buffer[0] = 0xFF означает ошибку записи (WriteError).
unsigned char StartChange_SPI (HANDLE Port, bool Control) — выполнить обмен данными сдвиговых регистров по шине SPI
Функция принимает в качестве входных параметров хэндл открытого порта (через который подключен шлюз) и флаг контроля выполнения (Control). В случае успешного выполнения возвращает ноль, в случае ошибки записи в порт возвращает 0xFF (WriteError), в случае, если флаг Control установлен в true и от шлюза не получено подтверждение выполнения команды — возвращает 0xFE (ReadError).
Если шлюз настроен на отправку отчётов о выполнении команд (в шлюзе установлен флаг Reports_EN), флаг Control при вызове функции должен быть установлен в true, в противном случае, он должен быть сброшен в false.
unsigned char ClearSS_SPI (HANDLE Port, bool Control) — сбросить SS в ноль
Функция принимает в качестве входных параметров хэндл открытого порта (через который подключен шлюз) и флаг контроля выполнения (Control). В случае успешного выполнения возвращает ноль, в случае ошибки записи в порт возвращает 0xFF (WriteError), в случае, если флаг Control установлен в true и от шлюза не получено подтверждение выполнения команды — возвращает 0xFE (ReadError).
Если шлюз настроен на отправку отчётов о выполнении команд (в шлюзе установлен флаг Reports_EN), флаг Control при вызове функции должен быть установлен в true, в противном случае, он должен быть сброшен в false.
unsigned char SetSS_SPI (HANDLE Port, bool Control) — установить SS в единицу
Функция принимает в качестве входных параметров хэндл открытого порта (через который подключен шлюз) и флаг контроля выполнения (Control). В случае успешного выполнения возвращает ноль, в случае ошибки записи в порт возвращает 0xFF (WriteError), в случае, если флаг Control установлен в true и от шлюза не получено подтверждение выполнения команды — возвращает 0xFE (ReadError).
Если шлюз настроен на отправку отчётов о выполнении команд (в шлюзе установлен флаг Reports_EN), флаг Control при вызове функции должен быть установлен в true, в противном случае, он должен быть сброшен в false.
unsigned char ReadSS_SPI (HANDLE Port) — прочитать состояние линии SS
Функция принимает в качестве входных параметров хэндл открытого порта (через который подключен шлюз). В случае успешного выполнения возвращает состояние линии SS (ноль/единица), в случае ошибки записи в порт возвращает 0xFF (WriteError), в случае отсутствия ответа от шлюза возвращает 0xFE (ReadError).
unsigned char SendReset_1W (HANDLE Port, bool Control) — посылает в шину Reset
Функция принимает в качестве входных параметров хэндл открытого порта (через который подключен шлюз) и флаг контроля выполнения (Control). В случае успешного выполнения возвращает ноль, в случае ошибки записи в порт возвращает 0xFF (WriteError), в случае, если флаг Control установлен в true и от шлюза не получено подтверждение выполнения команды — возвращает 0xFE (ReadError).
Если шлюз настроен на отправку отчётов о выполнении команд (в шлюзе установлен флаг Reports_EN), флаг Control при вызове функции должен быть установлен в true, в противном случае, он должен быть сброшен в false.
unsigned int SendByte_1W (HANDLE Port, bool Control, unsigned char Byte) — послать байт по 1W
Функция принимает в качестве входных параметров хэндл открытого порта (через который подключен шлюз), флаг контроля выполнения (Control) и байт для передачи. В случае успешного выполнения возвращает ноль, в случае ошибок возвращает 0xFF (WriteError) или 0xFE (ReadError) в одном из двух младших байтов ответа.
Если шлюз настроен на отправку отчётов о выполнении команд (в шлюзе установлен флаг Reports_EN), флаг Control при вызове функции должен быть установлен в true, в противном случае, он должен быть сброшен в false.
Result ReadByte_1W (HANDLE Port) — читает байт с шины 1W
Функция принимает в качестве входных параметров хэндл открытого порта (через который подключен шлюз). В случае успешного выполнения возвращает считанный с шины 1W байт. В случае ошибки функция возвращает Result.Size=0, при этом Result.Buffer[0] = 0xFF означает ошибку записи (WriteError).
unsigned int SendBit_1W (HANDLE Port, bool Control, unsigned char Byte) — послать бит по 1W (младший бит от Byte)
Функция принимает в качестве входных параметров хэндл открытого порта (через который подключен шлюз), флаг контроля выполнения (Control) и байт, содержащий бит для передачи. В случае успешного выполнения возвращает ноль, в случае ошибок возвращает 0xFF (WriteError) или 0xFE (ReadError) в одном из двух младших байтов ответа.
Если шлюз настроен на отправку отчётов о выполнении команд (в шлюзе установлен флаг Reports_EN), флаг Control при вызове функции должен быть установлен в true, в противном случае, он должен быть сброшен в false.
unsigned char ReadBit_1W (HANDLE Port) — читает бит с шины 1W
Функция принимает в качестве входных параметров хэндл открытого порта (через который подключен шлюз). В случае успешного выполнения возвращает байт, младший бит которого содержит считанный с шины 1W бит. В случае ошибки функция возвращает Result.Size=0, при этом Result.Buffer[0] = 0xFF означает ошибку записи (WriteError).
Формат структуры Result:
Result {unsigned int Size; unsigned char Buffer[BUFSIZE];}; |
Size — количество байт полезных данных в буфере, Buffer — буфер с данными.