megatec.h 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. /*
  2. * megatec.h
  3. *
  4. * Created on: 22.05.2017
  5. * Author: balbekova
  6. */
  7. #ifndef MEGATEC_H_
  8. #define MEGATEC_H_
  9. #include <stdbool.h>
  10. #include <stdint.h>
  11. #include <stdlib.h>
  12. #define PERIOD_AUTO_TEST 23.5*3600
  13. #define K_EFFICIENCY 0.9
  14. #define AKB_VOLTAGE 12
  15. #define AKB_NUM_CELL 6
  16. #define VOLTRONIC_OUTPUT_RATED_LENGTH 7
  17. #define VOLTRONIC_MODEL_LENGTH 15
  18. #define KSTAR_MODEL_LENGTH 10
  19. #define VOLTRONIC_VERSION_LENGTH 10
  20. #define VOLTRONIC_SN_LENGTH 14
  21. typedef enum{
  22. ups_status_req,
  23. ups_test_10sec,
  24. ups_test_low_bat,
  25. ups_test_time,
  26. ups_beep,
  27. ups_shutdown,
  28. ups_shutdown_restore,
  29. ups_cancel_shut_down,
  30. ups_cancel_test,
  31. ups_info,
  32. ups_rating_info,
  33. ups_remain_time_reg,
  34. ups_general_status_req,
  35. ups_akb_info,
  36. ups_model_req,
  37. ups_version_req,
  38. ups_version2_req,
  39. ups_serial_req,
  40. ups_protocol_id_req,
  41. ups_offline_status_req,
  42. ups_passw_req,
  43. ups_buzzer_cntrl,
  44. ups_mode_req,
  45. ups_remote_turn_on,
  46. ups_warning_status,
  47. ups_bypass_volt_range,
  48. ups_bypass_hvolt_264_set,
  49. ups_qflag_status,
  50. ups_cmd_enable_flag_l,
  51. ups_kstar_status,
  52. ups_temperature,
  53. ups_fault_status,
  54. ups_remote_turn_off,
  55. MegaTec_cmd_max
  56. } cmdMegaTecEnums_t;
  57. typedef enum{
  58. UPS_CONNECTED = 1,
  59. UPS_FAIL_CONNECT,
  60. UPS_WAIT_CONNECT
  61. } ups_state_connection_t;
  62. typedef struct{
  63. float Freq_in;
  64. float VAC_in;
  65. float VAC_out;
  66. float Temp;
  67. float Vcell_curr;
  68. float Vakb_curr;
  69. uint32_t data_check_load;
  70. bool data_check_load_flag;
  71. uint8_t Load;
  72. uint8_t Load_test_akb;
  73. uint8_t SOC;
  74. uint8_t SOC_prev;
  75. uint16_t work_time;
  76. uint32_t akb_work_time;
  77. uint32_t Alarm;
  78. uint8_t Status;
  79. uint8_t Mode;
  80. uint8_t Test_Status;
  81. uint32_t warn_status;
  82. char model[16];
  83. char vertion[22];
  84. char serial[15];
  85. uint8_t fault_type;
  86. float temp_stm32;
  87. uint8_t cnt_err_ups;
  88. ups_state_connection_t Present;
  89. bool Flag_Present;
  90. }UPS_value_t;
  91. extern UPS_value_t UPS;
  92. extern uint16_t TimeParam;
  93. extern uint16_t TimeParam2;
  94. extern float TimeParamFloat;
  95. int ups_metac_service_pdu(cmdMegaTecEnums_t command);
  96. void ups_megatec_init(void);
  97. void UPScmd(cmdMegaTecEnums_t cmd);
  98. void UPSReadTestStatus(void);
  99. float voltage_bat_average(void);
  100. float power_load_average(void);
  101. bool get_sync_data(void);
  102. #endif /* MEGATEC_H_ */