You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
88 lines
2.7 KiB
88 lines
2.7 KiB
#pragma once
|
|
#include <fstream>
|
|
#include <functional>
|
|
#include <iostream>
|
|
#include <list>
|
|
#include <map>
|
|
#include <memory>
|
|
#include <set>
|
|
#include <sstream>
|
|
#include <string>
|
|
#include <vector>
|
|
|
|
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<float> ogigin_val, //
|
|
int32_t now_scan_gain, //
|
|
int32_t expectResultRangeStart, //
|
|
int32_t expectResultRangeEnd, //
|
|
OptAlgoPreProcessResult& result);
|
|
ecode_t F_A8kOptAlgoPreProcess(vector<float> 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:
|
|
/**
|
|
* @brief
|
|
*/
|
|
vector<float> input; //
|
|
vector<float> displayData; //
|
|
|
|
/**
|
|
* @brief
|
|
*/
|
|
PeakInfo pin040; //
|
|
PeakInfo pin080; //
|
|
PeakInfo pin120; //
|
|
PeakInfo pin160; //
|
|
PeakInfo pin200; //
|
|
};
|
|
|
|
ecode_t A8kOptAlgoProcess(vector<float> ogigin_val, OptAlgoResult& result);
|
|
|
|
/**
|
|
* @brief Debug
|
|
*/
|
|
|
|
class PorcessContext {
|
|
public:
|
|
vector<float> raw; //
|
|
vector<float> avg; //
|
|
vector<float> diff; //
|
|
vector<float> diffX2; //
|
|
float agvline; //
|
|
};
|
|
|
|
void A8kOptAlgoGetProcessContext(PorcessContext& context);
|
|
|
|
} // namespace a8k_opt_algo
|