Просмотр исходного кода

增加 : 频率追踪投退下发到RV核;

lch 5 месяцев назад
Родитель
Сommit
db89956deb

+ 2 - 1
README.md

@@ -61,4 +61,5 @@
 
 # 202601(04-11)
 01. 修改 : 开出接口;
-02. 修改 : 压板赋值;
+02. 修改 : 压板赋值;
+03. 增加 : 频率追踪投退下发到RV核;

+ 2 - 0
app_public/fuxi_public/fuxi_bsp/include/debug_print.h

@@ -69,6 +69,8 @@
 
 #define dp_info_nt_rt(fmt, args...) \
     rt_printf(DP_COLOR_WATHET fmt DP_COLOR_NONE "\r\n", ##args)
+#define dp_err_nt_rt(fmt, args...) \
+    rt_printf(DP_COLOR_RED fmt DP_COLOR_NONE "\r\n", ##args)
 #define dp_err_n_s_rt(fmt, args...) \
     rt_printf(DP_COLOR_RED "[ERR] " DP_COLOR_NONE DP_COLOR_BLUE fmt DP_COLOR_NONE "\r\n", ##args)
 #define dp_err_n_c_rt(fmt, args...) \

+ 11 - 0
app_public/fuxi_public/fuxi_bsp/include/shm_api.h

@@ -116,6 +116,17 @@ struct t_shmdata_timestamp
     uint16_t us_crc;         /* crc 应用不用处理 底层接口处理 */
 } __attribute__ ((packed)); /* 大小16个字节 */
 
+/* 定值参数 */
+struct t_shmdata_cvalue
+{
+    uint16_t us_updata;    /* 数据更新标志 */
+    uint16_t us_op;        /* 操作标志 */
+    uint16_t us_op_bk;     /* 操作标志备份 */
+    uint8_t uc_freq_track; /* 频率跟踪 */
+    uint8_t uc_cv_bk;      /* 对齐使用 */
+    uint16_t us_crc;       /* crc 应用不用处理 底层接口处理 */
+} __attribute__((packed)); /* 大小16个字节 */
+
 /****************************** A核读, R核写 ******************************/
 
 /* 开入量 */

+ 2 - 1
app_public/fuxi_public/fuxi_bsp/source/dido.c

@@ -41,7 +41,8 @@ u8 g_di_slot = 0;// 
 u8 g_do_slot = 0;// ¿ªÈë°å¿¨ÅäÖòÛλ
 
 struct di g_di[EQU_SLOT_NUM_MAX];
-struct _do g_do[EQU_SLOT_NUM_MAX];struct di_struct g_di_st[EQU_SLOT_NUM_MAX][DIDO_MAX_DI_PER_SLOT];
+struct _do g_do[EQU_SLOT_NUM_MAX];
+struct di_struct g_di_st[EQU_SLOT_NUM_MAX][DIDO_MAX_DI_PER_SLOT];
 struct do_struct g_do_st[DO_NUM];
 
 struct rt_stat g_stat_di_delay;

+ 1 - 1
dtu/dtu_main_t536/app/defineSys.h

@@ -12,7 +12,7 @@
 #ifndef _DEFINE_SYS_H
 #define _DEFINE_SYS_H
 
-#define DEVICE_VERSION_INFORMATION "NW24_20260105_009" // NW2022意思是按照22年南网标准文件(总调)来做的
+#define DEVICE_VERSION_INFORMATION "NW24_20260106_003" // NW2022意思是按照22年南网标准文件(总调)来做的
 
 #ifdef ___defineSys____//!!!此宏定义不开启,以下宏不直接开启,只用于注释显示
 

+ 19 - 19
dtu/dtu_main_t536/app/main.c

@@ -156,7 +156,7 @@ int app_main (void *unused)
               	"app_main_loop", (int)getpid(), (int)syscall(SYS_gettid));
 #endif
 
-#if (0) /* 打印信息测试函数 */
+#if (1) /* 打印信息测试函数 */
 	dp_info_nt("最大定值个数 MAX_SET_NUMBER = %d", MAX_SET_NUMBER);
 	dp_info_nt("装置参数 EQUIP_PARA_NUMBER = %d, PARA_NUM = %d", EQUIP_PARA_NUMBER, PARA_NUM);
 	dp_info_nt("保护定值 SW_SET_NUMBER = %d, SW_SET_NUMBER = %d", SW_SET_NUMBER, SW_SET_NUMBER);
@@ -184,24 +184,24 @@ int app_main (void *unused)
 
 
 #if (1)
-    dp_err_n_c_rt("JZS_ALL_EN(0) = %d", JZS_ALL_EN(0));
-    dp_err_n_c_rt("KZ_OUT_ALL_EN(0) = %d", KZ_OUT_ALL_EN(0));
-    dp_err_n_c_rt("FUN_ALL_EN(0) = %d(%d, %d, %d)", FUN_ALL_EN(0), g_run_stu.bhall, pRunSet->tSwSet[0].btt_yxyb_gnztt, g_tRelay[0].run_stu.bhztt);
-    dp_err_n_c_rt("BH_GOOSE_EN_YB(0) = %d", BH_GOOSE_EN_YB(0));
-    dp_err_n_c_rt("BH_GOOSE_EN(0) = %d", BH_GOOSE_EN(0));
-    dp_err_n_c_rt("BH_GOOSE_COMMERR(0) = %d", BH_GOOSE_COMMERR(0));
-    dp_err_n_c_rt("BH_ALL_2(0) = %d", BH_ALL_2(0));
-    dp_err_n_c_rt("BH_ALL_EN(0) = %d", BH_ALL_EN(0));
-    dp_err_n_c_rt("FA_ALL_EN(0) = %d", FA_ALL_EN(0));
-    dp_err_n_c_rt("CHZ_ALL_EN(0) = %d", CHZ_ALL_EN(0));
-    dp_err_n_c_rt("TYTQ_ALL_EN(0) = %d", TYTQ_ALL_EN(0));
-    dp_err_n_c_rt("JL_ALL_EN(0) = %d", JL_ALL_EN(0));
-    dp_err_n_s_rt("pRunSet->dTBLValue[0] = %d", pRunSet->dTBLValue[0]);
-    dp_err_n_s_rt("pRunSet->dYC_num = %d", pRunSet->dYC_num);
-    dp_err_n_s_rt("toc[BH_GL1].dI = %d", pRunSet->tSwSet[0].toc[BH_GL1].dI);
-    dp_err_n_s_rt("toc[BH_GL1].dT = %d", pRunSet->tSwSet[0].toc[BH_GL1].dT);
-    dp_err_n_s_rt("tRunPara.dTBatBegin = %d", tRunPara.dTBatBegin);
-    dp_err_n_s_rt("tRunPara.dTBatInterval = %d", tRunPara.dTBatInterval);
+    dp_err_nt_rt("JZS_ALL_EN(0) = %d", JZS_ALL_EN(0));
+    dp_err_nt_rt("KZ_OUT_ALL_EN(0) = %d", KZ_OUT_ALL_EN(0));
+    dp_err_nt_rt("FUN_ALL_EN(0) = %d(%d, %d, %d)", FUN_ALL_EN(0), g_run_stu.bhall, pRunSet->tSwSet[0].btt_yxyb_gnztt, g_tRelay[0].run_stu.bhztt);
+    dp_err_nt_rt("BH_GOOSE_EN_YB(0) = %d", BH_GOOSE_EN_YB(0));
+    dp_err_nt_rt("BH_GOOSE_EN(0) = %d", BH_GOOSE_EN(0));
+    dp_err_nt_rt("BH_GOOSE_COMMERR(0) = %d", BH_GOOSE_COMMERR(0));
+    dp_err_nt_rt("BH_ALL_2(0) = %d", BH_ALL_2(0));
+    dp_err_nt_rt("BH_ALL_EN(0) = %d", BH_ALL_EN(0));
+    dp_err_nt_rt("FA_ALL_EN(0) = %d", FA_ALL_EN(0));
+    dp_err_nt_rt("CHZ_ALL_EN(0) = %d", CHZ_ALL_EN(0));
+    dp_err_nt_rt("TYTQ_ALL_EN(0) = %d", TYTQ_ALL_EN(0));
+    dp_err_nt_rt("JL_ALL_EN(0) = %d", JL_ALL_EN(0));
+    dp_err_nt_rt("pRunSet->dTBLValue[0] = %d", pRunSet->dTBLValue[0]);
+    dp_err_nt_rt("pRunSet->dYC_num = %d", pRunSet->dYC_num);
+    dp_err_nt_rt("toc[BH_GL1].dI = %d", pRunSet->tSwSet[0].toc[BH_GL1].dI);
+    dp_err_nt_rt("toc[BH_GL1].dT = %d", pRunSet->tSwSet[0].toc[BH_GL1].dT);
+    dp_err_nt_rt("tRunPara.dTBatBegin = %d", tRunPara.dTBatBegin);
+    dp_err_nt_rt("tRunPara.dTBatInterval = %d", tRunPara.dTBatInterval);
 #endif
 
 	{

+ 26 - 0
dtu/dtu_main_t536/app/set.c

@@ -2269,6 +2269,32 @@ void get_yx_ac(u8 index, u32 type)
     gb_yx_ac = true;
 }
 
+/**
+ * @brief          检测频率跟踪投退是否有变化
+ * @author         lch (lch_work@foxmail.com)
+ * @version        1.0
+ * @date           20260106
+ * @return         * void
+ * @retval         none
+ * 
+ * @warning        none
+ * @note           none
+ */
+void check_shmdata_change(void)
+{
+    static uint8_t suc_freq_track = 0xff;
+    struct t_shmdata_cvalue t_cvale = {0};
+
+    if (0xff == suc_freq_track)
+    {
+        t_cvale.uc_freq_track = pRunSet->bTT_FREQ;
+    }
+    else if (suc_freq_track != pRunSet->bTT_FREQ)
+    {
+        shm_packet_write_v2(SHM_ADDR_R_MACHINEPARAM, (uint8_t *)&t_cvale, sizeof(struct t_shmdata_cvalue));
+    }
+}
+
 /**************************************************************************
 函数名称:MakeRunSet
 函数版本:1.00

+ 1 - 0
dtu/dtu_main_t536/app/set.h

@@ -1998,6 +1998,7 @@ void create_set_data_txt(void); // 
 void get_yx_ac(u8 index, u32 type);
 WORD GetCstValForwardAddr(const BYTE type, const int index);
 extern DWORD GetSetSQR(float ff, float fk);
+extern void check_shmdata_change(void);
 
 #endif //__SET_H
 //========================== ±¾Îļþ½áÊø =============================

+ 2 - 0
dtu/dtu_main_t536/main_mod.c

@@ -336,6 +336,8 @@ int di_do_adc (void *unused)
     t_rv_msts.ull_timestamp = milliseconds;
     shm_packet_write_v2(SHM_ADDR_R_TIMESTAMP, (uint8_t *)&t_rv_msts, sizeof(struct t_shmdata_timestamp));
 
+    check_shmdata_change();
+
     // 装置类型us_machine_type (分布式:1,集中式:2)
     struct t_shmdata_machine_type t_rv_mt = {0};
     t_rv_mt.us_machine_type = 1;