#ifndef SSCMA_CAMERA_H #define SSCMA_CAMERA_H #include #include #include #include #include #include #include #include #include "sscma_client.h" #include "camera.h" struct SscmaData { uint8_t* img; size_t len; }; struct JpegData { uint8_t* buf; size_t len; }; class SscmaCamera : public Camera { private: lv_img_dsc_t preview_image_; std::string explain_url_; std::string explain_token_; sscma_client_io_handle_t sscma_client_io_handle_; sscma_client_handle_t sscma_client_handle_; QueueHandle_t sscma_data_queue_; JpegData jpeg_data_; jpeg_dec_handle_t *jpeg_dec_; jpeg_dec_io_t *jpeg_io_; jpeg_dec_header_info_t *jpeg_out_; public: SscmaCamera(esp_io_expander_handle_t io_exp_handle); ~SscmaCamera(); virtual void SetExplainUrl(const std::string& url, const std::string& token); virtual bool Capture(); // 翻转控制函数 virtual bool SetHMirror(bool enabled) override; virtual bool SetVFlip(bool enabled) override; virtual std::string Explain(const std::string& question); }; #endif // ESP32_CAMERA_H