Dll для шлюза UART-to-I2C/SPI/1W (RH0004)

Чтобы облегчить себе и другим разработку программ для шлюза UART-to-I2C/SPI/1W я решил собрать реализацию всех поддерживаемых шлюзом команд в отдельную Dll. Это избавит программистов от необходимости писать код для работы с железкой и позволит им сосредоточиться на прикладной части своих приложений.

Dll-ка выложена с исходниками и может распространяться совершенно свободно, — делайте с ней что хотите, только было бы неплохо в случае каких-либо модификаций отписываться на форум на предмет того, что, зачем и для чего модифицировано.

Готовая dll (с хидером) Исходники
rh0004.dll + rh0004.h rh0004.dll sources

Коротко о том, как подключать dll-ки и пользоваться функциями из них в своих программах на C++ Builder, можно почитать вот здесь.

Ниже приводится список экспортируемых функций. Для того, чтобы увидеть описание какой-либо функции — щёлкните по ней левой кнопкой мыши.

Функции для работы с портом

  1. ConnectPort — подключение к порту
  2. DisconnectPort — отключение от порта

Общие функции для работы со шлюзом

  1. ResetDevice — сброс шлюза
  2. InterfaceChoiceI2C — выбор I2C
  3. InterfaceChoiceSPI — выбор SPI
  4. InterfaceChoice1W — выбор 1W
  5. ReadError — чтение регистра ошибок
  6. SaveToEPROM — сохранение настроек в EPROM
  7. ReadFromEPROM — чтение настроек из EPROM
  8. EnableReports — включить отчёты
  9. DisableReports — выключить отчёты
  10. EnableAutoload — установить флаг автозагрузки
  11. DisableAutoload — сбросить флаг автозагрузки
  12. ReadCommonConfig — считать регистр CommonConfig
  13. ReadVersion — считать версию ПО шлюза

Функции для работы с I/O

  1. IO0ConfigOutput — переключить I/O_0 на выход
  2. IO0ConfigInput — переключить I/O_0 на вход
  3. IO0Output0 — установить I/O_0=0 (защёлка)
  4. IO0Output1 — установить I/O_0=1 (защёлка)
  5. IO1ConfigOutput — переключить I/O_1 на выход
  6. IO1ConfigInput — переключить I/O_1 на вход
  7. IO1Output0 — установить I/O_1=0 (защёлка)
  8. IO1Output1 — установить I/O_1=1 (защёлка)
  9. IO2ConfigOutput — переключить I/O_2 на выход
  10. IO2ConfigInput — переключить I/O_2 на вход
  11. IO2Output0 — установить I/O_2=0 (защёлка)
  12. IO2Output1 — установить I/O_2=1 (защёлка)
  13. TestIO_0 — считать состояние I/O_0
  14. TestIO_1 — считать состояние I/O_1
  15. TestIO_2 — считать состояние I/O_2
  16. SetIOG — установка I/O_0,1 с задержкой

Функции для работы с I2C

  1. SendStart_I2C — послать START-условие
  2. SendSTOP_I2C — послать STOP-условие
  3. SendByte_I2C — послать байт по I2C
  4. ReadByteA_I2C — читает байт и выдаёт ACK
  5. ReadByte_I2C — читает байт и не выдаёт ACK
  6. ClearCS_I2C — сбрасывает CS в ноль
  7. SetCS_I2C — устанавливает CS в единицу
  8. ReadCS_I2C — читает состояние линии CS

Функции для работы с SPI

  1. LoadConfig_SPI — загрузить конфигурацию SPI
  2. ReadConfig_SPI — читает конфигурацию SPI
  3. LoadPaketSize_SPI — загрузить размер пакета SPI
  4. ReadPaketSize_SPI — читает размер пакета SPI
  5. LoadPaket_SPI — загрузить пакет SPI в сдвиговый регистр шлюза
  6. ReadPaket_SPI — прочитать пакет SPI из сдвигового регистра шлюза
  7. StartChange_SPI — выполняет обмен данными сдвиговых регистров по шине SPI
  8. ClearSS_SPI — сбрасывает SS в ноль
  9. SetSS_SPI — устанавливает SS в единицу
  10. 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).

Формат структуры Result


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


Result ReadByte_I2C (HANDLE Port) — прочитать байт с шины I2C без выдачи ACK

Функция принимает в качестве входных параметров хэндл открытого порта (через который подключен шлюз). В случае успешного выполнения возвращает считанный с шины байт. В случае ошибки функция возвращает Result.Size=0, при этом Result.Buffer[0] = 0xFF означает ошибку записи (WriteError).

Формат структуры Result


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).

Формат структуры Result


unsigned int LoadPaket_SPI (HANDLE Port, bool Control, Result Input) — загрузить пакет SPI в сдвиговый регистр шлюза

Функция принимает в качестве входных параметров хэндл открытого порта (через который подключен шлюз), флаг контроля выполнения (Control) и структуру, содержащую количество передаваемых шлюзу байт и сами эти байты. В случае успешного выполнения возвращает ноль, в случае ошибок возвращает 0xFF (WriteError) или 0xFE (ReadError) в одном из двух младших байтов ответа.

Если шлюз настроен на отправку отчётов о выполнении команд (в шлюзе установлен флаг Reports_EN), флаг Control при вызове функции должен быть установлен в true, в противном случае, он должен быть сброшен в false.

Формат структуры Result


Result ReadPaket_SPI (HANDLE Port) — прочитать пакет SPI из сдвигового регистра шлюза

Функция принимает в качестве входных параметров хэндл открытого порта (через который подключен шлюз). В случае успешного выполнения возвращает 8 байт, считанные из сдвигового регистра шлюза. В случае ошибки функция возвращает Result.Size=0, при этом Result.Buffer[0] = 0xFF означает ошибку записи (WriteError).

Формат структуры Result


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).

Формат структуры Result


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:

Result {unsigned int Size; unsigned char Buffer[BUFSIZE];};

Size — количество байт полезных данных в буфере, Buffer — буфер с данными.

Добавить комментарий