|  |  |  | @ -333,12 +333,13 @@ int32_t _dau_reg_write_port(uint32_t port) | 
		
	
		
			
				|  |  |  |  |     /* 故障校准系数 */ | 
		
	
		
			
				|  |  |  |  |     addr =  (port + 1) * DAU_REG_ADDR_PORT_BASE + DAU_REG_ADDR_PORT_FAULT_BASE; | 
		
	
		
			
				|  |  |  |  |     //*temp = dev_config.fault_base[i];
 | 
		
	
		
			
				|  |  |  |  |     *temp = 34533; | 
		
	
		
			
				|  |  |  |  |     //*temp = 34533;
 | 
		
	
		
			
				|  |  |  |  |     *temp = 34547; | 
		
	
		
			
				|  |  |  |  |     E_RETURN(_dau_reg_write(addr, sizeof(uint16_t))); | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     addr =  (port + 1) * DAU_REG_ADDR_PORT_BASE + DAU_REG_ADDR_PORT_FAULT_ADJ; | 
		
	
		
			
				|  |  |  |  |     //*temp = dev_config.fault_adj[i];
 | 
		
	
		
			
				|  |  |  |  |     *temp = 52428; | 
		
	
		
			
				|  |  |  |  |     *temp = 32768; | 
		
	
		
			
				|  |  |  |  |     E_RETURN(_dau_reg_write(addr, sizeof(uint16_t))); | 
		
	
		
			
				|  |  |  |  |      | 
		
	
		
			
				|  |  |  |  |     return rv; | 
		
	
	
		
			
				
					|  |  |  | @ -466,24 +467,6 @@ void _dau_utc(void) | 
		
	
		
			
				|  |  |  |  |         _dau_reg_write(DAU_REG_ADDR_GCUR, sizeof(uint32_t)); | 
		
	
		
			
				|  |  |  |  |         vty_print("#D Change %d %d %d %d\r\n", dau_ctrl.reg_global.GUR, dau_ctrl.reg_global.GNR, dau_ctrl.is_utc_valid, dau_ctrl.utc); | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     /* 开启故障定位 */ | 
		
	
		
			
				|  |  |  |  | #if 0 | 
		
	
		
			
				|  |  |  |  |     if (dau_ctrl.is_utc_valid && FALSE == is_start) | 
		
	
		
			
				|  |  |  |  |     { | 
		
	
		
			
				|  |  |  |  |         vty_print("#D Start fault\r\n"); | 
		
	
		
			
				|  |  |  |  |         is_start = TRUE; | 
		
	
		
			
				|  |  |  |  |         /* 触发阈值 */ | 
		
	
		
			
				|  |  |  |  |         *temp = 0x4000; | 
		
	
		
			
				|  |  |  |  |         _dau_reg_write(DAU_REG_ADDR_GCFTTR, sizeof(uint16_t)); | 
		
	
		
			
				|  |  |  |  |         /* 开启 */ | 
		
	
		
			
				|  |  |  |  |         *temp = 1; | 
		
	
		
			
				|  |  |  |  |         _dau_reg_write(0xf, sizeof(uint16_t)); | 
		
	
		
			
				|  |  |  |  |         osDelay(3000); | 
		
	
		
			
				|  |  |  |  |         *temp = 0; | 
		
	
		
			
				|  |  |  |  |         _dau_reg_write(0xf, sizeof(uint16_t)); | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  | #endif | 
		
	
		
			
				|  |  |  |  | } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | /* description: 寄存器触发波形采集开始
 | 
		
	
	
		
			
				
					|  |  |  | @ -840,18 +823,26 @@ void _dau_power_calculate(DAU_SOURCE_E source) | 
		
	
		
			
				|  |  |  |  |     uint64_t square_sum = 0; | 
		
	
		
			
				|  |  |  |  |     int32_t mean = 0; | 
		
	
		
			
				|  |  |  |  |     float temp = 0; | 
		
	
		
			
				|  |  |  |  |     int16_t min = 32767; | 
		
	
		
			
				|  |  |  |  |     int16_t max = -32768; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     /* 遍历通道, 计算有效值 */ | 
		
	
		
			
				|  |  |  |  |     for(ch = 0; ch < DAU_PORT_POWER_CNT; ch++) | 
		
	
		
			
				|  |  |  |  |     { | 
		
	
		
			
				|  |  |  |  |         /* 计算所有值的算术平均值 */ | 
		
	
		
			
				|  |  |  |  |         mean = 0; | 
		
	
		
			
				|  |  |  |  |         min = 32767; | 
		
	
		
			
				|  |  |  |  |         max = -32768; | 
		
	
		
			
				|  |  |  |  |         for(i = 0; i < DAU_POWER_DATE_LEN; i++) | 
		
	
		
			
				|  |  |  |  |         { | 
		
	
		
			
				|  |  |  |  |             if (val[ch][i] < min) | 
		
	
		
			
				|  |  |  |  |                 min = val[ch][i]; | 
		
	
		
			
				|  |  |  |  |             if (val[ch][i] > max) | 
		
	
		
			
				|  |  |  |  |                 max = val[ch][i]; | 
		
	
		
			
				|  |  |  |  |             mean += val[ch][i]; | 
		
	
		
			
				|  |  |  |  |         } | 
		
	
		
			
				|  |  |  |  |         mean = mean / DAU_POWER_DATE_LEN; | 
		
	
		
			
				|  |  |  |  |         vty_print("#DP%d %d ", ch, mean); | 
		
	
		
			
				|  |  |  |  |         vty_print("#DP%d %d %d %d", ch, mean, min, max); | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |         /* 遍历通道所有值, 求和, 并计算出最大值和最小值. */ | 
		
	
		
			
				|  |  |  |  |         square_sum = 0; | 
		
	
	
		
			
				
					|  |  |  | @ -896,6 +887,7 @@ void _dau_power_calculate(DAU_SOURCE_E source) | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |      | 
		
	
		
			
				|  |  |  |  |     /* 计算工频录波每个点的电流值 */ | 
		
	
		
			
				|  |  |  |  | #if 0 | 
		
	
		
			
				|  |  |  |  |     if (DAU_SOURCE_FAULT == source | 
		
	
		
			
				|  |  |  |  |         || IS_MONITOR_BIT_SET(dau_ctrl.col_flag, DAU_COL_FLAG_REG_POWER)) | 
		
	
		
			
				|  |  |  |  |     { | 
		
	
	
		
			
				
					|  |  |  | @ -907,6 +899,7 @@ void _dau_power_calculate(DAU_SOURCE_E source) | 
		
	
		
			
				|  |  |  |  |             } | 
		
	
		
			
				|  |  |  |  |         } | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  | #endif | 
		
	
		
			
				|  |  |  |  | } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | /* dau data base 自动计算. */ | 
		
	
	
		
			
				
					|  |  |  | @ -990,6 +983,7 @@ int32_t _dau_wave_col_trigger_by_fault(void) | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  |     dau_ctrl.fault_utc = dau_ctrl.reg_global.GFTUR; | 
		
	
		
			
				|  |  |  |  |     dau_ctrl.fault_ns = dau_ctrl.reg_global.GFTNR; | 
		
	
		
			
				|  |  |  |  |     vty_print("#D utc %d.%d\r\n", dau_ctrl.fault_utc, dau_ctrl.fault_ns); | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     /* 擦除 flash */ | 
		
	
		
			
				|  |  |  |  |     addr = dau_ctrl.addr_fault; | 
		
	
	
		
			
				
					|  |  |  | @ -1018,6 +1012,7 @@ int32_t _dau_wave_col_trigger_by_fault(void) | 
		
	
		
			
				|  |  |  |  |         common_watchdog_set(COM_WDG_DAU); | 
		
	
		
			
				|  |  |  |  |         vty_print("FAULT %x %d\r\n", addr, i); | 
		
	
		
			
				|  |  |  |  |         for(j = 0; j < DAU_PKT_FAULT_CNT; j++) | 
		
	
		
			
				|  |  |  |  |         //for(j = 0; j < 1; j++)
 | 
		
	
		
			
				|  |  |  |  |         { | 
		
	
		
			
				|  |  |  |  |             spi_flash_read(addr, &dau_ctrl.buf_dau_rx[2], 1024); | 
		
	
		
			
				|  |  |  |  |             addr += DAU_PKT_FAULT_BYTE_CNT; | 
		
	
	
		
			
				
					|  |  |  | @ -1088,7 +1083,7 @@ int32_t _dau_wave_col_trigger_by_reg(void) | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     E_RETURN(_dau_wave_col_start()); | 
		
	
		
			
				|  |  |  |  |     E_RETURN(_dau_wave_col_defect()); | 
		
	
		
			
				|  |  |  |  |     //E_RETURN(_dau_wave_col_defect());
 | 
		
	
		
			
				|  |  |  |  |     E_RETURN(_dau_wave_col_power(DAU_SOURCE_REG)); | 
		
	
		
			
				|  |  |  |  |     _dau_power_calculate(DAU_SOURCE_REG); | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
	
		
			
				
					|  |  |  | @ -1131,19 +1126,18 @@ int32_t _dau_wave_col_trigger_by_reg(void) | 
		
	
		
			
				|  |  |  |  |         vty_print("\r\n"); | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  | #endif | 
		
	
		
			
				|  |  |  |  | #if 0 | 
		
	
		
			
				|  |  |  |  | #if 1 | 
		
	
		
			
				|  |  |  |  |     uint16_t *buf = (uint16_t*)(&dau_ctrl.buf_dau_rx[2]); | 
		
	
		
			
				|  |  |  |  |     uint8_t i = 0; | 
		
	
		
			
				|  |  |  |  |     uint8_t j = 0; | 
		
	
		
			
				|  |  |  |  |     uint16_t k = 0;  | 
		
	
		
			
				|  |  |  |  |     //for(i = 5; i < DAU_PORT_POWER_CNT; i++)
 | 
		
	
		
			
				|  |  |  |  |     for(i = 2; i < 3; i++) | 
		
	
		
			
				|  |  |  |  |     for(i = 5; i < 6; i++) | 
		
	
		
			
				|  |  |  |  |     { | 
		
	
		
			
				|  |  |  |  |         common_watchdog_set(COM_WDG_DAU); | 
		
	
		
			
				|  |  |  |  |         vty_print("POWER %d\r\n", i); | 
		
	
		
			
				|  |  |  |  |         buf = (uint16_t*)dau_ctrl.reg_power[i]; | 
		
	
		
			
				|  |  |  |  |         for(j = 0; j < DAU_PKT_POWER_CNT; j++) | 
		
	
		
			
				|  |  |  |  |         //for(j = 0; j < 1; j++)
 | 
		
	
		
			
				|  |  |  |  |         { | 
		
	
		
			
				|  |  |  |  |             for(k = 0; k < 512;) | 
		
	
		
			
				|  |  |  |  |             { | 
		
	
	
		
			
				
					|  |  |  | @ -1167,6 +1161,7 @@ int32_t _dau_wave_col_trigger_by_reg(void) | 
		
	
		
			
				|  |  |  |  |    return: */ | 
		
	
		
			
				|  |  |  |  | static void _dau_init(void) | 
		
	
		
			
				|  |  |  |  | { | 
		
	
		
			
				|  |  |  |  |     uint16_t *temp = (uint16_t*)&dau_ctrl.buf_dau_tx[2]; | 
		
	
		
			
				|  |  |  |  |     char version[DEV_COMPILE_TIME_LEN] = {0}; | 
		
	
		
			
				|  |  |  |  |     uint8_t i = 0; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
	
		
			
				
					|  |  |  | @ -1201,7 +1196,11 @@ static void _dau_init(void) | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     HAL_GPIO_WritePin(DAU_RST_GPIO_Port, DAU_RST_Pin, GPIO_PIN_SET); | 
		
	
		
			
				|  |  |  |  |     HAL_GPIO_WritePin(POWER_DAU_GPIO_Port, POWER_DAU_Pin, GPIO_PIN_SET); | 
		
	
		
			
				|  |  |  |  |     osDelay(3000); | 
		
	
		
			
				|  |  |  |  |     osDelay(2500); | 
		
	
		
			
				|  |  |  |  |     //common_watchdog_set(COM_WDG_DAU);
 | 
		
	
		
			
				|  |  |  |  |     //osDelay(10000);
 | 
		
	
		
			
				|  |  |  |  |     //common_watchdog_set(COM_WDG_DAU);
 | 
		
	
		
			
				|  |  |  |  |     //osDelay(10000);
 | 
		
	
		
			
				|  |  |  |  |      | 
		
	
		
			
				|  |  |  |  |     /* 读取 FPGA 版本信息 */ | 
		
	
		
			
				|  |  |  |  |     if (HAL_OK == _dau_reg_read_global_state()) | 
		
	
	
		
			
				
					|  |  |  | @ -1219,6 +1218,14 @@ static void _dau_init(void) | 
		
	
		
			
				|  |  |  |  |     { | 
		
	
		
			
				|  |  |  |  |         _dau_reg_write_port(i); | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     /* 触发阈值 */ | 
		
	
		
			
				|  |  |  |  |     *temp = 0xFFFF; | 
		
	
		
			
				|  |  |  |  |     _dau_reg_write(DAU_REG_ADDR_GCFTTR, sizeof(uint16_t)); | 
		
	
		
			
				|  |  |  |  |     osDelay(500); | 
		
	
		
			
				|  |  |  |  |     /* 开启 */ | 
		
	
		
			
				|  |  |  |  |     *temp = 1; | 
		
	
		
			
				|  |  |  |  |     _dau_reg_write(0xf, sizeof(uint16_t)); | 
		
	
		
			
				|  |  |  |  | } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | /* description: DAU 主任务循环
 | 
		
	
	
		
			
				
					|  |  |  | @ -1230,6 +1237,7 @@ static void _dau_start(void *argument) | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     /* 状态初始化 */ | 
		
	
		
			
				|  |  |  |  |     _dau_init(); | 
		
	
		
			
				|  |  |  |  |     vty_print("DAU start...\r\n"); | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     for (;;) | 
		
	
		
			
				|  |  |  |  |     { | 
		
	
	
		
			
				
					|  |  |  | @ -1244,7 +1252,7 @@ static void _dau_start(void *argument) | 
		
	
		
			
				|  |  |  |  |         } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |         /* utc 对时处理 */ | 
		
	
		
			
				|  |  |  |  |         _dau_utc(); | 
		
	
		
			
				|  |  |  |  |         //_dau_utc();
 | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |         /* 处理升级 */ | 
		
	
		
			
				|  |  |  |  |         if (dau_ctrl.update_flag) | 
		
	
	
		
			
				
					|  |  |  | @ -1272,8 +1280,8 @@ static void _dau_start(void *argument) | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |         if (IS_MONITOR_BIT_SET(dau_ctrl.reg_flag, DAU_REG_PORT_WRITE)) | 
		
	
		
			
				|  |  |  |  |         { | 
		
	
		
			
				|  |  |  |  |             _dau_reg_write_port(dau_ctrl.reg_data); | 
		
	
		
			
				|  |  |  |  |             MONITOR_BITMAP_RESET(dau_ctrl.reg_flag, DAU_REG_PORT_WRITE); | 
		
	
		
			
				|  |  |  |  |             _dau_reg_write_port(dau_ctrl.reg_data); | 
		
	
		
			
				|  |  |  |  |         } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |         if (1 == _dau_spi_rw) | 
		
	
	
		
			
				
					|  |  |  | 
 |