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.

53 lines
2.2 KiB

3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
  1. #pragma once
  2. #include <stdbool.h>
  3. #include <stdint.h>
  4. #include "thisdevice.h"
  5. typedef struct {
  6. uint16_t nowfreq; //当前频率
  7. bool changefreqdirection; //频率调整方向,如果当前功率大于期望功率,则减少频率,反之亦然
  8. bool adjustedToTheProperPower; //是否已经调整到恰当的功率
  9. /**
  10. * @brief
  11. * ,
  12. *
  13. * http://192.168.1.3:3000/project_ozone_generator/doc/src/branch/master/ref/20220815频率-功率关系图.png
  14. */
  15. uint16_t resonant_frequency; //谐振频率点
  16. /**
  17. * @brief
  18. * 40k附近功率的斜率
  19. * 线线
  20. *
  21. * http://192.168.1.3:3000/project_ozone_generator/doc/src/branch/master/ref/正常工作异常工作频率截图.png
  22. */
  23. float slope_when_freq40k;
  24. /**
  25. * @brief MOS断路MOS短路MOS短路不需要检查
  26. */
  27. float avarage_power;
  28. } ozone_control_working_state_t;
  29. typedef enum {
  30. kIdleState,
  31. kBeforeWorkingStateSweepFrequency,
  32. kWorkingState,
  33. } ozone_control_working_state_id_t;
  34. void ozone_control_init();
  35. void ozone_control_start();
  36. void ozone_control_stop();
  37. void ozone_control_schedule();
  38. ozone_control_working_state_id_t ozone_control_get_working_state_id();
  39. ozone_control_working_state_t* ozone_control_get_working_state();
  40. float ozone_control_get_ozone_power();
  41. // float ozone_control_get_fan_power();
  42. float ozone_control_get_expect_power();
  43. /***********************************************************************************************************************
  44. * ============================================================================================= *
  45. ***********************************************************************************************************************/