toy-hardware/main/boards/movecall-moji-esp32s3/movecall_moji_esp32s3.h

52 lines
1.2 KiB
C++

#pragma once
#include "wifi_board.h"
#include "boards/common/qmi8658a.h"
namespace iot {
class ImuSensorThing;
}
class PowerSaveTimer;
class MovecallMojiESP32S3 : public WifiBoard {
public:
MovecallMojiESP32S3();
~MovecallMojiESP32S3();
// IMU传感器相关方法
bool IsImuInitialized() const;
bool GetImuData(qmi8658a_data_t* data);
void OnMotionDetected();
// 触摸相关方法
void LockTouchTask(int touch_pad_num);
void UnlockTouchTask();
void ResetAllTouchStates();
// 生产测试模式
void EnterProductionTestMode();
private:
// 私有成员变量和方法的声明
PowerSaveTimer* power_save_timer_;
static MovecallMojiESP32S3* instance_;
// IMU传感器相关
QMI8658A* imu_sensor_;
esp_timer_handle_t imu_timer_handle_;
qmi8658a_data_t latest_imu_data_;
bool imu_initialized_;
iot::ImuSensorThing* imu_thing_;
// 其他私有成员...
// (完整的私有成员列表在.cc文件中)
// 私有方法声明
void InitializeImuSensor();
void InitializeIot();
void ProcessImuData(const qmi8658a_data_t* data);
// 静态回调函数
static void ImuTimerCallback(void* arg);
};