Files
VoiletCStudio/switch_def.h
虾哥 fff7509a92 修复两个 BUG:
1. 文件浏览窗口现在使用 JSON 文件所在目录作为初始路径
2. 修复拖拽 JSON 文件打开工程功能

修改内容:
- mainwindow.cpp: addSourceFile/addIncludeDir/addLibrary 添加初始目录
- mainwindow.cpp: dropEvent 完善所有 UI 组件的加载
2026-04-09 23:32:13 -04:00

227 lines
7.8 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/**
* @file switch_def.h
* @brief 开关控制结构体定义
* @author 虾哥
* @date 2026-04-09
*/
#ifndef SWITCH_DEF_H
#define SWITCH_DEF_H
#include <stdint.h>
/**
* @brief 开关控制结构
*
* 用于表示每个断路器的控制状态
* 包含合闸、分闸、故障复位等控制信号
*/
typedef struct
{
uint8_t close_cmd; // 合闸命令1=合闸0=分闸
uint8_t open_cmd; // 分闸命令1=分闸0=合闸
uint8_t reset_cmd; // 故障复位命令1=复位0=保持
uint8_t status; // 开关状态1=合位0=分位
uint8_t fault_status; // 故障状态1=故障0=正常
uint8_t reserved[3]; // 保留字节,用于内存对齐
} SWITCH;
/**
* @brief 变压器控制结构体
*
* 包含所有断路器的控制信息
* 按电压等级和功能分组排列
*/
typedef struct
{
// ================================
// 1 侧开关 (1-QF)
// ================================
SWITCH qf1_1; // 1-QF1 断路器
SWITCH qf1_2; // 1-QF2 断路器
SWITCH qf1_3; // 1-QF3 断路器
SWITCH qf1_4; // 1-QF4 断路器
SWITCH qf1_5; // 1-QF5 断路器
SWITCH qf1_6; // 1-QF6 断路器
SWITCH qf1_7; // 1-QF7 断路器
SWITCH qf1_8; // 1-QF8 断路器
SWITCH qf1_9; // 1-QF9 断路器
SWITCH qf1_10; // 1-QF10 断路器
SWITCH qf1_11; // 1-QF11 断路器
SWITCH qf1_12; // 1-QF12 断路器
SWITCH qf1_14; // 1-QF14 断路器
SWITCH qf1_15; // 1-QF15 断路器
SWITCH qf1_16; // 1-QF16 断路器
SWITCH qf1_20; // 1-QF20 断路器
// ================================
// 2 侧开关 (2-QF)
// ================================
SWITCH qf2_1; // 2-QF1 断路器
SWITCH qf2_2; // 2-QF2 断路器
SWITCH qf2_3; // 2-QF3 断路器
SWITCH qf2_4; // 2-QF4 断路器
SWITCH qf2_5; // 2-QF5 断路器
SWITCH qf2_6; // 2-QF6 断路器
SWITCH qf2_7; // 2-QF7 断路器
SWITCH qf2_8; // 2-QF8 断路器
SWITCH qf2_9; // 2-QF9 断路器
SWITCH qf2_10; // 2-QF10 断路器
SWITCH qf2_11; // 2-QF11 断路器
SWITCH qf2_12; // 2-QF12 断路器
SWITCH qf2_13; // 2-QF13 断路器
SWITCH qf2_16; // 2-QF16 断路器
SWITCH qf2_17; // 2-QF17 断路器
SWITCH qf2_18; // 2-QF18 断路器
SWITCH qf2_20; // 2-QF20 断路器
SWITCH qf2_30; // 2-QF30 断路器
// ================================
// 3 侧开关 (3-QF)
// ================================
SWITCH qf3_1; // 3-QF1 断路器
SWITCH qf3_2; // 3-QF2 断路器
SWITCH qf3_3; // 3-QF3 断路器
SWITCH qf3_4; // 3-QF4 断路器
SWITCH qf3_5; // 3-QF5 断路器
SWITCH qf3_8; // 3-QF8 断路器
SWITCH qf3_9; // 3-QF9 断路器
SWITCH qf3_11; // 3-QF11 断路器
SWITCH qf3_12; // 3-QF12 断路器
SWITCH qf3_13; // 3-QF13 断路器
SWITCH qf3_14; // 3-QF14 断路器
SWITCH qf3_16; // 3-QF16 断路器
SWITCH qf3_17; // 3-QF17 断路器
SWITCH qf3_18; // 3-QF18 断路器
SWITCH qf3_19; // 3-QF19 断路器
SWITCH qf3_20; // 3-QF20 断路器
SWITCH qf3_21; // 3-QF21 断路器
SWITCH qf3_22; // 3-QF22 断路器
// ================================
// F1 侧开关 (F1-QF)
// ================================
SWITCH qf_f1_1; // F1-QF1 断路器
SWITCH qf_f1_2; // F1-QF2 断路器
SWITCH qf_f1_3; // F1-QF3 断路器
// ================================
// F2 侧开关 (F2-QF)
// ================================
SWITCH qf_f2_1; // F2-QF1 断路器
SWITCH qf_f2_2; // F2-QF2 断路器
SWITCH qf_f2_3; // F2-QF3 断路器
// ================================
// F3 侧开关 (F3-QF)
// ================================
SWITCH qf_f3_1; // F3-QF1 断路器
SWITCH qf_f3_2; // F3-QF2 断路器
SWITCH qf_f3_3; // F3-QF3 断路器
// ================================
// 4 侧开关 (4-QF)
// ================================
SWITCH qf4_2; // 4-QF2 断路器
SWITCH qf4_3; // 4-QF3 断路器
SWITCH qf4_4; // 4-QF4 断路器
SWITCH qf4_5; // 4-QF5 断路器
SWITCH qf4_6; // 4-QF6 断路器
SWITCH qf4_7; // 4-QF7 断路器
SWITCH qf4_8; // 4-QF8 断路器
SWITCH qf4_9; // 4-QF9 断路器
SWITCH qf4_21; // 4-QF21 断路器
SWITCH qf4_22; // 4-QF22 断路器
SWITCH qf4_23; // 4-QF23 断路器
SWITCH qf4_24; // 4-QF24 断路器
SWITCH qf4_25; // 4-QF25 断路器
SWITCH qf4_26; // 4-QF26 断路器
SWITCH qf4_28; // 4-QF28 断路器
SWITCH qf4_31; // 4-QF31 断路器
SWITCH qf4_32; // 4-QF32 断路器
SWITCH qf4_33; // 4-QF33 断路器
SWITCH qf4_34; // 4-QF34 断路器
SWITCH qf4_35; // 4-QF35 断路器
SWITCH qf4_36; // 4-QF36 断路器
SWITCH qf4_37; // 4-QF37 断路器
SWITCH qf4_38; // 4-QF38 断路器
SWITCH qf4_39; // 4-QF39 断路器
SWITCH qf4_40; // 4-QF40 断路器
SWITCH qf4_41; // 4-QF41 断路器
// ================================
// 5 侧开关 (5-QF)
// ================================
SWITCH qf5_2; // 5-QF2 断路器
SWITCH qf5_3; // 5-QF3 断路器
SWITCH qf5_4; // 5-QF4 断路器
SWITCH qf5_5; // 5-QF5 断路器
SWITCH qf5_6; // 5-QF6 断路器
SWITCH qf5_31; // 5-QF31 断路器
SWITCH qf5_32; // 5-QF32 断路器
SWITCH qf5_33; // 5-QF33 断路器
SWITCH qf5_34; // 5-QF34 断路器
// ================================
// 6 侧开关 (6-QF)
// ================================
SWITCH qf6_1; // 6-QF1 断路器
SWITCH qf6_2; // 6-QF2 断路器
SWITCH qf6_3; // 6-QF3 断路器
SWITCH qf6_4; // 6-QF4 断路器
SWITCH qf6_5; // 6-QF5 断路器
SWITCH qf6_6; // 6-QF6 断路器
SWITCH qf6_7; // 6-QF7 断路器
SWITCH qf6_8; // 6-QF8 断路器
SWITCH qf6_9; // 6-QF9 断路器
} TRANS_CONTROL;
/**
* @brief 变压器控制结构体指针类型
*/
typedef TRANS_CONTROL* TRANS_CONTROL_PTR;
/**
* @brief 全局变压器控制实例
*
* 在 main.c 或其他源文件中实例化使用
* 示例:
* TRANS_CONTROL g_trans_control = {0}; // 初始化为 0
* g_trans_control.qf1_1.close_cmd = 1; // 1-QF1 合闸
*/
extern TRANS_CONTROL g_trans_control;
/**
* @brief 初始化变压器控制结构
*
* @param ptr 指向 TRANS_CONTROL 结构体的指针
*/
void TransControl_Init(TRANS_CONTROL_PTR ptr);
/**
* @brief 合闸操作
*
* @param ptr 指向 TRANS_CONTROL 结构体的指针
* @param sw 指向具体 SWITCH 成员的指针
*/
void Switch_Close(TRANS_CONTROL_PTR ptr, SWITCH* sw);
/**
* @brief 分闸操作
*
* @param ptr 指向 TRANS_CONTROL 结构体的指针
* @param sw 指向具体 SWITCH 成员的指针
*/
void Switch_Open(TRANS_CONTROL_PTR ptr, SWITCH* sw);
/**
* @brief 故障复位操作
*
* @param ptr 指向 TRANS_CONTROL 结构体的指针
* @param sw 指向具体 SWITCH 成员的指针
*/
void Switch_Reset(TRANS_CONTROL_PTR ptr, SWITCH* sw);
#endif // SWITCH_DEF_H