#pragma once #include #include #include #include #include #include #include #include #include #include namespace a8k_opt_algo { using namespace std; typedef enum { kOptErr_suc, kOptErr_pointNumError, } ecode_t; class OptAlgoPreProcessResult { public: bool scanAgain; int32_t suggestScanGain; }; ecode_t T_A8kOptAlgoPreProcess(vector ogigin_val, // int32_t now_scan_gain, // int32_t expectResultRangeStart, // int32_t expectResultRangeEnd, // OptAlgoPreProcessResult& result); ecode_t F_A8kOptAlgoPreProcess(vector ogigin_val, // int32_t now_scan_gain, // int32_t expectResultRangeStart, // int32_t expectResultRangeEnd, // OptAlgoPreProcessResult& result); class PeakInfo { public: bool find_peak; float area; int peak_pos; int peak_start_pos; int peak_end_pos; }; class OptAlgoResult { public: vector input; vector displayData; PeakInfo pin040; PeakInfo pin080; PeakInfo pin120; PeakInfo pin160; PeakInfo pin200; }; ecode_t A8kOptAlgoProcess(vector ogigin_val, OptAlgoResult& result); class PorcessContext { public: vector raw; vector avg; vector diff; vector diffX2; float agvline; }; void A8kOptAlgoGetProcessContext(PorcessContext& context); }