#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();// 初始化IMU传感器(QMI8658A 陀螺仪) void InitializeIot();// 初始化IoT设备(包括IMU传感器) void ProcessImuData(const qmi8658a_data_t* data);// 处理IMU数据的方法 // 静态回调函数 static void ImuTimerCallback(void* arg);// IMU传感器定时器回调函数 };