Files
bishe-STM32/Hardware/esp8266.h
T
2026-05-01 11:15:54 +08:00

99 lines
3.0 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#ifndef __ESP8266_H
#define __ESP8266_H
#include "stm32f10x.h"
// 定义布尔类型,方便返回状态
#define ESP8266_SUCCESS 1
#define ESP8266_FAIL 0
// 时间结构体
typedef struct {
uint16_t year;
uint8_t month;
uint8_t day;
uint8_t hour;
uint8_t minute;
uint8_t second;
} ESP8266_DateTime;
/*
--- 公共函数接口 ---
*/
/**
* @brief 对ESP8266模块进行基础设置
* @retval 1 表示成功, 0 表示失败
*/
uint8_t ESP8266_Setup(void);
/**
* @brief 命令ESP8266连接到指定的WiFi网络
* @param ssid 要连接的WiFi名称 (SSID)
* @param password WiFi的密码
* @retval 1 表示成功, 0 表示失败
*/
uint8_t ESP8266_ConnectWiFi(const char* ssid, const char* password);
/**
* @brief 命令ESP8266连接到HTTP服务器(新增)
* @param ip 服务器的IP地址
* @param port 服务器的端口号
* @retval 1 表示成功, 0 表示失败
*/
uint8_t ESP8266_ConnectHTTPServer(const char* ip, const char* port);
/**
* @brief 通过ESP8266发送HTTP POST请求(新增 - 加密版本)
* @param encrypted_data 加密后的Base64数据
* @retval 1 表示成功, 0 表示失败
*/
uint8_t ESP8266_SendEncryptedData(const char* encrypted_data);
/**
* @brief 检查TCP连接是否正常
* @retval 1 表示已连接, 0 表示未连接
*/
uint8_t ESP8266_CheckConnection(void);
/**
* @brief 从网络获取当前时间(NTP/SNTP)
* @param datetime 时间结构体指针,用于存储获取的时间
* @retval 1 表示成功, 0 表示失败
*/
uint8_t ESP8266_GetNetworkTime(ESP8266_DateTime* datetime);
/**
* @brief 发送HTTP GET请求并接收响应(新增)
* @param path 请求路径(如"/api/timeslots")
* @param response_buffer 接收响应数据的缓冲区
* @param buffer_size 缓冲区大小
* @retval 1 表示成功, 0 表示失败
*/
uint8_t ESP8266_HttpGet(const char* path, char* response_buffer, uint16_t buffer_size);
/**
* @brief 查询学生在指定时段是否已签到(服务器端查重)
* @param student_id 学号
* @param slot_start 时段开始时间(格式"HH:MM")
* @param slot_end 时段结束时间(格式"HH:MM")
* @retval 1 表示已签到(重复), 0 表示未签到
*/
uint8_t ESP8266_CheckDuplicate(const char* student_id, const char* slot_start, const char* slot_end);
/**
* @brief 下载今日已签到学生列表(开机时调用)
* @param slot_start 时段开始时间(格式"HH:MM")
* @param slot_end 时段结束时间(格式"HH:MM")
* @param student_ids 输出:学号数组(逗号分隔的字符串)
* @param buffer_size 缓冲区大小
* @retval 成功下载的学号数量
*/
uint8_t ESP8266_DownloadTodayRecords(const char* slot_start, const char* slot_end, char* student_ids, uint16_t buffer_size);
// 兼容旧版本(已废弃,建议使用HTTP版本)
uint8_t ESP8266_ConnectTCPServer(const char* ip, const char* port);
uint8_t ESP8266_SendData(char* Data);
#endif