瀏覽代碼

增加 : led函数;

lch 5 月之前
父節點
當前提交
ba0942b9b4

+ 2 - 1
README.md

@@ -56,4 +56,5 @@
 01. 修改 : 对接开入量数据;
 02. 增加 : ch423s驱动;
 03. 修改 : 按照南网文件修改自动化参数;
-04. 增加 : 遥信点表点号;
+04. 增加 : 遥信点表点号;
+05. 增加 : led函数;

+ 1 - 1
app_public/fuxi_public/fuxi_bsp/include/bspconfig.h

@@ -39,7 +39,7 @@
 #define EQU_SLOT_AC_BEGIN06		0 // 定义6卡槽DTUv5中AC采样板的卡槽开始位置
 
 //----------------------------- 线路开关  ---------------------------
-#define SWITCH_NUM_MAX			6  // 开关数量,本装置实际支持的开关数,不包含级联部分。
+#define SWITCH_NUM_MAX			1  // 6  // 开关数量,本装置实际支持的开关数,不包含级联部分。
 #define SWITCH_NUM_EXT			31 // 扩展开关数量,后面部分供级联用。
 #define SWITCH_NUM_EXT_PUB		32 // 扩展开关数量加公共部分,后面部分供级联用。此值不能超过32
 

+ 2 - 1
app_public/fuxi_public/fuxi_bsp/include/ch423s.h

@@ -30,8 +30,9 @@
 
 /***** º¯Êý¶ÔÍâÉùÃ÷ *****/
 
+extern int ch423sio_updata_status_ontime(void);
 extern int ch423sio_set_io(uint8_t _uc_idx, uint8_t _uc_state);
-extern int ch423sio_init_dev(void)
+extern int ch423sio_init_dev(void);
 extern int ch423sio_exit_dev(void);
 
 

+ 4 - 37
app_public/fuxi_public/fuxi_bsp/include/equ.h

@@ -39,29 +39,12 @@
 #define BOARD_TYPE_MAIN				2   // 主控板 
 #define BOARD_TYPE_DO				3   // 开入板
 #define BOARD_TYPE_DI				4   // 开出板
-#define BOARD_TYPE_AUX				5   // 
+#define BOARD_TYPE_AUX				5   // 辅助板
 #define BOARD_TYPE_AC				6   // 采样板
 #define BOARD_TYPE_ZT				7	// 状态板
 #define BOARD_TYPE_ZH				8	// 综合板
 #define BOARD_TYPE_KZ				9	// 控制板
 
-#define BOARD_TYPE_FTUMAIN			11	//GH_F308 主板,DI、DO、AI
-#define BOARD_TYPE_FTUKZ1			12	//GH_F308 控制板,仅占板卡位置,10DO, 3DI, 8AC
-#define BOARD_TYPE_DFTU_KC00		13	//DFTU 二遥DFTU控制板,,00DO, 12DI, 16AC
-
-#define BOARD_TYPE_DFTU_KC08		14	//DFTU 三遥DFTU控制板,,08DO, 3DI, 10AC
-#define BOARD_TYPE_DFTU_KC10		15	//DFTU 三遥DFTU控制板,,10DO, 3DI, 10AC
-#define BOARD_TYPE_FBDTU_KZ1		16	//一体式分布式DTU控制板
-#define BOARD_TYPE_FBDTU_KZ2		17	//后拔插分布式DTU控制板
-#define BOARD_TYPE_FBDTU_MAIN1		18	//分布式DTU主板
-#define BOARD_TYPE_FBDTU_MAIN		19	//分布式DTU主板
-
-#define BOARD_TYPE_DI60				10	//标准化DTU开入拓展板
-#define BOARD_TYPE_DO_2				20	//标准化DTU开出拓展板
-
-#define BOARD_TYPE_FBC_V1           25  // 国网测控控制板
-#define BOARD_TYPE_FBM_V1           26	// 国网管理控制板
-
 #define BOARD_TYPE_FUXI_DI          30   // 开入板
 #define BOARD_TYPE_FUXI_DO          31   // 开出板
 #define BOARD_TYPE_FUXI_AC          32   // 采样板
