44 lines
1.1 KiB
C++
44 lines
1.1 KiB
C++
/*
|
|
* ESP8266.hpp
|
|
*
|
|
* Created on: Mar 7, 2023
|
|
* Author: Gabriel
|
|
*/
|
|
|
|
#ifndef SRC_COMPONENTS_ESP8266_HPP_
|
|
#define SRC_COMPONENTS_ESP8266_HPP_
|
|
|
|
#include "main.h"
|
|
#include <cstring>
|
|
|
|
class ESP8266 {
|
|
public:
|
|
typedef enum {
|
|
STATUS_OK,
|
|
STATUS_ERROR,
|
|
STATUS_TIMEOUT
|
|
} statusTypeDef;
|
|
|
|
ESP8266(UART_HandleTypeDef* huart);
|
|
virtual ~ESP8266();
|
|
void init();
|
|
statusTypeDef command(const char* command);
|
|
void send_uint32(const char* name, uint32_t value);
|
|
uint32_t receive_uint32();
|
|
private:
|
|
static const uint32_t MAX_BUFFER_SIZE = 256;
|
|
static const uint32_t OK_TIMEOUT = 5000;
|
|
|
|
uint8_t interruptHeader[9];
|
|
uint8_t interruptPayload[MAX_BUFFER_SIZE];
|
|
statusTypeDef send(const char* data);
|
|
HAL_StatusTypeDef wait_on_flag_until_timeout(uint32_t Flag, FlagStatus Status, uint32_t Tickstart, uint32_t Timeout);
|
|
HAL_StatusTypeDef uart_receive_until_termination_byte(uint8_t *pData, uint16_t Size, uint8_t terminationByte, uint32_t Timeout);
|
|
statusTypeDef wait_until_ok();
|
|
statusTypeDef wait_until_send_ok();
|
|
UART_HandleTypeDef* huart;
|
|
uint8_t buffer[MAX_BUFFER_SIZE];
|
|
};
|
|
|
|
#endif /* SRC_COMPONENTS_ESP8266_HPP_ */
|