#ifndef CLIENT_H
#define CLIENT_H

#include <stdint.h>
#include <stdbool.h>

enum HDLCState {
    UNINITIALIZED_STATE = 0,  // состояние до инцилизации
    IDLE_STATE, // Состояние ожидания начала
    READY_STATE, // Состояние принятия
    CONNECTING, // состояние соединения
    DISCONNECTING, // состояния отключения
    RECIVED // состояние приема и отправки
};

struct Client{
    enum HDLCState state;
    int connecting_frame_timeout; //-1
};

//название функций
struct Client init_hdlc_client(enum HDLCState *state);
void connect(struct Client* client);
int send_data(struct Client* client, uint8_t* data, size_t data_len);
int get_frame(struct Client* client, uint8_t buffer[], size_t lenBuffer);
//принимает буффер с уарта
int hdlc_get_raw_data(struct Client* client, uint8_t buffer[], size_t len_buffer);
void hdlc_timeout_handler(struct Client* client, int delta_time);

#endif //CLIENT_H