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, можно почитать вот здесь.

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

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

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

Формат структуры 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 - буфер с данными.

radiohlam.ruпрограммированиепрограммирование под ПК

Понравилась статья? Поделись с друзьями!

Обсудить эту статью на форуме

 
Rambler's Top100 © 2009 - Материалы сайта охраняются законом об авторском праве