@@ -74,20 +57,8 @@
 #define BOARD_TYPE_LCD_24LED		68	// 液晶面板 24个双色灯
 #define BOARD_TYPE_LCD_26LED		70	// 液晶面板 26个双色灯
 
-#define BOARD_TYPE_FTU				100	//FTU主板
-#define BOARD_TYPE_FTU_V2		    103 //FTU_V2
-#define BOARD_TYPE_FTU_END			130	
-
-#define BOARD_TYPE_HAT_FTU_LCD		63///120	// 新罩式FTU面板
-
-#define BOARD_STATUS_POWERUP		0X00
-#define BOARD_STATUS_CONFIG_DO		0X01
-#define BOARD_STATUS_CONFIG_DI		0X02
-#define BOARD_STATUS_NORMAL			0X03
-#define BOARD_STATUS_UPDATE			0X04
-#define BOARD_STATUS_CONFIG_WAIT	0X07
-#define BOARD_STATUS_CONFIG_LED		0X08
-#define BOARD_STATUS_CONFIG_DO_2	0X09 //DFTU 开出拓展板状态
+#define LED_NULL		(-1)
+#define LED_MAX_NUM		(24)
 
 //CT PT标度,1V或1A对应的码值
 enum
@@ -117,10 +88,6 @@ enum
 };
 
 
-#define LED_NULL		(-1)
-#define LED_MAX_NUM		(16*4 + 8)
-
-
 /*------------------------------ 类型结构 -------------------------------------
 */
 //装置配置文件头
@@ -247,7 +214,7 @@ struct board_info
 
 struct sn
 {
-	s8 sw;
+	s8 sw; // 类型 0公共 1开关1
 	s8 no;
 };
 

+ 10 - 10
app_public/fuxi_public/fuxi_bsp/source/ch423s.c

@@ -1,5 +1,5 @@
 /**
- * @file           ch423s.h
+ * @file           ch423s.c
  * @brief
  * @author         lch (lch_work@foxmail.com)
  * @version        1.0
@@ -13,8 +13,6 @@
  * <tr><td>20251224    <td>2.0             <td>test            <td>内容
  * </table>
  */
-#ifdef IO_CHIP_CH423S
-
 #include <fcntl.h>
 #include <sys/ioctl.h>
 #include <linux/i2c.h>
@@ -22,6 +20,8 @@
 #include <errno.h>
 #include "head.h"
 
+#if defined IO_CHIP_CH423S
+
 /*  设置系统参数命令 */
 #define CH423_SYS_CMD 0x48 // 设置系统参数命令,默认方式
 #define BIT_SLEEP 0x30     // 低功耗睡眠控制 0正常工作 1睡眠模式
@@ -173,21 +173,21 @@ int ch423sio_updata_status_ontime(void)
     uint8_t uca_state[3] = {0};
     int l_ret = 0;
 
-    if (bsp_ustimer_get_duration(mtll_updata_ch423s_timer) < (USTIMER_MS * 50) || sl_ch423s_fd < 0)
-    {
-        return -1;
-    }
+    // if (bsp_ustimer_get_duration(mtll_updata_ch423s_timer) < (USTIMER_MS * 50) || sl_ch423s_fd < 0)
+    // {
+    //     return -1;
+    // }
 
     mtll_updata_ch423s_timer = bsp_ustimer_get_origin();
 
     uca_state[0] = (uint8_t)(sul_io_status & 0xff);
-    (0 = ch423_write_data(CH423_OC_L_CMD, uca_state[0])) ? l_ret : l_ret--;
+    (0 == ch423_write_data(CH423_OC_L_CMD, uca_state[0])) ? l_ret : l_ret--;
 
     uca_state[1] = (uint8_t)((sul_io_status >> 8) & 0xff);
