|  |  | @ -285,15 +285,22 @@ static void _dau_data_save(void) | 
			
		
	
		
		
			
				
					
					|  |  |  |     fd_data.vbat = ADC_ctrl.ADCi_vbat; |  |  |  |     fd_data.vbat = ADC_ctrl.ADCi_vbat; | 
			
		
	
		
		
			
				
					
					|  |  |  |     fd_data.vin = ADC_ctrl.ADCi_vin; |  |  |  |     fd_data.vin = ADC_ctrl.ADCi_vin; | 
			
		
	
		
		
			
				
					
					|  |  |  |     fd_data.vsc = ADC_ctrl.ADCi_vsc; |  |  |  |     fd_data.vsc = ADC_ctrl.ADCi_vsc; | 
			
		
	
		
		
			
				
					
					|  |  |  |     for(i = 0; i < DAU_PORT_DEFECT_CNT; i++) |  |  |  |     for(i = 0; i < DAU_PORT_FAULT_MAX; i++) | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         fd_data.fault[i] = dau_ctrl.reg_port_state.FMAX[i]; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     for(i = 0; i < DAU_PORT_DEFECT_MAX; i++) | 
			
		
	
		
		
			
				
					
					|  |  |  |     { |  |  |  |     { | 
			
		
	
		
		
			
				
					
					|  |  |  |         fd_data.defect[i] = dau_ctrl.reg_port_state.DMAX[i]; |  |  |  |         fd_data.defect[i] = dau_ctrl.reg_port_state.DMAX[i]; | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  |     for(i = 0; i < DAU_PORT_DEFECT_CNT; i++) |  |  |  |     for(i = 0; i < DAU_PORT_POWER_CNT; i++) | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     { |  |  |  |     { | 
			
		
	
		
		
			
				
					
					|  |  |  |         fd_data.elec[i] = dau_ctrl.reg_elec[i]; |  |  |  |         fd_data.elec[i] = dau_ctrl.reg_elec[i]; | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  |     fd_data.col_flag = dau_ctrl.col_flag; |  |  |  |     fd_data.col_flag = dau_ctrl.col_flag; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     fd_data.is_bat_charge = st_data.is_bat_charge; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     fd_data.is_utc_valid = dau_ctrl.is_utc_valid; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     fd_data.state_wir = wl_ctrl.state; | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     fd_write(&fd_data); |  |  |  |     fd_write(&fd_data); | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
	
		
		
			
				
					|  |  | @ -312,6 +319,9 @@ int32_t _dau_update(void) | 
			
		
	
		
		
			
				
					
					|  |  |  |     uint32_t addr = TFTP_APP_ADDRESS; |  |  |  |     uint32_t addr = TFTP_APP_ADDRESS; | 
			
		
	
		
		
			
				
					
					|  |  |  |     int32_t rv = HAL_ERROR; |  |  |  |     int32_t rv = HAL_ERROR; | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     /* 校验报文. */ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     E_RETURN(debug_app_check(TFTP_APP_ADDRESS, app_len, 3)); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     /* 发送升级数据 */ |  |  |  |     /* 发送升级数据 */ | 
			
		
	
		
		
			
				
					
					|  |  |  |     while(1) |  |  |  |     while(1) | 
			
		
	
		
		
			
				
					
					|  |  |  |     { |  |  |  |     { | 
			
		
	
	
		
		
			
				
					|  |  | @ -582,57 +592,6 @@ int32_t _dau_wave_col_defect(void) | 
			
		
	
		
		
			
				
					
					|  |  |  |     vty_print("#D reg end addr %x\r\n", addr); |  |  |  |     vty_print("#D reg end addr %x\r\n", addr); | 
			
		
	
		
		
			
				
					
					|  |  |  |     MONITOR_BITMAP_SET(dau_ctrl.col_flag, DAU_COL_FLAG_REG_DEFECT); |  |  |  |     MONITOR_BITMAP_SET(dau_ctrl.col_flag, DAU_COL_FLAG_REG_DEFECT); | 
			
		
	
		
		
			
				
					
					|  |  |  |     return rv; |  |  |  |     return rv; | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | #if 0 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     uint8_t i = 0; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     uint8_t j = 0; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     uint8_t is_exceed = FALSE; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     uint32_t addr = 0; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     int32_t rv = HAL_ERROR; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     /* 比较缺陷波形是否超过阈值 */ |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     //E_RETURN(_dau_reg_read_port_state());
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     for(i = 0; i < DAU_PORT_DEFECT_CNT; i++) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         dau_ctrl.reg_defect_max[i] = 100 +i; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         if (dau_ctrl.reg_defect_max[i] > dev_config.wave_threshold) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             is_exceed = TRUE; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     /* 没有超过阈值并没有强制录波直接返回 */ |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     if (!is_exceed && !IS_MONITOR_BIT_SET(dau_ctrl.col_flag, DAU_COL_FLAG_WAVE_FORCE)) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         MONITOR_BITMAP_RESET(dau_ctrl.col_flag, DAU_COL_FLAG_REG_DEFECT); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         return HAL_OK; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     /* 擦除 flash */ |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     addr = dau_ctrl.addr_reg; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     vty_print("#D3 %x\r\n", addr); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     for(i = 0; i < 2; i++) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         E_RETURN(spi_flash_erase(addr, SPI_CMD_BLOCK64_ERASE)); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         addr += SPI_FLASH_BLOCK64_SIZE; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     /* 数据地址应该是被擦除过的地址 (当前地址向前偏移 128k). */ |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     addr = dau_ctrl.addr_reg; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     /* 读取缺陷数据 */ |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     for(i = 0; i < DAU_PORT_DEFECT_CNT; i++) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         memset(&dau_ctrl.buf_dau_rx[2], i, DAU_PKT_FAULT_BYTE_CNT); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         for(j = 0; j < DAU_PKT_DEFECT_CNT; j++) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             E_RETURN(spi_flash_write(addr, &dau_ctrl.buf_dau_rx[2], DAU_PKT_DEFECT_BYTE_CNT)); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             addr += DAU_PKT_DEFECT_BYTE_CNT; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     vty_print("#D4 %x\r\n", addr); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     MONITOR_BITMAP_SET(dau_ctrl.col_flag, DAU_COL_FLAG_REG_DEFECT); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     return rv; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | #endif |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | /* description: 工频波形采集
 |  |  |  | /* description: 工频波形采集
 | 
			
		
	
	
		
		
			
				
					|  |  | @ -840,6 +799,8 @@ int32_t _dau_wave_col_trigger_by_fault(void) | 
			
		
	
		
		
			
				
					
					|  |  |  |         return HAL_OK; |  |  |  |         return HAL_OK; | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     flash_log_write(FLASH_LOG_TYPE_WARNING, "Fhault triggering!\r\n"); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     /* 采集波形 */ |  |  |  |     /* 采集波形 */ | 
			
		
	
		
		
			
				
					
					|  |  |  |     E_RETURN(_dau_wave_col_fault()); |  |  |  |     E_RETURN(_dau_wave_col_fault()); | 
			
		
	
		
		
			
				
					
					|  |  |  |     E_RETURN(_dau_wave_col_power(DAU_SOURCE_FAULT)); |  |  |  |     E_RETURN(_dau_wave_col_power(DAU_SOURCE_FAULT)); | 
			
		
	
	
		
		
			
				
					|  |  | @ -847,6 +808,7 @@ int32_t _dau_wave_col_trigger_by_fault(void) | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     /* 置标志位 */ |  |  |  |     /* 置标志位 */ | 
			
		
	
		
		
			
				
					
					|  |  |  |     MONITOR_BITMAP_RESET(dau_ctrl.col_flag, DAU_COL_FLAG_FAULT_CMP); |  |  |  |     MONITOR_BITMAP_RESET(dau_ctrl.col_flag, DAU_COL_FLAG_FAULT_CMP); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     _dau_data_save(); | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | #if 0 |  |  |  | #if 0 | 
			
		
	
		
		
			
				
					
					|  |  |  |     uint16_t *buf = (uint16_t*)(&dau_ctrl.buf_dau_rx[2]); |  |  |  |     uint16_t *buf = (uint16_t*)(&dau_ctrl.buf_dau_rx[2]); | 
			
		
	
	
		
		
			
				
					|  |  | @ -941,9 +903,9 @@ int32_t _dau_wave_col_trigger_by_reg(void) | 
			
		
	
		
		
			
				
					
					|  |  |  |     _dau_power_calculate(DAU_SOURCE_REG); |  |  |  |     _dau_power_calculate(DAU_SOURCE_REG); | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     /* 置标志位, 保存数据 */ |  |  |  |     /* 置标志位, 保存数据 */ | 
			
		
	
		
		
			
				
					
					|  |  |  |     _dau_data_save(); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     MONITOR_BITMAP_RESET(dau_ctrl.col_flag, DAU_COL_FLAG_REG_CMP); |  |  |  |     MONITOR_BITMAP_RESET(dau_ctrl.col_flag, DAU_COL_FLAG_REG_CMP); | 
			
		
	
		
		
			
				
					
					|  |  |  |     dau_ctrl.col_time = tick; |  |  |  |     dau_ctrl.col_time = tick; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     _dau_data_save(); | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | #if 0 |  |  |  | #if 0 | 
			
		
	
		
		
			
				
					
					|  |  |  |     uint16_t *buf = (uint16_t*)(&dau_ctrl.buf_dau_rx[2]); |  |  |  |     uint16_t *buf = (uint16_t*)(&dau_ctrl.buf_dau_rx[2]); | 
			
		
	
	
		
		
			
				
					|  |  | @ -1050,10 +1012,6 @@ static void _dau_init(void) | 
			
		
	
		
		
			
				
					
					|  |  |  |     HAL_GPIO_WritePin(DAU_RST_GPIO_Port, DAU_RST_Pin, GPIO_PIN_SET); |  |  |  |     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); |  |  |  |     HAL_GPIO_WritePin(POWER_DAU_GPIO_Port, POWER_DAU_Pin, GPIO_PIN_SET); | 
			
		
	
		
		
			
				
					
					|  |  |  |     osDelay(2000); |  |  |  |     osDelay(2000); | 
			
		
	
		
		
			
				
					
					|  |  |  |     //common_watchdog_set(COM_WDG_DAU);
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     //osDelay(10000);
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     //common_watchdog_set(COM_WDG_DAU);
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     //osDelay(10000);
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |      |  |  |  |      | 
			
		
	
		
		
			
				
					
					|  |  |  |     /* 读取 FPGA 版本信息 */ |  |  |  |     /* 读取 FPGA 版本信息 */ | 
			
		
	
		
		
			
				
					
					|  |  |  |     if (HAL_OK == _dau_reg_read_global_state()) |  |  |  |     if (HAL_OK == _dau_reg_read_global_state()) | 
			
		
	
	
		
		
			
				
					|  |  | @ -1076,7 +1034,7 @@ static void _dau_init(void) | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         /* 触发阈值 */ |  |  |  |         /* 触发阈值 */ | 
			
		
	
		
		
			
				
					
					|  |  |  |         //*temp = dev_config.fault_threshold * 32768 / dev_config.fault_adj[i];
 |  |  |  |         //*temp = dev_config.fault_threshold * 32768 / dev_config.fault_adj[i];
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         *temp = 0; |  |  |  |         *temp = 0x7fff; | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |         _dau_reg_write(DAU_REG_ADDR_GCFTTR, sizeof(uint16_t)); |  |  |  |         _dau_reg_write(DAU_REG_ADDR_GCFTTR, sizeof(uint16_t)); | 
			
		
	
		
		
			
				
					
					|  |  |  |         osDelay(500); |  |  |  |         osDelay(500); | 
			
		
	
		
		
			
				
					
					|  |  |  |         /* 开启 */ |  |  |  |         /* 开启 */ | 
			
		
	
	
		
		
			
				
					|  |  | @ -1109,13 +1067,13 @@ static void _dau_start(void *argument) | 
			
		
	
		
		
			
				
					
					|  |  |  |         } |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         /* utc 对时处理 */ |  |  |  |         /* utc 对时处理 */ | 
			
		
	
		
		
			
				
					
					|  |  |  |         //_dau_utc();
 |  |  |  |         _dau_utc(); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         /* 故障电流采集 */ |  |  |  |         /* 故障电流采集 */ | 
			
		
	
		
		
			
				
					
					|  |  |  |         _dau_wave_col_trigger_by_fault(); |  |  |  |         _dau_wave_col_trigger_by_fault(); | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         /* 循环工频缺陷电流采集 */ |  |  |  |         /* 循环工频缺陷电流采集 */ | 
			
		
	
		
		
			
				
					
					|  |  |  |         //_dau_wave_col_trigger_by_reg();
 |  |  |  |         _dau_wave_col_trigger_by_reg(); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         /* 处理升级 */ |  |  |  |         /* 处理升级 */ | 
			
		
	
		
		
			
				
					
					|  |  |  |         if (dau_ctrl.update_flag) |  |  |  |         if (dau_ctrl.update_flag) | 
			
		
	
	
		
		
			
				
					|  |  | @ -1190,6 +1148,25 @@ int32_t _dau_adj_reg_write_port(uint32_t port) | 
			
		
	
		
		
			
				
					
					|  |  |  |     return rv; |  |  |  |     return rv; | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | /* description: 缺陷波形采集
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |    param: | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |    return: HAL_xxx */ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | int32_t _dau_adj_wave_col_defect(void) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     uint8_t i = 0; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     int32_t rv = HAL_ERROR; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     /* 比较缺陷波形是否超过阈值 */ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     E_RETURN(_dau_reg_read_port_state()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     for(i = 0; i < DAU_PORT_DEFECT_CNT; i++) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         dau_ctrl.reg_defect_max[i] = abs(dau_ctrl.reg_port_state.DMAX[i]); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     /* 直接返回 */ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     MONITOR_BITMAP_RESET(dau_ctrl.col_flag, DAU_COL_FLAG_REG_DEFECT); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     return HAL_OK; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | /* description: 寄存器触发波形采集
 |  |  |  | /* description: 寄存器触发波形采集
 | 
			
		
	
		
		
			
				
					
					|  |  |  |    param: |  |  |  |    param: | 
			
		
	
		
		
			
				
					
					|  |  |  |    return: HAL_xxx */ |  |  |  |    return: HAL_xxx */ | 
			
		
	
	
		
		
			
				
					|  |  | @ -1198,74 +1175,12 @@ int32_t _dau_adj_wave_col_trigger_by_reg(void) | 
			
		
	
		
		
			
				
					
					|  |  |  |     int32_t rv = HAL_ERROR; |  |  |  |     int32_t rv = HAL_ERROR; | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     E_RETURN(_dau_wave_col_start()); |  |  |  |     E_RETURN(_dau_wave_col_start()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     E_RETURN(_dau_adj_wave_col_defect()); | 
			
		
	
		
		
			
				
					
					|  |  |  |     E_RETURN(_dau_wave_col_power(DAU_SOURCE_REG)); |  |  |  |     E_RETURN(_dau_wave_col_power(DAU_SOURCE_REG)); | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | #if 0 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     uint16_t *buf = (uint16_t*)(&dau_ctrl.buf_dau_rx[2]); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     uint32_t addr = dau_ctrl.addr_reg; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     uint8_t i = 0; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     uint8_t j = 0; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     uint16_t k = 0;  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     //for(i = 0; i < DAU_PORT_DEFECT_CNT; i++)
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     for(i = 0; i < 1; i++) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         common_watchdog_set(COM_WDG_DAU); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         vty_print("DEFECT %x %d\r\n", addr, i); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         for(j = 0; j < DAU_PKT_DEFECT_CNT; j++) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             spi_flash_read(addr, &dau_ctrl.buf_dau_rx[2], 1024); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             addr += DAU_PKT_DEFECT_BYTE_CNT; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             for(k = 0; k < 512;) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                 common_watchdog_set(COM_WDG_DAU); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                 vty_print("%04x ", buf[k++]); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                 if(0 == k % 32) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                 { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                     osDelay(100); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                     vty_print("\r\n"); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                 } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             if(k % 32 != 0) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                 osDelay(100); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                 vty_print("\r\n"); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         vty_print("\r\n"); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | #endif |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | #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 = 0; i < 1; 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(k = 0; k < 512;) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                 vty_print("%-04x ", buf[k++]); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                 if(0 == (j*512+k ) % 40) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                 { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                     osDelay(100); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                     vty_print("\r\n"); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                 } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             buf += 512; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         vty_print("\r\n"); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     vty_print("reg_elec:%d\r\n", dau_ctrl.reg_elec[0]); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | #endif |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     return rv; |  |  |  |     return rv; | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | /* description: DAU 校准任务循环
 |  |  |  | /* description: DAU 校准任务循环
 | 
			
		
	
		
		
			
				
					
					|  |  |  |    param: |  |  |  |    param: | 
			
		
	
		
		
			
				
					
					|  |  |  |    return: */ |  |  |  |    return: */ | 
			
		
	
	
		
		
			
				
					|  |  | @ -1323,6 +1238,7 @@ static void _dau_adj_start(void *argument) | 
			
		
	
		
		
			
				
					
					|  |  |  |                 _dau_reg_write_port(i); |  |  |  |                 _dau_reg_write_port(i); | 
			
		
	
		
		
			
				
					
					|  |  |  |             } |  |  |  |             } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             /* 重启 FPGA 触发故障采集 */ | 
			
		
	
		
		
			
				
					
					|  |  |  |             HAL_GPIO_WritePin(POWER_DAU_GPIO_Port, POWER_DAU_Pin, GPIO_PIN_RESET); |  |  |  |             HAL_GPIO_WritePin(POWER_DAU_GPIO_Port, POWER_DAU_Pin, GPIO_PIN_RESET); | 
			
		
	
		
		
			
				
					
					|  |  |  |             HAL_GPIO_WritePin(DAU_RST_GPIO_Port, DAU_RST_Pin, GPIO_PIN_RESET); |  |  |  |             HAL_GPIO_WritePin(DAU_RST_GPIO_Port, DAU_RST_Pin, GPIO_PIN_RESET); | 
			
		
	
		
		
			
				
					
					|  |  |  |             osDelay(1000); |  |  |  |             osDelay(1000); | 
			
		
	
	
		
		
			
				
					|  |  | @ -1331,8 +1247,7 @@ static void _dau_adj_start(void *argument) | 
			
		
	
		
		
			
				
					
					|  |  |  |             osDelay(2000); |  |  |  |             osDelay(2000); | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |             /* 触发阈值 */ |  |  |  |             /* 触发阈值 */ | 
			
		
	
		
		
			
				
					
					|  |  |  |             //*temp = 0x2800;
 |  |  |  |             *temp = 0x2800; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |             *temp = 0x0; |  |  |  |  | 
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |             _dau_reg_write(DAU_REG_ADDR_GCFTTR, sizeof(uint16_t)); |  |  |  |             _dau_reg_write(DAU_REG_ADDR_GCFTTR, sizeof(uint16_t)); | 
			
		
	
		
		
			
				
					
					|  |  |  |             /* 开启 */ |  |  |  |             /* 开启 */ | 
			
		
	
		
		
			
				
					
					|  |  |  |             osDelay(500); |  |  |  |             osDelay(500); | 
			
		
	
	
		
		
			
				
					|  |  | @ -1350,7 +1265,7 @@ static void _dau_adj_start(void *argument) | 
			
		
	
		
		
			
				
					
					|  |  |  |             /* 读取最大值. */ |  |  |  |             /* 读取最大值. */ | 
			
		
	
		
		
			
				
					
					|  |  |  |             _dau_reg_read_port_state(); |  |  |  |             _dau_reg_read_port_state(); | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |             /* 开启 */ |  |  |  |             /* 关闭 */ | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |             osDelay(500); |  |  |  |             osDelay(500); | 
			
		
	
		
		
			
				
					
					|  |  |  |             *temp = 0; |  |  |  |             *temp = 0; | 
			
		
	
		
		
			
				
					
					|  |  |  |             _dau_reg_write(0xf, sizeof(uint16_t)); |  |  |  |             _dau_reg_write(0xf, sizeof(uint16_t)); | 
			
		
	
	
		
		
			
				
					|  |  | @ -1365,6 +1280,146 @@ static void _dau_adj_start(void *argument) | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | /* description: 故障触发波形采集
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |    param: | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |    return: HAL_xxx */ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | int32_t _dau_continue_wave_col_trigger_by_fault(void) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     int32_t rv = HAL_ERROR; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     /* 没有触发直接退出 */ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     if (!((dau_ctrl.reg_global.GFTR & DAU_GFTR_FAULT_Msk) >> DAU_GFTR_FAULT_Pos)) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         return HAL_OK; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     /* 采集波形 */ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     E_RETURN(_dau_wave_col_fault()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     E_RETURN(_dau_wave_col_power(DAU_SOURCE_FAULT)); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     _dau_power_calculate(DAU_SOURCE_FAULT); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | #if 0 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     uint16_t *buf = (uint16_t*)(&dau_ctrl.buf_dau_rx[2]); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     uint8_t i = 0; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     uint8_t j = 0; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     uint16_t k = 0; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     uint32_t addr = dau_ctrl.addr_fault; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     for(i = 0; i < 1; i++) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         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; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             for(k = 0; k < 512;) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 common_watchdog_set(COM_WDG_DAU); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 vty_print("%04x ", buf[k++]); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 if(0 == k % 32) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     osDelay(100); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     vty_print("\r\n"); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             if(k % 32 != 0) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 osDelay(100); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 vty_print("\r\n"); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         vty_print("\r\n"); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | #endif | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | #if 0 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     uint16_t *buf = NULL; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     uint8_t i = 0; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     uint8_t j = 0; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     uint16_t k = 0; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     for(i = 0; i < DAU_PORT_POWER_CNT; i++) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         common_watchdog_set(COM_WDG_DAU); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         vty_print("POWER %d\r\n", i); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         buf = (uint16_t*)dau_ctrl.fault_power[i]; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         for(j = 0; j < DAU_PKT_POWER_CNT; j++) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             for(k = 0; k < 512;) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 vty_print("%-04x ", buf[k++]); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 if(0 == (j*512+k ) % 40) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     osDelay(100); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     vty_print("\r\n"); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             buf += 512; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         vty_print("\r\n"); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | #endif | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     return HAL_OK; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | /* description: DAU 主任务循环
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |    param: | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |    return: */ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | static void _dau_continue_start(void *argument) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     int32_t rv = HAL_ERROR; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     /* 状态初始化 */ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     _dau_init(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     vty_print("DAU start...\r\n"); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     for (;;) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         common_watchdog_set(COM_WDG_DAU); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         osDelay(4250); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         /* 读取全局状态寄存器 */ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         rv = _dau_reg_read_global_state(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         if (rv != HAL_OK) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             continue; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         /* utc 对时处理 */ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         _dau_utc(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         /* 故障电流采集 */ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         _dau_continue_wave_col_trigger_by_fault(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         /* 循环工频缺陷电流采集 */ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         _dau_adj_wave_col_trigger_by_reg(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         _dau_power_calculate(DAU_SOURCE_REG); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         /* 处理升级 */ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         if (dau_ctrl.update_flag) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             flash_log_write(FLASH_LOG_TYPE_NOTIFY, "FPGA update start!\r\n"); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             dau_ctrl.update_flag = FALSE; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             if (HAL_OK == _dau_update()) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 dau_ctrl.update_rt = DAU_UPD_OK; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 dau_ctrl.update_rt_dbg = DAU_UPD_OK; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             else | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 dau_ctrl.update_rt = DAU_UPD_ERROR; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 dau_ctrl.update_rt_dbg = DAU_UPD_ERROR; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             flash_log_write(FLASH_LOG_TYPE_NOTIFY, "FPGA update %s!\r\n", dau_ctrl.update_rt == 1 ? "OK" : "ERROR"); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         if (IS_MONITOR_BIT_SET(dau_ctrl.reg_flag, DAU_REG_PORT_WRITE)) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             MONITOR_BITMAP_RESET(dau_ctrl.reg_flag, DAU_REG_PORT_WRITE); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             _dau_reg_write_port(dau_ctrl.reg_data); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | /* description: GPS 报文处理 ($GNZDA,235949.012,05,01,1980,,*4F)
 |  |  |  | /* description: GPS 报文处理 ($GNZDA,235949.012,05,01,1980,,*4F)
 | 
			
		
	
		
		
			
				
					
					|  |  |  |    param: |  |  |  |    param: | 
			
		
	
	
		
		
			
				
					|  |  | @ -1506,20 +1561,22 @@ static void _dau_gps_start(void *argument) | 
			
		
	
		
		
			
				
					
					|  |  |  |    return: */ |  |  |  |    return: */ | 
			
		
	
		
		
			
				
					
					|  |  |  | void dau_init(void) |  |  |  | void dau_init(void) | 
			
		
	
		
		
			
				
					
					|  |  |  | { |  |  |  | { | 
			
		
	
		
		
			
				
					
					|  |  |  |     dau_ctrl.dau_handle = osThreadNew(_dau_start, NULL, &dau_attributes); |  |  |  |     if (IS_MONITOR_BIT_SET(dev_config.flag, DEV_FLAG_ADJ)) | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |     dau_ctrl.gps_handle = osThreadNew(_dau_gps_start, NULL, &dau_gps_attributes); |  |  |  |     { | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | /* description: DAU 采集校准任务初始化
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |    param: |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |    return: */ |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | void dau_adj_init(void) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | { |  |  |  |  | 
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  |         dau_ctrl.dau_handle = osThreadNew(_dau_adj_start, NULL, &dau_adj_attributes); |  |  |  |         dau_ctrl.dau_handle = osThreadNew(_dau_adj_start, NULL, &dau_adj_attributes); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     else if(IS_MONITOR_BIT_SET(dev_config.flag, DEV_FLAG_FACTORY)) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         dau_ctrl.dau_handle = osThreadNew(_dau_continue_start, NULL, &dau_adj_attributes); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     else | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         /* 初始化 DAU 任务. */ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         dau_ctrl.dau_handle = osThreadNew(_dau_start, NULL, &dau_attributes); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  |     dau_ctrl.gps_handle = osThreadNew(_dau_gps_start, NULL, &dau_gps_attributes); |  |  |  |     dau_ctrl.gps_handle = osThreadNew(_dau_gps_start, NULL, &dau_gps_attributes); | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | /* description: spi 接口测试函数
 |  |  |  | /* description: spi 接口测试函数
 | 
			
		
	
		
		
			
				
					
					|  |  |  |    param: |  |  |  |    param: | 
			
		
	
		
		
			
				
					
					|  |  |  |    return: */ |  |  |  |    return: */ | 
			
		
	
	
		
		
			
				
					|  |  | 
 |