release 0.3.1
doxygen + refactoring
This commit is contained in:
42
README.md
42
README.md
@@ -1,6 +1,6 @@
|
||||
# Инструкция по подключению релиза библиотеки `STM Modbus`
|
||||
|
||||
Данная библиотека подключается напрямую из Git, как субмодуль. Позволяя при желании обновлять её напрямую через pull.
|
||||
Данная библиотека подключается напрямую из Git, как субмодуль. Позволяя при желании обновлять её напрямую через git.
|
||||
|
||||
## Структура библиотеки
|
||||
|
||||
@@ -136,7 +136,7 @@ ProjectRoot/
|
||||
MODBUS_MasterRequest(&hmodbus1, &msg, &callback_func);
|
||||
void callback_func(RS_HandleTypeDef *hmodbus, RS_MsgTypeDef *modbus_msg)
|
||||
{
|
||||
// modbus_msg содержит ответ от устройства
|
||||
// MB_RespGet_... Чтобы достать нужные данные из ответа
|
||||
}
|
||||
}
|
||||
```
|
||||
@@ -188,6 +188,8 @@ ProjectRoot/
|
||||
|
||||
3.6. Доступ к данным в коде
|
||||
|
||||
|
||||
В режиме слейва есть дефайны для удобного выставления Коилов. На случай если они не упакованы в битовые поля
|
||||
```c
|
||||
// Чтение входных регистров
|
||||
uint16_t temp = MB_DATA.InRegs.Temperature;
|
||||
@@ -205,6 +207,42 @@ ProjectRoot/
|
||||
}
|
||||
```
|
||||
|
||||
В режиме мастера есть функции для получения информации из ответа `MB_RespGet_...()`
|
||||
```c
|
||||
// Чтение регистров: Получить запрошенные регистры
|
||||
uint16_t value;
|
||||
if(MB_RespGet_RegisterValue(&MODBUS_MSG, 105, ®_value))
|
||||
{
|
||||
printf("Register 105 value: %d\n", reg_value);
|
||||
}
|
||||
// Чтение коилов: Получить запрошенные коилы
|
||||
int state;
|
||||
if(MB_RespGet_CoilState(&MODBUS_MSG, 25, &coil_state))
|
||||
{
|
||||
printf("Coil 25 state: %s\n", coil_state ? "ON" : "OFF");
|
||||
}
|
||||
// Чтение диагностики: Получить запрошенныую диагностику
|
||||
uint16_t counter_value;
|
||||
if(MB_RespGet_DiagnosticResponse(&MODBUS_MSG, &counter_value))
|
||||
{
|
||||
printf("Counter value: %d\n", counter_value);
|
||||
}
|
||||
// Чтение идентификаторов: Получить запрошенные идентификаторы
|
||||
uint8_t length;
|
||||
char vendor_name[64];
|
||||
if(MB_RespGet_ObjectById(&MODBUS_MSG, 0x00, vendor_name, &length))
|
||||
{
|
||||
printf("Vendor Name: %s (length: %d)\n", vendor_name, length);
|
||||
}
|
||||
|
||||
uint8_t obj_id, obj_length;
|
||||
char obj_data[64];
|
||||
if(MB_RespGet_ObjectByIndex(&MODBUS_MSG, 0x00, &obj_id, obj_data, &obj_length))
|
||||
{
|
||||
printf("First object - ID: 0x%02X, Data: %s\n", obj_id, obj_data);
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
|
||||
5. **Обновление библиотеки**:
|
||||
|
||||
Reference in New Issue
Block a user