Чет работает

This commit is contained in:
2025-12-16 17:57:59 +03:00
commit 260a6416ad
2906 changed files with 982301 additions and 0 deletions

31
.mxproject Normal file

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,76 @@
/**
******************************************************************************
* @file memspi.h
* @brief Работа с внешней памятью
******************************************************************************
@defgroup MEMSPI API for Memory SPI
@brief API для работы с внешней памятью
******************************************************************************
* @details
Модуль предоставляет API для удобной работы с FLASH/EEPROM по SPI:
- @ref MEMSPI_Read_Memory Считывание внешней FLASH/EEPROM
- @ref MEMSPI_EEPROM_Write Запись данных в внешнюю EEPROM
- @ref MEMSPI_FLASH_Write Запись данных в внешнюю FLASH (функция сама очищает нужные сектора, и если надо сохраняет выбранные данные)
- @ref MEMSPI_FLASH_Program Программирование внешней FLASH (выбранный участок FLASH должен быть очищен)
- @ref MEMSPI_FLASH_Erase Очистка внешней FLASH
Также есть ряд вспомогательных функций:
- @ref MEMSPI_EEPROM_Write_Page Запись страницы в EEPROM *есть более общая функция MEMSPI_EEPROM_Write, которая записывает участки больше страницы
- @ref MEMSPI_FLASH_Erase_Sector Очистка сектора FLASH. *есть более общая функция MEMSPI_FLASH_Erase, которая может ощичать несколько секторов
- @ref MEMSPI_FLASH_Program_Page Программирование страницы. *есть более общая функция MEMSPI_FLASH_Program, которая программирует участки больше страницы
- @ref MEMSPI_WriteEnablingUntilTimeout Разрешение записи, пока не будет ответа или не истек таймаут
- @ref MEMSPI_WaitOnFlagsUntilTimeout Ожидание флага пока не истек таймаута
@section Start Инструкция по подключению
```c
MEMSPI_HandleTypeDef hmemspi;
HAL_StatusTypeDef MEMSPI_RES;
hmemspi.CS_GPIOx = GPIOC;
hmemspi.CS_PIN = GPIO_PIN_4;
MEMSPI_Base_Init(&hmemspi, &hspi3);
MEMSPI_RES = MEMSPI_EEPROM_Write(&hmemspi, mem_adr, write_buff, buff_size, Timeout, 1);
MEMSPI_RES = MEMSPI_Read_Memory(&hmemspi, mem_adr, read_buff, buff_size, Timeout);
```
******************************************************************************/
#ifndef __SPI_MEMORY_H_
#define __SPI_MEMORY_H_
#include "memspi_core.h"
/////////////////////////////////////////////////////////////////////
///////////////////////---FUNCTIONS FOR USER---//////////////////////
/* Initialize SPI and GPIO for MEMSPI FLASH */
void MEMSPI_Base_Init(MEMSPI_HandleTypeDef *hmemspi, SPI_HandleTypeDef *hspi);
/* Read external FLASH */
HAL_StatusTypeDef MEMSPI_Read_Memory(MEMSPI_HandleTypeDef *hmemspi, uint32_t FLASH_Address, uint8_t *pBuff, uint16_t Size, uint32_t Timeout);
/* Write external EEPROM */
HAL_StatusTypeDef MEMSPI_EEPROM_Write(MEMSPI_HandleTypeDef *hmemspi, uint32_t FLASH_Address, uint8_t *pData, uint16_t Size, uint32_t Timeout, uint8_t WaitForEnd);
/* Write external FLASH */
HAL_StatusTypeDef MEMSPI_FLASH_Write(MEMSPI_HandleTypeDef *hmemspi, MEMSPI_WriteInitTypeDef *WriteInit, uint32_t Timeout, uint8_t WaitForEnd);
/* Program external FLASH */
HAL_StatusTypeDef MEMSPI_FLASH_Program(MEMSPI_HandleTypeDef *hmemspi, uint32_t FLASH_Address, uint8_t *pData, uint16_t Size, uint32_t Timeout, uint8_t WaitForEnd);
/* Erase external FLASH */
HAL_StatusTypeDef MEMSPI_FLASH_Erase(MEMSPI_HandleTypeDef *hmemspi, uint32_t FLASH_Address, uint16_t Size, uint32_t Timeout, uint8_t WaitForEnd);
///////////////////////---FUNCTIONS FOR USER---//////////////////////
/////////////////////////////////////////////////////////////////////
////////////////////////---SERVICE FUNCTIONS---//////////////////////
/* Write page in external EEPROM */
HAL_StatusTypeDef MEMSPI_EEPROM_Write_Page(MEMSPI_HandleTypeDef *hmemspi, uint32_t FLASH_Address, uint8_t *pData, uint16_t Size, uint32_t *Timeout, uint32_t *tickstart, uint8_t WaitForEnd);
/* Erase external FLASH Sector */
HAL_StatusTypeDef MEMSPI_FLASH_Erase_Sector(MEMSPI_HandleTypeDef *hmemspi, uint32_t FLASH_Address, uint32_t *Timeout, uint32_t *tickstart, uint8_t WaitForEnd);
/* Program page in external FLASH */
HAL_StatusTypeDef MEMSPI_FLASH_Program_Page(MEMSPI_HandleTypeDef *hmemspi, uint32_t FLASH_Address, uint8_t *pData, uint16_t Size, uint32_t *Timeout, uint32_t *tickstart, uint8_t WaitForEnd);
/* Setting WEL bit until it setted or until timeout */
HAL_StatusTypeDef MEMSPI_WriteEnablingUntilTimeout(MEMSPI_HandleTypeDef *hmemspi, uint32_t *Timeout, uint32_t *tickstart);
/* Wait for flag until timeout */
HAL_StatusTypeDef MEMSPI_WaitOnFlagsUntilTimeout(MEMSPI_HandleTypeDef *hmemspi, uint16_t FlagMask, uint16_t FlagStatus, uint32_t *Timeout, uint32_t *tickstart);
/* Update Timeout variables */
void MEMSPI_Update_Timeout_Variables(uint32_t *Timeout, uint32_t *tickstart);
////////////////////////---SERVICE FUNCTIONS---//////////////////////
#endif // __SPI_MEMORY_H_

View File

@@ -0,0 +1,165 @@
/**
******************************************************************************
* @file memspi_core.h
* @brief Работа с командами для внешней памяти
******************************************************************************
@defgroup MEMSPI_CORE Memory SPI Core
@brief Ядро библиотеки
@{
******************************************************************************
* @details
Модуль предоставляет функции и макросы для работы с FLASH/EEPROM по SPI
на уровне отдельных команд:
- @ref MEMSPI_CMD_Read_Status_Register Отправка комманды Read Status Register / Read Status Register 2 (0x05h / 0x35h)
- @ref MEMSPI_CMD_Write_Status_Register Отправка комманды Write Status Register (0x01h)
- @ref MEMSPI_CMD_Write_Enable Отправка комманды Write Enable (0x06h)
- @ref MEMSPI_CMD_Read_Data Отправка комманды Read Data (0x03h)
- @ref MEMSPI_CMD_EEPROM_Write Отправка комманды Write (eeprom) (0x02h)
- @ref MEMSPI_CMD_FLASH_Page_Program Отправка комманды Page Program (flash) (0x02h)
- @ref MEMSPI_CMD_FLASH_Erase_Sector Отправка комманды Erase Sector (flash) (0x20h)
- @ref MEMSPI_CMD_Read_JEDEC_ID Отправка комманды Read JEDEC ID (0x4Bh)
- @ref MEMSPI_CMD_Read_Device_ID Отправка комманды Read Manufacture / Device Id (0x90)
******************************************************************************/
#ifndef __SPI_MEMORY_CORE_H_
#define __SPI_MEMORY_CORE_H_
#include "memspi_config.h"
#ifndef local_time
#define local_time() HAL_GetTick() ///< Локальное время
#endif
/** @defgroup MEMSPI_Commands Memory SPI Commands
* @brief Определения команд SPI-памяти
* @{
*/
#define MEMSPI_READ_JEDEC_ID 0x9F ///< Команда чтения JEDEC ID
#define MEMSPI_READ_UNIQUE_ID 0x4B ///< Команда чтения уникального идентификатора
#define MEMSPI_WRITE_ENABLE 0x06 ///< Разрешение записи
#define MEMSPI_WRITE_DISABLE 0x04 ///< Запрещение записи
#define MEMSPI_WRITE_STATUS_REG 0x01 ///< Запись в регистр состояния
#define MEMSPI_ERASE_SECTOR 0x20 ///< Стирание одного сектора
#define MEMSPI_PAGE_PROGRAM 0x02 ///< Программирование одной страницы
#define MEMSPI_WRITE_EEPROM MEMSPI_PAGE_PROGRAM ///< Псевдоним для программирования EEPROM
#define MEMSPI_READ_STATUS_REG 0x05 ///< Чтение регистра состояния
#if defined(MEMSPI_SEPARATED_STATUS_REGISTER)
#define MEMSPI_READ_STATUS_REG_2 0x35 ///< Чтение второго регистра состояния (если поддерживается)
#endif
#define MEMSPI_READ_DATA 0x03 ///< Чтение данных из памяти
/** //MEMSPI_Commands
* @}
*/
/** @defgroup MEMSPI_StatusFlags Statur Register Flags
* @brief Определения битов регистра состояния памяти
* @{
*/
/**
* @brief Get Flag of Status Register
*/
#define MEMSPI_Get_Flag(_hmemspi_,_flag_) (((MEMSPI_StatusRegisterTypeDef)(_hmemspi_->SR))._flag_)
#define MEMSPI_SR_SUS (1<<15) ///< Suspend (приостановка операций)
#define MEMSPI_SR_QE (1<<9) ///< Quad Enable (разрешение четырехпроводного интерфейса)
#define MEMSPI_SR_SRP1 (1<<8) ///< Status Register Protect 1
#define MEMSPI_SR_SRP0 (1<<7) ///< Status Register Protect 0 / SRWD
#define MEMSPI_SR_SEC (1<<6) ///< Sector Protect (защита сектора)
#define MEMSPI_SR_TB (1<<5) ///< Top/Bottom Protect
#define MEMSPI_SR_BP2 (1<<4) ///< Block Protect бит 2
#define MEMSPI_SR_BP1 (1<<3) ///< Block Protect бит 1
#define MEMSPI_SR_BP0 (1<<2) ///< Block Protect бит 0
#define MEMSPI_SR_WEL (1<<1) ///< Write Enable Latch (бит разрешения записи)
#define MEMSPI_SR_BUSY (1<<0) ///< Занято (операция в процессе выполнения)
// Exclusive (by name) EEPROM SR bits
#define MEMSPI_SR_SRWD MEMSPI_SR_SRP0 ///< Status Register Write Disable (аналог SRP0)
#define MEMSPI_SR_WIP MEMSPI_SR_WEL ///< Write-In-Progress (используется в некоторых EEPROM)
/**
* @}
*/
////////////////////////////---DEFINES---////////////////////////////
/////////////////////////////////////////////////////////////////////
///////////////////////---STRUCTURES & ENUMS---//////////////////////
/**
* @brief Структура параметров инициализации записи в память MEMSPI.
*/
typedef struct
{
uint8_t *pDataPtr; ///< Указатель на буфер данных, которые будут записаны
uint32_t Data_Address; ///< Начальный адрес записи в памяти
uint32_t Data_Size; ///< Размер данных для записи в байтах
uint32_t Sector_Address; ///< Адрес начала сектора, в который будет производиться запись
uint32_t Sector_Size; ///< Размер сектора, который может быть затронут при записи
unsigned fSavePrevoisData:1; ///< Флаг: сохранять ли предыдущие данные сектора (до стирания)
} MEMSPI_WriteInitTypeDef;
/**
* @brief Основная структура управления MEMSPI.
*/
typedef struct
{
uint16_t SR; ///< Регистра состояния микросхемы
SPI_HandleTypeDef *hspi; ///< Указатель на дескриптор SPI, используемый для обмена с памятью
GPIO_TypeDef *CS_GPIOx; ///< Порт GPIO для вывода управления CS (chip select)
uint32_t CS_PIN; ///< Номер вывода (пина) для CS
uint32_t hNextAddr; ///< Следующий адрес для автоматической записи/чтения
uint16_t hNextPage; ///< Следующая страница памяти
uint16_t hNextSector; ///< Следующий сектор памяти
} MEMSPI_HandleTypeDef;
///////////////////////---STRUCTURES & ENUMS---//////////////////////
/////////////////////////////////////////////////////////////////////
//////////////////////---FUNCTION FOR COMMAND---/////////////////////
/** @defgroup MEMSPI_CmdFunctiins Functions for Memory SPI CMD
* @brief Функции для отправки комманд для памяти по SPI
* @{
*/
/* Send command to read Status Register */
HAL_StatusTypeDef MEMSPI_CMD_Read_Status_Register(MEMSPI_HandleTypeDef *hmemspi, uint16_t RequestedBits, uint8_t EndCMD, uint32_t Timeout);
/* Send command to write bits in Status Register */
HAL_StatusTypeDef MEMSPI_CMD_Write_Status_Register(MEMSPI_HandleTypeDef *hmemspi, uint16_t WrittenBits, uint32_t Timeout);
/* Send command to set Write Enable Latch (WEL) in Status Register */
HAL_StatusTypeDef MEMSPI_CMD_Write_Enable(MEMSPI_HandleTypeDef *hmemspi, uint32_t Timeout);
/* Send command to read data from FLASH/EEPROM */
HAL_StatusTypeDef MEMSPI_CMD_Read_Data(MEMSPI_HandleTypeDef *hmemspi, uint32_t FLASH_Address, uint8_t *pBuff, uint16_t Size, uint32_t Timeout);
/* Send command to write eeprom */
HAL_StatusTypeDef MEMSPI_CMD_EEPROM_Write(MEMSPI_HandleTypeDef *hmemspi, uint32_t FLASH_Address, uint8_t *pData, uint16_t Size, uint32_t Timeout);
/* Send command to page program in FLASH */
HAL_StatusTypeDef MEMSPI_CMD_FLASH_Page_Program(MEMSPI_HandleTypeDef *hmemspi, uint32_t FLASH_Address, uint8_t *pData, uint16_t Size, uint32_t Timeout);
/* Send command to erase sector of FLASH */
HAL_StatusTypeDef MEMSPI_CMD_FLASH_Erase_Sector(MEMSPI_HandleTypeDef *hmemspi, uint32_t FLASH_Address, uint32_t Timeout);
/* Send command to read JEDEC ID */
uint32_t MEMSPI_CMD_Read_JEDEC_ID(MEMSPI_HandleTypeDef *hmemspi, uint32_t Timeout);
/* Send command to read JEDEC ID */
uint64_t MEMSPI_CMD_Read_Device_ID(MEMSPI_HandleTypeDef *hmemspi, uint32_t Timeout);
/*Send command to fast read data from FLASH */
HAL_StatusTypeDef MEMSPI_CMD_Fast_Read(MEMSPI_HandleTypeDef *hmemspi, uint32_t FLASH_Address, uint8_t *pBuff, uint16_t Size, uint32_t Timeout);
//////////////////////---FUNCTION FOR COMMAND---/////////////////////
/** //MEMSPI_CmdFunctiins
* @}
*/
#endif // __SPI_MEMORY_CORE_H_
/** //MEMSPI_CORE
* @}
*/

View File

@@ -0,0 +1,71 @@
# Инструкция по подключению релиза библиотеки для работы с внешними FLASH, EEPROM
STM32_MemorySPI - это набор библиотек для удобной работы с периферией STM32.
Данный субмодуль подключается напрямую из Git и содержит набор вспомогательных библиотек для работы МК, в частности STM32 и SEGGER RTT.
## Структура библиотеки
*Note: Файлы начинающиеся с `__` и которых **нет** в этом дереве являются **внутренними/непротестированными/недокументированными***
```
ProjectRoot/
└── STM32_MemorySPI # Работа с внешней памятбю
├── inc/
│ ├── memspi_core.h
│ └── memspi.h
│── src/
│ ├── memspi_core.c
│ └── memspi.c
└── __memspi_config.h
```
## Функции библиотеки
Общение с памятью на уровне железа выполняют [функции для команд](#функции-для-команд).
Координацию команд выполняют [функции для внутреннего использования](#функции-для-внутреннего-использования).
А запросы на запись/чтение/очистку произвольного кол-ва байт выполняют [функции для пользователя](#функции-для-пользователя).
## Пример
```c
MEMSPI_HandleTypeDef hmemspi;
HAL_StatusTypeDef MEMSPI_RES;
hmemspi.CS_GPIOx = GPIOC;
hmemspi.CS_PIN = GPIO_PIN_4;
MEMSPI_Base_Init(&hmemspi, &hspi3);
MEMSPI_RES = MEMSPI_EEPROM_Write(&hmemspi, mem_adr, write_buff, buff_size, Timeout, 1);
MEMSPI_RES = MEMSPI_Read_Memory(&hmemspi, mem_adr, read_buff, buff_size, Timeout);
```
### Функции для пользователя
- MEMSPI_Base_Init() Инициализация переферии SPI и GPIO для внешней памяти
- MEMSPI_Read_Memory() Считывание внешней FLASH/EEPROM
- MEMSPI_EEPROM_Write() Запись данных в внешнюю EEPROM
- MEMSPI_FLASH_Write() Запись данных в внешнюю FLASH (функция сама очищает нужные сектора, и если надо сохраняет выбранные данные)
- MEMSPI_FLASH_Program() Программирование внешней FLASH (выбранный участок FLASH должен быть очищен)
- MEMSPI_FLASH_Erase() Очистка внешней FLASH
С помощью данных функций предлагается управлять внещней памятью. Эти функции имеют "неограниченый" доступ к памяти. Т.е. они могут записывать данные размером больше страницы и очищать несколько секторов за один вызов.
При вызове этих функций проверяется свободно ли устройство. И если свободно то начинают с ним соответсвующую работу. Возможно также ожидание в конце, когда нужная операция выполниться.
Функция инициализации **MEMSPI_Base_Init()** содержит базовые настройки для перефирии SPI и GPIO. Пользователь только настраивает SPI Instance, BaudratePrescaler и порты ввода/вывода для общения с памятью.
### Функции для внутреннего использования
- MEMSPI_EEPROM_Write_Page() Запись страницы в EEPROM
- MEMSPI_FLASH_Erase_Sector() Очистка сектора FLASH.
- MEMSPI_FLASH_Program_Page() Программирование страницы.
- MEMSPI_WriteEnablingUntilTimeout() Разрешение записи, пока не будет ответа или не истек таймаут
- MEMSPI_WaitOnFlagsUntilTimeout() Ожидание флага пока не истек таймаута
Функции **Write**, **Erase**, **Program** работают напрямую с командами SPI для памяти. Соответственно имеют те же ограничения, что и команды: запись памяти только в пределах страницы, и очистка памяти только по секторам.
Они проверяют свободно ли устройство (бит **BUSY** в **Status Register**). И если да, отправляют команду на разрешение записи. И если запись разрешена (бит **WEL** в **Status Register**), начинают с ней работать. Также эти функциии в конце могут ожидать, пока устройство не выполнит нужную операцию с памятью (бит **BUSY** в **Status Register**) ИЛИ просто выйти из функции не дожидаясь конца операции.
Функции UntilTimeout нужны для ожидания некоторого события до истечения таймаута:
- WriteEnabling: посылает команду для разрешения записи и ожидает когда запись разрешится ИЛИ когда истечет таймаут
- WaitOnFlags: ожидает выставления выбранных флагов ИЛИ когда истечет таймаут
### Функции для команд
Данные функции начинаются с **MEMSPI_CMD_...()**. Они посылают соответствующие команды и принимают ответ. Также на время команды все функции выставляют Chip Select для выбранного устройства. А функция **MEMSPI_CMD_Read_Status_Register()** имеет параметр, который позволяет не убирать Chip Select после команды для постоянного мониторинга Status Register. Прием с помощью **MEMSPI_SPI_Receive()**.

View File

@@ -0,0 +1,530 @@
/**
******************************************************************************
* @file memspi.c
* @brief Реализация работы с внешней памятью
******************************************************************************
* @details
Модуль реализует функции для удобной работы с FLASH/EEPROM по SPI:
- MEMSPI_Read_Memory Считывание внешней FLASH/EEPROM
- MEMSPI_EEPROM_Write Запись данных в внешнюю EEPROM
- MEMSPI_FLASH_Write Запись данных в внешнюю FLASH (функция сама очищает нужные сектора, и если надо сохраняет выбранные данные)
- MEMSPI_FLASH_Program Программирование внешней FLASH (выбранный участок FLASH должен быть очищен)
- MEMSPI_FLASH_Erase Очистка внешней FLASH
А также ряд вспомогательных функций:
- MEMSPI_EEPROM_Write_Page Запись страницы в EEPROM *есть более общая функция MEMSPI_EEPROM_Write, которая записывает участки больше страницы
- MEMSPI_FLASH_Erase_Sector Очистка сектора FLASH. *есть более общая функция MEMSPI_FLASH_Erase, которая может ощичать несколько секторов
- MEMSPI_FLASH_Program_Page Программирование страницы. *есть более общая функция MEMSPI_FLASH_Program, которая программирует участки больше страницы
- MEMSPI_WriteEnablingUntilTimeout Разрешение записи, пока не будет ответа или не истек таймаут
- MEMSPI_WaitOnFlagsUntilTimeout Ожидание флага пока не истек таймаута
******************************************************************************/
#include "memspi.h"
uint8_t sector_buff[MEMSPI_SECTOR_SIZE];
//-------------------------------------------------------------
//--------------------------FOR USER---------------------------
/**
* @brief Initialize SPI and GPIO for MEMSPI FLASH.
* @param hmemspi Указатель на структуру с настройками SPI и GPIO портов.
* @param hspi Указатель на хендл SPI.
*/
void MEMSPI_Base_Init(MEMSPI_HandleTypeDef *hmemspi, SPI_HandleTypeDef *hspi)
{
// SPI PERIPH INIT
if(hspi == NULL)
return;
hmemspi->hspi = hspi;
// GPIO INIT
// CHIP SELECT PIN INIT
GPIO_InitTypeDef GPIO_InitStruct = {0};
GPIO_InitStruct.Pin = hmemspi->CS_PIN;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_PULLDOWN;
#ifdef GPIO_SPEED_FREQ_VERY_HIGH
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
#else
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
#endif
HAL_GPIO_Init(hmemspi->CS_GPIOx, &GPIO_InitStruct);
MEMSPI_Deselect(hmemspi);
}
/**
* @brief Read external FLASH/EEPROM.
* @param hmemspi Указатель на хендл внешней памяти.
* @param FLASH_Address Адресс откуда начинать считывание.
* @param pBuff Куда записывать данные из FLASH.
* @param Size Вколько байтов считывать.
* @param Timeout Время, за которое должно быть осуществлено чтение.
* @return HAL status.
* @note Включает в себя проверку на доступность памяти (флаг BUSY)
*/
HAL_StatusTypeDef MEMSPI_Read_Memory(MEMSPI_HandleTypeDef *hmemspi, uint32_t FLASH_Address, uint8_t *pBuff, uint16_t Size, uint32_t Timeout)
{
HAL_StatusTypeDef MEMSPI_Status;
uint32_t tickstart = local_time();
// wait for unbusy
if(MEMSPI_WaitOnFlagsUntilTimeout(hmemspi, MEMSPI_SR_BUSY, 0, &Timeout, &tickstart) != HAL_OK) // if its unbusy for timeout
return HAL_TIMEOUT; // return timeout error
MEMSPI_Status = MEMSPI_CMD_Read_Data(hmemspi, FLASH_Address, pBuff, Size, Timeout);
if(MEMSPI_Status != HAL_OK)
return MEMSPI_Status;
return HAL_OK;
}
/**
* @brief Write external EEPROM.
* @param hmemspi Указатель на хендл внешней памяти.
* @param FLASH_Address Адресс куда начинать записывать.
* @param pData Откуда брать данные для записи в EEPROM.
* @param Size Вколько байтов записать.
* @param Timeout Время, за которое должна быть осуществлена запись.
* @param WaitForEnd Ожидание, пока память не выполненит операцию.
* @return HAL status.
* @note Позволяет записать участок памяти. Можно записывать несколько страниц.
*/
HAL_StatusTypeDef MEMSPI_EEPROM_Write(MEMSPI_HandleTypeDef *hmemspi, uint32_t FLASH_Address, uint8_t *pData, uint16_t Size, uint32_t Timeout, uint8_t WaitForEnd)
{
uint32_t tickstart = local_time();
HAL_StatusTypeDef MEMSPI_Status;
// CALC AREA TO WRITE
uint16_t bytecnt = 0;
uint16_t currentpage_size = 0;
uint16_t lastpage_size = Size;
uint16_t firstpage = (FLASH_Address/MEMSPI_PAGE_SIZE);
uint16_t lastpage = ((FLASH_Address+Size-1)/MEMSPI_PAGE_SIZE);
if(firstpage != lastpage) // if area is on several pages
{
currentpage_size = (firstpage+1)*MEMSPI_PAGE_SIZE - FLASH_Address; // set size of data on first page
lastpage_size = (FLASH_Address+Size) - lastpage*MEMSPI_PAGE_SIZE; // set size of data on last page
}
// PROGRAM PAGES: FROM FIRST NO THE PREVIOUS TO THE LAST
hmemspi->hNextAddr = FLASH_Address; // address would automatically increase in this variable
for(int i = 0; i < lastpage - firstpage; i++)
{
MEMSPI_Status = MEMSPI_EEPROM_Write_Page(hmemspi, hmemspi->hNextAddr, &pData[bytecnt], currentpage_size, &Timeout, &tickstart, 0); // programm page
if(MEMSPI_Status != HAL_OK) // note: no need waiting for end: the next call will wait for unbusy
return MEMSPI_Status;
// note for multiple page program: first we program rest of the first page,
// then we shift byte count to data, that shoud be on the next page
bytecnt += currentpage_size;
// and set current size as page size. because next pages will be fully programmed
currentpage_size = MEMSPI_PAGE_SIZE;
}
// PROGRAM LAST PAGE
MEMSPI_Status = MEMSPI_FLASH_Program_Page(hmemspi, hmemspi->hNextAddr, &pData[bytecnt], lastpage_size, &Timeout, &tickstart, WaitForEnd); // programm page
if(MEMSPI_Status != HAL_OK)
return MEMSPI_Status;
return HAL_OK;
}
/**
* @brief Write external FLASH.
* @param hmemspi Указатель на хендл внешней памяти.
* @param WriteInit Указатель на структуру, определяющую участок памяти для записи.
* @param Timeout Время, за которое должно быть осуществлено чтение.
* @param WaitForEnd Ожидание, пока память не выполненит операцию.
* @return HAL status.
* @note Позволяет перепрограммировать участок памяти. Можно записывать несколько страниц.
* Данные в сектора участка, но за пределами участка не сохраняются.
*/
HAL_StatusTypeDef MEMSPI_FLASH_Write(MEMSPI_HandleTypeDef *hmemspi, MEMSPI_WriteInitTypeDef *WriteInit, uint32_t Timeout, uint8_t WaitForEnd)
{
uint32_t tickstart = local_time();
uint32_t timeoutcnt = Timeout;
uint8_t *writebuff = WriteInit->pDataPtr;
HAL_StatusTypeDef MEMSPI_Status;
// CHECK FOR UNDEFINED STRUCTURE
if (WriteInit->Sector_Size == 0) // if sector undefined
{ // fill it with data init
WriteInit->Sector_Address = WriteInit->Data_Address;
WriteInit->Sector_Size = WriteInit->Data_Size;
}
else if (WriteInit->Data_Size == 0) // if data undefined
{ // fill it with sector init
WriteInit->Data_Address = WriteInit->Sector_Address;
WriteInit->Data_Size = WriteInit->Sector_Size;
} // if both undefined - return HAL ERR
else if ((WriteInit->Sector_Size == 0) && (WriteInit->Data_Size == 0))
{
return HAL_ERROR;
}
// CHECK FOR CORRECT STRUCTURE
// if data is beyound sector
if((WriteInit->Data_Address < WriteInit->Sector_Address) ||
((WriteInit->Data_Address + WriteInit->Data_Size) > (WriteInit->Sector_Address + WriteInit->Sector_Size)))
return HAL_ERROR;
// WRITE FLASH WITH SAVING PREVIOUS DATA
if(WriteInit->fSavePrevoisData)
{
// uint8_t sector_buff[WriteInit->Sector_Size];
// store data from flash
MEMSPI_Status = MEMSPI_Read_Memory(hmemspi, WriteInit->Sector_Address, sector_buff, WriteInit->Sector_Size, Timeout);
if(MEMSPI_Status != HAL_OK)
return MEMSPI_Status;
// CHANGE DATA IN USER "SECTOR"
uint32_t addr_shift = WriteInit->Data_Address - WriteInit->Sector_Address;
for(int i = 0; i < WriteInit->Data_Size; i++)
{
sector_buff[addr_shift+i] = WriteInit->pDataPtr[addr_shift+i];
}
// CALC AREA TO REPROGRAM
uint16_t lastsector_size = WriteInit->Sector_Size;
uint16_t firstsector = (WriteInit->Sector_Address/MEMSPI_SECTOR_SIZE);
uint16_t lastsector = ((WriteInit->Sector_Address+WriteInit->Sector_Size-1)/MEMSPI_SECTOR_SIZE);
if(firstsector != lastsector) // if area is on several pages
{
lastsector_size = (WriteInit->Sector_Address+WriteInit->Sector_Size) - lastsector*MEMSPI_SECTOR_SIZE; // set size of data on last page
}
// REPROGRAM SECTORS: FROM FIRST SECTOR NO THE PREVIOUS TO THE LAST
hmemspi->hNextAddr = WriteInit->Sector_Address; // address would automatically increase in this variable
hmemspi->hNextSector = firstsector+1;
uint16_t bytescnt = 0;
uint16_t bytes_to_next_sector = 0;
for(int i = 0; i < (lastsector - firstsector); i++)
{
// ERASE FLASH
MEMSPI_Status = MEMSPI_FLASH_Erase(hmemspi, hmemspi->hNextAddr, 1, Timeout, 0);
if(MEMSPI_Status != HAL_OK) // note: no need waiting for end: the next call will wait for unbusy
return MEMSPI_Status;
// PROGRAM FLASH WITH NEW DATA
// calc bytes to next sector
bytes_to_next_sector = hmemspi->hNextSector*MEMSPI_SECTOR_SIZE - hmemspi->hNextAddr;
// program data to flash
MEMSPI_Status = MEMSPI_FLASH_Program(hmemspi, hmemspi->hNextAddr, &sector_buff[bytescnt], bytes_to_next_sector, Timeout, 0);
if(MEMSPI_Status != HAL_OK)
return MEMSPI_Status;
// shift bytes count to data, that shoud be on the next page
bytescnt += bytes_to_next_sector;
}
// ERASE FLASH
MEMSPI_Status = MEMSPI_FLASH_Erase(hmemspi, hmemspi->hNextAddr, 1, Timeout, 0);
if(MEMSPI_Status != HAL_OK) // note: no need waiting for end: the next call will wait for unbusy
return MEMSPI_Status;
// PROGRAM LAST SECTOR
MEMSPI_Status = MEMSPI_FLASH_Program(hmemspi, hmemspi->hNextAddr, &sector_buff[bytescnt], lastsector_size, Timeout, WaitForEnd);
if(MEMSPI_Status != HAL_OK)
return MEMSPI_Status;
}
// WRITE FLASH WITHOUT SAVING PREVIOUS DATA
else
{
// ERASE FLASH
MEMSPI_Status = MEMSPI_FLASH_Erase(hmemspi, WriteInit->Sector_Address, WriteInit->Sector_Size, Timeout, 0);
if(MEMSPI_Status != HAL_OK) // note: no need waiting for end: the next call will wait for unbusy
return MEMSPI_Status;
// PROGRAM FLASH WITH NEW DATA
// program data to flash
MEMSPI_Status = MEMSPI_FLASH_Program(hmemspi, WriteInit->Sector_Address, WriteInit->pDataPtr, WriteInit->Sector_Size, Timeout, WaitForEnd);
if(MEMSPI_Status != HAL_OK)
return MEMSPI_Status;
}
return HAL_OK;
}
/**
* @brief Program external FLASH.
* @param hmemspi Указатель на хендл внешней памяти.
* @param FLASH_Address Адресс куда начинать записывать.
* @param pData Откуда брать данные для записи в FLASH.
* @param Size Вколько байтов записать.
* @param Timeout Время, за которое должно быть осуществлено чтение.
* @param WaitForEnd Ожидание, пока память не выполненит операцию.
* @return HAL status.
* @note Программирование участка памяти, без ограничений на кол-во байт
*/
HAL_StatusTypeDef MEMSPI_FLASH_Program(MEMSPI_HandleTypeDef *hmemspi, uint32_t FLASH_Address, uint8_t *pData, uint16_t Size, uint32_t Timeout, uint8_t WaitForEnd)
{
uint32_t tickstart = local_time();
HAL_StatusTypeDef MEMSPI_Status;
// CALC AREA TO PROGRAM
uint16_t lastpage_size = Size;
uint16_t firstpage = (FLASH_Address/MEMSPI_PAGE_SIZE);
uint16_t lastpage = ((FLASH_Address+Size-1)/MEMSPI_PAGE_SIZE);
if(firstpage != lastpage) // if area is on several pages
{
lastpage_size = (FLASH_Address+Size) - lastpage*MEMSPI_PAGE_SIZE; // set size of data on last page
}
// PROGRAM PAGES: FROM FIRST NO THE PREVIOUS TO THE LAST
hmemspi->hNextAddr = FLASH_Address; // address would automatically increase in this variable
hmemspi->hNextPage = firstpage+1; // address would automatically increase in this variable
uint16_t bytecnt = 0;
uint16_t bytes_to_next_page = 0;
for(int i = 0; i < lastpage - firstpage; i++)
{
// calc bytes to next sector
bytes_to_next_page = hmemspi->hNextPage*MEMSPI_PAGE_SIZE - hmemspi->hNextAddr;
MEMSPI_Status = MEMSPI_FLASH_Program_Page(hmemspi, hmemspi->hNextAddr, &pData[bytecnt], bytes_to_next_page, &Timeout, &tickstart, 0); // programm page
if(MEMSPI_Status != HAL_OK) // note: no need waiting for end: the next call will wait for unbusy
return MEMSPI_Status;
// then we shift byte count to data, that shoud be on the next page
bytecnt += bytes_to_next_page;
}
// PROGRAM LAST PAGE
MEMSPI_Status = MEMSPI_FLASH_Program_Page(hmemspi, hmemspi->hNextAddr, &pData[bytecnt], lastpage_size, &Timeout, &tickstart, WaitForEnd); // programm page
if(MEMSPI_Status != HAL_OK)
return MEMSPI_Status;
return HAL_OK; // if all ok return HAL_OK
}
/**
* @brief Erase external FLASH.
* @param hmemspi Указатель на хендл внешней памяти.
* @param FLASH_Address Адресс где надо данные стереть.
* @param Size Вколько байтов стереть.
* @param Timeout Время, за которое должно быть осуществлена очистка.
* @param WaitForEnd Ожидание, пока память не выполненит операцию.
* @return HAL status.
* @note Т.к. очитска происходит по секторам, Size нужен, чтобы определить сколько секторов очистить
* И если начальны адресс будет на Sector 0, а последний байт на Sector 1, то произойдет очистка Sector 0 и Sector 1
*/
HAL_StatusTypeDef MEMSPI_FLASH_Erase(MEMSPI_HandleTypeDef *hmemspi, uint32_t FLASH_Address, uint16_t Size, uint32_t Timeout, uint8_t WaitForEnd)
{
uint32_t tickstart = local_time();
HAL_StatusTypeDef MEMSPI_Status;
// CALC AREA TO ERASE
uint16_t bytecnt = 0;
uint16_t firstsector = (FLASH_Address/MEMSPI_SECTOR_SIZE);
uint16_t lastsector = ((FLASH_Address+Size-1)/MEMSPI_SECTOR_SIZE);
for(int i = 0; i <= (lastsector - firstsector); i++)
{
MEMSPI_Status = MEMSPI_FLASH_Erase_Sector(hmemspi, FLASH_Address, &Timeout, &tickstart, WaitForEnd); // programm page
if(MEMSPI_Status != HAL_OK)
return MEMSPI_Status;
FLASH_Address += MEMSPI_SECTOR_SIZE;
}
return HAL_OK;
}
//-------------------------------------------------------------
//----------------------SERVICE FUNCTIONS----------------------
/**
* @brief Write page in external EEPROM.
* @param hmemspi Указатель на хендл внешней памяти.
* @param FLASH_Address Адресс куда начинать записывать.
* @param pData Откуда брать данные для записи в EEPROM.
* @param Size Вколько байтов записать.
* @param Timeout Время, за которое должно быть осуществлено чтение.
* @param tickstart Начальное количество тиков.
* @param WaitForEnd Ожидание, пока память не выполненит операцию.
* @return HAL status.
* @note Позволяет записывать только байты в пределах одной страницы.
Для более гибкой записи есть функция MEMSPI_EEPROM_Write, которая программирует участки любой длины (в теории).
*/
HAL_StatusTypeDef MEMSPI_EEPROM_Write_Page(MEMSPI_HandleTypeDef *hmemspi, uint32_t FLASH_Address, uint8_t *pData, uint16_t Size, uint32_t *Timeout, uint32_t *tickstart, uint8_t WaitForEnd)
{
HAL_StatusTypeDef MEMSPI_Status;
// enable writting and waiting for unbusy
if(MEMSPI_WriteEnablingUntilTimeout(hmemspi, Timeout, tickstart) != HAL_OK) // if writting isnt enable
return HAL_TIMEOUT; // return timeout
MEMSPI_Status = MEMSPI_CMD_EEPROM_Write(hmemspi, FLASH_Address, pData, Size, *Timeout);
if(MEMSPI_Status != HAL_OK)
return MEMSPI_Status;
// waiting for ending of writting if need
if(WaitForEnd)
if(MEMSPI_WaitOnFlagsUntilTimeout(hmemspi, MEMSPI_SR_WEL|MEMSPI_SR_BUSY, 0, Timeout, tickstart) != HAL_OK) // if writting isnt done (MEMSPI busy and WEL bit isnt in reset state)
return HAL_TIMEOUT;
// update handle variables
hmemspi->hNextAddr = (FLASH_Address+Size);
hmemspi->hNextPage = (FLASH_Address+Size)/MEMSPI_PAGE_SIZE;
hmemspi->hNextSector = (FLASH_Address+Size)/MEMSPI_SECTOR_SIZE;
return HAL_OK;
}
/**
* @brief Erase external FLASH Sector.
* @param hmemspi Указатель на хендл внешней памяти.
* @param FLASH_Address Адресс где надо данные стереть.
* @param Timeout Время, за которое должно быть осуществлена очистка.
* @param tickstart Время, относительно которого надо отсчитывать таймаут.
* @param WaitForEnd Ожидание, пока память не выполненит операцию.
* @return HAL status.
* @note При Timeout = 0, функция не будет ожидать окончания очистки (выставления в 0 флагов BUSY и WEL)
* @note Микросхема вроде сама высчитывает какой сектор ерейзнуть, в соответствии с заданным адресом.
*/
HAL_StatusTypeDef MEMSPI_FLASH_Erase_Sector(MEMSPI_HandleTypeDef *hmemspi, uint32_t FLASH_Address, uint32_t *Timeout, uint32_t *tickstart, uint8_t WaitForEnd)
{
HAL_StatusTypeDef MEMSPI_Status;
// enable writting and waiting for unbusy
if(MEMSPI_WriteEnablingUntilTimeout(hmemspi, Timeout, tickstart) != HAL_OK) // if writting isnt enable
return HAL_TIMEOUT; // return timeout
// erase sector (instruction)
MEMSPI_Status = MEMSPI_CMD_FLASH_Erase_Sector(hmemspi, FLASH_Address, *Timeout);
if(MEMSPI_Status != HAL_OK)
return MEMSPI_Status;
// waiting for ending of erasing if need
if(WaitForEnd)
if(MEMSPI_WaitOnFlagsUntilTimeout(hmemspi, MEMSPI_SR_WEL|MEMSPI_SR_BUSY, 0, Timeout, tickstart) != HAL_OK) // if erase isnt done (MEMSPI busy and WEL bit isnt in reset state)
return HAL_TIMEOUT; // return timeout because erasing instruction accepted, but arent done
// note: if timeout == 0, erasing wouldnt be checking for ending (check busy flag)
return HAL_OK; // if all ok return HAL_OK
}
/**
* @brief Program page in external FLASH.
* @param hmemspi Указатель на хендл внешней памяти.
* @param FLASH_Address Адресс куда начинать записывать.
* @param pData Откуда брать данные для записи в FLASH.
* @param Size Вколько байтов записать.
* @param Timeout Время, за которое должно быть осуществлено чтение.
* @param tickstart Время, относительно которого надо отсчитывать таймаут.
* @param WaitForEnd Ожидание, пока память не выполненит операцию.
* @return HAL status.
* @note Позволяет перепрограммировать только байты в прелелах одной страницы.
Для более гибкого программирования есть функция MEMSPI_FLASH_Program, которая программирует участки любой длины (в теории).
*/
HAL_StatusTypeDef MEMSPI_FLASH_Program_Page(MEMSPI_HandleTypeDef *hmemspi, uint32_t FLASH_Address, uint8_t *pData, uint16_t Size, uint32_t *Timeout, uint32_t *tickstart, uint8_t WaitForEnd)
{
HAL_StatusTypeDef MEMSPI_Status;
// enable writting and waiting for unbusy
if(MEMSPI_WriteEnablingUntilTimeout(hmemspi, Timeout, tickstart) != HAL_OK) // if writting isnt enable
return HAL_TIMEOUT; // return timeout
// check if flash range is placed at one page
if((FLASH_Address/MEMSPI_PAGE_SIZE) != ((FLASH_Address+Size-1)/MEMSPI_PAGE_SIZE)) // if page of first byte isnt equal page of last byte
return HAL_ERROR; // return error
// programm page (instruction)
MEMSPI_Status = MEMSPI_CMD_FLASH_Page_Program(hmemspi, FLASH_Address, pData, Size, *Timeout);
if(MEMSPI_Status != HAL_OK)
return MEMSPI_Status;
// waiting for ending of writting if need
if(WaitForEnd)
if(MEMSPI_WaitOnFlagsUntilTimeout(hmemspi, MEMSPI_SR_WEL|MEMSPI_SR_BUSY, 0, Timeout, tickstart) != HAL_OK) // if writting isnt done (MEMSPI busy and WEL bit isnt in reset state)
return HAL_TIMEOUT;
// update handle variables
hmemspi->hNextAddr = (FLASH_Address+Size);
hmemspi->hNextPage = (hmemspi->hNextAddr+Size)/MEMSPI_PAGE_SIZE;
hmemspi->hNextSector = (hmemspi->hNextAddr+Size)/MEMSPI_SECTOR_SIZE;
return HAL_OK;
}
/**
* @brief Setting WEL bit until it setted or until timeout.
* @param hmemspi Указатель на хендл внешней памяти.
* @param Timeout Время, за которое должно быть осуществлено чтение.
* @param tickstart Время, относительно которого надо отсчитывать таймаут.
* @return HAL status.
* @note Подает команду на разрешение записи до тех пор, пока она запись не разрешиться или до тех пор, пока таймаут не истечет.
*/
HAL_StatusTypeDef MEMSPI_WriteEnablingUntilTimeout(MEMSPI_HandleTypeDef *hmemspi, uint32_t *Timeout, uint32_t *tickstart)
{
HAL_StatusTypeDef MEMSPI_Status;
// wait for unbusy
if(MEMSPI_WaitOnFlagsUntilTimeout(hmemspi, MEMSPI_SR_BUSY, 0, Timeout, tickstart) != HAL_OK) // if its unbusy for timeout
return HAL_TIMEOUT;
// enable writing
while((hmemspi->SR&MEMSPI_SR_WEL) != MEMSPI_SR_WEL)
{
// if flash isnt busy - set WEL flag
if((hmemspi->SR&MEMSPI_SR_BUSY) == 0)
MEMSPI_CMD_Write_Enable(hmemspi, *Timeout);
// check is writting enabled
MEMSPI_Status = MEMSPI_CMD_Read_Status_Register(hmemspi, MEMSPI_SR_WEL|MEMSPI_SR_BUSY, 1, *Timeout);
if(MEMSPI_Status != HAL_OK)
{
MEMSPI_Deselect(hmemspi);
return MEMSPI_Status;
}
if((local_time() - *tickstart) >= *Timeout) // if time is out
{
MEMSPI_Deselect(hmemspi);
return HAL_TIMEOUT; // set timeout
}
}
MEMSPI_Deselect(hmemspi);
MEMSPI_Update_Timeout_Variables(Timeout, tickstart);
return HAL_OK; // if all ok return HAL_OK
}
/**
* @brief Wait for flag until timeout.
* @param hmemspi Указатель на хендл внешней памяти.
* @param FlagMask Маска для флагов, какие флаги считывать.
* @param FlagStatus Какое состояние должно быть у выбранных флагов.
* @param Timeout Время, за которое должно быть осуществлено чтение.
* @param tickstart Время, относительно которого надо отсчитывать таймаут.
* @return HAL status.
* @note Считывает флаги до тех пор, пока они не будут в состоянии FlagStatus или до тех пор, пока таймаут не истечет.
*/
HAL_StatusTypeDef MEMSPI_WaitOnFlagsUntilTimeout(MEMSPI_HandleTypeDef *hmemspi, uint16_t FlagMask, uint16_t FlagStatus, uint32_t *Timeout, uint32_t *tickstart)
{
HAL_StatusTypeDef MEMSPI_Status;
// check flags
MEMSPI_Status = MEMSPI_CMD_Read_Status_Register(hmemspi, FlagMask, 0, *Timeout);
if(MEMSPI_Status != HAL_OK)
return MEMSPI_Status;
while((hmemspi->SR&FlagMask) != FlagStatus)
{
// check flags
// MEMSPI_Status = MEMSPI_CMD_Read_Status_Register(hmemspi, FlagMask, *Timeout);
MEMSPI_Status = MEMSPI_SPI_Receive(hmemspi, (uint8_t *)&hmemspi->SR, 1, *Timeout); // receive response
if(MEMSPI_Status != HAL_OK)
{
MEMSPI_Deselect(hmemspi);
return MEMSPI_Status;
}
if((local_time() - *tickstart) >= *Timeout) // if time is out
{
MEMSPI_Deselect(hmemspi);
return HAL_TIMEOUT; // set timeout
}
}
MEMSPI_Deselect(hmemspi);
MEMSPI_Update_Timeout_Variables(Timeout, tickstart);
return HAL_OK; // if all ok return HAL_OK
}
/**
* @brief Update Timeout variables.
* @param Timeout Указатель на переменную содержащию значение таймаута
* @param tickstart Указатель на переменную содержащию начальное кол-во тиков.
*/
void MEMSPI_Update_Timeout_Variables(uint32_t *Timeout, uint32_t *tickstart)
{
uint32_t timeoutcnt = local_time() - *tickstart; // update timeout
*Timeout -= timeoutcnt;
*tickstart += timeoutcnt;
}

View File

@@ -0,0 +1,314 @@
/**
******************************************************************************
* @file memspi_core.c
* @brief Реализация работы с командами для внешней памяти
******************************************************************************
* @details
Модуль реализует функции для работы с FLASH/EEPROM по SPI
на уровне отдельных команд:
- MEMSPI_CMD_Read_Status_Register Отправка комманды Read Status Register / Read Status Register 2 (0x05h / 0x35h)
- MEMSPI_CMD_Write_Status_Register Отправка комманды Write Status Register (0x01h)
- MEMSPI_CMD_Write_Enable Отправка комманды Write Enable (0x06h)
- MEMSPI_CMD_Read_Data Отправка комманды Read Data (0x03h)
- MEMSPI_CMD_EEPROM_Write Отправка комманды Write (eeprom) (0x02h)
- MEMSPI_CMD_FLASH_Page_Program Отправка комманды Page Program (flash) (0x02h)
- MEMSPI_CMD_FLASH_Erase_Sector Отправка комманды Erase Sector (flash) (0x20h)
- MEMSPI_CMD_Read_JEDEC_ID Отправка комманды Read JEDEC ID (0x4Bh)
- MEMSPI_CMD_Read_Device_ID Отправка комманды Read Manufacture / Device Id (0x90)
******************************************************************************/
#include "memspi_core.h"
//-------------------------------------------------------------
//----------------------COMMAND FUNCTIONS----------------------
/**
* @brief Send command to read Status Register.
* @param hmemspi Указатель на хендл внешней памяти.
* @param RequestedBits Какие биты запросить.
* @param EndCMD Завершать комманду или нет. (очистка Chip Selected пина)
* @param Timeout Время, за которое должно быть осуществлено чтение.
* @return Заполняет Status Register в hmemspi.
* @note Всего есть две комманды: на запрос верхнего или нижниго байта.
* Функция в соответствии с RequestedBits определяет какой байт запросить, или два байта сразу.
*/
HAL_StatusTypeDef MEMSPI_CMD_Read_Status_Register(MEMSPI_HandleTypeDef *hmemspi, uint16_t RequestedBits, uint8_t EndCMD, uint32_t Timeout)
{
HAL_StatusTypeDef SPI_RES;
uint8_t command[2];
uint8_t *pSRPtr = 0;
uint8_t size = 1;
if(RequestedBits >> 8) // if its high byte of status register
{
#ifdef MEMSPI_READ_STATUS_REG_2
command[0] = MEMSPI_READ_STATUS_REG_2;
pSRPtr = (uint8_t *)(&hmemspi->SR) + 1; // set pointer to HI byte of SR register
size = 1;
if(RequestedBits & 0xFF) // if low byte also requester
{
size = 2; // set size to 2 bytes
command[1] = MEMSPI_READ_STATUS_REG;
}
#endif // MEMSPI_READ_STATUS_REG_2
}
else // of its low byte of status register
{
command[0] = MEMSPI_READ_STATUS_REG;
pSRPtr = (uint8_t *)(&hmemspi->SR); // set pointer to LO byte of SR register
size = 1;
}
MEMSPI_Select(hmemspi);
SPI_RES = MEMSPI_SPI_Transmit(hmemspi, command, 1, Timeout); // send insctruction to read SR
SPI_RES = MEMSPI_SPI_Receive(hmemspi, pSRPtr, 1, Timeout); // receive response
if(size > 1) // if 2 bytes are requested
{
MEMSPI_Deselect(hmemspi);
MEMSPI_Select(hmemspi);
SPI_RES = MEMSPI_SPI_Transmit(hmemspi, command+1, 1, Timeout); // send insctruction to read SR
SPI_RES = MEMSPI_SPI_Receive(hmemspi, pSRPtr-1, 1, Timeout); // receive response
MEMSPI_Deselect(hmemspi);
}
if(EndCMD)
MEMSPI_Deselect(hmemspi);
return SPI_RES;
}
/**
* @brief Send command to write bits in Status Register.
* @param hmemspi Указатель на хендл внешней памяти.
* @param WrittenBits Какие биты запросить.
* @param Timeout Время, за которое должно быть осуществлена запись.
* @note Данная команда посылает биты, как сдвинутые на 2 вправо. Т.е. 0-й бит в комманде - 2-й бит BP0.
Но биты указываются в также как они расположены и регистре. Функция сама выполняет сдвиг.
*/
HAL_StatusTypeDef MEMSPI_CMD_Write_Status_Register(MEMSPI_HandleTypeDef *hmemspi, uint16_t WrittenBits, uint32_t Timeout)
{
HAL_StatusTypeDef SPI_RES;
uint8_t command[3];
uint8_t size;
command[0] = MEMSPI_WRITE_STATUS_REG;
command[1] = WrittenBits;
command[2] = WrittenBits >> 8;
size = 3;
MEMSPI_Select(hmemspi);
SPI_RES = MEMSPI_SPI_Transmit(hmemspi, command, size, Timeout);
MEMSPI_Deselect(hmemspi);
return SPI_RES;
}
/**
* @brief Send command to set Write Enable Latch (WEL) in Status Register.
* @param hmemspi Указатель на хендл внешней памяти.
* @param Timeout Время, за которое должно быть осуществлена запись.
* @note Разрешает запись в FLASH, путем высталения WEL в Status Register
*/
HAL_StatusTypeDef MEMSPI_CMD_Write_Enable(MEMSPI_HandleTypeDef *hmemspi, uint32_t Timeout)
{
HAL_StatusTypeDef SPI_RES;
uint8_t command[1];
command[0] = MEMSPI_WRITE_ENABLE;
MEMSPI_Select(hmemspi);
SPI_RES = MEMSPI_SPI_Transmit(hmemspi, command, 1, Timeout);
MEMSPI_Deselect(hmemspi);
return SPI_RES;
}
/**
* @brief Send command to read data from FLASH/EEPROM.
* @param hmemspi Указатель на хендл внешней памяти.
* @param FLASH_Address Адресс откуда начинать считывание.
* @param pBuff Куда записывать данные из FLASH.
* @param Size Сколько байтов считывать.
* @param Timeout Время, за которое должно быть осуществлено чтение.
* @return pBuff.
*/
HAL_StatusTypeDef MEMSPI_CMD_Read_Data(MEMSPI_HandleTypeDef *hmemspi, uint32_t FLASH_Address, uint8_t *pBuff, uint16_t Size, uint32_t Timeout)
{
HAL_StatusTypeDef SPI_RES;
uint8_t command[4];
uint8_t response[2] = {0};
command[0] = MEMSPI_READ_DATA;
command[1] = FLASH_Address >> 16 & 0xFF;
command[2] = FLASH_Address >> 8 & 0xFF;
command[3] = FLASH_Address & 0xFF;
MEMSPI_Select(hmemspi);
SPI_RES = MEMSPI_SPI_Transmit(hmemspi, command, 4, Timeout);
SPI_RES = MEMSPI_SPI_Receive(hmemspi, pBuff, Size, Timeout);
MEMSPI_Deselect(hmemspi);
return SPI_RES;
}
/**
* @brief Send command to write eeprom.
* @param hmemspi Указатель на хендл внешней памяти.
* @param FLASH_Address Адресс куда начинать записывать.
* @param pData Откуда брать данные для записи в FLASH.
* @param Size Сколько байтов записать.
* @param Timeout Время, за которое должна быть осуществлена запись.
* @note Рзамер данных для записи в EEPROM без ограничений.
*/
HAL_StatusTypeDef MEMSPI_CMD_EEPROM_Write(MEMSPI_HandleTypeDef *hmemspi, uint32_t FLASH_Address, uint8_t *pData, uint16_t Size, uint32_t Timeout)
{
HAL_StatusTypeDef SPI_RES;
// 1 command byte + 3 address bytes + 256 data bytes
uint8_t command[1+3+MEMSPI_PAGE_SIZE];
FLASH_Address = FLASH_Address & 0xFFFFFF;
command[0] = MEMSPI_WRITE_EEPROM;
command[1] = FLASH_Address >> 16 & 0xFF;
command[2] = FLASH_Address >> 8 & 0xFF;
command[3] = FLASH_Address & 0xFF;
MEMSPI_Select(hmemspi);
SPI_RES = MEMSPI_SPI_Transmit(hmemspi, command, 4, Timeout); // send insctruction to write
SPI_RES = MEMSPI_SPI_Transmit(hmemspi, pData, Size, Timeout); // send data to write
MEMSPI_Deselect(hmemspi);
return SPI_RES;
}
/**
* @brief Send command to page program in FLASH.
* @param hmemspi Указатель на хендл внешней памяти.
* @param FLASH_Address Адресс куда начинать записывать.
* @param pData Откуда брать данные для записи в FLASH.
* @param Size Сколько байтов записать.
* @param Timeout Время, за которое должна быть осуществлена запись.
* @note Программирование FLASH только в пределах одной страницы.
* Т.е. если запись с 0x0, то не больше 256 байт. Если с 0ч40, то не больше 192 байт.
*/
HAL_StatusTypeDef MEMSPI_CMD_FLASH_Page_Program(MEMSPI_HandleTypeDef *hmemspi, uint32_t FLASH_Address, uint8_t *pData, uint16_t Size, uint32_t Timeout)
{
HAL_StatusTypeDef SPI_RES;
// 1 command byte + 3 address bytes + 256 data bytes
uint8_t command[1+3+MEMSPI_PAGE_SIZE];
FLASH_Address = FLASH_Address & 0xFFFFFF;
command[0] = MEMSPI_PAGE_PROGRAM;
command[1] = FLASH_Address >> 16 & 0xFF;
command[2] = FLASH_Address >> 8 & 0xFF;
command[3] = FLASH_Address & 0xFF;
// check if flash range is placed at one page
if((FLASH_Address/MEMSPI_PAGE_SIZE) != ((FLASH_Address+Size-1)/MEMSPI_PAGE_SIZE)) // if page of first byte isnt equal page of last byte
return HAL_ERROR; // return error
MEMSPI_Select(hmemspi);
SPI_RES = MEMSPI_SPI_Transmit(hmemspi, command, 4, Timeout); // send insctruction to write
SPI_RES = MEMSPI_SPI_Transmit(hmemspi, pData, Size, Timeout); // send data to write
MEMSPI_Deselect(hmemspi);
return SPI_RES;
}
/**
* @brief Send command to erase sector.
* @param hmemspi Указатель на хендл внешней памяти.
* @param FLASH_Address Адресс где надо данные стереть.
* @param Timeout Время, за которое должна быть осуществлена очистка.
* @note Микросхема вроде сама высчитывает какой сектор ерейзнуть, в соответствии с заданным адресом.
*/
HAL_StatusTypeDef MEMSPI_CMD_FLASH_Erase_Sector(MEMSPI_HandleTypeDef *hmemspi, uint32_t FLASH_Address, uint32_t Timeout)
{
HAL_StatusTypeDef SPI_RES;
uint8_t command[4];
uint8_t response[8];
FLASH_Address = FLASH_Address & 0xFFFFFF;
command[0] = MEMSPI_ERASE_SECTOR;
command[1] = FLASH_Address >> 16;
command[2] = FLASH_Address >> 8;
command[3] = FLASH_Address;
MEMSPI_Select(hmemspi);
SPI_RES = MEMSPI_SPI_Transmit(hmemspi, command, 4, Timeout);
MEMSPI_Deselect(hmemspi);
return SPI_RES;
}
/**
* @brief Send command to read JEDEC ID.
* @param hmemspi Указатель на хендл внешней памяти.
* @param Timeout Время, за которое должно быть осуществлено чтение.
* @return JEDEC ID микросхемы.
*/
uint32_t MEMSPI_CMD_Read_JEDEC_ID(MEMSPI_HandleTypeDef *hmemspi, uint32_t Timeout)
{
HAL_StatusTypeDef SPI_RES;
uint8_t command[1] = {0};
uint8_t receive[4] = {0};
uint32_t return_val;
command[0] = MEMSPI_READ_JEDEC_ID;
MEMSPI_Select(hmemspi);
SPI_RES = MEMSPI_SPI_Transmit(hmemspi, command, 1, Timeout);
SPI_RES = MEMSPI_SPI_Receive(hmemspi, &receive[1], 3, Timeout);
MEMSPI_Deselect(hmemspi);
return_val = (*(uint64_t *)receive);
return __REV(return_val) & 0xFFFFFF;
}
/**
* @brief Send command to read JEDEC ID.
* @param hmemspi Указатель на хендл внешней памяти.
* @param Timeout Время, за которое должно быть осуществлено чтение.
* @return Device ID микросхемы.
*/
uint64_t MEMSPI_CMD_Read_Device_ID(MEMSPI_HandleTypeDef *hmemspi, uint32_t Timeout)
{
HAL_StatusTypeDef SPI_RES;
uint8_t command[1] = {0};
uint8_t receive[8] = {0};
uint64_t return_val_LO;
uint64_t return_val_HI;
command[0] = MEMSPI_READ_UNIQUE_ID;
MEMSPI_Select(hmemspi);
SPI_RES = MEMSPI_SPI_Transmit(hmemspi, command, 1, Timeout);
SPI_RES = MEMSPI_SPI_Receive(hmemspi, receive, 8, Timeout);
MEMSPI_Deselect(hmemspi);
return_val_LO = (*(uint64_t *)receive) >> 32;
return_val_HI = (*(uint64_t *)receive) & 0xFFFFFFFF;
return ((uint64_t)__REV(return_val_HI) << 32) | __REV(return_val_LO);
}
/**
* @brief Send command to fast read data from FLASH.
* @param hmemspi Указатель на хендл внешней памяти.
* @param FLASH_Address Адресс откуда начинать считывание.
* @param pBuff Куда записывать данные из FLASH.
* @param Size Сколько байтов считывать.
* @param Timeout Время, за которое должно быть осуществлено чтение.
* @note Данная функция предполагает отправку одного dummy байта после адресса, но у меня поч не работает пока :(
*/
HAL_StatusTypeDef MEMSPI_CMD_Fast_Read(MEMSPI_HandleTypeDef *hmemspi, uint32_t FLASH_Address, uint8_t *pBuff, uint16_t Size, uint32_t Timeout)
{
HAL_StatusTypeDef SPI_RES;
uint8_t command[5] = {0};
uint8_t response[2] = {0};
command[0] = MEMSPI_READ_DATA;
command[1] = FLASH_Address >> 16 & 0xFF;
command[2] = FLASH_Address >> 8 & 0xFF;
command[3] = FLASH_Address & 0xFF;
command[4] = 0xFF;
MEMSPI_Select(hmemspi);
SPI_RES = MEMSPI_SPI_Transmit(hmemspi, command, 5, Timeout);
SPI_RES = MEMSPI_SPI_Receive(hmemspi, pBuff, Size, Timeout);
MEMSPI_Deselect(hmemspi);
return SPI_RES;
}
//-------------------------------------------------------------

View File

@@ -0,0 +1,70 @@
/**
******************************************************************************
* @file memspi_config.h
* @brief Конфигурационные параметры для общения с FLASH/EEPROM по SPI
******************************************************************************
@addtogroup MEMSPI_CONFIGS Memory SPI configs
@ingroup MEMSPI
@brief Конфигурация библиотеки
@{
******************************************************************************
* @details
Файл содержит настройки для работы Memory SPI:
Размеры страниц и секторов внешней памяти
Включение двойного статус регистра (если соответствующая микросхема)
- Низкоуровневые функции для приема/передачи по SPI и выбора чипа ChipSelect
******************************************************************************/
#ifndef __SPI_MEMORY_CONFIG_H_
#define __SPI_MEMORY_CONFIG_H_
#include "stm32f1xx_hal.h"
/////////////////////////---USER SETTINGS---/////////////////////////
//#define MEMSPI_SEPARATED_STATUS_REGISTER ///< Использовать двойной статус регистр
#define MEMSPI_SECTOR_SIZE (0x1000) ///< Размер одного сектора памяти (4096 байт)
#define MEMSPI_PAGE_SIZE (0x100) ///< Размер одной страницы памяти (256 байт)
/** @defgroup MEMSPI_LowLevel Config Hardware SPI
* @brief Конфигурация функций для доступа к SPI
* @{
*/
/**
* @brief SPI Transmit.
* @param _hmemspi_ Указатель на хендл внешней памяти.
* @param _data_ Указатель на данные для отправки.
* @param _size_ Размер данных для отправки.
* @param _timeout_ Время, за которое должна быть осуществлена отправка.
* @note Здесь вызывается только функция HAL, и ничего больше.
*/
#define MEMSPI_SPI_Transmit(_hmemspi_, _data_, _size_, _timeout_) HAL_SPI_Transmit(_hmemspi_->hspi, _data_, _size_, _timeout_)
/**
* @brief SPI Receive.
* @param _hmemspi_ Указатель на хендл внешней памяти.
* @param _data_ Указатель на буффер для прниема данных.
* @param _size_ Размер данных для приема.
* @param _timeout_ Время, за которое должен быть осуществлен прием.
* @note Здесь вызывается только функция HAL, и ничего больше.
*/
#define MEMSPI_SPI_Receive(_hmemspi_, _data_, _size_, _timeout_) HAL_SPI_Receive(_hmemspi_->hspi, _data_, _size_, _timeout_)
/**
* @brief Select MEMORY chip.
*/
#define MEMSPI_Select(_hmemspi_) (_hmemspi_->CS_GPIOx->BSRR = _hmemspi_->CS_PIN << 16)
/**
* @brief Deselect MEMORY chip.
*/
#define MEMSPI_Deselect(_hmemspi_) (_hmemspi_->CS_GPIOx->BSRR = _hmemspi_->CS_PIN)
/** //MEMSPI_LowLevel
* @}
*/
#endif // __SPI_MEMORY_CONFIG_H_
/** //MEMSPI_CONFIGS
* @}
*/

2990
AllLibs/Modbus/Doc/Doxyfile Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,230 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Modbus: E:/.WORK/STM32/Diod_Test/diode_tester/Core/Modbus/Src/__crc_algs.c Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<script type="text/javascript" src="darkmode_toggle.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">Modbus<span id="projectnumber">&#160;0.3</span>
</div>
<div id="projectbrief">Библиотека Modbus для STM</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.14.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
<script type="text/javascript">
$(function() { codefold.init(); });
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(function(){initNavTree('____crc__algs_8c_source.html','',''); });
</script>
<div id="container">
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">__crc_algs.c</div></div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#include &quot;__crc_algs.h&quot;</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span> </div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span> </div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span>uint32_t CRC_calc;</div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span>uint32_t CRC_ref;</div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span> </div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="comment">//uint16_t CRC_calc;</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="comment">//uint16_t CRC_ref;</span></div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span> </div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span> </div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="comment">// left this global for debug</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span>uint8_t uchCRCHi = 0xFF; </div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span>uint8_t uchCRCLo = 0xFF; </div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="keywordtype">unsigned</span> uIndex; </div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> </div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> </div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span>uint32_t crc32(uint8_t *data, uint32_t data_size)</div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span>{</div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> crc32_table[] =</div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span>{</div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> 0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA, 0x076DC419, 0x706AF48F, 0xE963A535, 0x9E6495A3, </div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> 0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988, 0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, 0x90BF1D91, </div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> 0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE, 0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7, </div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> 0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC, 0x14015C4F, 0x63066CD9, 0xFA0F3D63, 0x8D080DF5, </div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> 0x3B6E20C8, 0x4C69105E, 0xD56041E4, 0xA2677172, 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B, </div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> 0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940, 0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59, </div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> 0x26D930AC, 0x51DE003A, 0xC8D75180, 0xBFD06116, 0x21B4F4B5, 0x56B3C423, 0xCFBA9599, 0xB8BDA50F, </div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> 0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924, 0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D, </div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> 0x76DC4190, 0x01DB7106, 0x98D220BC, 0xEFD5102A, 0x71B18589, 0x06B6B51F, 0x9FBFE4A5, 0xE8B8D433, </div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> 0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818, 0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01, </div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> 0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E, 0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457, </div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> 0x65B0D9C6, 0x12B7E950, 0x8BBEB8EA, 0xFCB9887C, 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65, </div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> 0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2, 0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB, </div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> 0x4369E96A, 0x346ED9FC, 0xAD678846, 0xDA60B8D0, 0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9, </div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> 0x5005713C, 0x270241AA, 0xBE0B1010, 0xC90C2086, 0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F, </div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> 0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4, 0x59B33D17, 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD, </div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> 0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A, 0xEAD54739, 0x9DD277AF, 0x04DB2615, 0x73DC1683, </div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> 0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8, 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1, </div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> 0xF00F9344, 0x8708A3D2, 0x1E01F268, 0x6906C2FE, 0xF762575D, 0x806567CB, 0x196C3671, 0x6E6B06E7, </div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> 0xFED41B76, 0x89D32BE0, 0x10DA7A5A, 0x67DD4ACC, 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5, </div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> 0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252, 0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B, </div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> 0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60, 0xDF60EFC3, 0xA867DF55, 0x316E8EEF, 0x4669BE79, </div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> 0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236, 0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F, </div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> 0xC5BA3BBE, 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04, 0xC2D7FFA7, 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D, </div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> 0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A, 0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713, </div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> 0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38, 0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21, </div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> 0x86D3D2D4, 0xF1D4E242, 0x68DDB3F8, 0x1FDA836E, 0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777, </div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> 0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C, 0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45, </div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> 0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2, 0xA7672661, 0xD06016F7, 0x4969474D, 0x3E6E77DB, </div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> 0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, 0x37D83BF0, 0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9, </div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> 0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6, 0xBAD03605, 0xCDD70693, 0x54DE5729, 0x23D967BF, </div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> 0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94, 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span>}; </div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span><span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> crc = 0xFFFFFFFF;</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <span class="keywordflow">while</span> (data_size--)</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> {</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> crc = (crc &gt;&gt; 8) ^ crc32_table[(crc ^ *data) &amp; 255];</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> data++;</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> }</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> <span class="keywordflow">return</span> crc^0xFFFFFFFF;</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span>}</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> </div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> </div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span>uint16_t crc16(uint8_t *data, uint32_t data_size)</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span>{ </div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> <span class="comment">/*Table of CRC values for high order byte*/</span></div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> <span class="keyword">static</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> auchCRCHi[]=</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> {</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> 0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> 0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> 0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> 0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> 0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> 0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> 0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> 0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> 0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> 0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> 0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> 0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> 0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> 0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> 0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> 0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> };</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> <span class="comment">/*Table of CRC values for low order byte*/</span></div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> <span class="keyword">static</span> <span class="keywordtype">char</span> auchCRCLo[] =</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> {</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> 0x00,0xC0,0xC1,0x01,0xC3,0x03,0x02,0xC2,0xC6,0x06,0x07,0xC7,0x05,0xC5,0xC4,0x04,</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> 0xCC,0x0C,0x0D,0xCD,0x0F,0xCF,0xCE,0x0E,0x0A,0xCA,0xCB,0x0B,0xC9,0x09,0x08,0xC8,</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> 0xD8,0x18,0x19,0xD9,0x1B,0xDB,0xDA,0x1A,0x1E,0xDE,0xDF,0x1F,0xDD,0x1D,0x1C,0xDC,</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> 0x14,0xD4,0xD5,0x15,0xD7,0x17,0x16,0xD6,0xD2,0x12,0x13,0xD3,0x11,0xD1,0xD0,0x10,</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> 0xF0,0x30,0x31,0xF1,0x33,0xF3,0xF2,0x32,0x36,0xF6,0xF7,0x37,0xF5,0x35,0x34,0xF4,</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> 0x3C,0xFC,0xFD,0x3D,0xFF,0x3F,0x3E,0xFE,0xFA,0x3A,0x3B,0xFB,0x39,0xF9,0xF8,0x38,</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> 0x28,0xE8,0xE9,0x29,0xEB,0x2B,0x2A,0xEA,0xEE,0x2E,0x2F,0xEF,0x2D,0xED,0xEC,0x2C,</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> 0xE4,0x24,0x25,0xE5,0x27,0xE7,0xE6,0x26,0x22,0xE2,0xE3,0x23,0xE1,0x21,0x20,0xE0,</div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> 0xA0,0x60,0x61,0xA1,0x63,0xA3,0xA2,0x62,0x66,0xA6,0xA7,0x67,0xA5,0x65,0x64,0xA4,</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> 0x6C,0xAC,0xAD,0x6D,0xAF,0x6F,0x6E,0xAE,0xAA,0x6A,0x6B,0xAB,0x69,0xA9,0xA8,0x68,</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> 0x78,0xB8,0xB9,0x79,0xBB,0x7B,0x7A,0xBA,0xBE,0x7E,0x7F,0xBF,0x7D,0xBD,0xBC,0x7C,</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> 0xB4,0x74,0x75,0xB5,0x77,0xB7,0xB6,0x76,0x72,0xB2,0xB3,0x73,0xB1,0x71,0x70,0xB0,</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> 0x50,0x90,0x91,0x51,0x93,0x53,0x52,0x92,0x96,0x56,0x57,0x97,0x55,0x95,0x94,0x54,</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> 0x9C,0x5C,0x5D,0x9D,0x5F,0x9F,0x9E,0x5E,0x5A,0x9A,0x9B,0x5B,0x99,0x59,0x58,0x98,</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> 0x88,0x48,0x49,0x89,0x4B,0x8B,0x8A,0x4A,0x4E,0x8E,0x8F,0x4F,0x8D,0x4D,0x4C,0x8C,</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> 0x44,0x84,0x85,0x45,0x87,0x47,0x46,0x86,0x82,0x42,0x43,0x83,0x41,0x81,0x80,0x40,</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> };</div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> uchCRCHi = 0xFF; </div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> uchCRCLo = 0xFF; </div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> <span class="comment">/* CRC Generation Function */</span></div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> <span class="keywordflow">while</span>( data_size--) <span class="comment">/* pass through message buffer */</span></div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> {</div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> uIndex = uchCRCHi ^ *data++; <span class="comment">/* calculate the CRC */</span></div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> uchCRCHi = uchCRCLo ^ auchCRCHi[uIndex];</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> uchCRCLo = auchCRCLo[uIndex];</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> }</div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> <span class="keywordflow">return</span> uchCRCHi | uchCRCLo&lt;&lt;8;</div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span>} </div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a href="dir_413f4e031a85da0d68269c6fd2f76e1c.html">Src</a></li><li class="navelem"><b>__crc_algs.c</b></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,124 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Modbus: E:/.WORK/STM32/Diod_Test/diode_tester/Core/Modbus/Inc/__crc_algs.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<script type="text/javascript" src="darkmode_toggle.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">Modbus<span id="projectnumber">&#160;0.3</span>
</div>
<div id="projectbrief">Библиотека Modbus для STM</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.14.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
<script type="text/javascript">
$(function() { codefold.init(); });
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(function(){initNavTree('____crc__algs_8h_source.html','',''); });
</script>
<div id="container">
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">__crc_algs.h</div></div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#include &quot;<a class="code" href="modbus__config_8h.html">modbus_config.h</a>&quot;</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span> </div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="comment">// extern here to use in bootloader.c</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="keyword">extern</span> uint32_t CRC_calc;</div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="keyword">extern</span> uint32_t CRC_ref;</div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span> </div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span> </div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span>uint16_t crc16(uint8_t *data, uint32_t data_size);</div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span>uint32_t crc32(uint8_t *data, uint32_t data_size);</div>
<div class="ttc" id="amodbus__config_8h_html"><div class="ttname"><a href="modbus__config_8h.html">modbus_config.h</a></div><div class="ttdoc">Конфигурационные параметры Modbus устройства</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a href="dir_f93dfce691d792349f1c14ede440e2e6.html">Inc</a></li><li class="navelem"><b>__crc_algs.h</b></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,181 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Modbus: E:/.WORK/STM32/Diod_Test/diode_tester/Core/Modbus/Src/__modbus_compat.c File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<script type="text/javascript" src="darkmode_toggle.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">Modbus<span id="projectnumber">&#160;0.3</span>
</div>
<div id="projectbrief">Библиотека Modbus для STM</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.14.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
<script type="text/javascript">
$(function() { codefold.init(); });
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(function(){initNavTree('____modbus__compat_8c.html','',''); });
</script>
<div id="container">
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">__modbus_compat.c File Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Модуль для совместимости библиотеки MODBUS.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="modbus_8h_source.html">modbus.h</a>&quot;</code><br />
</div><div class="textblock"><div id="dynsection-0" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Include dependency graph for __modbus_compat.c:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="____modbus__compat_8c__incl.png" border="0" usemap="#a_e_1_2_8_w_o_r_k_2_s_t_m32_2_diod___test_2diode__tester_2_core_2_modbus_2_src_2____modbus__compat_8c" loading="lazy" alt=""/></div>
<map name="a_e_1_2_8_w_o_r_k_2_s_t_m32_2_diod___test_2diode__tester_2_core_2_modbus_2_src_2____modbus__compat_8c" id="a_e_1_2_8_w_o_r_k_2_s_t_m32_2_diod___test_2diode__tester_2_core_2_modbus_2_src_2____modbus__compat_8c">
<area shape="rect" title="Модуль для совместимости библиотеки MODBUS." alt="" coords="336,5,556,64"/>
<area shape="rect" href="modbus_8h.html" title="Главный заголовочный файл Modbus библиотеки" alt="" coords="407,112,485,139"/>
<area shape="poly" title=" " alt="" coords="448,64,448,96,443,96,443,64"/>
<area shape="rect" href="rs__message_8h.html" title="Библиотека обмена сообщениями по RS&#45;интерфейсу" alt="" coords="110,261,213,288"/>
<area shape="poly" title=" " alt="" coords="406,129,311,129,193,137,135,144,84,155,42,170,16,188,9,200,9,210,15,219,25,228,57,244,96,257,94,262,55,249,22,233,10,223,4,211,4,198,12,185,40,165,82,150,134,139,192,131,311,124,406,123"/>
<area shape="rect" href="modbus__master_8h.html" title="Главный заголовочный файл Modbus библиотеки" alt="" coords="26,187,151,213"/>
<area shape="poly" title=" " alt="" coords="407,137,166,186,165,180,406,132"/>
<area shape="rect" href="modbus__slave_8h.html" title="Главный заголовочный файл Modbus библиотеки" alt="" coords="176,187,292,213"/>
<area shape="poly" title=" " alt="" coords="410,142,286,184,285,179,408,137"/>
<area shape="rect" href="modbus__coils_8h.html" title="Работа с коилами Modbus." alt="" coords="316,187,429,213"/>
<area shape="poly" title=" " alt="" coords="435,141,398,177,394,174,431,137"/>
<area shape="rect" href="modbus__holdregs_8h.html" title="Работа с регистрами хранения Modbus." alt="" coords="453,187,588,213"/>
<area shape="poly" title=" " alt="" coords="461,137,499,174,495,178,457,141"/>
<area shape="rect" href="modbus__inputregs_8h.html" title="Работа с входными регистрами Modbus." alt="" coords="458,261,596,288"/>
<area shape="poly" title=" " alt="" coords="486,127,516,133,548,144,577,161,601,185,607,205,599,224,584,240,565,255,562,250,580,237,595,221,601,204,597,188,574,165,545,149,514,139,485,133"/>
<area shape="rect" href="modbus__devid_8h.html" title="Идентификаторы устройства Modbus." alt="" coords="621,261,737,288"/>
<area shape="poly" title=" " alt="" coords="486,130,553,148,589,164,622,185,650,214,669,246,665,248,646,217,619,189,586,169,551,153,485,135"/>
<area shape="rect" href="modbus__diag_8h.html" title="Диагностика устройства Modbus." alt="" coords="762,261,871,288"/>
<area shape="poly" title=" " alt="" coords="486,133,564,154,653,184,724,217,784,251,781,255,722,222,651,189,563,159,485,138"/>
<area shape="rect" href="modbus__core_8h.html" title="Ядро Modbus протокола &#45; определения и структуры" alt="" coords="419,336,529,363"/>
<area shape="poly" title=" " alt="" coords="215,285,405,329,404,335,213,291"/>
<area shape="rect" href="modbus__config_8h.html" title="Конфигурационные параметры Modbus устройства" alt="" coords="244,485,365,512"/>
<area shape="poly" title=" " alt="" coords="418,355,384,360,348,370,315,387,289,412,283,426,283,440,292,471,287,472,278,441,278,424,285,409,312,383,346,365,383,355,418,349"/>
<area shape="rect" href="modbus__data_8h.html" title="Определения структур данных Modbus устройства" alt="" coords="419,411,529,437"/>
<area shape="poly" title=" " alt="" coords="476,363,476,395,471,395,471,363"/>
<area shape="rect" href="____crc__algs_8h_source.html" title=" " alt="" coords="299,411,395,437"/>
<area shape="poly" title=" " alt="" coords="453,366,384,405,381,400,450,361"/>
<area shape="rect" href="____modbus__compat_8h.html" title="Модуль для совместимости библиотеки MODBUS." alt="" coords="553,411,696,437"/>
<area shape="poly" title=" " alt="" coords="494,361,578,402,576,406,492,366"/>
<area shape="rect" title=" " alt="" coords="246,560,363,587"/>
<area shape="poly" title=" " alt="" coords="307,513,307,544,302,544,302,513"/>
<area shape="rect" title=" " alt="" coords="442,485,506,512"/>
<area shape="poly" title=" " alt="" coords="476,438,476,470,471,470,471,438"/>
<area shape="poly" title=" " alt="" coords="342,439,322,473,317,471,337,437"/>
<area shape="poly" title=" " alt="" coords="604,412,520,372,522,367,606,408"/>
<area shape="poly" title=" " alt="" coords="103,212,140,248,136,252,99,216"/>
<area shape="poly" title=" " alt="" coords="223,216,187,252,183,248,219,212"/>
<area shape="poly" title=" " alt="" coords="383,212,459,322,454,325,379,215"/>
<area shape="poly" title=" " alt="" coords="496,216,469,235,448,263,444,277,446,292,458,322,453,324,441,294,439,277,443,260,466,232,493,212"/>
<area shape="poly" title=" " alt="" coords="520,290,494,325,490,322,516,287"/>
<area shape="poly" title=" " alt="" coords="644,291,525,333,523,328,642,286"/>
<area shape="poly" title=" " alt="" coords="762,290,545,336,544,331,761,285"/>
</map>
</div>
</div>
<p><a href="____modbus__compat_8c_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 id="header-details" class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Модуль для совместимости библиотеки MODBUS. </p>
<p class="definition">Definition in file <a class="el" href="____modbus__compat_8c_source.html">__modbus_compat.c</a>.</p>
</div></div><!-- contents -->
</div><!-- doc-content -->
<div id="page-nav" class="page-nav-panel">
<div id="page-nav-resize-handle"></div>
<div id="page-nav-tree">
<div id="page-nav-contents">
</div><!-- page-nav-contents -->
</div><!-- page-nav-tree -->
</div><!-- page-nav -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a href="dir_413f4e031a85da0d68269c6fd2f76e1c.html">Src</a></li><li class="navelem"><a href="____modbus__compat_8c.html">__modbus_compat.c</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,44 @@
<map id="E:/.WORK/STM32/Diod_Test/diode_tester/Core/Modbus/Src/__modbus_compat.c" name="E:/.WORK/STM32/Diod_Test/diode_tester/Core/Modbus/Src/__modbus_compat.c">
<area shape="rect" id="Node000001" title="Модуль для совместимости библиотеки MODBUS." alt="" coords="336,5,556,64"/>
<area shape="rect" id="Node000002" href="$modbus_8h.html" title="Главный заголовочный файл Modbus библиотеки" alt="" coords="407,112,485,139"/>
<area shape="poly" id="edge1_Node000001_Node000002" title=" " alt="" coords="448,64,448,96,443,96,443,64"/>
<area shape="rect" id="Node000003" href="$rs__message_8h.html" title="Библиотека обмена сообщениями по RS&#45;интерфейсу" alt="" coords="110,261,213,288"/>
<area shape="poly" id="edge2_Node000002_Node000003" title=" " alt="" coords="406,129,311,129,193,137,135,144,84,155,42,170,16,188,9,200,9,210,15,219,25,228,57,244,96,257,94,262,55,249,22,233,10,223,4,211,4,198,12,185,40,165,82,150,134,139,192,131,311,124,406,123"/>
<area shape="rect" id="Node000011" href="$modbus__master_8h.html" title="Главный заголовочный файл Modbus библиотеки" alt="" coords="26,187,151,213"/>
<area shape="poly" id="edge12_Node000002_Node000011" title=" " alt="" coords="407,137,166,186,165,180,406,132"/>
<area shape="rect" id="Node000012" href="$modbus__slave_8h.html" title="Главный заголовочный файл Modbus библиотеки" alt="" coords="176,187,292,213"/>
<area shape="poly" id="edge14_Node000002_Node000012" title=" " alt="" coords="410,142,286,184,285,179,408,137"/>
<area shape="rect" id="Node000013" href="$modbus__coils_8h.html" title="Работа с коилами Modbus." alt="" coords="316,187,429,213"/>
<area shape="poly" id="edge16_Node000002_Node000013" title=" " alt="" coords="435,141,398,177,394,174,431,137"/>
<area shape="rect" id="Node000014" href="$modbus__holdregs_8h.html" title="Работа с регистрами хранения Modbus." alt="" coords="453,187,588,213"/>
<area shape="poly" id="edge18_Node000002_Node000014" title=" " alt="" coords="461,137,499,174,495,178,457,141"/>
<area shape="rect" id="Node000015" href="$modbus__inputregs_8h.html" title="Работа с входными регистрами Modbus." alt="" coords="458,261,596,288"/>
<area shape="poly" id="edge20_Node000002_Node000015" title=" " alt="" coords="486,127,516,133,548,144,577,161,601,185,607,205,599,224,584,240,565,255,562,250,580,237,595,221,601,204,597,188,574,165,545,149,514,139,485,133"/>
<area shape="rect" id="Node000016" href="$modbus__devid_8h.html" title="Идентификаторы устройства Modbus." alt="" coords="621,261,737,288"/>
<area shape="poly" id="edge22_Node000002_Node000016" title=" " alt="" coords="486,130,553,148,589,164,622,185,650,214,669,246,665,248,646,217,619,189,586,169,551,153,485,135"/>
<area shape="rect" id="Node000017" href="$modbus__diag_8h.html" title="Диагностика устройства Modbus." alt="" coords="762,261,871,288"/>
<area shape="poly" id="edge24_Node000002_Node000017" title=" " alt="" coords="486,133,564,154,653,184,724,217,784,251,781,255,722,222,651,189,563,159,485,138"/>
<area shape="rect" id="Node000004" href="$modbus__core_8h.html" title="Ядро Modbus протокола &#45; определения и структуры" alt="" coords="419,336,529,363"/>
<area shape="poly" id="edge3_Node000003_Node000004" title=" " alt="" coords="215,285,405,329,404,335,213,291"/>
<area shape="rect" id="Node000005" href="$modbus__config_8h.html" title="Конфигурационные параметры Modbus устройства" alt="" coords="244,485,365,512"/>
<area shape="poly" id="edge4_Node000004_Node000005" title=" " alt="" coords="418,355,384,360,348,370,315,387,289,412,283,426,283,440,292,471,287,472,278,441,278,424,285,409,312,383,346,365,383,355,418,349"/>
<area shape="rect" id="Node000007" href="$modbus__data_8h.html" title="Определения структур данных Modbus устройства" alt="" coords="419,411,529,437"/>
<area shape="poly" id="edge6_Node000004_Node000007" title=" " alt="" coords="476,363,476,395,471,395,471,363"/>
<area shape="rect" id="Node000009" href="$____crc__algs_8h_source.html" title=" " alt="" coords="299,411,395,437"/>
<area shape="poly" id="edge8_Node000004_Node000009" title=" " alt="" coords="453,366,384,405,381,400,450,361"/>
<area shape="rect" id="Node000010" href="$____modbus__compat_8h.html" title="Модуль для совместимости библиотеки MODBUS." alt="" coords="553,411,696,437"/>
<area shape="poly" id="edge10_Node000004_Node000010" title=" " alt="" coords="494,361,578,402,576,406,492,366"/>
<area shape="rect" id="Node000006" title=" " alt="" coords="246,560,363,587"/>
<area shape="poly" id="edge5_Node000005_Node000006" title=" " alt="" coords="307,513,307,544,302,544,302,513"/>
<area shape="rect" id="Node000008" title=" " alt="" coords="442,485,506,512"/>
<area shape="poly" id="edge7_Node000007_Node000008" title=" " alt="" coords="476,438,476,470,471,470,471,438"/>
<area shape="poly" id="edge9_Node000009_Node000005" title=" " alt="" coords="342,439,322,473,317,471,337,437"/>
<area shape="poly" id="edge11_Node000010_Node000004" title=" " alt="" coords="604,412,520,372,522,367,606,408"/>
<area shape="poly" id="edge13_Node000011_Node000003" title=" " alt="" coords="103,212,140,248,136,252,99,216"/>
<area shape="poly" id="edge15_Node000012_Node000003" title=" " alt="" coords="223,216,187,252,183,248,219,212"/>
<area shape="poly" id="edge17_Node000013_Node000004" title=" " alt="" coords="383,212,459,322,454,325,379,215"/>
<area shape="poly" id="edge19_Node000014_Node000004" title=" " alt="" coords="496,216,469,235,448,263,444,277,446,292,458,322,453,324,441,294,439,277,443,260,466,232,493,212"/>
<area shape="poly" id="edge21_Node000015_Node000004" title=" " alt="" coords="520,290,494,325,490,322,516,287"/>
<area shape="poly" id="edge23_Node000016_Node000004" title=" " alt="" coords="644,291,525,333,523,328,642,286"/>
<area shape="poly" id="edge25_Node000017_Node000004" title=" " alt="" coords="762,290,545,336,544,331,761,285"/>
</map>

View File

@@ -0,0 +1 @@
a9128b92dc4d763c9f2168a392071e2b

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

View File

@@ -0,0 +1,122 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Modbus: E:/.WORK/STM32/Diod_Test/diode_tester/Core/Modbus/Src/__modbus_compat.c Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<script type="text/javascript" src="darkmode_toggle.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">Modbus<span id="projectnumber">&#160;0.3</span>
</div>
<div id="projectbrief">Библиотека Modbus для STM</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.14.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
<script type="text/javascript">
$(function() { codefold.init(); });
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(function(){initNavTree('____modbus__compat_8c_source.html','',''); });
</script>
<div id="container">
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">__modbus_compat.c</div></div>
</div><!--header-->
<div class="contents">
<a href="____modbus__compat_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/** </span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="comment">*******************************************************************************</span></div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="comment">* @file __modbus_compat.c</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="comment">* @brief Модуль для совместимости библиотеки MODBUS.</span></div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="comment">*******************************************************************************</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="comment">******************************************************************************/</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="preprocessor">#include &quot;<a class="code" href="modbus_8h.html">modbus.h</a>&quot;</span></div>
<div class="ttc" id="amodbus_8h_html"><div class="ttname"><a href="modbus_8h.html">modbus.h</a></div><div class="ttdoc">Главный заголовочный файл Modbus библиотеки</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a href="dir_413f4e031a85da0d68269c6fd2f76e1c.html">Src</a></li><li class="navelem"><a href="____modbus__compat_8c.html">__modbus_compat.c</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,221 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Modbus: E:/.WORK/STM32/Diod_Test/diode_tester/Core/Modbus/Inc/__modbus_compat.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<script type="text/javascript" src="darkmode_toggle.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">Modbus<span id="projectnumber">&#160;0.3</span>
</div>
<div id="projectbrief">Библиотека Modbus для STM</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.14.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
<script type="text/javascript">
$(function() { codefold.init(); });
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(function(){initNavTree('____modbus__compat_8h.html','',''); });
</script>
<div id="container">
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">__modbus_compat.h File Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Модуль для совместимости библиотеки MODBUS.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="modbus__core_8h_source.html">modbus_core.h</a>&quot;</code><br />
</div><div class="textblock"><div id="dynsection-0" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Include dependency graph for __modbus_compat.h:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="____modbus__compat_8h__incl.png" border="0" usemap="#a_e_1_2_8_w_o_r_k_2_s_t_m32_2_diod___test_2diode__tester_2_core_2_modbus_2_inc_2____modbus__compat_8h" loading="lazy" alt=""/></div>
<map name="a_e_1_2_8_w_o_r_k_2_s_t_m32_2_diod___test_2diode__tester_2_core_2_modbus_2_inc_2____modbus__compat_8h" id="a_e_1_2_8_w_o_r_k_2_s_t_m32_2_diod___test_2diode__tester_2_core_2_modbus_2_inc_2____modbus__compat_8h">
<area shape="rect" title="Модуль для совместимости библиотеки MODBUS." alt="" coords="5,5,224,64"/>
<area shape="rect" href="modbus__core_8h.html" title="Ядро Modbus протокола &#45; определения и структуры" alt="" coords="59,112,170,139"/>
<area shape="poly" title=" " alt="" coords="109,64,109,96,103,96,103,64"/>
<area shape="poly" title=" " alt="" coords="118,111,121,79,126,80,124,112"/>
<area shape="rect" href="modbus__config_8h.html" title="Конфигурационные параметры Modbus устройства" alt="" coords="12,261,132,288"/>
<area shape="poly" title=" " alt="" coords="98,141,75,161,57,188,53,202,54,217,62,247,56,248,48,218,48,202,52,186,71,157,94,137"/>
<area shape="rect" href="modbus__data_8h.html" title="Определения структур данных Modbus устройства" alt="" coords="186,187,296,213"/>
<area shape="poly" title=" " alt="" coords="138,137,207,176,205,181,135,142"/>
<area shape="rect" href="____crc__algs_8h_source.html" title=" " alt="" coords="67,187,162,213"/>
<area shape="poly" title=" " alt="" coords="117,139,117,171,112,171,112,139"/>
<area shape="rect" title=" " alt="" coords="13,336,130,363"/>
<area shape="poly" title=" " alt="" coords="74,289,74,320,69,320,69,289"/>
<area shape="rect" title=" " alt="" coords="209,261,273,288"/>
<area shape="poly" title=" " alt="" coords="244,214,244,246,238,246,238,214"/>
<area shape="poly" title=" " alt="" coords="109,215,89,249,85,247,105,213"/>
</map>
</div>
</div><div class="textblock"><div id="dynsection-1" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>This graph shows which files directly or indirectly include this file:</div>
<div id="dynsection-1-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-1-content" class="dyncontent" style="display:none;">
<div class="center"><img src="____modbus__compat_8h__dep__incl.png" border="0" usemap="#a_e_1_2_8_w_o_r_k_2_s_t_m32_2_diod___test_2diode__tester_2_core_2_modbus_2_inc_2____modbus__compat_8hdep" loading="lazy" alt=""/></div>
<map name="a_e_1_2_8_w_o_r_k_2_s_t_m32_2_diod___test_2diode__tester_2_core_2_modbus_2_inc_2____modbus__compat_8hdep" id="a_e_1_2_8_w_o_r_k_2_s_t_m32_2_diod___test_2diode__tester_2_core_2_modbus_2_inc_2____modbus__compat_8hdep">
<area shape="rect" title="Модуль для совместимости библиотеки MODBUS." alt="" coords="782,5,1000,64"/>
<area shape="rect" href="modbus__core_8h.html" title="Ядро Modbus протокола &#45; определения и структуры" alt="" coords="798,112,984,171"/>
<area shape="poly" title=" " alt="" coords="885,80,886,112,880,112,880,80"/>
<area shape="poly" title=" " alt="" coords="897,96,897,64,902,64,903,96"/>
<area shape="rect" href="modbus__coils_8h.html" title="Работа с коилами Modbus." alt="" coords="165,219,353,277"/>
<area shape="poly" title=" " alt="" coords="783,160,599,187,390,221,354,228,353,223,389,216,598,181,783,155"/>
<area shape="rect" href="____modbus__data_8c_source.html" title=" " alt="" coords="539,325,718,384"/>
<area shape="poly" title=" " alt="" coords="784,156,750,166,716,179,685,197,659,220,643,244,634,272,629,325,624,325,629,271,638,242,654,217,682,193,714,174,748,160,783,151"/>
<area shape="rect" href="modbus__devid_8h.html" title="Идентификаторы устройства Modbus." alt="" coords="402,219,594,277"/>
<area shape="poly" title=" " alt="" coords="783,174,595,224,594,219,782,169"/>
<area shape="rect" href="modbus__diag_8h.html" title="Диагностика устройства Modbus." alt="" coords="1378,219,1564,277"/>
<area shape="poly" title=" " alt="" coords="1000,160,1378,227,1377,233,1000,165"/>
<area shape="rect" href="modbus__holdregs_8h.html" title="Работа с регистрами хранения Modbus." alt="" coords="669,219,879,277"/>
<area shape="poly" title=" " alt="" coords="850,183,808,220,804,216,846,179"/>
<area shape="rect" href="modbus__inputregs_8h.html" title="Работа с входными регистрами Modbus." alt="" coords="903,219,1117,277"/>
<area shape="poly" title=" " alt="" coords="937,179,979,216,976,220,933,183"/>
<area shape="rect" href="rs__message_8h.html" title="Библиотека обмена сообщениями по RS&#45;интерфейсу" alt="" coords="1647,219,1826,277"/>
<area shape="poly" title=" " alt="" coords="1000,150,1263,177,1577,216,1647,227,1646,233,1576,221,1262,182,999,155"/>
<area shape="rect" href="modbus__core_8c.html" title="Базовая реализация ядра Modbus." alt="" coords="1850,219,2039,277"/>
<area shape="poly" title=" " alt="" coords="1000,143,1163,149,1373,162,1605,184,1838,216,1850,218,1849,224,1837,221,1605,189,1372,167,1163,154,1000,148"/>
<area shape="rect" href="modbus_8h.html" title="Главный заголовочный файл Modbus библиотеки" alt="" coords="1333,432,1494,491"/>
<area shape="poly" title=" " alt="" coords="248,293,243,316,243,340,248,363,260,382,274,389,304,395,405,408,713,430,1062,446,1333,455,1333,460,1061,451,713,435,405,414,304,401,272,394,256,386,243,365,238,340,238,315,242,292"/>
<area shape="rect" href="modbus__coils_8c.html" title="Реализация работы с коилами Modbus." alt="" coords="5,325,196,384"/>
<area shape="poly" title=" " alt="" coords="205,288,145,327,142,323,202,284"/>
<area shape="poly" title=" " alt="" coords="369,278,540,326,538,331,368,283"/>
<area shape="rect" href="____modbus__compat_8c.html" title="Модуль для совместимости библиотеки MODBUS." alt="" coords="986,539,1207,597"/>
<area shape="poly" title=" " alt="" coords="1319,497,1185,541,1183,536,1317,491"/>
<area shape="rect" href="modbus_8c.html" title="Модуль для реализации MODBUS." alt="" coords="1230,539,1392,597"/>
<area shape="poly" title=" " alt="" coords="1377,504,1341,540,1337,536,1373,500"/>
<area shape="rect" href="modbus__master_8c.html" title="Модуль для реализации мастера MODBUS." alt="" coords="1416,539,1620,597"/>
<area shape="poly" title=" " alt="" coords="1455,500,1491,536,1488,540,1451,504"/>
<area shape="rect" href="modbus__slave_8c.html" title="Модуль для реализации слейв MODBUS." alt="" coords="1643,539,1838,597"/>
<area shape="poly" title=" " alt="" coords="1510,490,1651,535,1650,541,1508,496"/>
<area shape="poly" title=" " alt="" coords="498,293,504,341,514,363,529,382,545,391,571,400,650,415,754,427,875,437,1128,450,1333,456,1333,461,1128,455,874,442,753,432,649,420,570,405,543,396,525,386,509,366,499,342,492,294"/>
<area shape="poly" title=" " alt="" coords="547,285,594,323,591,327,544,289"/>
<area shape="rect" href="modbus__devid_8c.html" title="Реализация идентификаторов устройства Modbus." alt="" coords="270,325,464,384"/>
<area shape="poly" title=" " alt="" coords="452,289,404,327,401,323,449,285"/>
<area shape="poly" title=" " alt="" coords="1505,289,1517,311,1526,335,1528,361,1522,385,1501,412,1475,433,1472,429,1497,409,1517,383,1523,360,1521,337,1512,313,1500,291"/>
<area shape="rect" href="modbus__diag_8c.html" title="Реализация диагностики устройства Modbus." alt="" coords="1320,325,1508,384"/>
<area shape="poly" title=" " alt="" coords="1450,292,1432,326,1427,324,1446,290"/>
<area shape="rect" href="rs__message_8c.html" title="Реализация протоколов обмена по RS/UART." alt="" coords="1582,325,1763,384"/>
<area shape="poly" title=" " alt="" coords="1541,282,1618,322,1616,327,1538,287"/>
<area shape="poly" title=" " alt="" coords="766,293,764,340,770,363,782,382,809,396,860,408,1010,429,1184,444,1333,453,1333,459,1183,449,1010,434,859,413,807,401,779,386,765,365,759,341,760,292"/>
<area shape="poly" title=" " alt="" coords="723,289,670,327,667,323,720,284"/>
<area shape="poly" title=" " alt="" coords="1133,270,1198,291,1259,323,1276,337,1287,351,1296,366,1310,382,1371,429,1368,434,1307,386,1292,369,1282,355,1272,341,1256,328,1196,296,1131,275"/>
<area shape="poly" title=" " alt="" coords="891,284,719,331,717,326,890,279"/>
<area shape="rect" href="modbus__holdregs_8c.html" title="Реализация работы с регистрами хранения Modbus." alt="" coords="793,325,1005,384"/>
<area shape="poly" title=" " alt="" coords="970,290,931,327,928,323,967,286"/>
<area shape="rect" href="modbus__inputregs_8c.html" title="Реализация работы с входными регистрами Modbus." alt="" coords="1030,325,1246,384"/>
<area shape="poly" title=" " alt="" coords="1058,285,1105,323,1101,327,1055,289"/>
<area shape="poly" title=" " alt="" coords="1768,289,1780,313,1788,338,1788,363,1777,386,1759,401,1731,414,1659,435,1575,449,1495,457,1495,452,1574,443,1657,430,1729,409,1756,397,1773,382,1783,362,1782,339,1775,315,1764,292"/>
<area shape="poly" title=" " alt="" coords="1713,292,1692,326,1688,324,1709,289"/>
<area shape="rect" href="modbus__master_8h.html" title="Главный заголовочный файл Modbus библиотеки" alt="" coords="1838,325,2040,384"/>
<area shape="poly" title=" " alt="" coords="1806,282,1885,322,1882,327,1804,287"/>
<area shape="rect" href="modbus__slave_8h.html" title="Главный заголовочный файл Modbus библиотеки" alt="" coords="2064,325,2257,384"/>
<area shape="poly" title=" " alt="" coords="1841,275,2053,323,2065,326,2063,331,2052,328,1840,281"/>
<area shape="poly" title=" " alt="" coords="1824,386,1820,387,1495,449,1494,443,1819,381,1823,380"/>
<area shape="poly" title=" " alt="" coords="2050,387,1893,413,1740,432,1495,457,1495,451,1739,427,1892,407,2049,382"/>
</map>
</div>
</div>
<p><a href="____modbus__compat_8h_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 id="header-details" class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Модуль для совместимости библиотеки MODBUS. </p>
<p>Файл содержит API старых функций, а также заглушки для отключенных модулей: </p>
<p class="definition">Definition in file <a class="el" href="____modbus__compat_8h_source.html">__modbus_compat.h</a>.</p>
</div></div><!-- contents -->
</div><!-- doc-content -->
<div id="page-nav" class="page-nav-panel">
<div id="page-nav-resize-handle"></div>
<div id="page-nav-tree">
<div id="page-nav-contents">
</div><!-- page-nav-contents -->
</div><!-- page-nav-tree -->
</div><!-- page-nav -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a href="dir_f93dfce691d792349f1c14ede440e2e6.html">Inc</a></li><li class="navelem"><a href="____modbus__compat_8h.html">__modbus_compat.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,60 @@
<map id="E:/.WORK/STM32/Diod_Test/diode_tester/Core/Modbus/Inc/__modbus_compat.h" name="E:/.WORK/STM32/Diod_Test/diode_tester/Core/Modbus/Inc/__modbus_compat.h">
<area shape="rect" id="Node000001" title="Модуль для совместимости библиотеки MODBUS." alt="" coords="782,5,1000,64"/>
<area shape="rect" id="Node000002" href="$modbus__core_8h.html" title="Ядро Modbus протокола &#45; определения и структуры" alt="" coords="798,112,984,171"/>
<area shape="poly" id="edge1_Node000001_Node000002" title=" " alt="" coords="885,80,886,112,880,112,880,80"/>
<area shape="poly" id="edge2_Node000002_Node000001" title=" " alt="" coords="897,96,897,64,902,64,903,96"/>
<area shape="rect" id="Node000003" href="$modbus__coils_8h.html" title="Работа с коилами Modbus." alt="" coords="165,219,353,277"/>
<area shape="poly" id="edge3_Node000002_Node000003" title=" " alt="" coords="783,160,599,187,390,221,354,228,353,223,389,216,598,181,783,155"/>
<area shape="rect" id="Node000010" href="$____modbus__data_8c_source.html" title=" " alt="" coords="539,325,718,384"/>
<area shape="poly" id="edge35_Node000002_Node000010" title=" " alt="" coords="784,156,750,166,716,179,685,197,659,220,643,244,634,272,629,325,624,325,629,271,638,242,654,217,682,193,714,174,748,160,783,151"/>
<area shape="rect" id="Node000011" href="$modbus__devid_8h.html" title="Идентификаторы устройства Modbus." alt="" coords="402,219,594,277"/>
<area shape="poly" id="edge11_Node000002_Node000011" title=" " alt="" coords="783,174,595,224,594,219,782,169"/>
<area shape="rect" id="Node000013" href="$modbus__diag_8h.html" title="Диагностика устройства Modbus." alt="" coords="1378,219,1564,277"/>
<area shape="poly" id="edge15_Node000002_Node000013" title=" " alt="" coords="1000,160,1378,227,1377,233,1000,165"/>
<area shape="rect" id="Node000016" href="$modbus__holdregs_8h.html" title="Работа с регистрами хранения Modbus." alt="" coords="669,219,879,277"/>
<area shape="poly" id="edge19_Node000002_Node000016" title=" " alt="" coords="850,183,808,220,804,216,846,179"/>
<area shape="rect" id="Node000017" href="$modbus__inputregs_8h.html" title="Работа с входными регистрами Modbus." alt="" coords="903,219,1117,277"/>
<area shape="poly" id="edge22_Node000002_Node000017" title=" " alt="" coords="937,179,979,216,976,220,933,183"/>
<area shape="rect" id="Node000020" href="$rs__message_8h.html" title="Библиотека обмена сообщениями по RS&#45;интерфейсу" alt="" coords="1647,219,1826,277"/>
<area shape="poly" id="edge27_Node000002_Node000020" title=" " alt="" coords="1000,150,1263,177,1577,216,1647,227,1646,233,1576,221,1262,182,999,155"/>
<area shape="rect" id="Node000023" href="$modbus__core_8c.html" title="Базовая реализация ядра Modbus." alt="" coords="1850,219,2039,277"/>
<area shape="poly" id="edge34_Node000002_Node000023" title=" " alt="" coords="1000,143,1163,149,1373,162,1605,184,1838,216,1850,218,1849,224,1837,221,1605,189,1372,167,1163,154,1000,148"/>
<area shape="rect" id="Node000004" href="$modbus_8h.html" title="Главный заголовочный файл Modbus библиотеки" alt="" coords="1333,432,1494,491"/>
<area shape="poly" id="edge4_Node000003_Node000004" title=" " alt="" coords="248,293,243,316,243,340,248,363,260,382,274,389,304,395,405,408,713,430,1062,446,1333,455,1333,460,1061,451,713,435,405,414,304,401,272,394,256,386,243,365,238,340,238,315,242,292"/>
<area shape="rect" id="Node000009" href="$modbus__coils_8c.html" title="Реализация работы с коилами Modbus." alt="" coords="5,325,196,384"/>
<area shape="poly" id="edge9_Node000003_Node000009" title=" " alt="" coords="205,288,145,327,142,323,202,284"/>
<area shape="poly" id="edge10_Node000003_Node000010" title=" " alt="" coords="369,278,540,326,538,331,368,283"/>
<area shape="rect" id="Node000005" href="$____modbus__compat_8c.html" title="Модуль для совместимости библиотеки MODBUS." alt="" coords="986,539,1207,597"/>
<area shape="poly" id="edge5_Node000004_Node000005" title=" " alt="" coords="1319,497,1185,541,1183,536,1317,491"/>
<area shape="rect" id="Node000006" href="$modbus_8c.html" title="Модуль для реализации MODBUS." alt="" coords="1230,539,1392,597"/>
<area shape="poly" id="edge6_Node000004_Node000006" title=" " alt="" coords="1377,504,1341,540,1337,536,1373,500"/>
<area shape="rect" id="Node000007" href="$modbus__master_8c.html" title="Модуль для реализации мастера MODBUS." alt="" coords="1416,539,1620,597"/>
<area shape="poly" id="edge7_Node000004_Node000007" title=" " alt="" coords="1455,500,1491,536,1488,540,1451,504"/>
<area shape="rect" id="Node000008" href="$modbus__slave_8c.html" title="Модуль для реализации слейв MODBUS." alt="" coords="1643,539,1838,597"/>
<area shape="poly" id="edge8_Node000004_Node000008" title=" " alt="" coords="1510,490,1651,535,1650,541,1508,496"/>
<area shape="poly" id="edge12_Node000011_Node000004" title=" " alt="" coords="498,293,504,341,514,363,529,382,545,391,571,400,650,415,754,427,875,437,1128,450,1333,456,1333,461,1128,455,874,442,753,432,649,420,570,405,543,396,525,386,509,366,499,342,492,294"/>
<area shape="poly" id="edge14_Node000011_Node000010" title=" " alt="" coords="547,285,594,323,591,327,544,289"/>
<area shape="rect" id="Node000012" href="$modbus__devid_8c.html" title="Реализация идентификаторов устройства Modbus." alt="" coords="270,325,464,384"/>
<area shape="poly" id="edge13_Node000011_Node000012" title=" " alt="" coords="452,289,404,327,401,323,449,285"/>
<area shape="poly" id="edge16_Node000013_Node000004" title=" " alt="" coords="1505,289,1517,311,1526,335,1528,361,1522,385,1501,412,1475,433,1472,429,1497,409,1517,383,1523,360,1521,337,1512,313,1500,291"/>
<area shape="rect" id="Node000014" href="$modbus__diag_8c.html" title="Реализация диагностики устройства Modbus." alt="" coords="1320,325,1508,384"/>
<area shape="poly" id="edge17_Node000013_Node000014" title=" " alt="" coords="1450,292,1432,326,1427,324,1446,290"/>
<area shape="rect" id="Node000015" href="$rs__message_8c.html" title="Реализация протоколов обмена по RS/UART." alt="" coords="1582,325,1763,384"/>
<area shape="poly" id="edge18_Node000013_Node000015" title=" " alt="" coords="1541,282,1618,322,1616,327,1538,287"/>
<area shape="poly" id="edge20_Node000016_Node000004" title=" " alt="" coords="766,293,764,340,770,363,782,382,809,396,860,408,1010,429,1184,444,1333,453,1333,459,1183,449,1010,434,859,413,807,401,779,386,765,365,759,341,760,292"/>
<area shape="poly" id="edge21_Node000016_Node000010" title=" " alt="" coords="723,289,670,327,667,323,720,284"/>
<area shape="poly" id="edge23_Node000017_Node000004" title=" " alt="" coords="1133,270,1198,291,1259,323,1276,337,1287,351,1296,366,1310,382,1371,429,1368,434,1307,386,1292,369,1282,355,1272,341,1256,328,1196,296,1131,275"/>
<area shape="poly" id="edge26_Node000017_Node000010" title=" " alt="" coords="891,284,719,331,717,326,890,279"/>
<area shape="rect" id="Node000018" href="$modbus__holdregs_8c.html" title="Реализация работы с регистрами хранения Modbus." alt="" coords="793,325,1005,384"/>
<area shape="poly" id="edge24_Node000017_Node000018" title=" " alt="" coords="970,290,931,327,928,323,967,286"/>
<area shape="rect" id="Node000019" href="$modbus__inputregs_8c.html" title="Реализация работы с входными регистрами Modbus." alt="" coords="1030,325,1246,384"/>
<area shape="poly" id="edge25_Node000017_Node000019" title=" " alt="" coords="1058,285,1105,323,1101,327,1055,289"/>
<area shape="poly" id="edge28_Node000020_Node000004" title=" " alt="" coords="1768,289,1780,313,1788,338,1788,363,1777,386,1759,401,1731,414,1659,435,1575,449,1495,457,1495,452,1574,443,1657,430,1729,409,1756,397,1773,382,1783,362,1782,339,1775,315,1764,292"/>
<area shape="poly" id="edge33_Node000020_Node000015" title=" " alt="" coords="1713,292,1692,326,1688,324,1709,289"/>
<area shape="rect" id="Node000021" href="$modbus__master_8h.html" title="Главный заголовочный файл Modbus библиотеки" alt="" coords="1838,325,2040,384"/>
<area shape="poly" id="edge29_Node000020_Node000021" title=" " alt="" coords="1806,282,1885,322,1882,327,1804,287"/>
<area shape="rect" id="Node000022" href="$modbus__slave_8h.html" title="Главный заголовочный файл Modbus библиотеки" alt="" coords="2064,325,2257,384"/>
<area shape="poly" id="edge31_Node000020_Node000022" title=" " alt="" coords="1841,275,2053,323,2065,326,2063,331,2052,328,1840,281"/>
<area shape="poly" id="edge30_Node000021_Node000004" title=" " alt="" coords="1824,386,1820,387,1495,449,1494,443,1819,381,1823,380"/>
<area shape="poly" id="edge32_Node000022_Node000004" title=" " alt="" coords="2050,387,1893,413,1740,432,1495,457,1495,451,1739,427,1892,407,2049,382"/>
</map>

View File

@@ -0,0 +1 @@
308a206011ad75e5c989afb65f84574d

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

View File

@@ -0,0 +1,17 @@
<map id="E:/.WORK/STM32/Diod_Test/diode_tester/Core/Modbus/Inc/__modbus_compat.h" name="E:/.WORK/STM32/Diod_Test/diode_tester/Core/Modbus/Inc/__modbus_compat.h">
<area shape="rect" id="Node000001" title="Модуль для совместимости библиотеки MODBUS." alt="" coords="5,5,224,64"/>
<area shape="rect" id="Node000002" href="$modbus__core_8h.html" title="Ядро Modbus протокола &#45; определения и структуры" alt="" coords="59,112,170,139"/>
<area shape="poly" id="edge1_Node000001_Node000002" title=" " alt="" coords="109,64,109,96,103,96,103,64"/>
<area shape="poly" id="edge8_Node000002_Node000001" title=" " alt="" coords="118,111,121,79,126,80,124,112"/>
<area shape="rect" id="Node000003" href="$modbus__config_8h.html" title="Конфигурационные параметры Modbus устройства" alt="" coords="12,261,132,288"/>
<area shape="poly" id="edge2_Node000002_Node000003" title=" " alt="" coords="98,141,75,161,57,188,53,202,54,217,62,247,56,248,48,218,48,202,52,186,71,157,94,137"/>
<area shape="rect" id="Node000005" href="$modbus__data_8h.html" title="Определения структур данных Modbus устройства" alt="" coords="186,187,296,213"/>
<area shape="poly" id="edge4_Node000002_Node000005" title=" " alt="" coords="138,137,207,176,205,181,135,142"/>
<area shape="rect" id="Node000007" href="$____crc__algs_8h_source.html" title=" " alt="" coords="67,187,162,213"/>
<area shape="poly" id="edge6_Node000002_Node000007" title=" " alt="" coords="117,139,117,171,112,171,112,139"/>
<area shape="rect" id="Node000004" title=" " alt="" coords="13,336,130,363"/>
<area shape="poly" id="edge3_Node000003_Node000004" title=" " alt="" coords="74,289,74,320,69,320,69,289"/>
<area shape="rect" id="Node000006" title=" " alt="" coords="209,261,273,288"/>
<area shape="poly" id="edge5_Node000005_Node000006" title=" " alt="" coords="244,214,244,246,238,246,238,214"/>
<area shape="poly" id="edge7_Node000007_Node000003" title=" " alt="" coords="109,215,89,249,85,247,105,213"/>
</map>

View File

@@ -0,0 +1 @@
3d13cadb157c4fa28d4d6da84c8387e8

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

View File

@@ -0,0 +1,233 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Modbus: E:/.WORK/STM32/Diod_Test/diode_tester/Core/Modbus/Inc/__modbus_compat.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<script type="text/javascript" src="darkmode_toggle.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">Modbus<span id="projectnumber">&#160;0.3</span>
</div>
<div id="projectbrief">Библиотека Modbus для STM</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.14.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
<script type="text/javascript">
$(function() { codefold.init(); });
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(function(){initNavTree('____modbus__compat_8h_source.html','',''); });
</script>
<div id="container">
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">__modbus_compat.h</div></div>
</div><!--header-->
<div class="contents">
<a href="____modbus__compat_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/** </span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="comment">*******************************************************************************</span></div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="comment">* @file __modbus_compat.h</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="comment">* @brief Модуль для совместимости библиотеки MODBUS.</span></div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="comment">*******************************************************************************</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="comment">* @details Файл содержит API старых функций, а также заглушки для отключенных модулей:</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="comment">******************************************************************************/</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="preprocessor">#include &quot;<a class="code" href="modbus__core_8h.html">modbus_core.h</a>&quot;</span></div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span> </div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="comment"></span> </div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="comment">/** @addtogroup MODBUS_LEGACY_API Legacy API </span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="comment"> * @ingroup MODBUS_FUNCTIONS</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="comment"> * @brief Старые API функций, сохранённые для обратной совместимости.</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="comment"> * @note Не используйте эти функции в новом коде. Они могут быть удалены в будущих версиях.</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="comment"> * Вместо них используйте функции из основных групп MODBUS API.</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="comment"> * @{</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="comment"> */</span></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> </div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> </div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="comment"></span> </div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="comment">/** MODBUS_LEGACY_API</span></div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="comment"> * @}</span></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="comment"> */</span></div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="comment"></span> </div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="comment">/** @cond Заглушки отключенных модулей */</span></div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> </div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="preprocessor">#ifndef MODBUS_ENABLE_COILS</span></div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="preprocessor"> #define MB_Coil_Write_Global(Addr, WriteVal) ET_ILLEGAL_FUNCTION</span></div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><span class="preprocessor"> #define MB_Coil_Read_Global(Addr, Exception) 0</span></div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="preprocessor"> #define MB_Process_Read_Coils(modbus_msg) 0</span></div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="preprocessor"> #define MB_Process_Write_Single_Coil(modbus_msg) 0</span></div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span><span class="preprocessor"> #define MB_Process_Write_Miltuple_Coils(modbus_msg) 0</span></div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> </div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span><span class="preprocessor">#ifndef MODBUS_ENABLE_HOLDINGS</span></div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span><span class="preprocessor"> #define MB_Holding_Write_Global(Addr, WriteVal) ET_ILLEGAL_FUNCTION</span></div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span><span class="preprocessor"> #define MB_Holding_Read_Global(Addr, Exception) 0</span></div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span><span class="preprocessor"> #define MB_Process_Read_Hold_Regs(modbus_msg) 0</span></div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span><span class="preprocessor"> #define MB_Process_Write_Single_Reg(modbus_msg) 0</span></div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span><span class="preprocessor"> #define MB_Process_Write_Miltuple_Regs(modbus_msg) 0</span></div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> </div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span><span class="preprocessor">#ifndef MODBUS_ENABLE_INPUTS</span></div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span><span class="preprocessor"> #define MB_Input_Write_Global(Addr, WriteVal) ET_ILLEGAL_FUNCTION</span></div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span><span class="preprocessor"> #define MB_Input_Read_Global(Addr, Exception) 0</span></div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span><span class="preprocessor"> #define MB_Process_Read_Input_Regs(modbus_msg) 0</span></div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> </div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span><span class="preprocessor">#ifndef MODBUS_ENABLE_DEVICE_IDENTIFICATIONS</span></div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span><span class="preprocessor"> #define MB_WriteSingleObjectToMessage(mbdata, ind, obj) </span></div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span><span class="preprocessor"> #define MB_WriteObjectsToMessage(modbus_msg, maxidofobj) </span></div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span><span class="preprocessor"> #define MB_Process_Read_Device_Identifications(modbus_msg) 0</span></div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span><span class="preprocessor"> #define MB_DeviceInentificationInit() </span></div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> </div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> </div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span><span class="preprocessor">#ifndef MODBUS_ENABLE_DIAGNOSTICS</span></div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span><span class="preprocessor"> #define MB_DiagnosticsInit() </span></div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span><span class="preprocessor"> #define MB_Diagnostics_WriteBit(bit_num, bit_state) 0</span></div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span><span class="preprocessor"> #define MB_Diagnostics_GetBit(bit_num) 0</span></div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span><span class="preprocessor"> #define MB_Process_Diagnostics(modbus_msg) 0</span></div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span><span class="preprocessor"> #define MB_Diagnostics_BusMessageCnt() </span></div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span><span class="preprocessor"> #define MB_Diagnostics_CommunicationErrorCnt() </span></div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span><span class="preprocessor"> #define MB_Diagnostics_ExceptionErrorCnt() </span></div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span><span class="preprocessor"> #define MB_Diagnostics_CharacterOverrunCnt() </span></div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span><span class="preprocessor"> #define MB_Diagnostics_SlaveMessageCnt() </span></div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span><span class="preprocessor"> #define MB_Diagnostics_SlaveNoResponseCnt() </span></div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span><span class="preprocessor"> #define MB_Diagnostics_SlaveNAKCnt() </span></div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span><span class="preprocessor"> #define MB_Diagnostics_SlaveBusyCnt() </span></div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span><span class="preprocessor"> #define MB_GetDeviceMode(void) MODBUS_NORMAL_MODE</span></div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> </div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> </div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> </div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span><span class="preprocessor">#ifndef MODBUS_ENABLE_MASTER</span></div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span><span class="preprocessor"> #define MB_RespGet_RegisterValue(modbus_msg, reg_addr, reg_value) 0</span></div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span><span class="preprocessor"> #define MB_RespGet_CoilState(modbus_msg, coil_addr, coil_state) 0</span></div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span><span class="preprocessor"> #define MB_RespGet_NumberOfObjects(modbus_msg) 0</span></div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span><span class="preprocessor"> #define MB_RespGet_ObjectById(modbus_msg, obj_id, obj_data, obj_length) 0</span></div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span><span class="preprocessor"> #define MB_RespGet_ObjectByIndex(modbus_msg, index, obj_id, obj_data, obj_length) 0</span></div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span><span class="preprocessor"> #define MB_RespGet_Diagnostic(modbus_msg, data) 0</span></div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span><span class="preprocessor"> #define MB_REQUEST_READ_COILS(slave_addr, start_addr, quantity) {0}</span></div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span><span class="preprocessor"> #define MB_REQUEST_READ_DISCRETE_INPUTS(slave_addr, start_addr, quantity) {0}</span></div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span><span class="preprocessor"> #define MB_REQUEST_READ_HOLDING_REGS(slave_addr, start_addr, quantity) {0}</span></div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span><span class="preprocessor"> #define MB_REQUEST_READ_INPUT_REGS(slave_addr, start_addr, quantity) {0}</span></div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span><span class="preprocessor"> #define MB_REQUEST_WRITE_SINGLE_COIL(slave_addr, coil_addr, value) {0}</span></div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span><span class="preprocessor"> #define MB_REQUEST_WRITE_SINGLE_REG(slave_addr, reg_addr, value) {0}</span></div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span><span class="preprocessor"> #define MB_REQUEST_WRITE_MULTIPLE_COILS(slave_addr, start_addr, quantity, coils_data) {0}</span></div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span><span class="preprocessor"> #define MB_REQUEST_WRITE_MULTIPLE_REGS(slave_addr, start_addr, quantity, regs_data) {0}</span></div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span><span class="preprocessor"> #define MB_REQUEST_DIAGNOSTIC_QUERY(slave_addr, sub_function, data) {0}</span></div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span><span class="preprocessor"> #define MB_REQUEST_RETURN_QUERY_DATA(slave_addr) {0}</span></div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span><span class="preprocessor"> #define MB_REQUEST_RESTART_COMMUNICATIONS(slave_addr, data) {0}</span></div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span><span class="preprocessor"> #define MB_REQUEST_RETURN_DIAGNOSTIC_REGISTER(slave_addr) {0}</span></div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span><span class="preprocessor"> #define MB_REQUEST_FORCE_LISTEN_ONLY_MODE(slave_addr) {0}</span></div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span><span class="preprocessor"> #define MB_REQUEST_CLEAR_COUNTERS_AND_DIAGNOSTIC_REGISTER(slave_addr) {0}</span></div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span><span class="preprocessor"> #define MB_REQUEST_RETURN_BUS_MESSAGE_COUNT(slave_addr) {0}</span></div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span><span class="preprocessor"> #define MB_REQUEST_RETURN_BUS_COMMUNICATION_ERROR_COUNT(slave_addr) {0}</span></div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span><span class="preprocessor"> #define MB_REQUEST_RETURN_SLAVE_EXCEPTION_ERROR_COUNT(slave_addr) {0}</span></div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span><span class="preprocessor"> #define MB_REQUEST_RETURN_SLAVE_MESSAGE_COUNT(slave_addr) {0}</span></div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span><span class="preprocessor"> #define MB_REQUEST_RETURN_SLAVE_NO_RESPONSE_COUNT(slave_addr) {0}</span></div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span><span class="preprocessor"> #define MB_REQUEST_RETURN_SLAVE_NAK_COUNT(slave_addr) {0}</span></div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span><span class="preprocessor"> #define MB_REQUEST_RETURN_SLAVE_BUSY_COUNT(slave_addr) {0}</span></div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span><span class="preprocessor"> #define MB_REQUEST_RETURN_BUS_CHARACTER_OVERRUN_COUNT(slave_addr) {0}</span></div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span><span class="preprocessor"> #define MB_REQUEST_READ_DEVICE_ID_BASIC(slave_addr) {0}</span></div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span><span class="preprocessor"> #define MB_REQUEST_READ_DEVICE_ID_REGULAR(slave_addr) {0}</span></div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span><span class="preprocessor"> #define MB_REQUEST_READ_DEVICE_ID_EXTENDED(slave_addr) {0}</span></div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span><span class="preprocessor"> #define MB_REQUEST_READ_DEVICE_ID_SPECIFIC(slave_addr, object_id) {0}</span></div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span><span class="preprocessor"> #define MB_Master_Collect_Message(hmodbus, modbus_msg, modbus_uart_buff) RS_ERR</span></div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span><span class="preprocessor"> #define MB_Master_Parse_Message(hmodbus, modbus_msg, modbus_uart_buff) RS_ERR</span></div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> </div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span><span class="preprocessor">#ifndef MODBUS_ENABLE_SLAVE</span></div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span><span class="preprocessor"> #define MB_Slave_Response(hmodbus, modbus_msg) RS_ERR</span></div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span><span class="preprocessor"> #define MB_Slave_Collect_Message(hmodbus, modbus_msg, modbus_uart_buff) RS_ERR</span></div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span><span class="preprocessor"> #define MB_Slave_Parse_Message(hmodbus, modbus_msg, modbus_uart_buff) RS_ERR</span></div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span><span class="preprocessor">#endif </span></div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span><span class="comment"></span> </div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span><span class="comment">/** @endcond */</span></div>
<div class="ttc" id="amodbus__core_8h_html"><div class="ttname"><a href="modbus__core_8h.html">modbus_core.h</a></div><div class="ttdoc">Ядро Modbus протокола - определения и структуры</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a href="dir_f93dfce691d792349f1c14ede440e2e6.html">Inc</a></li><li class="navelem"><a href="____modbus__compat_8h.html">__modbus_compat.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,185 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Modbus: E:/.WORK/STM32/Diod_Test/diode_tester/Core/Modbus/__modbus_config.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<script type="text/javascript" src="darkmode_toggle.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">Modbus<span id="projectnumber">&#160;0.3</span>
</div>
<div id="projectbrief">Библиотека Modbus для STM</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.14.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
<script type="text/javascript">
$(function() { codefold.init(); });
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(function(){initNavTree('____modbus__config_8h_source.html','',''); });
</script>
<div id="container">
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">E:/.WORK/STM32/Diod_Test/diode_tester/Core/Modbus/__modbus_config.h</div></div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/**</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="comment">******************************************************************************</span></div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="comment">* @file modbus_config.h</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="comment">* @brief Конфигурационные параметры Modbus устройства</span></div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="comment">******************************************************************************</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="comment">@addtogroup MODBUS_CONFIGS Modbus configs</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="comment">@ingroup MODBUS</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="comment">@brief Конфигурация библиотеки</span></div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="comment">@{</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="comment">******************************************************************************</span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="comment">* @details</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="comment">Файл содержит настройки для работы Modbus:</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="comment">- Подключение библиотек контроллера</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="comment">- ID устройства и таймауты</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="comment">- Строковые идентификаторы (Vendor, Product, Revision)</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="comment">- Настройки периферии (UART, TIMER)</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="comment">- Подключение модулей Modbus</span></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="comment">- Опциональные функции (переключение команд 0x03/0x04)</span></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="comment">******************************************************************************/</span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="preprocessor">#ifndef _MODBUS_CONFIG_H_</span></div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="preprocessor">#define _MODBUS_CONFIG_H_</span></div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="preprocessor">#include &quot;stm32f1xx_hal.h&quot;</span></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> </div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="comment">// Общие параметры</span></div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"><a class="line" href="group___m_o_d_b_u_s___c_o_n_f_i_g_s.html#gab9b18e108b98b225a52c5ccca58e7f2b"> 25</a></span><span class="preprocessor">#define MODBUS_DEVICE_ID 1 </span><span class="comment">///&lt; Адрес устройства в сети Modbus</span></div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"><a class="line" href="group___m_o_d_b_u_s___c_o_n_f_i_g_s.html#ga66f7c59a25c8cca6d5b0991895c26b69"> 26</a></span><span class="preprocessor">#define MODBUS_TIMEOUT 5000 </span><span class="comment">///&lt; Таймаут в тиках таймера</span></div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> </div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="comment">// Строковые идентификаторы устройства</span></div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><span class="preprocessor">#define MODBUS_VENDOR_NAME &quot;NIO-12&quot;</span></div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="preprocessor">#define MODBUS_PRODUCT_CODE &quot;&quot;</span></div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="preprocessor">#define MODBUS_REVISION &quot;&quot;</span></div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span><span class="preprocessor">#define MODBUS_VENDOR_URL &quot;&quot;</span></div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span><span class="preprocessor">#define MODBUS_PRODUCT_NAME &quot;&quot;</span></div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span><span class="preprocessor">#define MODBUS_MODEL_NAME &quot;&quot;</span></div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span><span class="preprocessor">#define MODBUS_USER_APPLICATION_NAME &quot;&quot;</span></div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> </div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"><a class="line" href="group___m_o_d_b_u_s___c_o_n_f_i_g_s.html#ga5c7e9c2180ceac1208f4b791d7b70a0a"> 37</a></span><span class="preprocessor">#define MODBUS_NUMB_OF_USEROBJECTS 0 </span><span class="comment">///&lt; Количество пользовательских объектов</span></div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"><a class="line" href="group___m_o_d_b_u_s___c_o_n_f_i_g_s.html#gac3b162e9af2731742eb3ca8317b37397"> 38</a></span><span class="preprocessor">#define MODBUS_USEROBJECT_0_NAME &quot;&quot; </span><span class="comment">///&lt; Строка пользовательского идентификатора 0. По аналогии можно определить строки до &lt;=128 USEROBJECT</span></div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> </div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span><span class="comment">// Периферия (опционально)</span></div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"><a class="line" href="group___m_o_d_b_u_s___c_o_n_f_i_g_s.html#ga370986118b8227cb6cb33c6b748fbbcb"> 41</a></span><span class="preprocessor">#define mb_huart huart1 </span><span class="comment">///&lt; Удобный дефайн для модбасовского uart</span></div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"><a class="line" href="group___m_o_d_b_u_s___c_o_n_f_i_g_s.html#ga6723a1608946a4f86cd7c9c7e614d04e"> 42</a></span><span class="preprocessor">#define mb_htim htim3 </span><span class="comment">///&lt; Удобный дефайн для модбасовского таймера</span></div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span><span class="comment">//#define RS_EnableReceive() ///&lt; Функция изменения направления передачи на ПРИЕМ для RS-485</span></div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span><span class="comment">//#define RS_EnableTransmit() ///&lt; Функция изменения направления передачи на ПЕРЕДАЧУ для RS-485</span></div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> </div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> </div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span><span class="comment">// Модули modbus</span></div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"><a class="line" href="group___m_o_d_b_u_s___c_o_n_f_i_g_s.html#gae11f9ed7ca5e75d332a1187d2a213f9c"> 48</a></span><span class="preprocessor">#define MODBUS_ENABLE_SLAVE </span><span class="comment">///&lt; Включить обработку СЛЕЙВ режима</span></div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"><a class="line" href="group___m_o_d_b_u_s___c_o_n_f_i_g_s.html#gae4fc30421556e1ee530f13a4b3924f5a"> 49</a></span><span class="preprocessor">#define MODBUS_ENABLE_MASTER </span><span class="comment">///&lt; Включить обработку МАСТЕР режима</span></div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> </div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"><a class="line" href="group___m_o_d_b_u_s___c_o_n_f_i_g_s.html#ga29ce22b8b7f0622bc23171c6ae2dc8d1"> 51</a></span><span class="preprocessor">#define MODBUS_ENABLE_COILS </span><span class="comment">///&lt; Включить обработку коилов</span></div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"><a class="line" href="group___m_o_d_b_u_s___c_o_n_f_i_g_s.html#gaf6a8dfc090b3915d668d78ee19585344"> 52</a></span><span class="preprocessor">#define MODBUS_ENABLE_HOLDINGS </span><span class="comment">///&lt; Включить обработку регистров хранения</span></div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"><a class="line" href="group___m_o_d_b_u_s___c_o_n_f_i_g_s.html#ga23d7073c81bedb80a302140afd0d79c0"> 53</a></span><span class="preprocessor">#define MODBUS_ENABLE_INPUTS </span><span class="comment">///&lt; Включить обработку входных регистров</span></div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"><a class="line" href="group___m_o_d_b_u_s___c_o_n_f_i_g_s.html#ga5bf9f305bd863b10f1b350c5004ddda7"> 54</a></span><span class="preprocessor">#define MODBUS_ENABLE_DEVICE_IDENTIFICATIONS </span><span class="comment">///&lt; Включить обработку идентификаторы устройства</span></div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"><a class="line" href="group___m_o_d_b_u_s___c_o_n_f_i_g_s.html#gae68222efbcf3199706bfaef46af97bf8"> 55</a></span><span class="preprocessor">#define MODBUS_ENABLE_DIAGNOSTICS </span><span class="comment">///&lt; Включить обработку диагностики модбас</span></div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> </div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span><span class="comment">//#define MODBUS_PROTOCOL_TCP ///&lt; Включить TCP-протокол, иначе - RTU</span></div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span><span class="comment"></span> </div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span><span class="comment">/**</span></div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span><span class="comment"> * @brief Поменять комманды 0x03 и 0x04 местами (для LabView терминалки от двигателей)</span></div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span><span class="comment"> * @details Терминалка от двигателей использует для чтения регистров комманду R_HOLD_REGS вместо R_IN_REGS</span></div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span><span class="comment"> * Поэтому чтобы считывать Input Regs - надо поменять их местами.</span></div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span><span class="comment"> */</span></div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span><span class="comment">//#define MODBUS_SWITCH_COMMAND_R_IN_REGS_AND_R_HOLD_REGS</span></div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span><span class="comment"></span> </div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span><span class="comment">/////////////////////////////////////////////////////////////////////</span></div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span><span class="comment">/////////////////////////---CALC DEFINES---//////////////////////////</span></div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> </div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> </div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> </div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span><span class="preprocessor">#endif </span><span class="comment">//_MODBUS_CONFIG_H_</span></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><b>__modbus_config.h</b></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,283 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Modbus: E:/.WORK/STM32/Diod_Test/diode_tester/Core/Modbus/__modbus_data.c Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<script type="text/javascript" src="darkmode_toggle.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">Modbus<span id="projectnumber">&#160;0.3</span>
</div>
<div id="projectbrief">Библиотека Modbus для STM</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.14.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
<script type="text/javascript">
$(function() { codefold.init(); });
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(function(){initNavTree('____modbus__data_8c_source.html','',''); });
</script>
<div id="container">
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">E:/.WORK/STM32/Diod_Test/diode_tester/Core/Modbus/__modbus_data.c</div></div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/**</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="comment">******************************************************************************</span></div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="comment">* @file modbus_data.c</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="comment">* @brief Функции доступа к данным Modbus</span></div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="comment">******************************************************************************</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="comment">* @details</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="comment">Модуль реализует функции валидации адресов и доступа к данным:</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="comment">- Проверка корректности запрашиваемых адресов</span></div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="comment">- Определение указателей на реальные данные в памяти</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="comment">- Поддержка пользовательских массивов регистров и coils</span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="comment"></span> </div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="comment">@section Валидация адресов:</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="comment">- MB_Check_Address_For_Arr() - проверка принадлежности адреса массиву</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="comment">- MB_DefineRegistersAddress() - получение указателя на регистры</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="comment">- MB_DefineCoilsAddress() - получение указателя на coils</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="comment"></span> </div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="comment">******************************************************************************/</span></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> </div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="preprocessor">#include &quot;<a class="code" href="modbus__core_8h.html">modbus_core.h</a>&quot;</span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="preprocessor">#include &quot;<a class="code" href="modbus__coils_8h.html">modbus_coils.h</a>&quot;</span></div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="preprocessor">#include &quot;<a class="code" href="modbus__holdregs_8h.html">modbus_holdregs.h</a>&quot;</span></div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="preprocessor">#include &quot;<a class="code" href="modbus__inputregs_8h.html">modbus_inputregs.h</a>&quot;</span></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="preprocessor">#include &quot;<a class="code" href="modbus__devid_8h.html">modbus_devid.h</a>&quot;</span></div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> </div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="comment"></span> </div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="comment">/** </span></div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="comment"> * @brief Check is address valid for certain array.</span></div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="comment"> * @param Addr Начальный адресс.</span></div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><span class="comment"> * @param Qnt Количество запрашиваемых элементов.</span></div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="comment"> * @param R_ARR_ADDR Начальный адресс массива R_ARR.</span></div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="comment"> * @param R_ARR_NUMB Количество элементов в массиве R_ARR.</span></div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span><span class="comment"> * @return ExceptionCode - ET_ILLEGAL_DATA_ADRESS если адресс недействителен, и ET_NO_ERRORS если все ок.</span></div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span><span class="comment"> *</span></div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span><span class="comment"> * @details Позволяет определить, принадлежит ли адресс Addr массиву R_ARR:</span></div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span><span class="comment"> * Если адресс Addr находится в диапазоне адрессов массива R_ARR, то возвращаем NO_ERROR.</span></div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span><span class="comment"> * Если адресс Addr находится за пределами адрессов массива R_ARR - ET_ILLEGAL_DATA_ADDRESSю.</span></div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span><span class="comment"> */</span></div>
<div class="foldopen" id="foldopen00038" data-start="{" data-end="}">
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"><a class="line" href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga278ca9791c69aef8adeb9e7c4b273c50"> 38</a></span><a class="code hl_enumeration" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga4ade64cb3fabf37f010c1e297489980c">MB_ExceptionTypeDef</a> <a class="code hl_function" href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga278ca9791c69aef8adeb9e7c4b273c50">MB_Check_Address_For_Arr</a>(uint16_t Addr, uint16_t Qnt, uint16_t R_ARR_ADDR, uint16_t R_ARR_NUMB)</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span>{</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> <span class="comment">// if address from this array</span></div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> <span class="keywordflow">if</span>(Addr &gt;= R_ARR_ADDR) </div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> { </div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> <span class="comment">// if quantity too big return error</span></div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> <span class="keywordflow">if</span> ((Addr - R_ARR_ADDR) + Qnt &gt; R_ARR_NUMB) </div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> {</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga4ade64cb3fabf37f010c1e297489980caea312adaf18aa7ebd17aca8883550425">ET_ILLEGAL_DATA_ADDRESS</a>; <span class="comment">// return exception code</span></div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> }</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> <span class="comment">// if all ok - return no errors</span></div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga4ade64cb3fabf37f010c1e297489980caa6980c7a8d924dd975b8fa06a300eb74">ET_NO_ERRORS</a>;</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> }</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> <span class="comment">// if address isnt from this array return error</span></div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> <span class="keywordflow">else</span> </div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga4ade64cb3fabf37f010c1e297489980caea312adaf18aa7ebd17aca8883550425">ET_ILLEGAL_DATA_ADDRESS</a>; <span class="comment">// return exception code </span></div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span>}<span class="comment"></span></div>
</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span><span class="comment">/** </span></div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span><span class="comment"> * @brief Define Address Origin for Input/Holding Registers</span></div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span><span class="comment"> * @param pRegs Указатель на указатель регистров.</span></div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span><span class="comment"> * @param Addr Адрес начального регистра.</span></div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span><span class="comment"> * @param Qnt Количество запрашиваемых регистров.</span></div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span><span class="comment"> * @param WriteFlag Флаг регистр нужны для чтения или записи.</span></div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span><span class="comment"> * @return ExceptionCode Код исключения если есть, и ET_NO_ERRORS если нет.</span></div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span><span class="comment"> *</span></div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span><span class="comment"> * @details Определение адреса начального регистра.</span></div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span><span class="comment"> * @note WriteFlag пока не используется.</span></div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span><span class="comment"> */</span></div>
<div class="foldopen" id="foldopen00066" data-start="{" data-end="}">
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"><a class="line" href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga1e90bb28a4cf997250daab6470d5ffe3"> 66</a></span><a class="code hl_enumeration" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga4ade64cb3fabf37f010c1e297489980c">MB_ExceptionTypeDef</a> <a class="code hl_function" href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga1e90bb28a4cf997250daab6470d5ffe3">MB_DefineRegistersAddress</a>(uint16_t **pRegs, uint16_t Addr, uint16_t Qnt, uint8_t RegisterType)</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span>{ </div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> <span class="comment">/* check quantity error */</span></div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> <span class="keywordflow">if</span> (Qnt &gt; <a class="code hl_define" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gaf55149bc1f05cf18af067a302e31e3f9">DATA_SIZE</a>) </div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> { </div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga4ade64cb3fabf37f010c1e297489980ca47d6168d0692ccb7e09e19084287aba3">ET_ILLEGAL_DATA_VALUE</a>; <span class="comment">// return exception code</span></div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> }</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> </div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> <span class="keywordflow">if</span>(RegisterType == RegisterType_Holding)</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> {</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> <span class="comment">// Default holding registers</span></div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> <span class="keywordflow">if</span>(<a class="code hl_function" href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga278ca9791c69aef8adeb9e7c4b273c50">MB_Check_Address_For_Arr</a>(Addr, Qnt, <a class="code hl_define" href="modbus__data_8h.html#a791dfd31cc06338acdd8a2eb3b7032e6">R_HOLDING_ADDR</a>, <a class="code hl_define" href="modbus__data_8h.html#acf40437374a3227e661db1a18bcef7d7">R_HOLDING_QNT</a>) == <a class="code hl_enumvalue" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga4ade64cb3fabf37f010c1e297489980caa6980c7a8d924dd975b8fa06a300eb74">ET_NO_ERRORS</a>)</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> {</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> *pRegs = <a class="code hl_define" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga938b632e20454741b2a7f97928583776">MB_Set_Register_Ptr</a>(&amp;MB_DATA.HoldRegs, Addr - <a class="code hl_define" href="modbus__data_8h.html#a791dfd31cc06338acdd8a2eb3b7032e6">R_HOLDING_ADDR</a>); <span class="comment">// указатель на выбранный по Addr регистр</span></div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> }</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> <span class="comment">// if address doesnt match any array - return illegal data address response</span></div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> <span class="keywordflow">else</span> </div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> {</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga4ade64cb3fabf37f010c1e297489980caea312adaf18aa7ebd17aca8883550425">ET_ILLEGAL_DATA_ADDRESS</a>;</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> }</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> }</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>(RegisterType == RegisterType_Input)</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> {</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> <span class="comment">// Default input registers</span></div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> <span class="keywordflow">if</span>(<a class="code hl_function" href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga278ca9791c69aef8adeb9e7c4b273c50">MB_Check_Address_For_Arr</a>(Addr, Qnt, <a class="code hl_define" href="modbus__data_8h.html#a22bd1273e01d32f90a279b517d1737b6">R_INPUT_ADDR</a>, <a class="code hl_define" href="modbus__data_8h.html#a97c0b1e20498bca34f6dfe0ac0d97b30">R_INPUT_QNT</a>) == <a class="code hl_enumvalue" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga4ade64cb3fabf37f010c1e297489980caa6980c7a8d924dd975b8fa06a300eb74">ET_NO_ERRORS</a>)</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> {</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> *pRegs = <a class="code hl_define" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga938b632e20454741b2a7f97928583776">MB_Set_Register_Ptr</a>(&amp;MB_DATA.InRegs, Addr - <a class="code hl_define" href="modbus__data_8h.html#a22bd1273e01d32f90a279b517d1737b6">R_INPUT_ADDR</a>); <span class="comment">// указатель на выбранный по Addr регистр</span></div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> }</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> <span class="comment">// if address doesnt match any array - return illegal data address response</span></div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> <span class="keywordflow">else</span> </div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> {</div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga4ade64cb3fabf37f010c1e297489980caea312adaf18aa7ebd17aca8883550425">ET_ILLEGAL_DATA_ADDRESS</a>;</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> }</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> }</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> {</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga4ade64cb3fabf37f010c1e297489980cae81af967ab54904738ee391eb7478ad1">ET_ILLEGAL_FUNCTION</a>;</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> }</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> <span class="comment">// if found requeried array return no err</span></div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga4ade64cb3fabf37f010c1e297489980caa6980c7a8d924dd975b8fa06a300eb74">ET_NO_ERRORS</a>; <span class="comment">// return no errors</span></div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span>}<span class="comment"></span></div>
</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span><span class="comment">/** </span></div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span><span class="comment"> * @brief Define Address Origin for coils</span></div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span><span class="comment"> * @param pCoils Указатель на указатель коилов.</span></div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span><span class="comment"> * @param Addr Адресс начального коила.</span></div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span><span class="comment"> * @param Qnt Количество запрашиваемых коилов.</span></div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span><span class="comment"> * @param start_shift Указатель на переменную содержащую сдвиг внутри регистра для начального коила.</span></div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span><span class="comment"> * @param WriteFlag Флаг коилы нужны для чтения или записи.</span></div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span><span class="comment"> * @return ExceptionCode Код исключения если есть, и ET_NO_ERRORS если нет.</span></div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span><span class="comment"> *</span></div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span><span class="comment"> * @details Определение адреса начального регистра запрашиваемых коилов.</span></div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span><span class="comment"> * @note WriteFlag используется для определния регистров GPIO: ODR или IDR.</span></div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span><span class="comment"> */</span></div>
<div class="foldopen" id="foldopen00119" data-start="{" data-end="}">
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"><a class="line" href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gade717a6829a062a8a198bd933c8b2221"> 119</a></span><a class="code hl_enumeration" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga4ade64cb3fabf37f010c1e297489980c">MB_ExceptionTypeDef</a> <a class="code hl_function" href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gade717a6829a062a8a198bd933c8b2221">MB_DefineCoilsAddress</a>(uint16_t **pCoils, uint16_t Addr, uint16_t Qnt, uint16_t *start_shift, uint8_t WriteFlag)</div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span>{ </div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> <span class="comment">/* check quantity error */</span></div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> <span class="keywordflow">if</span> (Qnt &gt; 2000) </div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> {</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga4ade64cb3fabf37f010c1e297489980ca47d6168d0692ccb7e09e19084287aba3">ET_ILLEGAL_DATA_VALUE</a>; <span class="comment">// return exception code</span></div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> }</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> </div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> <span class="comment">// Default coils</span></div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> <span class="keywordflow">if</span>(<a class="code hl_function" href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga278ca9791c69aef8adeb9e7c4b273c50">MB_Check_Address_For_Arr</a>(Addr, Qnt, <a class="code hl_define" href="modbus__data_8h.html#a5057c379abcae88db30ad094eceb952d">C_COILS_ADDR</a>, <a class="code hl_define" href="modbus__data_8h.html#a438d957058fcf102c66922f0eada3af2">C_COILS_QNT</a>) == <a class="code hl_enumvalue" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga4ade64cb3fabf37f010c1e297489980caa6980c7a8d924dd975b8fa06a300eb74">ET_NO_ERRORS</a>)</div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> {</div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> *pCoils = <a class="code hl_define" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga9648b00f955b16e107b901812031cee3">MB_Set_Coil_Reg_Ptr</a>(&amp;MB_DATA.Coils, Addr - <a class="code hl_define" href="modbus__data_8h.html#a5057c379abcae88db30ad094eceb952d">C_COILS_ADDR</a>); <span class="comment">// указатель на выбранный по Addr массив коилов</span></div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> }</div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> <span class="comment">// if address doesnt match any array - return illegal data address response</span></div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> <span class="keywordflow">else</span> </div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> {</div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga4ade64cb3fabf37f010c1e297489980caea312adaf18aa7ebd17aca8883550425">ET_ILLEGAL_DATA_ADDRESS</a>;</div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> }</div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> </div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> *start_shift = Addr % 16; <span class="comment">// set shift to requested coil</span></div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> <span class="comment">// if found requeried array return no err</span></div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga4ade64cb3fabf37f010c1e297489980caa6980c7a8d924dd975b8fa06a300eb74">ET_NO_ERRORS</a>; <span class="comment">// return no errors</span></div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span>}</div>
</div>
<div class="ttc" id="agroup___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s_html_ga1e90bb28a4cf997250daab6470d5ffe3"><div class="ttname"><a href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga1e90bb28a4cf997250daab6470d5ffe3">MB_DefineRegistersAddress</a></div><div class="ttdeci">MB_ExceptionTypeDef MB_DefineRegistersAddress(uint16_t **pRegs, uint16_t Addr, uint16_t Qnt, uint8_t RegisterType)</div><div class="ttdoc">Define Address Origin for Input/Holding Registers.</div><div class="ttdef"><b>Definition</b> <a href="#l00066">__modbus_data.c:66</a></div></div>
<div class="ttc" id="agroup___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s_html_ga278ca9791c69aef8adeb9e7c4b273c50"><div class="ttname"><a href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga278ca9791c69aef8adeb9e7c4b273c50">MB_Check_Address_For_Arr</a></div><div class="ttdeci">MB_ExceptionTypeDef MB_Check_Address_For_Arr(uint16_t Addr, uint16_t Qnt, uint16_t R_ARR_ADDR, uint16_t R_ARR_NUMB)</div><div class="ttdoc">Check is address valid for certain array.</div><div class="ttdef"><b>Definition</b> <a href="#l00038">__modbus_data.c:38</a></div></div>
<div class="ttc" id="agroup___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s_html_gade717a6829a062a8a198bd933c8b2221"><div class="ttname"><a href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gade717a6829a062a8a198bd933c8b2221">MB_DefineCoilsAddress</a></div><div class="ttdeci">MB_ExceptionTypeDef MB_DefineCoilsAddress(uint16_t **pCoils, uint16_t Addr, uint16_t Qnt, uint16_t *start_shift, uint8_t WriteFlag)</div><div class="ttdoc">Define Address Origin for coils.</div><div class="ttdef"><b>Definition</b> <a href="#l00119">__modbus_data.c:119</a></div></div>
<div class="ttc" id="agroup___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s_html_ga4ade64cb3fabf37f010c1e297489980c"><div class="ttname"><a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga4ade64cb3fabf37f010c1e297489980c">MB_ExceptionTypeDef</a></div><div class="ttdeci">MB_ExceptionTypeDef</div><div class="ttdoc">Enum for modbus exception codes.</div><div class="ttdef"><b>Definition</b> <a href="modbus__core_8h_source.html#l00075">modbus_core.h:76</a></div></div>
<div class="ttc" id="agroup___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s_html_ga938b632e20454741b2a7f97928583776"><div class="ttname"><a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga938b632e20454741b2a7f97928583776">MB_Set_Register_Ptr</a></div><div class="ttdeci">#define MB_Set_Register_Ptr(_parr_, _addr_)</div><div class="ttdoc">Macros to set pointer to register.</div><div class="ttdef"><b>Definition</b> <a href="modbus__core_8h_source.html#l00215">modbus_core.h:215</a></div></div>
<div class="ttc" id="agroup___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s_html_ga9648b00f955b16e107b901812031cee3"><div class="ttname"><a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga9648b00f955b16e107b901812031cee3">MB_Set_Coil_Reg_Ptr</a></div><div class="ttdeci">#define MB_Set_Coil_Reg_Ptr(_parr_, _coil_)</div><div class="ttdoc">Макрос для установки указателя на регистр, содержащий запрашиваемый коил</div><div class="ttdef"><b>Definition</b> <a href="modbus__core_8h_source.html#l00232">modbus_core.h:232</a></div></div>
<div class="ttc" id="agroup___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s_html_gaf55149bc1f05cf18af067a302e31e3f9"><div class="ttname"><a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gaf55149bc1f05cf18af067a302e31e3f9">DATA_SIZE</a></div><div class="ttdeci">#define DATA_SIZE</div><div class="ttdoc">maximum number of data: DWORD (NOT MESSAGE SIZE)</div><div class="ttdef"><b>Definition</b> <a href="modbus__core_8h_source.html#l00053">modbus_core.h:53</a></div></div>
<div class="ttc" id="agroup___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s_html_gga4ade64cb3fabf37f010c1e297489980ca47d6168d0692ccb7e09e19084287aba3"><div class="ttname"><a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga4ade64cb3fabf37f010c1e297489980ca47d6168d0692ccb7e09e19084287aba3">ET_ILLEGAL_DATA_VALUE</a></div><div class="ttdeci">@ ET_ILLEGAL_DATA_VALUE</div><div class="ttdoc">Значение, содержащееся в поле данных запроса, является недопустимой величиной</div><div class="ttdef"><b>Definition</b> <a href="modbus__core_8h_source.html#l00081">modbus_core.h:81</a></div></div>
<div class="ttc" id="agroup___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s_html_gga4ade64cb3fabf37f010c1e297489980caa6980c7a8d924dd975b8fa06a300eb74"><div class="ttname"><a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga4ade64cb3fabf37f010c1e297489980caa6980c7a8d924dd975b8fa06a300eb74">ET_NO_ERRORS</a></div><div class="ttdeci">@ ET_NO_ERRORS</div><div class="ttdoc">no errors</div><div class="ttdef"><b>Definition</b> <a href="modbus__core_8h_source.html#l00078">modbus_core.h:78</a></div></div>
<div class="ttc" id="agroup___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s_html_gga4ade64cb3fabf37f010c1e297489980cae81af967ab54904738ee391eb7478ad1"><div class="ttname"><a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga4ade64cb3fabf37f010c1e297489980cae81af967ab54904738ee391eb7478ad1">ET_ILLEGAL_FUNCTION</a></div><div class="ttdeci">@ ET_ILLEGAL_FUNCTION</div><div class="ttdoc">Принятый код функции не может быть обработан</div><div class="ttdef"><b>Definition</b> <a href="modbus__core_8h_source.html#l00079">modbus_core.h:79</a></div></div>
<div class="ttc" id="agroup___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s_html_gga4ade64cb3fabf37f010c1e297489980caea312adaf18aa7ebd17aca8883550425"><div class="ttname"><a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga4ade64cb3fabf37f010c1e297489980caea312adaf18aa7ebd17aca8883550425">ET_ILLEGAL_DATA_ADDRESS</a></div><div class="ttdeci">@ ET_ILLEGAL_DATA_ADDRESS</div><div class="ttdoc">Адрес данных, указанный в запросе, недоступен</div><div class="ttdef"><b>Definition</b> <a href="modbus__core_8h_source.html#l00080">modbus_core.h:80</a></div></div>
<div class="ttc" id="amodbus__coils_8h_html"><div class="ttname"><a href="modbus__coils_8h.html">modbus_coils.h</a></div><div class="ttdoc">Работа с коилами Modbus.</div></div>
<div class="ttc" id="amodbus__core_8h_html"><div class="ttname"><a href="modbus__core_8h.html">modbus_core.h</a></div><div class="ttdoc">Ядро Modbus протокола - определения и структуры</div></div>
<div class="ttc" id="amodbus__data_8h_html_a22bd1273e01d32f90a279b517d1737b6"><div class="ttname"><a href="modbus__data_8h.html#a22bd1273e01d32f90a279b517d1737b6">R_INPUT_ADDR</a></div><div class="ttdeci">#define R_INPUT_ADDR</div><div class="ttdoc">Начальный адрес входных регистров</div><div class="ttdef"><b>Definition</b> <a href="modbus__data_8h_source.html#l00061">modbus_data.h:61</a></div></div>
<div class="ttc" id="amodbus__data_8h_html_a438d957058fcf102c66922f0eada3af2"><div class="ttname"><a href="modbus__data_8h.html#a438d957058fcf102c66922f0eada3af2">C_COILS_QNT</a></div><div class="ttdeci">#define C_COILS_QNT</div><div class="ttdoc">Количество регистров коилов</div><div class="ttdef"><b>Definition</b> <a href="modbus__data_8h_source.html#l00070">modbus_data.h:70</a></div></div>
<div class="ttc" id="amodbus__data_8h_html_a5057c379abcae88db30ad094eceb952d"><div class="ttname"><a href="modbus__data_8h.html#a5057c379abcae88db30ad094eceb952d">C_COILS_ADDR</a></div><div class="ttdeci">#define C_COILS_ADDR</div><div class="ttdoc">Начальный адрес коилов</div><div class="ttdef"><b>Definition</b> <a href="modbus__data_8h_source.html#l00069">modbus_data.h:69</a></div></div>
<div class="ttc" id="amodbus__data_8h_html_a791dfd31cc06338acdd8a2eb3b7032e6"><div class="ttname"><a href="modbus__data_8h.html#a791dfd31cc06338acdd8a2eb3b7032e6">R_HOLDING_ADDR</a></div><div class="ttdeci">#define R_HOLDING_ADDR</div><div class="ttdoc">Начальный адрес регистров хранения</div><div class="ttdef"><b>Definition</b> <a href="modbus__data_8h_source.html#l00065">modbus_data.h:65</a></div></div>
<div class="ttc" id="amodbus__data_8h_html_a97c0b1e20498bca34f6dfe0ac0d97b30"><div class="ttname"><a href="modbus__data_8h.html#a97c0b1e20498bca34f6dfe0ac0d97b30">R_INPUT_QNT</a></div><div class="ttdeci">#define R_INPUT_QNT</div><div class="ttdoc">Количество входных регистров</div><div class="ttdef"><b>Definition</b> <a href="modbus__data_8h_source.html#l00062">modbus_data.h:62</a></div></div>
<div class="ttc" id="amodbus__data_8h_html_acf40437374a3227e661db1a18bcef7d7"><div class="ttname"><a href="modbus__data_8h.html#acf40437374a3227e661db1a18bcef7d7">R_HOLDING_QNT</a></div><div class="ttdeci">#define R_HOLDING_QNT</div><div class="ttdoc">Количество регистров хранения</div><div class="ttdef"><b>Definition</b> <a href="modbus__data_8h_source.html#l00066">modbus_data.h:66</a></div></div>
<div class="ttc" id="amodbus__devid_8h_html"><div class="ttname"><a href="modbus__devid_8h.html">modbus_devid.h</a></div><div class="ttdoc">Идентификаторы устройства Modbus.</div></div>
<div class="ttc" id="amodbus__holdregs_8h_html"><div class="ttname"><a href="modbus__holdregs_8h.html">modbus_holdregs.h</a></div><div class="ttdoc">Работа с регистрами хранения Modbus.</div></div>
<div class="ttc" id="amodbus__inputregs_8h_html"><div class="ttname"><a href="modbus__inputregs_8h.html">modbus_inputregs.h</a></div><div class="ttdoc">Работа с входными регистрами Modbus.</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><b>__modbus_data.c</b></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,288 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Modbus: E:/.WORK/STM32/Diod_Test/diode_tester/Core/Modbus/__modbus_data.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<script type="text/javascript" src="darkmode_toggle.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">Modbus<span id="projectnumber">&#160;0.3</span>
</div>
<div id="projectbrief">Библиотека Modbus для STM</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.14.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
<script type="text/javascript">
$(function() { codefold.init(); });
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(function(){initNavTree('____modbus__data_8h_source.html','',''); });
</script>
<div id="container">
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">E:/.WORK/STM32/Diod_Test/diode_tester/Core/Modbus/__modbus_data.h</div></div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/**</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="comment">******************************************************************************</span></div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="comment">* @file modbus_data.h</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="comment">* @brief Определения структур данных Modbus устройства</span></div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="comment">******************************************************************************</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="comment">@defgroup MODBUS_DATA Modbus Registers Map</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="comment">@ingroup MODBUS</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="comment">@brief Определение карты регистров и коилов</span></div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="comment">******************************************************************************</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="comment">* @details</span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="comment">Файл содержит объявления структур данных, доступных через Modbus:</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="comment">- Holding Registers (R/W) - регистры хранения</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="comment">- Input Registers (R/O) - входные регистры </span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="comment">- Coils (R/W) - дискретные выходы</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="comment"></span> </div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="comment">@section datinit Базовая настройка под устройство:</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="comment">1. Настроить диапазоны адресов</span></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="comment"> - @ref R_INPUT_ADDR и @ref R_INPUT_QNT для входных регистров</span></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="comment"> - @ref R_HOLDING_ADDR и @ref R_HOLDING_QNT для регистров хр анения</span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="comment"> - @ref C_COILS_ADDR и @ref C_COILS_ADDR для коилов</span></div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="comment">3. Настроить структуры данных:</span></div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="comment"> - @ref MB_DataInRegsTypeDef</span></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="comment"> - @ref MB_DataHoldRegsTypeDef</span></div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="comment"> - @ref MB_DataCoilsTypeDef</span></div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="comment"> </span></div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="comment"></span> </div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="comment">@section datexpert Расширенная настройка под устройство:</span></div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="comment">1. Добавить новый массив с нужными данными.</span></div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><span class="comment">2. Добавить дефайны для определения его начального адреса и количества элементов</span></div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="comment">3. Добавить проверку адресов в MB_DefineRegistersAddress/MB_DefineCoilsAddress. </span></div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="comment"></span> </div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span><span class="comment"> Пример:</span></div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span><span class="comment"> @code</span></div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span><span class="comment"> #define R_USER_ADDR 555</span></div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span><span class="comment"> #define R_USER_QNT 16</span></div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span><span class="comment"> uint16_t user_regs[16];</span></div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span><span class="comment"></span> </div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span><span class="comment"> //...</span></div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span><span class="comment"> else if(MB_Check_Address_For_Arr(Addr, Qnt, R_USER_ADDR, R_USER_QNT) == ET_NO_ERRORS)</span></div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span><span class="comment"> {</span></div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span><span class="comment"> *pRegs = MB_Set_Register_Ptr(&amp;user_regs, Addr-R_USER_ADDR); // ВАЖНО!</span></div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span><span class="comment"> // -R_USER_ADDR нужен чтобы взять адрес относительно начала массива</span></div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span><span class="comment"> }</span></div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span><span class="comment"> else </span></div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span><span class="comment"> {</span></div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span><span class="comment"> return ET_ILLEGAL_DATA_ADDRESS;</span></div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span><span class="comment"> }</span></div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span><span class="comment"> @endcode</span></div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span><span class="comment">******************************************************************************/</span></div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> </div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span><span class="preprocessor">#ifndef _MODBUS_DATA_H_</span></div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span><span class="preprocessor">#define _MODBUS_DATA_H_</span></div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> </div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span><span class="preprocessor">#include &quot;stdint.h&quot;</span></div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> </div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> </div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> </div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span><span class="comment">//--------------SIZES OF DATA---------------</span></div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> </div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span><span class="comment">// DEFINES FOR INPUT REGISTERS ARRAYS</span></div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span><span class="preprocessor">#define R_INPUT_ADDR 0 </span><span class="comment">///&lt; Начальный адрес входных регистров</span></div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span><span class="preprocessor">#define R_INPUT_QNT 16 </span><span class="comment">///&lt; Количество входных регистров</span></div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> </div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span><span class="comment">// DEFINES FOR HOLDING REGISTERS ARRAYS</span></div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span><span class="preprocessor">#define R_HOLDING_ADDR 0 </span><span class="comment">///&lt; Начальный адрес регистров хранения</span></div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span><span class="preprocessor">#define R_HOLDING_QNT 16 </span><span class="comment">///&lt; Количество регистров хранения</span></div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> </div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span><span class="comment">// DEFINES FOR COIL ARRAYS</span></div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span><span class="preprocessor">#define C_COILS_ADDR 0 </span><span class="comment">///&lt; Начальный адрес коилов</span></div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span><span class="preprocessor">#define C_COILS_QNT 16 </span><span class="comment">///&lt; Количество регистров коилов</span></div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> </div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span><span class="comment">//--------------DEFINES FOR REGISTERS---------------</span></div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span><span class="comment">// DEFINES FOR ARRAYS</span><span class="comment"></span></div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span><span class="comment">/** </span></div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span><span class="comment"> * @addtogroup MODBUS_DATA_RERISTERS_DEFINES Registers structures</span></div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span><span class="comment"> * @ingroup MODBUS_DATA</span></div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span><span class="comment"> * @brief Стуруктура регистров (входных и хранения)</span></div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span><span class="comment"> @code </span></div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span><span class="comment"> Для массивов регистров:</span></div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span><span class="comment"> R_&lt;NAME_ARRAY&gt;_ADDR - модбас адресс первого регистра в массиве</span></div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span><span class="comment"> R_&lt;NAME_ARRAY&gt;_QNT - количество регистров в массиве</span></div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span><span class="comment"> @endcode</span></div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span><span class="comment"> * @{</span></div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span><span class="comment"> */</span></div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> </div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> <span class="comment"></span></div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span><span class="comment">/** </span></div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span><span class="comment"> * @brief Регистры хранения</span></div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span><span class="comment"> */</span></div>
<div class="foldopen" id="foldopen00090" data-start="{" data-end="};">
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"><a class="line" href="struct_m_b___data_in_regs_type_def.html"> 90</a></span><span class="keyword">typedef</span> <span class="keyword">struct </span><span class="comment">//MB_DataInRegsTypeDef</span></div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span>{</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> uint16_t in[16];</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span>}<a class="code hl_struct" href="struct_m_b___data_in_regs_type_def.html">MB_DataInRegsTypeDef</a>;</div>
</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> </div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span><span class="comment"></span> </div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span><span class="comment">/** </span></div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span><span class="comment"> * @brief Входные регистры </span></div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span><span class="comment"> */</span></div>
<div class="foldopen" id="foldopen00099" data-start="{" data-end="};">
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"><a class="line" href="struct_m_b___data_hold_regs_type_def.html"> 99</a></span><span class="keyword">typedef</span> <span class="keyword">struct </span><span class="comment">//MB_DataInRegsTypeDef</span></div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span>{</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> uint16_t out[16];</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span>}<a class="code hl_struct" href="struct_m_b___data_hold_regs_type_def.html">MB_DataHoldRegsTypeDef</a>;</div>
</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> </div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span><span class="comment"></span> </div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span><span class="comment">/** MODBUS_DATA_RERISTERS_DEFINES</span></div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span><span class="comment"> * @} </span></div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span><span class="comment"> */</span></div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> </div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span><span class="comment">//----------------DEFINES FOR COILS-----------------</span><span class="comment"></span></div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span><span class="comment">/** </span></div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span><span class="comment"> * @addtogroup MODBUS_DATA_COILS_DEFINES Coils Structure</span></div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span><span class="comment"> * @ingroup MODBUS_DATA</span></div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span><span class="comment"> * @brief Структура коилов</span></div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span><span class="comment"> @code </span></div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span><span class="comment"> Структура дефайна</span></div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span><span class="comment"> Для массивов коилов:</span></div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span><span class="comment"> C_&lt;NAME_ARRAY&gt;_ADDR - модбас адресс первого коила в массиве</span></div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span><span class="comment"> C_&lt;NAME_ARRAY&gt;_QNT - количество коилов в массиве (минимум 16)</span></div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span><span class="comment"> @endcode</span></div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span><span class="comment"> * @{</span></div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span><span class="comment"> */</span></div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> </div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> </div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> <span class="comment"></span></div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span><span class="comment">/** </span></div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span><span class="comment"> * @brief Коилы</span></div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span><span class="comment"> * @details Желательно с помощью reserved делать стркутуру кратной 16-битам</span></div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span><span class="comment"> */</span></div>
<div class="foldopen" id="foldopen00129" data-start="{" data-end="};">
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"><a class="line" href="struct_m_b___data_coils_type_def.html"> 129</a></span><span class="keyword">typedef</span> <span class="keyword">struct </span><span class="comment">//MB_DataCoilsTypeDef</span></div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span>{</div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> <span class="keywordtype">unsigned</span> reserved:16;</div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span>}<a class="code hl_struct" href="struct_m_b___data_coils_type_def.html">MB_DataCoilsTypeDef</a>;</div>
</div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span><span class="comment"></span> </div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span><span class="comment">/** MODBUS_DATA_COILS_DEFINES</span></div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span><span class="comment"> * @} </span></div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span><span class="comment"> */</span></div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> </div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> </div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span><span class="comment">//-----------MODBUS DEVICE DATA SETTING-------------</span></div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span><span class="comment">// MODBUS DATA STRUCTTURE</span><span class="comment"></span></div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span><span class="comment">/** </span></div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span><span class="comment"> * @brief Структура со всеми регистрами и коилами модбас </span></div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span><span class="comment"> * @ingroup MODBUS_DATA</span></div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span><span class="comment"> */</span></div>
<div class="foldopen" id="foldopen00145" data-start="{" data-end="};">
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"><a class="line" href="struct_m_b___data_structure_type_def.html"> 145</a></span><span class="keyword">typedef</span> <span class="keyword">struct </span><span class="comment">// tester modbus data</span></div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span>{</div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"><a class="line" href="struct_m_b___data_structure_type_def.html#ac0bf877607c54c79c1d09c4530fdcbca"> 147</a></span> <a class="code hl_struct" href="struct_m_b___data_in_regs_type_def.html">MB_DataInRegsTypeDef</a> <a class="code hl_variable" href="struct_m_b___data_structure_type_def.html#ac0bf877607c54c79c1d09c4530fdcbca">InRegs</a>; <span class="comment">///&lt; Modbus input registers @ref MB_DataInRegsTypeDef</span></div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> </div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"><a class="line" href="struct_m_b___data_structure_type_def.html#a349e19f82ba85cb29a911468ceee76b2"> 149</a></span> <a class="code hl_struct" href="struct_m_b___data_coils_type_def.html">MB_DataCoilsTypeDef</a> <a class="code hl_variable" href="struct_m_b___data_structure_type_def.html#a349e19f82ba85cb29a911468ceee76b2">Coils</a>; <span class="comment">///&lt; Modbus coils @ref MB_DataCoilsTypeDef</span></div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> </div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"><a class="line" href="struct_m_b___data_structure_type_def.html#a27d12400f322702e9d87c492e9628313"> 151</a></span> <a class="code hl_struct" href="struct_m_b___data_hold_regs_type_def.html">MB_DataHoldRegsTypeDef</a> <a class="code hl_variable" href="struct_m_b___data_structure_type_def.html#a27d12400f322702e9d87c492e9628313">HoldRegs</a>; <span class="comment">///&lt; Modbus holding registers @ref MB_DataHoldRegsTypeDef</span></div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span>}<a class="code hl_struct" href="struct_m_b___data_structure_type_def.html">MB_DataStructureTypeDef</a>;</div>
</div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span><span class="keyword">extern</span> <a class="code hl_struct" href="struct_m_b___data_structure_type_def.html">MB_DataStructureTypeDef</a> MB_DATA;</div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> </div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> </div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span><span class="preprocessor">#endif </span><span class="comment">//_MODBUS_DATA_H_</span></div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span><span class="comment"></span> </div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span><span class="comment">/////////////////////////////////////////////////////////////</span></div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span><span class="comment">///////////////////////TEMP/OUTDATE/OTHER////////////////////</span></div>
<div class="ttc" id="astruct_m_b___data_coils_type_def_html"><div class="ttname"><a href="struct_m_b___data_coils_type_def.html">MB_DataCoilsTypeDef</a></div><div class="ttdoc">Коилы</div><div class="ttdef"><b>Definition</b> <a href="#l00129">__modbus_data.h:130</a></div></div>
<div class="ttc" id="astruct_m_b___data_hold_regs_type_def_html"><div class="ttname"><a href="struct_m_b___data_hold_regs_type_def.html">MB_DataHoldRegsTypeDef</a></div><div class="ttdoc">Входные регистры</div><div class="ttdef"><b>Definition</b> <a href="#l00099">__modbus_data.h:100</a></div></div>
<div class="ttc" id="astruct_m_b___data_in_regs_type_def_html"><div class="ttname"><a href="struct_m_b___data_in_regs_type_def.html">MB_DataInRegsTypeDef</a></div><div class="ttdoc">Регистры хранения</div><div class="ttdef"><b>Definition</b> <a href="#l00090">__modbus_data.h:91</a></div></div>
<div class="ttc" id="astruct_m_b___data_structure_type_def_html"><div class="ttname"><a href="struct_m_b___data_structure_type_def.html">MB_DataStructureTypeDef</a></div><div class="ttdoc">Структура со всеми регистрами и коилами модбас</div><div class="ttdef"><b>Definition</b> <a href="#l00145">__modbus_data.h:146</a></div></div>
<div class="ttc" id="astruct_m_b___data_structure_type_def_html_a27d12400f322702e9d87c492e9628313"><div class="ttname"><a href="struct_m_b___data_structure_type_def.html#a27d12400f322702e9d87c492e9628313">MB_DataStructureTypeDef::HoldRegs</a></div><div class="ttdeci">MB_DataHoldRegsTypeDef HoldRegs</div><div class="ttdoc">Modbus holding registers MB_DataHoldRegsTypeDef.</div><div class="ttdef"><b>Definition</b> <a href="#l00151">__modbus_data.h:151</a></div></div>
<div class="ttc" id="astruct_m_b___data_structure_type_def_html_a349e19f82ba85cb29a911468ceee76b2"><div class="ttname"><a href="struct_m_b___data_structure_type_def.html#a349e19f82ba85cb29a911468ceee76b2">MB_DataStructureTypeDef::Coils</a></div><div class="ttdeci">MB_DataCoilsTypeDef Coils</div><div class="ttdoc">Modbus coils MB_DataCoilsTypeDef.</div><div class="ttdef"><b>Definition</b> <a href="#l00149">__modbus_data.h:149</a></div></div>
<div class="ttc" id="astruct_m_b___data_structure_type_def_html_ac0bf877607c54c79c1d09c4530fdcbca"><div class="ttname"><a href="struct_m_b___data_structure_type_def.html#ac0bf877607c54c79c1d09c4530fdcbca">MB_DataStructureTypeDef::InRegs</a></div><div class="ttdeci">MB_DataInRegsTypeDef InRegs</div><div class="ttdoc">Modbus input registers MB_DataInRegsTypeDef.</div><div class="ttdef"><b>Definition</b> <a href="#l00147">__modbus_data.h:147</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><b>__modbus_data.h</b></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,128 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Modbus: Class List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<script type="text/javascript" src="darkmode_toggle.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">Modbus<span id="projectnumber">&#160;0.3</span>
</div>
<div id="projectbrief">Библиотека Modbus для STM</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.14.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
<script type="text/javascript">
$(function() { codefold.init(); });
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(function(){initNavTree('annotated.html','',''); });
</script>
<div id="container">
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">Class List</div></div>
</div><!--header-->
<div class="contents">
<div class="textblock">Here are the classes, structs, unions and interfaces with brief descriptions:</div><div class="directory">
<table class="directory">
<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_m_b___data_coils_type_def.html" target="_self">MB_DataCoilsTypeDef</a></td><td class="desc">Коилы </td></tr>
<tr id="row_1_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_m_b___data_hold_regs_type_def.html" target="_self">MB_DataHoldRegsTypeDef</a></td><td class="desc">Входные регистры </td></tr>
<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_m_b___data_in_regs_type_def.html" target="_self">MB_DataInRegsTypeDef</a></td><td class="desc">Регистры хранения </td></tr>
<tr id="row_3_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_m_b___data_structure_type_def.html" target="_self">MB_DataStructureTypeDef</a></td><td class="desc">Структура со всеми регистрами и коилами модбас </td></tr>
<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_m_b___device_identifications_type_def.html" target="_self">MB_DeviceIdentificationsTypeDef</a></td><td class="desc">Структура со идентификаторами устройства модбас </td></tr>
<tr id="row_5_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_m_b___device_object_type_def.html" target="_self">MB_DeviceObjectTypeDef</a></td><td class="desc">Структура для объекта (идентификатора устройства модбас) </td></tr>
<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_m_b___dev_id_msg_type_def.html" target="_self">MB_DevIdMsgTypeDef</a></td><td class="desc">Structure for device identifications message type </td></tr>
<tr id="row_7_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_m_b___diagnostics_info_type_def.html" target="_self">MB_DiagnosticsInfoTypeDef</a></td><td class="desc">Структура со диагностической информацией устройства модбас </td></tr>
<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_r_s___flags_type_def.html" target="_self">RS_FlagsTypeDef</a></td><td class="desc">Struct for flags RS </td></tr>
<tr id="row_9_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_r_s___handle_type_def.html" target="_self">RS_HandleTypeDef</a></td><td class="desc">Handle for RS communication </td></tr>
<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_r_s___msg_type_def.html" target="_self">RS_MsgTypeDef</a></td><td class="desc">Structure for modbus messsage </td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
</div><!-- doc-content -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,14 @@
var annotated_dup =
[
[ "MB_DataCoilsTypeDef", "struct_m_b___data_coils_type_def.html", null ],
[ "MB_DataHoldRegsTypeDef", "struct_m_b___data_hold_regs_type_def.html", null ],
[ "MB_DataInRegsTypeDef", "struct_m_b___data_in_regs_type_def.html", null ],
[ "MB_DataStructureTypeDef", "struct_m_b___data_structure_type_def.html", "struct_m_b___data_structure_type_def" ],
[ "MB_DeviceIdentificationsTypeDef", "struct_m_b___device_identifications_type_def.html", null ],
[ "MB_DeviceObjectTypeDef", "struct_m_b___device_object_type_def.html", null ],
[ "MB_DevIdMsgTypeDef", "struct_m_b___dev_id_msg_type_def.html", "struct_m_b___dev_id_msg_type_def" ],
[ "MB_DiagnosticsInfoTypeDef", "struct_m_b___diagnostics_info_type_def.html", "struct_m_b___diagnostics_info_type_def" ],
[ "RS_FlagsTypeDef", "struct_r_s___flags_type_def.html", "struct_r_s___flags_type_def" ],
[ "RS_HandleTypeDef", "struct_r_s___handle_type_def.html", "struct_r_s___handle_type_def" ],
[ "RS_MsgTypeDef", "struct_r_s___msg_type_def.html", "struct_r_s___msg_type_def" ]
];

View File

@@ -0,0 +1,122 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Modbus: Class Index</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<script type="text/javascript" src="darkmode_toggle.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">Modbus<span id="projectnumber">&#160;0.3</span>
</div>
<div id="projectbrief">Библиотека Modbus для STM</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.14.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
<script type="text/javascript">
$(function() { codefold.init(); });
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(function(){initNavTree('classes.html','',''); });
</script>
<div id="container">
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">Class Index</div></div>
</div><!--header-->
<div class="contents">
<div class="qindex"><a class="qindex" href="#letter_M">M</a>&#160;|&#160;<a class="qindex" href="#letter_R">R</a></div>
<div class="classindex">
<dl class="classindex even">
<dt class="alphachar"><a id="letter_M" name="letter_M">M</a></dt>
<dd><a class="el" href="struct_m_b___data_coils_type_def.html">MB_DataCoilsTypeDef</a></dd><dd><a class="el" href="struct_m_b___data_hold_regs_type_def.html">MB_DataHoldRegsTypeDef</a></dd><dd><a class="el" href="struct_m_b___data_in_regs_type_def.html">MB_DataInRegsTypeDef</a></dd><dd><a class="el" href="struct_m_b___data_structure_type_def.html">MB_DataStructureTypeDef</a></dd><dd><a class="el" href="struct_m_b___device_identifications_type_def.html">MB_DeviceIdentificationsTypeDef</a></dd><dd><a class="el" href="struct_m_b___device_object_type_def.html">MB_DeviceObjectTypeDef</a></dd><dd><a class="el" href="struct_m_b___dev_id_msg_type_def.html">MB_DevIdMsgTypeDef</a></dd><dd><a class="el" href="struct_m_b___diagnostics_info_type_def.html">MB_DiagnosticsInfoTypeDef</a></dd></dl>
<dl class="classindex odd">
<dt class="alphachar"><a id="letter_R" name="letter_R">R</a></dt>
<dd><a class="el" href="struct_r_s___flags_type_def.html">RS_FlagsTypeDef</a></dd><dd><a class="el" href="struct_r_s___handle_type_def.html">RS_HandleTypeDef</a></dd><dd><a class="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a></dd></dl>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,61 @@
/**
The code below is based on the Doxygen Awesome project, see
https://github.com/jothepro/doxygen-awesome-css
MIT License
Copyright (c) 2021 - 2022 jothepro
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
let clipboard_title = "Copy to clipboard"
let clipboard_icon = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path fill="#888" d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg>`
let clipboard_successIcon = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41L9 16.17z"/></svg>`
let clipboard_successDuration = 1000
$(function() {
if(navigator.clipboard) {
const fragments = document.getElementsByClassName("fragment")
for(const fragment of fragments) {
const clipboard_div = document.createElement("div")
clipboard_div.classList.add("clipboard")
clipboard_div.innerHTML = clipboard_icon
clipboard_div.title = clipboard_title
$(clipboard_div).click(function() {
const content = this.parentNode.cloneNode(true)
// filter out line number and folded fragments from file listings
content.querySelectorAll(".lineno, .ttc, .foldclosed").forEach((node) => { node.remove() })
let text = content.textContent
// remove trailing newlines and trailing spaces from empty lines
text = text.replace(/^\s*\n/gm,'\n').replace(/\n*$/,'')
navigator.clipboard.writeText(text);
this.classList.add("success")
this.innerHTML = clipboard_successIcon
window.setTimeout(() => { // switch back to normal icon after timeout
this.classList.remove("success")
this.innerHTML = clipboard_icon
}, clipboard_successDuration);
})
fragment.insertBefore(clipboard_div, fragment.firstChild)
}
}
})

View File

@@ -0,0 +1,58 @@
/*!
Cookie helper functions
Copyright (c) 2023 Dimitri van Heesch
Released under MIT license.
*/
let Cookie = {
cookie_namespace: 'doxygen_',
readSetting(cookie,defVal) {
if (window.chrome) {
const val = localStorage.getItem(this.cookie_namespace+cookie) ||
sessionStorage.getItem(this.cookie_namespace+cookie);
if (val) return val;
} else {
let myCookie = this.cookie_namespace+cookie+"=";
if (document.cookie) {
const index = document.cookie.indexOf(myCookie);
if (index != -1) {
const valStart = index + myCookie.length;
let valEnd = document.cookie.indexOf(";", valStart);
if (valEnd == -1) {
valEnd = document.cookie.length;
}
return document.cookie.substring(valStart, valEnd);
}
}
}
return defVal;
},
writeSetting(cookie,val,days=10*365) { // default days='forever', 0=session cookie, -1=delete
if (window.chrome) {
if (days==0) {
sessionStorage.setItem(this.cookie_namespace+cookie,val);
} else {
localStorage.setItem(this.cookie_namespace+cookie,val);
}
} else {
let date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
const expiration = days!=0 ? "expires="+date.toGMTString()+";" : "";
document.cookie = this.cookie_namespace + cookie + "=" +
val + "; SameSite=Lax;" + expiration + "path=/";
}
},
eraseSetting(cookie) {
if (window.chrome) {
if (localStorage.getItem(this.cookie_namespace+cookie)) {
localStorage.removeItem(this.cookie_namespace+cookie);
} else if (sessionStorage.getItem(this.cookie_namespace+cookie)) {
sessionStorage.removeItem(this.cookie_namespace+cookie);
}
} else {
this.writeSetting(cookie,'',-1);
}
},
}

View File

@@ -0,0 +1,228 @@
/**
The code below is based on the Doxygen Awesome project with some minor modifications
https://github.com/jothepro/doxygen-awesome-css
MIT License
Copyright (c) 2021 - 2022 jothepro
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
class DarkModeToggle extends HTMLElement {
static darkmode_cookie_name = ''+'prefers-dark';
static lightmode_cookie_name = ''+'prefers-light';
static icon = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" height="1em" width="1em"><g fill="none" fill-rule="evenodd"><path d="M0 0h24v24H0z"></path><rect width="1" height="3" x="12" fill="currentColor" rx=".5"></rect><rect width="1" height="3" x="12" y="21" fill="currentColor" rx=".5"></rect><rect width="1" height="3" x="22" y="10.5" fill="currentColor" rx=".5" transform="rotate(90 22.5 12)"></rect><rect width="1" height="3" x="1" y="10.5" fill="currentColor" rx=".5" transform="rotate(90 1.5 12)"></rect><rect width="1" height="3" x="19" y="3" fill="currentColor" rx=".5" transform="rotate(-135 19.5 4.5)"></rect><rect width="1" height="3" x="19" y="18" fill="currentColor" rx=".5" transform="rotate(135 19.5 19.5)"></rect><rect width="1" height="3" x="4" y="3" fill="currentColor" rx=".5" transform="scale(1 -1) rotate(45 15.37 0)"></rect><rect width="1" height="3" x="4" y="18" fill="currentColor" rx=".5" transform="scale(1 -1) rotate(-45 -42.57 0)"></rect><circle cx="12" cy="12" r="6.5" stroke="currentColor"></circle><path fill="currentColor" stroke="currentColor" d="M12.5 18.48V5.52a6.5 6.5 0 010 12.96z"></path></g></svg>';
static title = "Toggle Light/Dark Mode"
static prefersLightModeInDarkModeKey = "prefers-light-mode-in-dark-mode"
static prefersDarkModeInLightModeKey = "prefers-dark-mode-in-light-mode"
static _staticConstructor = function() {
DarkModeToggle.enableDarkMode(DarkModeToggle.userPreference)
// Update the color scheme when the browsers preference changes
// without user interaction on the website.
window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', event => {
DarkModeToggle.onSystemPreferenceChanged()
})
// Update the color scheme when the tab is made visible again.
// It is possible that the appearance was changed in another tab
// while this tab was in the background.
document.addEventListener("visibilitychange", visibilityState => {
if (document.visibilityState === 'visible') {
DarkModeToggle.onSystemPreferenceChanged()
}
});
}()
static init() {
$(function() {
$(document).ready(function() {
const toggleButton = document.createElement('dark-mode-toggle')
toggleButton.title = DarkModeToggle.title
toggleButton.innerHTML = DarkModeToggle.icon
toggleButton.tabIndex = 0;
function addButton() {
const titleArea = document.getElementById("titlearea");
const searchBox = document.getElementById("MSearchBox");
const mainMenu = document.getElementById("main-menu");
const navRow1 = document.getElementById("navrow1");
let mainMenuVisible = false;
if (mainMenu) {
const menuStyle = window.getComputedStyle(mainMenu);
mainMenuVisible = menuStyle.display!=='none'
}
const searchBoxPos1 = document.getElementById("searchBoxPos1");
const buttonLi = document.getElementById('toggle-dark-mode');
if (buttonLi) {
buttonLi.parentNode.removeChild(buttonLi);
}
if (searchBox) { // (1) search box visible
searchBox.parentNode.appendChild(toggleButton)
} else if (navRow1) { // (2) no search box, static menu bar
const li = document.createElement('li');
li.id = 'toggle-dark-mode';
li.style = 'float: right;'
li.appendChild(toggleButton);
toggleButton.style = 'width: 24px; height: 25px; padding-top: 11px; float: right;';
const row = document.querySelector('#navrow1 > ul:first-of-type');
row.appendChild(li)
} else if (mainMenu && mainMenuVisible) { // (3) no search box + dynamic menu bar expanded
const li = document.createElement('li');
li.id = 'toggle-dark-mode';
li.style = 'float: right;'
li.appendChild(toggleButton);
toggleButton.style = 'width: 14px; height: 36px; padding-top: 10px; float: right;';
mainMenu.appendChild(li)
} else if (searchBoxPos1) { // (4) no search box + dynamic menu bar collapsed
toggleButton.style = 'width: 24px; height: 36px; padding-top: 10px; float: right;';
searchBoxPos1.style = 'top: 0px;'
searchBoxPos1.appendChild(toggleButton);
} else if (titleArea) { // (5) no search box and no navigation tabs
toggleButton.style = 'width: 24px; height: 24px; position: absolute; right: 0px; top: 34px;';
titleArea.append(toggleButton);
}
}
$(document).ready(() => addButton());
$(window).resize(() => addButton());
let inFocus = false;
$(document).focusin(() => inFocus = true);
$(document).focusout(() => inFocus = false);
$(document).keyup(function(e) {
if (e.keyCode==27 && !inFocus) { // escape key maps to keycode `27`
e.stopPropagation();
DarkModeToggle.userPreference = !DarkModeToggle.userPreference
}
})
DarkModeToggle.setDarkModeVisibility(DarkModeToggle.darkModeEnabled)
})
})
}
constructor() {
super();
this.onclick=this.toggleDarkMode
this.onkeypress=function(e){if (e.keyCode==13) { this.toggleDarkMode(); }};
}
/**
* @returns `true` for dark-mode, `false` for light-mode system preference
*/
static get systemPreference() {
return window.matchMedia('(prefers-color-scheme: dark)').matches
}
static get prefersDarkModeInLightMode() {
return Cookie.readSetting(DarkModeToggle.darkmode_cookie_name,'0')=='1';
}
static set prefersDarkModeInLightMode(preference) {
if (preference) {
Cookie.writeSetting(DarkModeToggle.darkmode_cookie_name,'1');
} else {
Cookie.eraseSetting(DarkModeToggle.darkmode_cookie_name);
}
}
static get prefersLightModeInDarkMode() {
return Cookie.readSetting(DarkModeToggle.lightmode_cookie_name,'0')=='1'
}
static set prefersLightModeInDarkMode(preference) {
if (preference) {
Cookie.writeSetting(DarkModeToggle.lightmode_cookie_name,'1');
} else {
Cookie.eraseSetting(DarkModeToggle.lightmode_cookie_name);
}
}
/**
* @returns `true` for dark-mode, `false` for light-mode user preference
*/
static get userPreference() {
return (!DarkModeToggle.systemPreference && DarkModeToggle.prefersDarkModeInLightMode) ||
(DarkModeToggle.systemPreference && !DarkModeToggle.prefersLightModeInDarkMode)
}
static set userPreference(userPreference) {
DarkModeToggle.darkModeEnabled = userPreference
if (!userPreference) {
if (DarkModeToggle.systemPreference) {
DarkModeToggle.prefersLightModeInDarkMode = true
} else {
DarkModeToggle.prefersDarkModeInLightMode = false
}
} else {
if (!DarkModeToggle.systemPreference) {
DarkModeToggle.prefersDarkModeInLightMode = true
} else {
DarkModeToggle.prefersLightModeInDarkMode = false
}
}
DarkModeToggle.onUserPreferenceChanged()
}
static setDarkModeVisibility(enable) {
let darkModeStyle, lightModeStyle;
if(enable) {
darkModeStyle = 'inline-block';
lightModeStyle = 'none'
} else {
darkModeStyle = 'none';
lightModeStyle = 'inline-block'
}
document.querySelectorAll('.dark-mode-visible' ).forEach(el => el.style.display = darkModeStyle);
document.querySelectorAll('.light-mode-visible').forEach(el => el.style.display = lightModeStyle);
}
static enableDarkMode(enable) {
if(enable) {
DarkModeToggle.darkModeEnabled = true
document.documentElement.classList.add("dark-mode")
document.documentElement.classList.remove("light-mode")
} else {
DarkModeToggle.darkModeEnabled = false
document.documentElement.classList.remove("dark-mode")
document.documentElement.classList.add("light-mode")
}
DarkModeToggle.setDarkModeVisibility(enable)
}
static onSystemPreferenceChanged() {
DarkModeToggle.darkModeEnabled = DarkModeToggle.userPreference
DarkModeToggle.enableDarkMode(DarkModeToggle.darkModeEnabled)
}
static onUserPreferenceChanged() {
DarkModeToggle.enableDarkMode(DarkModeToggle.darkModeEnabled)
}
toggleDarkMode() {
DarkModeToggle.userPreference = !DarkModeToggle.userPreference
}
}
customElements.define("dark-mode-toggle", DarkModeToggle);
DarkModeToggle.init();

View File

@@ -0,0 +1,118 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Modbus: E:/.WORK/STM32/Diod_Test/diode_tester/Core/Modbus/Src -&gt; Inc Relation</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<script type="text/javascript" src="darkmode_toggle.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">Modbus<span id="projectnumber">&#160;0.3</span>
</div>
<div id="projectbrief">Библиотека Modbus для STM</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.14.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
<script type="text/javascript">
$(function() { codefold.init(); });
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(function(){initNavTree('dir_413f4e031a85da0d68269c6fd2f76e1c.html','',''); });
</script>
<div id="container">
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="contents">
<h3>Src &rarr; Inc Relation</h3><table class="dirtab"><tr class="dirtab"><th class="dirtab">File in Src</th><th class="dirtab">Includes file in Inc</th></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="____modbus__compat_8c.html">__modbus_compat.c</a></td><td class="dirtab"><a class="el" href="modbus_8h.html">modbus.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="modbus_8c.html">modbus.c</a></td><td class="dirtab"><a class="el" href="modbus_8h.html">modbus.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="modbus__coils_8c.html">modbus_coils.c</a></td><td class="dirtab"><a class="el" href="modbus__coils_8h.html">modbus_coils.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="modbus__core_8c.html">modbus_core.c</a></td><td class="dirtab"><a class="el" href="modbus__core_8h.html">modbus_core.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="modbus__devid_8c.html">modbus_devid.c</a></td><td class="dirtab"><a class="el" href="modbus__devid_8h.html">modbus_devid.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="modbus__diag_8c.html">modbus_diag.c</a></td><td class="dirtab"><a class="el" href="modbus__diag_8h.html">modbus_diag.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="modbus__holdregs_8c.html">modbus_holdregs.c</a></td><td class="dirtab"><a class="el" href="modbus__inputregs_8h.html">modbus_inputregs.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="modbus__inputregs_8c.html">modbus_inputregs.c</a></td><td class="dirtab"><a class="el" href="modbus__inputregs_8h.html">modbus_inputregs.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="modbus__master_8c.html">modbus_master.c</a></td><td class="dirtab"><a class="el" href="modbus_8h.html">modbus.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="modbus__slave_8c.html">modbus_slave.c</a></td><td class="dirtab"><a class="el" href="modbus_8h.html">modbus.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="rs__message_8c.html">rs_message.c</a></td><td class="dirtab"><a class="el" href="modbus__diag_8h.html">modbus_diag.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="rs__message_8c.html">rs_message.c</a></td><td class="dirtab"><a class="el" href="rs__message_8h.html">rs_message.h</a></td></tr></table></div><!-- contents -->
</div><!-- doc-content -->
<div id="page-nav" class="page-nav-panel">
<div id="page-nav-resize-handle"></div>
<div id="page-nav-tree">
<div id="page-nav-contents">
</div><!-- page-nav-contents -->
</div><!-- page-nav-tree -->
</div><!-- page-nav -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a href="dir_413f4e031a85da0d68269c6fd2f76e1c.html">Src</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,160 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Modbus: E:/.WORK/STM32/Diod_Test/diode_tester/Core/Modbus/Src Directory Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<script type="text/javascript" src="darkmode_toggle.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">Modbus<span id="projectnumber">&#160;0.3</span>
</div>
<div id="projectbrief">Библиотека Modbus для STM</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.14.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
<script type="text/javascript">
$(function() { codefold.init(); });
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(function(){initNavTree('dir_413f4e031a85da0d68269c6fd2f76e1c.html','',''); });
</script>
<div id="container">
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">Src Directory Reference</div></div>
</div><!--header-->
<div class="contents">
<div id="dynsection-0" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Directory dependency graph for Src:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="dir_413f4e031a85da0d68269c6fd2f76e1c_dep.png" border="0" usemap="#adir__413f4e031a85da0d68269c6fd2f76e1c__dep" loading="lazy" alt="E:/.WORK/STM32/Diod_Test/diode_tester/Core/Modbus/Src"/></div>
<map name="adir__413f4e031a85da0d68269c6fd2f76e1c__dep" id="adir__413f4e031a85da0d68269c6fd2f76e1c__dep">
<area shape="rect" href="dir_413f4e031a85da0d68269c6fd2f76e1c.html" title="Src" alt="" coords="5,5,47,32"/>
<area shape="rect" href="dir_f93dfce691d792349f1c14ede440e2e6.html" title="Inc" alt="" coords="6,80,46,107"/>
<area shape="poly" href="dir_000001_000000.html" alt="" coords="29,33,29,64,23,64,23,33"/>
<area shape="rect" href="dir_000001_000000.html" title="12" alt="" coords="27,53,41,69"/>
</map>
</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-files" class="groupheader"><a id="files" name="files"></a>
Files</h2></td></tr>
<tr class="memitem:_5F_5Fcrc_5Falgs_2Ec" id="r__5F_5Fcrc_5Falgs_2Ec"><td class="memItemLeft" align="right" valign="top"><a href="____crc__algs_8c_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a>&#160;</td><td class="memItemRight" valign="bottom"><b>__crc_algs.c</b></td></tr>
<tr class="memitem:_5F_5Fmodbus_5Fcompat_2Ec" id="r__5F_5Fmodbus_5Fcompat_2Ec"><td class="memItemLeft" align="right" valign="top"><a href="____modbus__compat_8c_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="____modbus__compat_8c.html">__modbus_compat.c</a></td></tr>
<tr class="memdesc:____modbus__compat_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Модуль для совместимости библиотеки MODBUS. <br /></td></tr>
<tr class="memitem:modbus_2Ec" id="r_modbus_2Ec"><td class="memItemLeft" align="right" valign="top"><a href="modbus_8c_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="modbus_8c.html">modbus.c</a></td></tr>
<tr class="memdesc:modbus_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Модуль для реализации MODBUS. <br /></td></tr>
<tr class="memitem:modbus_5Fcoils_2Ec" id="r_modbus_5Fcoils_2Ec"><td class="memItemLeft" align="right" valign="top"><a href="modbus__coils_8c_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="modbus__coils_8c.html">modbus_coils.c</a></td></tr>
<tr class="memdesc:modbus__coils_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Реализация работы с коилами Modbus. <br /></td></tr>
<tr class="memitem:modbus_5Fcore_2Ec" id="r_modbus_5Fcore_2Ec"><td class="memItemLeft" align="right" valign="top"><a href="modbus__core_8c_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="modbus__core_8c.html">modbus_core.c</a></td></tr>
<tr class="memdesc:modbus__core_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Базовая реализация ядра Modbus. <br /></td></tr>
<tr class="memitem:modbus_5Fdevid_2Ec" id="r_modbus_5Fdevid_2Ec"><td class="memItemLeft" align="right" valign="top"><a href="modbus__devid_8c_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="modbus__devid_8c.html">modbus_devid.c</a></td></tr>
<tr class="memdesc:modbus__devid_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Реализация идентификаторов устройства Modbus. <br /></td></tr>
<tr class="memitem:modbus_5Fdiag_2Ec" id="r_modbus_5Fdiag_2Ec"><td class="memItemLeft" align="right" valign="top"><a href="modbus__diag_8c_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="modbus__diag_8c.html">modbus_diag.c</a></td></tr>
<tr class="memdesc:modbus__diag_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Реализация диагностики устройства Modbus. <br /></td></tr>
<tr class="memitem:modbus_5Fholdregs_2Ec" id="r_modbus_5Fholdregs_2Ec"><td class="memItemLeft" align="right" valign="top"><a href="modbus__holdregs_8c_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="modbus__holdregs_8c.html">modbus_holdregs.c</a></td></tr>
<tr class="memdesc:modbus__holdregs_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Реализация работы с регистрами хранения Modbus. <br /></td></tr>
<tr class="memitem:modbus_5Finputregs_2Ec" id="r_modbus_5Finputregs_2Ec"><td class="memItemLeft" align="right" valign="top"><a href="modbus__inputregs_8c_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="modbus__inputregs_8c.html">modbus_inputregs.c</a></td></tr>
<tr class="memdesc:modbus__inputregs_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Реализация работы с входными регистрами Modbus. <br /></td></tr>
<tr class="memitem:modbus_5Fmaster_2Ec" id="r_modbus_5Fmaster_2Ec"><td class="memItemLeft" align="right" valign="top"><a href="modbus__master_8c_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="modbus__master_8c.html">modbus_master.c</a></td></tr>
<tr class="memdesc:modbus__master_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Модуль для реализации мастера MODBUS. <br /></td></tr>
<tr class="memitem:modbus_5Fslave_2Ec" id="r_modbus_5Fslave_2Ec"><td class="memItemLeft" align="right" valign="top"><a href="modbus__slave_8c_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="modbus__slave_8c.html">modbus_slave.c</a></td></tr>
<tr class="memdesc:modbus__slave_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Модуль для реализации слейв MODBUS. <br /></td></tr>
<tr class="memitem:rs_5Fmessage_2Ec" id="r_rs_5Fmessage_2Ec"><td class="memItemLeft" align="right" valign="top"><a href="rs__message_8c_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__message_8c.html">rs_message.c</a></td></tr>
<tr class="memdesc:rs__message_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Реализация протоколов обмена по RS/UART. <br /></td></tr>
</table>
</div><!-- contents -->
</div><!-- doc-content -->
<div id="page-nav" class="page-nav-panel">
<div id="page-nav-resize-handle"></div>
<div id="page-nav-tree">
<div id="page-nav-contents">
</div><!-- page-nav-contents -->
</div><!-- page-nav-tree -->
</div><!-- page-nav -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a href="dir_413f4e031a85da0d68269c6fd2f76e1c.html">Src</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,15 @@
var dir_413f4e031a85da0d68269c6fd2f76e1c =
[
[ "__crc_algs.c", "____crc__algs_8c_source.html", null ],
[ "__modbus_compat.c", "____modbus__compat_8c.html", null ],
[ "modbus.c", "modbus_8c.html", "modbus_8c" ],
[ "modbus_coils.c", "modbus__coils_8c.html", "modbus__coils_8c" ],
[ "modbus_core.c", "modbus__core_8c.html", null ],
[ "modbus_devid.c", "modbus__devid_8c.html", "modbus__devid_8c" ],
[ "modbus_diag.c", "modbus__diag_8c.html", "modbus__diag_8c" ],
[ "modbus_holdregs.c", "modbus__holdregs_8c.html", "modbus__holdregs_8c" ],
[ "modbus_inputregs.c", "modbus__inputregs_8c.html", "modbus__inputregs_8c" ],
[ "modbus_master.c", "modbus__master_8c.html", "modbus__master_8c" ],
[ "modbus_slave.c", "modbus__slave_8c.html", "modbus__slave_8c" ],
[ "rs_message.c", "rs__message_8c.html", "rs__message_8c" ]
];

View File

@@ -0,0 +1,6 @@
<map id="E:/.WORK/STM32/Diod_Test/diode_tester/Core/Modbus/Src" name="E:/.WORK/STM32/Diod_Test/diode_tester/Core/Modbus/Src">
<area shape="rect" id="node1" href="dir_413f4e031a85da0d68269c6fd2f76e1c.html" title="Src" alt="" coords="5,5,47,32"/>
<area shape="rect" id="node2" href="dir_f93dfce691d792349f1c14ede440e2e6.html" title="Inc" alt="" coords="6,80,46,107"/>
<area shape="poly" id="edge1" href="dir_000001_000000.html" alt="" coords="29,33,29,64,23,64,23,33"/>
<area shape="rect" id="edge1-headlabel" href="dir_000001_000000.html" title="12" alt="" coords="27,53,41,69"/>
</map>

View File

@@ -0,0 +1 @@
5e03b8ccee07a6102de84ceac390dd05

Binary file not shown.

After

Width:  |  Height:  |  Size: 1011 B

View File

@@ -0,0 +1,148 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Modbus: E:/.WORK/STM32/Diod_Test/diode_tester/Core/Modbus/Inc Directory Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<script type="text/javascript" src="darkmode_toggle.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">Modbus<span id="projectnumber">&#160;0.3</span>
</div>
<div id="projectbrief">Библиотека Modbus для STM</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.14.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
<script type="text/javascript">
$(function() { codefold.init(); });
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(function(){initNavTree('dir_f93dfce691d792349f1c14ede440e2e6.html','',''); });
</script>
<div id="container">
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">Inc Directory Reference</div></div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-files" class="groupheader"><a id="files" name="files"></a>
Files</h2></td></tr>
<tr class="memitem:_5F_5Fcrc_5Falgs_2Eh" id="r__5F_5Fcrc_5Falgs_2Eh"><td class="memItemLeft" align="right" valign="top"><a href="____crc__algs_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a>&#160;</td><td class="memItemRight" valign="bottom"><b>__crc_algs.h</b></td></tr>
<tr class="memitem:_5F_5Fmodbus_5Fcompat_2Eh" id="r__5F_5Fmodbus_5Fcompat_2Eh"><td class="memItemLeft" align="right" valign="top"><a href="____modbus__compat_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="____modbus__compat_8h.html">__modbus_compat.h</a></td></tr>
<tr class="memdesc:____modbus__compat_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Модуль для совместимости библиотеки MODBUS. <br /></td></tr>
<tr class="memitem:modbus_2Eh" id="r_modbus_2Eh"><td class="memItemLeft" align="right" valign="top"><a href="modbus_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="modbus_8h.html">modbus.h</a></td></tr>
<tr class="memdesc:modbus_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Главный заголовочный файл Modbus библиотеки <br /></td></tr>
<tr class="memitem:modbus_5Fcoils_2Eh" id="r_modbus_5Fcoils_2Eh"><td class="memItemLeft" align="right" valign="top"><a href="modbus__coils_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="modbus__coils_8h.html">modbus_coils.h</a></td></tr>
<tr class="memdesc:modbus__coils_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Работа с коилами Modbus. <br /></td></tr>
<tr class="memitem:modbus_5Fcore_2Eh" id="r_modbus_5Fcore_2Eh"><td class="memItemLeft" align="right" valign="top"><a href="modbus__core_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="modbus__core_8h.html">modbus_core.h</a></td></tr>
<tr class="memdesc:modbus__core_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Ядро Modbus протокола - определения и структуры <br /></td></tr>
<tr class="memitem:modbus_5Fdevid_2Eh" id="r_modbus_5Fdevid_2Eh"><td class="memItemLeft" align="right" valign="top"><a href="modbus__devid_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="modbus__devid_8h.html">modbus_devid.h</a></td></tr>
<tr class="memdesc:modbus__devid_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Идентификаторы устройства Modbus. <br /></td></tr>
<tr class="memitem:modbus_5Fdiag_2Eh" id="r_modbus_5Fdiag_2Eh"><td class="memItemLeft" align="right" valign="top"><a href="modbus__diag_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="modbus__diag_8h.html">modbus_diag.h</a></td></tr>
<tr class="memdesc:modbus__diag_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Диагностика устройства Modbus. <br /></td></tr>
<tr class="memitem:modbus_5Fholdregs_2Eh" id="r_modbus_5Fholdregs_2Eh"><td class="memItemLeft" align="right" valign="top"><a href="modbus__holdregs_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="modbus__holdregs_8h.html">modbus_holdregs.h</a></td></tr>
<tr class="memdesc:modbus__holdregs_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Работа с регистрами хранения Modbus. <br /></td></tr>
<tr class="memitem:modbus_5Finputregs_2Eh" id="r_modbus_5Finputregs_2Eh"><td class="memItemLeft" align="right" valign="top"><a href="modbus__inputregs_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="modbus__inputregs_8h.html">modbus_inputregs.h</a></td></tr>
<tr class="memdesc:modbus__inputregs_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Работа с входными регистрами Modbus. <br /></td></tr>
<tr class="memitem:modbus_5Fmaster_2Eh" id="r_modbus_5Fmaster_2Eh"><td class="memItemLeft" align="right" valign="top"><a href="modbus__master_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="modbus__master_8h.html">modbus_master.h</a></td></tr>
<tr class="memdesc:modbus__master_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Главный заголовочный файл Modbus библиотеки <br /></td></tr>
<tr class="memitem:modbus_5Fslave_2Eh" id="r_modbus_5Fslave_2Eh"><td class="memItemLeft" align="right" valign="top"><a href="modbus__slave_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="modbus__slave_8h.html">modbus_slave.h</a></td></tr>
<tr class="memdesc:modbus__slave_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Главный заголовочный файл Modbus библиотеки <br /></td></tr>
<tr class="memitem:rs_5Fmessage_2Eh" id="r_rs_5Fmessage_2Eh"><td class="memItemLeft" align="right" valign="top"><a href="rs__message_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__message_8h.html">rs_message.h</a></td></tr>
<tr class="memdesc:rs__message_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Библиотека обмена сообщениями по RS-интерфейсу <br /></td></tr>
</table>
</div><!-- contents -->
</div><!-- doc-content -->
<div id="page-nav" class="page-nav-panel">
<div id="page-nav-resize-handle"></div>
<div id="page-nav-tree">
<div id="page-nav-contents">
</div><!-- page-nav-contents -->
</div><!-- page-nav-tree -->
</div><!-- page-nav -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a href="dir_f93dfce691d792349f1c14ede440e2e6.html">Inc</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,15 @@
var dir_f93dfce691d792349f1c14ede440e2e6 =
[
[ "__crc_algs.h", "____crc__algs_8h_source.html", null ],
[ "__modbus_compat.h", "____modbus__compat_8h.html", null ],
[ "modbus.h", "modbus_8h.html", "modbus_8h" ],
[ "modbus_coils.h", "modbus__coils_8h.html", "modbus__coils_8h" ],
[ "modbus_core.h", "modbus__core_8h.html", "modbus__core_8h" ],
[ "modbus_devid.h", "modbus__devid_8h.html", "modbus__devid_8h" ],
[ "modbus_diag.h", "modbus__diag_8h.html", "modbus__diag_8h" ],
[ "modbus_holdregs.h", "modbus__holdregs_8h.html", "modbus__holdregs_8h" ],
[ "modbus_inputregs.h", "modbus__inputregs_8h.html", "modbus__inputregs_8h" ],
[ "modbus_master.h", "modbus__master_8h.html", "modbus__master_8h" ],
[ "modbus_slave.h", "modbus__slave_8h.html", "modbus__slave_8h" ],
[ "rs_message.h", "rs__message_8h.html", "rs__message_8h" ]
];

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 15 KiB

View File

@@ -0,0 +1,397 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<title>Validator / crawler helper</title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
</head>
<body>
<a href="____crc__algs_8c_source.html"/>
<a href="____crc__algs_8h_source.html"/>
<a href="____modbus__compat_8c.html"/>
<a href="____modbus__compat_8c_source.html"/>
<a href="____modbus__compat_8h.html"/>
<a href="____modbus__compat_8h_source.html"/>
<a href="____modbus__data_8c_source.html"/>
<a href="annotated.html"/>
<a href="classes.html"/>
<a href="dir_000001_000000.html"/>
<a href="dir_413f4e031a85da0d68269c6fd2f76e1c.html"/>
<a href="dir_f93dfce691d792349f1c14ede440e2e6.html"/>
<a href="doxygen_crawl.html"/>
<a href="files.html"/>
<a href="functions.html"/>
<a href="functions_vars.html"/>
<a href="globals.html"/>
<a href="globals_b.html"/>
<a href="globals_c.html"/>
<a href="globals_d.html"/>
<a href="globals_defs.html"/>
<a href="globals_e.html"/>
<a href="globals_enum.html"/>
<a href="globals_eval.html"/>
<a href="globals_f.html"/>
<a href="globals_func.html"/>
<a href="globals_h.html"/>
<a href="globals_i.html"/>
<a href="globals_m.html"/>
<a href="globals_p.html"/>
<a href="globals_q.html"/>
<a href="globals_r.html"/>
<a href="globals_t.html"/>
<a href="globals_vars.html"/>
<a href="graph_legend.html"/>
<a href="group___m_o_d_b_u_s.html"/>
<a href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html"/>
<a href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga02e192a3d9f31737c45f074a04b37648"/>
<a href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga1e90bb28a4cf997250daab6470d5ffe3"/>
<a href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga278ca9791c69aef8adeb9e7c4b273c50"/>
<a href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga279ce6d9d175a43714862dc6661e7096"/>
<a href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga39a02e8e4911a74a619d2ef29adcbad8"/>
<a href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga6bbfc53b20b4698a08d79851b5db65f0"/>
<a href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga6f4498cec8634820025aaa9c4623ba55"/>
<a href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga918102931c9125a5e44a30e103d17e14"/>
<a href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga9c6ab159edb8dda6548b2228773ce919"/>
<a href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gac28127757ba25fe0b611612a785f663b"/>
<a href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gad13d010f43c7ab08a85667b9e1906b7d"/>
<a href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gade717a6829a062a8a198bd933c8b2221"/>
<a href="group___m_o_d_b_u_s___c_o_i_l_s.html"/>
<a href="group___m_o_d_b_u_s___c_o_n_f_i_g_s.html"/>
<a href="group___m_o_d_b_u_s___c_o_n_f_i_g_s.html#ga23d7073c81bedb80a302140afd0d79c0"/>
<a href="group___m_o_d_b_u_s___c_o_n_f_i_g_s.html#ga29ce22b8b7f0622bc23171c6ae2dc8d1"/>
<a href="group___m_o_d_b_u_s___c_o_n_f_i_g_s.html#ga370986118b8227cb6cb33c6b748fbbcb"/>
<a href="group___m_o_d_b_u_s___c_o_n_f_i_g_s.html#ga5bf9f305bd863b10f1b350c5004ddda7"/>
<a href="group___m_o_d_b_u_s___c_o_n_f_i_g_s.html#ga5c7e9c2180ceac1208f4b791d7b70a0a"/>
<a href="group___m_o_d_b_u_s___c_o_n_f_i_g_s.html#ga66f7c59a25c8cca6d5b0991895c26b69"/>
<a href="group___m_o_d_b_u_s___c_o_n_f_i_g_s.html#ga6723a1608946a4f86cd7c9c7e614d04e"/>
<a href="group___m_o_d_b_u_s___c_o_n_f_i_g_s.html#gab9b18e108b98b225a52c5ccca58e7f2b"/>
<a href="group___m_o_d_b_u_s___c_o_n_f_i_g_s.html#gac3b162e9af2731742eb3ca8317b37397"/>
<a href="group___m_o_d_b_u_s___c_o_n_f_i_g_s.html#gae11f9ed7ca5e75d332a1187d2a213f9c"/>
<a href="group___m_o_d_b_u_s___c_o_n_f_i_g_s.html#gae4fc30421556e1ee530f13a4b3924f5a"/>
<a href="group___m_o_d_b_u_s___c_o_n_f_i_g_s.html#gae68222efbcf3199706bfaef46af97bf8"/>
<a href="group___m_o_d_b_u_s___c_o_n_f_i_g_s.html#gaf6a8dfc090b3915d668d78ee19585344"/>
<a href="group___m_o_d_b_u_s___d_a_t_a.html"/>
<a href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html"/>
<a href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga0198b337d6944329b78c59521baf5738"/>
<a href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga0f8474120df77dc5f334d60d6a5f6f8f"/>
<a href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga10f9e4dd9f3dda4bb0f66c323d6b29d7"/>
<a href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga22a48a04ef64f74b5974c4fdb1445936"/>
<a href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga2585ebac184f7fa56059c81419c614b9"/>
<a href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga28d00cd1df2a46a7a9a6a1b1fce99826"/>
<a href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga4baad1102ba3f09cf3cc121b8d548ddb"/>
<a href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga5588ddb15ee2580e7659701e5e671e8f"/>
<a href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga635a6c4fbce49bd1e6797642b36dae7e"/>
<a href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga82334048256e266170a4b3373be59b59"/>
<a href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga82e0bf0c4452c25bf3f05a20abb7cc74"/>
<a href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga8b7134e2fc1b65111d536c5590321b80"/>
<a href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga8ccf569b78a17a10ac7c80d52730753a"/>
<a href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gab1237f28e2db2cd2e8a93b31cd9a61be"/>
<a href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gabc4efb5e2a6aaa021ef5fe6c69476927"/>
<a href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gabf80c0e24a0ed3736338218c003d001d"/>
<a href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gac5f409526055c3d98458ada3d3ab630c"/>
<a href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gae379458fa9cea50d5e313a68e716cb83"/>
<a href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gae7b613f24e9e3d9d95a789c404a3a485"/>
<a href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gae9b8595911d93cfbf8597f3356a494cc"/>
<a href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gafb57a29488a549d1c585234945549f2e"/>
<a href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gaff7c464d7d66399232770bac78b653a4"/>
<a href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gga8ccf569b78a17a10ac7c80d52730753aa3311a630e2effce17b04ce9f570af373"/>
<a href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gga8ccf569b78a17a10ac7c80d52730753aa43bede78942f1a8fdfdaf6f977cda2ba"/>
<a href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gga8ccf569b78a17a10ac7c80d52730753aac360e996f29f7a0461fd482feb68b462"/>
<a href="group___m_o_d_b_u_s___d_a_t_a___c_o_i_l_s___d_e_f_i_n_e_s.html"/>
<a href="group___m_o_d_b_u_s___d_a_t_a___r_e_r_i_s_t_e_r_s___d_e_f_i_n_e_s.html"/>
<a href="group___m_o_d_b_u_s___d_e_v_i_d.html"/>
<a href="group___m_o_d_b_u_s___d_e_v_i_d.html#ga090d04bdaee6827a9a620d149efd4978"/>
<a href="group___m_o_d_b_u_s___d_e_v_i_d.html#ga0aaf735fcb26fa61af6f7f4895802b90"/>
<a href="group___m_o_d_b_u_s___d_e_v_i_d.html#ga2b93352920bf3c6da0f67cfbaef3d572"/>
<a href="group___m_o_d_b_u_s___d_e_v_i_d.html#ga7c0638d252c74d0c1ef047ff23e43b3f"/>
<a href="group___m_o_d_b_u_s___d_e_v_i_d.html#gae5e66049f0dc66382999cf52cdeba38e"/>
<a href="group___m_o_d_b_u_s___d_e_v_i_d.html#gaf864599c95934d63f854a038e3bdccb0"/>
<a href="group___m_o_d_b_u_s___d_i_a_g.html"/>
<a href="group___m_o_d_b_u_s___d_i_a_g.html#ga4ba6111ac80e342396f9703239323936"/>
<a href="group___m_o_d_b_u_s___d_i_a_g.html#ga9b61a6d4139bac318868e93f03cd82c7"/>
<a href="group___m_o_d_b_u_s___d_i_a_g.html#ga9d139168bb88bfa1ba1597eeff9ebf6a"/>
<a href="group___m_o_d_b_u_s___d_i_a_g.html#gga9d139168bb88bfa1ba1597eeff9ebf6aa00016ff75083a290e683bdc38b6e3e9e"/>
<a href="group___m_o_d_b_u_s___d_i_a_g.html#gga9d139168bb88bfa1ba1597eeff9ebf6aa418905ff4eb32b34d67ca5812f5a3190"/>
<a href="group___m_o_d_b_u_s___f_u_n_c_t_i_o_n_s.html"/>
<a href="group___m_o_d_b_u_s___f_u_n_c_t_i_o_n_s.html#ga19090cabfba2345391e37398125a2f55"/>
<a href="group___m_o_d_b_u_s___f_u_n_c_t_i_o_n_s.html#ga460466907693a256487d31f09b16edfe"/>
<a href="group___m_o_d_b_u_s___f_u_n_c_t_i_o_n_s.html#ga9a17402983188566254b7096342ba69e"/>
<a href="group___m_o_d_b_u_s___f_u_n_c_t_i_o_n_s.html#ga9e787c3454aab3293dec6e6795f687f5"/>
<a href="group___m_o_d_b_u_s___f_u_n_c_t_i_o_n_s.html#gac0b3749af91f1007fd0291157b66b305"/>
<a href="group___m_o_d_b_u_s___f_u_n_c_t_i_o_n_s.html#gad91eec9c3350f2705f1bbe1856cb0159"/>
<a href="group___m_o_d_b_u_s___h_o_l_d.html"/>
<a href="group___m_o_d_b_u_s___i_n_s.html"/>
<a href="group___m_o_d_b_u_s___i_n_t_e_r_n_a_l.html"/>
<a href="group___m_o_d_b_u_s___l_e_g_a_c_y___a_p_i.html"/>
<a href="group___m_o_d_b_u_s___m_a_s_t_e_r.html"/>
<a href="group___m_o_d_b_u_s___m_a_s_t_e_r.html#ga096d2790ab887eb815e17d8cd9ede125"/>
<a href="group___m_o_d_b_u_s___m_a_s_t_e_r.html#ga461e77fe31ce64c7ee5f1a932dc1183f"/>
<a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html"/>
<a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga18eb6d0d9fdb6274341e892e2b41d88b"/>
<a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga1be71951697002df6f3259ca41dc4853"/>
<a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga2141ab64ec40fd3e7bfaafcf02f1c81b"/>
<a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga3372a9da9b653cd351256d2e805a1b5b"/>
<a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga38d42495bf262b70048e6d6a7af175d2"/>
<a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga4ade64cb3fabf37f010c1e297489980c"/>
<a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga600f4a134e94bc9ddf7a37d8f49cadcc"/>
<a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga63c3a2a3adb05f591399e2c4def7c14a"/>
<a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga679c526f339999281b97010876e7a295"/>
<a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga69ca2a9dbd269a5b39dd5d29a7601a12"/>
<a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga6ab08ed18663bc72f80e4e60b30ab429"/>
<a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga7d1e9e8bb8f40ce788836da0739f897c"/>
<a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga822b0fd9ae9ff25dfa6748473e8e8627"/>
<a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga938b632e20454741b2a7f97928583776"/>
<a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga9648b00f955b16e107b901812031cee3"/>
<a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga9d21532e66376b674c8bc7523d51350e"/>
<a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gaa93e89217587fdff12bf43b5d7f54f74"/>
<a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gab4b8423205cc250a9f050f4fff252d5d"/>
<a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gab4ed36ca923f2c451475f233124f24c4"/>
<a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gae135b86915da05ee9991ef1c50d3527f"/>
<a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gaeaafeacbd239428c7e59e40d2df16ae2"/>
<a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gaed24f1f06633b92de65f4fab2b4e005b"/>
<a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gaf55149bc1f05cf18af067a302e31e3f9"/>
<a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga38d42495bf262b70048e6d6a7af175d2a1577351173a660924f7bf33d4c2ec003"/>
<a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga38d42495bf262b70048e6d6a7af175d2a1b66683f704ef9072329e997312e3b83"/>
<a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga38d42495bf262b70048e6d6a7af175d2a21ba95630e4914c2706e8f48f6839e16"/>
<a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga38d42495bf262b70048e6d6a7af175d2a37ddf147e08b6d205319c31e6750d47c"/>
<a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga38d42495bf262b70048e6d6a7af175d2a399bcd53bc32faca81bbc3d1ff8b5bb6"/>
<a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga38d42495bf262b70048e6d6a7af175d2a438c348676901d3e0263fd1f8d94bf11"/>
<a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga38d42495bf262b70048e6d6a7af175d2a43a1b810697ea15ef91008dbc0187127"/>
<a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga38d42495bf262b70048e6d6a7af175d2a4de9a680cbe955bc5b30f4c497b06ff8"/>
<a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga38d42495bf262b70048e6d6a7af175d2a592aee113b711b5976ce914f727c9f77"/>
<a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga38d42495bf262b70048e6d6a7af175d2a730c5f56799669c612945a55aa9494c4"/>
<a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga38d42495bf262b70048e6d6a7af175d2a76139e9b7ae78856fd3a297c9f751944"/>
<a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga38d42495bf262b70048e6d6a7af175d2a832b94af2c427d0daae721da2528f44a"/>
<a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga38d42495bf262b70048e6d6a7af175d2a8fd1f1aa92af4555bafd96c835ea473c"/>
<a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga38d42495bf262b70048e6d6a7af175d2aa6423de9e908dc38ce9f1c8027ad72ec"/>
<a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga38d42495bf262b70048e6d6a7af175d2abaa0b334409929c82ec44960d368114b"/>
<a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga38d42495bf262b70048e6d6a7af175d2abe215454c122b35aa658a8c11b37a258"/>
<a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga38d42495bf262b70048e6d6a7af175d2ad7f2601e81f84b15cc898c490e429dd5"/>
<a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga38d42495bf262b70048e6d6a7af175d2ae03921b16750ef290fdd7d19a08a29a2"/>
<a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga38d42495bf262b70048e6d6a7af175d2af018f1e1deef493cfa1074583e421cc8"/>
<a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga38d42495bf262b70048e6d6a7af175d2affa24c54ee0b59e9810f1dbdc949e684"/>
<a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga4ade64cb3fabf37f010c1e297489980ca47d6168d0692ccb7e09e19084287aba3"/>
<a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga4ade64cb3fabf37f010c1e297489980caa6980c7a8d924dd975b8fa06a300eb74"/>
<a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga4ade64cb3fabf37f010c1e297489980cacae4572933c1b43491d452f912341277"/>
<a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga4ade64cb3fabf37f010c1e297489980cae81af967ab54904738ee391eb7478ad1"/>
<a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga4ade64cb3fabf37f010c1e297489980caea312adaf18aa7ebd17aca8883550425"/>
<a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga63c3a2a3adb05f591399e2c4def7c14aab930f13868df5243566759bbcf52a19d"/>
<a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga63c3a2a3adb05f591399e2c4def7c14aabb8d7527a3aabb1eac974474255d0c5e"/>
<a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga63c3a2a3adb05f591399e2c4def7c14aac792ca720b19c89783b70cdeba0c9248"/>
<a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga63c3a2a3adb05f591399e2c4def7c14aaca82385c8d88d6d762c369b4da4c4db8"/>
<a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ggaeaafeacbd239428c7e59e40d2df16ae2a277f666e479965e8c9a47ef34c1eba39"/>
<a href="group___m_o_d_b_u_s___r_e_g_s___a_p_i.html"/>
<a href="group___m_o_d_b_u_s___r_e_g_s___a_p_i.html#ga1f80317087624a23f84224c6f2c1d596"/>
<a href="group___m_o_d_b_u_s___r_e_g_s___a_p_i.html#ga86160c23899d6ece041e3680ba863019"/>
<a href="group___m_o_d_b_u_s___r_e_q___c_o_i_l_s___a_p_i.html"/>
<a href="group___m_o_d_b_u_s___r_e_q___c_o_i_l_s___a_p_i.html#ga14750bad3976a9fcc6bdece1c800dbf5"/>
<a href="group___m_o_d_b_u_s___r_e_q___c_o_i_l_s___a_p_i.html#ga643a0be1ccd587a6dfe544d9fd5ed018"/>
<a href="group___m_o_d_b_u_s___r_e_q___d_e_f_i_d___a_p_i.html"/>
<a href="group___m_o_d_b_u_s___r_e_q___d_e_f_i_d___a_p_i.html#ga0dc4119c008af34d5997eab339c437be"/>
<a href="group___m_o_d_b_u_s___r_e_q___d_e_f_i_d___a_p_i.html#ga16b90d4a74a249514161aa4576724d1c"/>
<a href="group___m_o_d_b_u_s___r_e_q___d_e_f_i_d___a_p_i.html#ga3fc5fc5abfe4f8767ccee5c11ea3d5d5"/>
<a href="group___m_o_d_b_u_s___r_e_q___d_i_a_g___a_p_i.html"/>
<a href="group___m_o_d_b_u_s___r_e_q___d_i_a_g___a_p_i.html#ga46a9650ec68832e6f95eda579f4d9ded"/>
<a href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html"/>
<a href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#ga0126cfaf44c73d84d521b16c0f6ab7b6"/>
<a href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#ga1ac5f38ac244039a63b2714044778ffc"/>
<a href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#ga4a4798a15608f3aac04150115a628f8e"/>
<a href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#ga72f91a70586546171fe9190a4e0e5518"/>
<a href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#ga85028c4de63ca63cb04e332a3fdcd676"/>
<a href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#ga92c7c61bc6b3e249350d93d20b530fa3"/>
<a href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#ga9b89a034f1c5ed96572621b2ebe7f6af"/>
<a href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#gadb1b59bd6832b017b7ff4f5d694f59aa"/>
<a href="group___m_o_d_b_u_s___s_l_a_v_e.html"/>
<a href="group___m_o_d_b_u_s___s_l_a_v_e.html#ga1c73cfdcbe7bc6076f62a4ec9c211eee"/>
<a href="group___m_o_d_b_u_s___s_l_a_v_e.html#gacb44db7ef6ef32b08f4ffe0178eabee8"/>
<a href="group___m_o_d_b_u_s___s_l_a_v_e.html#gadc281b1044c4ae345d10db6497846cef"/>
<a href="group___r_s___d_e_b_u_g.html"/>
<a href="group___r_s___d_e_b_u_g.html#ga00f6ba164717bd919fa6e9b25e1bbc21"/>
<a href="group___r_s___d_e_b_u_g.html#ga23de0006aa08984cfeddb6aa5e512fa1"/>
<a href="group___r_s___d_e_b_u_g.html#ga30a03e8d8912be85a203c829b581f999"/>
<a href="group___r_s___d_e_b_u_g.html#ga49af29ab3927cad105c1d2b018a767e9"/>
<a href="group___r_s___d_e_b_u_g.html#ga50ccb119acf302969b7fdcb58f2130e4"/>
<a href="group___r_s___d_e_b_u_g.html#ga8017fb05a56a1b667244f1f786fa9c57"/>
<a href="group___r_s___d_e_b_u_g.html#ga830a5ed90667bf50ab8c409dcadb2a39"/>
<a href="group___r_s___d_e_b_u_g.html#ga8c401e4d5d440001c1d879984107bb79"/>
<a href="group___r_s___d_e_b_u_g.html#gaa026e9bf8672373cfe265f96ea0f6061"/>
<a href="group___r_s___d_e_b_u_g.html#gab9d308969f924234bc879a93ffb80473"/>
<a href="group___r_s___d_e_b_u_g.html#gade69fd26928788dd6f0278fcd15885ff"/>
<a href="group___r_s___t_o_o_l_s.html"/>
<a href="group___r_s___t_o_o_l_s.html#ga13e1c056947b06c7dc29b90d22f683a7"/>
<a href="group___r_s___t_o_o_l_s.html#ga1b59697f4b7fad81f9d5fd9fffebac2f"/>
<a href="group___r_s___t_o_o_l_s.html#ga1cd98c55f6f359e3ab93d0f9cf912ab5"/>
<a href="group___r_s___t_o_o_l_s.html#ga1de0a597d043b64d0a19bc393cc1b3fd"/>
<a href="group___r_s___t_o_o_l_s.html#ga1ffe808b3640f253b1783295d6990962"/>
<a href="group___r_s___t_o_o_l_s.html#ga2d356b2a0b4af43460bb2cacb81779ce"/>
<a href="group___r_s___t_o_o_l_s.html#ga2e69a97a8b6e0b5855116d88c0e17cb9"/>
<a href="group___r_s___t_o_o_l_s.html#ga330f6cfcdaab1f239054c0d91be3c5bc"/>
<a href="group___r_s___t_o_o_l_s.html#ga3500b3fa91d05a94cf8da5cc5ce338f5"/>
<a href="group___r_s___t_o_o_l_s.html#ga7180b913ba795c07637680982d7f45ac"/>
<a href="group___r_s___t_o_o_l_s.html#ga727154b368397b4796aa892de12a2289"/>
<a href="group___r_s___t_o_o_l_s.html#ga8b7bcc84cb8192a58fe87b662fbd9690"/>
<a href="group___r_s___t_o_o_l_s.html#ga9560ee688d4bcdd90a47c110be4ecf92"/>
<a href="group___r_s___t_o_o_l_s.html#gaa261bb0d37e7f18f04fb4353aa0f5c45"/>
<a href="group___r_s___t_o_o_l_s.html#gab27567456df0329130c7fe4fc43c6ee1"/>
<a href="group___r_s___t_o_o_l_s.html#gab43a3b93c85adee5e3c561922d7ea2ef"/>
<a href="group___r_s___t_o_o_l_s.html#gab7c55bd8bb15b0eecc8c525019d4a1cc"/>
<a href="group___r_s___t_o_o_l_s.html#gac3a7bbc060a4250c160d51f0a0ca6cf8"/>
<a href="group___r_s___t_o_o_l_s.html#gad3d2e8fb9c2879e1ddb967cff6124521"/>
<a href="group___r_s___t_o_o_l_s.html#gadaef5cb7e494d0fd139199f5b6cbeb86"/>
<a href="group___r_s___t_o_o_l_s.html#gae0f359f0af89adf45bac275a3f5ee34d"/>
<a href="group___r_s___t_o_o_l_s.html#gaeddade966945ed376bb152151b493d6f"/>
<a href="group___r_s___t_o_o_l_s.html#gga13e1c056947b06c7dc29b90d22f683a7a15953c59b7f547b318edab14070873c5"/>
<a href="group___r_s___t_o_o_l_s.html#gga13e1c056947b06c7dc29b90d22f683a7ad118e897a520ddc9c77a905684079550"/>
<a href="group___r_s___t_o_o_l_s.html#gga13e1c056947b06c7dc29b90d22f683a7aee8cfd8ce9edacc055a195ed454a49dc"/>
<a href="group___r_s___t_o_o_l_s.html#gga727154b368397b4796aa892de12a2289a617b5d1b7b3e29282adf618498aeb424"/>
<a href="group___r_s___t_o_o_l_s.html#gga727154b368397b4796aa892de12a2289a6cd2a09aa69229673793b145e8780398"/>
<a href="group___r_s___t_o_o_l_s.html#gga727154b368397b4796aa892de12a2289a93268cda1783258595e08d96c68d2e2b"/>
<a href="group___r_s___t_o_o_l_s.html#gga727154b368397b4796aa892de12a2289aa867cb943011ff4671fe31df501a0224"/>
<a href="group___r_s___t_o_o_l_s.html#gga727154b368397b4796aa892de12a2289aaec41489d67a504f7512c18f2e86e3ea"/>
<a href="group___r_s___t_o_o_l_s.html#gga727154b368397b4796aa892de12a2289ab3d9c3f5d30e6512ebb920d5deb1d055"/>
<a href="group___r_s___t_o_o_l_s.html#gga727154b368397b4796aa892de12a2289ac65c1b940ebe72a823bc4decccf011c6"/>
<a href="group___r_s___t_o_o_l_s.html#gga727154b368397b4796aa892de12a2289ae987f4cdb076c030c832a0176867bd6f"/>
<a href="group___r_s___t_o_o_l_s.html#ggab7c55bd8bb15b0eecc8c525019d4a1cca5699efe0ab3cdfd4f6ef175ecb809306"/>
<a href="group___r_s___t_o_o_l_s.html#ggab7c55bd8bb15b0eecc8c525019d4a1cca95c6ce0fee466ba98e43213d001ecc16"/>
<a href="group___r_s___t_o_o_l_s.html#ggab7c55bd8bb15b0eecc8c525019d4a1ccac5554f0ed84242010a53eb518834d8e8"/>
<a href="group___r_s___t_o_o_l_s.html#ggab7c55bd8bb15b0eecc8c525019d4a1ccaf0519a0ddda6fff97dd61ce0f3320df9"/>
<a href="index.html"/>
<a href="index.html#autotoc_md1-склонируйте-субмодуль-в-ваш-проект"/>
<a href="index.html#autotoc_md2-скопируйте-файлы-конфигурации-в-отдельную-папку-в-вашем-проекте-вне-субмодуля-и-удалите-__-из-имени-файлов"/>
<a href="index.html#autotoc_md3-настройте-конфигурацию-под-ваш-проект"/>
<a href="index.html#autotoc_md31-настройка-периферии"/>
<a href="index.html#autotoc_md32-подключение-обработчиков-прерываний"/>
<a href="index.html#autotoc_md33-в-modbus_configh-укажите-параметры-устройства"/>
<a href="index.html#autotoc_md34-инициализация-в-коде"/>
<a href="index.html#autotoc_md35-настройка-карты-данных"/>
<a href="index.html#autotoc_md36-доступ-к-данным-в-коде"/>
<a href="index.html#autotoc_md5-обновление-библиотеки"/>
<a href="index.html#инструкция-по-подключению"/>
<a href="index.html#структура-библиотеки"/>
<a href="modbus_8c.html"/>
<a href="modbus_8c.html#ae7c4bdaeae2e9deb8422ae0a0fc64cb4"/>
<a href="modbus_8c_source.html"/>
<a href="modbus_8h.html"/>
<a href="modbus_8h_source.html"/>
<a href="modbus__coils_8c.html"/>
<a href="modbus__coils_8c_source.html"/>
<a href="modbus__coils_8h.html"/>
<a href="modbus__coils_8h_source.html"/>
<a href="modbus__config_8h.html"/>
<a href="modbus__config_8h_source.html"/>
<a href="modbus__core_8c.html"/>
<a href="modbus__core_8c_source.html"/>
<a href="modbus__core_8h.html"/>
<a href="modbus__core_8h_source.html"/>
<a href="modbus__data_8h.html"/>
<a href="modbus__data_8h.html#a22bd1273e01d32f90a279b517d1737b6"/>
<a href="modbus__data_8h.html#a438d957058fcf102c66922f0eada3af2"/>
<a href="modbus__data_8h.html#a5057c379abcae88db30ad094eceb952d"/>
<a href="modbus__data_8h.html#a791dfd31cc06338acdd8a2eb3b7032e6"/>
<a href="modbus__data_8h.html#a97c0b1e20498bca34f6dfe0ac0d97b30"/>
<a href="modbus__data_8h.html#acf40437374a3227e661db1a18bcef7d7"/>
<a href="modbus__data_8h_source.html"/>
<a href="modbus__devid_8c.html"/>
<a href="modbus__devid_8c_source.html"/>
<a href="modbus__devid_8h.html"/>
<a href="modbus__devid_8h_source.html"/>
<a href="modbus__diag_8c.html"/>
<a href="modbus__diag_8c_source.html"/>
<a href="modbus__diag_8h.html"/>
<a href="modbus__diag_8h_source.html"/>
<a href="modbus__holdregs_8c.html"/>
<a href="modbus__holdregs_8c_source.html"/>
<a href="modbus__holdregs_8h.html"/>
<a href="modbus__holdregs_8h_source.html"/>
<a href="modbus__inputregs_8c.html"/>
<a href="modbus__inputregs_8c_source.html"/>
<a href="modbus__inputregs_8h.html"/>
<a href="modbus__inputregs_8h_source.html"/>
<a href="modbus__master_8c.html"/>
<a href="modbus__master_8c.html#a79e3f84b9daba8a42c8ca6026133acc5"/>
<a href="modbus__master_8c_source.html"/>
<a href="modbus__master_8h.html"/>
<a href="modbus__master_8h_source.html"/>
<a href="modbus__slave_8c.html"/>
<a href="modbus__slave_8c.html#a79e3f84b9daba8a42c8ca6026133acc5"/>
<a href="modbus__slave_8c_source.html"/>
<a href="modbus__slave_8h.html"/>
<a href="modbus__slave_8h_source.html"/>
<a href="rs__message_8c.html"/>
<a href="rs__message_8c_source.html"/>
<a href="rs__message_8h.html"/>
<a href="rs__message_8h_source.html"/>
<a href="struct_m_b___data_coils_type_def-members.html"/>
<a href="struct_m_b___data_coils_type_def.html"/>
<a href="struct_m_b___data_hold_regs_type_def-members.html"/>
<a href="struct_m_b___data_hold_regs_type_def.html"/>
<a href="struct_m_b___data_in_regs_type_def-members.html"/>
<a href="struct_m_b___data_in_regs_type_def.html"/>
<a href="struct_m_b___data_structure_type_def-members.html"/>
<a href="struct_m_b___data_structure_type_def.html"/>
<a href="struct_m_b___data_structure_type_def.html#a27d12400f322702e9d87c492e9628313"/>
<a href="struct_m_b___data_structure_type_def.html#a349e19f82ba85cb29a911468ceee76b2"/>
<a href="struct_m_b___data_structure_type_def.html#ac0bf877607c54c79c1d09c4530fdcbca"/>
<a href="struct_m_b___dev_id_msg_type_def-members.html"/>
<a href="struct_m_b___dev_id_msg_type_def.html"/>
<a href="struct_m_b___dev_id_msg_type_def.html#a1ef4b6db2785f723b26b0d9abe6f371e"/>
<a href="struct_m_b___dev_id_msg_type_def.html#aefb693da9f6b86a6da833c4177302092"/>
<a href="struct_m_b___device_identifications_type_def-members.html"/>
<a href="struct_m_b___device_identifications_type_def.html"/>
<a href="struct_m_b___device_object_type_def-members.html"/>
<a href="struct_m_b___device_object_type_def.html"/>
<a href="struct_m_b___diagnostics_info_type_def-members.html"/>
<a href="struct_m_b___diagnostics_info_type_def.html"/>
<a href="struct_m_b___diagnostics_info_type_def.html#a0630515f367a8efd8a17a6335e073a59"/>
<a href="struct_m_b___diagnostics_info_type_def.html#a16f3410ce798eb9693e849de1c5d5556"/>
<a href="struct_m_b___diagnostics_info_type_def.html#a57b66f80d2b787eb08e73a43d5550efa"/>
<a href="struct_m_b___diagnostics_info_type_def.html#a6d9ae4feaf8f1e25b4a10589b417da4e"/>
<a href="struct_m_b___diagnostics_info_type_def.html#a944999cfdaffab608a70b02e1421dd75"/>
<a href="struct_m_b___diagnostics_info_type_def.html#a95433ac4dbdb75804b1cc04b736b9791"/>
<a href="struct_m_b___diagnostics_info_type_def.html#a9bbda0c24217f018af56f7bcb46515b1"/>
<a href="struct_m_b___diagnostics_info_type_def.html#ad2f014e8e289ad4241a53bc1ad83f411"/>
<a href="struct_m_b___diagnostics_info_type_def.html#aed6ee3bf2286f07a709e885b88bd4439"/>
<a href="struct_m_b___diagnostics_info_type_def.html#af26e2a0b62c5f2926db63e2125bddc3a"/>
<a href="struct_r_s___flags_type_def-members.html"/>
<a href="struct_r_s___flags_type_def.html"/>
<a href="struct_r_s___flags_type_def.html#a1513dc1265334c20a82b55b1090024c8"/>
<a href="struct_r_s___flags_type_def.html#a15cc785cd0a154ab681720eaaf7cd752"/>
<a href="struct_r_s___flags_type_def.html#a2af603f95b5a86c881370fad44fba9fe"/>
<a href="struct_r_s___flags_type_def.html#a4f26eda2d03a726d98fa6623f1abb814"/>
<a href="struct_r_s___flags_type_def.html#a5f8d7960b41717c6edb84fc7bfc06d41"/>
<a href="struct_r_s___flags_type_def.html#a63ea1ac11725b29af72afb2942766633"/>
<a href="struct_r_s___flags_type_def.html#a8a158c34723d093c7922c014e99739f4"/>
<a href="struct_r_s___flags_type_def.html#a8bbeaa5f75f0b028bfa4038486a4d683"/>
<a href="struct_r_s___flags_type_def.html#a9371c9de732e4669b16cfdc69f4aaca9"/>
<a href="struct_r_s___flags_type_def.html#a98c9a17358406818f3017a2997787c3f"/>
<a href="struct_r_s___flags_type_def.html#adfc04070a08e90f514072fff20efc744"/>
<a href="struct_r_s___handle_type_def-members.html"/>
<a href="struct_r_s___handle_type_def.html"/>
<a href="struct_r_s___handle_type_def.html#a01e2c95a23aa3eed1f002e2329a10942"/>
<a href="struct_r_s___handle_type_def.html#a1bc8d1ccb57c20cad4f70a04f751a67a"/>
<a href="struct_r_s___handle_type_def.html#a3b377cb0eabf384a7e715fb030218290"/>
<a href="struct_r_s___handle_type_def.html#a495a29011412451e53459f9e1513814d"/>
<a href="struct_r_s___handle_type_def.html#a6a3f47a1a3476d6e9df997e1dc9da8c4"/>
<a href="struct_r_s___handle_type_def.html#a6e584c7559c702d3382dbb9aa572b71b"/>
<a href="struct_r_s___handle_type_def.html#a6fa98c2955d01e07dc59f73d072bb37e"/>
<a href="struct_r_s___handle_type_def.html#a82f0ad79cd234cd26076bfcfbc5c1194"/>
<a href="struct_r_s___handle_type_def.html#a8bbcb263ae7a61790b559bcb55cd9aa9"/>
<a href="struct_r_s___handle_type_def.html#aa6da72b8ad446f76484783ca8af0e565"/>
<a href="struct_r_s___handle_type_def.html#ade93e3a680f5fbc5275f58e20227198b"/>
<a href="struct_r_s___handle_type_def.html#aef8875f7628f280ed88f74eb762e0d99"/>
<a href="struct_r_s___msg_type_def-members.html"/>
<a href="struct_r_s___msg_type_def.html"/>
<a href="struct_r_s___msg_type_def.html#a176d779ab0d7fd06a4303e6e6acb6ca9"/>
<a href="struct_r_s___msg_type_def.html#a1ccb2bf492218a6ae3a5b6ad5cd4c82f"/>
<a href="struct_r_s___msg_type_def.html#a277ed439b65aedbf03bd112c073e6a32"/>
<a href="struct_r_s___msg_type_def.html#a3dab5eaf3a1dd5719b8bfec1adad0d39"/>
<a href="struct_r_s___msg_type_def.html#a423ab838d4c113fd6392452fd44dc1c0"/>
<a href="struct_r_s___msg_type_def.html#a51c020dacb24e4ffcff28b1d3c6a01ae"/>
<a href="struct_r_s___msg_type_def.html#a5c69bf212dc5e7dc2eaa50971e27e2a6"/>
<a href="struct_r_s___msg_type_def.html#aacbc6754621bd84742cd6c2ba65ad094"/>
<a href="struct_r_s___msg_type_def.html#af99048a71119ba4c17772bd5544b3eef"/>
<a href="topics.html"/>
</body>
</html>

View File

@@ -0,0 +1,198 @@
/*
@licstart The following is the entire license notice for the JavaScript code in this file.
The MIT License (MIT)
Copyright (C) 1997-2020 by Dimitri van Heesch
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
and associated documentation files (the "Software"), to deal in the Software without restriction,
including without limitation the rights to use, copy, modify, merge, publish, distribute,
sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or
substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@licend The above is the entire license notice for the JavaScript code in this file
*/
function toggleVisibility(linkObj) {
return dynsection.toggleVisibility(linkObj);
}
let dynsection = {
// helper function
updateStripes : function() {
$('table.directory tr').
removeClass('even').filter(':visible:even').addClass('even');
$('table.directory tr').
removeClass('odd').filter(':visible:odd').addClass('odd');
},
toggleVisibility : function(linkObj) {
const base = $(linkObj).attr('id');
const summary = $('#'+base+'-summary');
const content = $('#'+base+'-content');
const trigger = $('#'+base+'-trigger');
const src=$(trigger).attr('src');
if (content.is(':visible')===true) {
content.slideUp('fast');
summary.show();
$(linkObj).find('.arrowhead').addClass('closed').removeClass('opened');
} else {
content.slideDown('fast');
summary.hide();
$(linkObj).find('.arrowhead').removeClass('closed').addClass('opened');
}
return false;
},
toggleLevel : function(level) {
$('table.directory tr').each(function() {
const l = this.id.split('_').length-1;
const i = $('#img'+this.id.substring(3));
const a = $('#arr'+this.id.substring(3));
if (l<level+1) {
i.find('.folder-icon').addClass('open');
a.find('.arrowhead').removeClass('closed').addClass('opened');
$(this).show();
} else if (l==level+1) {
a.find('.arrowhead').removeClass('opened').addClass('closed');
i.find('.folder-icon').removeClass('open');
$(this).show();
} else {
$(this).hide();
}
});
this.updateStripes();
},
toggleFolder : function(id) {
// the clicked row
const currentRow = $('#row_'+id);
// all rows after the clicked row
const rows = currentRow.nextAll("tr");
const re = new RegExp('^row_'+id+'\\d+_$', "i"); //only one sub
// only match elements AFTER this one (can't hide elements before)
const childRows = rows.filter(function() { return this.id.match(re); });
// first row is visible we are HIDING
if (childRows.filter(':first').is(':visible')===true) {
// replace down arrow by right arrow for current row
const currentRowSpans = currentRow.find("span");
currentRowSpans.filter(".iconfolder").find('.folder-icon').removeClass("open");
currentRowSpans.filter(".opened").removeClass("opened").addClass("closed");
rows.filter("[id^=row_"+id+"]").hide(); // hide all children
} else { // we are SHOWING
// replace right arrow by down arrow for current row
const currentRowSpans = currentRow.find("span");
currentRowSpans.filter(".iconfolder").find('.folder-icon').addClass("open");
currentRowSpans.filter(".closed").removeClass("closed").addClass("opened");
// replace down arrows by right arrows for child rows
const childRowsSpans = childRows.find("span");
childRowsSpans.filter(".iconfolder").find('.folder-icon').removeClass("open");
childRowsSpans.filter(".opened").removeClass("opened").addClass("closed");
childRows.show(); //show all children
}
this.updateStripes();
},
toggleInherit : function(id) {
let rows = $('tr.inherit.'+id);
let header = $('tr.inherit_header.'+id);
if (rows.filter(':first').is(':visible')===true) {
rows.hide();
$(header).find('.arrowhead').addClass('closed').removeClass('opened');
} else {
rows.show();
$(header).find('.arrowhead').removeClass('closed').addClass('opened');
}
},
};
let codefold = {
opened : true,
// toggle all folding blocks
toggle_all : function() {
if (this.opened) {
$('#fold_all').addClass('plus').removeClass('minus');
$('div[id^=foldopen]').hide();
$('div[id^=foldclosed]').show();
$('div[id^=foldclosed] span.fold').removeClass('minus').addClass('plus');
} else {
$('#fold_all').addClass('minus').removeClass('plus');
$('div[id^=foldopen]').show();
$('div[id^=foldclosed]').hide();
}
this.opened=!this.opened;
},
// toggle single folding block
toggle : function(id) {
$('#foldopen'+id).toggle();
$('#foldclosed'+id).toggle();
$('#foldopen'+id).next().find('span.fold').addClass('plus').removeClass('minus');
},
init : function() {
$('span[class=lineno]').css({
'padding-right':'4px',
'margin-right':'2px',
'display':'inline-block',
'width':'54px',
'background':'linear-gradient(var(--fold-line-color),var(--fold-line-color)) no-repeat 46px/2px 100%'
});
// add global toggle to first line
$('span[class=lineno]:first').append('<span class="fold minus" id="fold_all" '+
'onclick="javascript:codefold.toggle_all();"></span>');
// add vertical lines to other rows
$('span[class=lineno]').not(':eq(0)').append('<span class="fold"></span>');
// add toggle controls to lines with fold divs
$('div[class=foldopen]').each(function() {
// extract specific id to use
const id = $(this).attr('id').replace('foldopen','');
// extract start and end foldable fragment attributes
const start = $(this).attr('data-start');
const end = $(this).attr('data-end');
// replace normal fold span with controls for the first line of a foldable fragment
$(this).find('span[class=fold]:first').replaceWith('<span class="fold minus" '+
'onclick="javascript:codefold.toggle(\''+id+'\');"></span>');
// append div for folded (closed) representation
$(this).after('<div id="foldclosed'+id+'" class="foldclosed" style="display:none;"></div>');
// extract the first line from the "open" section to represent closed content
const line = $(this).children().first().clone();
// remove any glow that might still be active on the original line
$(line).removeClass('glow');
if (start) {
// if line already ends with a start marker (e.g. trailing {), remove it
$(line).html($(line).html().replace(new RegExp('\\s*'+start+'\\s*$','g'),''));
}
// replace minus with plus symbol
$(line).find('span[class=fold]').addClass('plus').removeClass('minus');
// append ellipsis
$(line).append(' '+start+'<a href="javascript:codefold.toggle(\''+id+'\')">&#8230;</a>'+end);
// insert constructed line into closed div
$('#foldclosed'+id).html(line);
});
},
};
/* @license-end */
$(function() {
$('.code,.codeRef').each(function() {
$(this).data('powertip',$('#a'+$(this).attr('href').replace(/.*\//,'').replace(/[^a-z_A-Z0-9]/g,'_')).html());
$.fn.powerTip.smartPlacementLists.s = [ 's', 'n', 'ne', 'se' ];
$(this).powerTip({ placement: 's', smartPlacement: true, mouseOnToPopup: true });
});
});

View File

@@ -0,0 +1,146 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Modbus: File List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<script type="text/javascript" src="darkmode_toggle.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">Modbus<span id="projectnumber">&#160;0.3</span>
</div>
<div id="projectbrief">Библиотека Modbus для STM</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.14.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
<script type="text/javascript">
$(function() { codefold.init(); });
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(function(){initNavTree('files.html','',''); });
</script>
<div id="container">
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">File List</div></div>
</div><!--header-->
<div class="contents">
<div class="textblock">Here is a list of all documented files with brief descriptions:</div><div class="directory">
<div class="levels">[detail level <span onclick="javascript:dynsection.toggleLevel(1);">1</span><span onclick="javascript:dynsection.toggleLevel(2);">2</span>]</div><table class="directory">
<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_0_" class="arrow" onclick="dynsection.toggleFolder('0_')"><span class="arrowhead opened"></span></span><span id="img_0_" class="iconfolder" onclick="dynsection.toggleFolder('0_')"><div class="folder-icon open"></div></span><a class="el" href="dir_f93dfce691d792349f1c14ede440e2e6.html" target="_self">Inc</a></td><td class="desc"></td></tr>
<tr id="row_0_0_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="____crc__algs_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><b>__crc_algs.h</b></td><td class="desc"></td></tr>
<tr id="row_0_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="____modbus__compat_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><a class="el" href="____modbus__compat_8h.html" target="_self">__modbus_compat.h</a></td><td class="desc">Модуль для совместимости библиотеки MODBUS </td></tr>
<tr id="row_0_2_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="modbus_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><a class="el" href="modbus_8h.html" target="_self">modbus.h</a></td><td class="desc">Главный заголовочный файл Modbus библиотеки </td></tr>
<tr id="row_0_3_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="modbus__coils_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><a class="el" href="modbus__coils_8h.html" target="_self">modbus_coils.h</a></td><td class="desc">Работа с коилами Modbus </td></tr>
<tr id="row_0_4_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="modbus__core_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><a class="el" href="modbus__core_8h.html" target="_self">modbus_core.h</a></td><td class="desc">Ядро Modbus протокола - определения и структуры </td></tr>
<tr id="row_0_5_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="modbus__devid_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><a class="el" href="modbus__devid_8h.html" target="_self">modbus_devid.h</a></td><td class="desc">Идентификаторы устройства Modbus </td></tr>
<tr id="row_0_6_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="modbus__diag_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><a class="el" href="modbus__diag_8h.html" target="_self">modbus_diag.h</a></td><td class="desc">Диагностика устройства Modbus </td></tr>
<tr id="row_0_7_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="modbus__holdregs_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><a class="el" href="modbus__holdregs_8h.html" target="_self">modbus_holdregs.h</a></td><td class="desc">Работа с регистрами хранения Modbus </td></tr>
<tr id="row_0_8_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="modbus__inputregs_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><a class="el" href="modbus__inputregs_8h.html" target="_self">modbus_inputregs.h</a></td><td class="desc">Работа с входными регистрами Modbus </td></tr>
<tr id="row_0_9_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="modbus__master_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><a class="el" href="modbus__master_8h.html" target="_self">modbus_master.h</a></td><td class="desc">Главный заголовочный файл Modbus библиотеки </td></tr>
<tr id="row_0_10_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="modbus__slave_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><a class="el" href="modbus__slave_8h.html" target="_self">modbus_slave.h</a></td><td class="desc">Главный заголовочный файл Modbus библиотеки </td></tr>
<tr id="row_0_11_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="rs__message_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><a class="el" href="rs__message_8h.html" target="_self">rs_message.h</a></td><td class="desc">Библиотека обмена сообщениями по RS-интерфейсу </td></tr>
<tr id="row_1_" class="odd"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_1_" class="arrow" onclick="dynsection.toggleFolder('1_')"><span class="arrowhead opened"></span></span><span id="img_1_" class="iconfolder" onclick="dynsection.toggleFolder('1_')"><div class="folder-icon open"></div></span><a class="el" href="dir_413f4e031a85da0d68269c6fd2f76e1c.html" target="_self">Src</a></td><td class="desc"></td></tr>
<tr id="row_1_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="____crc__algs_8c_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><b>__crc_algs.c</b></td><td class="desc"></td></tr>
<tr id="row_1_1_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="____modbus__compat_8c_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><a class="el" href="____modbus__compat_8c.html" target="_self">__modbus_compat.c</a></td><td class="desc">Модуль для совместимости библиотеки MODBUS </td></tr>
<tr id="row_1_2_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="modbus_8c_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><a class="el" href="modbus_8c.html" target="_self">modbus.c</a></td><td class="desc">Модуль для реализации MODBUS </td></tr>
<tr id="row_1_3_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="modbus__coils_8c_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><a class="el" href="modbus__coils_8c.html" target="_self">modbus_coils.c</a></td><td class="desc">Реализация работы с коилами Modbus </td></tr>
<tr id="row_1_4_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="modbus__core_8c_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><a class="el" href="modbus__core_8c.html" target="_self">modbus_core.c</a></td><td class="desc">Базовая реализация ядра Modbus </td></tr>
<tr id="row_1_5_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="modbus__devid_8c_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><a class="el" href="modbus__devid_8c.html" target="_self">modbus_devid.c</a></td><td class="desc">Реализация идентификаторов устройства Modbus </td></tr>
<tr id="row_1_6_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="modbus__diag_8c_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><a class="el" href="modbus__diag_8c.html" target="_self">modbus_diag.c</a></td><td class="desc">Реализация диагностики устройства Modbus </td></tr>
<tr id="row_1_7_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="modbus__holdregs_8c_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><a class="el" href="modbus__holdregs_8c.html" target="_self">modbus_holdregs.c</a></td><td class="desc">Реализация работы с регистрами хранения Modbus </td></tr>
<tr id="row_1_8_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="modbus__inputregs_8c_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><a class="el" href="modbus__inputregs_8c.html" target="_self">modbus_inputregs.c</a></td><td class="desc">Реализация работы с входными регистрами Modbus </td></tr>
<tr id="row_1_9_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="modbus__master_8c_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><a class="el" href="modbus__master_8c.html" target="_self">modbus_master.c</a></td><td class="desc">Модуль для реализации мастера MODBUS </td></tr>
<tr id="row_1_10_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="modbus__slave_8c_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><a class="el" href="modbus__slave_8c.html" target="_self">modbus_slave.c</a></td><td class="desc">Модуль для реализации слейв MODBUS </td></tr>
<tr id="row_1_11_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="rs__message_8c_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><a class="el" href="rs__message_8c.html" target="_self">rs_message.c</a></td><td class="desc">Реализация протоколов обмена по RS/UART </td></tr>
<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="____modbus__data_8c_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><b>__modbus_data.c</b></td><td class="desc"></td></tr>
<tr id="row_3_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="modbus__config_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><a class="el" href="modbus__config_8h.html" target="_self">modbus_config.h</a></td><td class="desc">Конфигурационные параметры Modbus устройства </td></tr>
<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="modbus__data_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><a class="el" href="modbus__data_8h.html" target="_self">modbus_data.h</a></td><td class="desc">Определения структур данных Modbus устройства </td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
</div><!-- doc-content -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,8 @@
var files_dup =
[
[ "Inc", "dir_f93dfce691d792349f1c14ede440e2e6.html", "dir_f93dfce691d792349f1c14ede440e2e6" ],
[ "Src", "dir_413f4e031a85da0d68269c6fd2f76e1c.html", "dir_413f4e031a85da0d68269c6fd2f76e1c" ],
[ "__modbus_data.c", "____modbus__data_8c_source.html", null ],
[ "modbus_config.h", "modbus__config_8h.html", "modbus__config_8h" ],
[ "modbus_data.h", "modbus__data_8h.html", "modbus__data_8h" ]
];

View File

@@ -0,0 +1,217 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Modbus: Class Members</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<script type="text/javascript" src="darkmode_toggle.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">Modbus<span id="projectnumber">&#160;0.3</span>
</div>
<div id="projectbrief">Библиотека Modbus для STM</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.14.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
<script type="text/javascript">
$(function() { codefold.init(); });
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(function(){initNavTree('functions.html','',''); });
</script>
<div id="container">
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="contents">
<div class="textblock">Here is a list of all documented class members with links to the class documentation for each member:</div>
<h3 class="doxsection"><a id="index_a" name="index_a"></a>- a -</h3><ul>
<li>Addr&#160;:&#160;<a class="el" href="struct_r_s___msg_type_def.html#af99048a71119ba4c17772bd5544b3eef">RS_MsgTypeDef</a></li>
</ul>
<h3 class="doxsection"><a id="index_b" name="index_b"></a>- b -</h3><ul>
<li>BusCharacterOverrun&#160;:&#160;<a class="el" href="struct_m_b___diagnostics_info_type_def.html#a6d9ae4feaf8f1e25b4a10589b417da4e">MB_DiagnosticsInfoTypeDef</a></li>
<li>BusCommunicationErr&#160;:&#160;<a class="el" href="struct_m_b___diagnostics_info_type_def.html#aed6ee3bf2286f07a709e885b88bd4439">MB_DiagnosticsInfoTypeDef</a></li>
<li>BusExceptionErr&#160;:&#160;<a class="el" href="struct_m_b___diagnostics_info_type_def.html#a95433ac4dbdb75804b1cc04b736b9791">MB_DiagnosticsInfoTypeDef</a></li>
<li>BusMessage&#160;:&#160;<a class="el" href="struct_m_b___diagnostics_info_type_def.html#a0630515f367a8efd8a17a6335e073a59">MB_DiagnosticsInfoTypeDef</a></li>
<li>ByteCnt&#160;:&#160;<a class="el" href="struct_r_s___msg_type_def.html#a5c69bf212dc5e7dc2eaa50971e27e2a6">RS_MsgTypeDef</a></li>
</ul>
<h3 class="doxsection"><a id="index_c" name="index_c"></a>- c -</h3><ul>
<li>Coils&#160;:&#160;<a class="el" href="struct_m_b___data_structure_type_def.html#a349e19f82ba85cb29a911468ceee76b2">MB_DataStructureTypeDef</a></li>
<li>Conformity&#160;:&#160;<a class="el" href="struct_m_b___dev_id_msg_type_def.html#a1ef4b6db2785f723b26b0d9abe6f371e">MB_DevIdMsgTypeDef</a></li>
</ul>
<h3 class="doxsection"><a id="index_d" name="index_d"></a>- d -</h3><ul>
<li>DataUpdated&#160;:&#160;<a class="el" href="struct_r_s___flags_type_def.html#a4f26eda2d03a726d98fa6623f1abb814">RS_FlagsTypeDef</a></li>
<li>DeferredResponse&#160;:&#160;<a class="el" href="struct_r_s___flags_type_def.html#a63ea1ac11725b29af72afb2942766633">RS_FlagsTypeDef</a></li>
<li>DeviceMode&#160;:&#160;<a class="el" href="struct_m_b___diagnostics_info_type_def.html#af26e2a0b62c5f2926db63e2125bddc3a">MB_DiagnosticsInfoTypeDef</a></li>
<li>DevId&#160;:&#160;<a class="el" href="struct_r_s___msg_type_def.html#a51c020dacb24e4ffcff28b1d3c6a01ae">RS_MsgTypeDef</a></li>
<li>DiagnosticRegister&#160;:&#160;<a class="el" href="struct_m_b___diagnostics_info_type_def.html#a9bbda0c24217f018af56f7bcb46515b1">MB_DiagnosticsInfoTypeDef</a></li>
</ul>
<h3 class="doxsection"><a id="index_e" name="index_e"></a>- e -</h3><ul>
<li>EchoResponse&#160;:&#160;<a class="el" href="struct_r_s___flags_type_def.html#a5f8d7960b41717c6edb84fc7bfc06d41">RS_FlagsTypeDef</a></li>
<li>Except_Code&#160;:&#160;<a class="el" href="struct_r_s___msg_type_def.html#a3dab5eaf3a1dd5719b8bfec1adad0d39">RS_MsgTypeDef</a></li>
</ul>
<h3 class="doxsection"><a id="index_f" name="index_f"></a>- f -</h3><ul>
<li>f&#160;:&#160;<a class="el" href="struct_r_s___handle_type_def.html#a6fa98c2955d01e07dc59f73d072bb37e">RS_HandleTypeDef</a></li>
<li>FuncCode&#160;:&#160;<a class="el" href="struct_r_s___msg_type_def.html#a176d779ab0d7fd06a4303e6e6acb6ca9">RS_MsgTypeDef</a></li>
</ul>
<h3 class="doxsection"><a id="index_h" name="index_h"></a>- h -</h3><ul>
<li>HoldRegs&#160;:&#160;<a class="el" href="struct_m_b___data_structure_type_def.html#a27d12400f322702e9d87c492e9628313">MB_DataStructureTypeDef</a></li>
<li>htim&#160;:&#160;<a class="el" href="struct_r_s___handle_type_def.html#aef8875f7628f280ed88f74eb762e0d99">RS_HandleTypeDef</a></li>
<li>huart&#160;:&#160;<a class="el" href="struct_r_s___handle_type_def.html#ade93e3a680f5fbc5275f58e20227198b">RS_HandleTypeDef</a></li>
</ul>
<h3 class="doxsection"><a id="index_i" name="index_i"></a>- i -</h3><ul>
<li>ID&#160;:&#160;<a class="el" href="struct_r_s___handle_type_def.html#a01e2c95a23aa3eed1f002e2329a10942">RS_HandleTypeDef</a></li>
<li>InRegs&#160;:&#160;<a class="el" href="struct_m_b___data_structure_type_def.html#ac0bf877607c54c79c1d09c4530fdcbca">MB_DataStructureTypeDef</a></li>
</ul>
<h3 class="doxsection"><a id="index_l" name="index_l"></a>- l -</h3><ul>
<li>lastPacketTick&#160;:&#160;<a class="el" href="struct_r_s___handle_type_def.html#a3b377cb0eabf384a7e715fb030218290">RS_HandleTypeDef</a></li>
</ul>
<h3 class="doxsection"><a id="index_m" name="index_m"></a>- m -</h3><ul>
<li>MbAddr&#160;:&#160;<a class="el" href="struct_r_s___msg_type_def.html#a277ed439b65aedbf03bd112c073e6a32">RS_MsgTypeDef</a></li>
<li>MbCRC&#160;:&#160;<a class="el" href="struct_r_s___msg_type_def.html#a423ab838d4c113fd6392452fd44dc1c0">RS_MsgTypeDef</a></li>
<li>MbData&#160;:&#160;<a class="el" href="struct_r_s___msg_type_def.html#aacbc6754621bd84742cd6c2ba65ad094">RS_MsgTypeDef</a></li>
<li>MEI_Type&#160;:&#160;<a class="el" href="struct_m_b___dev_id_msg_type_def.html#aefb693da9f6b86a6da833c4177302092">MB_DevIdMsgTypeDef</a></li>
<li>MessageHandled&#160;:&#160;<a class="el" href="struct_r_s___flags_type_def.html#a98c9a17358406818f3017a2997787c3f">RS_FlagsTypeDef</a></li>
</ul>
<h3 class="doxsection"><a id="index_p" name="index_p"></a>- p -</h3><ul>
<li>pBufferPtr&#160;:&#160;<a class="el" href="struct_r_s___handle_type_def.html#a1bc8d1ccb57c20cad4f70a04f751a67a">RS_HandleTypeDef</a></li>
<li>pCallback&#160;:&#160;<a class="el" href="struct_r_s___handle_type_def.html#a6e584c7559c702d3382dbb9aa572b71b">RS_HandleTypeDef</a></li>
<li>pMessagePtr&#160;:&#160;<a class="el" href="struct_r_s___handle_type_def.html#a6a3f47a1a3476d6e9df997e1dc9da8c4">RS_HandleTypeDef</a></li>
</ul>
<h3 class="doxsection"><a id="index_q" name="index_q"></a>- q -</h3><ul>
<li>Qnt&#160;:&#160;<a class="el" href="struct_r_s___msg_type_def.html#a1ccb2bf492218a6ae3a5b6ad5cd4c82f">RS_MsgTypeDef</a></li>
</ul>
<h3 class="doxsection"><a id="index_r" name="index_r"></a>- r -</h3><ul>
<li>RS_Busy&#160;:&#160;<a class="el" href="struct_r_s___flags_type_def.html#a9371c9de732e4669b16cfdc69f4aaca9">RS_FlagsTypeDef</a></li>
<li>RS_Message_Size&#160;:&#160;<a class="el" href="struct_r_s___handle_type_def.html#a495a29011412451e53459f9e1513814d">RS_HandleTypeDef</a></li>
<li>RS_STATUS&#160;:&#160;<a class="el" href="struct_r_s___handle_type_def.html#a8bbcb263ae7a61790b559bcb55cd9aa9">RS_HandleTypeDef</a></li>
<li>RX_Busy&#160;:&#160;<a class="el" href="struct_r_s___flags_type_def.html#a15cc785cd0a154ab681720eaaf7cd752">RS_FlagsTypeDef</a></li>
<li>RX_Continue&#160;:&#160;<a class="el" href="struct_r_s___flags_type_def.html#a1513dc1265334c20a82b55b1090024c8">RS_FlagsTypeDef</a></li>
<li>RX_Done&#160;:&#160;<a class="el" href="struct_r_s___flags_type_def.html#a2af603f95b5a86c881370fad44fba9fe">RS_FlagsTypeDef</a></li>
<li>RX_Ongoing&#160;:&#160;<a class="el" href="struct_r_s___flags_type_def.html#adfc04070a08e90f514072fff20efc744">RS_FlagsTypeDef</a></li>
</ul>
<h3 class="doxsection"><a id="index_s" name="index_s"></a>- s -</h3><ul>
<li>SlaveBusy&#160;:&#160;<a class="el" href="struct_m_b___diagnostics_info_type_def.html#a16f3410ce798eb9693e849de1c5d5556">MB_DiagnosticsInfoTypeDef</a></li>
<li>SlaveMessage&#160;:&#160;<a class="el" href="struct_m_b___diagnostics_info_type_def.html#a57b66f80d2b787eb08e73a43d5550efa">MB_DiagnosticsInfoTypeDef</a></li>
<li>SlaveNAK&#160;:&#160;<a class="el" href="struct_m_b___diagnostics_info_type_def.html#a944999cfdaffab608a70b02e1421dd75">MB_DiagnosticsInfoTypeDef</a></li>
<li>SlaveNoResponse&#160;:&#160;<a class="el" href="struct_m_b___diagnostics_info_type_def.html#ad2f014e8e289ad4241a53bc1ad83f411">MB_DiagnosticsInfoTypeDef</a></li>
<li>sRS_Mode&#160;:&#160;<a class="el" href="struct_r_s___handle_type_def.html#a82f0ad79cd234cd26076bfcfbc5c1194">RS_HandleTypeDef</a></li>
<li>sRS_Timeout&#160;:&#160;<a class="el" href="struct_r_s___handle_type_def.html#aa6da72b8ad446f76484783ca8af0e565">RS_HandleTypeDef</a></li>
</ul>
<h3 class="doxsection"><a id="index_t" name="index_t"></a>- t -</h3><ul>
<li>TX_Busy&#160;:&#160;<a class="el" href="struct_r_s___flags_type_def.html#a8bbeaa5f75f0b028bfa4038486a4d683">RS_FlagsTypeDef</a></li>
<li>TX_Done&#160;:&#160;<a class="el" href="struct_r_s___flags_type_def.html#a8a158c34723d093c7922c014e99739f4">RS_FlagsTypeDef</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,217 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Modbus: Class Members - Variables</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<script type="text/javascript" src="darkmode_toggle.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">Modbus<span id="projectnumber">&#160;0.3</span>
</div>
<div id="projectbrief">Библиотека Modbus для STM</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.14.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
<script type="text/javascript">
$(function() { codefold.init(); });
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(function(){initNavTree('functions_vars.html','',''); });
</script>
<div id="container">
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="contents">
<div class="textblock">Here is a list of all documented variables with links to the class documentation for each member:</div>
<h3 class="doxsection"><a id="index_a" name="index_a"></a>- a -</h3><ul>
<li>Addr&#160;:&#160;<a class="el" href="struct_r_s___msg_type_def.html#af99048a71119ba4c17772bd5544b3eef">RS_MsgTypeDef</a></li>
</ul>
<h3 class="doxsection"><a id="index_b" name="index_b"></a>- b -</h3><ul>
<li>BusCharacterOverrun&#160;:&#160;<a class="el" href="struct_m_b___diagnostics_info_type_def.html#a6d9ae4feaf8f1e25b4a10589b417da4e">MB_DiagnosticsInfoTypeDef</a></li>
<li>BusCommunicationErr&#160;:&#160;<a class="el" href="struct_m_b___diagnostics_info_type_def.html#aed6ee3bf2286f07a709e885b88bd4439">MB_DiagnosticsInfoTypeDef</a></li>
<li>BusExceptionErr&#160;:&#160;<a class="el" href="struct_m_b___diagnostics_info_type_def.html#a95433ac4dbdb75804b1cc04b736b9791">MB_DiagnosticsInfoTypeDef</a></li>
<li>BusMessage&#160;:&#160;<a class="el" href="struct_m_b___diagnostics_info_type_def.html#a0630515f367a8efd8a17a6335e073a59">MB_DiagnosticsInfoTypeDef</a></li>
<li>ByteCnt&#160;:&#160;<a class="el" href="struct_r_s___msg_type_def.html#a5c69bf212dc5e7dc2eaa50971e27e2a6">RS_MsgTypeDef</a></li>
</ul>
<h3 class="doxsection"><a id="index_c" name="index_c"></a>- c -</h3><ul>
<li>Coils&#160;:&#160;<a class="el" href="struct_m_b___data_structure_type_def.html#a349e19f82ba85cb29a911468ceee76b2">MB_DataStructureTypeDef</a></li>
<li>Conformity&#160;:&#160;<a class="el" href="struct_m_b___dev_id_msg_type_def.html#a1ef4b6db2785f723b26b0d9abe6f371e">MB_DevIdMsgTypeDef</a></li>
</ul>
<h3 class="doxsection"><a id="index_d" name="index_d"></a>- d -</h3><ul>
<li>DataUpdated&#160;:&#160;<a class="el" href="struct_r_s___flags_type_def.html#a4f26eda2d03a726d98fa6623f1abb814">RS_FlagsTypeDef</a></li>
<li>DeferredResponse&#160;:&#160;<a class="el" href="struct_r_s___flags_type_def.html#a63ea1ac11725b29af72afb2942766633">RS_FlagsTypeDef</a></li>
<li>DeviceMode&#160;:&#160;<a class="el" href="struct_m_b___diagnostics_info_type_def.html#af26e2a0b62c5f2926db63e2125bddc3a">MB_DiagnosticsInfoTypeDef</a></li>
<li>DevId&#160;:&#160;<a class="el" href="struct_r_s___msg_type_def.html#a51c020dacb24e4ffcff28b1d3c6a01ae">RS_MsgTypeDef</a></li>
<li>DiagnosticRegister&#160;:&#160;<a class="el" href="struct_m_b___diagnostics_info_type_def.html#a9bbda0c24217f018af56f7bcb46515b1">MB_DiagnosticsInfoTypeDef</a></li>
</ul>
<h3 class="doxsection"><a id="index_e" name="index_e"></a>- e -</h3><ul>
<li>EchoResponse&#160;:&#160;<a class="el" href="struct_r_s___flags_type_def.html#a5f8d7960b41717c6edb84fc7bfc06d41">RS_FlagsTypeDef</a></li>
<li>Except_Code&#160;:&#160;<a class="el" href="struct_r_s___msg_type_def.html#a3dab5eaf3a1dd5719b8bfec1adad0d39">RS_MsgTypeDef</a></li>
</ul>
<h3 class="doxsection"><a id="index_f" name="index_f"></a>- f -</h3><ul>
<li>f&#160;:&#160;<a class="el" href="struct_r_s___handle_type_def.html#a6fa98c2955d01e07dc59f73d072bb37e">RS_HandleTypeDef</a></li>
<li>FuncCode&#160;:&#160;<a class="el" href="struct_r_s___msg_type_def.html#a176d779ab0d7fd06a4303e6e6acb6ca9">RS_MsgTypeDef</a></li>
</ul>
<h3 class="doxsection"><a id="index_h" name="index_h"></a>- h -</h3><ul>
<li>HoldRegs&#160;:&#160;<a class="el" href="struct_m_b___data_structure_type_def.html#a27d12400f322702e9d87c492e9628313">MB_DataStructureTypeDef</a></li>
<li>htim&#160;:&#160;<a class="el" href="struct_r_s___handle_type_def.html#aef8875f7628f280ed88f74eb762e0d99">RS_HandleTypeDef</a></li>
<li>huart&#160;:&#160;<a class="el" href="struct_r_s___handle_type_def.html#ade93e3a680f5fbc5275f58e20227198b">RS_HandleTypeDef</a></li>
</ul>
<h3 class="doxsection"><a id="index_i" name="index_i"></a>- i -</h3><ul>
<li>ID&#160;:&#160;<a class="el" href="struct_r_s___handle_type_def.html#a01e2c95a23aa3eed1f002e2329a10942">RS_HandleTypeDef</a></li>
<li>InRegs&#160;:&#160;<a class="el" href="struct_m_b___data_structure_type_def.html#ac0bf877607c54c79c1d09c4530fdcbca">MB_DataStructureTypeDef</a></li>
</ul>
<h3 class="doxsection"><a id="index_l" name="index_l"></a>- l -</h3><ul>
<li>lastPacketTick&#160;:&#160;<a class="el" href="struct_r_s___handle_type_def.html#a3b377cb0eabf384a7e715fb030218290">RS_HandleTypeDef</a></li>
</ul>
<h3 class="doxsection"><a id="index_m" name="index_m"></a>- m -</h3><ul>
<li>MbAddr&#160;:&#160;<a class="el" href="struct_r_s___msg_type_def.html#a277ed439b65aedbf03bd112c073e6a32">RS_MsgTypeDef</a></li>
<li>MbCRC&#160;:&#160;<a class="el" href="struct_r_s___msg_type_def.html#a423ab838d4c113fd6392452fd44dc1c0">RS_MsgTypeDef</a></li>
<li>MbData&#160;:&#160;<a class="el" href="struct_r_s___msg_type_def.html#aacbc6754621bd84742cd6c2ba65ad094">RS_MsgTypeDef</a></li>
<li>MEI_Type&#160;:&#160;<a class="el" href="struct_m_b___dev_id_msg_type_def.html#aefb693da9f6b86a6da833c4177302092">MB_DevIdMsgTypeDef</a></li>
<li>MessageHandled&#160;:&#160;<a class="el" href="struct_r_s___flags_type_def.html#a98c9a17358406818f3017a2997787c3f">RS_FlagsTypeDef</a></li>
</ul>
<h3 class="doxsection"><a id="index_p" name="index_p"></a>- p -</h3><ul>
<li>pBufferPtr&#160;:&#160;<a class="el" href="struct_r_s___handle_type_def.html#a1bc8d1ccb57c20cad4f70a04f751a67a">RS_HandleTypeDef</a></li>
<li>pCallback&#160;:&#160;<a class="el" href="struct_r_s___handle_type_def.html#a6e584c7559c702d3382dbb9aa572b71b">RS_HandleTypeDef</a></li>
<li>pMessagePtr&#160;:&#160;<a class="el" href="struct_r_s___handle_type_def.html#a6a3f47a1a3476d6e9df997e1dc9da8c4">RS_HandleTypeDef</a></li>
</ul>
<h3 class="doxsection"><a id="index_q" name="index_q"></a>- q -</h3><ul>
<li>Qnt&#160;:&#160;<a class="el" href="struct_r_s___msg_type_def.html#a1ccb2bf492218a6ae3a5b6ad5cd4c82f">RS_MsgTypeDef</a></li>
</ul>
<h3 class="doxsection"><a id="index_r" name="index_r"></a>- r -</h3><ul>
<li>RS_Busy&#160;:&#160;<a class="el" href="struct_r_s___flags_type_def.html#a9371c9de732e4669b16cfdc69f4aaca9">RS_FlagsTypeDef</a></li>
<li>RS_Message_Size&#160;:&#160;<a class="el" href="struct_r_s___handle_type_def.html#a495a29011412451e53459f9e1513814d">RS_HandleTypeDef</a></li>
<li>RS_STATUS&#160;:&#160;<a class="el" href="struct_r_s___handle_type_def.html#a8bbcb263ae7a61790b559bcb55cd9aa9">RS_HandleTypeDef</a></li>
<li>RX_Busy&#160;:&#160;<a class="el" href="struct_r_s___flags_type_def.html#a15cc785cd0a154ab681720eaaf7cd752">RS_FlagsTypeDef</a></li>
<li>RX_Continue&#160;:&#160;<a class="el" href="struct_r_s___flags_type_def.html#a1513dc1265334c20a82b55b1090024c8">RS_FlagsTypeDef</a></li>
<li>RX_Done&#160;:&#160;<a class="el" href="struct_r_s___flags_type_def.html#a2af603f95b5a86c881370fad44fba9fe">RS_FlagsTypeDef</a></li>
<li>RX_Ongoing&#160;:&#160;<a class="el" href="struct_r_s___flags_type_def.html#adfc04070a08e90f514072fff20efc744">RS_FlagsTypeDef</a></li>
</ul>
<h3 class="doxsection"><a id="index_s" name="index_s"></a>- s -</h3><ul>
<li>SlaveBusy&#160;:&#160;<a class="el" href="struct_m_b___diagnostics_info_type_def.html#a16f3410ce798eb9693e849de1c5d5556">MB_DiagnosticsInfoTypeDef</a></li>
<li>SlaveMessage&#160;:&#160;<a class="el" href="struct_m_b___diagnostics_info_type_def.html#a57b66f80d2b787eb08e73a43d5550efa">MB_DiagnosticsInfoTypeDef</a></li>
<li>SlaveNAK&#160;:&#160;<a class="el" href="struct_m_b___diagnostics_info_type_def.html#a944999cfdaffab608a70b02e1421dd75">MB_DiagnosticsInfoTypeDef</a></li>
<li>SlaveNoResponse&#160;:&#160;<a class="el" href="struct_m_b___diagnostics_info_type_def.html#ad2f014e8e289ad4241a53bc1ad83f411">MB_DiagnosticsInfoTypeDef</a></li>
<li>sRS_Mode&#160;:&#160;<a class="el" href="struct_r_s___handle_type_def.html#a82f0ad79cd234cd26076bfcfbc5c1194">RS_HandleTypeDef</a></li>
<li>sRS_Timeout&#160;:&#160;<a class="el" href="struct_r_s___handle_type_def.html#aa6da72b8ad446f76484783ca8af0e565">RS_HandleTypeDef</a></li>
</ul>
<h3 class="doxsection"><a id="index_t" name="index_t"></a>- t -</h3><ul>
<li>TX_Busy&#160;:&#160;<a class="el" href="struct_r_s___flags_type_def.html#a8bbeaa5f75f0b028bfa4038486a4d683">RS_FlagsTypeDef</a></li>
<li>TX_Done&#160;:&#160;<a class="el" href="struct_r_s___flags_type_def.html#a8a158c34723d093c7922c014e99739f4">RS_FlagsTypeDef</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,119 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Modbus: File Members</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<script type="text/javascript" src="darkmode_toggle.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">Modbus<span id="projectnumber">&#160;0.3</span>
</div>
<div id="projectbrief">Библиотека Modbus для STM</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.14.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
<script type="text/javascript">
$(function() { codefold.init(); });
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(function(){initNavTree('globals.html','',''); });
</script>
<div id="container">
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="contents">
<div class="textblock">Here is a list of all documented file members with links to the documentation:</div>
<h3 class="doxsection"><a id="index_a" name="index_a"></a>- a -</h3><ul>
<li>ABORT_RS&#160;:&#160;<a class="el" href="group___r_s___t_o_o_l_s.html#ggab7c55bd8bb15b0eecc8c525019d4a1cca5699efe0ab3cdfd4f6ef175ecb809306">rs_message.h</a></li>
<li>ABORT_RX&#160;:&#160;<a class="el" href="group___r_s___t_o_o_l_s.html#ggab7c55bd8bb15b0eecc8c525019d4a1ccaf0519a0ddda6fff97dd61ce0f3320df9">rs_message.h</a></li>
<li>ABORT_RX_TX&#160;:&#160;<a class="el" href="group___r_s___t_o_o_l_s.html#ggab7c55bd8bb15b0eecc8c525019d4a1ccac5554f0ed84242010a53eb518834d8e8">rs_message.h</a></li>
<li>ABORT_TX&#160;:&#160;<a class="el" href="group___r_s___t_o_o_l_s.html#ggab7c55bd8bb15b0eecc8c525019d4a1cca95c6ce0fee466ba98e43213d001ecc16">rs_message.h</a></li>
<li>Addr_SIZE&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gab4b8423205cc250a9f050f4fff252d5d">modbus_core.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,115 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Modbus: File Members</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<script type="text/javascript" src="darkmode_toggle.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">Modbus<span id="projectnumber">&#160;0.3</span>
</div>
<div id="projectbrief">Библиотека Modbus для STM</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.14.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
<script type="text/javascript">
$(function() { codefold.init(); });
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(function(){initNavTree('globals_b.html','',''); });
</script>
<div id="container">
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="contents">
<div class="textblock">Here is a list of all documented file members with links to the documentation:</div>
<h3 class="doxsection"><a id="index_b" name="index_b"></a>- b -</h3><ul>
<li>ByteCnt_SIZE&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga2141ab64ec40fd3e7bfaafcf02f1c81b">modbus_core.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,117 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Modbus: File Members</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<script type="text/javascript" src="darkmode_toggle.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">Modbus<span id="projectnumber">&#160;0.3</span>
</div>
<div id="projectbrief">Библиотека Modbus для STM</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.14.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
<script type="text/javascript">
$(function() { codefold.init(); });
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(function(){initNavTree('globals_c.html','',''); });
</script>
<div id="container">
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="contents">
<div class="textblock">Here is a list of all documented file members with links to the documentation:</div>
<h3 class="doxsection"><a id="index_c" name="index_c"></a>- c -</h3><ul>
<li>C_COILS_ADDR&#160;:&#160;<a class="el" href="modbus__data_8h.html#a5057c379abcae88db30ad094eceb952d">modbus_data.h</a></li>
<li>C_COILS_QNT&#160;:&#160;<a class="el" href="modbus__data_8h.html#a438d957058fcf102c66922f0eada3af2">modbus_data.h</a></li>
<li>CRC_SIZE&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gaa93e89217587fdff12bf43b5d7f54f74">modbus_core.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,115 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Modbus: File Members</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<script type="text/javascript" src="darkmode_toggle.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">Modbus<span id="projectnumber">&#160;0.3</span>
</div>
<div id="projectbrief">Библиотека Modbus для STM</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.14.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
<script type="text/javascript">
$(function() { codefold.init(); });
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(function(){initNavTree('globals_d.html','',''); });
</script>
<div id="container">
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="contents">
<div class="textblock">Here is a list of all documented file members with links to the documentation:</div>
<h3 class="doxsection"><a id="index_d" name="index_d"></a>- d -</h3><ul>
<li>DATA_SIZE&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gaf55149bc1f05cf18af067a302e31e3f9">modbus_core.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,213 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Modbus: File Members</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<script type="text/javascript" src="darkmode_toggle.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">Modbus<span id="projectnumber">&#160;0.3</span>
</div>
<div id="projectbrief">Библиотека Modbus для STM</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.14.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
<script type="text/javascript">
$(function() { codefold.init(); });
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(function(){initNavTree('globals_defs.html','',''); });
</script>
<div id="container">
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="contents">
<div class="textblock">Here is a list of all documented macros with links to the documentation:</div>
<h3 class="doxsection"><a id="index_a" name="index_a"></a>- a -</h3><ul>
<li>Addr_SIZE&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gab4b8423205cc250a9f050f4fff252d5d">modbus_core.h</a></li>
</ul>
<h3 class="doxsection"><a id="index_b" name="index_b"></a>- b -</h3><ul>
<li>ByteCnt_SIZE&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga2141ab64ec40fd3e7bfaafcf02f1c81b">modbus_core.h</a></li>
</ul>
<h3 class="doxsection"><a id="index_c" name="index_c"></a>- c -</h3><ul>
<li>C_COILS_ADDR&#160;:&#160;<a class="el" href="modbus__data_8h.html#a5057c379abcae88db30ad094eceb952d">modbus_data.h</a></li>
<li>C_COILS_QNT&#160;:&#160;<a class="el" href="modbus__data_8h.html#a438d957058fcf102c66922f0eada3af2">modbus_data.h</a></li>
<li>CRC_SIZE&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gaa93e89217587fdff12bf43b5d7f54f74">modbus_core.h</a></li>
</ul>
<h3 class="doxsection"><a id="index_d" name="index_d"></a>- d -</h3><ul>
<li>DATA_SIZE&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gaf55149bc1f05cf18af067a302e31e3f9">modbus_core.h</a></li>
</ul>
<h3 class="doxsection"><a id="index_f" name="index_f"></a>- f -</h3><ul>
<li>FC_ERR_VALUES_START&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga822b0fd9ae9ff25dfa6748473e8e8627">modbus_core.h</a></li>
<li>Func_Code_SIZE&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga3372a9da9b653cd351256d2e805a1b5b">modbus_core.h</a></li>
</ul>
<h3 class="doxsection"><a id="index_i" name="index_i"></a>- i -</h3><ul>
<li>INFO_SIZE_MAX&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga600f4a134e94bc9ddf7a37d8f49cadcc">modbus_core.h</a></li>
</ul>
<h3 class="doxsection"><a id="index_m" name="index_m"></a>- m -</h3><ul>
<li>MB_Coil_Read_Local&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga0f8474120df77dc5f334d60d6a5f6f8f">modbus_coils.h</a></li>
<li>MB_Coil_Reset_Local&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gabc4efb5e2a6aaa021ef5fe6c69476927">modbus_coils.h</a></li>
<li>MB_Coil_Set_Local&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga635a6c4fbce49bd1e6797642b36dae7e">modbus_coils.h</a></li>
<li>MB_Coil_Toogle_Local&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gac5f409526055c3d98458ada3d3ab630c">modbus_coils.h</a></li>
<li>mb_htim&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___c_o_n_f_i_g_s.html#ga6723a1608946a4f86cd7c9c7e614d04e">modbus_config.h</a></li>
<li>mb_huart&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___c_o_n_f_i_g_s.html#ga370986118b8227cb6cb33c6b748fbbcb">modbus_config.h</a></li>
<li>MB_ObjectInit&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___d_e_v_i_d.html#gae5e66049f0dc66382999cf52cdeba38e">modbus_devid.h</a></li>
<li>MB_Set_Arr16_Ptr&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gaed24f1f06633b92de65f4fab2b4e005b">modbus_core.h</a></li>
<li>MB_Set_Coil_Mask&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga6ab08ed18663bc72f80e4e60b30ab429">modbus_core.h</a></li>
<li>MB_Set_Coil_Reg_Ptr&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga9648b00f955b16e107b901812031cee3">modbus_core.h</a></li>
<li>MB_Set_Register_Ptr&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga938b632e20454741b2a7f97928583776">modbus_core.h</a></li>
<li>MB_UserObjectInit&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___d_e_v_i_d.html#ga090d04bdaee6827a9a620d149efd4978">modbus_devid.h</a></li>
<li>MbAddr_SIZE&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga1be71951697002df6f3259ca41dc4853">modbus_core.h</a></li>
<li>MODBUS_DEVICE_ID&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___c_o_n_f_i_g_s.html#gab9b18e108b98b225a52c5ccca58e7f2b">modbus_config.h</a></li>
<li>MODBUS_ENABLE_COILS&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___c_o_n_f_i_g_s.html#ga29ce22b8b7f0622bc23171c6ae2dc8d1">modbus_config.h</a></li>
<li>MODBUS_ENABLE_DEVICE_IDENTIFICATIONS&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___c_o_n_f_i_g_s.html#ga5bf9f305bd863b10f1b350c5004ddda7">modbus_config.h</a></li>
<li>MODBUS_ENABLE_DIAGNOSTICS&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___c_o_n_f_i_g_s.html#gae68222efbcf3199706bfaef46af97bf8">modbus_config.h</a></li>
<li>MODBUS_ENABLE_HOLDINGS&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___c_o_n_f_i_g_s.html#gaf6a8dfc090b3915d668d78ee19585344">modbus_config.h</a></li>
<li>MODBUS_ENABLE_INPUTS&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___c_o_n_f_i_g_s.html#ga23d7073c81bedb80a302140afd0d79c0">modbus_config.h</a></li>
<li>MODBUS_ENABLE_MASTER&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___c_o_n_f_i_g_s.html#gae4fc30421556e1ee530f13a4b3924f5a">modbus_config.h</a></li>
<li>MODBUS_ENABLE_SLAVE&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___c_o_n_f_i_g_s.html#gae11f9ed7ca5e75d332a1187d2a213f9c">modbus_config.h</a></li>
<li>MODBUS_MODE_MASTER&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___f_u_n_c_t_i_o_n_s.html#gad91eec9c3350f2705f1bbe1856cb0159">modbus.h</a></li>
<li>MODBUS_MODE_SLAVE&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___f_u_n_c_t_i_o_n_s.html#gac0b3749af91f1007fd0291157b66b305">modbus.h</a></li>
<li>MODBUS_NUMB_OF_USEROBJECTS&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___c_o_n_f_i_g_s.html#ga5c7e9c2180ceac1208f4b791d7b70a0a">modbus_config.h</a></li>
<li>MODBUS_TIMEOUT&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___c_o_n_f_i_g_s.html#ga66f7c59a25c8cca6d5b0991895c26b69">modbus_config.h</a></li>
<li>MODBUS_USEROBJECT_0_NAME&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___c_o_n_f_i_g_s.html#gac3b162e9af2731742eb3ca8317b37397">modbus_config.h</a></li>
<li>MSG_SIZE_MAX&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga7d1e9e8bb8f40ce788836da0739f897c">modbus_core.h</a></li>
</ul>
<h3 class="doxsection"><a id="index_p" name="index_p"></a>- p -</h3><ul>
<li>PDULength_size&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga69ca2a9dbd269a5b39dd5d29a7601a12">modbus_core.h</a></li>
<li>printf_rs&#160;:&#160;<a class="el" href="group___r_s___d_e_b_u_g.html#ga30a03e8d8912be85a203c829b581f999">rs_message.h</a></li>
<li>printf_rs_err&#160;:&#160;<a class="el" href="group___r_s___d_e_b_u_g.html#ga830a5ed90667bf50ab8c409dcadb2a39">rs_message.h</a></li>
<li>ProtocolID_size&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga9d21532e66376b674c8bc7523d51350e">modbus_core.h</a></li>
</ul>
<h3 class="doxsection"><a id="index_q" name="index_q"></a>- q -</h3><ul>
<li>Qnt_SIZE&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gab4ed36ca923f2c451475f233124f24c4">modbus_core.h</a></li>
</ul>
<h3 class="doxsection"><a id="index_r" name="index_r"></a>- r -</h3><ul>
<li>R_HOLDING_ADDR&#160;:&#160;<a class="el" href="modbus__data_8h.html#a791dfd31cc06338acdd8a2eb3b7032e6">modbus_data.h</a></li>
<li>R_HOLDING_QNT&#160;:&#160;<a class="el" href="modbus__data_8h.html#acf40437374a3227e661db1a18bcef7d7">modbus_data.h</a></li>
<li>R_INPUT_ADDR&#160;:&#160;<a class="el" href="modbus__data_8h.html#a22bd1273e01d32f90a279b517d1737b6">modbus_data.h</a></li>
<li>R_INPUT_QNT&#160;:&#160;<a class="el" href="modbus__data_8h.html#a97c0b1e20498bca34f6dfe0ac0d97b30">modbus_data.h</a></li>
<li>RS_EnableReceive&#160;:&#160;<a class="el" href="group___r_s___t_o_o_l_s.html#gae0f359f0af89adf45bac275a3f5ee34d">rs_message.h</a></li>
<li>RS_EnableTransmit&#160;:&#160;<a class="el" href="group___r_s___t_o_o_l_s.html#gaeddade966945ed376bb152151b493d6f">rs_message.h</a></li>
<li>RS_MASTER_MODE_START&#160;:&#160;<a class="el" href="group___r_s___t_o_o_l_s.html#ga9560ee688d4bcdd90a47c110be4ecf92">rs_message.h</a></li>
<li>RS_TIM_Handler_ENTER&#160;:&#160;<a class="el" href="group___r_s___d_e_b_u_g.html#gab9d308969f924234bc879a93ffb80473">rs_message.h</a></li>
<li>RS_TIM_Handler_EXIT&#160;:&#160;<a class="el" href="group___r_s___d_e_b_u_g.html#gaa026e9bf8672373cfe265f96ea0f6061">rs_message.h</a></li>
<li>RS_UART_Handler_ENTER&#160;:&#160;<a class="el" href="group___r_s___d_e_b_u_g.html#ga8c401e4d5d440001c1d879984107bb79">rs_message.h</a></li>
<li>RS_UART_Handler_EXIT&#160;:&#160;<a class="el" href="group___r_s___d_e_b_u_g.html#gade69fd26928788dd6f0278fcd15885ff">rs_message.h</a></li>
<li>RS_USER_VARS_NUMB&#160;:&#160;<a class="el" href="group___r_s___d_e_b_u_g.html#ga00f6ba164717bd919fa6e9b25e1bbc21">rs_message.h</a></li>
<li>RX_FIRST_PART_SIZE&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga18eb6d0d9fdb6274341e892e2b41d88b">modbus_core.h</a></li>
</ul>
<h3 class="doxsection"><a id="index_t" name="index_t"></a>- t -</h3><ul>
<li>TrackerCnt_Err&#160;:&#160;<a class="el" href="group___r_s___d_e_b_u_g.html#ga49af29ab3927cad105c1d2b018a767e9">rs_message.h</a></li>
<li>TrackerCnt_Ok&#160;:&#160;<a class="el" href="group___r_s___d_e_b_u_g.html#ga23de0006aa08984cfeddb6aa5e512fa1">rs_message.h</a></li>
<li>TrackerCnt_Warn&#160;:&#160;<a class="el" href="group___r_s___d_e_b_u_g.html#ga8017fb05a56a1b667244f1f786fa9c57">rs_message.h</a></li>
<li>TrackerTypeDef&#160;:&#160;<a class="el" href="group___r_s___d_e_b_u_g.html#ga50ccb119acf302969b7fdcb58f2130e4">rs_message.h</a></li>
<li>TransactionID_size&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gae135b86915da05ee9991ef1c50d3527f">modbus_core.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,16 @@
var globals_dup =
[
[ "a", "globals.html", null ],
[ "b", "globals_b.html", null ],
[ "c", "globals_c.html", null ],
[ "d", "globals_d.html", null ],
[ "e", "globals_e.html", null ],
[ "f", "globals_f.html", null ],
[ "h", "globals_h.html", null ],
[ "i", "globals_i.html", null ],
[ "m", "globals_m.html", null ],
[ "p", "globals_p.html", null ],
[ "q", "globals_q.html", null ],
[ "r", "globals_r.html", null ],
[ "t", "globals_t.html", null ]
];

View File

@@ -0,0 +1,119 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Modbus: File Members</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<script type="text/javascript" src="darkmode_toggle.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">Modbus<span id="projectnumber">&#160;0.3</span>
</div>
<div id="projectbrief">Библиотека Modbus для STM</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.14.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
<script type="text/javascript">
$(function() { codefold.init(); });
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(function(){initNavTree('globals_e.html','',''); });
</script>
<div id="container">
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="contents">
<div class="textblock">Here is a list of all documented file members with links to the documentation:</div>
<h3 class="doxsection"><a id="index_e" name="index_e"></a>- e -</h3><ul>
<li>ET_ILLEGAL_DATA_ADDRESS&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga4ade64cb3fabf37f010c1e297489980caea312adaf18aa7ebd17aca8883550425">modbus_core.h</a></li>
<li>ET_ILLEGAL_DATA_VALUE&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga4ade64cb3fabf37f010c1e297489980ca47d6168d0692ccb7e09e19084287aba3">modbus_core.h</a></li>
<li>ET_ILLEGAL_FUNCTION&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga4ade64cb3fabf37f010c1e297489980cae81af967ab54904738ee391eb7478ad1">modbus_core.h</a></li>
<li>ET_NO_ERRORS&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga4ade64cb3fabf37f010c1e297489980caa6980c7a8d924dd975b8fa06a300eb74">modbus_core.h</a></li>
<li>ET_SLAVE_DEVICE_FAILURE&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga4ade64cb3fabf37f010c1e297489980cacae4572933c1b43491d452f912341277">modbus_core.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,121 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Modbus: File Members</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<script type="text/javascript" src="darkmode_toggle.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">Modbus<span id="projectnumber">&#160;0.3</span>
</div>
<div id="projectbrief">Библиотека Modbus для STM</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.14.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
<script type="text/javascript">
$(function() { codefold.init(); });
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(function(){initNavTree('globals_enum.html','',''); });
</script>
<div id="container">
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="contents">
<div class="textblock">Here is a list of all documented enums with links to the documentation:</div><ul>
<li>MB_CoilsOpTypeDef&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga8ccf569b78a17a10ac7c80d52730753a">modbus_coils.h</a></li>
<li>MB_DeviceModeTypeDef&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___d_i_a_g.html#ga9d139168bb88bfa1ba1597eeff9ebf6a">modbus_diag.h</a></li>
<li>MB_ExceptionTypeDef&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga4ade64cb3fabf37f010c1e297489980c">modbus_core.h</a></li>
<li>MB_FunctonTypeDef&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga38d42495bf262b70048e6d6a7af175d2">modbus_core.h</a></li>
<li>MB_MEITypeDef&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gaeaafeacbd239428c7e59e40d2df16ae2">modbus_core.h</a></li>
<li>ReadDevId&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga63c3a2a3adb05f591399e2c4def7c14a">modbus_core.h</a></li>
<li>RS_AbortTypeDef&#160;:&#160;<a class="el" href="group___r_s___t_o_o_l_s.html#gab7c55bd8bb15b0eecc8c525019d4a1cc">rs_message.h</a></li>
<li>RS_ModeTypeDef&#160;:&#160;<a class="el" href="group___r_s___t_o_o_l_s.html#ga13e1c056947b06c7dc29b90d22f683a7">rs_message.h</a></li>
<li>RS_StatusTypeDef&#160;:&#160;<a class="el" href="group___r_s___t_o_o_l_s.html#ga727154b368397b4796aa892de12a2289">rs_message.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,166 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Modbus: File Members</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<script type="text/javascript" src="darkmode_toggle.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">Modbus<span id="projectnumber">&#160;0.3</span>
</div>
<div id="projectbrief">Библиотека Modbus для STM</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.14.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
<script type="text/javascript">
$(function() { codefold.init(); });
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(function(){initNavTree('globals_eval.html','',''); });
</script>
<div id="container">
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="contents">
<div class="textblock">Here is a list of all documented enum values with links to the documentation:</div>
<h3 class="doxsection"><a id="index_a" name="index_a"></a>- a -</h3><ul>
<li>ABORT_RS&#160;:&#160;<a class="el" href="group___r_s___t_o_o_l_s.html#ggab7c55bd8bb15b0eecc8c525019d4a1cca5699efe0ab3cdfd4f6ef175ecb809306">rs_message.h</a></li>
<li>ABORT_RX&#160;:&#160;<a class="el" href="group___r_s___t_o_o_l_s.html#ggab7c55bd8bb15b0eecc8c525019d4a1ccaf0519a0ddda6fff97dd61ce0f3320df9">rs_message.h</a></li>
<li>ABORT_RX_TX&#160;:&#160;<a class="el" href="group___r_s___t_o_o_l_s.html#ggab7c55bd8bb15b0eecc8c525019d4a1ccac5554f0ed84242010a53eb518834d8e8">rs_message.h</a></li>
<li>ABORT_TX&#160;:&#160;<a class="el" href="group___r_s___t_o_o_l_s.html#ggab7c55bd8bb15b0eecc8c525019d4a1cca95c6ce0fee466ba98e43213d001ecc16">rs_message.h</a></li>
</ul>
<h3 class="doxsection"><a id="index_e" name="index_e"></a>- e -</h3><ul>
<li>ET_ILLEGAL_DATA_ADDRESS&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga4ade64cb3fabf37f010c1e297489980caea312adaf18aa7ebd17aca8883550425">modbus_core.h</a></li>
<li>ET_ILLEGAL_DATA_VALUE&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga4ade64cb3fabf37f010c1e297489980ca47d6168d0692ccb7e09e19084287aba3">modbus_core.h</a></li>
<li>ET_ILLEGAL_FUNCTION&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga4ade64cb3fabf37f010c1e297489980cae81af967ab54904738ee391eb7478ad1">modbus_core.h</a></li>
<li>ET_NO_ERRORS&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga4ade64cb3fabf37f010c1e297489980caa6980c7a8d924dd975b8fa06a300eb74">modbus_core.h</a></li>
<li>ET_SLAVE_DEVICE_FAILURE&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga4ade64cb3fabf37f010c1e297489980cacae4572933c1b43491d452f912341277">modbus_core.h</a></li>
</ul>
<h3 class="doxsection"><a id="index_f" name="index_f"></a>- f -</h3><ul>
<li>FC_ERR_R_COILS&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga38d42495bf262b70048e6d6a7af175d2a730c5f56799669c612945a55aa9494c4">modbus_core.h</a></li>
<li>FC_ERR_R_DIAGNOSTIC&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga38d42495bf262b70048e6d6a7af175d2a8fd1f1aa92af4555bafd96c835ea473c">modbus_core.h</a></li>
<li>FC_ERR_R_DISC_IN&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga38d42495bf262b70048e6d6a7af175d2a592aee113b711b5976ce914f727c9f77">modbus_core.h</a></li>
<li>FC_ERR_R_HOLD_REGS&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga38d42495bf262b70048e6d6a7af175d2abe215454c122b35aa658a8c11b37a258">modbus_core.h</a></li>
<li>FC_ERR_R_IN_REGS&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga38d42495bf262b70048e6d6a7af175d2ad7f2601e81f84b15cc898c490e429dd5">modbus_core.h</a></li>
<li>FC_ERR_W_COIL&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga38d42495bf262b70048e6d6a7af175d2abaa0b334409929c82ec44960d368114b">modbus_core.h</a></li>
<li>FC_ERR_W_COILS&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga38d42495bf262b70048e6d6a7af175d2af018f1e1deef493cfa1074583e421cc8">modbus_core.h</a></li>
<li>FC_ERR_W_HOLD_REG&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga38d42495bf262b70048e6d6a7af175d2a21ba95630e4914c2706e8f48f6839e16">modbus_core.h</a></li>
<li>FC_ERR_W_HOLD_REGS&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga38d42495bf262b70048e6d6a7af175d2a4de9a680cbe955bc5b30f4c497b06ff8">modbus_core.h</a></li>
<li>FC_R_COILS&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga38d42495bf262b70048e6d6a7af175d2a399bcd53bc32faca81bbc3d1ff8b5bb6">modbus_core.h</a></li>
<li>FC_R_DEVICE_ID&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga38d42495bf262b70048e6d6a7af175d2a37ddf147e08b6d205319c31e6750d47c">modbus_core.h</a></li>
<li>FC_R_DIAGNOSTICS&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga38d42495bf262b70048e6d6a7af175d2aa6423de9e908dc38ce9f1c8027ad72ec">modbus_core.h</a></li>
<li>FC_R_DISC_IN&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga38d42495bf262b70048e6d6a7af175d2a438c348676901d3e0263fd1f8d94bf11">modbus_core.h</a></li>
<li>FC_R_HOLD_REGS&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga38d42495bf262b70048e6d6a7af175d2ae03921b16750ef290fdd7d19a08a29a2">modbus_core.h</a></li>
<li>FC_R_IN_REGS&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga38d42495bf262b70048e6d6a7af175d2a76139e9b7ae78856fd3a297c9f751944">modbus_core.h</a></li>
<li>FC_W_COIL&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga38d42495bf262b70048e6d6a7af175d2a832b94af2c427d0daae721da2528f44a">modbus_core.h</a></li>
<li>FC_W_COILS&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga38d42495bf262b70048e6d6a7af175d2a43a1b810697ea15ef91008dbc0187127">modbus_core.h</a></li>
<li>FC_W_HOLD_REG&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga38d42495bf262b70048e6d6a7af175d2a1b66683f704ef9072329e997312e3b83">modbus_core.h</a></li>
<li>FC_W_HOLD_REGS&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga38d42495bf262b70048e6d6a7af175d2affa24c54ee0b59e9810f1dbdc949e684">modbus_core.h</a></li>
</ul>
<h3 class="doxsection"><a id="index_m" name="index_m"></a>- m -</h3><ul>
<li>FC_ERR_R_DEVICE_INFO&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga38d42495bf262b70048e6d6a7af175d2a1577351173a660924f7bf33d4c2ec003">modbus_core.h</a></li>
</ul>
<h3 class="doxsection"><a id="index_r" name="index_r"></a>- r -</h3><ul>
<li>RID_BASIC_IDENTIFICATIONS&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga63c3a2a3adb05f591399e2c4def7c14aac792ca720b19c89783b70cdeba0c9248">modbus_core.h</a></li>
<li>RID_EXTENDED_IDENTIFICATIONS&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga63c3a2a3adb05f591399e2c4def7c14aaca82385c8d88d6d762c369b4da4c4db8">modbus_core.h</a></li>
<li>RID_REGULAR_IDENTIFICATIONS&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga63c3a2a3adb05f591399e2c4def7c14aab930f13868df5243566759bbcf52a19d">modbus_core.h</a></li>
<li>RID_SPEDIFIC_IDENTIFICATIONS&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga63c3a2a3adb05f591399e2c4def7c14aabb8d7527a3aabb1eac974474255d0c5e">modbus_core.h</a></li>
<li>RS_MASTER_REQUEST&#160;:&#160;<a class="el" href="group___r_s___t_o_o_l_s.html#gga13e1c056947b06c7dc29b90d22f683a7a15953c59b7f547b318edab14070873c5">rs_message.h</a></li>
<li>RS_RESERVED&#160;:&#160;<a class="el" href="group___r_s___t_o_o_l_s.html#gga13e1c056947b06c7dc29b90d22f683a7ad118e897a520ddc9c77a905684079550">rs_message.h</a></li>
<li>RS_SLAVE_ALWAYS_WAIT&#160;:&#160;<a class="el" href="group___r_s___t_o_o_l_s.html#gga13e1c056947b06c7dc29b90d22f683a7aee8cfd8ce9edacc055a195ed454a49dc">rs_message.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,135 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Modbus: File Members</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<script type="text/javascript" src="darkmode_toggle.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">Modbus<span id="projectnumber">&#160;0.3</span>
</div>
<div id="projectbrief">Библиотека Modbus для STM</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.14.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
<script type="text/javascript">
$(function() { codefold.init(); });
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(function(){initNavTree('globals_f.html','',''); });
</script>
<div id="container">
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="contents">
<div class="textblock">Here is a list of all documented file members with links to the documentation:</div>
<h3 class="doxsection"><a id="index_f" name="index_f"></a>- f -</h3><ul>
<li>FC_ERR_R_COILS&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga38d42495bf262b70048e6d6a7af175d2a730c5f56799669c612945a55aa9494c4">modbus_core.h</a></li>
<li>FC_ERR_R_DIAGNOSTIC&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga38d42495bf262b70048e6d6a7af175d2a8fd1f1aa92af4555bafd96c835ea473c">modbus_core.h</a></li>
<li>FC_ERR_R_DISC_IN&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga38d42495bf262b70048e6d6a7af175d2a592aee113b711b5976ce914f727c9f77">modbus_core.h</a></li>
<li>FC_ERR_R_HOLD_REGS&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga38d42495bf262b70048e6d6a7af175d2abe215454c122b35aa658a8c11b37a258">modbus_core.h</a></li>
<li>FC_ERR_R_IN_REGS&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga38d42495bf262b70048e6d6a7af175d2ad7f2601e81f84b15cc898c490e429dd5">modbus_core.h</a></li>
<li>FC_ERR_VALUES_START&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga822b0fd9ae9ff25dfa6748473e8e8627">modbus_core.h</a></li>
<li>FC_ERR_W_COIL&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga38d42495bf262b70048e6d6a7af175d2abaa0b334409929c82ec44960d368114b">modbus_core.h</a></li>
<li>FC_ERR_W_COILS&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga38d42495bf262b70048e6d6a7af175d2af018f1e1deef493cfa1074583e421cc8">modbus_core.h</a></li>
<li>FC_ERR_W_HOLD_REG&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga38d42495bf262b70048e6d6a7af175d2a21ba95630e4914c2706e8f48f6839e16">modbus_core.h</a></li>
<li>FC_ERR_W_HOLD_REGS&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga38d42495bf262b70048e6d6a7af175d2a4de9a680cbe955bc5b30f4c497b06ff8">modbus_core.h</a></li>
<li>FC_R_COILS&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga38d42495bf262b70048e6d6a7af175d2a399bcd53bc32faca81bbc3d1ff8b5bb6">modbus_core.h</a></li>
<li>FC_R_DEVICE_ID&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga38d42495bf262b70048e6d6a7af175d2a37ddf147e08b6d205319c31e6750d47c">modbus_core.h</a></li>
<li>FC_R_DIAGNOSTICS&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga38d42495bf262b70048e6d6a7af175d2aa6423de9e908dc38ce9f1c8027ad72ec">modbus_core.h</a></li>
<li>FC_R_DISC_IN&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga38d42495bf262b70048e6d6a7af175d2a438c348676901d3e0263fd1f8d94bf11">modbus_core.h</a></li>
<li>FC_R_HOLD_REGS&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga38d42495bf262b70048e6d6a7af175d2ae03921b16750ef290fdd7d19a08a29a2">modbus_core.h</a></li>
<li>FC_R_IN_REGS&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga38d42495bf262b70048e6d6a7af175d2a76139e9b7ae78856fd3a297c9f751944">modbus_core.h</a></li>
<li>FC_W_COIL&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga38d42495bf262b70048e6d6a7af175d2a832b94af2c427d0daae721da2528f44a">modbus_core.h</a></li>
<li>FC_W_COILS&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga38d42495bf262b70048e6d6a7af175d2a43a1b810697ea15ef91008dbc0187127">modbus_core.h</a></li>
<li>FC_W_HOLD_REG&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga38d42495bf262b70048e6d6a7af175d2a1b66683f704ef9072329e997312e3b83">modbus_core.h</a></li>
<li>FC_W_HOLD_REGS&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga38d42495bf262b70048e6d6a7af175d2affa24c54ee0b59e9810f1dbdc949e684">modbus_core.h</a></li>
<li>Func_Code_SIZE&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga3372a9da9b653cd351256d2e805a1b5b">modbus_core.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,193 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Modbus: File Members</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<script type="text/javascript" src="darkmode_toggle.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">Modbus<span id="projectnumber">&#160;0.3</span>
</div>
<div id="projectbrief">Библиотека Modbus для STM</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.14.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
<script type="text/javascript">
$(function() { codefold.init(); });
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(function(){initNavTree('globals_func.html','',''); });
</script>
<div id="container">
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="contents">
<div class="textblock">Here is a list of all documented functions with links to the documentation:</div>
<h3 class="doxsection"><a id="index_m" name="index_m"></a>- m -</h3><ul>
<li>MB_Check_Address_For_Arr()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga278ca9791c69aef8adeb9e7c4b273c50">modbus_core.h</a></li>
<li>MB_Coil_Read_Global()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga82334048256e266170a4b3373be59b59">modbus_coils.h</a>, <a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga82334048256e266170a4b3373be59b59">modbus_coils.c</a></li>
<li>MB_Coil_Write_Global()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gae9b8595911d93cfbf8597f3356a494cc">modbus_coils.h</a>, <a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gae9b8595911d93cfbf8597f3356a494cc">modbus_coils.c</a></li>
<li>MB_DefaultCallback()&#160;:&#160;<a class="el" href="modbus_8c.html#ae7c4bdaeae2e9deb8422ae0a0fc64cb4">modbus.c</a></li>
<li>MB_Define_Size_of_Function()&#160;:&#160;<a class="el" href="modbus__master_8c.html#a79e3f84b9daba8a42c8ca6026133acc5">modbus_master.c</a>, <a class="el" href="modbus__slave_8c.html#a79e3f84b9daba8a42c8ca6026133acc5">modbus_slave.c</a></li>
<li>MB_DefineCoilsAddress()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gade717a6829a062a8a198bd933c8b2221">modbus_core.h</a></li>
<li>MB_DefineRegistersAddress()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga1e90bb28a4cf997250daab6470d5ffe3">modbus_core.h</a></li>
<li>MB_DeviceInentificationInit()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___d_e_v_i_d.html#ga2b93352920bf3c6da0f67cfbaef3d572">modbus_devid.h</a>, <a class="el" href="group___m_o_d_b_u_s___d_e_v_i_d.html#ga2b93352920bf3c6da0f67cfbaef3d572">modbus_devid.c</a></li>
<li>MB_Diagnostics_BusMessageCnt()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gae379458fa9cea50d5e313a68e716cb83">modbus_diag.h</a>, <a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gae379458fa9cea50d5e313a68e716cb83">modbus_diag.c</a></li>
<li>MB_Diagnostics_CharacterOverrunCnt()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gaff7c464d7d66399232770bac78b653a4">modbus_diag.h</a>, <a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gaff7c464d7d66399232770bac78b653a4">modbus_diag.c</a></li>
<li>MB_Diagnostics_CommunicationErrorCnt()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga10f9e4dd9f3dda4bb0f66c323d6b29d7">modbus_diag.h</a>, <a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga10f9e4dd9f3dda4bb0f66c323d6b29d7">modbus_diag.c</a></li>
<li>MB_Diagnostics_ExceptionErrorCnt()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga82e0bf0c4452c25bf3f05a20abb7cc74">modbus_diag.h</a>, <a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga82e0bf0c4452c25bf3f05a20abb7cc74">modbus_diag.c</a></li>
<li>MB_Diagnostics_GetBit()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga5588ddb15ee2580e7659701e5e671e8f">modbus_diag.h</a>, <a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga5588ddb15ee2580e7659701e5e671e8f">modbus_diag.c</a></li>
<li>MB_Diagnostics_SlaveBusyCnt()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga4baad1102ba3f09cf3cc121b8d548ddb">modbus_diag.h</a>, <a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga4baad1102ba3f09cf3cc121b8d548ddb">modbus_diag.c</a></li>
<li>MB_Diagnostics_SlaveMessageCnt()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga22a48a04ef64f74b5974c4fdb1445936">modbus_diag.h</a>, <a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga22a48a04ef64f74b5974c4fdb1445936">modbus_diag.c</a></li>
<li>MB_Diagnostics_SlaveNAKCnt()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga2585ebac184f7fa56059c81419c614b9">modbus_diag.h</a>, <a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga2585ebac184f7fa56059c81419c614b9">modbus_diag.c</a></li>
<li>MB_Diagnostics_SlaveNoResponseCnt()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gabf80c0e24a0ed3736338218c003d001d">modbus_diag.h</a>, <a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gabf80c0e24a0ed3736338218c003d001d">modbus_diag.c</a></li>
<li>MB_Diagnostics_WriteBit()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gab1237f28e2db2cd2e8a93b31cd9a61be">modbus_diag.h</a>, <a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gab1237f28e2db2cd2e8a93b31cd9a61be">modbus_diag.c</a></li>
<li>MB_DiagnosticsInit()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___d_i_a_g.html#ga9b61a6d4139bac318868e93f03cd82c7">modbus_diag.h</a>, <a class="el" href="group___m_o_d_b_u_s___d_i_a_g.html#ga9b61a6d4139bac318868e93f03cd82c7">modbus_diag.c</a></li>
<li>MB_GetDeviceMode()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gae7b613f24e9e3d9d95a789c404a3a485">modbus_diag.h</a>, <a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gae7b613f24e9e3d9d95a789c404a3a485">modbus_diag.c</a></li>
<li>MB_Holding_Read_Global()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga0198b337d6944329b78c59521baf5738">modbus_holdregs.h</a>, <a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga0198b337d6944329b78c59521baf5738">modbus_holdregs.c</a></li>
<li>MB_Holding_Write_Global()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga8b7134e2fc1b65111d536c5590321b80">modbus_holdregs.h</a>, <a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga8b7134e2fc1b65111d536c5590321b80">modbus_holdregs.c</a></li>
<li>MB_Input_Read_Global()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga28d00cd1df2a46a7a9a6a1b1fce99826">modbus_inputregs.h</a>, <a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga28d00cd1df2a46a7a9a6a1b1fce99826">modbus_inputregs.c</a></li>
<li>MB_Input_Write_Global()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gafb57a29488a549d1c585234945549f2e">modbus_inputregs.h</a>, <a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gafb57a29488a549d1c585234945549f2e">modbus_inputregs.c</a></li>
<li>MB_Master_Collect_Message()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_a_s_t_e_r.html#ga096d2790ab887eb815e17d8cd9ede125">modbus_master.h</a>, <a class="el" href="group___m_o_d_b_u_s___m_a_s_t_e_r.html#ga096d2790ab887eb815e17d8cd9ede125">modbus_master.c</a></li>
<li>MB_Master_Parse_Message()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_a_s_t_e_r.html#ga461e77fe31ce64c7ee5f1a932dc1183f">modbus_master.h</a>, <a class="el" href="group___m_o_d_b_u_s___m_a_s_t_e_r.html#ga461e77fe31ce64c7ee5f1a932dc1183f">modbus_master.c</a></li>
<li>MB_Process_Diagnostics()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga6bbfc53b20b4698a08d79851b5db65f0">modbus_diag.h</a>, <a class="el" href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga6bbfc53b20b4698a08d79851b5db65f0">modbus_diag.c</a></li>
<li>MB_Process_Read_Coils()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga39a02e8e4911a74a619d2ef29adcbad8">modbus_coils.h</a>, <a class="el" href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga39a02e8e4911a74a619d2ef29adcbad8">modbus_coils.c</a></li>
<li>MB_Process_Read_Device_Identifications()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga279ce6d9d175a43714862dc6661e7096">modbus_devid.h</a>, <a class="el" href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga279ce6d9d175a43714862dc6661e7096">modbus_devid.c</a></li>
<li>MB_Process_Read_Hold_Regs()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gac28127757ba25fe0b611612a785f663b">modbus_holdregs.h</a>, <a class="el" href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gac28127757ba25fe0b611612a785f663b">modbus_holdregs.c</a></li>
<li>MB_Process_Read_Input_Regs()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gad13d010f43c7ab08a85667b9e1906b7d">modbus_inputregs.h</a>, <a class="el" href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gad13d010f43c7ab08a85667b9e1906b7d">modbus_inputregs.c</a></li>
<li>MB_Process_Write_Miltuple_Coils()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga6f4498cec8634820025aaa9c4623ba55">modbus_coils.h</a>, <a class="el" href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga6f4498cec8634820025aaa9c4623ba55">modbus_coils.c</a></li>
<li>MB_Process_Write_Miltuple_Regs()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga9c6ab159edb8dda6548b2228773ce919">modbus_holdregs.h</a>, <a class="el" href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga9c6ab159edb8dda6548b2228773ce919">modbus_holdregs.c</a></li>
<li>MB_Process_Write_Single_Coil()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga918102931c9125a5e44a30e103d17e14">modbus_coils.h</a>, <a class="el" href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga918102931c9125a5e44a30e103d17e14">modbus_coils.c</a></li>
<li>MB_Process_Write_Single_Reg()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga02e192a3d9f31737c45f074a04b37648">modbus_holdregs.h</a>, <a class="el" href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga02e192a3d9f31737c45f074a04b37648">modbus_holdregs.c</a></li>
<li>MB_REQUEST_READ_COILS()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#gadb1b59bd6832b017b7ff4f5d694f59aa">modbus_master.h</a>, <a class="el" href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#gadb1b59bd6832b017b7ff4f5d694f59aa">modbus_master.c</a></li>
<li>MB_REQUEST_READ_DISCRETE_INPUTS()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#ga85028c4de63ca63cb04e332a3fdcd676">modbus_master.h</a>, <a class="el" href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#ga85028c4de63ca63cb04e332a3fdcd676">modbus_master.c</a></li>
<li>MB_REQUEST_READ_HOLDING_REGS()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#ga4a4798a15608f3aac04150115a628f8e">modbus_master.h</a>, <a class="el" href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#ga4a4798a15608f3aac04150115a628f8e">modbus_master.c</a></li>
<li>MB_REQUEST_READ_INPUT_REGS()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#ga72f91a70586546171fe9190a4e0e5518">modbus_master.h</a>, <a class="el" href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#ga72f91a70586546171fe9190a4e0e5518">modbus_master.c</a></li>
<li>MB_REQUEST_WRITE_MULTIPLE_COILS()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#ga92c7c61bc6b3e249350d93d20b530fa3">modbus_master.h</a>, <a class="el" href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#ga92c7c61bc6b3e249350d93d20b530fa3">modbus_master.c</a></li>
<li>MB_REQUEST_WRITE_MULTIPLE_REGS()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#ga9b89a034f1c5ed96572621b2ebe7f6af">modbus_master.h</a>, <a class="el" href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#ga9b89a034f1c5ed96572621b2ebe7f6af">modbus_master.c</a></li>
<li>MB_REQUEST_WRITE_SINGLE_COIL()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#ga1ac5f38ac244039a63b2714044778ffc">modbus_master.h</a>, <a class="el" href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#ga1ac5f38ac244039a63b2714044778ffc">modbus_master.c</a></li>
<li>MB_REQUEST_WRITE_SINGLE_REG()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#ga0126cfaf44c73d84d521b16c0f6ab7b6">modbus_master.h</a>, <a class="el" href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#ga0126cfaf44c73d84d521b16c0f6ab7b6">modbus_master.c</a></li>
<li>MB_RespGet_CoilAll()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___r_e_q___c_o_i_l_s___a_p_i.html#ga14750bad3976a9fcc6bdece1c800dbf5">modbus_master.h</a>, <a class="el" href="group___m_o_d_b_u_s___r_e_q___c_o_i_l_s___a_p_i.html#ga14750bad3976a9fcc6bdece1c800dbf5">modbus_master.c</a></li>
<li>MB_RespGet_CoilState()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___r_e_q___c_o_i_l_s___a_p_i.html#ga643a0be1ccd587a6dfe544d9fd5ed018">modbus_master.h</a>, <a class="el" href="group___m_o_d_b_u_s___r_e_q___c_o_i_l_s___a_p_i.html#ga643a0be1ccd587a6dfe544d9fd5ed018">modbus_master.c</a></li>
<li>MB_RespGet_Diagnostic()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___r_e_q___d_i_a_g___a_p_i.html#ga46a9650ec68832e6f95eda579f4d9ded">modbus_master.h</a>, <a class="el" href="group___m_o_d_b_u_s___r_e_q___d_i_a_g___a_p_i.html#ga46a9650ec68832e6f95eda579f4d9ded">modbus_master.c</a></li>
<li>MB_RespGet_NumberOfObjects()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___r_e_q___d_e_f_i_d___a_p_i.html#ga16b90d4a74a249514161aa4576724d1c">modbus_master.h</a>, <a class="el" href="group___m_o_d_b_u_s___r_e_q___d_e_f_i_d___a_p_i.html#ga16b90d4a74a249514161aa4576724d1c">modbus_master.c</a></li>
<li>MB_RespGet_ObjectById()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___r_e_q___d_e_f_i_d___a_p_i.html#ga0dc4119c008af34d5997eab339c437be">modbus_master.h</a>, <a class="el" href="group___m_o_d_b_u_s___r_e_q___d_e_f_i_d___a_p_i.html#ga0dc4119c008af34d5997eab339c437be">modbus_master.c</a></li>
<li>MB_RespGet_ObjectByIndex()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___r_e_q___d_e_f_i_d___a_p_i.html#ga3fc5fc5abfe4f8767ccee5c11ea3d5d5">modbus_master.h</a>, <a class="el" href="group___m_o_d_b_u_s___r_e_q___d_e_f_i_d___a_p_i.html#ga3fc5fc5abfe4f8767ccee5c11ea3d5d5">modbus_master.c</a></li>
<li>MB_RespGet_RegisterAll()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___r_e_g_s___a_p_i.html#ga86160c23899d6ece041e3680ba863019">modbus_master.h</a>, <a class="el" href="group___m_o_d_b_u_s___r_e_g_s___a_p_i.html#ga86160c23899d6ece041e3680ba863019">modbus_master.c</a></li>
<li>MB_RespGet_RegisterValue()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___r_e_g_s___a_p_i.html#ga1f80317087624a23f84224c6f2c1d596">modbus_master.h</a>, <a class="el" href="group___m_o_d_b_u_s___r_e_g_s___a_p_i.html#ga1f80317087624a23f84224c6f2c1d596">modbus_master.c</a></li>
<li>MB_Slave_Collect_Message()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___s_l_a_v_e.html#ga1c73cfdcbe7bc6076f62a4ec9c211eee">modbus_slave.h</a>, <a class="el" href="group___m_o_d_b_u_s___s_l_a_v_e.html#ga1c73cfdcbe7bc6076f62a4ec9c211eee">modbus_slave.c</a></li>
<li>MB_Slave_Parse_Message()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___s_l_a_v_e.html#gadc281b1044c4ae345d10db6497846cef">modbus_slave.h</a>, <a class="el" href="group___m_o_d_b_u_s___s_l_a_v_e.html#gadc281b1044c4ae345d10db6497846cef">modbus_slave.c</a></li>
<li>MB_Slave_Response()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___s_l_a_v_e.html#gacb44db7ef6ef32b08f4ffe0178eabee8">modbus_slave.h</a>, <a class="el" href="group___m_o_d_b_u_s___s_l_a_v_e.html#gacb44db7ef6ef32b08f4ffe0178eabee8">modbus_slave.c</a></li>
<li>MB_WriteObjectsToMessage()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___d_e_v_i_d.html#gaf864599c95934d63f854a038e3bdccb0">modbus_devid.h</a>, <a class="el" href="group___m_o_d_b_u_s___d_e_v_i_d.html#gaf864599c95934d63f854a038e3bdccb0">modbus_devid.c</a></li>
<li>MB_WriteSingleObjectToMessage()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___d_e_v_i_d.html#ga7c0638d252c74d0c1ef047ff23e43b3f">modbus_devid.h</a>, <a class="el" href="group___m_o_d_b_u_s___d_e_v_i_d.html#ga7c0638d252c74d0c1ef047ff23e43b3f">modbus_devid.c</a></li>
<li>MODBUS_Config()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___f_u_n_c_t_i_o_n_s.html#ga460466907693a256487d31f09b16edfe">modbus.h</a>, <a class="el" href="group___m_o_d_b_u_s___f_u_n_c_t_i_o_n_s.html#ga460466907693a256487d31f09b16edfe">modbus.c</a></li>
<li>MODBUS_FirstInit()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___f_u_n_c_t_i_o_n_s.html#ga9e787c3454aab3293dec6e6795f687f5">modbus.h</a>, <a class="el" href="group___m_o_d_b_u_s___f_u_n_c_t_i_o_n_s.html#ga9e787c3454aab3293dec6e6795f687f5">modbus.c</a></li>
<li>MODBUS_MasterRequest()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___f_u_n_c_t_i_o_n_s.html#ga19090cabfba2345391e37398125a2f55">modbus.h</a>, <a class="el" href="group___m_o_d_b_u_s___f_u_n_c_t_i_o_n_s.html#ga19090cabfba2345391e37398125a2f55">modbus.c</a></li>
<li>MODBUS_SlaveStart()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___f_u_n_c_t_i_o_n_s.html#ga9a17402983188566254b7096342ba69e">modbus.h</a>, <a class="el" href="group___m_o_d_b_u_s___f_u_n_c_t_i_o_n_s.html#ga9a17402983188566254b7096342ba69e">modbus.c</a></li>
</ul>
<h3 class="doxsection"><a id="index_r" name="index_r"></a>- r -</h3><ul>
<li>RS_Abort()&#160;:&#160;<a class="el" href="group___r_s___t_o_o_l_s.html#ga1ffe808b3640f253b1783295d6990962">rs_message.h</a>, <a class="el" href="group___r_s___t_o_o_l_s.html#ga1ffe808b3640f253b1783295d6990962">rs_message.c</a></li>
<li>RS_Collect_Message()&#160;:&#160;<a class="el" href="group___r_s___t_o_o_l_s.html#ga1cd98c55f6f359e3ab93d0f9cf912ab5">rs_message.h</a>, <a class="el" href="group___r_s___t_o_o_l_s.html#ga1cd98c55f6f359e3ab93d0f9cf912ab5">rs_message.c</a></li>
<li>RS_Handle_Receive_Start()&#160;:&#160;<a class="el" href="group___r_s___t_o_o_l_s.html#gab43a3b93c85adee5e3c561922d7ea2ef">rs_message.h</a>, <a class="el" href="group___r_s___t_o_o_l_s.html#gab43a3b93c85adee5e3c561922d7ea2ef">rs_message.c</a></li>
<li>RS_Handle_Transmit_Start()&#160;:&#160;<a class="el" href="group___r_s___t_o_o_l_s.html#ga330f6cfcdaab1f239054c0d91be3c5bc">rs_message.h</a>, <a class="el" href="group___r_s___t_o_o_l_s.html#ga330f6cfcdaab1f239054c0d91be3c5bc">rs_message.c</a></li>
<li>RS_Init()&#160;:&#160;<a class="el" href="group___r_s___t_o_o_l_s.html#gaa261bb0d37e7f18f04fb4353aa0f5c45">rs_message.h</a>, <a class="el" href="group___r_s___t_o_o_l_s.html#gaa261bb0d37e7f18f04fb4353aa0f5c45">rs_message.c</a></li>
<li>RS_Parse_Message()&#160;:&#160;<a class="el" href="group___r_s___t_o_o_l_s.html#ga3500b3fa91d05a94cf8da5cc5ce338f5">rs_message.h</a>, <a class="el" href="group___r_s___t_o_o_l_s.html#ga3500b3fa91d05a94cf8da5cc5ce338f5">rs_message.c</a></li>
<li>RS_Receive_IT()&#160;:&#160;<a class="el" href="group___r_s___t_o_o_l_s.html#ga1b59697f4b7fad81f9d5fd9fffebac2f">rs_message.h</a>, <a class="el" href="group___r_s___t_o_o_l_s.html#ga1b59697f4b7fad81f9d5fd9fffebac2f">rs_message.c</a></li>
<li>RS_Response()&#160;:&#160;<a class="el" href="group___r_s___t_o_o_l_s.html#ga8b7bcc84cb8192a58fe87b662fbd9690">rs_message.h</a>, <a class="el" href="group___r_s___t_o_o_l_s.html#ga8b7bcc84cb8192a58fe87b662fbd9690">rs_message.c</a></li>
<li>RS_TIM_Handler()&#160;:&#160;<a class="el" href="group___r_s___t_o_o_l_s.html#ga2d356b2a0b4af43460bb2cacb81779ce">rs_message.h</a>, <a class="el" href="group___r_s___t_o_o_l_s.html#ga2d356b2a0b4af43460bb2cacb81779ce">rs_message.c</a></li>
<li>RS_Timeout_Start()&#160;:&#160;<a class="el" href="group___r_s___t_o_o_l_s.html#gac3a7bbc060a4250c160d51f0a0ca6cf8">rs_message.h</a>, <a class="el" href="group___r_s___t_o_o_l_s.html#gac3a7bbc060a4250c160d51f0a0ca6cf8">rs_message.c</a></li>
<li>RS_Timeout_Stop()&#160;:&#160;<a class="el" href="group___r_s___t_o_o_l_s.html#ga1de0a597d043b64d0a19bc393cc1b3fd">rs_message.h</a>, <a class="el" href="group___r_s___t_o_o_l_s.html#ga1de0a597d043b64d0a19bc393cc1b3fd">rs_message.c</a></li>
<li>RS_Timeout_Update()&#160;:&#160;<a class="el" href="group___r_s___t_o_o_l_s.html#gad3d2e8fb9c2879e1ddb967cff6124521">rs_message.h</a>, <a class="el" href="group___r_s___t_o_o_l_s.html#gad3d2e8fb9c2879e1ddb967cff6124521">rs_message.c</a></li>
<li>RS_Transmit_IT()&#160;:&#160;<a class="el" href="group___r_s___t_o_o_l_s.html#ga2e69a97a8b6e0b5855116d88c0e17cb9">rs_message.h</a>, <a class="el" href="group___r_s___t_o_o_l_s.html#ga2e69a97a8b6e0b5855116d88c0e17cb9">rs_message.c</a></li>
<li>RS_UART_Handler()&#160;:&#160;<a class="el" href="group___r_s___t_o_o_l_s.html#gab27567456df0329130c7fe4fc43c6ee1">rs_message.h</a>, <a class="el" href="group___r_s___t_o_o_l_s.html#gab27567456df0329130c7fe4fc43c6ee1">rs_message.c</a></li>
<li>RS_UART_TxCpltCallback()&#160;:&#160;<a class="el" href="group___r_s___t_o_o_l_s.html#ga7180b913ba795c07637680982d7f45ac">rs_message.h</a>, <a class="el" href="group___r_s___t_o_o_l_s.html#ga7180b913ba795c07637680982d7f45ac">rs_message.c</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,115 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Modbus: File Members</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<script type="text/javascript" src="darkmode_toggle.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">Modbus<span id="projectnumber">&#160;0.3</span>
</div>
<div id="projectbrief">Библиотека Modbus для STM</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.14.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
<script type="text/javascript">
$(function() { codefold.init(); });
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(function(){initNavTree('globals_h.html','',''); });
</script>
<div id="container">
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="contents">
<div class="textblock">Here is a list of all documented file members with links to the documentation:</div>
<h3 class="doxsection"><a id="index_h" name="index_h"></a>- h -</h3><ul>
<li>hmodbus1&#160;:&#160;<a class="el" href="group___r_s___t_o_o_l_s.html#gadaef5cb7e494d0fd139199f5b6cbeb86">rs_message.h</a>, <a class="el" href="group___r_s___t_o_o_l_s.html#gadaef5cb7e494d0fd139199f5b6cbeb86">modbus.c</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,115 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Modbus: File Members</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<script type="text/javascript" src="darkmode_toggle.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">Modbus<span id="projectnumber">&#160;0.3</span>
</div>
<div id="projectbrief">Библиотека Modbus для STM</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.14.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
<script type="text/javascript">
$(function() { codefold.init(); });
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(function(){initNavTree('globals_i.html','',''); });
</script>
<div id="container">
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="contents">
<div class="textblock">Here is a list of all documented file members with links to the documentation:</div>
<h3 class="doxsection"><a id="index_i" name="index_i"></a>- i -</h3><ul>
<li>INFO_SIZE_MAX&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga600f4a134e94bc9ddf7a37d8f49cadcc">modbus_core.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,210 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Modbus: File Members</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<script type="text/javascript" src="darkmode_toggle.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">Modbus<span id="projectnumber">&#160;0.3</span>
</div>
<div id="projectbrief">Библиотека Modbus для STM</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.14.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
<script type="text/javascript">
$(function() { codefold.init(); });
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(function(){initNavTree('globals_m.html','',''); });
</script>
<div id="container">
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="contents">
<div class="textblock">Here is a list of all documented file members with links to the documentation:</div>
<h3 class="doxsection"><a id="index_m" name="index_m"></a>- m -</h3><ul>
<li>MB_Check_Address_For_Arr()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga278ca9791c69aef8adeb9e7c4b273c50">modbus_core.h</a></li>
<li>MB_Coil_Read_Global()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga82334048256e266170a4b3373be59b59">modbus_coils.h</a>, <a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga82334048256e266170a4b3373be59b59">modbus_coils.c</a></li>
<li>MB_Coil_Read_Local&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga0f8474120df77dc5f334d60d6a5f6f8f">modbus_coils.h</a></li>
<li>MB_Coil_Reset_Local&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gabc4efb5e2a6aaa021ef5fe6c69476927">modbus_coils.h</a></li>
<li>MB_Coil_Set_Local&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga635a6c4fbce49bd1e6797642b36dae7e">modbus_coils.h</a></li>
<li>MB_Coil_Toogle_Local&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gac5f409526055c3d98458ada3d3ab630c">modbus_coils.h</a></li>
<li>MB_Coil_Write_Global()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gae9b8595911d93cfbf8597f3356a494cc">modbus_coils.h</a>, <a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gae9b8595911d93cfbf8597f3356a494cc">modbus_coils.c</a></li>
<li>MB_CoilsOpTypeDef&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga8ccf569b78a17a10ac7c80d52730753a">modbus_coils.h</a></li>
<li>MB_DefaultCallback()&#160;:&#160;<a class="el" href="modbus_8c.html#ae7c4bdaeae2e9deb8422ae0a0fc64cb4">modbus.c</a></li>
<li>MB_Define_Size_of_Function()&#160;:&#160;<a class="el" href="modbus__master_8c.html#a79e3f84b9daba8a42c8ca6026133acc5">modbus_master.c</a>, <a class="el" href="modbus__slave_8c.html#a79e3f84b9daba8a42c8ca6026133acc5">modbus_slave.c</a></li>
<li>MB_DefineCoilsAddress()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gade717a6829a062a8a198bd933c8b2221">modbus_core.h</a></li>
<li>MB_DefineRegistersAddress()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga1e90bb28a4cf997250daab6470d5ffe3">modbus_core.h</a></li>
<li>MB_DeviceInentificationInit()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___d_e_v_i_d.html#ga2b93352920bf3c6da0f67cfbaef3d572">modbus_devid.h</a>, <a class="el" href="group___m_o_d_b_u_s___d_e_v_i_d.html#ga2b93352920bf3c6da0f67cfbaef3d572">modbus_devid.c</a></li>
<li>MB_DeviceModeTypeDef&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___d_i_a_g.html#ga9d139168bb88bfa1ba1597eeff9ebf6a">modbus_diag.h</a></li>
<li>MB_DEVID&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___d_e_v_i_d.html#ga0aaf735fcb26fa61af6f7f4895802b90">modbus_devid.h</a>, <a class="el" href="group___m_o_d_b_u_s___d_e_v_i_d.html#ga0aaf735fcb26fa61af6f7f4895802b90">modbus_devid.c</a></li>
<li>MB_DIAG&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___d_i_a_g.html#ga4ba6111ac80e342396f9703239323936">modbus_diag.h</a>, <a class="el" href="group___m_o_d_b_u_s___d_i_a_g.html#ga4ba6111ac80e342396f9703239323936">modbus_diag.c</a></li>
<li>MB_Diagnostics_BusMessageCnt()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gae379458fa9cea50d5e313a68e716cb83">modbus_diag.h</a>, <a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gae379458fa9cea50d5e313a68e716cb83">modbus_diag.c</a></li>
<li>MB_Diagnostics_CharacterOverrunCnt()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gaff7c464d7d66399232770bac78b653a4">modbus_diag.h</a>, <a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gaff7c464d7d66399232770bac78b653a4">modbus_diag.c</a></li>
<li>MB_Diagnostics_CommunicationErrorCnt()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga10f9e4dd9f3dda4bb0f66c323d6b29d7">modbus_diag.h</a>, <a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga10f9e4dd9f3dda4bb0f66c323d6b29d7">modbus_diag.c</a></li>
<li>MB_Diagnostics_ExceptionErrorCnt()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga82e0bf0c4452c25bf3f05a20abb7cc74">modbus_diag.h</a>, <a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga82e0bf0c4452c25bf3f05a20abb7cc74">modbus_diag.c</a></li>
<li>MB_Diagnostics_GetBit()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga5588ddb15ee2580e7659701e5e671e8f">modbus_diag.h</a>, <a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga5588ddb15ee2580e7659701e5e671e8f">modbus_diag.c</a></li>
<li>MB_Diagnostics_SlaveBusyCnt()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga4baad1102ba3f09cf3cc121b8d548ddb">modbus_diag.h</a>, <a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga4baad1102ba3f09cf3cc121b8d548ddb">modbus_diag.c</a></li>
<li>MB_Diagnostics_SlaveMessageCnt()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga22a48a04ef64f74b5974c4fdb1445936">modbus_diag.h</a>, <a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga22a48a04ef64f74b5974c4fdb1445936">modbus_diag.c</a></li>
<li>MB_Diagnostics_SlaveNAKCnt()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga2585ebac184f7fa56059c81419c614b9">modbus_diag.h</a>, <a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga2585ebac184f7fa56059c81419c614b9">modbus_diag.c</a></li>
<li>MB_Diagnostics_SlaveNoResponseCnt()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gabf80c0e24a0ed3736338218c003d001d">modbus_diag.h</a>, <a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gabf80c0e24a0ed3736338218c003d001d">modbus_diag.c</a></li>
<li>MB_Diagnostics_WriteBit()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gab1237f28e2db2cd2e8a93b31cd9a61be">modbus_diag.h</a>, <a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gab1237f28e2db2cd2e8a93b31cd9a61be">modbus_diag.c</a></li>
<li>MB_DiagnosticsInit()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___d_i_a_g.html#ga9b61a6d4139bac318868e93f03cd82c7">modbus_diag.h</a>, <a class="el" href="group___m_o_d_b_u_s___d_i_a_g.html#ga9b61a6d4139bac318868e93f03cd82c7">modbus_diag.c</a></li>
<li>MB_ExceptionTypeDef&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga4ade64cb3fabf37f010c1e297489980c">modbus_core.h</a></li>
<li>FC_ERR_R_DEVICE_INFO&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga38d42495bf262b70048e6d6a7af175d2a1577351173a660924f7bf33d4c2ec003">modbus_core.h</a></li>
<li>MB_FunctonTypeDef&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga38d42495bf262b70048e6d6a7af175d2">modbus_core.h</a></li>
<li>MB_GetDeviceMode()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gae7b613f24e9e3d9d95a789c404a3a485">modbus_diag.h</a>, <a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gae7b613f24e9e3d9d95a789c404a3a485">modbus_diag.c</a></li>
<li>MB_Holding_Read_Global()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga0198b337d6944329b78c59521baf5738">modbus_holdregs.h</a>, <a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga0198b337d6944329b78c59521baf5738">modbus_holdregs.c</a></li>
<li>MB_Holding_Write_Global()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga8b7134e2fc1b65111d536c5590321b80">modbus_holdregs.h</a>, <a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga8b7134e2fc1b65111d536c5590321b80">modbus_holdregs.c</a></li>
<li>mb_htim&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___c_o_n_f_i_g_s.html#ga6723a1608946a4f86cd7c9c7e614d04e">modbus_config.h</a></li>
<li>mb_huart&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___c_o_n_f_i_g_s.html#ga370986118b8227cb6cb33c6b748fbbcb">modbus_config.h</a></li>
<li>MB_Input_Read_Global()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga28d00cd1df2a46a7a9a6a1b1fce99826">modbus_inputregs.h</a>, <a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga28d00cd1df2a46a7a9a6a1b1fce99826">modbus_inputregs.c</a></li>
<li>MB_Input_Write_Global()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gafb57a29488a549d1c585234945549f2e">modbus_inputregs.h</a>, <a class="el" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gafb57a29488a549d1c585234945549f2e">modbus_inputregs.c</a></li>
<li>MB_Master_Collect_Message()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_a_s_t_e_r.html#ga096d2790ab887eb815e17d8cd9ede125">modbus_master.h</a>, <a class="el" href="group___m_o_d_b_u_s___m_a_s_t_e_r.html#ga096d2790ab887eb815e17d8cd9ede125">modbus_master.c</a></li>
<li>MB_Master_Parse_Message()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_a_s_t_e_r.html#ga461e77fe31ce64c7ee5f1a932dc1183f">modbus_master.h</a>, <a class="el" href="group___m_o_d_b_u_s___m_a_s_t_e_r.html#ga461e77fe31ce64c7ee5f1a932dc1183f">modbus_master.c</a></li>
<li>MB_MEITypeDef&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gaeaafeacbd239428c7e59e40d2df16ae2">modbus_core.h</a></li>
<li>MB_ObjectInit&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___d_e_v_i_d.html#gae5e66049f0dc66382999cf52cdeba38e">modbus_devid.h</a></li>
<li>MB_Process_Diagnostics()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga6bbfc53b20b4698a08d79851b5db65f0">modbus_diag.h</a>, <a class="el" href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga6bbfc53b20b4698a08d79851b5db65f0">modbus_diag.c</a></li>
<li>MB_Process_Read_Coils()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga39a02e8e4911a74a619d2ef29adcbad8">modbus_coils.h</a>, <a class="el" href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga39a02e8e4911a74a619d2ef29adcbad8">modbus_coils.c</a></li>
<li>MB_Process_Read_Device_Identifications()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga279ce6d9d175a43714862dc6661e7096">modbus_devid.h</a>, <a class="el" href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga279ce6d9d175a43714862dc6661e7096">modbus_devid.c</a></li>
<li>MB_Process_Read_Hold_Regs()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gac28127757ba25fe0b611612a785f663b">modbus_holdregs.h</a>, <a class="el" href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gac28127757ba25fe0b611612a785f663b">modbus_holdregs.c</a></li>
<li>MB_Process_Read_Input_Regs()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gad13d010f43c7ab08a85667b9e1906b7d">modbus_inputregs.h</a>, <a class="el" href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gad13d010f43c7ab08a85667b9e1906b7d">modbus_inputregs.c</a></li>
<li>MB_Process_Write_Miltuple_Coils()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga6f4498cec8634820025aaa9c4623ba55">modbus_coils.h</a>, <a class="el" href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga6f4498cec8634820025aaa9c4623ba55">modbus_coils.c</a></li>
<li>MB_Process_Write_Miltuple_Regs()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga9c6ab159edb8dda6548b2228773ce919">modbus_holdregs.h</a>, <a class="el" href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga9c6ab159edb8dda6548b2228773ce919">modbus_holdregs.c</a></li>
<li>MB_Process_Write_Single_Coil()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga918102931c9125a5e44a30e103d17e14">modbus_coils.h</a>, <a class="el" href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga918102931c9125a5e44a30e103d17e14">modbus_coils.c</a></li>
<li>MB_Process_Write_Single_Reg()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga02e192a3d9f31737c45f074a04b37648">modbus_holdregs.h</a>, <a class="el" href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga02e192a3d9f31737c45f074a04b37648">modbus_holdregs.c</a></li>
<li>MB_REQUEST_READ_COILS()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#gadb1b59bd6832b017b7ff4f5d694f59aa">modbus_master.h</a>, <a class="el" href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#gadb1b59bd6832b017b7ff4f5d694f59aa">modbus_master.c</a></li>
<li>MB_REQUEST_READ_DISCRETE_INPUTS()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#ga85028c4de63ca63cb04e332a3fdcd676">modbus_master.h</a>, <a class="el" href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#ga85028c4de63ca63cb04e332a3fdcd676">modbus_master.c</a></li>
<li>MB_REQUEST_READ_HOLDING_REGS()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#ga4a4798a15608f3aac04150115a628f8e">modbus_master.h</a>, <a class="el" href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#ga4a4798a15608f3aac04150115a628f8e">modbus_master.c</a></li>
<li>MB_REQUEST_READ_INPUT_REGS()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#ga72f91a70586546171fe9190a4e0e5518">modbus_master.h</a>, <a class="el" href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#ga72f91a70586546171fe9190a4e0e5518">modbus_master.c</a></li>
<li>MB_REQUEST_WRITE_MULTIPLE_COILS()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#ga92c7c61bc6b3e249350d93d20b530fa3">modbus_master.h</a>, <a class="el" href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#ga92c7c61bc6b3e249350d93d20b530fa3">modbus_master.c</a></li>
<li>MB_REQUEST_WRITE_MULTIPLE_REGS()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#ga9b89a034f1c5ed96572621b2ebe7f6af">modbus_master.h</a>, <a class="el" href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#ga9b89a034f1c5ed96572621b2ebe7f6af">modbus_master.c</a></li>
<li>MB_REQUEST_WRITE_SINGLE_COIL()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#ga1ac5f38ac244039a63b2714044778ffc">modbus_master.h</a>, <a class="el" href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#ga1ac5f38ac244039a63b2714044778ffc">modbus_master.c</a></li>
<li>MB_REQUEST_WRITE_SINGLE_REG()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#ga0126cfaf44c73d84d521b16c0f6ab7b6">modbus_master.h</a>, <a class="el" href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#ga0126cfaf44c73d84d521b16c0f6ab7b6">modbus_master.c</a></li>
<li>MB_RespGet_CoilAll()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___r_e_q___c_o_i_l_s___a_p_i.html#ga14750bad3976a9fcc6bdece1c800dbf5">modbus_master.h</a>, <a class="el" href="group___m_o_d_b_u_s___r_e_q___c_o_i_l_s___a_p_i.html#ga14750bad3976a9fcc6bdece1c800dbf5">modbus_master.c</a></li>
<li>MB_RespGet_CoilState()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___r_e_q___c_o_i_l_s___a_p_i.html#ga643a0be1ccd587a6dfe544d9fd5ed018">modbus_master.h</a>, <a class="el" href="group___m_o_d_b_u_s___r_e_q___c_o_i_l_s___a_p_i.html#ga643a0be1ccd587a6dfe544d9fd5ed018">modbus_master.c</a></li>
<li>MB_RespGet_Diagnostic()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___r_e_q___d_i_a_g___a_p_i.html#ga46a9650ec68832e6f95eda579f4d9ded">modbus_master.h</a>, <a class="el" href="group___m_o_d_b_u_s___r_e_q___d_i_a_g___a_p_i.html#ga46a9650ec68832e6f95eda579f4d9ded">modbus_master.c</a></li>
<li>MB_RespGet_NumberOfObjects()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___r_e_q___d_e_f_i_d___a_p_i.html#ga16b90d4a74a249514161aa4576724d1c">modbus_master.h</a>, <a class="el" href="group___m_o_d_b_u_s___r_e_q___d_e_f_i_d___a_p_i.html#ga16b90d4a74a249514161aa4576724d1c">modbus_master.c</a></li>
<li>MB_RespGet_ObjectById()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___r_e_q___d_e_f_i_d___a_p_i.html#ga0dc4119c008af34d5997eab339c437be">modbus_master.h</a>, <a class="el" href="group___m_o_d_b_u_s___r_e_q___d_e_f_i_d___a_p_i.html#ga0dc4119c008af34d5997eab339c437be">modbus_master.c</a></li>
<li>MB_RespGet_ObjectByIndex()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___r_e_q___d_e_f_i_d___a_p_i.html#ga3fc5fc5abfe4f8767ccee5c11ea3d5d5">modbus_master.h</a>, <a class="el" href="group___m_o_d_b_u_s___r_e_q___d_e_f_i_d___a_p_i.html#ga3fc5fc5abfe4f8767ccee5c11ea3d5d5">modbus_master.c</a></li>
<li>MB_RespGet_RegisterAll()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___r_e_g_s___a_p_i.html#ga86160c23899d6ece041e3680ba863019">modbus_master.h</a>, <a class="el" href="group___m_o_d_b_u_s___r_e_g_s___a_p_i.html#ga86160c23899d6ece041e3680ba863019">modbus_master.c</a></li>
<li>MB_RespGet_RegisterValue()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___r_e_g_s___a_p_i.html#ga1f80317087624a23f84224c6f2c1d596">modbus_master.h</a>, <a class="el" href="group___m_o_d_b_u_s___r_e_g_s___a_p_i.html#ga1f80317087624a23f84224c6f2c1d596">modbus_master.c</a></li>
<li>MB_Set_Arr16_Ptr&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gaed24f1f06633b92de65f4fab2b4e005b">modbus_core.h</a></li>
<li>MB_Set_Coil_Mask&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga6ab08ed18663bc72f80e4e60b30ab429">modbus_core.h</a></li>
<li>MB_Set_Coil_Reg_Ptr&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga9648b00f955b16e107b901812031cee3">modbus_core.h</a></li>
<li>MB_Set_Register_Ptr&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga938b632e20454741b2a7f97928583776">modbus_core.h</a></li>
<li>MB_Slave_Collect_Message()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___s_l_a_v_e.html#ga1c73cfdcbe7bc6076f62a4ec9c211eee">modbus_slave.h</a>, <a class="el" href="group___m_o_d_b_u_s___s_l_a_v_e.html#ga1c73cfdcbe7bc6076f62a4ec9c211eee">modbus_slave.c</a></li>
<li>MB_Slave_Parse_Message()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___s_l_a_v_e.html#gadc281b1044c4ae345d10db6497846cef">modbus_slave.h</a>, <a class="el" href="group___m_o_d_b_u_s___s_l_a_v_e.html#gadc281b1044c4ae345d10db6497846cef">modbus_slave.c</a></li>
<li>MB_Slave_Response()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___s_l_a_v_e.html#gacb44db7ef6ef32b08f4ffe0178eabee8">modbus_slave.h</a>, <a class="el" href="group___m_o_d_b_u_s___s_l_a_v_e.html#gacb44db7ef6ef32b08f4ffe0178eabee8">modbus_slave.c</a></li>
<li>MB_UserObjectInit&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___d_e_v_i_d.html#ga090d04bdaee6827a9a620d149efd4978">modbus_devid.h</a></li>
<li>MB_WriteObjectsToMessage()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___d_e_v_i_d.html#gaf864599c95934d63f854a038e3bdccb0">modbus_devid.h</a>, <a class="el" href="group___m_o_d_b_u_s___d_e_v_i_d.html#gaf864599c95934d63f854a038e3bdccb0">modbus_devid.c</a></li>
<li>MB_WriteSingleObjectToMessage()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___d_e_v_i_d.html#ga7c0638d252c74d0c1ef047ff23e43b3f">modbus_devid.h</a>, <a class="el" href="group___m_o_d_b_u_s___d_e_v_i_d.html#ga7c0638d252c74d0c1ef047ff23e43b3f">modbus_devid.c</a></li>
<li>MbAddr_SIZE&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga1be71951697002df6f3259ca41dc4853">modbus_core.h</a></li>
<li>MODBUS_Config()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___f_u_n_c_t_i_o_n_s.html#ga460466907693a256487d31f09b16edfe">modbus.h</a>, <a class="el" href="group___m_o_d_b_u_s___f_u_n_c_t_i_o_n_s.html#ga460466907693a256487d31f09b16edfe">modbus.c</a></li>
<li>MODBUS_DEVICE_ID&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___c_o_n_f_i_g_s.html#gab9b18e108b98b225a52c5ccca58e7f2b">modbus_config.h</a></li>
<li>MODBUS_ENABLE_COILS&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___c_o_n_f_i_g_s.html#ga29ce22b8b7f0622bc23171c6ae2dc8d1">modbus_config.h</a></li>
<li>MODBUS_ENABLE_DEVICE_IDENTIFICATIONS&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___c_o_n_f_i_g_s.html#ga5bf9f305bd863b10f1b350c5004ddda7">modbus_config.h</a></li>
<li>MODBUS_ENABLE_DIAGNOSTICS&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___c_o_n_f_i_g_s.html#gae68222efbcf3199706bfaef46af97bf8">modbus_config.h</a></li>
<li>MODBUS_ENABLE_HOLDINGS&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___c_o_n_f_i_g_s.html#gaf6a8dfc090b3915d668d78ee19585344">modbus_config.h</a></li>
<li>MODBUS_ENABLE_INPUTS&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___c_o_n_f_i_g_s.html#ga23d7073c81bedb80a302140afd0d79c0">modbus_config.h</a></li>
<li>MODBUS_ENABLE_MASTER&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___c_o_n_f_i_g_s.html#gae4fc30421556e1ee530f13a4b3924f5a">modbus_config.h</a></li>
<li>MODBUS_ENABLE_SLAVE&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___c_o_n_f_i_g_s.html#gae11f9ed7ca5e75d332a1187d2a213f9c">modbus_config.h</a></li>
<li>MODBUS_FirstInit()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___f_u_n_c_t_i_o_n_s.html#ga9e787c3454aab3293dec6e6795f687f5">modbus.h</a>, <a class="el" href="group___m_o_d_b_u_s___f_u_n_c_t_i_o_n_s.html#ga9e787c3454aab3293dec6e6795f687f5">modbus.c</a></li>
<li>MODBUS_MasterRequest()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___f_u_n_c_t_i_o_n_s.html#ga19090cabfba2345391e37398125a2f55">modbus.h</a>, <a class="el" href="group___m_o_d_b_u_s___f_u_n_c_t_i_o_n_s.html#ga19090cabfba2345391e37398125a2f55">modbus.c</a></li>
<li>MODBUS_MODE_MASTER&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___f_u_n_c_t_i_o_n_s.html#gad91eec9c3350f2705f1bbe1856cb0159">modbus.h</a></li>
<li>MODBUS_MODE_SLAVE&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___f_u_n_c_t_i_o_n_s.html#gac0b3749af91f1007fd0291157b66b305">modbus.h</a></li>
<li>MODBUS_MSG&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga679c526f339999281b97010876e7a295">modbus_core.h</a>, <a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga679c526f339999281b97010876e7a295">modbus.c</a></li>
<li>MODBUS_NUMB_OF_USEROBJECTS&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___c_o_n_f_i_g_s.html#ga5c7e9c2180ceac1208f4b791d7b70a0a">modbus_config.h</a></li>
<li>MODBUS_SlaveStart()&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___f_u_n_c_t_i_o_n_s.html#ga9a17402983188566254b7096342ba69e">modbus.h</a>, <a class="el" href="group___m_o_d_b_u_s___f_u_n_c_t_i_o_n_s.html#ga9a17402983188566254b7096342ba69e">modbus.c</a></li>
<li>MODBUS_TIMEOUT&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___c_o_n_f_i_g_s.html#ga66f7c59a25c8cca6d5b0991895c26b69">modbus_config.h</a></li>
<li>MODBUS_USEROBJECT_0_NAME&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___c_o_n_f_i_g_s.html#gac3b162e9af2731742eb3ca8317b37397">modbus_config.h</a></li>
<li>MSG_SIZE_MAX&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga7d1e9e8bb8f40ce788836da0739f897c">modbus_core.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,118 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Modbus: File Members</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<script type="text/javascript" src="darkmode_toggle.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">Modbus<span id="projectnumber">&#160;0.3</span>
</div>
<div id="projectbrief">Библиотека Modbus для STM</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.14.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
<script type="text/javascript">
$(function() { codefold.init(); });
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(function(){initNavTree('globals_p.html','',''); });
</script>
<div id="container">
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="contents">
<div class="textblock">Here is a list of all documented file members with links to the documentation:</div>
<h3 class="doxsection"><a id="index_p" name="index_p"></a>- p -</h3><ul>
<li>PDULength_size&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga69ca2a9dbd269a5b39dd5d29a7601a12">modbus_core.h</a></li>
<li>printf_rs&#160;:&#160;<a class="el" href="group___r_s___d_e_b_u_g.html#ga30a03e8d8912be85a203c829b581f999">rs_message.h</a></li>
<li>printf_rs_err&#160;:&#160;<a class="el" href="group___r_s___d_e_b_u_g.html#ga830a5ed90667bf50ab8c409dcadb2a39">rs_message.h</a></li>
<li>ProtocolID_size&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga9d21532e66376b674c8bc7523d51350e">modbus_core.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,115 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Modbus: File Members</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<script type="text/javascript" src="darkmode_toggle.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">Modbus<span id="projectnumber">&#160;0.3</span>
</div>
<div id="projectbrief">Библиотека Modbus для STM</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.14.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
<script type="text/javascript">
$(function() { codefold.init(); });
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(function(){initNavTree('globals_q.html','',''); });
</script>
<div id="container">
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="contents">
<div class="textblock">Here is a list of all documented file members with links to the documentation:</div>
<h3 class="doxsection"><a id="index_q" name="index_q"></a>- q -</h3><ul>
<li>Qnt_SIZE&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gab4ed36ca923f2c451475f233124f24c4">modbus_core.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,153 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Modbus: File Members</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<script type="text/javascript" src="darkmode_toggle.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">Modbus<span id="projectnumber">&#160;0.3</span>
</div>
<div id="projectbrief">Библиотека Modbus для STM</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.14.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
<script type="text/javascript">
$(function() { codefold.init(); });
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(function(){initNavTree('globals_r.html','',''); });
</script>
<div id="container">
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="contents">
<div class="textblock">Here is a list of all documented file members with links to the documentation:</div>
<h3 class="doxsection"><a id="index_r" name="index_r"></a>- r -</h3><ul>
<li>R_HOLDING_ADDR&#160;:&#160;<a class="el" href="modbus__data_8h.html#a791dfd31cc06338acdd8a2eb3b7032e6">modbus_data.h</a></li>
<li>R_HOLDING_QNT&#160;:&#160;<a class="el" href="modbus__data_8h.html#acf40437374a3227e661db1a18bcef7d7">modbus_data.h</a></li>
<li>R_INPUT_ADDR&#160;:&#160;<a class="el" href="modbus__data_8h.html#a22bd1273e01d32f90a279b517d1737b6">modbus_data.h</a></li>
<li>R_INPUT_QNT&#160;:&#160;<a class="el" href="modbus__data_8h.html#a97c0b1e20498bca34f6dfe0ac0d97b30">modbus_data.h</a></li>
<li>ReadDevId&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga63c3a2a3adb05f591399e2c4def7c14a">modbus_core.h</a></li>
<li>RID_BASIC_IDENTIFICATIONS&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga63c3a2a3adb05f591399e2c4def7c14aac792ca720b19c89783b70cdeba0c9248">modbus_core.h</a></li>
<li>RID_EXTENDED_IDENTIFICATIONS&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga63c3a2a3adb05f591399e2c4def7c14aaca82385c8d88d6d762c369b4da4c4db8">modbus_core.h</a></li>
<li>RID_REGULAR_IDENTIFICATIONS&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga63c3a2a3adb05f591399e2c4def7c14aab930f13868df5243566759bbcf52a19d">modbus_core.h</a></li>
<li>RID_SPEDIFIC_IDENTIFICATIONS&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga63c3a2a3adb05f591399e2c4def7c14aabb8d7527a3aabb1eac974474255d0c5e">modbus_core.h</a></li>
<li>RS_Abort()&#160;:&#160;<a class="el" href="group___r_s___t_o_o_l_s.html#ga1ffe808b3640f253b1783295d6990962">rs_message.h</a>, <a class="el" href="group___r_s___t_o_o_l_s.html#ga1ffe808b3640f253b1783295d6990962">rs_message.c</a></li>
<li>RS_AbortTypeDef&#160;:&#160;<a class="el" href="group___r_s___t_o_o_l_s.html#gab7c55bd8bb15b0eecc8c525019d4a1cc">rs_message.h</a></li>
<li>RS_Collect_Message()&#160;:&#160;<a class="el" href="group___r_s___t_o_o_l_s.html#ga1cd98c55f6f359e3ab93d0f9cf912ab5">rs_message.h</a>, <a class="el" href="group___r_s___t_o_o_l_s.html#ga1cd98c55f6f359e3ab93d0f9cf912ab5">rs_message.c</a></li>
<li>RS_EnableReceive&#160;:&#160;<a class="el" href="group___r_s___t_o_o_l_s.html#gae0f359f0af89adf45bac275a3f5ee34d">rs_message.h</a></li>
<li>RS_EnableTransmit&#160;:&#160;<a class="el" href="group___r_s___t_o_o_l_s.html#gaeddade966945ed376bb152151b493d6f">rs_message.h</a></li>
<li>RS_Handle_Receive_Start()&#160;:&#160;<a class="el" href="group___r_s___t_o_o_l_s.html#gab43a3b93c85adee5e3c561922d7ea2ef">rs_message.h</a>, <a class="el" href="group___r_s___t_o_o_l_s.html#gab43a3b93c85adee5e3c561922d7ea2ef">rs_message.c</a></li>
<li>RS_Handle_Transmit_Start()&#160;:&#160;<a class="el" href="group___r_s___t_o_o_l_s.html#ga330f6cfcdaab1f239054c0d91be3c5bc">rs_message.h</a>, <a class="el" href="group___r_s___t_o_o_l_s.html#ga330f6cfcdaab1f239054c0d91be3c5bc">rs_message.c</a></li>
<li>RS_Init()&#160;:&#160;<a class="el" href="group___r_s___t_o_o_l_s.html#gaa261bb0d37e7f18f04fb4353aa0f5c45">rs_message.h</a>, <a class="el" href="group___r_s___t_o_o_l_s.html#gaa261bb0d37e7f18f04fb4353aa0f5c45">rs_message.c</a></li>
<li>RS_MASTER_MODE_START&#160;:&#160;<a class="el" href="group___r_s___t_o_o_l_s.html#ga9560ee688d4bcdd90a47c110be4ecf92">rs_message.h</a></li>
<li>RS_MASTER_REQUEST&#160;:&#160;<a class="el" href="group___r_s___t_o_o_l_s.html#gga13e1c056947b06c7dc29b90d22f683a7a15953c59b7f547b318edab14070873c5">rs_message.h</a></li>
<li>RS_ModeTypeDef&#160;:&#160;<a class="el" href="group___r_s___t_o_o_l_s.html#ga13e1c056947b06c7dc29b90d22f683a7">rs_message.h</a></li>
<li>RS_Parse_Message()&#160;:&#160;<a class="el" href="group___r_s___t_o_o_l_s.html#ga3500b3fa91d05a94cf8da5cc5ce338f5">rs_message.h</a>, <a class="el" href="group___r_s___t_o_o_l_s.html#ga3500b3fa91d05a94cf8da5cc5ce338f5">rs_message.c</a></li>
<li>RS_Receive_IT()&#160;:&#160;<a class="el" href="group___r_s___t_o_o_l_s.html#ga1b59697f4b7fad81f9d5fd9fffebac2f">rs_message.h</a>, <a class="el" href="group___r_s___t_o_o_l_s.html#ga1b59697f4b7fad81f9d5fd9fffebac2f">rs_message.c</a></li>
<li>RS_RESERVED&#160;:&#160;<a class="el" href="group___r_s___t_o_o_l_s.html#gga13e1c056947b06c7dc29b90d22f683a7ad118e897a520ddc9c77a905684079550">rs_message.h</a></li>
<li>RS_Response()&#160;:&#160;<a class="el" href="group___r_s___t_o_o_l_s.html#ga8b7bcc84cb8192a58fe87b662fbd9690">rs_message.h</a>, <a class="el" href="group___r_s___t_o_o_l_s.html#ga8b7bcc84cb8192a58fe87b662fbd9690">rs_message.c</a></li>
<li>RS_SLAVE_ALWAYS_WAIT&#160;:&#160;<a class="el" href="group___r_s___t_o_o_l_s.html#gga13e1c056947b06c7dc29b90d22f683a7aee8cfd8ce9edacc055a195ed454a49dc">rs_message.h</a></li>
<li>RS_StatusTypeDef&#160;:&#160;<a class="el" href="group___r_s___t_o_o_l_s.html#ga727154b368397b4796aa892de12a2289">rs_message.h</a></li>
<li>RS_TIM_Handler()&#160;:&#160;<a class="el" href="group___r_s___t_o_o_l_s.html#ga2d356b2a0b4af43460bb2cacb81779ce">rs_message.h</a>, <a class="el" href="group___r_s___t_o_o_l_s.html#ga2d356b2a0b4af43460bb2cacb81779ce">rs_message.c</a></li>
<li>RS_TIM_Handler_ENTER&#160;:&#160;<a class="el" href="group___r_s___d_e_b_u_g.html#gab9d308969f924234bc879a93ffb80473">rs_message.h</a></li>
<li>RS_TIM_Handler_EXIT&#160;:&#160;<a class="el" href="group___r_s___d_e_b_u_g.html#gaa026e9bf8672373cfe265f96ea0f6061">rs_message.h</a></li>
<li>RS_Timeout_Start()&#160;:&#160;<a class="el" href="group___r_s___t_o_o_l_s.html#gac3a7bbc060a4250c160d51f0a0ca6cf8">rs_message.h</a>, <a class="el" href="group___r_s___t_o_o_l_s.html#gac3a7bbc060a4250c160d51f0a0ca6cf8">rs_message.c</a></li>
<li>RS_Timeout_Stop()&#160;:&#160;<a class="el" href="group___r_s___t_o_o_l_s.html#ga1de0a597d043b64d0a19bc393cc1b3fd">rs_message.h</a>, <a class="el" href="group___r_s___t_o_o_l_s.html#ga1de0a597d043b64d0a19bc393cc1b3fd">rs_message.c</a></li>
<li>RS_Timeout_Update()&#160;:&#160;<a class="el" href="group___r_s___t_o_o_l_s.html#gad3d2e8fb9c2879e1ddb967cff6124521">rs_message.h</a>, <a class="el" href="group___r_s___t_o_o_l_s.html#gad3d2e8fb9c2879e1ddb967cff6124521">rs_message.c</a></li>
<li>RS_Transmit_IT()&#160;:&#160;<a class="el" href="group___r_s___t_o_o_l_s.html#ga2e69a97a8b6e0b5855116d88c0e17cb9">rs_message.h</a>, <a class="el" href="group___r_s___t_o_o_l_s.html#ga2e69a97a8b6e0b5855116d88c0e17cb9">rs_message.c</a></li>
<li>RS_UART_Handler()&#160;:&#160;<a class="el" href="group___r_s___t_o_o_l_s.html#gab27567456df0329130c7fe4fc43c6ee1">rs_message.h</a>, <a class="el" href="group___r_s___t_o_o_l_s.html#gab27567456df0329130c7fe4fc43c6ee1">rs_message.c</a></li>
<li>RS_UART_Handler_ENTER&#160;:&#160;<a class="el" href="group___r_s___d_e_b_u_g.html#ga8c401e4d5d440001c1d879984107bb79">rs_message.h</a></li>
<li>RS_UART_Handler_EXIT&#160;:&#160;<a class="el" href="group___r_s___d_e_b_u_g.html#gade69fd26928788dd6f0278fcd15885ff">rs_message.h</a></li>
<li>RS_UART_TxCpltCallback()&#160;:&#160;<a class="el" href="group___r_s___t_o_o_l_s.html#ga7180b913ba795c07637680982d7f45ac">rs_message.h</a>, <a class="el" href="group___r_s___t_o_o_l_s.html#ga7180b913ba795c07637680982d7f45ac">rs_message.c</a></li>
<li>RS_USER_VARS_NUMB&#160;:&#160;<a class="el" href="group___r_s___d_e_b_u_g.html#ga00f6ba164717bd919fa6e9b25e1bbc21">rs_message.h</a></li>
<li>RX_FIRST_PART_SIZE&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga18eb6d0d9fdb6274341e892e2b41d88b">modbus_core.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,119 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Modbus: File Members</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<script type="text/javascript" src="darkmode_toggle.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">Modbus<span id="projectnumber">&#160;0.3</span>
</div>
<div id="projectbrief">Библиотека Modbus для STM</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.14.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
<script type="text/javascript">
$(function() { codefold.init(); });
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(function(){initNavTree('globals_t.html','',''); });
</script>
<div id="container">
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="contents">
<div class="textblock">Here is a list of all documented file members with links to the documentation:</div>
<h3 class="doxsection"><a id="index_t" name="index_t"></a>- t -</h3><ul>
<li>TrackerCnt_Err&#160;:&#160;<a class="el" href="group___r_s___d_e_b_u_g.html#ga49af29ab3927cad105c1d2b018a767e9">rs_message.h</a></li>
<li>TrackerCnt_Ok&#160;:&#160;<a class="el" href="group___r_s___d_e_b_u_g.html#ga23de0006aa08984cfeddb6aa5e512fa1">rs_message.h</a></li>
<li>TrackerCnt_Warn&#160;:&#160;<a class="el" href="group___r_s___d_e_b_u_g.html#ga8017fb05a56a1b667244f1f786fa9c57">rs_message.h</a></li>
<li>TrackerTypeDef&#160;:&#160;<a class="el" href="group___r_s___d_e_b_u_g.html#ga50ccb119acf302969b7fdcb58f2130e4">rs_message.h</a></li>
<li>TransactionID_size&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gae135b86915da05ee9991ef1c50d3527f">modbus_core.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,116 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Modbus: File Members</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<script type="text/javascript" src="darkmode_toggle.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">Modbus<span id="projectnumber">&#160;0.3</span>
</div>
<div id="projectbrief">Библиотека Modbus для STM</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.14.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
<script type="text/javascript">
$(function() { codefold.init(); });
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(function(){initNavTree('globals_vars.html','',''); });
</script>
<div id="container">
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="contents">
<div class="textblock">Here is a list of all documented variables with links to the documentation:</div><ul>
<li>hmodbus1&#160;:&#160;<a class="el" href="group___r_s___t_o_o_l_s.html#gadaef5cb7e494d0fd139199f5b6cbeb86">rs_message.h</a>, <a class="el" href="group___r_s___t_o_o_l_s.html#gadaef5cb7e494d0fd139199f5b6cbeb86">modbus.c</a></li>
<li>MB_DEVID&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___d_e_v_i_d.html#ga0aaf735fcb26fa61af6f7f4895802b90">modbus_devid.h</a>, <a class="el" href="group___m_o_d_b_u_s___d_e_v_i_d.html#ga0aaf735fcb26fa61af6f7f4895802b90">modbus_devid.c</a></li>
<li>MB_DIAG&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___d_i_a_g.html#ga4ba6111ac80e342396f9703239323936">modbus_diag.h</a>, <a class="el" href="group___m_o_d_b_u_s___d_i_a_g.html#ga4ba6111ac80e342396f9703239323936">modbus_diag.c</a></li>
<li>MODBUS_MSG&#160;:&#160;<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga679c526f339999281b97010876e7a295">modbus_core.h</a>, <a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga679c526f339999281b97010876e7a295">modbus.c</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,173 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Modbus: Graph Legend</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<script type="text/javascript" src="darkmode_toggle.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">Modbus<span id="projectnumber">&#160;0.3</span>
</div>
<div id="projectbrief">Библиотека Modbus для STM</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.14.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
<script type="text/javascript">
$(function() { codefold.init(); });
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(function(){initNavTree('graph_legend.html','',''); });
</script>
<div id="container">
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">Graph Legend</div></div>
</div><!--header-->
<div class="contents">
<p>This page explains how to interpret the graphs that are generated by doxygen.</p>
<p>Consider the following example: </p><div class="fragment"><div class="line"><span class="comment">/*! Invisible class because of truncation */</span></div>
<div class="line"><span class="keyword">class </span>Invisible { };</div>
<div class="line"><span class="comment"></span> </div>
<div class="line"><span class="comment">/*! Truncated class, inheritance relation is hidden */</span></div>
<div class="line"><span class="keyword">class </span>Truncated : <span class="keyword">public</span> Invisible { };</div>
<div class="line"> </div>
<div class="line"><span class="comment">/* Class not documented with doxygen comments */</span></div>
<div class="line"><span class="keyword">class </span>Undocumented { };</div>
<div class="line"><span class="comment"></span> </div>
<div class="line"><span class="comment">/*! Class that is inherited using public inheritance */</span></div>
<div class="line"><span class="keyword">class </span>PublicBase : <span class="keyword">public</span> Truncated { };</div>
<div class="line"><span class="comment"></span> </div>
<div class="line"><span class="comment">/*! A template class */</span></div>
<div class="line"><span class="keyword">template</span>&lt;<span class="keyword">class</span> T&gt; <span class="keyword">class </span>Templ { };</div>
<div class="line"><span class="comment"></span> </div>
<div class="line"><span class="comment">/*! Class that is inherited using protected inheritance */</span></div>
<div class="line"><span class="keyword">class </span>ProtectedBase { };</div>
<div class="line"><span class="comment"></span> </div>
<div class="line"><span class="comment">/*! Class that is inherited using private inheritance */</span></div>
<div class="line"><span class="keyword">class </span>PrivateBase { };</div>
<div class="line"><span class="comment"></span> </div>
<div class="line"><span class="comment">/*! Class that is used by the Inherited class */</span></div>
<div class="line"><span class="keyword">class </span>Used { };</div>
<div class="line"><span class="comment"></span> </div>
<div class="line"><span class="comment">/*! Super class that inherits a number of other classes */</span></div>
<div class="line"><span class="keyword">class </span>Inherited : <span class="keyword">public</span> PublicBase,</div>
<div class="line"> <span class="keyword">protected</span> ProtectedBase,</div>
<div class="line"> <span class="keyword">private</span> PrivateBase,</div>
<div class="line"> <span class="keyword">public</span> Undocumented,</div>
<div class="line"> <span class="keyword">public</span> Templ&lt;int&gt;</div>
<div class="line">{</div>
<div class="line"> <span class="keyword">private</span>:</div>
<div class="line"> Used *m_usedClass;</div>
<div class="line">};</div>
</div><!-- fragment --><p> This will result in the following graph:</p>
<center><img src="graph_legend.png" alt="" class="inline"/></center><p>The boxes in the above graph have the following meaning: </p>
<ul>
<li>
A filled gray box represents the struct or class for which the graph is generated. </li>
<li>
A box with a black border denotes a documented struct or class. </li>
<li>
A box with a gray border denotes an undocumented struct or class. </li>
<li>
A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries. </li>
</ul>
<p>The arrows have the following meaning: </p>
<ul>
<li>
A blue arrow is used to visualize a public inheritance relation between two classes. </li>
<li>
A dark green arrow is used for protected inheritance. </li>
<li>
A dark red arrow is used for private inheritance. </li>
<li>
A purple dashed arrow is used if a class is contained or used by another class. The arrow is labeled with the variable(s) through which the pointed class or struct is accessible. </li>
<li>
A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labeled with the template parameters of the instance. </li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1 @@
f74606a252eb303675caf37987d0b7af

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View File

@@ -0,0 +1,150 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Modbus: Modbus tools</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<script type="text/javascript" src="darkmode_toggle.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">Modbus<span id="projectnumber">&#160;0.3</span>
</div>
<div id="projectbrief">Библиотека Modbus для STM</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.14.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
<script type="text/javascript">
$(function() { codefold.init(); });
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(function(){initNavTree('group___m_o_d_b_u_s.html','',''); });
</script>
<div id="container">
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">Modbus tools </div></div>
</div><!--header-->
<div class="contents">
<p>Библиотека реализующая протокол Modbus.
<a href="#details">More...</a></p>
<div id="dynsection-0" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Collaboration diagram for Modbus tools:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="group___m_o_d_b_u_s.png" border="0" usemap="#agroup______m__o__d__b__u__s" loading="lazy" alt=""/></div>
<map name="agroup______m__o__d__b__u__s" id="agroup______m__o__d__b__u__s">
<area shape="rect" title="Библиотека реализующая протокол Modbus." alt="" coords="5,85,105,112"/>
<area shape="rect" href="group___m_o_d_b_u_s___c_o_n_f_i_g_s.html" title="Конфигурация библиотеки" alt="" coords="174,5,288,32"/>
<area shape="rect" href="group___m_o_d_b_u_s___d_a_t_a.html" title="Определение карты регистров и коилов" alt="" coords="153,56,309,83"/>
<area shape="rect" href="group___m_o_d_b_u_s___f_u_n_c_t_i_o_n_s.html" title="Публичные функции библиотеки" alt="" coords="159,107,302,149"/>
<area shape="rect" href="group___m_o_d_b_u_s___i_n_t_e_r_n_a_l.html" title="Внутренние штуки библиотеки" alt="" coords="157,173,305,200"/>
</map>
</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-groups" class="groupheader"><a id="groups" name="groups"></a>
Topics</h2></td></tr>
<tr class="memitem:MODBUS_5FDATA" id="r_MODBUS_5FDATA"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_o_d_b_u_s___d_a_t_a.html">Modbus Registers Map</a></td></tr>
<tr class="memdesc:group___m_o_d_b_u_s___d_a_t_a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Определение карты регистров и коилов <br /></td></tr>
<tr class="memitem:MODBUS_5FFUNCTIONS" id="r_MODBUS_5FFUNCTIONS"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_o_d_b_u_s___f_u_n_c_t_i_o_n_s.html">Main API for Modbus Library</a></td></tr>
<tr class="memdesc:group___m_o_d_b_u_s___f_u_n_c_t_i_o_n_s"><td class="mdescLeft">&#160;</td><td class="mdescRight">Публичные функции библиотеки <br /></td></tr>
<tr class="memitem:MODBUS_5FINTERNAL" id="r_MODBUS_5FINTERNAL"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_o_d_b_u_s___i_n_t_e_r_n_a_l.html">Modbus Internal Tools</a></td></tr>
<tr class="memdesc:group___m_o_d_b_u_s___i_n_t_e_r_n_a_l"><td class="mdescLeft">&#160;</td><td class="mdescRight">Внутренние штуки библиотеки <br /></td></tr>
<tr class="memitem:MODBUS_5FCONFIGS" id="r_MODBUS_5FCONFIGS"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_o_d_b_u_s___c_o_n_f_i_g_s.html">Modbus configs</a></td></tr>
<tr class="memdesc:group___m_o_d_b_u_s___c_o_n_f_i_g_s"><td class="mdescLeft">&#160;</td><td class="mdescRight">Конфигурация библиотеки <br /></td></tr>
</table>
<a name="details" id="details"></a><h2 id="header-details" class="groupheader">Detailed Description</h2>
<p>Библиотека реализующая протокол Modbus. </p>
</div><!-- contents -->
</div><!-- doc-content -->
<div id="page-nav" class="page-nav-panel">
<div id="page-nav-resize-handle"></div>
<div id="page-nav-tree">
<div id="page-nav-contents">
</div><!-- page-nav-contents -->
</div><!-- page-nav-tree -->
</div><!-- page-nav -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,7 @@
var group___m_o_d_b_u_s =
[
[ "Modbus Registers Map", "group___m_o_d_b_u_s___d_a_t_a.html", "group___m_o_d_b_u_s___d_a_t_a" ],
[ "Main API for Modbus Library", "group___m_o_d_b_u_s___f_u_n_c_t_i_o_n_s.html", "group___m_o_d_b_u_s___f_u_n_c_t_i_o_n_s" ],
[ "Modbus Internal Tools", "group___m_o_d_b_u_s___i_n_t_e_r_n_a_l.html", "group___m_o_d_b_u_s___i_n_t_e_r_n_a_l" ],
[ "Modbus configs", "group___m_o_d_b_u_s___c_o_n_f_i_g_s.html", "group___m_o_d_b_u_s___c_o_n_f_i_g_s" ]
];

View File

@@ -0,0 +1,7 @@
<map id="Modbus tools" name="Modbus tools">
<area shape="rect" id="Node000001" title="Библиотека реализующая протокол Modbus." alt="" coords="5,85,105,112"/>
<area shape="rect" id="Node000005" href="$group___m_o_d_b_u_s___c_o_n_f_i_g_s.html" title="Конфигурация библиотеки" alt="" coords="174,5,288,32"/>
<area shape="rect" id="Node000002" href="$group___m_o_d_b_u_s___d_a_t_a.html" title="Определение карты регистров и коилов" alt="" coords="153,56,309,83"/>
<area shape="rect" id="Node000003" href="$group___m_o_d_b_u_s___f_u_n_c_t_i_o_n_s.html" title="Публичные функции библиотеки" alt="" coords="159,107,302,149"/>
<area shape="rect" id="Node000004" href="$group___m_o_d_b_u_s___i_n_t_e_r_n_a_l.html" title="Внутренние штуки библиотеки" alt="" coords="157,173,305,200"/>
</map>

View File

@@ -0,0 +1 @@
22930d42a6214fed2ba88471ba491dc9

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

View File

@@ -0,0 +1,577 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Modbus: Internal Process Functions</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<script type="text/javascript" src="darkmode_toggle.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">Modbus<span id="projectnumber">&#160;0.3</span>
</div>
<div id="projectbrief">Библиотека Modbus для STM</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.14.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
<script type="text/javascript">
$(function() { codefold.init(); });
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(function(){initNavTree('group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html','',''); });
</script>
<div id="container">
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">Internal Process Functions <div class="ingroups"><a class="el" href="group___m_o_d_b_u_s.html">Modbus tools</a> &raquo; <a class="el" href="group___m_o_d_b_u_s___i_n_t_e_r_n_a_l.html">Modbus Internal Tools</a></div></div></div>
</div><!--header-->
<div class="contents">
<p>Функции обработки запросов модбас
<a href="#details">More...</a></p>
<div id="dynsection-0" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Collaboration diagram for Internal Process Functions:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.png" border="0" usemap="#agroup______m__o__d__b__u__s______c__m__d______p__r__o__c__e__s__s______f__u__n__c__t__i__o__n__s" loading="lazy" alt=""/></div>
<map name="agroup______m__o__d__b__u__s______c__m__d______p__r__o__c__e__s__s______f__u__n__c__t__i__o__n__s" id="agroup______m__o__d__b__u__s______c__m__d______p__r__o__c__e__s__s______f__u__n__c__t__i__o__n__s">
<area shape="rect" title="Функции обработки запросов модбас" alt="" coords="202,31,379,57"/>
<area shape="rect" href="group___m_o_d_b_u_s___m_a_s_t_e_r.html" title="Функции для работы в режиме Master." alt="" coords="427,5,588,32"/>
<area shape="rect" href="group___m_o_d_b_u_s___s_l_a_v_e.html" title="Функции для работы в режиме Slave." alt="" coords="432,56,584,83"/>
<area shape="rect" href="group___m_o_d_b_u_s___i_n_t_e_r_n_a_l.html" title="Внутренние штуки библиотеки" alt="" coords="5,31,154,57"/>
</map>
</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-groups" class="groupheader"><a id="groups" name="groups"></a>
Topics</h2></td></tr>
<tr class="memitem:MODBUS_5FMASTER" id="r_MODBUS_5FMASTER"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_o_d_b_u_s___m_a_s_t_e_r.html">Modbus master funtions</a></td></tr>
<tr class="memdesc:group___m_o_d_b_u_s___m_a_s_t_e_r"><td class="mdescLeft">&#160;</td><td class="mdescRight">Функции для работы в режиме Master. <br /></td></tr>
<tr class="memitem:MODBUS_5FSLAVE" id="r_MODBUS_5FSLAVE"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_o_d_b_u_s___s_l_a_v_e.html">Modbus slave funtions</a></td></tr>
<tr class="memdesc:group___m_o_d_b_u_s___s_l_a_v_e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Функции для работы в режиме Slave. <br /></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-func-members" class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga39a02e8e4911a74a619d2ef29adcbad8" id="r_ga39a02e8e4911a74a619d2ef29adcbad8"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga39a02e8e4911a74a619d2ef29adcbad8">MB_Process_Read_Coils</a> (<a class="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> *modbus_msg)</td></tr>
<tr class="memdesc:ga39a02e8e4911a74a619d2ef29adcbad8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Обработать функцию Read Coils (01 - 0x01). <br /></td></tr>
<tr class="memitem:ga918102931c9125a5e44a30e103d17e14" id="r_ga918102931c9125a5e44a30e103d17e14"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga918102931c9125a5e44a30e103d17e14">MB_Process_Write_Single_Coil</a> (<a class="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> *modbus_msg)</td></tr>
<tr class="memdesc:ga918102931c9125a5e44a30e103d17e14"><td class="mdescLeft">&#160;</td><td class="mdescRight">Обработать функцию Write Single Coils (05 - 0x05). <br /></td></tr>
<tr class="memitem:ga6f4498cec8634820025aaa9c4623ba55" id="r_ga6f4498cec8634820025aaa9c4623ba55"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga6f4498cec8634820025aaa9c4623ba55">MB_Process_Write_Miltuple_Coils</a> (<a class="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> *modbus_msg)</td></tr>
<tr class="memdesc:ga6f4498cec8634820025aaa9c4623ba55"><td class="mdescLeft">&#160;</td><td class="mdescRight">Обработать функцию Write Multiple Coils (15 - 0x0F). <br /></td></tr>
<tr class="memitem:ga278ca9791c69aef8adeb9e7c4b273c50" id="r_ga278ca9791c69aef8adeb9e7c4b273c50"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga4ade64cb3fabf37f010c1e297489980c">MB_ExceptionTypeDef</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga278ca9791c69aef8adeb9e7c4b273c50">MB_Check_Address_For_Arr</a> (uint16_t Addr, uint16_t Qnt, uint16_t R_ARR_ADDR, uint16_t R_ARR_NUMB)</td></tr>
<tr class="memdesc:ga278ca9791c69aef8adeb9e7c4b273c50"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check is address valid for certain array. <br /></td></tr>
<tr class="memitem:ga1e90bb28a4cf997250daab6470d5ffe3" id="r_ga1e90bb28a4cf997250daab6470d5ffe3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga4ade64cb3fabf37f010c1e297489980c">MB_ExceptionTypeDef</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga1e90bb28a4cf997250daab6470d5ffe3">MB_DefineRegistersAddress</a> (uint16_t **pRegs, uint16_t Addr, uint16_t Qnt, uint8_t RegisterType)</td></tr>
<tr class="memdesc:ga1e90bb28a4cf997250daab6470d5ffe3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define Address Origin for Input/Holding Registers. <br /></td></tr>
<tr class="memitem:gade717a6829a062a8a198bd933c8b2221" id="r_gade717a6829a062a8a198bd933c8b2221"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga4ade64cb3fabf37f010c1e297489980c">MB_ExceptionTypeDef</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gade717a6829a062a8a198bd933c8b2221">MB_DefineCoilsAddress</a> (uint16_t **pCoils, uint16_t Addr, uint16_t Qnt, uint16_t *start_shift, uint8_t WriteFlag)</td></tr>
<tr class="memdesc:gade717a6829a062a8a198bd933c8b2221"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define Address Origin for coils. <br /></td></tr>
<tr class="memitem:ga279ce6d9d175a43714862dc6661e7096" id="r_ga279ce6d9d175a43714862dc6661e7096"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga279ce6d9d175a43714862dc6661e7096">MB_Process_Read_Device_Identifications</a> (<a class="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> *modbus_msg)</td></tr>
<tr class="memdesc:ga279ce6d9d175a43714862dc6661e7096"><td class="mdescLeft">&#160;</td><td class="mdescRight">Обработать функцию Read Device Identifications (43/14 - 0x2B/0E). <br /></td></tr>
<tr class="memitem:ga6bbfc53b20b4698a08d79851b5db65f0" id="r_ga6bbfc53b20b4698a08d79851b5db65f0"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga6bbfc53b20b4698a08d79851b5db65f0">MB_Process_Diagnostics</a> (<a class="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> *modbus_msg)</td></tr>
<tr class="memdesc:ga6bbfc53b20b4698a08d79851b5db65f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Обработать функцию Diagnostics (Serial Line only) (0x08) <br /></td></tr>
<tr class="memitem:gac28127757ba25fe0b611612a785f663b" id="r_gac28127757ba25fe0b611612a785f663b"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gac28127757ba25fe0b611612a785f663b">MB_Process_Read_Hold_Regs</a> (<a class="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> *modbus_msg)</td></tr>
<tr class="memdesc:gac28127757ba25fe0b611612a785f663b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Обработать функцию Read Holding Registers (03 - 0x03). <br /></td></tr>
<tr class="memitem:ga02e192a3d9f31737c45f074a04b37648" id="r_ga02e192a3d9f31737c45f074a04b37648"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga02e192a3d9f31737c45f074a04b37648">MB_Process_Write_Single_Reg</a> (<a class="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> *modbus_msg)</td></tr>
<tr class="memdesc:ga02e192a3d9f31737c45f074a04b37648"><td class="mdescLeft">&#160;</td><td class="mdescRight">Обработать функцию Write Single Register (06 - 0x06). <br /></td></tr>
<tr class="memitem:ga9c6ab159edb8dda6548b2228773ce919" id="r_ga9c6ab159edb8dda6548b2228773ce919"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga9c6ab159edb8dda6548b2228773ce919">MB_Process_Write_Miltuple_Regs</a> (<a class="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> *modbus_msg)</td></tr>
<tr class="memdesc:ga9c6ab159edb8dda6548b2228773ce919"><td class="mdescLeft">&#160;</td><td class="mdescRight">Обработать функцию Write Multiple Registers (16 - 0x10). <br /></td></tr>
<tr class="memitem:gad13d010f43c7ab08a85667b9e1906b7d" id="r_gad13d010f43c7ab08a85667b9e1906b7d"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gad13d010f43c7ab08a85667b9e1906b7d">MB_Process_Read_Input_Regs</a> (<a class="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> *modbus_msg)</td></tr>
<tr class="memdesc:gad13d010f43c7ab08a85667b9e1906b7d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Обработать функцию Read Input Registers (04 - 0x04). <br /></td></tr>
</table>
<a name="details" id="details"></a><h2 id="header-details" class="groupheader">Detailed Description</h2>
<p>Функции обработки запросов модбас </p>
<a name="doc-func-members" id="doc-func-members"></a><h2 id="header-doc-func-members" class="groupheader">Function Documentation</h2>
<a id="ga39a02e8e4911a74a619d2ef29adcbad8" name="ga39a02e8e4911a74a619d2ef29adcbad8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga39a02e8e4911a74a619d2ef29adcbad8">&#9670;&#160;</a></span>MB_Process_Read_Coils()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t MB_Process_Read_Coils </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> *</td> <td class="paramname"><span class="paramname"><em>modbus_msg</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Обработать функцию Read Coils (01 - 0x01). </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">modbus_msg</td><td>Указатель на структуру собщения modbus. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>fMessageHandled Статус о результате обработки комманды.</dd></dl>
<p>Обработка команды Read Coils. </p>
<p class="definition">Definition at line <a class="el" href="modbus__coils_8c_source.html#l00103">103</a> of file <a class="el" href="modbus__coils_8c_source.html">modbus_coils.c</a>.</p>
</div>
</div>
<a id="ga918102931c9125a5e44a30e103d17e14" name="ga918102931c9125a5e44a30e103d17e14"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga918102931c9125a5e44a30e103d17e14">&#9670;&#160;</a></span>MB_Process_Write_Single_Coil()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t MB_Process_Write_Single_Coil </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> *</td> <td class="paramname"><span class="paramname"><em>modbus_msg</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Обработать функцию Write Single Coils (05 - 0x05). </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">modbus_msg</td><td>Указатель на структуру собщения modbus. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>fMessageHandled Статус о результате обработки комманды.</dd></dl>
<p>Обработка команды Write Single Coils. </p>
<p class="definition">Definition at line <a class="el" href="modbus__coils_8c_source.html#l00156">156</a> of file <a class="el" href="modbus__coils_8c_source.html">modbus_coils.c</a>.</p>
</div>
</div>
<a id="ga6f4498cec8634820025aaa9c4623ba55" name="ga6f4498cec8634820025aaa9c4623ba55"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6f4498cec8634820025aaa9c4623ba55">&#9670;&#160;</a></span>MB_Process_Write_Miltuple_Coils()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t MB_Process_Write_Miltuple_Coils </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> *</td> <td class="paramname"><span class="paramname"><em>modbus_msg</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Обработать функцию Write Multiple Coils (15 - 0x0F). </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">modbus_msg</td><td>Указатель на структуру собщения modbus. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>fMessageHandled Статус о результате обработки комманды.</dd></dl>
<p>Обработка команды Write Multiple Coils. </p>
<p class="definition">Definition at line <a class="el" href="modbus__coils_8c_source.html#l00187">187</a> of file <a class="el" href="modbus__coils_8c_source.html">modbus_coils.c</a>.</p>
</div>
</div>
<a id="ga278ca9791c69aef8adeb9e7c4b273c50" name="ga278ca9791c69aef8adeb9e7c4b273c50"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga278ca9791c69aef8adeb9e7c4b273c50">&#9670;&#160;</a></span>MB_Check_Address_For_Arr()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga4ade64cb3fabf37f010c1e297489980c">MB_ExceptionTypeDef</a> MB_Check_Address_For_Arr </td>
<td>(</td>
<td class="paramtype">uint16_t</td> <td class="paramname"><span class="paramname"><em>Addr</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t</td> <td class="paramname"><span class="paramname"><em>Qnt</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t</td> <td class="paramname"><span class="paramname"><em>R_ARR_ADDR</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t</td> <td class="paramname"><span class="paramname"><em>R_ARR_NUMB</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Check is address valid for certain array. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">Addr</td><td>Начальный адресс. </td></tr>
<tr><td class="paramname">Qnt</td><td>Количество запрашиваемых элементов. </td></tr>
<tr><td class="paramname">R_ARR_ADDR</td><td>Начальный адресс массива R_ARR. </td></tr>
<tr><td class="paramname">R_ARR_NUMB</td><td>Количество элементов в массиве R_ARR. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ExceptionCode - ET_ILLEGAL_DATA_ADRESS если адресс недействителен, и ET_NO_ERRORS если все ок.</dd></dl>
<p>Позволяет определить, принадлежит ли адресс Addr массиву R_ARR: Если адресс Addr находится в диапазоне адрессов массива R_ARR, то возвращаем NO_ERROR. Если адресс Addr находится за пределами адрессов массива R_ARR - ET_ILLEGAL_DATA_ADDRESSю. </p>
<p class="definition">Definition at line <a class="el" href="____modbus__data_8c_source.html#l00038">38</a> of file <a class="el" href="____modbus__data_8c_source.html">__modbus_data.c</a>.</p>
</div>
</div>
<a id="ga1e90bb28a4cf997250daab6470d5ffe3" name="ga1e90bb28a4cf997250daab6470d5ffe3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1e90bb28a4cf997250daab6470d5ffe3">&#9670;&#160;</a></span>MB_DefineRegistersAddress()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga4ade64cb3fabf37f010c1e297489980c">MB_ExceptionTypeDef</a> MB_DefineRegistersAddress </td>
<td>(</td>
<td class="paramtype">uint16_t **</td> <td class="paramname"><span class="paramname"><em>pRegs</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t</td> <td class="paramname"><span class="paramname"><em>Addr</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t</td> <td class="paramname"><span class="paramname"><em>Qnt</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t</td> <td class="paramname"><span class="paramname"><em>RegisterType</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Define Address Origin for Input/Holding Registers. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">pRegs</td><td>Указатель на указатель регистров. </td></tr>
<tr><td class="paramname">Addr</td><td>Адрес начального регистра. </td></tr>
<tr><td class="paramname">Qnt</td><td>Количество запрашиваемых регистров. </td></tr>
<tr><td class="paramname">WriteFlag</td><td>Флаг регистр нужны для чтения или записи. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ExceptionCode Код исключения если есть, и ET_NO_ERRORS если нет.</dd></dl>
<p>Определение адреса начального регистра. </p><dl class="section note"><dt>Note</dt><dd>WriteFlag пока не используется. </dd></dl>
<p class="definition">Definition at line <a class="el" href="____modbus__data_8c_source.html#l00066">66</a> of file <a class="el" href="____modbus__data_8c_source.html">__modbus_data.c</a>.</p>
</div>
</div>
<a id="gade717a6829a062a8a198bd933c8b2221" name="gade717a6829a062a8a198bd933c8b2221"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gade717a6829a062a8a198bd933c8b2221">&#9670;&#160;</a></span>MB_DefineCoilsAddress()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga4ade64cb3fabf37f010c1e297489980c">MB_ExceptionTypeDef</a> MB_DefineCoilsAddress </td>
<td>(</td>
<td class="paramtype">uint16_t **</td> <td class="paramname"><span class="paramname"><em>pCoils</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t</td> <td class="paramname"><span class="paramname"><em>Addr</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t</td> <td class="paramname"><span class="paramname"><em>Qnt</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t *</td> <td class="paramname"><span class="paramname"><em>start_shift</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t</td> <td class="paramname"><span class="paramname"><em>WriteFlag</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Define Address Origin for coils. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">pCoils</td><td>Указатель на указатель коилов. </td></tr>
<tr><td class="paramname">Addr</td><td>Адресс начального коила. </td></tr>
<tr><td class="paramname">Qnt</td><td>Количество запрашиваемых коилов. </td></tr>
<tr><td class="paramname">start_shift</td><td>Указатель на переменную содержащую сдвиг внутри регистра для начального коила. </td></tr>
<tr><td class="paramname">WriteFlag</td><td>Флаг коилы нужны для чтения или записи. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ExceptionCode Код исключения если есть, и ET_NO_ERRORS если нет.</dd></dl>
<p>Определение адреса начального регистра запрашиваемых коилов. </p><dl class="section note"><dt>Note</dt><dd>WriteFlag используется для определния регистров GPIO: ODR или IDR. </dd></dl>
<p class="definition">Definition at line <a class="el" href="____modbus__data_8c_source.html#l00119">119</a> of file <a class="el" href="____modbus__data_8c_source.html">__modbus_data.c</a>.</p>
</div>
</div>
<a id="ga279ce6d9d175a43714862dc6661e7096" name="ga279ce6d9d175a43714862dc6661e7096"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga279ce6d9d175a43714862dc6661e7096">&#9670;&#160;</a></span>MB_Process_Read_Device_Identifications()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t MB_Process_Read_Device_Identifications </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> *</td> <td class="paramname"><span class="paramname"><em>modbus_msg</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Обработать функцию Read Device Identifications (43/14 - 0x2B/0E). </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">modbus_msg</td><td>Указатель на структуру собщения modbus. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>fMessageHandled Статус о результате обработки комманды.</dd></dl>
<p>Обработка команды Write Single Register. </p>
<p class="definition">Definition at line <a class="el" href="modbus__devid_8c_source.html#l00112">112</a> of file <a class="el" href="modbus__devid_8c_source.html">modbus_devid.c</a>.</p>
</div>
</div>
<a id="ga6bbfc53b20b4698a08d79851b5db65f0" name="ga6bbfc53b20b4698a08d79851b5db65f0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6bbfc53b20b4698a08d79851b5db65f0">&#9670;&#160;</a></span>MB_Process_Diagnostics()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t MB_Process_Diagnostics </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> *</td> <td class="paramname"><span class="paramname"><em>modbus_msg</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Обработать функцию Diagnostics (Serial Line only) (0x08) </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">modbus_msg</td><td>Указатель на структуру сообщения modbus </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>fMessageHandled Статус обработки команды </dd></dl>
<p class="definition">Definition at line <a class="el" href="modbus__diag_8c_source.html#l00075">75</a> of file <a class="el" href="modbus__diag_8c_source.html">modbus_diag.c</a>.</p>
</div>
</div>
<a id="gac28127757ba25fe0b611612a785f663b" name="gac28127757ba25fe0b611612a785f663b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac28127757ba25fe0b611612a785f663b">&#9670;&#160;</a></span>MB_Process_Read_Hold_Regs()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t MB_Process_Read_Hold_Regs </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> *</td> <td class="paramname"><span class="paramname"><em>modbus_msg</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Обработать функцию Read Holding Registers (03 - 0x03). </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">modbus_msg</td><td>Указатель на структуру собщения modbus. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>fMessageHandled Статус о результате обработки комманды.</dd></dl>
<p>Обработка команды Read Holding Registers. </p>
<p class="definition">Definition at line <a class="el" href="modbus__holdregs_8c_source.html#l00092">92</a> of file <a class="el" href="modbus__holdregs_8c_source.html">modbus_holdregs.c</a>.</p>
</div>
</div>
<a id="ga02e192a3d9f31737c45f074a04b37648" name="ga02e192a3d9f31737c45f074a04b37648"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga02e192a3d9f31737c45f074a04b37648">&#9670;&#160;</a></span>MB_Process_Write_Single_Reg()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t MB_Process_Write_Single_Reg </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> *</td> <td class="paramname"><span class="paramname"><em>modbus_msg</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Обработать функцию Write Single Register (06 - 0x06). </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">modbus_msg</td><td>Указатель на структуру собщения modbus. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>fMessageHandled Статус о результате обработки комманды.</dd></dl>
<p>Обработка команды Write Single Register. </p>
<p class="definition">Definition at line <a class="el" href="modbus__holdregs_8c_source.html#l00120">120</a> of file <a class="el" href="modbus__holdregs_8c_source.html">modbus_holdregs.c</a>.</p>
</div>
</div>
<a id="ga9c6ab159edb8dda6548b2228773ce919" name="ga9c6ab159edb8dda6548b2228773ce919"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9c6ab159edb8dda6548b2228773ce919">&#9670;&#160;</a></span>MB_Process_Write_Miltuple_Regs()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t MB_Process_Write_Miltuple_Regs </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> *</td> <td class="paramname"><span class="paramname"><em>modbus_msg</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Обработать функцию Write Multiple Registers (16 - 0x10). </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">modbus_msg</td><td>Указатель на структуру собщения modbus. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>fMessageHandled Статус о результате обработки комманды.</dd></dl>
<p>Обработка команды Write Multiple Registers. </p>
<p class="definition">Definition at line <a class="el" href="modbus__holdregs_8c_source.html#l00139">139</a> of file <a class="el" href="modbus__holdregs_8c_source.html">modbus_holdregs.c</a>.</p>
</div>
</div>
<a id="gad13d010f43c7ab08a85667b9e1906b7d" name="gad13d010f43c7ab08a85667b9e1906b7d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad13d010f43c7ab08a85667b9e1906b7d">&#9670;&#160;</a></span>MB_Process_Read_Input_Regs()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t MB_Process_Read_Input_Regs </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> *</td> <td class="paramname"><span class="paramname"><em>modbus_msg</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Обработать функцию Read Input Registers (04 - 0x04). </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">modbus_msg</td><td>Указатель на структуру собщения modbus. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>fMessageHandled Статус о результате обработки комманды.</dd></dl>
<p>Обработка команды Read Input Registers. </p>
<p class="definition">Definition at line <a class="el" href="modbus__inputregs_8c_source.html#l00087">87</a> of file <a class="el" href="modbus__inputregs_8c_source.html">modbus_inputregs.c</a>.</p>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<div id="page-nav" class="page-nav-panel">
<div id="page-nav-resize-handle"></div>
<div id="page-nav-tree">
<div id="page-nav-contents">
</div><!-- page-nav-contents -->
</div><!-- page-nav-tree -->
</div><!-- page-nav -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,17 @@
var group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s =
[
[ "Modbus master funtions", "group___m_o_d_b_u_s___m_a_s_t_e_r.html", "group___m_o_d_b_u_s___m_a_s_t_e_r" ],
[ "Modbus slave funtions", "group___m_o_d_b_u_s___s_l_a_v_e.html", "group___m_o_d_b_u_s___s_l_a_v_e" ],
[ "MB_Process_Read_Coils", "group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga39a02e8e4911a74a619d2ef29adcbad8", null ],
[ "MB_Process_Write_Single_Coil", "group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga918102931c9125a5e44a30e103d17e14", null ],
[ "MB_Process_Write_Miltuple_Coils", "group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga6f4498cec8634820025aaa9c4623ba55", null ],
[ "MB_Check_Address_For_Arr", "group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga278ca9791c69aef8adeb9e7c4b273c50", null ],
[ "MB_DefineRegistersAddress", "group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga1e90bb28a4cf997250daab6470d5ffe3", null ],
[ "MB_DefineCoilsAddress", "group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gade717a6829a062a8a198bd933c8b2221", null ],
[ "MB_Process_Read_Device_Identifications", "group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga279ce6d9d175a43714862dc6661e7096", null ],
[ "MB_Process_Diagnostics", "group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga6bbfc53b20b4698a08d79851b5db65f0", null ],
[ "MB_Process_Read_Hold_Regs", "group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gac28127757ba25fe0b611612a785f663b", null ],
[ "MB_Process_Write_Single_Reg", "group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga02e192a3d9f31737c45f074a04b37648", null ],
[ "MB_Process_Write_Miltuple_Regs", "group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga9c6ab159edb8dda6548b2228773ce919", null ],
[ "MB_Process_Read_Input_Regs", "group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gad13d010f43c7ab08a85667b9e1906b7d", null ]
];

View File

@@ -0,0 +1,6 @@
<map id="Internal Process Functions" name="Internal Process Functions">
<area shape="rect" id="Node000001" title="Функции обработки запросов модбас" alt="" coords="202,31,379,57"/>
<area shape="rect" id="Node000003" href="$group___m_o_d_b_u_s___m_a_s_t_e_r.html" title="Функции для работы в режиме Master." alt="" coords="427,5,588,32"/>
<area shape="rect" id="Node000004" href="$group___m_o_d_b_u_s___s_l_a_v_e.html" title="Функции для работы в режиме Slave." alt="" coords="432,56,584,83"/>
<area shape="rect" id="Node000002" href="$group___m_o_d_b_u_s___i_n_t_e_r_n_a_l.html" title="Внутренние штуки библиотеки" alt="" coords="5,31,154,57"/>
</map>

View File

@@ -0,0 +1 @@
a49e80383e9c0836a654c6c6f00fa3e9

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@@ -0,0 +1,153 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Modbus: Coils Tools</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<script type="text/javascript" src="darkmode_toggle.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">Modbus<span id="projectnumber">&#160;0.3</span>
</div>
<div id="projectbrief">Библиотека Modbus для STM</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.14.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
<script type="text/javascript">
$(function() { codefold.init(); });
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(function(){initNavTree('group___m_o_d_b_u_s___c_o_i_l_s.html','',''); });
</script>
<div id="container">
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">Coils Tools <div class="ingroups"><a class="el" href="group___m_o_d_b_u_s.html">Modbus tools</a> &raquo; <a class="el" href="group___m_o_d_b_u_s___i_n_t_e_r_n_a_l.html">Modbus Internal Tools</a></div></div></div>
</div><!--header-->
<div class="contents">
<p>Функции для работы с коилами
</p>
<div id="dynsection-0" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Collaboration diagram for Coils Tools:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="group___m_o_d_b_u_s___c_o_i_l_s.png" border="0" usemap="#agroup______m__o__d__b__u__s______c__o__i__l__s" loading="lazy" alt=""/></div>
<map name="agroup______m__o__d__b__u__s______c__o__i__l__s" id="agroup______m__o__d__b__u__s______c__o__i__l__s">
<area shape="rect" title="Функции для работы с коилами" alt="" coords="202,5,287,32"/>
<area shape="rect" href="group___m_o_d_b_u_s___i_n_t_e_r_n_a_l.html" title="Внутренние штуки библиотеки" alt="" coords="5,5,154,32"/>
</map>
</div>
<p>Функции для работы с коилами </p>
<p>Модуль для доступа к coils внутри программы:</p><ul>
<li>Функции для доступа к coils по глобальным адресам</li>
<li>Макросы для доступа к coils по локальным адресам</li>
</ul>
<p>Модуль предоставляет функции и макросы для работы с битовыми данными:</p><ul>
<li>Чтение coils (0x01) Упаковка битов в байты</li>
<li>Запись одиночного coil (0x05) Установка/сброс бита</li>
<li>Запись множественных coils (0x0F) - распаковка байтов в биты</li>
</ul>
<h1 class="doxsection"><a class="anchor" id="cbits"></a>
Организация битовых данных:</h1>
<p>Coils упакованы в 16-битные слова для эффективного использования памяти. Биты нумеруются от младшего к старшему внутри каждого слова.</p>
<h1 class="doxsection"><a class="anchor" id="caddr"></a>
Адресация:</h1>
<ul>
<li>Глобальная - абсолютный адрес в пространстве Modbus</li>
<li>Локальная - относительный адрес внутри массива coils</li>
<li>Макросы автоматически вычисляют смещения и маски </li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<div id="page-nav" class="page-nav-panel">
<div id="page-nav-resize-handle"></div>
<div id="page-nav-tree">
<div id="page-nav-contents">
</div><!-- page-nav-contents -->
</div><!-- page-nav-tree -->
</div><!-- page-nav -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,4 @@
<map id="Coils Tools" name="Coils Tools">
<area shape="rect" id="Node000001" title="Функции для работы с коилами" alt="" coords="202,5,287,32"/>
<area shape="rect" id="Node000002" href="$group___m_o_d_b_u_s___i_n_t_e_r_n_a_l.html" title="Внутренние штуки библиотеки" alt="" coords="5,5,154,32"/>
</map>

View File

@@ -0,0 +1 @@
0530937d9612ea6231affb7b2e7d4fcf

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -0,0 +1,527 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Modbus: Modbus configs</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<script type="text/javascript" src="darkmode_toggle.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">Modbus<span id="projectnumber">&#160;0.3</span>
</div>
<div id="projectbrief">Библиотека Modbus для STM</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.14.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
<script type="text/javascript">
$(function() { codefold.init(); });
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(function(){initNavTree('group___m_o_d_b_u_s___c_o_n_f_i_g_s.html','',''); });
</script>
<div id="container">
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">Modbus configs <div class="ingroups"><a class="el" href="group___m_o_d_b_u_s.html">Modbus tools</a></div></div></div>
</div><!--header-->
<div class="contents">
<p>Конфигурация библиотеки
<a href="#details">More...</a></p>
<div id="dynsection-0" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Collaboration diagram for Modbus configs:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="group___m_o_d_b_u_s___c_o_n_f_i_g_s.png" border="0" usemap="#agroup______m__o__d__b__u__s______c__o__n__f__i__g__s" loading="lazy" alt=""/></div>
<map name="agroup______m__o__d__b__u__s______c__o__n__f__i__g__s" id="agroup______m__o__d__b__u__s______c__o__n__f__i__g__s">
<area shape="rect" href="group___m_o_d_b_u_s.html" title="Библиотека реализующая протокол Modbus." alt="" coords="5,5,105,32"/>
<area shape="rect" title="Конфигурация библиотеки" alt="" coords="153,5,266,32"/>
</map>
</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-define-members" class="groupheader"><a id="define-members" name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:gab9b18e108b98b225a52c5ccca58e7f2b" id="r_gab9b18e108b98b225a52c5ccca58e7f2b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gab9b18e108b98b225a52c5ccca58e7f2b">MODBUS_DEVICE_ID</a>&#160;&#160;&#160;1</td></tr>
<tr class="memdesc:gab9b18e108b98b225a52c5ccca58e7f2b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Адрес устройства в сети Modbus. <br /></td></tr>
<tr class="memitem:ga66f7c59a25c8cca6d5b0991895c26b69" id="r_ga66f7c59a25c8cca6d5b0991895c26b69"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga66f7c59a25c8cca6d5b0991895c26b69">MODBUS_TIMEOUT</a>&#160;&#160;&#160;5000</td></tr>
<tr class="memdesc:ga66f7c59a25c8cca6d5b0991895c26b69"><td class="mdescLeft">&#160;</td><td class="mdescRight">Таймаут в тиках таймера <br /></td></tr>
<tr class="memitem:ga0e01f19c79d049b745b28cc708ba0c2f" id="r_ga0e01f19c79d049b745b28cc708ba0c2f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga0e01f19c79d049b745b28cc708ba0c2f">MODBUS_VENDOR_NAME</a>&#160;&#160;&#160;&quot;NIO-12&quot;</td></tr>
<tr class="memitem:ga6e8dea7833243443899787fd7186ab36" id="r_ga6e8dea7833243443899787fd7186ab36"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga6e8dea7833243443899787fd7186ab36">MODBUS_PRODUCT_CODE</a>&#160;&#160;&#160;&quot;&quot;</td></tr>
<tr class="memitem:ga270858b2ee3dc5de6666e05ba0b7044a" id="r_ga270858b2ee3dc5de6666e05ba0b7044a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga270858b2ee3dc5de6666e05ba0b7044a">MODBUS_REVISION</a>&#160;&#160;&#160;&quot;&quot;</td></tr>
<tr class="memitem:ga0d4f8c7ad821f1e47c06fca438cc2065" id="r_ga0d4f8c7ad821f1e47c06fca438cc2065"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga0d4f8c7ad821f1e47c06fca438cc2065">MODBUS_VENDOR_URL</a>&#160;&#160;&#160;&quot;&quot;</td></tr>
<tr class="memitem:ga272ac8bc7eb92d40e731954cc627e28b" id="r_ga272ac8bc7eb92d40e731954cc627e28b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga272ac8bc7eb92d40e731954cc627e28b">MODBUS_PRODUCT_NAME</a>&#160;&#160;&#160;&quot;&quot;</td></tr>
<tr class="memitem:ga94dff4b6008db9de88a18f80507b745c" id="r_ga94dff4b6008db9de88a18f80507b745c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga94dff4b6008db9de88a18f80507b745c">MODBUS_MODEL_NAME</a>&#160;&#160;&#160;&quot;&quot;</td></tr>
<tr class="memitem:ga197c776ad1235d5f4fa17318e60628a9" id="r_ga197c776ad1235d5f4fa17318e60628a9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga197c776ad1235d5f4fa17318e60628a9">MODBUS_USER_APPLICATION_NAME</a>&#160;&#160;&#160;&quot;&quot;</td></tr>
<tr class="memitem:ga5c7e9c2180ceac1208f4b791d7b70a0a" id="r_ga5c7e9c2180ceac1208f4b791d7b70a0a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga5c7e9c2180ceac1208f4b791d7b70a0a">MODBUS_NUMB_OF_USEROBJECTS</a>&#160;&#160;&#160;0</td></tr>
<tr class="memdesc:ga5c7e9c2180ceac1208f4b791d7b70a0a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Количество пользовательских объектов <br /></td></tr>
<tr class="memitem:gac3b162e9af2731742eb3ca8317b37397" id="r_gac3b162e9af2731742eb3ca8317b37397"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gac3b162e9af2731742eb3ca8317b37397">MODBUS_USEROBJECT_0_NAME</a>&#160;&#160;&#160;&quot;&quot;</td></tr>
<tr class="memdesc:gac3b162e9af2731742eb3ca8317b37397"><td class="mdescLeft">&#160;</td><td class="mdescRight">Строка пользовательского идентификатора 0. По аналогии можно определить строки до &lt;=128 USEROBJECT. <br /></td></tr>
<tr class="memitem:ga370986118b8227cb6cb33c6b748fbbcb" id="r_ga370986118b8227cb6cb33c6b748fbbcb"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga370986118b8227cb6cb33c6b748fbbcb">mb_huart</a>&#160;&#160;&#160;huart1</td></tr>
<tr class="memdesc:ga370986118b8227cb6cb33c6b748fbbcb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Удобный дефайн для модбасовского uart. <br /></td></tr>
<tr class="memitem:ga6723a1608946a4f86cd7c9c7e614d04e" id="r_ga6723a1608946a4f86cd7c9c7e614d04e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga6723a1608946a4f86cd7c9c7e614d04e">mb_htim</a>&#160;&#160;&#160;htim3</td></tr>
<tr class="memdesc:ga6723a1608946a4f86cd7c9c7e614d04e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Удобный дефайн для модбасовского таймера <br /></td></tr>
<tr class="memitem:gae11f9ed7ca5e75d332a1187d2a213f9c" id="r_gae11f9ed7ca5e75d332a1187d2a213f9c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gae11f9ed7ca5e75d332a1187d2a213f9c">MODBUS_ENABLE_SLAVE</a></td></tr>
<tr class="memdesc:gae11f9ed7ca5e75d332a1187d2a213f9c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Включить обработку СЛЕЙВ режима <br /></td></tr>
<tr class="memitem:gae4fc30421556e1ee530f13a4b3924f5a" id="r_gae4fc30421556e1ee530f13a4b3924f5a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gae4fc30421556e1ee530f13a4b3924f5a">MODBUS_ENABLE_MASTER</a></td></tr>
<tr class="memdesc:gae4fc30421556e1ee530f13a4b3924f5a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Включить обработку МАСТЕР режима <br /></td></tr>
<tr class="memitem:ga29ce22b8b7f0622bc23171c6ae2dc8d1" id="r_ga29ce22b8b7f0622bc23171c6ae2dc8d1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga29ce22b8b7f0622bc23171c6ae2dc8d1">MODBUS_ENABLE_COILS</a></td></tr>
<tr class="memdesc:ga29ce22b8b7f0622bc23171c6ae2dc8d1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Включить обработку коилов <br /></td></tr>
<tr class="memitem:gaf6a8dfc090b3915d668d78ee19585344" id="r_gaf6a8dfc090b3915d668d78ee19585344"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gaf6a8dfc090b3915d668d78ee19585344">MODBUS_ENABLE_HOLDINGS</a></td></tr>
<tr class="memdesc:gaf6a8dfc090b3915d668d78ee19585344"><td class="mdescLeft">&#160;</td><td class="mdescRight">Включить обработку регистров хранения <br /></td></tr>
<tr class="memitem:ga23d7073c81bedb80a302140afd0d79c0" id="r_ga23d7073c81bedb80a302140afd0d79c0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga23d7073c81bedb80a302140afd0d79c0">MODBUS_ENABLE_INPUTS</a></td></tr>
<tr class="memdesc:ga23d7073c81bedb80a302140afd0d79c0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Включить обработку входных регистров <br /></td></tr>
<tr class="memitem:ga5bf9f305bd863b10f1b350c5004ddda7" id="r_ga5bf9f305bd863b10f1b350c5004ddda7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga5bf9f305bd863b10f1b350c5004ddda7">MODBUS_ENABLE_DEVICE_IDENTIFICATIONS</a></td></tr>
<tr class="memdesc:ga5bf9f305bd863b10f1b350c5004ddda7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Включить обработку идентификаторы устройства <br /></td></tr>
<tr class="memitem:gae68222efbcf3199706bfaef46af97bf8" id="r_gae68222efbcf3199706bfaef46af97bf8"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gae68222efbcf3199706bfaef46af97bf8">MODBUS_ENABLE_DIAGNOSTICS</a></td></tr>
<tr class="memdesc:gae68222efbcf3199706bfaef46af97bf8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Включить обработку диагностики модбас <br /></td></tr>
</table>
<a name="details" id="details"></a><h2 id="header-details" class="groupheader">Detailed Description</h2>
<p>Конфигурация библиотеки </p>
<p>Файл содержит настройки для работы Modbus:</p><ul>
<li>Подключение библиотек контроллера</li>
<li>ID устройства и таймауты</li>
<li>Строковые идентификаторы (Vendor, Product, Revision)</li>
<li>Настройки периферии (UART, TIMER)</li>
<li>Подключение модулей Modbus</li>
<li>Опциональные функции (переключение команд 0x03/0x04) </li>
</ul>
<a name="doc-define-members" id="doc-define-members"></a><h2 id="header-doc-define-members" class="groupheader">Macro Definition Documentation</h2>
<a id="gab9b18e108b98b225a52c5ccca58e7f2b" name="gab9b18e108b98b225a52c5ccca58e7f2b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab9b18e108b98b225a52c5ccca58e7f2b">&#9670;&#160;</a></span>MODBUS_DEVICE_ID</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MODBUS_DEVICE_ID&#160;&#160;&#160;1</td>
</tr>
</table>
</div><div class="memdoc">
<p>Адрес устройства в сети Modbus. </p>
<p class="definition">Definition at line <a class="el" href="modbus__config_8h_source.html#l00025">25</a> of file <a class="el" href="modbus__config_8h_source.html">modbus_config.h</a>.</p>
</div>
</div>
<a id="ga66f7c59a25c8cca6d5b0991895c26b69" name="ga66f7c59a25c8cca6d5b0991895c26b69"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga66f7c59a25c8cca6d5b0991895c26b69">&#9670;&#160;</a></span>MODBUS_TIMEOUT</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MODBUS_TIMEOUT&#160;&#160;&#160;5000</td>
</tr>
</table>
</div><div class="memdoc">
<p>Таймаут в тиках таймера </p>
<p class="definition">Definition at line <a class="el" href="modbus__config_8h_source.html#l00026">26</a> of file <a class="el" href="modbus__config_8h_source.html">modbus_config.h</a>.</p>
</div>
</div>
<a id="ga0e01f19c79d049b745b28cc708ba0c2f" name="ga0e01f19c79d049b745b28cc708ba0c2f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0e01f19c79d049b745b28cc708ba0c2f">&#9670;&#160;</a></span>MODBUS_VENDOR_NAME</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MODBUS_VENDOR_NAME&#160;&#160;&#160;&quot;NIO-12&quot;</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="modbus__config_8h_source.html#l00029">29</a> of file <a class="el" href="modbus__config_8h_source.html">modbus_config.h</a>.</p>
</div>
</div>
<a id="ga6e8dea7833243443899787fd7186ab36" name="ga6e8dea7833243443899787fd7186ab36"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6e8dea7833243443899787fd7186ab36">&#9670;&#160;</a></span>MODBUS_PRODUCT_CODE</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MODBUS_PRODUCT_CODE&#160;&#160;&#160;&quot;&quot;</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="modbus__config_8h_source.html#l00030">30</a> of file <a class="el" href="modbus__config_8h_source.html">modbus_config.h</a>.</p>
</div>
</div>
<a id="ga270858b2ee3dc5de6666e05ba0b7044a" name="ga270858b2ee3dc5de6666e05ba0b7044a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga270858b2ee3dc5de6666e05ba0b7044a">&#9670;&#160;</a></span>MODBUS_REVISION</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MODBUS_REVISION&#160;&#160;&#160;&quot;&quot;</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="modbus__config_8h_source.html#l00031">31</a> of file <a class="el" href="modbus__config_8h_source.html">modbus_config.h</a>.</p>
</div>
</div>
<a id="ga0d4f8c7ad821f1e47c06fca438cc2065" name="ga0d4f8c7ad821f1e47c06fca438cc2065"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0d4f8c7ad821f1e47c06fca438cc2065">&#9670;&#160;</a></span>MODBUS_VENDOR_URL</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MODBUS_VENDOR_URL&#160;&#160;&#160;&quot;&quot;</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="modbus__config_8h_source.html#l00032">32</a> of file <a class="el" href="modbus__config_8h_source.html">modbus_config.h</a>.</p>
</div>
</div>
<a id="ga272ac8bc7eb92d40e731954cc627e28b" name="ga272ac8bc7eb92d40e731954cc627e28b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga272ac8bc7eb92d40e731954cc627e28b">&#9670;&#160;</a></span>MODBUS_PRODUCT_NAME</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MODBUS_PRODUCT_NAME&#160;&#160;&#160;&quot;&quot;</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="modbus__config_8h_source.html#l00033">33</a> of file <a class="el" href="modbus__config_8h_source.html">modbus_config.h</a>.</p>
</div>
</div>
<a id="ga94dff4b6008db9de88a18f80507b745c" name="ga94dff4b6008db9de88a18f80507b745c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga94dff4b6008db9de88a18f80507b745c">&#9670;&#160;</a></span>MODBUS_MODEL_NAME</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MODBUS_MODEL_NAME&#160;&#160;&#160;&quot;&quot;</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="modbus__config_8h_source.html#l00034">34</a> of file <a class="el" href="modbus__config_8h_source.html">modbus_config.h</a>.</p>
</div>
</div>
<a id="ga197c776ad1235d5f4fa17318e60628a9" name="ga197c776ad1235d5f4fa17318e60628a9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga197c776ad1235d5f4fa17318e60628a9">&#9670;&#160;</a></span>MODBUS_USER_APPLICATION_NAME</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MODBUS_USER_APPLICATION_NAME&#160;&#160;&#160;&quot;&quot;</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="modbus__config_8h_source.html#l00035">35</a> of file <a class="el" href="modbus__config_8h_source.html">modbus_config.h</a>.</p>
</div>
</div>
<a id="ga5c7e9c2180ceac1208f4b791d7b70a0a" name="ga5c7e9c2180ceac1208f4b791d7b70a0a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5c7e9c2180ceac1208f4b791d7b70a0a">&#9670;&#160;</a></span>MODBUS_NUMB_OF_USEROBJECTS</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MODBUS_NUMB_OF_USEROBJECTS&#160;&#160;&#160;0</td>
</tr>
</table>
</div><div class="memdoc">
<p>Количество пользовательских объектов </p>
<p class="definition">Definition at line <a class="el" href="modbus__config_8h_source.html#l00037">37</a> of file <a class="el" href="modbus__config_8h_source.html">modbus_config.h</a>.</p>
</div>
</div>
<a id="gac3b162e9af2731742eb3ca8317b37397" name="gac3b162e9af2731742eb3ca8317b37397"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac3b162e9af2731742eb3ca8317b37397">&#9670;&#160;</a></span>MODBUS_USEROBJECT_0_NAME</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MODBUS_USEROBJECT_0_NAME&#160;&#160;&#160;&quot;&quot;</td>
</tr>
</table>
</div><div class="memdoc">
<p>Строка пользовательского идентификатора 0. По аналогии можно определить строки до &lt;=128 USEROBJECT. </p>
<p class="definition">Definition at line <a class="el" href="modbus__config_8h_source.html#l00038">38</a> of file <a class="el" href="modbus__config_8h_source.html">modbus_config.h</a>.</p>
</div>
</div>
<a id="ga370986118b8227cb6cb33c6b748fbbcb" name="ga370986118b8227cb6cb33c6b748fbbcb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga370986118b8227cb6cb33c6b748fbbcb">&#9670;&#160;</a></span>mb_huart</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define mb_huart&#160;&#160;&#160;huart1</td>
</tr>
</table>
</div><div class="memdoc">
<p>Удобный дефайн для модбасовского uart. </p>
<p class="definition">Definition at line <a class="el" href="modbus__config_8h_source.html#l00041">41</a> of file <a class="el" href="modbus__config_8h_source.html">modbus_config.h</a>.</p>
</div>
</div>
<a id="ga6723a1608946a4f86cd7c9c7e614d04e" name="ga6723a1608946a4f86cd7c9c7e614d04e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6723a1608946a4f86cd7c9c7e614d04e">&#9670;&#160;</a></span>mb_htim</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define mb_htim&#160;&#160;&#160;htim3</td>
</tr>
</table>
</div><div class="memdoc">
<p>Удобный дефайн для модбасовского таймера </p>
<p class="definition">Definition at line <a class="el" href="modbus__config_8h_source.html#l00042">42</a> of file <a class="el" href="modbus__config_8h_source.html">modbus_config.h</a>.</p>
</div>
</div>
<a id="gae11f9ed7ca5e75d332a1187d2a213f9c" name="gae11f9ed7ca5e75d332a1187d2a213f9c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae11f9ed7ca5e75d332a1187d2a213f9c">&#9670;&#160;</a></span>MODBUS_ENABLE_SLAVE</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MODBUS_ENABLE_SLAVE</td>
</tr>
</table>
</div><div class="memdoc">
<p>Включить обработку СЛЕЙВ режима </p>
<p class="definition">Definition at line <a class="el" href="modbus__config_8h_source.html#l00048">48</a> of file <a class="el" href="modbus__config_8h_source.html">modbus_config.h</a>.</p>
</div>
</div>
<a id="gae4fc30421556e1ee530f13a4b3924f5a" name="gae4fc30421556e1ee530f13a4b3924f5a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae4fc30421556e1ee530f13a4b3924f5a">&#9670;&#160;</a></span>MODBUS_ENABLE_MASTER</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MODBUS_ENABLE_MASTER</td>
</tr>
</table>
</div><div class="memdoc">
<p>Включить обработку МАСТЕР режима </p>
<p class="definition">Definition at line <a class="el" href="modbus__config_8h_source.html#l00049">49</a> of file <a class="el" href="modbus__config_8h_source.html">modbus_config.h</a>.</p>
</div>
</div>
<a id="ga29ce22b8b7f0622bc23171c6ae2dc8d1" name="ga29ce22b8b7f0622bc23171c6ae2dc8d1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga29ce22b8b7f0622bc23171c6ae2dc8d1">&#9670;&#160;</a></span>MODBUS_ENABLE_COILS</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MODBUS_ENABLE_COILS</td>
</tr>
</table>
</div><div class="memdoc">
<p>Включить обработку коилов </p>
<p class="definition">Definition at line <a class="el" href="modbus__config_8h_source.html#l00051">51</a> of file <a class="el" href="modbus__config_8h_source.html">modbus_config.h</a>.</p>
</div>
</div>
<a id="gaf6a8dfc090b3915d668d78ee19585344" name="gaf6a8dfc090b3915d668d78ee19585344"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf6a8dfc090b3915d668d78ee19585344">&#9670;&#160;</a></span>MODBUS_ENABLE_HOLDINGS</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MODBUS_ENABLE_HOLDINGS</td>
</tr>
</table>
</div><div class="memdoc">
<p>Включить обработку регистров хранения </p>
<p class="definition">Definition at line <a class="el" href="modbus__config_8h_source.html#l00052">52</a> of file <a class="el" href="modbus__config_8h_source.html">modbus_config.h</a>.</p>
</div>
</div>
<a id="ga23d7073c81bedb80a302140afd0d79c0" name="ga23d7073c81bedb80a302140afd0d79c0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga23d7073c81bedb80a302140afd0d79c0">&#9670;&#160;</a></span>MODBUS_ENABLE_INPUTS</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MODBUS_ENABLE_INPUTS</td>
</tr>
</table>
</div><div class="memdoc">
<p>Включить обработку входных регистров </p>
<p class="definition">Definition at line <a class="el" href="modbus__config_8h_source.html#l00053">53</a> of file <a class="el" href="modbus__config_8h_source.html">modbus_config.h</a>.</p>
</div>
</div>
<a id="ga5bf9f305bd863b10f1b350c5004ddda7" name="ga5bf9f305bd863b10f1b350c5004ddda7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5bf9f305bd863b10f1b350c5004ddda7">&#9670;&#160;</a></span>MODBUS_ENABLE_DEVICE_IDENTIFICATIONS</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MODBUS_ENABLE_DEVICE_IDENTIFICATIONS</td>
</tr>
</table>
</div><div class="memdoc">
<p>Включить обработку идентификаторы устройства </p>
<p class="definition">Definition at line <a class="el" href="modbus__config_8h_source.html#l00054">54</a> of file <a class="el" href="modbus__config_8h_source.html">modbus_config.h</a>.</p>
</div>
</div>
<a id="gae68222efbcf3199706bfaef46af97bf8" name="gae68222efbcf3199706bfaef46af97bf8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae68222efbcf3199706bfaef46af97bf8">&#9670;&#160;</a></span>MODBUS_ENABLE_DIAGNOSTICS</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MODBUS_ENABLE_DIAGNOSTICS</td>
</tr>
</table>
</div><div class="memdoc">
<p>Включить обработку диагностики модбас </p>
<p class="definition">Definition at line <a class="el" href="modbus__config_8h_source.html#l00055">55</a> of file <a class="el" href="modbus__config_8h_source.html">modbus_config.h</a>.</p>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<div id="page-nav" class="page-nav-panel">
<div id="page-nav-resize-handle"></div>
<div id="page-nav-tree">
<div id="page-nav-contents">
</div><!-- page-nav-contents -->
</div><!-- page-nav-tree -->
</div><!-- page-nav -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,16 @@
var group___m_o_d_b_u_s___c_o_n_f_i_g_s =
[
[ "MODBUS_DEVICE_ID", "group___m_o_d_b_u_s___c_o_n_f_i_g_s.html#gab9b18e108b98b225a52c5ccca58e7f2b", null ],
[ "MODBUS_TIMEOUT", "group___m_o_d_b_u_s___c_o_n_f_i_g_s.html#ga66f7c59a25c8cca6d5b0991895c26b69", null ],
[ "MODBUS_NUMB_OF_USEROBJECTS", "group___m_o_d_b_u_s___c_o_n_f_i_g_s.html#ga5c7e9c2180ceac1208f4b791d7b70a0a", null ],
[ "MODBUS_USEROBJECT_0_NAME", "group___m_o_d_b_u_s___c_o_n_f_i_g_s.html#gac3b162e9af2731742eb3ca8317b37397", null ],
[ "mb_huart", "group___m_o_d_b_u_s___c_o_n_f_i_g_s.html#ga370986118b8227cb6cb33c6b748fbbcb", null ],
[ "mb_htim", "group___m_o_d_b_u_s___c_o_n_f_i_g_s.html#ga6723a1608946a4f86cd7c9c7e614d04e", null ],
[ "MODBUS_ENABLE_SLAVE", "group___m_o_d_b_u_s___c_o_n_f_i_g_s.html#gae11f9ed7ca5e75d332a1187d2a213f9c", null ],
[ "MODBUS_ENABLE_MASTER", "group___m_o_d_b_u_s___c_o_n_f_i_g_s.html#gae4fc30421556e1ee530f13a4b3924f5a", null ],
[ "MODBUS_ENABLE_COILS", "group___m_o_d_b_u_s___c_o_n_f_i_g_s.html#ga29ce22b8b7f0622bc23171c6ae2dc8d1", null ],
[ "MODBUS_ENABLE_HOLDINGS", "group___m_o_d_b_u_s___c_o_n_f_i_g_s.html#gaf6a8dfc090b3915d668d78ee19585344", null ],
[ "MODBUS_ENABLE_INPUTS", "group___m_o_d_b_u_s___c_o_n_f_i_g_s.html#ga23d7073c81bedb80a302140afd0d79c0", null ],
[ "MODBUS_ENABLE_DEVICE_IDENTIFICATIONS", "group___m_o_d_b_u_s___c_o_n_f_i_g_s.html#ga5bf9f305bd863b10f1b350c5004ddda7", null ],
[ "MODBUS_ENABLE_DIAGNOSTICS", "group___m_o_d_b_u_s___c_o_n_f_i_g_s.html#gae68222efbcf3199706bfaef46af97bf8", null ]
];

View File

@@ -0,0 +1,4 @@
<map id="Modbus configs" name="Modbus configs">
<area shape="rect" id="Node000002" href="$group___m_o_d_b_u_s.html" title="Библиотека реализующая протокол Modbus." alt="" coords="5,5,105,32"/>
<area shape="rect" id="Node000001" title="Конфигурация библиотеки" alt="" coords="153,5,266,32"/>
</map>

View File

@@ -0,0 +1 @@
6116efb3628704afb3d3a5646e669147

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -0,0 +1,198 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Modbus: Modbus Registers Map</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<script type="text/javascript" src="darkmode_toggle.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">Modbus<span id="projectnumber">&#160;0.3</span>
</div>
<div id="projectbrief">Библиотека Modbus для STM</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.14.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
<script type="text/javascript">
$(function() { codefold.init(); });
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(function(){initNavTree('group___m_o_d_b_u_s___d_a_t_a.html','',''); });
</script>
<div id="container">
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">Modbus Registers Map <div class="ingroups"><a class="el" href="group___m_o_d_b_u_s.html">Modbus tools</a></div></div></div>
</div><!--header-->
<div class="contents">
<p>Определение карты регистров и коилов
<a href="#details">More...</a></p>
<div id="dynsection-0" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Collaboration diagram for Modbus Registers Map:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="group___m_o_d_b_u_s___d_a_t_a.png" border="0" usemap="#agroup______m__o__d__b__u__s______d__a__t__a" loading="lazy" alt=""/></div>
<map name="agroup______m__o__d__b__u__s______d__a__t__a" id="agroup______m__o__d__b__u__s______d__a__t__a">
<area shape="rect" href="group___m_o_d_b_u_s.html" title="Библиотека реализующая протокол Modbus." alt="" coords="5,31,105,57"/>
<area shape="rect" title="Определение карты регистров и коилов" alt="" coords="153,31,309,57"/>
<area shape="rect" href="group___m_o_d_b_u_s___d_a_t_a___c_o_i_l_s___d_e_f_i_n_e_s.html" title="Структура коилов" alt="" coords="372,5,481,32"/>
<area shape="rect" href="group___m_o_d_b_u_s___d_a_t_a___r_e_r_i_s_t_e_r_s___d_e_f_i_n_e_s.html" title="Стуруктура регистров (входных и хранения)" alt="" coords="357,56,496,83"/>
</map>
</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-groups" class="groupheader"><a id="groups" name="groups"></a>
Topics</h2></td></tr>
<tr class="memitem:MODBUS_5FDATA_5FRERISTERS_5FDEFINES" id="r_MODBUS_5FDATA_5FRERISTERS_5FDEFINES"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_o_d_b_u_s___d_a_t_a___r_e_r_i_s_t_e_r_s___d_e_f_i_n_e_s.html">Registers structures</a></td></tr>
<tr class="memdesc:group___m_o_d_b_u_s___d_a_t_a___r_e_r_i_s_t_e_r_s___d_e_f_i_n_e_s"><td class="mdescLeft">&#160;</td><td class="mdescRight">Стуруктура регистров (входных и хранения) <br /></td></tr>
<tr class="memitem:MODBUS_5FDATA_5FCOILS_5FDEFINES" id="r_MODBUS_5FDATA_5FCOILS_5FDEFINES"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_o_d_b_u_s___d_a_t_a___c_o_i_l_s___d_e_f_i_n_e_s.html">Coils Structure</a></td></tr>
<tr class="memdesc:group___m_o_d_b_u_s___d_a_t_a___c_o_i_l_s___d_e_f_i_n_e_s"><td class="mdescLeft">&#160;</td><td class="mdescRight">Структура коилов <br /></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-nested-classes" class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:MB_5FDataStructureTypeDef" id="r_MB_5FDataStructureTypeDef"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_m_b___data_structure_type_def.html">MB_DataStructureTypeDef</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Структура со всеми регистрами и коилами модбас <a href="struct_m_b___data_structure_type_def.html#details">More...</a><br /></td></tr>
</table>
<a name="details" id="details"></a><h2 id="header-details" class="groupheader">Detailed Description</h2>
<p>Определение карты регистров и коилов </p>
<p>Файл содержит объявления структур данных, доступных через Modbus:</p><ul>
<li>Holding Registers (R/W) - регистры хранения</li>
<li>Input Registers (R/O) - входные регистры <br />
</li>
<li>Coils (R/W) - дискретные выходы</li>
</ul>
<h1 class="doxsection"><a class="anchor" id="datinit"></a>
Базовая настройка под устройство:</h1>
<ol type="1">
<li>Настроить диапазоны адресов<ul>
<li><a class="el" href="modbus__data_8h.html#a22bd1273e01d32f90a279b517d1737b6">R_INPUT_ADDR</a> и <a class="el" href="modbus__data_8h.html#a97c0b1e20498bca34f6dfe0ac0d97b30">R_INPUT_QNT</a> для входных регистров</li>
<li><a class="el" href="modbus__data_8h.html#a791dfd31cc06338acdd8a2eb3b7032e6">R_HOLDING_ADDR</a> и <a class="el" href="modbus__data_8h.html#acf40437374a3227e661db1a18bcef7d7">R_HOLDING_QNT</a> для регистров хр анения</li>
<li><a class="el" href="modbus__data_8h.html#a5057c379abcae88db30ad094eceb952d">C_COILS_ADDR</a> и <a class="el" href="modbus__data_8h.html#a5057c379abcae88db30ad094eceb952d">C_COILS_ADDR</a> для коилов</li>
</ul>
</li>
<li>Настроить структуры данных:<ul>
<li><a class="el" href="struct_m_b___data_in_regs_type_def.html">MB_DataInRegsTypeDef</a></li>
<li><a class="el" href="struct_m_b___data_hold_regs_type_def.html">MB_DataHoldRegsTypeDef</a></li>
<li><a class="el" href="struct_m_b___data_coils_type_def.html">MB_DataCoilsTypeDef</a></li>
</ul>
</li>
</ol>
<h1 class="doxsection"><a class="anchor" id="datexpert"></a>
Расширенная настройка под устройство:</h1>
<ol type="1">
<li>Добавить новый массив с нужными данными.</li>
<li>Добавить дефайны для определения его начального адреса и количества элементов</li>
<li><p class="startli">Добавить проверку адресов в MB_DefineRegistersAddress/MB_DefineCoilsAddress.</p>
<p class="startli">Пример: </p><div class="fragment"><div class="line"><span class="preprocessor">#define R_USER_ADDR 555</span></div>
<div class="line"><span class="preprocessor">#define R_USER_QNT 16</span></div>
<div class="line">uint16_t user_regs[16];</div>
<div class="line"> </div>
<div class="line"><span class="comment">//...</span></div>
<div class="line"><span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code hl_function" href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga278ca9791c69aef8adeb9e7c4b273c50">MB_Check_Address_For_Arr</a>(Addr, Qnt, R_USER_ADDR, R_USER_QNT) == <a class="code hl_enumvalue" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga4ade64cb3fabf37f010c1e297489980caa6980c7a8d924dd975b8fa06a300eb74">ET_NO_ERRORS</a>)</div>
<div class="line">{</div>
<div class="line"> *pRegs = <a class="code hl_define" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga938b632e20454741b2a7f97928583776">MB_Set_Register_Ptr</a>(&amp;user_regs, Addr-R_USER_ADDR); <span class="comment">// ВАЖНО!</span></div>
<div class="line"> <span class="comment">// -R_USER_ADDR нужен чтобы взять адрес относительно начала массива</span></div>
<div class="line">}</div>
<div class="line"><span class="keywordflow">else</span> </div>
<div class="line">{</div>
<div class="line"> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga4ade64cb3fabf37f010c1e297489980caea312adaf18aa7ebd17aca8883550425">ET_ILLEGAL_DATA_ADDRESS</a>;</div>
<div class="line">}</div>
<div class="ttc" id="agroup___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s_html_ga278ca9791c69aef8adeb9e7c4b273c50"><div class="ttname"><a href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga278ca9791c69aef8adeb9e7c4b273c50">MB_Check_Address_For_Arr</a></div><div class="ttdeci">MB_ExceptionTypeDef MB_Check_Address_For_Arr(uint16_t Addr, uint16_t Qnt, uint16_t R_ARR_ADDR, uint16_t R_ARR_NUMB)</div><div class="ttdoc">Check is address valid for certain array.</div><div class="ttdef"><b>Definition</b> <a href="____modbus__data_8c_source.html#l00038">__modbus_data.c:38</a></div></div>
<div class="ttc" id="agroup___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s_html_ga938b632e20454741b2a7f97928583776"><div class="ttname"><a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga938b632e20454741b2a7f97928583776">MB_Set_Register_Ptr</a></div><div class="ttdeci">#define MB_Set_Register_Ptr(_parr_, _addr_)</div><div class="ttdoc">Macros to set pointer to register.</div><div class="ttdef"><b>Definition</b> <a href="modbus__core_8h_source.html#l00215">modbus_core.h:215</a></div></div>
<div class="ttc" id="agroup___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s_html_gga4ade64cb3fabf37f010c1e297489980caa6980c7a8d924dd975b8fa06a300eb74"><div class="ttname"><a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga4ade64cb3fabf37f010c1e297489980caa6980c7a8d924dd975b8fa06a300eb74">ET_NO_ERRORS</a></div><div class="ttdeci">@ ET_NO_ERRORS</div><div class="ttdoc">no errors</div><div class="ttdef"><b>Definition</b> <a href="modbus__core_8h_source.html#l00078">modbus_core.h:78</a></div></div>
<div class="ttc" id="agroup___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s_html_gga4ade64cb3fabf37f010c1e297489980caea312adaf18aa7ebd17aca8883550425"><div class="ttname"><a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#gga4ade64cb3fabf37f010c1e297489980caea312adaf18aa7ebd17aca8883550425">ET_ILLEGAL_DATA_ADDRESS</a></div><div class="ttdeci">@ ET_ILLEGAL_DATA_ADDRESS</div><div class="ttdoc">Адрес данных, указанный в запросе, недоступен</div><div class="ttdef"><b>Definition</b> <a href="modbus__core_8h_source.html#l00080">modbus_core.h:80</a></div></div>
</div><!-- fragment --> </li>
</ol>
</div><!-- contents -->
</div><!-- doc-content -->
<div id="page-nav" class="page-nav-panel">
<div id="page-nav-resize-handle"></div>
<div id="page-nav-tree">
<div id="page-nav-contents">
</div><!-- page-nav-contents -->
</div><!-- page-nav-tree -->
</div><!-- page-nav -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,10 @@
var group___m_o_d_b_u_s___d_a_t_a =
[
[ "Registers structures", "group___m_o_d_b_u_s___d_a_t_a___r_e_r_i_s_t_e_r_s___d_e_f_i_n_e_s.html", "group___m_o_d_b_u_s___d_a_t_a___r_e_r_i_s_t_e_r_s___d_e_f_i_n_e_s" ],
[ "Coils Structure", "group___m_o_d_b_u_s___d_a_t_a___c_o_i_l_s___d_e_f_i_n_e_s.html", "group___m_o_d_b_u_s___d_a_t_a___c_o_i_l_s___d_e_f_i_n_e_s" ],
[ "MB_DataStructureTypeDef", "struct_m_b___data_structure_type_def.html", [
[ "InRegs", "struct_m_b___data_structure_type_def.html#ac0bf877607c54c79c1d09c4530fdcbca", null ],
[ "Coils", "struct_m_b___data_structure_type_def.html#a349e19f82ba85cb29a911468ceee76b2", null ],
[ "HoldRegs", "struct_m_b___data_structure_type_def.html#a27d12400f322702e9d87c492e9628313", null ]
] ]
];

View File

@@ -0,0 +1,6 @@
<map id="Modbus Registers Map" name="Modbus Registers Map">
<area shape="rect" id="Node000002" href="$group___m_o_d_b_u_s.html" title="Библиотека реализующая протокол Modbus." alt="" coords="5,31,105,57"/>
<area shape="rect" id="Node000001" title="Определение карты регистров и коилов" alt="" coords="153,31,309,57"/>
<area shape="rect" id="Node000004" href="$group___m_o_d_b_u_s___d_a_t_a___c_o_i_l_s___d_e_f_i_n_e_s.html" title="Структура коилов" alt="" coords="372,5,481,32"/>
<area shape="rect" id="Node000003" href="$group___m_o_d_b_u_s___d_a_t_a___r_e_r_i_s_t_e_r_s___d_e_f_i_n_e_s.html" title="Стуруктура регистров (входных и хранения)" alt="" coords="357,56,496,83"/>
</map>

View File

@@ -0,0 +1 @@
61c9835afeea22bde934d75b01e2746f

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

View File

@@ -0,0 +1,807 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Modbus: API for Data Access</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<script type="text/javascript" src="darkmode_toggle.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">Modbus<span id="projectnumber">&#160;0.3</span>
</div>
<div id="projectbrief">Библиотека Modbus для STM</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.14.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
<script type="text/javascript">
$(function() { codefold.init(); });
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(function(){initNavTree('group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html','',''); });
</script>
<div id="container">
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">API for Data Access <div class="ingroups"><a class="el" href="group___m_o_d_b_u_s.html">Modbus tools</a> &raquo; <a class="el" href="group___m_o_d_b_u_s___f_u_n_c_t_i_o_n_s.html">Main API for Modbus Library</a></div></div></div>
</div><!--header-->
<div class="contents">
<p>API для доступа к данным модбас внутри программы
<a href="#details">More...</a></p>
<div id="dynsection-0" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Collaboration diagram for API for Data Access:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.png" border="0" usemap="#agroup______m__o__d__b__u__s______d__a__t__a______a__c__c__e__s__s______f__u__n__c__t__i__o__n__s" loading="lazy" alt=""/></div>
<map name="agroup______m__o__d__b__u__s______d__a__t__a______a__c__c__e__s__s______f__u__n__c__t__i__o__n__s" id="agroup______m__o__d__b__u__s______d__a__t__a______a__c__c__e__s__s______f__u__n__c__t__i__o__n__s">
<area shape="rect" title="API для доступа к данным модбас внутри программы" alt="" coords="197,13,338,40"/>
<area shape="rect" href="group___m_o_d_b_u_s___f_u_n_c_t_i_o_n_s.html" title="Публичные функции библиотеки" alt="" coords="5,5,149,48"/>
</map>
</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-define-members" class="groupheader"><a id="define-members" name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ga0f8474120df77dc5f334d60d6a5f6f8f" id="r_ga0f8474120df77dc5f334d60d6a5f6f8f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga0f8474120df77dc5f334d60d6a5f6f8f">MB_Coil_Read_Local</a>(_parr_, _coil_)</td></tr>
<tr class="memdesc:ga0f8474120df77dc5f334d60d6a5f6f8f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Считать коил по локальному адресу. <br /></td></tr>
<tr class="memitem:ga635a6c4fbce49bd1e6797642b36dae7e" id="r_ga635a6c4fbce49bd1e6797642b36dae7e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga635a6c4fbce49bd1e6797642b36dae7e">MB_Coil_Set_Local</a>(_parr_, _coil_)</td></tr>
<tr class="memdesc:ga635a6c4fbce49bd1e6797642b36dae7e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Выставить коил по локальному адресу. <br /></td></tr>
<tr class="memitem:gabc4efb5e2a6aaa021ef5fe6c69476927" id="r_gabc4efb5e2a6aaa021ef5fe6c69476927"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gabc4efb5e2a6aaa021ef5fe6c69476927">MB_Coil_Reset_Local</a>(_parr_, _coil_)</td></tr>
<tr class="memdesc:gabc4efb5e2a6aaa021ef5fe6c69476927"><td class="mdescLeft">&#160;</td><td class="mdescRight">Сбросить коил по локальному адресу. <br /></td></tr>
<tr class="memitem:gac5f409526055c3d98458ada3d3ab630c" id="r_gac5f409526055c3d98458ada3d3ab630c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gac5f409526055c3d98458ada3d3ab630c">MB_Coil_Toogle_Local</a>(_parr_, _coil_)</td></tr>
<tr class="memdesc:gac5f409526055c3d98458ada3d3ab630c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Переключить состояние коила по локальному адресу. <br /></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-enum-members" class="groupheader"><a id="enum-members" name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:ga8ccf569b78a17a10ac7c80d52730753a" id="r_ga8ccf569b78a17a10ac7c80d52730753a"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga8ccf569b78a17a10ac7c80d52730753a">MB_CoilsOpTypeDef</a> { <b>SET_COIL</b>
, <b>RESET_COIL</b>
, <b>TOOGLE_COIL</b>
}</td></tr>
<tr class="memdesc:ga8ccf569b78a17a10ac7c80d52730753a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enum for coils operation. <a href="#ga8ccf569b78a17a10ac7c80d52730753a">More...</a><br /></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-func-members" class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gae9b8595911d93cfbf8597f3356a494cc" id="r_gae9b8595911d93cfbf8597f3356a494cc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga4ade64cb3fabf37f010c1e297489980c">MB_ExceptionTypeDef</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gae9b8595911d93cfbf8597f3356a494cc">MB_Coil_Write_Global</a> (uint16_t Addr, <a class="el" href="#ga8ccf569b78a17a10ac7c80d52730753a">MB_CoilsOpTypeDef</a> WriteVal)</td></tr>
<tr class="memdesc:gae9b8595911d93cfbf8597f3356a494cc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Выставить/сбросить коил по глобальному адресу. <br /></td></tr>
<tr class="memitem:ga82334048256e266170a4b3373be59b59" id="r_ga82334048256e266170a4b3373be59b59"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga82334048256e266170a4b3373be59b59">MB_Coil_Read_Global</a> (uint16_t Addr, <a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga4ade64cb3fabf37f010c1e297489980c">MB_ExceptionTypeDef</a> *Exception)</td></tr>
<tr class="memdesc:ga82334048256e266170a4b3373be59b59"><td class="mdescLeft">&#160;</td><td class="mdescRight">Считать коил по глобальному адресу. <br /></td></tr>
<tr class="memitem:gab1237f28e2db2cd2e8a93b31cd9a61be" id="r_gab1237f28e2db2cd2e8a93b31cd9a61be"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gab1237f28e2db2cd2e8a93b31cd9a61be">MB_Diagnostics_WriteBit</a> (int bit_num, int bit_state)</td></tr>
<tr class="memdesc:gab1237f28e2db2cd2e8a93b31cd9a61be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Выставить бит в регистре диагностике <br /></td></tr>
<tr class="memitem:ga5588ddb15ee2580e7659701e5e671e8f" id="r_ga5588ddb15ee2580e7659701e5e671e8f"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga5588ddb15ee2580e7659701e5e671e8f">MB_Diagnostics_GetBit</a> (int bit_num)</td></tr>
<tr class="memdesc:ga5588ddb15ee2580e7659701e5e671e8f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Прочитать состояние бита диагностического регистра <br /></td></tr>
<tr class="memitem:gae7b613f24e9e3d9d95a789c404a3a485" id="r_gae7b613f24e9e3d9d95a789c404a3a485"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___m_o_d_b_u_s___d_i_a_g.html#ga9d139168bb88bfa1ba1597eeff9ebf6a">MB_DeviceModeTypeDef</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gae7b613f24e9e3d9d95a789c404a3a485">MB_GetDeviceMode</a> (void)</td></tr>
<tr class="memdesc:gae7b613f24e9e3d9d95a789c404a3a485"><td class="mdescLeft">&#160;</td><td class="mdescRight">Получение текущего режима устройства <br /></td></tr>
<tr class="memitem:gae379458fa9cea50d5e313a68e716cb83" id="r_gae379458fa9cea50d5e313a68e716cb83"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gae379458fa9cea50d5e313a68e716cb83">MB_Diagnostics_BusMessageCnt</a> (void)</td></tr>
<tr class="memdesc:gae379458fa9cea50d5e313a68e716cb83"><td class="mdescLeft">&#160;</td><td class="mdescRight">Увеличивает счетчик сообщений на шине <br /></td></tr>
<tr class="memitem:ga10f9e4dd9f3dda4bb0f66c323d6b29d7" id="r_ga10f9e4dd9f3dda4bb0f66c323d6b29d7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga10f9e4dd9f3dda4bb0f66c323d6b29d7">MB_Diagnostics_CommunicationErrorCnt</a> (void)</td></tr>
<tr class="memdesc:ga10f9e4dd9f3dda4bb0f66c323d6b29d7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Увеличивает счетчик ошибок связи <br /></td></tr>
<tr class="memitem:ga82e0bf0c4452c25bf3f05a20abb7cc74" id="r_ga82e0bf0c4452c25bf3f05a20abb7cc74"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga82e0bf0c4452c25bf3f05a20abb7cc74">MB_Diagnostics_ExceptionErrorCnt</a> (void)</td></tr>
<tr class="memdesc:ga82e0bf0c4452c25bf3f05a20abb7cc74"><td class="mdescLeft">&#160;</td><td class="mdescRight">Увеличивает счетчик исключений <br /></td></tr>
<tr class="memitem:gaff7c464d7d66399232770bac78b653a4" id="r_gaff7c464d7d66399232770bac78b653a4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gaff7c464d7d66399232770bac78b653a4">MB_Diagnostics_CharacterOverrunCnt</a> (void)</td></tr>
<tr class="memdesc:gaff7c464d7d66399232770bac78b653a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Увеличивает счетчик переполнения символов <br /></td></tr>
<tr class="memitem:ga22a48a04ef64f74b5974c4fdb1445936" id="r_ga22a48a04ef64f74b5974c4fdb1445936"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga22a48a04ef64f74b5974c4fdb1445936">MB_Diagnostics_SlaveMessageCnt</a> (void)</td></tr>
<tr class="memdesc:ga22a48a04ef64f74b5974c4fdb1445936"><td class="mdescLeft">&#160;</td><td class="mdescRight">Увеличивает счетчик отсутствия ответов <br /></td></tr>
<tr class="memitem:gabf80c0e24a0ed3736338218c003d001d" id="r_gabf80c0e24a0ed3736338218c003d001d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gabf80c0e24a0ed3736338218c003d001d">MB_Diagnostics_SlaveNoResponseCnt</a> (void)</td></tr>
<tr class="memdesc:gabf80c0e24a0ed3736338218c003d001d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Увеличивает счетчик отсутствия ответов <br /></td></tr>
<tr class="memitem:ga2585ebac184f7fa56059c81419c614b9" id="r_ga2585ebac184f7fa56059c81419c614b9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga2585ebac184f7fa56059c81419c614b9">MB_Diagnostics_SlaveNAKCnt</a> (void)</td></tr>
<tr class="memdesc:ga2585ebac184f7fa56059c81419c614b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Увеличивает счетчик NAK ответов <br /></td></tr>
<tr class="memitem:ga4baad1102ba3f09cf3cc121b8d548ddb" id="r_ga4baad1102ba3f09cf3cc121b8d548ddb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga4baad1102ba3f09cf3cc121b8d548ddb">MB_Diagnostics_SlaveBusyCnt</a> (void)</td></tr>
<tr class="memdesc:ga4baad1102ba3f09cf3cc121b8d548ddb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Увеличивает счетчик занятости устройства <br /></td></tr>
<tr class="memitem:ga8b7134e2fc1b65111d536c5590321b80" id="r_ga8b7134e2fc1b65111d536c5590321b80"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga4ade64cb3fabf37f010c1e297489980c">MB_ExceptionTypeDef</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga8b7134e2fc1b65111d536c5590321b80">MB_Holding_Write_Global</a> (uint16_t Addr, uint16_t WriteVal)</td></tr>
<tr class="memdesc:ga8b7134e2fc1b65111d536c5590321b80"><td class="mdescLeft">&#160;</td><td class="mdescRight">Записать регистр хранения по глобальному адресу. <br /></td></tr>
<tr class="memitem:ga0198b337d6944329b78c59521baf5738" id="r_ga0198b337d6944329b78c59521baf5738"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga0198b337d6944329b78c59521baf5738">MB_Holding_Read_Global</a> (uint16_t Addr, <a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga4ade64cb3fabf37f010c1e297489980c">MB_ExceptionTypeDef</a> *Exception)</td></tr>
<tr class="memdesc:ga0198b337d6944329b78c59521baf5738"><td class="mdescLeft">&#160;</td><td class="mdescRight">Считать регистр хранения по глобальному адресу. <br /></td></tr>
<tr class="memitem:gafb57a29488a549d1c585234945549f2e" id="r_gafb57a29488a549d1c585234945549f2e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga4ade64cb3fabf37f010c1e297489980c">MB_ExceptionTypeDef</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gafb57a29488a549d1c585234945549f2e">MB_Input_Write_Global</a> (uint16_t Addr, uint16_t WriteVal)</td></tr>
<tr class="memdesc:gafb57a29488a549d1c585234945549f2e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Записать входной регистр по глобальному адресу. <br /></td></tr>
<tr class="memitem:ga28d00cd1df2a46a7a9a6a1b1fce99826" id="r_ga28d00cd1df2a46a7a9a6a1b1fce99826"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga28d00cd1df2a46a7a9a6a1b1fce99826">MB_Input_Read_Global</a> (uint16_t Addr, <a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga4ade64cb3fabf37f010c1e297489980c">MB_ExceptionTypeDef</a> *Exception)</td></tr>
<tr class="memdesc:ga28d00cd1df2a46a7a9a6a1b1fce99826"><td class="mdescLeft">&#160;</td><td class="mdescRight">Считать входной регистр по глобальному адресу. <br /></td></tr>
</table>
<a name="details" id="details"></a><h2 id="header-details" class="groupheader">Detailed Description</h2>
<p>API для доступа к данным модбас внутри программы </p>
<a name="doc-define-members" id="doc-define-members"></a><h2 id="header-doc-define-members" class="groupheader">Macro Definition Documentation</h2>
<a id="ga0f8474120df77dc5f334d60d6a5f6f8f" name="ga0f8474120df77dc5f334d60d6a5f6f8f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0f8474120df77dc5f334d60d6a5f6f8f">&#9670;&#160;</a></span>MB_Coil_Read_Local</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MB_Coil_Read_Local</td>
<td>(</td>
<td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>_parr_</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>_coil_</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">(( *<a class="code hl_define" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga9648b00f955b16e107b901812031cee3">MB_Set_Coil_Reg_Ptr</a>(_parr_, _coil_) &amp; <a class="code hl_define" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga6ab08ed18663bc72f80e4e60b30ab429">MB_Set_Coil_Mask</a>(_coil_) ) &gt;&gt; (_coil_))</div>
<div class="ttc" id="agroup___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s_html_ga6ab08ed18663bc72f80e4e60b30ab429"><div class="ttname"><a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga6ab08ed18663bc72f80e4e60b30ab429">MB_Set_Coil_Mask</a></div><div class="ttdeci">#define MB_Set_Coil_Mask(_coil_)</div><div class="ttdoc">Макрос для установки маски, чтобы выделить запрашиваемый коил из регистра</div><div class="ttdef"><b>Definition</b> <a href="modbus__core_8h_source.html#l00251">modbus_core.h:251</a></div></div>
<div class="ttc" id="agroup___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s_html_ga9648b00f955b16e107b901812031cee3"><div class="ttname"><a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga9648b00f955b16e107b901812031cee3">MB_Set_Coil_Reg_Ptr</a></div><div class="ttdeci">#define MB_Set_Coil_Reg_Ptr(_parr_, _coil_)</div><div class="ttdoc">Макрос для установки указателя на регистр, содержащий запрашиваемый коил</div><div class="ttdef"><b>Definition</b> <a href="modbus__core_8h_source.html#l00232">modbus_core.h:232</a></div></div>
</div><!-- fragment -->
<p>Считать коил по локальному адресу. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">_parr_</td><td>- массив коилов. </td></tr>
<tr><td class="paramname">_coil_</td><td>- Номер коила от начала массива <em>arr</em>. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>uint16_t Возвращает запрошенный коил на 0м бите.</dd></dl>
<p>Позволяет обратиться к коилу по адресу относительно <em>arr</em>. </p>
<p class="definition">Definition at line <a class="el" href="modbus__coils_8h_source.html#l00071">71</a> of file <a class="el" href="modbus__coils_8h_source.html">modbus_coils.h</a>.</p>
</div>
</div>
<a id="ga635a6c4fbce49bd1e6797642b36dae7e" name="ga635a6c4fbce49bd1e6797642b36dae7e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga635a6c4fbce49bd1e6797642b36dae7e">&#9670;&#160;</a></span>MB_Coil_Set_Local</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MB_Coil_Set_Local</td>
<td>(</td>
<td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>_parr_</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>_coil_</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">*<a class="code hl_define" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga9648b00f955b16e107b901812031cee3">MB_Set_Coil_Reg_Ptr</a>(_parr_, _coil_) |= <a class="code hl_define" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga6ab08ed18663bc72f80e4e60b30ab429">MB_Set_Coil_Mask</a>(_coil_)</div>
</div><!-- fragment -->
<p>Выставить коил по локальному адресу. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">_parr_</td><td>Указатель на массив коилов. </td></tr>
<tr><td class="paramname">_coil_</td><td>- Номер коила от начала массива <em>arr</em>.</td></tr>
</table>
</dd>
</dl>
<p>Позволяет обратиться к коилу по адресу относительно <em>arr</em>. </p>
<p class="definition">Definition at line <a class="el" href="modbus__coils_8h_source.html#l00079">79</a> of file <a class="el" href="modbus__coils_8h_source.html">modbus_coils.h</a>.</p>
</div>
</div>
<a id="gabc4efb5e2a6aaa021ef5fe6c69476927" name="gabc4efb5e2a6aaa021ef5fe6c69476927"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gabc4efb5e2a6aaa021ef5fe6c69476927">&#9670;&#160;</a></span>MB_Coil_Reset_Local</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MB_Coil_Reset_Local</td>
<td>(</td>
<td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>_parr_</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>_coil_</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">*<a class="code hl_define" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga9648b00f955b16e107b901812031cee3">MB_Set_Coil_Reg_Ptr</a>(_parr_, _coil_) &amp;= ~(<a class="code hl_define" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga6ab08ed18663bc72f80e4e60b30ab429">MB_Set_Coil_Mask</a>(_coil_))</div>
</div><!-- fragment -->
<p>Сбросить коил по локальному адресу. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">_parr_</td><td>Указатель на массив коилов. </td></tr>
<tr><td class="paramname">_coil_</td><td>- Номер коила от начала массива <em>arr</em>.</td></tr>
</table>
</dd>
</dl>
<p>Позволяет обратиться к коилу по адресу относительно <em>arr</em>. </p>
<p class="definition">Definition at line <a class="el" href="modbus__coils_8h_source.html#l00087">87</a> of file <a class="el" href="modbus__coils_8h_source.html">modbus_coils.h</a>.</p>
</div>
</div>
<a id="gac5f409526055c3d98458ada3d3ab630c" name="gac5f409526055c3d98458ada3d3ab630c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac5f409526055c3d98458ada3d3ab630c">&#9670;&#160;</a></span>MB_Coil_Toogle_Local</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MB_Coil_Toogle_Local</td>
<td>(</td>
<td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>_parr_</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>_coil_</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">*<a class="code hl_define" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga9648b00f955b16e107b901812031cee3">MB_Set_Coil_Reg_Ptr</a>(_parr_, _coil_) ^= <a class="code hl_define" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga6ab08ed18663bc72f80e4e60b30ab429">MB_Set_Coil_Mask</a>(_coil_)</div>
</div><!-- fragment -->
<p>Переключить состояние коила по локальному адресу. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">_parr_</td><td>Указатель на массив коилов. </td></tr>
<tr><td class="paramname">_coil_</td><td>- Номер коила от начала массива <em>arr</em>.</td></tr>
</table>
</dd>
</dl>
<p>Позволяет обратиться к коилу по адресу относительно <em>arr</em>. </p>
<p class="definition">Definition at line <a class="el" href="modbus__coils_8h_source.html#l00095">95</a> of file <a class="el" href="modbus__coils_8h_source.html">modbus_coils.h</a>.</p>
</div>
</div>
<a name="doc-enum-members" id="doc-enum-members"></a><h2 id="header-doc-enum-members" class="groupheader">Enumeration Type Documentation</h2>
<a id="ga8ccf569b78a17a10ac7c80d52730753a" name="ga8ccf569b78a17a10ac7c80d52730753a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8ccf569b78a17a10ac7c80d52730753a">&#9670;&#160;</a></span>MB_CoilsOpTypeDef</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="#ga8ccf569b78a17a10ac7c80d52730753a">MB_CoilsOpTypeDef</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Enum for coils operation. </p>
<p class="definition">Definition at line <a class="el" href="modbus__coils_8h_source.html#l00056">56</a> of file <a class="el" href="modbus__coils_8h_source.html">modbus_coils.h</a>.</p>
</div>
</div>
<a name="doc-func-members" id="doc-func-members"></a><h2 id="header-doc-func-members" class="groupheader">Function Documentation</h2>
<a id="gae9b8595911d93cfbf8597f3356a494cc" name="gae9b8595911d93cfbf8597f3356a494cc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae9b8595911d93cfbf8597f3356a494cc">&#9670;&#160;</a></span>MB_Coil_Write_Global()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga4ade64cb3fabf37f010c1e297489980c">MB_ExceptionTypeDef</a> MB_Coil_Write_Global </td>
<td>(</td>
<td class="paramtype">uint16_t</td> <td class="paramname"><span class="paramname"><em>Addr</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="#ga8ccf569b78a17a10ac7c80d52730753a">MB_CoilsOpTypeDef</a></td> <td class="paramname"><span class="paramname"><em>WriteVal</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Выставить/сбросить коил по глобальному адресу. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">Addr</td><td>Адрес коила. </td></tr>
<tr><td class="paramname">WriteVal</td><td>Что записать в коил: 0 или 1. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ExceptionCode Код исключения если коила по адресу не существует, и ET_NO_ERRORS если все ок.</dd></dl>
<p>Позволяет обратиться к любому коилу по его глобальному адрессу. Вне зависимости от того как коилы размещены в памяти. </p>
<p class="definition">Definition at line <a class="el" href="modbus__coils_8c_source.html#l00034">34</a> of file <a class="el" href="modbus__coils_8c_source.html">modbus_coils.c</a>.</p>
</div>
</div>
<a id="ga82334048256e266170a4b3373be59b59" name="ga82334048256e266170a4b3373be59b59"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga82334048256e266170a4b3373be59b59">&#9670;&#160;</a></span>MB_Coil_Read_Global()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint16_t MB_Coil_Read_Global </td>
<td>(</td>
<td class="paramtype">uint16_t</td> <td class="paramname"><span class="paramname"><em>Addr</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga4ade64cb3fabf37f010c1e297489980c">MB_ExceptionTypeDef</a> *</td> <td class="paramname"><span class="paramname"><em>Exception</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Считать коил по глобальному адресу. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">Addr</td><td>Адрес коила. </td></tr>
<tr><td class="paramname">Exception</td><td>Указатель на переменную для кода исключения, в случае неудачи при чтении. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>uint16_t Возвращает весь регистр с маской на запрошенном коиле.</dd></dl>
<p>Позволяет обратиться к любому коилу по его глобальному адрессу. Вне зависимости от того как коилы размещены в памяти. </p>
<p class="definition">Definition at line <a class="el" href="modbus__coils_8c_source.html#l00074">74</a> of file <a class="el" href="modbus__coils_8c_source.html">modbus_coils.c</a>.</p>
</div>
</div>
<a id="gab1237f28e2db2cd2e8a93b31cd9a61be" name="gab1237f28e2db2cd2e8a93b31cd9a61be"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab1237f28e2db2cd2e8a93b31cd9a61be">&#9670;&#160;</a></span>MB_Diagnostics_WriteBit()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int MB_Diagnostics_WriteBit </td>
<td>(</td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>bit_num</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>bit_state</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Выставить бит в регистре диагностике </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">bit_num</td><td>Номер бита для выставления (1-15, 0 бит нельзя выставить) </td></tr>
<tr><td class="paramname">bit_state</td><td>Состояние бита для выставления (Выставить/Сбросить) </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>&gt;0 - номер выставленного бита, 0 - ошибка </dd></dl>
<p class="definition">Definition at line <a class="el" href="modbus__diag_8c_source.html#l00045">45</a> of file <a class="el" href="modbus__diag_8c_source.html">modbus_diag.c</a>.</p>
</div>
</div>
<a id="ga5588ddb15ee2580e7659701e5e671e8f" name="ga5588ddb15ee2580e7659701e5e671e8f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5588ddb15ee2580e7659701e5e671e8f">&#9670;&#160;</a></span>MB_Diagnostics_GetBit()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int MB_Diagnostics_GetBit </td>
<td>(</td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>bit_num</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Прочитать состояние бита диагностического регистра </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">bit_num</td><td>Номер бита (0-15) </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>1 - бит установлен, 0 - бит сброшен или ошибка </dd></dl>
<p class="definition">Definition at line <a class="el" href="modbus__diag_8c_source.html#l00062">62</a> of file <a class="el" href="modbus__diag_8c_source.html">modbus_diag.c</a>.</p>
</div>
</div>
<a id="gae7b613f24e9e3d9d95a789c404a3a485" name="gae7b613f24e9e3d9d95a789c404a3a485"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae7b613f24e9e3d9d95a789c404a3a485">&#9670;&#160;</a></span>MB_GetDeviceMode()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group___m_o_d_b_u_s___d_i_a_g.html#ga9d139168bb88bfa1ba1597eeff9ebf6a">MB_DeviceModeTypeDef</a> MB_GetDeviceMode </td>
<td>(</td>
<td class="paramtype">void</td> <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Получение текущего режима устройства </p>
<dl class="section return"><dt>Returns</dt><dd>Текущий режим работы устройства </dd></dl>
<p class="definition">Definition at line <a class="el" href="modbus__diag_8c_source.html#l00291">291</a> of file <a class="el" href="modbus__diag_8c_source.html">modbus_diag.c</a>.</p>
</div>
</div>
<a id="gae379458fa9cea50d5e313a68e716cb83" name="gae379458fa9cea50d5e313a68e716cb83"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae379458fa9cea50d5e313a68e716cb83">&#9670;&#160;</a></span>MB_Diagnostics_BusMessageCnt()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void MB_Diagnostics_BusMessageCnt </td>
<td>(</td>
<td class="paramtype">void</td> <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Увеличивает счетчик сообщений на шине </p>
<p class="definition">Definition at line <a class="el" href="modbus__diag_8c_source.html#l00215">215</a> of file <a class="el" href="modbus__diag_8c_source.html">modbus_diag.c</a>.</p>
</div>
</div>
<a id="ga10f9e4dd9f3dda4bb0f66c323d6b29d7" name="ga10f9e4dd9f3dda4bb0f66c323d6b29d7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga10f9e4dd9f3dda4bb0f66c323d6b29d7">&#9670;&#160;</a></span>MB_Diagnostics_CommunicationErrorCnt()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void MB_Diagnostics_CommunicationErrorCnt </td>
<td>(</td>
<td class="paramtype">void</td> <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Увеличивает счетчик ошибок связи </p>
<p class="definition">Definition at line <a class="el" href="modbus__diag_8c_source.html#l00223">223</a> of file <a class="el" href="modbus__diag_8c_source.html">modbus_diag.c</a>.</p>
</div>
</div>
<a id="ga82e0bf0c4452c25bf3f05a20abb7cc74" name="ga82e0bf0c4452c25bf3f05a20abb7cc74"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga82e0bf0c4452c25bf3f05a20abb7cc74">&#9670;&#160;</a></span>MB_Diagnostics_ExceptionErrorCnt()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void MB_Diagnostics_ExceptionErrorCnt </td>
<td>(</td>
<td class="paramtype">void</td> <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Увеличивает счетчик исключений </p>
<p class="definition">Definition at line <a class="el" href="modbus__diag_8c_source.html#l00232">232</a> of file <a class="el" href="modbus__diag_8c_source.html">modbus_diag.c</a>.</p>
</div>
</div>
<a id="gaff7c464d7d66399232770bac78b653a4" name="gaff7c464d7d66399232770bac78b653a4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaff7c464d7d66399232770bac78b653a4">&#9670;&#160;</a></span>MB_Diagnostics_CharacterOverrunCnt()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void MB_Diagnostics_CharacterOverrunCnt </td>
<td>(</td>
<td class="paramtype">void</td> <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Увеличивает счетчик переполнения символов </p>
<p class="definition">Definition at line <a class="el" href="modbus__diag_8c_source.html#l00241">241</a> of file <a class="el" href="modbus__diag_8c_source.html">modbus_diag.c</a>.</p>
</div>
</div>
<a id="ga22a48a04ef64f74b5974c4fdb1445936" name="ga22a48a04ef64f74b5974c4fdb1445936"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga22a48a04ef64f74b5974c4fdb1445936">&#9670;&#160;</a></span>MB_Diagnostics_SlaveMessageCnt()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void MB_Diagnostics_SlaveMessageCnt </td>
<td>(</td>
<td class="paramtype">void</td> <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Увеличивает счетчик отсутствия ответов </p>
<p class="definition">Definition at line <a class="el" href="modbus__diag_8c_source.html#l00254">254</a> of file <a class="el" href="modbus__diag_8c_source.html">modbus_diag.c</a>.</p>
</div>
</div>
<a id="gabf80c0e24a0ed3736338218c003d001d" name="gabf80c0e24a0ed3736338218c003d001d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gabf80c0e24a0ed3736338218c003d001d">&#9670;&#160;</a></span>MB_Diagnostics_SlaveNoResponseCnt()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void MB_Diagnostics_SlaveNoResponseCnt </td>
<td>(</td>
<td class="paramtype">void</td> <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Увеличивает счетчик отсутствия ответов </p>
<p class="definition">Definition at line <a class="el" href="modbus__diag_8c_source.html#l00263">263</a> of file <a class="el" href="modbus__diag_8c_source.html">modbus_diag.c</a>.</p>
</div>
</div>
<a id="ga2585ebac184f7fa56059c81419c614b9" name="ga2585ebac184f7fa56059c81419c614b9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2585ebac184f7fa56059c81419c614b9">&#9670;&#160;</a></span>MB_Diagnostics_SlaveNAKCnt()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void MB_Diagnostics_SlaveNAKCnt </td>
<td>(</td>
<td class="paramtype">void</td> <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Увеличивает счетчик NAK ответов </p>
<p class="definition">Definition at line <a class="el" href="modbus__diag_8c_source.html#l00272">272</a> of file <a class="el" href="modbus__diag_8c_source.html">modbus_diag.c</a>.</p>
</div>
</div>
<a id="ga4baad1102ba3f09cf3cc121b8d548ddb" name="ga4baad1102ba3f09cf3cc121b8d548ddb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4baad1102ba3f09cf3cc121b8d548ddb">&#9670;&#160;</a></span>MB_Diagnostics_SlaveBusyCnt()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void MB_Diagnostics_SlaveBusyCnt </td>
<td>(</td>
<td class="paramtype">void</td> <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Увеличивает счетчик занятости устройства </p>
<p class="definition">Definition at line <a class="el" href="modbus__diag_8c_source.html#l00281">281</a> of file <a class="el" href="modbus__diag_8c_source.html">modbus_diag.c</a>.</p>
</div>
</div>
<a id="ga8b7134e2fc1b65111d536c5590321b80" name="ga8b7134e2fc1b65111d536c5590321b80"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8b7134e2fc1b65111d536c5590321b80">&#9670;&#160;</a></span>MB_Holding_Write_Global()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga4ade64cb3fabf37f010c1e297489980c">MB_ExceptionTypeDef</a> MB_Holding_Write_Global </td>
<td>(</td>
<td class="paramtype">uint16_t</td> <td class="paramname"><span class="paramname"><em>Addr</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t</td> <td class="paramname"><span class="paramname"><em>WriteVal</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Записать регистр хранения по глобальному адресу. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">Addr</td><td>Адрес регистра. </td></tr>
<tr><td class="paramname">WriteVal</td><td>Число для записи. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ExceptionCode Код исключения если регистра по адресу не существует, и ET_NO_ERRORS если все ок.</dd></dl>
<p>Позволяет обратиться к любому регистру по его глобальному адрессу. Вне зависимости от того как регистры размещены в памяти. </p>
<p class="definition">Definition at line <a class="el" href="modbus__holdregs_8c_source.html#l00036">36</a> of file <a class="el" href="modbus__holdregs_8c_source.html">modbus_holdregs.c</a>.</p>
</div>
</div>
<a id="ga0198b337d6944329b78c59521baf5738" name="ga0198b337d6944329b78c59521baf5738"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0198b337d6944329b78c59521baf5738">&#9670;&#160;</a></span>MB_Holding_Read_Global()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint16_t MB_Holding_Read_Global </td>
<td>(</td>
<td class="paramtype">uint16_t</td> <td class="paramname"><span class="paramname"><em>Addr</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga4ade64cb3fabf37f010c1e297489980c">MB_ExceptionTypeDef</a> *</td> <td class="paramname"><span class="paramname"><em>Exception</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Считать регистр хранения по глобальному адресу. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">Addr</td><td>Адрес регистра. </td></tr>
<tr><td class="paramname">Exception</td><td>Указатель на переменную для кода исключения, в случае неудачи при чтении. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>uint16_t Возвращает значение регистра.</dd></dl>
<p>Позволяет обратиться к любому регистру по его глобальному адрессу. Вне зависимости от того как регистры размещены в памяти. </p>
<p class="definition">Definition at line <a class="el" href="modbus__holdregs_8c_source.html#l00061">61</a> of file <a class="el" href="modbus__holdregs_8c_source.html">modbus_holdregs.c</a>.</p>
</div>
</div>
<a id="gafb57a29488a549d1c585234945549f2e" name="gafb57a29488a549d1c585234945549f2e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gafb57a29488a549d1c585234945549f2e">&#9670;&#160;</a></span>MB_Input_Write_Global()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga4ade64cb3fabf37f010c1e297489980c">MB_ExceptionTypeDef</a> MB_Input_Write_Global </td>
<td>(</td>
<td class="paramtype">uint16_t</td> <td class="paramname"><span class="paramname"><em>Addr</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t</td> <td class="paramname"><span class="paramname"><em>WriteVal</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Записать входной регистр по глобальному адресу. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">Addr</td><td>Адрес регистра. </td></tr>
<tr><td class="paramname">WriteVal</td><td>Число для записи. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ExceptionCode Код исключения если регистра по адресу не существует, и ET_NO_ERRORS если все ок.</dd></dl>
<p>Позволяет обратиться к любому регистру по его глобальному адрессу. Вне зависимости от того как регистры размещены в памяти. </p>
<p class="definition">Definition at line <a class="el" href="modbus__inputregs_8c_source.html#l00032">32</a> of file <a class="el" href="modbus__inputregs_8c_source.html">modbus_inputregs.c</a>.</p>
</div>
</div>
<a id="ga28d00cd1df2a46a7a9a6a1b1fce99826" name="ga28d00cd1df2a46a7a9a6a1b1fce99826"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga28d00cd1df2a46a7a9a6a1b1fce99826">&#9670;&#160;</a></span>MB_Input_Read_Global()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint16_t MB_Input_Read_Global </td>
<td>(</td>
<td class="paramtype">uint16_t</td> <td class="paramname"><span class="paramname"><em>Addr</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga4ade64cb3fabf37f010c1e297489980c">MB_ExceptionTypeDef</a> *</td> <td class="paramname"><span class="paramname"><em>Exception</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Считать входной регистр по глобальному адресу. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">Addr</td><td>Адрес регистра. </td></tr>
<tr><td class="paramname">Exception</td><td>Указатель на переменную для кода исключения, в случае неудачи при чтении. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>uint16_t Возвращает значение регистра.</dd></dl>
<p>Позволяет обратиться к любому регистру по его глобальному адрессу. Вне зависимости от того как регистры размещены в памяти. </p>
<p class="definition">Definition at line <a class="el" href="modbus__inputregs_8c_source.html#l00057">57</a> of file <a class="el" href="modbus__inputregs_8c_source.html">modbus_inputregs.c</a>.</p>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<div id="page-nav" class="page-nav-panel">
<div id="page-nav-resize-handle"></div>
<div id="page-nav-tree">
<div id="page-nav-contents">
</div><!-- page-nav-contents -->
</div><!-- page-nav-tree -->
</div><!-- page-nav -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,25 @@
var group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s =
[
[ "MB_Coil_Read_Local", "group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga0f8474120df77dc5f334d60d6a5f6f8f", null ],
[ "MB_Coil_Set_Local", "group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga635a6c4fbce49bd1e6797642b36dae7e", null ],
[ "MB_Coil_Reset_Local", "group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gabc4efb5e2a6aaa021ef5fe6c69476927", null ],
[ "MB_Coil_Toogle_Local", "group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gac5f409526055c3d98458ada3d3ab630c", null ],
[ "MB_CoilsOpTypeDef", "group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga8ccf569b78a17a10ac7c80d52730753a", null ],
[ "MB_Coil_Write_Global", "group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gae9b8595911d93cfbf8597f3356a494cc", null ],
[ "MB_Coil_Read_Global", "group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga82334048256e266170a4b3373be59b59", null ],
[ "MB_Diagnostics_WriteBit", "group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gab1237f28e2db2cd2e8a93b31cd9a61be", null ],
[ "MB_Diagnostics_GetBit", "group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga5588ddb15ee2580e7659701e5e671e8f", null ],
[ "MB_GetDeviceMode", "group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gae7b613f24e9e3d9d95a789c404a3a485", null ],
[ "MB_Diagnostics_BusMessageCnt", "group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gae379458fa9cea50d5e313a68e716cb83", null ],
[ "MB_Diagnostics_CommunicationErrorCnt", "group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga10f9e4dd9f3dda4bb0f66c323d6b29d7", null ],
[ "MB_Diagnostics_ExceptionErrorCnt", "group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga82e0bf0c4452c25bf3f05a20abb7cc74", null ],
[ "MB_Diagnostics_CharacterOverrunCnt", "group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gaff7c464d7d66399232770bac78b653a4", null ],
[ "MB_Diagnostics_SlaveMessageCnt", "group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga22a48a04ef64f74b5974c4fdb1445936", null ],
[ "MB_Diagnostics_SlaveNoResponseCnt", "group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gabf80c0e24a0ed3736338218c003d001d", null ],
[ "MB_Diagnostics_SlaveNAKCnt", "group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga2585ebac184f7fa56059c81419c614b9", null ],
[ "MB_Diagnostics_SlaveBusyCnt", "group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga4baad1102ba3f09cf3cc121b8d548ddb", null ],
[ "MB_Holding_Write_Global", "group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga8b7134e2fc1b65111d536c5590321b80", null ],
[ "MB_Holding_Read_Global", "group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga0198b337d6944329b78c59521baf5738", null ],
[ "MB_Input_Write_Global", "group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gafb57a29488a549d1c585234945549f2e", null ],
[ "MB_Input_Read_Global", "group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga28d00cd1df2a46a7a9a6a1b1fce99826", null ]
];

View File

@@ -0,0 +1,4 @@
<map id="API for Data Access" name="API for Data Access">
<area shape="rect" id="Node000001" title="API для доступа к данным модбас внутри программы" alt="" coords="197,13,338,40"/>
<area shape="rect" id="Node000002" href="$group___m_o_d_b_u_s___f_u_n_c_t_i_o_n_s.html" title="Публичные функции библиотеки" alt="" coords="5,5,149,48"/>
</map>

View File

@@ -0,0 +1 @@
267e24e8cddb8bf32b8b2ec633d10e2d

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@@ -0,0 +1,145 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Modbus: Coils Structure</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<script type="text/javascript" src="darkmode_toggle.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">Modbus<span id="projectnumber">&#160;0.3</span>
</div>
<div id="projectbrief">Библиотека Modbus для STM</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.14.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
<script type="text/javascript">
$(function() { codefold.init(); });
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(function(){initNavTree('group___m_o_d_b_u_s___d_a_t_a___c_o_i_l_s___d_e_f_i_n_e_s.html','',''); });
</script>
<div id="container">
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">Coils Structure <div class="ingroups"><a class="el" href="group___m_o_d_b_u_s.html">Modbus tools</a> &raquo; <a class="el" href="group___m_o_d_b_u_s___d_a_t_a.html">Modbus Registers Map</a></div></div></div>
</div><!--header-->
<div class="contents">
<p>Структура коилов
<a href="#details">More...</a></p>
<div id="dynsection-0" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Collaboration diagram for Coils Structure:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="group___m_o_d_b_u_s___d_a_t_a___c_o_i_l_s___d_e_f_i_n_e_s.png" border="0" usemap="#agroup______m__o__d__b__u__s______d__a__t__a______c__o__i__l__s______d__e__f__i__n__e__s" loading="lazy" alt=""/></div>
<map name="agroup______m__o__d__b__u__s______d__a__t__a______c__o__i__l__s______d__e__f__i__n__e__s" id="agroup______m__o__d__b__u__s______d__a__t__a______c__o__i__l__s______d__e__f__i__n__e__s">
<area shape="rect" href="group___m_o_d_b_u_s___d_a_t_a.html" title="Определение карты регистров и коилов" alt="" coords="5,5,162,32"/>
<area shape="rect" title="Структура коилов" alt="" coords="210,5,318,32"/>
</map>
</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-nested-classes" class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:MB_5FDataCoilsTypeDef" id="r_MB_5FDataCoilsTypeDef"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_m_b___data_coils_type_def.html">MB_DataCoilsTypeDef</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Коилы <a href="struct_m_b___data_coils_type_def.html#details">More...</a><br /></td></tr>
</table>
<a name="details" id="details"></a><h2 id="header-details" class="groupheader">Detailed Description</h2>
<p>Структура коилов </p>
<div class="fragment"><div class="line">Структура дефайна</div>
<div class="line">Для массивов коилов:</div>
<div class="line"> C_&lt;NAME_ARRAY&gt;_ADDR - модбас адресс первого коила в массиве</div>
<div class="line"> C_&lt;NAME_ARRAY&gt;_QNT - количество коилов в массиве (минимум 16)</div>
</div><!-- fragment --> </div><!-- contents -->
</div><!-- doc-content -->
<div id="page-nav" class="page-nav-panel">
<div id="page-nav-resize-handle"></div>
<div id="page-nav-tree">
<div id="page-nav-contents">
</div><!-- page-nav-contents -->
</div><!-- page-nav-tree -->
</div><!-- page-nav -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>
</body>
</html>

Some files were not shown because too many files have changed in this diff Show More