//---------------------------------------------------------------------------
#ifndef DS2502H
#define DS2502H
//---------------------------------------------------------------------------
#include <Classes.hpp>
//---------------------------------------------------------------------------
// структура содержащая входные данные для отправки или приёма
struct  DS2502_INPUT_DATA{     unsigned char TA1;              // младший байт адреса (для чтения)
                               unsigned char TA2;              // старший байт адреса (для чтения)
                               unsigned int  Size;             // количество передаваемых или принимаемых байт
                               unsigned int  AreaNumber;};     // номер области откуда нужно писать или куда нужно сохранять данные
                               // при AreaNumber != 1 функция записи производит запись из поля Scratchpad
                               // байт блокнота передаётся через первый байт области Area3
// структура, содержащая выходные данные после отправки или приёма
struct  DS2502_OUTPUT_DATA{    unsigned char Test;             // проверочный байт
                               bool Success;};                 // признак успеха операции чтения

DS2502_OUTPUT_DATA DS2502_ReadFromMemory();                     // чтение данных из памяти (0xF0) (только из области 1)
DS2502_OUTPUT_DATA DS2502_ReadFromStatus();                     // чтение байтов статуса (0xAA) (только из области 2)
DS2502_OUTPUT_DATA DS2502_ReadFromMemoryCRC8();                 // чтение данных из памяти (0xC3) (только из области 1)
DS2502_OUTPUT_DATA DS2502_WriteToMemory(DS2502_INPUT_DATA);     // запись данных в память (0x0F) (из областей 1, Scratchpad) (IO1,2 code = 01, IO0 - start signal)
DS2502_OUTPUT_DATA DS2502_WriteToStatus(DS2502_INPUT_DATA);     // запись байтов статуса (0x55) (из области 2)
//---------------------------------------------------------------------------
#endif
 