-    (0 = ch423_write_data(CH423_OC_H_CMD, uca_state[1])) ? l_ret : l_ret--;
+    (0 == ch423_write_data(CH423_OC_H_CMD, uca_state[1])) ? l_ret : l_ret--;
 
     uca_state[2] = (uint8_t)((sul_io_status >> 16) & 0xff);
-    (0 = ch423_write_data(CH423_SET_IO_CMD, uca_state[2])) ? l_ret : l_ret--;
+    (0 == ch423_write_data(CH423_SET_IO_CMD, uca_state[2])) ? l_ret : l_ret--;
 
     return l_ret;
 }

+ 0 - 8
app_public/fuxi_public/fuxi_bsp/source/dido.c

@@ -1306,14 +1306,6 @@ int dido_auto_test(char *buf, int num)
     rt_printf("g_brd_type_kz = %lu\r\n ", g_brd_type_kz);
     rt_printf("g_equ_config->do_num = %lu\r\n ", g_equ_config->do_num);
 
-    for (i = 0; i < (int)sizeof(brd_v3); i++)
-    {
-        if (g_brd_type_kz + BOARD_TYPE_DFTU_KC00 == brd_v3[i]) //
-        {
-            rt_printf("auto_test_for_v3\r\n ");
-            return (dido_auto_test_for_v3(buf, num));
-        }
-    }
     rt_printf("auto_test_for_v4\r\n ");
     // bkc6close=check_board_kc6_close(1,6);
 

+ 18 - 11
dtu/dtu_main_t536/app/Maintain.c

@@ -1095,9 +1095,8 @@ int Maintain_Manage(u8 *buf, u32 len, u8 *cmd_buf)
         cmd_buf[2] = buf[2];
         slot = buf[2];
 
