#pragma once #include "basic_type.hpp" namespace iflytop { using namespace std; class I_MotorLaserCodeScanner { public: #pragma pack(push, 1) typedef struct { int32_t each_scan_result_len; int32_t scan_reult_nums; uint8_t scan_result[]; } scan_result_t; #pragma pack(pop) public: /** * @brief 启动扫码 * * @param moveby_distance 移动距离 * @param scan_interval_distance 每次扫描间隔距离 * @param each_sample_times 每次采样次数 * @param transmitting_tube_amplification 发光管放大倍数 * @param receiving_tube_amplification 接收管放大倍数 */ virtual int32_t start_scan(s32 moveby_distance, // s32 scan_interval_distance, // s32 each_sample_times, // s32 transmitting_tube_amplification, // s32 receiving_tube_amplification, // action_cb_status_t cb) = 0; /** * @brief 停止扫码 * * @return int32_t */ virtual int32_t stop_scan() = 0; /** * @brief 获取扫码结果 * * @param result * @return int32_t */ virtual int32_t get_scan_result(u16 sector_index, u16 sector_size, zcancmder_read_ram_ack_t& ack) = 0; virtual ~I_MotorLaserCodeScanner() {} }; } // namespace iflytop