/* * megatec.h * * Created on: 22.05.2017 * Author: balbekova */ #ifndef MEGATEC_H_ #define MEGATEC_H_ #include #include #include #define PERIOD_AUTO_TEST 23.5*3600 #define K_EFFICIENCY 0.9 #define AKB_VOLTAGE 12 #define AKB_NUM_CELL 6 #define VOLTRONIC_OUTPUT_RATED_LENGTH 7 #define VOLTRONIC_MODEL_LENGTH 15 #define KSTAR_MODEL_LENGTH 10 #define VOLTRONIC_VERSION_LENGTH 10 #define VOLTRONIC_SN_LENGTH 14 typedef enum{ ups_status_req, ups_test_10sec, ups_test_low_bat, ups_test_time, ups_beep, ups_shutdown, ups_shutdown_restore, ups_cancel_shut_down, ups_cancel_test, ups_info, ups_rating_info, ups_remain_time_reg, ups_general_status_req, ups_akb_info, ups_model_req, ups_version_req, ups_version2_req, ups_serial_req, ups_protocol_id_req, ups_offline_status_req, ups_passw_req, ups_buzzer_cntrl, ups_mode_req, ups_remote_turn_on, ups_warning_status, ups_bypass_volt_range, ups_bypass_hvolt_264_set, ups_qflag_status, ups_cmd_enable_flag_l, ups_kstar_status, ups_temperature, ups_fault_status, ups_remote_turn_off, MegaTec_cmd_max } cmdMegaTecEnums_t; typedef enum{ UPS_CONNECTED = 1, UPS_FAIL_CONNECT, UPS_WAIT_CONNECT } ups_state_connection_t; typedef struct{ float Freq_in; float VAC_in; float VAC_out; float Temp; float Vcell_curr; float Vakb_curr; uint32_t data_check_load; bool data_check_load_flag; uint8_t Load; uint8_t Load_test_akb; uint8_t SOC; uint8_t SOC_prev; uint16_t work_time; uint32_t akb_work_time; uint32_t Alarm; uint8_t Status; uint8_t Mode; uint8_t Test_Status; uint32_t warn_status; char model[16]; char vertion[22]; char serial[15]; uint8_t fault_type; float temp_stm32; uint8_t cnt_err_ups; ups_state_connection_t Present; bool Flag_Present; }UPS_value_t; extern UPS_value_t UPS; extern uint16_t TimeParam; extern uint16_t TimeParam2; extern float TimeParamFloat; int ups_metac_service_pdu(cmdMegaTecEnums_t command); void ups_megatec_init(void); void UPScmd(cmdMegaTecEnums_t cmd); void UPSReadTestStatus(void); float voltage_bat_average(void); float power_load_average(void); bool get_sync_data(void); #endif /* MEGATEC_H_ */