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.

66 lines
1.8 KiB

1 year ago
  1. #pragma once
  2. #include <fstream>
  3. #include <functional>
  4. #include <iostream>
  5. #include <list>
  6. #include <map>
  7. #include <memory>
  8. #include <set>
  9. #include <sstream>
  10. #include <string>
  11. #include <vector>
  12. namespace a8k_opt_algo {
  13. using namespace std;
  14. typedef enum {
  15. kOptErr_suc,
  16. kOptErr_pointNumError,
  17. } ecode_t;
  18. class OptAlgoPreProcessResult {
  19. public:
  20. bool scanAgain;
  21. int32_t suggestScanGain;
  22. };
  23. ecode_t T_A8kOptAlgoPreProcess(vector<float> ogigin_val, //
  24. int32_t now_scan_gain, //
  25. int32_t expectResultRangeStart, //
  26. int32_t expectResultRangeEnd, //
  27. OptAlgoPreProcessResult& result);
  28. ecode_t F_A8kOptAlgoPreProcess(vector<float> ogigin_val, //
  29. int32_t now_scan_gain, //
  30. int32_t expectResultRangeStart, //
  31. int32_t expectResultRangeEnd, //
  32. OptAlgoPreProcessResult& result);
  33. class PeakInfo {
  34. public:
  35. bool find_peak;
  36. float area;
  37. int peak_pos;
  38. int peak_start_pos;
  39. int peak_end_pos;
  40. };
  41. class OptAlgoResult {
  42. public:
  43. vector<float> input;
  44. vector<float> displayData;
  45. PeakInfo pin040;
  46. PeakInfo pin080;
  47. PeakInfo pin120;
  48. PeakInfo pin160;
  49. PeakInfo pin200;
  50. };
  51. ecode_t A8kOptAlgoProcess(vector<float> ogigin_val, OptAlgoResult& result);
  52. class PorcessContext {
  53. public:
  54. vector<float> raw;
  55. vector<float> avg;
  56. vector<float> diff;
  57. vector<float> diffX2;
  58. float agvline;
  59. };
  60. void A8kOptAlgoGetProcessContext(PorcessContext& context);
  61. }