-        if ((slot >= 16) || !(g_board_info[slot].type == BOARD_TYPE_FTUKZ1 || (g_board_info[slot].type >= BOARD_TYPE_DFTU_KC00 && g_board_info[slot].type < BOARD_TYPE_DFTU_KC00 + BOARD_TYPE_KZ_NUM) || g_board_info[slot].type == BOARD_TYPE_AC) // 只有7到10板有零漂
-            || (g_board_info[slot].type == BOARD_TYPE_FBDTU_MAIN) || (g_board_info[slot].type == BOARD_TYPE_FBDTU_MAIN1)
-
+        if ((slot >= 16) || !(g_board_info[slot].type == BOARD_TYPE_AC ||
+                              g_board_info[slot].type == BOARD_TYPE_FUXI_AC) // 零漂
         )
         {
             cmd_buf[1] |= MAINTAIN_NAK;
@@ -1563,6 +1562,7 @@ int Maintain_Manage(u8 *buf, u32 len, u8 *cmd_buf)
         cmd_len = 2;
     }
     break;
+
     case MS_BOARD_VERSION:
     { // 主板版本
 
@@ -1847,6 +1847,7 @@ int Maintain_Manage(u8 *buf, u32 len, u8 *cmd_buf)
         cmd_len = 36;
     }
     break;
+
     case MS_BOARD_MEASURE:
     { // 板卡测量值刷新
         int slot, chn;
@@ -1854,9 +1855,8 @@ int Maintain_Manage(u8 *buf, u32 len, u8 *cmd_buf)
         slot = buf[2];
         cmd_buf[2] = slot;
 
-        if ((slot >= 16) || !(g_board_info[slot].type == BOARD_TYPE_FTUKZ1 || (g_board_info[slot].type >= BOARD_TYPE_DFTU_KC00 && g_board_info[slot].type < BOARD_TYPE_DFTU_KC00 + BOARD_TYPE_KZ_NUM) || g_board_info[slot].type == BOARD_TYPE_AC) // 只有7到10板有零漂
-            || (g_board_info[slot].type == BOARD_TYPE_FBDTU_MAIN) || (g_board_info[slot].type == BOARD_TYPE_FBDTU_MAIN1)
-
+        if ((slot >= 16) || !(g_board_info[slot].type == BOARD_TYPE_AC ||
+                              g_board_info[slot].type == BOARD_TYPE_FUXI_AC) // 有零漂
         )
         {
             cmd_buf[1] |= MAINTAIN_NAK;
@@ -1917,6 +1917,7 @@ int Maintain_Manage(u8 *buf, u32 len, u8 *cmd_buf)
         cmd_buf[1] |= MAINTAIN_ACK;
     }
     break;
+
     case MS_BOARD_CALIBRATION:
     { // 板卡校准系数上传
 
@@ -1927,8 +1928,9 @@ int Maintain_Manage(u8 *buf, u32 len, u8 *cmd_buf)
         board = buf[2];
         cmd_buf[2] = board;
 
-        if ((board >= 16) || !(g_board_info[board].type == BOARD_TYPE_FTUKZ1 || (g_board_info[board].type >= BOARD_TYPE_DFTU_KC00 && g_board_info[board].type < BOARD_TYPE_DFTU_KC00 + BOARD_TYPE_KZ_NUM) || g_board_info[board].type == BOARD_TYPE_AC) // 只有7到10板有零漂
-            || (g_board_info[board].type == BOARD_TYPE_FBDTU_MAIN) || (g_board_info[board].type == BOARD_TYPE_FBDTU_MAIN1))
+        if ((board >= 16) || !(g_board_info[board].type == BOARD_TYPE_AC ||
+                               g_board_info[board].type == BOARD_TYPE_FUXI_AC) // 零漂
+        )
         {
             cmd_buf[1] |= MAINTAIN_NAK;
             cmd_buf[2] = MAINTAIN_ERR_NSLOT;
@@ -1966,6 +1968,7 @@ int Maintain_Manage(u8 *buf, u32 len, u8 *cmd_buf)
         cmd_buf[1] |= MAINTAIN_ACK;
     }
     break;
+
     case MS_DEFAULT_CALIBRATION:
     { // 恢复默认校准系数
 
@@ -1987,6 +1990,7 @@ int Maintain_Manage(u8 *buf, u32 len, u8 *cmd_buf)
         cmd_len = 2;
     }
     break;
+
     case MS_SAMPLE_CALIBRATION:
     { // 整机采样校准
         int ret;
@@ -2054,6 +2058,7 @@ int Maintain_Manage(u8 *buf, u32 len, u8 *cmd_buf)
         }
     }
     break;
+
     case MS_DEFAULT:
     { // 恢复出厂设置
 
@@ -2506,9 +2511,9 @@ int Maintain_Manage(u8 *buf, u32 len, u8 *cmd_buf)
         cmd_buf[2] = buf[2];
         board = buf[3];
         cmd_buf[3] = board;
-        if ((board >= 16) || !(g_board_info[board].type == BOARD_TYPE_FTUKZ1 || (g_board_info[board].type >= BOARD_TYPE_DFTU_KC00 && g_board_info[board].type < BOARD_TYPE_DFTU_KC00 + BOARD_TYPE_KZ_NUM) || g_board_info[board].type == BOARD_TYPE_AC) // 只有7到10板有零漂
-            || (g_board_info[board].type == BOARD_TYPE_FBDTU_MAIN) || (g_board_info[board].type == BOARD_TYPE_FBDTU_MAIN1))
-
+        if ((board >= 16) || !(g_board_info[board].type == BOARD_TYPE_AC ||
+                               g_board_info[board].type == BOARD_TYPE_FUXI_AC) // 有零漂
+        )
         {
             cmd_buf[1] |= MAINTAIN_NAK;
             cmd_buf[4] = MAINTAIN_ERR_NSLOT;
@@ -2728,6 +2733,7 @@ int Maintain_Manage(u8 *buf, u32 len, u8 *cmd_buf)
         break;
     }
     break;
+
     case MS_WAVE_OK:
     {
         if (rcd_check_ok(SWITCH_NUM_MAX) != 1)
@@ -2970,6 +2976,7 @@ int Maintain_Manage(u8 *buf, u32 len, u8 *cmd_buf)
         cmd_len = 4;
     }
     break;
+
     case MS_SET_MTPWD:
     {
         // 设置密码

+ 4 - 0
dtu/dtu_main_t536/app/SOE.c

@@ -1174,6 +1174,10 @@ void soe_log(EVENT_STRUCT *er)
             strcpy(&buf[len], psoe->strName);
 #endif
             buf += strlen(buf);
+#if (1) /* 显示值 直接按照上送值显示 lch */
+            sprintf(buf,"(%d)", er->ev_value);
+			buf += strlen(buf);
+#endif
             for (i = 0; i < 3; i++)
             {
                 u8 index = (psoe->Attrib[i] & 0x1f);

+ 2 - 0
dtu/dtu_main_t536/app/Sys.c

@@ -265,6 +265,8 @@ void SystemInit(void)
     FA_Init();
 #if !defined CPU_FUXI /* ²»Ö§³ÖÕâ¸ölcd lch 2025Äê12ÔÂ18ÈÕ16:38:52 */
     lcdcomm_init();
+#else
+    led_init_hmi();
 #endif
     ReadUqua();
     fa_g_init();

+ 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_20251225_003" // NW2022意思是按照22年南网标准文件(总调)来做的
+#define DEVICE_VERSION_INFORMATION "NW24_20251226_001" // NW2022意思是按照22年南网标准文件(总调)来做的
 
 #ifdef ___defineSys____//!!!此宏定义不开启,以下宏不直接开启,只用于注释显示
 

+ 144 - 137
dtu/dtu_main_t536/app/equ.c

@@ -342,64 +342,66 @@ int equ_init_file_config(void)
 */
 int equ_led_init(void)
 {
-	int i,j;
+    int i, j, slot, index;
 
-	// 默认没有配置任何灯
-	for(i=0;i<EQU_SLOT_NUM_MAX;i++)
-	{
-		g_led_slot[i].num = 0;
-		for(j=0;j<LED_MAX_NUM;j++)
-		{
-			g_led_slot[i].sn[j].no = LED_NULL;
-		}
-	}
+    // 默认没有配置任何灯
+    for (i = 0; i < EQU_SLOT_NUM_MAX; i++)
+    {
+        g_led_slot[i].num = 0;
+        for (j = 0; j < LED_MAX_NUM; j++)
+        {
+            g_led_slot[i].sn[j].no = LED_NULL;
+        }
+    }
 
 #if 0
-	// 初始化公共灯
-	for(i=0; i< PUB_LED_NUM; i++)
-	{
-		index = g_sw_pub.led_cfg_index[i];
-		if ((index != INDEX_INVALLID))
-		{
-			slot  = g_equ_config_do[index].slot;
-			index = g_equ_config_do[index].index;
-			
-			g_led_slot[slot].sn[index].sw = 0;
-			g_led_slot[slot].sn[index].no = i;
-
-			index++;
-			if(index > g_led_slot[slot].num)
-			{
-				g_led_slot[slot].num = index;
-			}
-		}
-	}
-	
-	// 初始化开关灯
-	for(sw=0; sw<SWITCH_NUM_MAX; sw++)
-	{
-		for(i=0; i< SW_LED_NUM; i++)
-		{
-			index = g_sw[sw].led_cfg_index[i];
-			if ((index != INDEX_INVALLID))
-			{
-				slot  = g_equ_config_do[index].slot;
-				index = g_equ_config_do[index].index;
-				
-				g_led_slot[slot].sn[index].sw = sw;
-				g_led_slot[slot].sn[index].no = i;
-
-				index++;
-				if(index > g_led_slot[slot].num)
-				{
-					g_led_slot[slot].num = index;
-				}
-			}
-		}
-	}
+    // 初始化公共灯
+    for (i = 0; i < PUB_LED_NUM; i++)
+    {
+        index = g_sw_pub.led_cfg_index[i];
+        if ((index != INDEX_INVALLID))
+        {
+            slot = g_equ_config_do[index].slot;
+            index = g_equ_config_do[index].index;
+
+            g_led_slot[slot].sn[index].sw = 0;
+            g_led_slot[slot].sn[index].no = i;
+            dp_info_h_c("i = %d, slot = %d, index = %d", i, slot, index);
+
+            index++;
+            if (index > g_led_slot[slot].num)
+            {
+                g_led_slot[slot].num = index;
+            }
+        }
+    }
+
+    // 初始化开关灯
+    for (int sw = 0; sw < SWITCH_NUM_MAX; sw++)
+    {
+        for (i = 0; i < SW_LED_NUM; i++)
+        {
+            index = g_sw[sw].led_cfg_index[i];
+            if ((index != INDEX_INVALLID))
+            {
+                slot = g_equ_config_do[index].slot;
+                index = g_equ_config_do[index].index;
+                dp_info_h_c("i = %d, slot = %d, index = %d, sw = %d", i, slot, index, sw);
+
+                g_led_slot[slot].sn[index].sw = sw;
+                g_led_slot[slot].sn[index].no = i;
+
+                index++;
+                if (index > g_led_slot[slot].num)
+                {
+                    g_led_slot[slot].num = index;
+                }
+            }
+        }
+    }
 #endif
 
-	return 0;
+    return 0;
 }
 
 int equ_config_check(void)
@@ -413,7 +415,7 @@ int equ_config_check(void)
 		BOARD_TYPE_FUXI_DO,
 		BOARD_TYPE_FUXI_AC,
 		BOARD_TYPE_FUXI_24LED,
-		-1,
+		BOARD_TYPE_MAIN,
 		-1,
 		-1,
 		-1,
@@ -451,103 +453,108 @@ int equ_config_check(void)
 */
 int equ_init(void)
 {
-	int i,ret;
-	struct timespec ts;
+    int i, ret;
+    struct timespec ts;
 
-	// 得到装置地址和硬件版本
-	g_slot_addr = gpio_get_addr();
-	g_hw_version = gpio_get_version();
-	rt_printf("g_hw_version=0x%02x, g_slot_addr=0x%02x.\r\n",g_hw_version,g_slot_addr);
+    // 得到装置地址和硬件版本
+    g_slot_addr = gpio_get_addr();
+    g_hw_version = gpio_get_version();
+    rt_printf("g_hw_version=0x%02x, g_slot_addr=0x%02x.\r\n", g_hw_version, g_slot_addr);
 
-	// 装置板卡资源
-	ret = equ_init_file_brd_res();
-	if(ret != 0)
-	{
-		rt_err_set(ERR_CODE_EQU_RESOURCE,0);
-		dp_err_n_c_rt("equ_init_file_resource err(ret=%d)",ret);
-		return -1;
-	}
+    // 装置板卡资源
+    ret = equ_init_file_brd_res();
+    if (ret != 0)
+    {
+        rt_err_set(ERR_CODE_EQU_RESOURCE, 0);
+        dp_err_n_c_rt("equ_init_file_resource err(ret=%d)", ret);
+        return -1;
+    }
 
-	// 装载装置配置
-	ret = equ_init_file_config();
-	if(ret != 0)
-	{
-		rt_err_set(ERR_CODE_EQU_CONFIG,0);
-		dp_err_n_c_rt("equ_init_file_config err(ret=%d)",ret);
-		return -2;
-	}
+    // 装载装置配置
+    ret = equ_init_file_config();
+    if (ret != 0)
+    {
+        rt_err_set(ERR_CODE_EQU_CONFIG, 0);
+        dp_err_n_c_rt("equ_init_file_config err(ret=%d)", ret);
+        return -2;
+    }
 
-	// 初始化板卡信息
-	memset(g_board_info,0,sizeof(g_board_info));
-	clk_time_get(&ts);
-	for(i=0; i<g_equ_config->equ_slot_num; i++)
-	{
-		if(equ_info_brd_type(g_equ_config->brd_type[i]) == 0)
-		{
-			equ_led_init();
-			dp_err_n_c_rt("板卡类型不存在(type=%d)!",g_equ_config->brd_type[i]);
-			return -3;
-		}
-		
-		g_board_info[i].type = g_equ_config->brd_type[i];
-		g_board_info[i].di_num = _equ_get_di_num(i);
-		g_board_info[i].do_num = _equ_get_do_num(i);
-		g_board_info[i].ac_num = _equ_get_ac_num(i);
+    // 初始化板卡信息
+    memset(g_board_info, 0, sizeof(g_board_info));
+    clk_time_get(&ts);
+    for (i = 0; i < g_equ_config->equ_slot_num; i++)
+    {
+        if (equ_info_brd_type(g_equ_config->brd_type[i]) == 0)
+        {
+            equ_led_init();
+            dp_err_n_c_rt("板卡类型不存在(type=%d)!", g_equ_config->brd_type[i]);
+            return -3;
+        }
 
-        if((g_board_info[i].type < BOARD_TYPE_GROUP_RS) 
-			&& (g_board_info[i].di_num || g_board_info[i].do_num || g_board_info[i].ac_num))
-		{
-			// 板卡需要周期性的检查是否正常工作。
-			g_board_info[i].is_check = 1;
-		}
+        g_board_info[i].type = g_equ_config->brd_type[i];
+        g_board_info[i].di_num = _equ_get_di_num(i);
+        g_board_info[i].do_num = _equ_get_do_num(i);
+        g_board_info[i].ac_num = _equ_get_ac_num(i);
 
-		g_board_info[i].us0 = ustimer_get_origin();
-		g_board_info[i].is_ok = 1;
+        if (0 != g_board_info[i].di_num)
+            dp_info_nt("g_board_info[%d].di_num = %d ", i, g_board_info[i].di_num);
+        if (0 != g_board_info[i].do_num)
+            dp_info_nt("g_board_info[%d].do_num = %d ", i, g_board_info[i].do_num);
+        if (0 != g_board_info[i].ac_num)
+            dp_info_nt("g_board_info[%d].ac_num = %d ", i, g_board_info[i].ac_num);
 
-		// 主板信息
-		if(g_board_info[i].type == BOARD_TYPE_MAIN || g_board_info[i].type == BOARD_TYPE_FTUMAIN  || g_board_info[i].type == BOARD_TYPE_FBDTU_MAIN|| g_board_info[i].type == BOARD_TYPE_FBDTU_MAIN1)
-		{
-			g_board_info[i].crc = m_CodeCrc;
-			g_board_info[i].version = VER_NUM;
-		}
-	}
+        if ((g_board_info[i].type < BOARD_TYPE_GROUP_RS) && (g_board_info[i].di_num || g_board_info[i].do_num || g_board_info[i].ac_num))
+        {
+            // 板卡需要周期性的检查是否正常工作。
+            g_board_info[i].is_check = 1;
+        }
 
-	// 模拟通道配置
-	memset(g_equ_adc_inv,0,sizeof(g_equ_adc_inv));
-	for(i=0; i<g_equ_config->ac_num; i++)
-	{
-		u32 adc;
-		adc = equ_get_ac_channel(g_equ_config_ac[i].slot,g_equ_config_ac[i].index);
-		if (adc<CFG_ADC_CHANNEL)
-		{
-			// 是否配置
-			if(g_equ_config_ac[i].type)
-			{
-				g_equ_adc_config[adc] = 1;
-			}
-			
-			// 是否取反
-			if (g_equ_config_ac[i].is_ct_inverse)
-			{
-				g_equ_adc_inv[g_equ_adc_inv_num++] = adc;			
-			}
+        g_board_info[i].us0 = ustimer_get_origin();
+        g_board_info[i].is_ok = 1;
 
-		}
-	}
+        // 主板信息
+        if (g_board_info[i].type == BOARD_TYPE_MAIN)
+        {
+            g_board_info[i].crc = m_CodeCrc;
+            g_board_info[i].version = VER_NUM;
+        }
+    }
 
-	// 初始化灯
-	equ_led_init();
+    // 模拟通道配置
+    memset(g_equ_adc_inv, 0, sizeof(g_equ_adc_inv));
+    for (i = 0; i < g_equ_config->ac_num; i++)
+    {
+        u32 adc;
+        adc = equ_get_ac_channel(g_equ_config_ac[i].slot, g_equ_config_ac[i].index);
+        if (adc < CFG_ADC_CHANNEL)
+        {
+            // 是否配置
+            if (g_equ_config_ac[i].type)
+            {
+                g_equ_adc_config[adc] = 1;
+            }
+
+            // 是否取反
+            if (g_equ_config_ac[i].is_ct_inverse)
+            {
+                g_equ_adc_inv[g_equ_adc_inv_num++] = adc;
+            }
+        }
+    }
 
-	ret = equ_config_check();
-	if(ret)
-	{
-		dp_err_n_c_rt("%s:ret=%d",__func__,ret);
-		return -4;
-	}
+    // 初始化灯
+    equ_led_init();
+
+    ret = equ_config_check();
+    if (ret)
+    {
+        dp_err_n_c_rt("%s:ret=%d", __func__, ret);
+        return -4;
+    }
 
     equ_init_di();
 
-	return 0;
+    return 0;
 }
 
 /******************************************************************************

文件差異過大導致無法顯示
+ 809 - 719
dtu/dtu_main_t536/app/led.c


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

@@ -57,7 +57,6 @@ void led_set_sw(u8 sw,u8 no, u8 st);
 void led_polling_app(void);
 int led_polling_5ms(void);
 int led_to_hmi(void);
-void led_to_sub_board(void);
 
 u8 * led_aux_test(u32 st);
 

+ 2 - 0
dtu/dtu_main_t536/app/main.c

@@ -175,6 +175,8 @@ int app_main (void *unused)
     msleep(100);
     factor_printf();
     msleep(100);
+    led_info_printf();
+    msleep(100);
     extern int test_kc_function(void);
     test_kc_function();
 #endif

+ 4 - 4
dtu/dtu_main_t536/app/switch.c

@@ -64,9 +64,9 @@ const s8 *g_sw_di_name[SW_DI_NUM] =
     "隔离刀分位",
     "接地刀合位",
     "接地刀分位",
-    "气压告警",
-    "气压闭锁", // 10
-    "自动化投",
+    "气压告警",
+    "气压闭锁", // 10
+    "自动化投退",
     "常规保护",
     "集中式",
     "重合闸投入",
@@ -774,7 +774,7 @@ int sw_init(void)
             {
                 g_sw_pub.do_cfg_index[type] = i;
             }
-            else if (type < PUB_DO_NUM + PUB_LED_NUM)
+            else if (type < PUB_DO_LED_NUM)
             {
                 s16 slot, index;
 

+ 3 - 3
dtu/dtu_main_t536/app/switch.h

@@ -58,9 +58,9 @@ enum
     SW_DI_GLDZ_FW,   // 隔离刀分位
     SW_DI_JDDZ_HW,   // 接地刀合位
     SW_DI_JDDZ_FW,   // 接地刀分位
-    SW_DI_QYD_GJ,    // SF6气压告警
-    SW_DI_QYD_BS,    // SF6气压闭锁
-    SW_DI_BHZTT,     // 自动化投
+    SW_DI_QYD_GJ,    // SF6气压告警
+    SW_DI_QYD_BS,    // SF6气压闭锁
+    SW_DI_BHZTT,     // 自动化投退
     SW_DI_BHTT,      // 常规保护
     SW_DI_JZS_TT,    // 集中式
     SW_DI_CHZ,       // 重合闸投入

部分文件因文件數量過多而無法顯示