Skip to content

Dragon-Knight/Dragon485

Repository files navigation

DragonNET

Arduino library for RS-485 network communication

#!!! IN DEVELOPING !!!

Progress

Master-Slave protocol: Progress

P2P protocol: Progress

Колбэки

Класс имеет несколько колбэков для обработки принимаемых пакетов, а так-же обработки ошибок, возникших во время передачи или разбора данных.

Приём пакета и ответ на него.

При получении широковещательного пакета или пакета адресованного конкретному устройству вызывается колбэк bool OnReceive(DragonNETPacket &request, DragonNETPacket &response).

Параметр request содержит ссылку на принятый пакет.

Параметр response содержит ссылку на пакет, предназначенный для ответа.

Оба параметра имеет тип DragonNET_Packet, методы работы с ним находятся ниже.

Колбэк должен вернуть булевый тип, который управляет функции ответа. Иными словами, если вернуть true, то после выхода будет отправлен пакет response, в противном случае отправки не произойдёт.

Обработка ошибок.

При возникновении ошибок, вызывается колбэк void OnError(uint8_t errorType).

Параметр errorType содержит код ошибки.

Код ошибки Описание ошибки
DRAGONNET_ERROR_STRUCTURE Нарушена структура пакета
DRAGONNET_ERROR_CRC Нарушена контрольная сумма
DRAGONNET_ERROR_OVERFLOW Переполнение RX буфера

Класс DragonNET_Packet

Класс предназначен для работы с пакетом данных, который упрощает работу с библиотекой в целом.

Метод Описание Тип
void PutToAddress(uint8_t address) Вставить адрес получателя Пользовательский
uint8_t TakeToAddress() Взять адрес получателя Пользовательский
void PutFromAddress(uint8_t address) Вставить адрес отправителя Пользовательский
uint8_t TakeFromAddress() Взять адрес отправителя Пользовательский
void PutConfigByte(byte config) Вставить байт настройки Системный
byte TakeConfigByte() Взять байт настройки Системный
bool PutData1(byte data) Вставить данные побайтно Пользовательский / Системный
byte TakeData1() Взять данные побайтно Пользовательский / Системный
bool PutData2(byte *data, uint8_t length) Вставить данные по ссылке Пользовательский / Системный
const byte *TakeData2() Взять данные по ссылке Пользовательский / Системный
uint8_t TakeDataLength() Взять длину данных Пользовательский / Системный
bool PutPacket1(byte packet) Вставить пакет побайтно Пользовательский / Системный
byte TakePacket1() Взять пакет побайтно Пользовательский / Системный
bool PutPacket2(byte *packet, uint8_t length) Вставить пакет по ссылке Пользовательский / Системный
const byte *TakePacket2() Взять пакет по ссылке Пользовательский / Системный
uint8_t TakePacketLength() Взять длину пакета Пользовательский / Системный
uint8_t CheckPacket() Проверка пакета, при приёме. Вернёт:
0 - Пакет корректный
1 - Ошибка структуры пакета
2 - Ошибка CRC16.
Пользовательский / Системный
void PreparePackage() Подготовка пакета перед отправкой Системный
uint16_t TakeCRC16() Взять CRC16 от пакета Пользовательский / Системный
void Cleaning() Сбросить класс Пользовательский / Системный

About

Arduino library for RS-485 network communication

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published