清理:删除无关的 switch 控制文件
This commit is contained in:
252
switch_def.c
252
switch_def.c
@@ -1,252 +0,0 @@
|
||||
/**
|
||||
* @file switch_def.c
|
||||
* @brief 开关控制结构体实现
|
||||
* @author 虾哥
|
||||
* @date 2026-04-09
|
||||
*/
|
||||
|
||||
#include "switch_def.h"
|
||||
#include <string.h>
|
||||
|
||||
/**
|
||||
* @brief 全局变压器控制实例
|
||||
*
|
||||
* 所有开关控制的全局实例
|
||||
* 在系统启动时初始化为 0
|
||||
*/
|
||||
TRANS_CONTROL g_trans_control = {0};
|
||||
|
||||
/**
|
||||
* @brief 初始化变压器控制结构
|
||||
*
|
||||
* 将所有开关状态清零
|
||||
* 包括合闸命令、分闸命令、故障复位命令等
|
||||
*
|
||||
* @param ptr 指向 TRANS_CONTROL 结构体的指针
|
||||
*/
|
||||
void TransControl_Init(TRANS_CONTROL_PTR ptr)
|
||||
{
|
||||
// 参数检查
|
||||
if (ptr == NULL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// 清空整个结构体内存
|
||||
memset(ptr, 0, sizeof(TRANS_CONTROL));
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 合闸操作
|
||||
*
|
||||
* 设置指定开关的合闸命令
|
||||
* 同时清除分闸命令,避免冲突
|
||||
*
|
||||
* @param ptr 指向 TRANS_CONTROL 结构体的指针
|
||||
* @param sw 指向具体 SWITCH 成员的指针
|
||||
*/
|
||||
void Switch_Close(TRANS_CONTROL_PTR ptr, SWITCH* sw)
|
||||
{
|
||||
// 参数检查
|
||||
if ((ptr == NULL) || (sw == NULL))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// 检查开关是否在有效范围内
|
||||
if ((uint8_t*)sw < (uint8_t*)ptr ||
|
||||
(uint8_t*)sw >= (uint8_t*)ptr + sizeof(TRANS_CONTROL))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// 设置合闸命令
|
||||
sw->close_cmd = 1;
|
||||
|
||||
// 清除分闸命令,避免同时合分
|
||||
sw->open_cmd = 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 分闸操作
|
||||
*
|
||||
* 设置指定开关的分闸命令
|
||||
* 同时清除合闸命令,避免冲突
|
||||
*
|
||||
* @param ptr 指向 TRANS_CONTROL 结构体的指针
|
||||
* @param sw 指向具体 SWITCH 成员的指针
|
||||
*/
|
||||
void Switch_Open(TRANS_CONTROL_PTR ptr, SWITCH* sw)
|
||||
{
|
||||
// 参数检查
|
||||
if ((ptr == NULL) || (sw == NULL))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// 检查开关是否在有效范围内
|
||||
if ((uint8_t*)sw < (uint8_t*)ptr ||
|
||||
(uint8_t*)sw >= (uint8_t*)ptr + sizeof(TRANS_CONTROL))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// 设置分闸命令
|
||||
sw->open_cmd = 1;
|
||||
|
||||
// 清除合闸命令,避免同时合分
|
||||
sw->close_cmd = 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 故障复位操作
|
||||
*
|
||||
* 设置指定开关的故障复位命令
|
||||
* 用于清除开关的故障状态
|
||||
*
|
||||
* @param ptr 指向 TRANS_CONTROL 结构体的指针
|
||||
* @param sw 指向具体 SWITCH 成员的指针
|
||||
*/
|
||||
void Switch_Reset(TRANS_CONTROL_PTR ptr, SWITCH* sw)
|
||||
{
|
||||
// 参数检查
|
||||
if ((ptr == NULL) || (sw == NULL))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// 检查开关是否在有效范围内
|
||||
if ((uint8_t*)sw < (uint8_t*)ptr ||
|
||||
(uint8_t*)sw >= (uint8_t*)ptr + sizeof(TRANS_CONTROL))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// 设置故障复位命令
|
||||
sw->reset_cmd = 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 获取开关状态
|
||||
*
|
||||
* 读取指定开关的当前状态
|
||||
*
|
||||
* @param sw 指向具体 SWITCH 成员的指针
|
||||
* @return uint8_t 开关状态:1=合位,0=分位
|
||||
*/
|
||||
uint8_t Switch_GetStatus(SWITCH* sw)
|
||||
{
|
||||
// 参数检查
|
||||
if (sw == NULL)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
return sw->status;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 获取故障状态
|
||||
*
|
||||
* 读取指定开关的故障状态
|
||||
*
|
||||
* @param sw 指向具体 SWITCH 成员的指针
|
||||
* @return uint8_t 故障状态:1=故障,0=正常
|
||||
*/
|
||||
uint8_t Switch_GetFaultStatus(SWITCH* sw)
|
||||
{
|
||||
// 参数检查
|
||||
if (sw == NULL)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
return sw->fault_status;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 设置开关状态
|
||||
*
|
||||
* 更新指定开关的实际状态
|
||||
* 通常由硬件反馈更新
|
||||
*
|
||||
* @param sw 指向具体 SWITCH 成员的指针
|
||||
* @param status 开关状态:1=合位,0=分位
|
||||
*/
|
||||
void Switch_SetStatus(SWITCH* sw, uint8_t status)
|
||||
{
|
||||
// 参数检查
|
||||
if (sw == NULL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
sw->status = status;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 设置故障状态
|
||||
*
|
||||
* 更新指定开关的故障状态
|
||||
* 通常由保护电路反馈更新
|
||||
*
|
||||
* @param sw 指向具体 SWITCH 成员的指针
|
||||
* @param fault_status 故障状态:1=故障,0=正常
|
||||
*/
|
||||
void Switch_SetFaultStatus(SWITCH* sw, uint8_t fault_status)
|
||||
{
|
||||
// 参数检查
|
||||
if (sw == NULL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
sw->fault_status = fault_status;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 清除所有命令
|
||||
*
|
||||
* 清除指定开关的所有控制命令
|
||||
* 用于执行完操作后复位命令状态
|
||||
*
|
||||
* @param sw 指向具体 SWITCH 成员的指针
|
||||
*/
|
||||
void Switch_ClearCommands(SWITCH* sw)
|
||||
{
|
||||
// 参数检查
|
||||
if (sw == NULL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
sw->close_cmd = 0;
|
||||
sw->open_cmd = 0;
|
||||
sw->reset_cmd = 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 打印开关信息(调试用)
|
||||
*
|
||||
* 输出指定开关的当前状态到调试终端
|
||||
*
|
||||
* @param name 开关名称(如 "1-QF1")
|
||||
* @param sw 指向具体 SWITCH 成员的指针
|
||||
*/
|
||||
void Switch_PrintInfo(const char* name, SWITCH* sw)
|
||||
{
|
||||
// 参数检查
|
||||
if ((name == NULL) || (sw == NULL))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// 打印开关信息
|
||||
printf("[%s] 状态=%d, 故障=%d, 合闸=%d, 分闸=%d, 复位=%d\r\n",
|
||||
name,
|
||||
sw->status,
|
||||
sw->fault_status,
|
||||
sw->close_cmd,
|
||||
sw->open_cmd,
|
||||
sw->reset_cmd);
|
||||
}
|
||||
226
switch_def.h
226
switch_def.h
@@ -1,226 +0,0 @@
|
||||
/**
|
||||
* @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
|
||||
154
switch_example.c
154
switch_example.c
@@ -1,154 +0,0 @@
|
||||
/**
|
||||
* @file switch_example.c
|
||||
* @brief 开关控制使用示例
|
||||
* @author 虾哥
|
||||
* @date 2026-04-09
|
||||
*
|
||||
* 本文件演示如何使用 TRANS_CONTROL 结构体
|
||||
* 包含初始化、合闸、分闸、故障复位等操作示例
|
||||
*/
|
||||
|
||||
#include "switch_def.h"
|
||||
#include <stdio.h>
|
||||
|
||||
/**
|
||||
* @brief 主函数示例
|
||||
*
|
||||
* 演示完整的开关控制流程
|
||||
*
|
||||
* @return int 程序执行结果
|
||||
*/
|
||||
int main(void)
|
||||
{
|
||||
// ================================
|
||||
// 1. 初始化变压器控制结构
|
||||
// ================================
|
||||
TransControl_Init(&g_trans_control);
|
||||
printf("变压器控制结构初始化完成\r\n");
|
||||
|
||||
// ================================
|
||||
// 2. 1-QF1 合闸操作
|
||||
// ================================
|
||||
printf("\r\n=== 1-QF1 合闸 ===\r\n");
|
||||
Switch_Close(&g_trans_control, &g_trans_control.qf1_1);
|
||||
Switch_PrintInfo("1-QF1", &g_trans_control.qf1_1);
|
||||
|
||||
// ================================
|
||||
// 3. 1-QF2 合闸操作
|
||||
// ================================
|
||||
printf("\r\n=== 1-QF2 合闸 ===\r\n");
|
||||
Switch_Close(&g_trans_control, &g_trans_control.qf1_2);
|
||||
Switch_PrintInfo("1-QF2", &g_trans_control.qf1_2);
|
||||
|
||||
// ================================
|
||||
// 4. 2-QF1 合闸操作
|
||||
// ================================
|
||||
printf("\r\n=== 2-QF1 合闸 ===\r\n");
|
||||
Switch_Close(&g_trans_control, &g_trans_control.qf2_1);
|
||||
Switch_PrintInfo("2-QF1", &g_trans_control.qf2_1);
|
||||
|
||||
// ================================
|
||||
// 5. 3-QF1 分闸操作
|
||||
// ================================
|
||||
printf("\r\n=== 3-QF1 分闸 ===\r\n");
|
||||
Switch_Open(&g_trans_control, &g_trans_control.qf3_1);
|
||||
Switch_PrintInfo("3-QF1", &g_trans_control.qf3_1);
|
||||
|
||||
// ================================
|
||||
// 6. 1-QF14 故障复位操作
|
||||
// ================================
|
||||
printf("\r\n=== 1-QF14 故障复位 ===\r\n");
|
||||
Switch_Reset(&g_trans_control, &g_trans_control.qf1_14);
|
||||
Switch_PrintInfo("1-QF14", &g_trans_control.qf1_14);
|
||||
|
||||
// ================================
|
||||
// 7. 批量操作示例:合上 1 侧所有开关
|
||||
// ================================
|
||||
printf("\r\n=== 批量合上 1 侧所有开关 ===\r\n");
|
||||
Switch_Close(&g_trans_control, &g_trans_control.qf1_1);
|
||||
Switch_Close(&g_trans_control, &g_trans_control.qf1_2);
|
||||
Switch_Close(&g_trans_control, &g_trans_control.qf1_3);
|
||||
Switch_Close(&g_trans_control, &g_trans_control.qf1_4);
|
||||
Switch_Close(&g_trans_control, &g_trans_control.qf1_5);
|
||||
Switch_Close(&g_trans_control, &g_trans_control.qf1_6);
|
||||
Switch_Close(&g_trans_control, &g_trans_control.qf1_7);
|
||||
Switch_Close(&g_trans_control, &g_trans_control.qf1_8);
|
||||
Switch_Close(&g_trans_control, &g_trans_control.qf1_9);
|
||||
Switch_Close(&g_trans_control, &g_trans_control.qf1_10);
|
||||
Switch_Close(&g_trans_control, &g_trans_control.qf1_11);
|
||||
Switch_Close(&g_trans_control, &g_trans_control.qf1_12);
|
||||
Switch_Close(&g_trans_control, &g_trans_control.qf1_14);
|
||||
Switch_Close(&g_trans_control, &g_trans_control.qf1_15);
|
||||
Switch_Close(&g_trans_control, &g_trans_control.qf1_16);
|
||||
Switch_Close(&g_trans_control, &g_trans_control.qf1_20);
|
||||
printf("1 侧所有开关已合闸\r\n");
|
||||
|
||||
// ================================
|
||||
// 8. 直接访问结构体成员示例
|
||||
// ================================
|
||||
printf("\r\n=== 直接访问结构体成员 ===\r\n");
|
||||
|
||||
// 直接设置合闸命令
|
||||
g_trans_control.qf2_20.close_cmd = 1;
|
||||
printf("2-QF20 合闸命令已设置\r\n");
|
||||
|
||||
// 直接读取状态
|
||||
uint8_t status = g_trans_control.qf2_20.status;
|
||||
printf("2-QF20 当前状态:%d\r\n", status);
|
||||
|
||||
// 直接设置故障状态
|
||||
g_trans_control.qf3_8.fault_status = 1;
|
||||
printf("3-QF8 故障状态已设置\r\n");
|
||||
|
||||
// ================================
|
||||
// 9. 状态检查示例
|
||||
// ================================
|
||||
printf("\r\n=== 状态检查 ===\r\n");
|
||||
|
||||
if (Switch_GetStatus(&g_trans_control.qf1_1) == 1)
|
||||
{
|
||||
printf("1-QF1 在合位\r\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("1-QF1 在分位\r\n");
|
||||
}
|
||||
|
||||
if (Switch_GetFaultStatus(&g_trans_control.qf3_8) == 1)
|
||||
{
|
||||
printf("3-QF8 有故障\r\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("3-QF8 正常\r\n");
|
||||
}
|
||||
|
||||
// ================================
|
||||
// 10. 清除命令示例
|
||||
// ================================
|
||||
printf("\r\n=== 清除命令 ===\r\n");
|
||||
Switch_ClearCommands(&g_trans_control.qf1_1);
|
||||
printf("1-QF1 所有命令已清除\r\n");
|
||||
Switch_PrintInfo("1-QF1", &g_trans_control.qf1_1);
|
||||
|
||||
printf("\r\n=== 示例程序执行完成 ===\r\n");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 中断服务程序示例
|
||||
*
|
||||
* 模拟硬件中断处理开关状态
|
||||
* 在实际应用中,这会是真正的中断处理函数
|
||||
*/
|
||||
void HWINT_IRQHandler(void)
|
||||
{
|
||||
// 检查 1-QF1 是否故障
|
||||
if (g_trans_control.qf1_1.fault_status == 1)
|
||||
{
|
||||
// 自动分闸
|
||||
Switch_Open(&g_trans_control, &g_trans_control.qf1_1);
|
||||
printf("中断:1-QF1 故障,已自动分闸\r\n");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user