| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408 |
- /*********************************************************************************************************
- * Module : main.h
- * Abstract : main modules is defined data structure!
- * Version : 1.0.0
- * Author : Leopul(COPYRIGHT 2025 - 2027 Leopul. All rights reserved.)
- * Complete : 2025-02-16
- * Content : None
- * Note : None
- *********************************************************************************************************/
- #ifndef __MAIN_H
- #define __MAIN_H
- #include "stdint.h"
- #define STS_TYPE 0x07
- #define STS_R_START 4000
- #define STS_RW_CHIOSE_START 4100
- #define STS_RW_EEP_STATUS_START (STS_RW_CHIOSE_START + 1)
- #define STS_RW_EEP_INPUT_TH_START (STS_RW_EEP_STATUS_START + 1)
- #define STS_RW_EEP_OUTPUT_TH_START (STS_RW_EEP_INPUT_TH_START + 32)
- #define STS_RW_EEP_TEMP_TH_START (STS_RW_EEP_OUTPUT_TH_START + 20)
- #define STS_RW_EEP_ELE_V_I_ARGV (STS_RW_EEP_TEMP_TH_START + 2)
- #define STS_RW_EEP_ELE_CLEAR_CONSUMER (STS_RW_EEP_ELE_V_I_ARGV + 6)
- #define STS_RW_EEP_ELE_CLEAR_BEEP (STS_RW_EEP_ELE_CLEAR_CONSUMER + 1)
- #define EEP_DEVICE_INFO (0)
- #define EEP_MD_START (32)
- #define MAX_ROW (40)
- #define IIC_CONSUMER_START (2048)
- #define IIC_CONSUMER_LENTH (12)
- #define IIC_CONSUMER_PAGE (32)
- #define IIC_CONSUMER_MAX_NUM (30)
- #define INVALID_VALUE (40000000000)
- #define SMALL_VALUE (500)
- #define LOST_COUNT 100
- #define WANNING_COUNT 1000
- enum{
- INPUT_CHANNEL_1 = 0,
- INPUT_CHANNEL_2,
- };
- enum {
- CH448_CHANNEL_1 = 0,
- CH448_CHANNEL_2,
- CH448_CHANNEL_3,
- CH448_CHANNEL_NONE,
- };
- #pragma pack (2)
- typedef struct {
- uint32_t uniq_ID_64_95;
- uint32_t uniq_ID_32_63;
- uint32_t uniq_ID_00_31;
- uint32_t channels;
- char ver[12];
- char date[32];
- }md_information_t;
- typedef struct {
- uint32_t voltage;
- uint32_t current;
- uint32_t power;
- uint32_t consumer;
- uint32_t freq;
- uint32_t factor;
- uint32_t angle;
- }md_out_power_info;
- typedef struct {
- uint32_t voltage;
- uint32_t freq;
- }md_input_info;
- typedef struct{
- uint16_t choise_ch;
- }md_chiose_ch;
- typedef struct{
- uint16_t input_status[2];
- }md_input_status;
- typedef struct{
- uint16_t fan_status;
- }md_fans;
- typedef struct {
- uint16_t vmax_wa_1 : 1;
- uint16_t vmin_wa_1 : 1;
- uint16_t hzmax_wa_1 : 1;
- uint16_t hzmin_wa_1 : 1;
- uint16_t : 4;
- uint16_t vmax_wa_2 : 1;
- uint16_t vmin_wa_2 : 1;
- uint16_t hzmax_wa_2 : 1;
- uint16_t hzmin_wa_2 : 1;
- uint16_t : 4;
- }wanning_in_t;
- typedef struct{
- //uint16_t waning[2]; /* two input */
- wanning_in_t in_wan[2];
- }md_in_wanning;
- typedef struct {
- float iic_consumer;
- uint64_t recode_index1;
- }iic_consumer_data_t;
- typedef struct{
- iic_consumer_data_t iic_da;
- uint64_t index;
- uint16_t row;
- }consumer_data;
- typedef struct
- {
- uint16_t vmax_wa_1 : 1;
- uint16_t vmin_wa_1 : 1;
- uint16_t imax_wa_1 : 1;
- uint16_t pmax_wa_1 : 1;
- uint16_t cmax_wa_1 : 1;
- uint16_t : 3;
- uint16_t vmax_wa_2 : 1;
- uint16_t vmin_wa_2 : 1;
- uint16_t imax_wa_2 : 1;
- uint16_t pmax_wa_2 : 1;
- uint16_t cmax_wa_2 : 1;
- uint16_t : 3;
- }waning_out_t;
- typedef struct {
- waning_out_t out_waning;
- }md_out_wanning;
- typedef struct{
- uint8_t vmax_en : 1;
- uint8_t vmin_en : 1;
- uint8_t freqmax_en : 1;
- uint8_t freqmin_en : 1;
- uint8_t : 1;
- }input_wanning_en_t;
- typedef struct{
- uint8_t vmax_en : 1;
- uint8_t vmin_en : 1;
- uint8_t imax_en : 1;
- uint8_t pmax_en : 1;
- uint8_t cmax_en : 1;
- uint8_t : 3;
- }output_wanning_en_t;
- typedef struct {
- uint32_t voltage_max_1;
- uint32_t voltage_max_2;
- uint32_t voltage_min_1;
- uint32_t voltage_min_2;
- uint32_t current_max_1;
- uint32_t current_max_2;
- uint32_t power_max_1;
- uint32_t power_max_2;
- uint32_t consumer_max_1;
- uint32_t consumer_max_2;
- }eep_out_th_t;
- typedef struct {
- uint32_t voltage_max_1;
- uint32_t voltage_max_2;
- uint32_t voltage_min_1;
- uint32_t voltage_min_2;
- uint32_t freq_max_1;
- uint32_t freq_max_2;
- uint32_t freq_min_1;
- uint32_t freq_min_2;
- }eep_in_th_t;
- typedef struct{
- int16_t max_temp;
- int16_t min_temp;
- }eep_temp_th_t;
- typedef struct{
- uint16_t v_k;
- uint16_t i_k;
- }eep_ele_arg_t;
- typedef struct{
- uint16_t out_status; //4101
- eep_in_th_t input_th[2];
- eep_out_th_t output_th;
- eep_temp_th_t temp_th;
- eep_ele_arg_t input_arg[2];
- eep_ele_arg_t output_arg;
- }md_eep_data_t;
- typedef struct
- {
- uint8_t o_v_max : 1;
- uint8_t o_v_min : 1;
- uint8_t o_i_max : 1;
- uint8_t o_p_max : 1;
- uint8_t o_c_max : 1;
- uint8_t : 3;
- }wanning_o_t;
- typedef union
- {
- uint8_t beep_waning;
- wanning_o_t o_t;
- }wanning_o_beep_t;
- typedef wanning_o_beep_t wanning_o_beep_flag_t;
- typedef struct
- {
- uint8_t i_v_max : 1;
- uint8_t i_v_min : 1;
- uint8_t i_hz_max : 1;
- uint8_t i_hz_min : 1;
- uint8_t : 4;
- }wanning_i_t;
- typedef union
- {
- uint8_t beep_waning;
- wanning_i_t i_t;
- }wanning_i_beep_t;
- typedef wanning_i_beep_t wanning_i_beep_flag_t;
- typedef struct{
- uint16_t dev;
- md_input_info input[2];
- md_input_status input_status;
- md_in_wanning input_wanning;
- md_out_wanning output_waning;
- md_out_power_info out_power;
- int16_t temprature;
- uint16_t temprature_flag;
- uint16_t fans_status;
- md_information_t info;
- }r_data_t;
- typedef union{
- r_data_t r_data;
- uint16_t data[100];
- }m_r_data_t;
- typedef struct
- {
- uint16_t chiose_ch; //4100
- md_eep_data_t md_eep;
- }rw_data_t;
- typedef union{
- rw_data_t rw_data;
- uint16_t data[100];
- }m_rw_data_t;
- //typedef uint16_t iic_over_func;
- typedef struct{
- m_r_data_t m_r; //4000
- m_rw_data_t m_rw; //4100
- }md_data_t;
- #pragma pack ()
- typedef struct sts_data{
- uint8_t beep_flag;
- uint8_t chiose_flag;
- uint32_t chiose_count_max;
- uint32_t chiose_counter;
- uint32_t beep_count;
- uint32_t lost_count;
- uint32_t baund;
- uint32_t addr;
- uint32_t wanning_count;
- uint8_t exit_init_flag;
- uint8_t switch_status;
- md_data_t m_data;
- consumer_data kwh;
- float iic_consumer;
- float temprature;
- input_wanning_en_t input_wanning_en[2];
- output_wanning_en_t output_wanning_en;
- uint8_t input_beep;
- wanning_o_beep_t o_beep;
- wanning_o_beep_flag_t o_beep_flag;
- wanning_i_beep_t i_beep[2];
- wanning_i_beep_flag_t i_beep_flag[2];
- void (*choise_input)(uint8_t channel);
- void (*open_output)();
- void (*close_output)();
- void (*read_ele)(uint8_t channel);
- void (*read_switch_level)();
- uint8_t (*get_input1_level)();
- uint8_t (*get_input2_level)();
- void (*fans)(uint8_t on_off);
- void (*beep)();
- void (*clear_beep)();
- void (*led_flash)();
- void (*key_clear_beep)();
- void (*read_eeprom)(uint16_t addr,uint8_t *r_buff,uint16_t lenth);
- void (*write_eeprom)(uint16_t addr,uint8_t *w_buff,uint16_t lenth);
- void (*read_eeprom_page)(uint16_t addr,uint8_t *r_buff,uint16_t lenth);
- void (*write_eeprom_page)(uint16_t addr,uint8_t *r_buff,uint16_t lenth);
- float (*read_temp)();
- void (*check_wanning)(uint8_t channel);
- }sts_data_t;
- sts_data_t *get_sts(void);
- #endif
|