#pragma once

#include "driver/gpio.h"

// ==============================
// WiFi 配置
// ==============================
// 第一版默认让 ESP32S3 自己开热点，电脑连接 guguji-robot 后即可直连。
// 如果你希望接入现有路由器，把 GUGUJI_WIFI_USE_AP 改成 0，并填写 STA SSID/PASSWORD。
#define GUGUJI_WIFI_USE_AP 1
#define GUGUJI_WIFI_AP_SSID "guguji-robot"
#define GUGUJI_WIFI_AP_PASSWORD "guguji1234"
#define GUGUJI_WIFI_STA_SSID "your-router-ssid"
#define GUGUJI_WIFI_STA_PASSWORD "your-router-password"

#define GUGUJI_UDP_COMMAND_PORT 7777
// ==============================
// ESP32S3 引脚配置
// ==============================
// 控制板上已经集成 TJA1050T CAN 总线收发器，下面两个引脚连接到收发器 TXD/RXD。
#define GUGUJI_TWAI_TX_GPIO GPIO_NUM_5
#define GUGUJI_TWAI_RX_GPIO GPIO_NUM_4

// 无屏状态提示硬件。
#define GUGUJI_BUZZER_GPIO GPIO_NUM_42
#define GUGUJI_WS2812_GPIO GPIO_NUM_45

#define GUGUJI_I2C_PORT I2C_NUM_0
#define GUGUJI_I2C_SDA_GPIO GPIO_NUM_8
#define GUGUJI_I2C_SCL_GPIO GPIO_NUM_9
#define GUGUJI_I2C_FREQ_HZ 400000

// QMI8658A 常见地址为 0x6A 或 0x6B；若初始化失败，先改这里。
#define GUGUJI_QMI8658A_ADDR 0x6B
// QMC6309 数据手册给出的 7-bit 地址为 0x7C。
#define GUGUJI_QMC6309_ADDR 0x7C

// ==============================
// 控制周期和安全参数
// ==============================
#define GUGUJI_CONTROL_PERIOD_MS 20
#define GUGUJI_TELEMETRY_PERIOD_MS 20
#define GUGUJI_COMMAND_TIMEOUT_MS 200
#define GUGUJI_MOTOR_FEEDBACK_TIMEOUT_MS 500
