| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301 |
- /*********************************************************************************************************
- * 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_START 4161
- #define STS_OUTPUT_STATUS (STS_RW_START)
- #define STS_CHOISE_INPUT (STS_OUTPUT_STATUS + 1)
- #define STS_INPUT_THRESHOLD (STS_CHOISE_INPUT + 1)
- #define STS_OUTPUT_THRESHOLD (STS_INPUT_THRESHOLD + 16)
- #define STS_TEMP_THRESHOLD (STS_OUTPUT_THRESHOLD + 10)
- #define STS_OVER_FUNC (STS_TEMP_THRESHOLD +2)
- #define IIC_INPUT_THRESHOLD_START (10)
- //#define IIC_INPUT_THRESHOLD_LENTH (20)
- #define IIC_OUTPUT_THRESHOLD_START (50)
- //#define IIC_OUTPUT_THRESHOLD_LENTH (30)
- #define IIC_TEMPRATURE_THRESHOLD_START (150)
- //#define IIC_TEMPRATURE_THRESHOLD_LENTH (4)
- #define IIC_OVER_FUNC_START (170)
- #define IIC_OVER_FUNC_LENTH (1)
- #define IIC_CONSUMER_START (200)
- //#define IIC_CONSUMER_LENTH (4)
- #define IIC_OUT_CHANNEL (210)
- #define INVALID_VALUE (40000000000)
- #define SMALL_VALUE (500)
- enum{
- INPUT_CHANNEL_1 = 0,
- INPUT_CHANNEL_2,
- };
- enum {
- CH448_CHANNEL_1 = 0,
- CH448_CHANNEL_2,
- CH448_CHANNEL_3,
- CH448_CHANNEL_NONE,
- };
- #define VOLTAGE_MAX_EN (0x01)
- #define VOLTAGE_MIN_EN (0x02)
- #define CURRENT_MAX_EN (0x04)
- #define POWER_MAX_EN (0x08)
- #define CONSUMER_MAX_EN (0x10)
- #define FREQ_MAX_EN (0x20)
- #define FREQ_MIN_EN (0x40)
- #define VOLTAGLE_MAX_DIS_EN (~(VOLTAGE_MAX_EN))
- #define VOLTAGLE_MIN_DIS_EN (~(VOLTAGE_MIN_EN))
- #define CURRENT_MAX_DIS_EN (~(CURRENT_MAX_EN))
- #define POWER_MAX_DIS_EN (~(POWER_MAX_EN))
- #define CONSUMER_MAX_DIS_EN (~(CONSUMER_MAX_EN))
- #define FREQ_MAX_DIS_EN (~(FREQ_MAX_EN))
- #define FREQ_MIN_DIS_EN (~(FREQ_MIN_EN))
- #define IS_VOLTAGE_MAX_EN(reg) ((reg) & VOLTAGE_MAX_EN)
- #define IS_VOLTAGE_MIN_EN(reg) ((reg) & VOLTAGE_MIN_EN)
- #define IS_CURRENT_MAX_EN(reg) ((reg) & CURRENT_MAX_EN)
- #define IS_POWER_MAX_EN(reg) ((reg) & POWER_MAX_EN)
- #define IS_CONSUMER_MAX_EN(reg) ((reg) & CONSUMER_MAX_EN)
- #define IS_FREQ_MAX_EN(reg) ((reg) & FREQ_MAX_EN)
- #define IS_FREQ_MIN_EN(reg) ((reg) & FREQ_MIN_EN)
- #define SET_VOLTAGE_MAX_EN(reg) ((reg) |= VOLTAGE_MAX_EN)
- #define SET_VOLTAGE_MIN_EN(reg) ((reg) |= VOLTAGE_MIN_EN)
- #define SET_CURRENT_MAX_EN(reg) ((reg) |= CURRENT_MAX_EN)
- #define SET_POWER_MAX_EN(reg) ((reg) |= POWER_MAX_EN)
- #define SET_CONSUMER_MAX_EN(reg) ((reg) |= CONSUMER_MAX_EN)
- #define SET_FREQ_MAX_EN(reg) ((reg) |= FREQ_MAX_EN)
- #define SET_FREQ_MIN_EN(reg) ((reg) |= FREQ_MIN_EN)
- #define UNSET_VOLTAGE_MAX_EN(reg) ((reg) &= VOLTAGLE_MAX_DIS_EN)
- #define UNSET_VOLTAGE_MIN_EN(reg) ((reg) &= VOLTAGLE_MIN_DIS_EN)
- #define UNSET_CURRENT_MAX_EN(reg) ((reg) &= CURRENT_MAX_DIS_EN)
- #define UNSET_POWER_MAX_EN(reg) ((reg) &= POWER_MAX_DIS_EN)
- #define UNSET_CONSUMER_MAX_EN(reg) ((reg) &= CONSUMER_MAX_DIS_EN)
- #define UNSET_FREQ_MAX_EN(reg) ((reg) &= FREQ_MAX_DIS_EN)
- #define UNSET_FREQ_MIN_EN(reg) ((reg) &= FREQ_MIN_DIS_EN)
- #define SET_WANNING_VOLTAGE_MAX(reg) SET_VOLTAGE_MAX_EN(reg)
- #define SET_WANNING_VOLTAGE_MIN(reg) SET_VOLTAGE_MIN_EN(reg)
- #define SET_WANNING_CURRENT_MAX(reg) SET_CURRENT_MAX_EN(reg)
- #define SET_WANNING_POWER_MAX(reg) SET_POWER_MAX_EN(reg)
- #define SET_WANNING_CONSUMER_MAX(reg) SET_CONSUMER_MAX_EN(reg)
- #define SET_WANNING_FREQ_MAX(reg) SET_FREQ_MAX_EN(reg)
- #define SET_WANNING_FREQ_MIN(reg) SET_FREQ_MIN_EN(reg)
- #define UNSET_WANNING_VOLTAGE_MAX(reg) UNSET_VOLTAGE_MAX_EN(reg)
- #define UNSET_WANNING_VOLTAGE_MIN(reg) UNSET_VOLTAGE_MIN_EN(reg)
- #define UNSET_WANNING_CURRENT_MAX(reg) UNSET_CURRENT_MAX_EN(reg)
- #define UNSET_WANNING_POWER_MAX(reg) UNSET_POWER_MAX_EN(reg)
- #define UNSET_WANNING_CONSUMER_MAX(reg) UNSET_CONSUMER_MAX_EN(reg)
- #define UNSET_WANNING_FREQ_MAX(reg) UNSET_FREQ_MAX_EN(reg)
- #define UNSET_WANNING_FREQ_MIN(reg) UNSET_FREQ_MIN_EN(reg)
- #define IS_WANNING_VOLTAGE_MAX(reg) IS_VOLTAGE_MAX_EN(reg)
- #define IS_WANNING_VOLTAGE_MIN(reg) IS_VOLTAGE_MIN_EN(reg)
- #define IS_WANNING_CURRENT_MAX(reg) IS_CURRENT_MAX_EN(reg)
- #define IS_WANNING_POWER_MAX(reg) IS_POWER_MAX_EN(reg)
- #define IS_WANNING_CONSUMER_MAX(reg) IS_CONSUMER_MAX_EN(reg)
- #define IS_WANNING_FREQ_MAX(reg) IS_FREQ_MAX_EN(reg)
- #define IS_WANNING_FREQ_MIN(reg) IS_FREQ_MIN_EN(reg)
- #define STS_INPUT_HAS_WANNING(reg) ((IS_WANNING_VOLTAGE_MAX(reg)) || (IS_WANNING_VOLTAGE_MIN(reg)) \
- || (IS_WANNING_FREQ_MAX(reg)) || (IS_WANNING_FREQ_MIN(reg)) )
- #define IS_OVERFUNC_VOLTAGE_MAX(reg) IS_VOLTAGE_MAX_EN(reg)
- #define IS_OVERFUNC_VOLTAGE_MIN(reg) IS_VOLTAGE_MIN_EN(reg)
- #define IS_OVERFUNC_CURRENT_MAX(reg) IS_CURRENT_MAX_EN(reg)
- #define IS_OVERFUNC_POWER_MAX(reg) IS_POWER_MAX_EN(reg)
- #define IS_OVERFUNC_CONSUMER_MAX(reg) IS_CONSUMER_MAX_EN(reg)
- #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 waning[2]; /* two input */
- }md_in_wanning;
- typedef struct {
- uint16_t waning;
- }md_out_wanning;
- typedef struct {
- uint32_t voltage_max;
- uint32_t voltage_min;
- uint32_t current_max;
- uint32_t power_max;
- uint32_t consumer_max;
- }iic_out_threshold_t;
- typedef struct {
- uint32_t voltage_max;
- uint32_t voltage_min;
- uint32_t freq_max;
- uint32_t freq_min;
- }iic_in_threshold_t;
- typedef struct{
- uint16_t fans_max_temp;
- uint16_t fans_min_temp;
- }iic_temp_threshold_t;
- typedef uint16_t iic_over_func;
- typedef struct{
- uint16_t dev; //4000
- md_information_t info; //4001 - 4030
- md_input_info input[2]; //4031 - 4038
- md_input_status input_status; //4039 - 4040
- md_in_wanning input_wanning; //4041
- md_out_wanning output_waning; //4042
- md_out_power_info out_power; //4043 - 4057
- int16_t temprature; //4058
- uint16_t temprature_flag; //4059
- uint16_t fans_status; //4060
- uint16_t resurved[100]; //
- uint16_t out_status; //r_w //4061
- md_chiose_ch md_choise; //4062
- iic_in_threshold_t input_th[2];
- iic_out_threshold_t output_th;
- iic_temp_threshold_t temprature_th;
- iic_over_func over_func;
- }md_data_t;
- #pragma pack ()
- //typedef struct sts_data sts_data_t;
- typedef struct sts_data{
- uint8_t flag_1000ms;
- uint8_t flag_100ms;
- uint8_t beep_flag;
- uint8_t switch_status;
- md_data_t m_data;
- float iic_consumer;
- float temprature;
- uint8_t input_wanning_en[2];
- uint8_t output_wanning_en;
- void (*choise_input)(uint8_t channel);
- void (*open_output)();
- void (*close_output)();
- void (*read_ele)(uint8_t channel);
- void (*read_input_level)(uint8_t channel);
- void (*read_switch_level)();
- void (*fans)(uint8_t on_off);
- void (*beep)();
- void (*clear_beep)();
- void (*led_flash)();
- void (*read_eeprom)();
- void (*read_at24)(uint16_t start,uint8_t *buff,uint16_t lenth);
- void (*write_at24)(uint16_t start,uint8_t *buff,uint16_t lenth);
- float (*read_temp)();
- void (*check_wanning)(uint8_t channel);
- }sts_data_t;
- sts_data_t *get_sts(void);
- #endif
|