"2021-01-03"和"2021-03-04"如何比较大小

时间: 2025-04-03 20:07:11 浏览: 40
<think>好的,用户想比较两个日期字符串的大小,比如'2021-01-03'和'2021-03-04'。首先,我需要考虑如何正确解析这些字符串并转换成可比较的格式。日期字符串的格式是yyyy-MM-dd,这在编程中很常见,但不同的编程语言可能有不同的处理方法。 用户可能用的是哪种语言呢?问题中引用了Java的引用,比如SimpleDateFormat,所以可能用户使用的是Java。不过,也可能用户对其他语言的方法感兴趣,比如Python或JavaScript。我需要先确定主要方法,再提到其他语言的例子。 首先,在Java中,比较日期字符串的方法是将字符串转换为Date对象,然后使用compareTo方法。或者,使用SimpleDateFormat将字符串解析成Date对象后再比较。另外,用户提到的引用[1]和[2]都提到了字符串比较,如果格式正确的话,直接按字符串比较是否可行?比如,如果日期字符串的格式是yyyy-MM-dd,并且每个部分都是两位补零的话,那么按字典序比较字符串是否有效?例如'2021-01-03'和'2021-03-04',直接比较字符串的话,前者的月份是01,后者是03,所以字符串比较会正确识别前者更小。但需要确认格式是否正确,比如月份和日期是否补零。如果用户输入的日期字符串是标准化的,那么直接比较可能有效,如引用[2]提到的。 但更可靠的方法还是将字符串转换为日期对象再比较,这样可以避免格式不一致的问题。例如,在Java中,使用SimpleDateFormat.parse()将字符串转为Date对象,然后比较两个Date对象的时间戳。或者在Python中,使用datetime模块的strptime方法解析字符串为datetime对象,再比较这些对象。 另外,用户可能需要处理不同格式的情况,但题目中的例子都是相同的格式,所以可能不需要考虑格式转换的问题。但为了代码的健壮性,应该先验证字符串是否符合预期格式。 现在需要分步骤说明:首先解析字符串为日期对象,然后比较。给出具体代码示例,比如Java和Python的。同时,提到直接字符串比较的条件和注意事项。 需要注意的是,直接字符串比较只有在格式严格一致且各部分补零的情况下才有效。例如,月份必须是两位,如03而不是3,否则像'2021-3-04'这样的字符串直接比较就会出错,因为3和03的字典序不同。所以,虽然引用[2]提到可以比较,但前提是格式正确。需要提醒用户这一点。 总结回答步骤: 1. 确认日期字符串的格式是否符合标准(yyyy-MM-dd,补零)。 2. 如果格式正确,可以直接字符串比较。 3. 否则,转换为日期对象再比较。 4. 提供不同编程语言的示例,如Java、Python、JavaScript。 5. 强调注意事项,如格式必须一致,补零的重要性。 现在检查引用内容,引用[1]提到使用SimpleDateFormat的format方法将日期转化为字符串再比较,但这里用户是要比较输入的字符串,可能直接转换后的比较是否需要?或者用户可能误解了引用的内容。不过引用[2]明确说明在格式正确的情况下,可以直接比较字符串。所以需要结合这两种方法。 可能用户的问题更倾向于如何正确转换,所以重点放在解析字符串为日期对象的方法上,同时提到直接比较的条件。因此,回答应该分两种方法:直接比较(条件严格)和转换为对象比较(更可靠)。 在代码示例中,Java使用SimpleDateFormat或LocalDate(Java 8及以上),Python使用datetime,JavaScript使用Date对象。例如: Java示例(使用SimpleDateFormat): 解析两个字符串为Date对象,然后使用compareTo或before/after方法。 Python示例: 使用datetime.strptime解析字符串为datetime对象,然后直接比较。 JavaScript示例: 将字符串转换为Date对象,再比较时间戳。 同时,提醒异常处理,比如捕获解析异常,以防格式错误。 最后,相关问题可能涉及日期格式转换、不同语言的处理方法、如何处理不同格式的日期比较,或者性能上的考虑。</think>要比较两个格式为$yyyy-MM-dd$的日期字符串(例如$'2021-01-03'$和$'2021-03-04'$),可通过以下方法实现: --- ### 方法一:直接字符串比较(仅适用于标准化格式) 若字符串满足以下条件: 1. 年份、月份、日期均补零(如`03`而非`3`) 2. 格式严格统一为$yyyy-MM-dd$ 可直接按**字典序**比较字符串: ```python date1 = '2021-01-03' date2 = '2021-03-04' print(date1 < date2) # 输出 True ``` --- ### 方法二:转换为日期对象(推荐) 通过编程语言内置的日期解析工具,将字符串转换为日期对象后再比较: #### **Java 示例** ```java import java.text.SimpleDateFormat; import java.util.Date; public class DateCompare { public static void main(String[] args) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); try { Date date1 = sdf.parse("2021-01-03"); Date date2 = sdf.parse("2021-03-04"); System.out.println(date1.before(date2)); // 输出 true } catch (Exception e) { e.printStackTrace(); } } } ``` #### **Python 示例** ```python from datetime import datetime date_str1 = '2021-01-03' date_str2 = '2021-03-04' date1 = datetime.strptime(date_str1, "%Y-%m-%d") date2 = datetime.strptime(date_str2, "%Y-%m-%d") print(date1 < date2) # 输出 True ``` #### **JavaScript 示例** ```javascript const date1 = new Date('2021-01-03'); const date2 = new Date('2021-03-04'); console.log(date1 < date2); // 输出 true ``` --- ### 注意事项 1. **格式一致性**:确保字符串格式与解析格式完全匹配[^2]。 2. **异常处理**:转换时需捕获可能的格式错误(如`2021-13-32`)。 3. **时区问题**:部分语言(如JavaScript)的`Date`对象会受时区影响,建议使用UTC时间。 ---
阅读全文

相关推荐

/* USER CODE BEGIN Header */ /** ****************************************************************************** * @file : main.c * @brief : Main program body ****************************************************************************** * @attention * * Copyright (c) 2021 STMicroelectronics. * All rights reserved. * * This software is licensed under terms that can be found in the LICENSE file * in the root directory of this software component. * If no LICENSE file comes with this software, it is provided AS-IS. * ****************************************************************************** */ /* USER CODE END Header */ /* Includes ------------------------------------------------------------------*/ #include "main.h" /* Private includes ----------------------------------------------------------*/ /* USER CODE BEGIN Includes */ /* USER CODE END Includes */ /* Private typedef -----------------------------------------------------------*/ /* USER CODE BEGIN PTD */ /* USER CODE END PTD */ /* Private define ------------------------------------------------------------*/ /* USER CODE BEGIN PD */ /* USER CODE END PD */ /* Private macro -------------------------------------------------------------*/ /* USER CODE BEGIN PM */ /* USER CODE END PM */ /* Private variables ---------------------------------------------------------*/ FMAC_HandleTypeDef hfmac; DMA_HandleTypeDef handle_GPDMA1_Channel1; /* USER CODE BEGIN PV */ /* FMAC configuration structure */ FMAC_FilterConfigTypeDef sFmacConfig; /* Array of filter coefficients A (feedback coefficients) in Q1.15 format */ static int16_t aFilterCoeffA[COEFF_VECTOR_A_SIZE] = { 10432,-17296, 17696,-12512, 5536, -1296 }; /* Array of filter coefficients B (feed-forward taps) in Q1.15 format */ static int16_t aFilterCoeffB[COEFF_VECTOR_B_SIZE] = { 828, 1170, 2360, 2293, 2360, 1170, 828 }; /* Array of input values in Q1.15 format */ static int16_t aInputValues[ARRAY_SIZE] = { 0, 660, -194, 1731, 1, 2194, 725, 2018, 1775, 1501, 2703, 1085, 3072, 1084, 2701, 1499, 1772, 2014, 721, 2189, -5, 1725, -200, 653, -6, -666, 187, -1737, -7, -2199, -730, -2022, -1778, -1504, -2705, -1086, -3072, -1083, -2700, -1496, -1768, -2010, -716, -2184, 10, -1719, 206, -647, 13, 672, -181, 1742, 12, 2204, 734, 2026, 1781, 1506, 2706, 1086, 3072, 1082, 2698, 1494, 1765, 2006, 712, 2179, -16, 1713, -212, 640, -19, -679, 175, -1748, -18, -2209, -739, -2030, -1784, -1509, -2708, -1087, -3072, -1081, -2696, -1491, -1762, -2002, -707, -2173, 21, -1707, 218, -634, 26, 685, -169, 1754, 23, 2214, 743, 2033, 1787, 1511, 2710, 1088, 3072, 1080, 2695, 1489, 1758, 1998, 702, 2168, -27, 1701, -225, 628, -32, -691, 163, -1760, -29, -2219, -748, -2037, -1791, -1513, -2711, -1089, -3072, -1080, -2693, -1486, -1755, -1994, -698, -2163, 33, -1695, 231, -621, 39, 698, -156, 1766, 34, 2224, 752, 2041, 1794, 1516, 2713, 1089, 3072, 1079, 2691, 1484, 1752, 1990, 693, 2158, -38, 1689, -237, 615, -45, -704, 150, -1772, -40, -2229, -757, -2045, -1797, -1518, -2714, -1090, -3071, -1078, -2689, -1481, -1749, -1986, -688, -2153, 44, -1683, 243, -608, 52, 710, -144, 1778, 45, 2234, 761, 2049, 1800, 1520, 2716, 1091, 3071, 1077, 2687, 1478, 1745, 1982, 684, 2148, -50, 1677, -250, 602, -58, -717, 138, -1784, -51, -2239, -766, -2052, -1803, -1523, -2717, -1092, -3071, -1076, -2686, -1476, -1742, -1978, -679, -2142, 55, -1671, 256, -596, 64, 723, -132, 1790, 56, 2244, 770, 2056, 1806, 1525, 2719, 1092, 3071, 1075, 2684, 1473 }; /* Array of output data to preload in Q1.15 format */ static int16_t aOutputDataToPreload[COEFF_VECTOR_A_SIZE] = { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }; /* Array of calculated filtered data in Q1.15 format */ static int16_t aCalculatedFilteredData[ARRAY_SIZE]; /* Expected number of calculated samples */ uint16_t ExpectedCalculatedOutputSize = MEMORY_PARAMETER_D2; /* Status of the FMAC callbacks */ __IO uint32_t HalfOutputDataReadyCallback = CALLBACK_NOT_CALLED; __IO uint32_t OutputDataReadyCallback = CALLBACK_NOT_CALLED; __IO uint32_t ErrorCount = 0; /* Array of reference filtered data for IIR "7 feed-forward taps, 6 feedback coefficients, gain = 1" in Q1.15 format */ static const int16_t aRefFilteredData[ARRAY_SIZE] = { 0x01c6, 0x0403, 0x03a5, 0x03e6, 0x05b0, 0x0588, 0x051d, 0x0664, 0x06c7, 0x057a, 0x0631, 0x06c8, 0x0539, 0x0500, 0x05a5, 0x0453, 0x02f5, 0x03b2, 0x02a0, 0x00b3, 0x00fe, 0x008c, 0xfe75, 0xfe03, 0xfe6e, 0xfc64, 0xfb84, 0xfc4c, 0xfb0a, 0xf9ba, 0xfa9c, 0xfa87, 0xf8df, 0xf9d2, 0xfaa0, 0xf95d, 0xf9da, 0xfb7d, 0xfaf9, 0xfac9, 0xfd0d, 0xfd3b, 0xfcc5, 0xfecf, 0xfffd, 0xff53, 0x00ae, 0x02be, 0x01f7, 0x029c, 0x04cb, 0x0487, 0x041b, 0x0609, 0x066e, 0x0504, 0x0663, 0x0722, 0x0576, 0x0598, 0x06be, 0x0521, 0x03f7, 0x0544, 0x03f1, 0x01fe, 0x02b2, 0x0246, 0xffbf, 0xffb1, 0x0031, 0xfd99, 0xfcdc, 0xfdc8, 0xfc12, 0xfa6f, 0xfbac, 0xfb1e, 0xf8f9, 0xfa31, 0xfaba, 0xf8e4, 0xf963, 0xfb2a, 0xf9ea, 0xf9ac, 0xfc34, 0xfbdb, 0xfb28, 0xfd85, 0xfe95, 0xfd63, 0xff3a, 0x0162, 0x0027, 0x011e, 0x03b3, 0x032b, 0x02bf, 0x056e, 0x05a2, 0x0426, 0x0638, 0x071b, 0x0536, 0x05d6, 0x0788, 0x057c, 0x04b2, 0x0696, 0x04fd, 0x0307, 0x0458, 0x03e4, 0x00e7, 0x0179, 0x0201, 0xfede, 0xfe5d, 0xff91, 0xfd45, 0xfb6b, 0xfd2c, 0xfbff, 0xf96e, 0xfb01, 0xfb45, 0xf8b6, 0xf963, 0xfb49, 0xf91d, 0xf8f0, 0xfbb9, 0xfabb, 0xf9b5, 0xfc8b, 0xfd49, 0xfb76, 0xfdeb, 0x0004, 0xfe37, 0xff85, 0x028d, 0x017c, 0x0122, 0x04a4, 0x046f, 0x02e1, 0x05bb, 0x06b8, 0x046c, 0x05c4, 0x07f7, 0x0556, 0x0516, 0x07a2, 0x05ae, 0x03b5, 0x05e6, 0x0542, 0x01d6, 0x0342, 0x03c8, 0x0010, 0xfff2, 0x0195, 0xfe7f, 0xfca1, 0xff07, 0xfd19, 0xfa2a, 0xfc41, 0xfc38, 0xf8c9, 0xf9e7, 0xfbd7, 0xf89e, 0xf8a2, 0xfbb2, 0xf9e3, 0xf881, 0xfc01, 0xfc27, 0xf9a9, 0xfcd9, 0xfec2, 0xfc37, 0xfdf0, 0x0173, 0xff87, 0xff61, 0x03bb, 0x02e9, 0x0141, 0x0506, 0x05fc, 0x031a, 0x056e, 0x0801, 0x04ab, 0x051b, 0x0864, 0x05e5, 0x03f9, 0x074f, 0x0640, 0x0277, 0x04f3, 0x0570, 0x0109, 0x018d, 0x03b9, 0xff9d, 0xfe01, 0x0128, 0xfe56, 0xfb14, 0xfdf5, 0xfd7c, 0xf90e, 0xfaf7, 0xfccf, 0xf864, 0xf8c4, 0xfc36, 0xf94a, 0xf79e, 0xfc01, 0xfb37, 0xf810, 0xfc24, 0xfdb8, 0xfa2e, 0xfc8d, 0x0081, 0xfd5b, 0xfd9c, 0x02d3, 0x0120, 0xff50, 0x043e, 0x04e9, 0x0148, 0x04e8, 0x07af, 0x0377, 0x04c1, 0x08e7, 0x058c, 0x03d3, 0x088c, 0x06c6, 0x02b3, 0x0682, 0x06e5, 0x019d }; /* USER CODE END PV */ /* Private function prototypes -----------------------------------------------*/ void SystemClock_Config(void); static void SystemPower_Config(void); static void MX_GPDMA1_Init(void); static void MX_ICACHE_Init(void); static void MX_FMAC_Init(void); /* USER CODE BEGIN PFP */ /* USER CODE END PFP */ /* Private user code ---------------------------------------------------------*/ /* USER CODE BEGIN 0 */ /* USER CODE END 0 */ /** * @brief The application entry point. * @retval int */ int main(void) { /* USER CODE BEGIN 1 */ /* STM32U5xx HAL library initialization: - Configure the Flash prefetch - Configure the Systick to generate an interrupt each 1 msec - Set NVIC Group Priority to 3 - Low Level Initialization */ /* USER CODE END 1 */ /* MCU Configuration--------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); /* USER CODE BEGIN Init */ /* USER CODE END Init */ /* Configure the system clock */ SystemClock_Config(); /* Configure the System Power */ SystemPower_Config(); /* USER CODE BEGIN SysInit */ /* Configure LED1 */ BSP_LED_Init(LED1); /* USER CODE END SysInit */ /* Initialize all configured peripherals */ MX_GPDMA1_Init(); MX_ICACHE_Init(); MX_FMAC_Init(); /* USER CODE BEGIN 2 */ /*## Configure the FMAC peripheral ###########################################*/ sFmacConfig.InputBaseAddress = INPUT_BUFFER_BASE; sFmacConfig.InputBufferSize = INPUT_BUFFER_SIZE; sFmacConfig.InputThreshold = INPUT_THRESHOLD; sFmacConfig.CoeffBaseAddress = COEFFICIENT_BUFFER_BASE; sFmacConfig.CoeffBufferSize = COEFFICIENT_BUFFER_SIZE; sFmacConfig.OutputBaseAddress = OUTPUT_BUFFER_BASE; sFmacConfig.OutputBufferSize = OUTPUT_BUFFER_SIZE; sFmacConfig.OutputThreshold = OUTPUT_THRESHOLD; sFmacConfig.pCoeffA = aFilterCoeffA; sFmacConfig.CoeffASize = COEFF_VECTOR_A_SIZE; sFmacConfig.pCoeffB = aFilterCoeffB; sFmacConfig.CoeffBSize = COEFF_VECTOR_B_SIZE; sFmacConfig.Filter = FMAC_FUNC_IIR_DIRECT_FORM_1; sFmacConfig.InputAccess = FMAC_BUFFER_ACCESS_POLLING; sFmacConfig.OutputAccess = FMAC_BUFFER_ACCESS_DMA; sFmacConfig.Clip = FMAC_CLIP_DISABLED; sFmacConfig.P = COEFF_VECTOR_B_SIZE; sFmacConfig.Q = COEFF_VECTOR_A_SIZE; sFmacConfig.R = GAIN; if (HAL_FMAC_FilterConfig(&hfmac, &sFmacConfig) != HAL_OK) { /* Configuration Error */ Error_Handler(); } /*## Preload the input and output buffers ####################################*/ if (HAL_FMAC_FilterPreload(&hfmac, aInputValues, INPUT_BUFFER_SIZE, aOutputDataToPreload, COEFF_VECTOR_A_SIZE) != HAL_OK) { /* Configuration Error */ Error_Handler(); } /*## Start calculation of IIR filter in polling/DMA mode #####################*/ if (HAL_FMAC_FilterStart(&hfmac, aCalculatedFilteredData, &ExpectedCalculatedOutputSize) != HAL_OK) { /* Processing Error */ Error_Handler(); } /*## Wait for the end of the handling (no new data written) #################*/ /* For simplicity reasons, this example is just waiting till the end of the calculation, but the application may perform other tasks while the operation is ongoing. */ while(HalfOutputDataReadyCallback == CALLBACK_NOT_CALLED) { } while(OutputDataReadyCallback == CALLBACK_NOT_CALLED) { } /*## Stop the calculation of IIR filter in polling/DMA mode ##################*/ if (HAL_FMAC_FilterStop(&hfmac) != HAL_OK) { /* Processing Error */ Error_Handler(); } /*## Check the final error status ############################################*/ if(ErrorCount != 0) { /* Processing Error */ Error_Handler(); } /*## Compare FMAC results to the reference values #####################*/ for (uint32_t i = 0; i < ExpectedCalculatedOutputSize; i++) { if (aCalculatedFilteredData[i] != aRefFilteredData[i]) { /* Processing Error */ Error_Handler(); } } /* There is no error in the output values: Turn LED1 on */ BSP_LED_On(LED1); /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ } /* USER CODE END 3 */ } /** * @brief System Clock Configuration * @retval None */ void SystemClock_Config(void) { RCC_OscInitTypeDef RCC_OscInitStruct = {0}; RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; /** Configure the main internal regulator output voltage */ if (HAL_PWREx_ControlVoltageScaling(PWR_REGULATOR_VOLTAGE_SCALE1) != HAL_OK) { Error_Handler(); } /** Initializes the CPU, AHB and APB buses clocks */ RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_MSI; RCC_OscInitStruct.MSIState = RCC_MSI_ON; RCC_OscInitStruct.MSICalibrationValue = RCC_MSICALIBRATION_DEFAULT; RCC_OscInitStruct.MSIClockRange = RCC_MSIRANGE_4; RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_MSI; RCC_OscInitStruct.PLL.PLLMBOOST = RCC_PLLMBOOST_DIV1; RCC_OscInitStruct.PLL.PLLM = 1; RCC_OscInitStruct.PLL.PLLN = 80; RCC_OscInitStruct.PLL.PLLP = 2; RCC_OscInitStruct.PLL.PLLQ = 2; RCC_OscInitStruct.PLL.PLLR = 2; RCC_OscInitStruct.PLL.PLLRGE = RCC_PLLVCIRANGE_0; RCC_OscInitStruct.PLL.PLLFRACN = 0; if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) { Error_Handler(); } /** Initializes the CPU, AHB and APB buses clocks */ RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2 |RCC_CLOCKTYPE_PCLK3; RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; RCC_ClkInitStruct.APB3CLKDivider = RCC_HCLK_DIV1; if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_4) != HAL_OK) { Error_Handler(); } } /** * @brief Power Configuration * @retval None */ static void SystemPower_Config(void) { /* * Disable the internal Pull-Up in Dead Battery pins of UCPD peripheral */ HAL_PWREx_DisableUCPDDeadBattery(); /* * Switch to SMPS regulator instead of LDO */ if (HAL_PWREx_ConfigSupply(PWR_SMPS_SUPPLY) != HAL_OK) { Error_Handler(); } /* USER CODE BEGIN PWR */ /* USER CODE END PWR */ } /** * @brief FMAC Initialization Function * @param None * @retval None */ static void MX_FMAC_Init(void) { /* USER CODE BEGIN FMAC_Init 0 */ /* USER CODE END FMAC_Init 0 */ /* USER CODE BEGIN FMAC_Init 1 */ /* USER CODE END FMAC_Init 1 */ hfmac.Instance = FMAC; if (HAL_FMAC_Init(&hfmac) != HAL_OK) { Error_Handler(); } /* USER CODE BEGIN FMAC_Init 2 */ /* USER CODE END FMAC_Init 2 */ } /** * @brief GPDMA1 Initialization Function * @param None * @retval None */ static void MX_GPDMA1_Init(void) { /* USER CODE BEGIN GPDMA1_Init 0 */ /* USER CODE END GPDMA1_Init 0 */ /* Peripheral clock enable */ __HAL_RCC_GPDMA1_CLK_ENABLE(); /* GPDMA1 interrupt Init */ HAL_NVIC_SetPriority(GPDMA1_Channel1_IRQn, 0, 0); HAL_NVIC_EnableIRQ(GPDMA1_Channel1_IRQn); /* USER CODE BEGIN GPDMA1_Init 1 */ /* USER CODE END GPDMA1_Init 1 */ /* USER CODE BEGIN GPDMA1_Init 2 */ /* USER CODE END GPDMA1_Init 2 */ } /** * @brief ICACHE Initialization Function * @param None * @retval None */ static void MX_ICACHE_Init(void) { /* USER CODE BEGIN ICACHE_Init 0 */ /* USER CODE END ICACHE_Init 0 */ /* USER CODE BEGIN ICACHE_Init 1 */ /* USER CODE END ICACHE_Init 1 */ /** Enable instruction cache in 1-way (direct mapped cache) */ if (HAL_ICACHE_ConfigAssociativityMode(ICACHE_1WAY) != HAL_OK) { Error_Handler(); } if (HAL_ICACHE_Enable() != HAL_OK) { Error_Handler(); } /* USER CODE BEGIN ICACHE_Init 2 */ /* USER CODE END ICACHE_Init 2 */ } /* USER CODE BEGIN 4 */ /** * @brief FMAC half output data ready callback * @par hfmac: FMAC HAL handle * @retval None */ void HAL_FMAC_HalfOutputDataReadyCallback(FMAC_HandleTypeDef *hfmac) { HalfOutputDataReadyCallback = CALLBACK_CALLED; } /** * @brief FMAC output data ready callback * @par hfmac: FMAC HAL handle * @retval None */ void HAL_FMAC_OutputDataReadyCallback(FMAC_HandleTypeDef *hfmac) { OutputDataReadyCallback = CALLBACK_CALLED; } /** * @brief FMAC error callback * @par hfmac: FMAC HAL handle * @retval None */ void HAL_FMAC_ErrorCallback(FMAC_HandleTypeDef *hfmac) { ErrorCount++; } /* USER CODE END 4 */ /** * @brief This function is executed in case of error occurrence. * @retval None */ void Error_Handler(void) { /* USER CODE BEGIN Error_Handler_Debug */ /* User can add his own implementation to report the HAL error return state */ __disable_irq(); /* LED1 is blinking */ BSP_LED_Toggle(LED1); HAL_Delay(500); while (1) { } /* USER CODE END Error_Handler_Debug */ } #ifdef USE_FULL_ASSERT /** * @brief Reports the name of the source file and the source line number * where the assert_param error has occurred. * @param file: pointer to the source file name * @param line: assert_param error line source number * @retval None */ void assert_failed(uint8_t *file, uint32_t line) { /* USER CODE BEGIN 6 */ /* User can add his own implementation to report the file name and line number, ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */ /* USER CODE END 6 */ } #endif /* USE_FULL_ASSERT *根据以上的代码,使用STM32U575,ADC单通道采集,FMAC使用FIR滤波器功能,如何设计出ADC采集数据,通过GPDMA1,FMAC处理数据的代码,现已通过stm32 cubemx配置好了GPDMA1,使用标准轮询模式。需要完整的源文件和头文件

<template> <el-table ref="table" v-loading="loading" :border="border" :data="tableData" :header-cell-style="{ background: headerBgColor }" :height="tableHeight" :highlight-current-row="highlightCurrentRow" :row-class-name="rowClassName" :row-style="{ height: '24px' }" :stripe="stripe" :style="{ width: '100%', borderColor: tableBorderColor }" @selection-change="handleSelectionChange" @row-dblclick="handleRowClick" @row-click="handleRowClickSelect" > <el-table-column v-if="multipleSelection" :selectable="singleSelect ? checkSelectable : undefined" type="selection" width="40" ></el-table-column> <el-table-column v-if="showIndex" align="center" label="序号" width="60" > <template #default="scope"> {{ (currentPage - 1) * pageSize + scope.$index + 1 }} </template> </el-table-column> <el-table-column v-for="column in columns" :key="column.prop" :formatter="column.formatter" :label="column.label" :min-width="column.minWidth || '80'" :prop="column.prop" :width="column.width" v-if="!isColumnHidden(column)" :show-overflow-tooltip="true" :fixed="column.fixed" > <template #default="scope"> <el-tooltip :disabled="!isTextOverflow(scope.row[column.prop], column.className)" :effect="effect" style="max-width: 600px" :placement="placement" > <template #content> {{ scope.row[column.prop] }} </template> <el-button type="text" @click="handleAction(column.icon, scope.row)"> <svg-icon :icon-class="column.icon"/> </el-button> <svg-icon v-if="typeof column.preview === 'function' ? column.preview(scope.row) : column.preview" class="preview-icon" icon-class="primary" /> </el-tooltip> </template> </el-table-column> <el-table-column v-if="showActionColumn" :label="operation" :min-width="calculateActionColumnWidth()" fixed="right" > <template #default="scope"> <el-button v-for="button in (scope.row.actionButtons || actionButtons)" :key="button.name" size="small" type="text" :loading="typeof button.loading === 'function' ? button.loading(scope.row) : button.loading" v-if="!button.hasPermission || $auth.hasPermi(button.hasPermission)" :disabled="button.disabled ? (typeof button.disabled === 'function' ? button.disabled(scope.row) : button.disabled) : false" @click.stop="handleAction(button.name, scope.row)" > <svg-icon :icon-class="button.icon || button.name" class="action-icon" :class="{'disabled-text': button.disabled? (typeof button.disabled === 'function' ? button.disabled(scope.row) : button.disabled) : false}" /> {{ button.label }} </el-button> </template> </el-table-column> </el-table> <el-pagination :background="background" :current-page="currentPage" :layout="layout" :page-size="pageSize" :page-sizes="pageSizes" :total="total" @size-change="handleSizeChange" @current-change="handleCurrentChange" /> </template> <script> /** * ElementTableWrapper 组件 * 封装了 Element UI 的表格组件,提供了多选、序号、动态列、操作列和分页等功能 */ export default { name: 'ElementTableWrapper', props: { // 表格数据 tableData: { type: Array, default: () => [] }, // 列配置 columns: { type: Array, default: () => [] }, // 列配置 operation: { type: String, default: '操作' }, // 是否开启多选功能 multipleSelection: { type: Boolean, default: false }, // 是否显示操作列 showActionColumn: { type: Boolean, default: true }, // 是否显示边框 border: { type: Boolean, default: true }, // 是否显示斑马纹 stripe: { type: Boolean, default: false }, // 是否高亮当前行 highlightCurrentRow: { type: Boolean, default: false }, // 是否高亮当前行 dialogTable: { type: Boolean, default: false }, // 是否显示分页功能 paginationFlag: { type: Boolean, default: true }, // 行样式类名回调函数 rowClassName: { type: Function, default: () => '' }, // 操作按钮配置 actionButtons: { type: Array, default: () => [ {name: 'add', label: '新增', icon: 'add'}, {name: 'edit', label: '编辑', icon: 'edit'}, {name: 'delete', label: '删除', icon: 'delete'} ] }, // 表格头背景颜色 headerBgColor: { type: String, default: '#F9FAFB' }, // 表格边框颜色 tableBorderColor: { type: String, default: 'rgb(234, 236, 240)' }, // 新增单选控制props singleSelect: { // 启用单选模式 type: Boolean, default: false }, // 默认选中首行 defaultSelect: { type: Boolean, default: false }, // 新增分页相关props currentPage: { type: Number, default: 1 }, // 每页显示的记录数 pageSize: { type: Number, default: 10 }, // 总记录数 total: { type: Number, default: 0 }, // 每页显示记录数的可选值 pageSizes: { type: Array, default: () => [10, 20, 50, 100] }, // 分页组件的布局 layout: { type: String, default: 'total, sizes, prev, pager, next, jumper' }, // 是否显示分页按钮的背景 background: { type: Boolean, default: true }, // 表格高度 tableHeight: { type: [String, Number], default: '100%' // 默认100%高度 }, // 是否显示序号列 showIndex: { type: Boolean, default: true }, // 是否启用行点击事件 rowClickEnable: { type: Boolean, default: false }, // 行点击事件处理器 rowClickHandler: { type: Function, default: null }, // 提示框的样式效果 effect: { type: String, default: 'dark' }, // 提示框的位置 placement: { type: String, default: 'top' }, enableRowClickSelect: { type: Boolean, default: false }, // 新增 loading 属性 loading: { type: Boolean, default: false } }, data() { return { currentSelection: null, // 当前选中行 crossPageSelection: [], // 跨页选择的数据 } }, watch: { /** * 监听表格数据变化 * 当表格数据变化且 defaultSelect 为 true 时,默认选中第一行 * @param {Array} newVal - 新的表格数据 */ tableData(newVal) { if (this.defaultSelect && newVal.length > 0) { this.$nextTick(() => { // 切换第一行的选中状态为选中 this.$refs.table.toggleRowSelection(newVal[0], true) }) } }, }, mounted() { this.$emit('rendered'); // 触发 rendered 事件 }, methods: { /** * 处理操作按钮点击事件 * 触发与按钮名称对应的自定义事件,并传递当前行数据 * @param {string} actionName - 操作按钮的名称 * @param {Object} row - 当前行的数据 */ handleAction(actionName, row) { this.$emit(actionName, row); }, // 处理行点击事件 handleRowClick(row) { if (this.rowClickEnable) { // 触发自定义行点击事件 this.$emit('row-click', row); // 如果有自定义处理函数则执行 if (this.rowClickHandler) { this.rowClickHandler(row); } } }, /** * 获取文本颜色 * 根据列的文本颜色规则,判断是否需要修改文本颜色 * @param {Object} row - 当前行的数据 * @param {Object} column - 当前列的配置 * @returns {string} - 文本颜色 */ getTextColor(row, column) { // 将参数名从prop改为column if (column.textColorRule) { const {condition, color} = column.textColorRule; if (condition(row)) { // 新增:如果 color 是函数则调用并传入当前行数据,否则直接使用字符串 return typeof color === 'function' ? color(row) : color; } } return 'rgb(38, 38, 38)'; }, /** * 处理单元格点击事件 * 当单元格可点击时,触发 'cell-click' 自定义事件 * @param {Object} column - 当前列的配置 * @param {Object} row - 当前行的数据 */ handleCellClick(column, row) { if (typeof column.clickable === 'function' ? column.clickable(row) : column.clickable) { this.$emit('cell-click', { column, row, prop: column.prop }) } }, /** * 判断文本是否溢出 * 通过比较元素的滚动宽度和客户端宽度来判断文本是否溢出 * @param {string} text - 文本内容 * @param className * @returns {boolean} - 文本是否溢出 */ isTextOverflow(text, className) { if (!text || !className) return false; // 创建测量容器 const container = document.createElement('div'); container.className = className; container.style.cssText = position: absolute; visibility: hidden; white-space: nowrap; font-size: 14px; padding: 0 8px; max-width: 100%; ; // 创建文本测量元素 const textSpan = document.createElement('div'); textSpan.textContent = text; // 测量逻辑 document.body.appendChild(container); container.appendChild(textSpan); const containerWidth = container.offsetWidth; const textWidth = textSpan.offsetWidth; document.body.removeChild(container); // 双重判断:文本超过容器宽度且在表格最大宽度范围内 return textWidth > containerWidth; }, /** * 处理每页显示记录数变化事件 * 触发 'update:pageSize' 和 'pagination-change' 自定义事件 * @param {number} val - 新的每页显示记录数 */ handleSizeChange(val) { this.$emit('update:pageSize', val); this.$emit('pagination-change', { page: this.currentPage, size: val }); // 新增:滚动到表格顶部 this.$nextTick(() => { const tableWrapper = this.$refs.table.$el.querySelector('.el-table__body-wrapper'); if (tableWrapper) { tableWrapper.scrollTop = 0; } }); }, // 暴露给父组件的方法 toggleRowSelection(row, selected) { this.$refs.table.toggleRowSelection(row, selected) }, /** * 处理表格选中项变化事件 * 当开启单选模式时,确保只选中一行 * @param {Array} selection - 当前选中的行数据数组 */ handleSelectionChange(selection) { if (this.singleSelect) { if (selection.length > 1) { const last = selection[selection.length - 1] // 清空所有选中项 this.$refs.table.clearSelection() // 切换最后一项的选中状态为选中 this.$refs.table.toggleRowSelection(last) this.currentSelection = last } else { this.currentSelection = selection[0] || null } } // 触发 'selection-change' 自定义事件,传递跨页选择的数据 this.$emit('selection-change', selection) }, /** * 计算操作列的宽度 * 根据操作按钮的数量和每个按钮的大致宽度计算操作列的宽度 * @returns {number} - 操作列的宽度 */ calculateActionColumnWidth() { const getButtonWidth = (text) => { if (text.length >= 4) return 80; else if (text.length >= 2) return 60; return 40; }; // 权限判断方法(与模板中的v-if逻辑保持一致) const hasPermission = (button) => { return !button.hasPermission || this.$auth.hasPermi(button.hasPermission); }; const maxButtonCountRow = this.tableData.reduce((prev, current) => { // 过滤无权限按钮后比较 const prevValid = (prev.actionButtons || this.actionButtons).filter(hasPermission); const currentValid = (current.actionButtons || this.actionButtons).filter(hasPermission); return prevValid.length > currentValid.length ? prev : current; }, {}); // 过滤有效按钮 const validButtons = (maxButtonCountRow.actionButtons || this.actionButtons).filter(hasPermission); return validButtons.reduce((sum, button) => { return sum + getButtonWidth(button.label); }, 0); // 增加安全边距 }, /** * 检查行是否可选 * 当开启单选模式时,判断行是否可以被选中 * @param {Object} row - 当前行的数据 * @param {number} index - 当前行的索引(未使用) * @returns {boolean} - 行是否可选 */ checkSelectable(row, index) { return !this.currentSelection || row === this.currentSelection }, /** * 处理当前页码变化事件 * 触发 'update:currentPage' 和 'pagination-change' 自定义事件 * @param {number} val - 新的当前页码 */ handleCurrentChange(val) { this.$emit('update:currentPage', val); this.$emit('pagination-change', { page: val, size: this.pageSize }); // 新增:滚动到表格顶部 this.$nextTick(() => { const tableWrapper = this.$refs.table.$el.querySelector('.el-table__body-wrapper'); if (tableWrapper) { tableWrapper.scrollTop = 0; } }); }, // 新增列隐藏判断方法 isColumnHidden(column) { if (typeof column.hidden === 'function') { return column.hidden(this.$parent) // 传入父组件上下文 } return !!column.hidden }, /** * 处理行点击选中事件 * 当 enableRowClickSelect 为 true 时,选中点击的行 * @param {Object} row - 当前点击行的数据 */ handleRowClickSelect(row) { if (this.enableRowClickSelect) { if (this.singleSelect) { // 单选模式,清空其他选中项,选中当前行 this.$refs.table.clearSelection(); this.$refs.table.toggleRowSelection(row, true); } else { // 多选模式,切换当前行的选中状态 this.$refs.table.toggleRowSelection(row); } this.$emit('selection-change', this.$refs.table.selection); } } } }; </script> <style lang="scss" scoped> .table-box { display: flex; flex-direction: column; flex: 1; overflow: hidden; } .table-container { flex: 1; overflow: auto; ::v-deep .el-table { .el-table__body-wrapper { overflow: auto; height: calc(100% - 44px) !important; } } } /** * 对话框中的表格样式 * 设置表格高度为 100% */ .dialog-table { height: 100%; } /** * 分页组件容器样式 * 绝对定位到底部右侧,宽度为表格宽度减去 33px,文本右对齐 */ .pagination-wrapper { position: relative; text-align: right; margin-bottom: 10px; margin-top: 15px; } /** * 表格容器样式 * 确保表格容器有相对定位,设置最小高度 */ div:first-child { position: relative; min-height: 30px; /* 可根据需要调整最小高度 */ } /** * 分页按钮样式 * 设置分页按钮的边框、圆角、内边距和鼠标悬停样式 */ ::v-deep .el-pagination.is-background { .btn-prev, .btn-next { border: 1px solid #DCDFE6; border-radius: 4px; padding: 0 8px; margin: 0 5px; &:hover { color: #409EFF; border-color: #409EFF; } } } /** * 表格基础样式 * 设置表格字体大小,处理文本换行和溢出情况,设置预览图标样式 */ ::v-deep .el-table { font-size: 14px; /** * 允许换行的列样式 * 允许文本换行,调整行高 */ .wrap-text-column { white-space: normal !important; /* 允许换行 */ word-break: break-all; /* 允许单词内换行 */ line-height: 1.5; /* 调整行高 */ } /** * 鼠标悬停在表格行上时的样式 * 显示预览图标 */ tr:hover { .preview-icon { display: inline-block !important; } } .cell-content { .content-wrapper { .el-icon-loading { display: inline-block !important; position: absolute; right: 8px; top: 25%; color: #1D9C9D; } } } /** * 非换行列的样式 * 文本不换行,溢出部分显示省略号 */ :not(.wrap-text-column) { .cell { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } } /** * 文本省略样式 * 文本不换行,溢出部分显示省略号,为图标留出空间 */ .text-ellipsis { position: relative; padding-right: 24px; // 为图标留出空间 display: inline-block; width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } /** * 预览图标样式 * 默认隐藏,鼠标悬停在表格行上时显示 */ .preview-icon { display: none; position: absolute; right: 8px; top: 25%; cursor: pointer; color: #1D9C9D; } /** * 预览文本样式 * 文本不换行,溢出部分显示省略号,垂直居中 */ .preview-text { display: inline-block; width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; vertical-align: middle; line-height: 2; /** * 标签列样式 * 允许标签换行,设置标签样式 */ .tags-column { white-space: normal !important; line-height: 1.5; /** * 标签项样式 * 设置标签的边框、圆角、颜色和背景颜色 */ .tag-item { display: inline-block; padding: 2px 8px; margin: 2px; border: 1px solid rgba(255, 105, 41, 0.5); border-radius: 4px; color: #FF6929; background-color: transparent; font-size: 12px; word-break: keep-all; /* 防止单个标签换行 */ } } } /** * 表格表头和单元格样式 * 调整内边距,设置文本不换行,不隐藏溢出内容,不显示省略号 */ th, td { padding: 2px 0; .cell { white-space: nowrap; overflow: visible; text-overflow: ellipsis; line-height: 1; } } td.el-table__cell div { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } } /** * 操作项样式 * 设置操作按钮和操作项的布局为水平居中对齐 */ .operation, .action-item { display: flex; white-space: nowrap; /* 防止操作按钮换行 */ align-items: center; } /** * 文本省略样式 * 文本不换行,溢出部分显示省略号 */ .text-ellipsis { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .action-item { cursor: pointer; margin-right: 8px; &:last-child { margin-right: 0; } .action-text { margin-left: 4px; font-size: 12px; color: rgb(31, 198, 234); } .action-icon { width: 1em; height: 1em; color: #1FC6EA; transition: color 0.2s; &:hover { color: #1FC6EA; } } .disabled-text { color: #999; } } ::v-deep .el-button--text { padding: 2px 0; } .action-item { display: inline-flex; align-items: center; cursor: pointer; margin-right: 8px; &:last-child { margin-right: 0; } } .action-text { margin-left: 4px; font-size: 12px; color: #606266; } .action-icon { width: 1em; height: 1em; cursor: pointer; color: #606266; transition: color 0.2s; } .action-icon:hover { color: #1FC6EA; } /* 添加表格字体大小设置 */ ::v-deep .el-table { font-size: 14px; /* 可调整字体大小 */ } ::v-deep .el-table th, ::v-deep .el-table td { padding: 10px 0; /* 调整单元格内边距 */ } /* 表格内容单行显示 */ ::v-deep .el-table .cell { white-space: nowrap; /* 不换行 */ overflow: visible; /* 不隐藏溢出内容 */ text-overflow: ellipsis; /* 不显示省略号 */ line-height: 1; /* 行高 */ } </style> 数据内容{ "total": 77251, "rows": [ { "id": "3109226059753587717", "stationId": "10042", "stationName": "盘城变", "voltageLevel": "220kV", "voltageLevelCode": "33", "bayId": "10006395", "bayName": "2号主变", "areaId": "206", "areaName": "220北", "equipLevel": "32", "equipLevelName": "110kV", "equipName": "2号主变110kV侧中性点成套装置", "equipNo": "10MZ0108517959259", "equipModel": "SR-JXB-110", "equipTypeId": 141, "equipTypeName": "主变中性点成套装置", "transRunNo": "", "useEnvironment": "户外式", "useEnvironmentCode": "2", "structType": "", "structTypeCode": "", "insulationMedium": "", "insulationMediumCode": "", "ratedCurrent": null, "ratedBreakCurrent": null, "ratedCapacity": null, "breakerStructType": "", "breakerStructTypeCode": "", "ownNo": "", "produceOrgId": "", "produceOrg": "江苏省如高高压电器有限公司", "startTime": "2022-09-30", "manufactureDate": "2021-05-01", "lastUpdateTime": "", "nextUpdateTime": "", "cycle": "6", "cycleUnit": "1", "dispatchRecord": "", "regulatePressureMode": null, "regulatePressureModeCode": null, "equipmentType": null, "equipmentTypeCode": null, "phase": "O", "phaseCode": "4", "psrStateName": "在运", "psrState": "20" }, { "id": "3109226059753587718", "stationId": "10089", "stationName": "万寿变", "voltageLevel": "110kV", "voltageLevelCode": "32", "bayId": "10004149", "bayName": "1号主变", "areaId": "213", "areaName": "城北", "equipLevel": "32", "equipLevelName": "110kV", "equipName": "1号主变中性点成套装置", "equipNo": "10MZ0108518228845", "equipModel": "CG-IXB-110/1600", "equipTypeId": 141, "equipTypeName": "主变中性点成套装置", "transRunNo": "", "useEnvironment": "户外式", "useEnvironmentCode": "2", "structType": "", "structTypeCode": "", "insulationMedium": "", "insulationMediumCode": "", "ratedCurrent": null, "ratedBreakCurrent": null, "ratedCapacity": null, "breakerStructType": "", "breakerStructTypeCode": "", "ownNo": "", "produceOrgId": "", "produceOrg": "湖南长高高压开关有限公司", "startTime": "2023-01-01", "manufactureDate": "2021-11-01", "lastUpdateTime": "", "nextUpdateTime": "", "cycle": "6", "cycleUnit": "1", "dispatchRecord": "", "regulatePressureMode": null, "regulatePressureModeCode": null, "equipmentType": null, "equipmentTypeCode": null, "phase": "O", "phaseCode": "4", "psrStateName": "在运", "psrState": "20" }, { "id": "3109226059753587719", "stationId": "64386cb90e3c11ee90179e25b59ef9e0", "stationName": "绿洲变", "voltageLevel": "110kV", "voltageLevelCode": "32", "bayId": "64d4ac720e3c11ee90179e25b59ef9e0", "bayName": "1号主变", "areaId": "210", "areaName": "城南", "equipLevel": "32", "equipLevelName": "110kV", "equipName": "1号主变中性点成套装置", "equipNo": "10MZ0108519189286", "equipModel": "XK-ZJB-110", "equipTypeId": 141, "equipTypeName": "主变中性点成套装置", "transRunNo": "", "useEnvironment": "户内式", "useEnvironmentCode": "1", "structType": "", "structTypeCode": "", "insulationMedium": "", "insulationMediumCode": "", "ratedCurrent": null, "ratedBreakCurrent": null, "ratedCapacity": null, "breakerStructType": "", "breakerStructTypeCode": "", "ownNo": "", "produceOrgId": "", "produceOrg": "西安西电高压开关有限责任公司", "startTime": "2023-06-26", "manufactureDate": "2023-05-01", "lastUpdateTime": "", "nextUpdateTime": "", "cycle": "6", "cycleUnit": "1", "dispatchRecord": "", "regulatePressureMode": null, "regulatePressureModeCode": null, "equipmentType": null, "equipmentTypeCode": null, "phase": "O", "phaseCode": "4", "psrStateName": "在运", "psrState": "20" }, { "id": "3109226059753587720", "stationId": "64386cb90e3c11ee90179e25b59ef9e0", "stationName": "绿洲变", "voltageLevel": "110kV", "voltageLevelCode": "32", "bayId": "64d4ac7c0e3c11ee90179e25b59ef9e0", "bayName": "2号主变", "areaId": "210", "areaName": "城南", "equipLevel": "32", "equipLevelName": "110kV", "equipName": "2号主变中性点成套装置", "equipNo": "10MZ0108519190392", "equipModel": "XK-ZJB-110", "equipTypeId": 141, "equipTypeName": "主变中性点成套装置", "transRunNo": "", "useEnvironment": "户内式", "useEnvironmentCode": "1", "structType": "", "structTypeCode": "", "insulationMedium": "", "insulationMediumCode": "", "ratedCurrent": null, "ratedBreakCurrent": null, "ratedCapacity": null, "breakerStructType": "", "breakerStructTypeCode": "", "ownNo": "", "produceOrgId": "", "produceOrg": "西安西电高压开关有限责任公司", "startTime": "2023-06-26", "manufactureDate": "2023-05-01", "lastUpdateTime": "", "nextUpdateTime": "", "cycle": "6", "cycleUnit": "1", "dispatchRecord": "", "regulatePressureMode": null, "regulatePressureModeCode": null, "equipmentType": null, "equipmentTypeCode": null, "phase": "O", "phaseCode": "4", "psrStateName": "在运", "psrState": "20" }, { "id": "3109226059753587721", "stationId": "10000002", "stationName": "徐庄变", "voltageLevel": "110kV", "voltageLevelCode": "32", "bayId": "128246796", "bayName": "2号主变", "areaId": "213", "areaName": "城北", "equipLevel": "32", "equipLevelName": "110kV", "equipName": "2号主变中性点成套装置", "equipNo": "10MZ0108519046377", "equipModel": "GW13-72.5(W)", "equipTypeId": 141, "equipTypeName": "主变中性点成套装置", "transRunNo": "", "useEnvironment": "户内式", "useEnvironmentCode": "1", "structType": "", "structTypeCode": "", "insulationMedium": "", "insulationMediumCode": "", "ratedCurrent": null, "ratedBreakCurrent": null, "ratedCapacity": null, "breakerStructType": "", "breakerStructTypeCode": "", "ownNo": "", "produceOrgId": "", "produceOrg": "江苏如皋高压电器有限公司", "startTime": "2011-03-11", "manufactureDate": "2011-01-01", "lastUpdateTime": "", "nextUpdateTime": "", "cycle": "6", "cycleUnit": "1", "dispatchRecord": "", "regulatePressureMode": null, "regulatePressureModeCode": null, "equipmentType": null, "equipmentTypeCode": null, "phase": "O", "phaseCode": "4", "psrStateName": "在运", "psrState": "20" }, { "id": "3109226059753587722", "stationId": "10000002", "stationName": "徐庄变", "voltageLevel": "110kV", "voltageLevelCode": "32", "bayId": "10014690", "bayName": "1号主变", "areaId": "213", "areaName": "城北", "equipLevel": "32", "equipLevelName": "110kV", "equipName": "1号主变中性点成套装置", "equipNo": "10MZ0108519046388", "equipModel": "GW13-72.5(W)", "equipTypeId": 141, "equipTypeName": "主变中性点成套装置", "transRunNo": "", "useEnvironment": "户内式", "useEnvironmentCode": "1", "structType": "", "structTypeCode": "", "insulationMedium": "", "insulationMediumCode": "", "ratedCurrent": null, "ratedBreakCurrent": null, "ratedCapacity": null, "breakerStructType": "", "breakerStructTypeCode": "", "ownNo": "", "produceOrgId": "", "produceOrg": "江苏如皋高压电器有限公司", "startTime": "2011-03-11", "manufactureDate": "2011-01-01", "lastUpdateTime": "", "nextUpdateTime": "", "cycle": "6", "cycleUnit": "1", "dispatchRecord": "", "regulatePressureMode": null, "regulatePressureModeCode": null, "equipmentType": null, "equipmentTypeCode": null, "phase": "O", "phaseCode": "4", "psrStateName": "在运", "psrState": "20" }, { "id": "3109226059753587723", "stationId": "a13ce0756f8a06deed5382a7950153a13cbdc630ab", "stationName": "诚实变", "voltageLevel": "110kV", "voltageLevelCode": "32", "bayId": "c2b10909-afe1-47fa-af68-c268247d1a7d", "bayName": "2号主变", "areaId": "213", "areaName": "城北", "equipLevel": "32", "equipLevelName": "110kV", "equipName": "2号主变中性点成套装置", "equipNo": "10MZ0108521242648", "equipModel": "GW13-126W/1600", "equipTypeId": 141, "equipTypeName": "主变中性点成套装置", "transRunNo": "", "useEnvironment": "户内式", "useEnvironmentCode": "1", "structType": "", "structTypeCode": "", "insulationMedium": "", "insulationMediumCode": "", "ratedCurrent": null, "ratedBreakCurrent": null, "ratedCapacity": null, "breakerStructType": "", "breakerStructTypeCode": "", "ownNo": "", "produceOrgId": "", "produceOrg": "常州思源东芝变压器有限公司", "startTime": "2024-09-06", "manufactureDate": "2024-01-01", "lastUpdateTime": "", "nextUpdateTime": "", "cycle": "6", "cycleUnit": "1", "dispatchRecord": "", "regulatePressureMode": null, "regulatePressureModeCode": null, "equipmentType": null, "equipmentTypeCode": null, "phase": "O", "phaseCode": "4", "psrStateName": "在运", "psrState": "20" }, { "id": "3109226059753587724", "stationId": "19b7e87c-70b3-4736-9126-066604cfe72f", "stationName": "小村变", "voltageLevel": "110kV", "voltageLevelCode": "32", "bayId": "d22b61f9-4a32-4da2-b2d8-c10a447d1f51", "bayName": "2号主变", "areaId": "210", "areaName": "城南", "equipLevel": "32", "equipLevelName": "110kV", "equipName": "2号主变中性点成套装置", "equipNo": "10MZ0108521256500", "equipModel": "ZJKK-320-15", "equipTypeId": 141, "equipTypeName": "主变中性点成套装置", "transRunNo": "", "useEnvironment": "户内式", "useEnvironmentCode": "1", "structType": "", "structTypeCode": "", "insulationMedium": "", "insulationMediumCode": "", "ratedCurrent": null, "ratedBreakCurrent": null, "ratedCapacity": null, "breakerStructType": "", "breakerStructTypeCode": "", "ownNo": "", "produceOrgId": "", "produceOrg": "江苏如高高压电器有限公司", "startTime": "2024-09-23", "manufactureDate": "2024-02-01", "lastUpdateTime": "", "nextUpdateTime": "", "cycle": "6", "cycleUnit": "1", "dispatchRecord": "", "regulatePressureMode": null, "regulatePressureModeCode": null, "equipmentType": null, "equipmentTypeCode": null, "phase": "O", "phaseCode": "4", "psrStateName": "在运", "psrState": "20" }, { "id": "3109226059753587725", "stationId": "19b7e87c-70b3-4736-9126-066604cfe72f", "stationName": "小村变", "voltageLevel": "110kV", "voltageLevelCode": "32", "bayId": "6acbf7ba-0563-4500-92af-07f80a9f0137", "bayName": "1号主变", "areaId": "210", "areaName": "城南", "equipLevel": "32", "equipLevelName": "110kV", "equipName": "1号主变中性点成套装置", "equipNo": "10MZ0108521256499", "equipModel": "ZJKK-320-15", "equipTypeId": 141, "equipTypeName": "主变中性点成套装置", "transRunNo": "", "useEnvironment": "户内式", "useEnvironmentCode": "1", "structType": "", "structTypeCode": "", "insulationMedium": "", "insulationMediumCode": "", "ratedCurrent": null, "ratedBreakCurrent": null, "ratedCapacity": null, "breakerStructType": "", "breakerStructTypeCode": "", "ownNo": "", "produceOrgId": "", "produceOrg": "江苏如高高压电器有限公司", "startTime": "2024-09-23", "manufactureDate": "2024-02-01", "lastUpdateTime": "", "nextUpdateTime": "", "cycle": "6", "cycleUnit": "1", "dispatchRecord": "", "regulatePressureMode": null, "regulatePressureModeCode": null, "equipmentType": null, "equipmentTypeCode": null, "phase": "O", "phaseCode": "4", "psrStateName": "在运", "psrState": "20" }, { "id": "3109226059753587726", "stationId": "10055", "stationName": "珠江路变", "voltageLevel": "110kV", "voltageLevelCode": "32", "bayId": "4fcb2a97-9e97-4382-ad72-76fa14a0a900", "bayName": "3号主变", "areaId": "213", "areaName": "城北", "equipLevel": "32", "equipLevelName": "110kV", "equipName": "3号主变中性点成套装置", "equipNo": "10MZ0108521889218", "equipModel": "SR-JXB-110", "equipTypeId": 141, "equipTypeName": "主变中性点成套装置", "transRunNo": "3号主变中性点成套装置", "useEnvironment": "户外式", "useEnvironmentCode": "2", "structType": "", "structTypeCode": "", "insulationMedium": "", "insulationMediumCode": "", "ratedCurrent": null, "ratedBreakCurrent": null, "ratedCapacity": null, "breakerStructType": "", "breakerStructTypeCode": "", "ownNo": "KH250066", "produceOrgId": "", "produceOrg": "江苏如高高压电气有限公司", "startTime": "2025-04-01", "manufactureDate": "2025-03-01", "lastUpdateTime": "", "nextUpdateTime": "", "cycle": "6", "cycleUnit": "1", "dispatchRecord": "", "regulatePressureMode": null, "regulatePressureModeCode": null, "equipmentType": null, "equipmentTypeCode": null, "phase": "O", "phaseCode": "4", "psrStateName": "在运", "psrState": "20" }, { "id": "3109226059753587727", "stationId": "10054", "stationName": "云南路变", "voltageLevel": "110kV", "voltageLevelCode": "32", "bayId": "10001660", "bayName": "1号主变", "areaId": "213", "areaName": "城北", "equipLevel": "32", "equipLevelName": "110kV", "equipName": "1号主变中性点成套装置", "equipNo": "10MZ0108521404169", "equipModel": "XK-ZJB-110", "equipTypeId": 141, "equipTypeName": "主变中性点成套装置", "transRunNo": "", "useEnvironment": "户内式", "useEnvironmentCode": "1", "structType": "", "structTypeCode": "", "insulationMedium": "", "insulationMediumCode": "", "ratedCurrent": null, "ratedBreakCurrent": null, "ratedCapacity": null, "breakerStructType": "", "breakerStructTypeCode": "", "ownNo": "2801240138", "produceOrgId": "", "produceOrg": "西安西电高压开关有限责任公司", "startTime": "2024-10-23", "manufactureDate": "2024-08-30", "lastUpdateTime": "", "nextUpdateTime": "", "cycle": "6", "cycleUnit": "1", "dispatchRecord": "", "regulatePressureMode": null, "regulatePressureModeCode": null, "equipmentType": null, "equipmentTypeCode": null, "phase": "O", "phaseCode": "4", "psrStateName": "在运", "psrState": "20" }, { "id": "3109226059753587728", "stationId": "0f1da7c8-e937-47a9-ae19-485c64ed19bd", "stationName": "骆家变", "voltageLevel": "110kV", "voltageLevelCode": "32", "bayId": "09cf5ce2-3384-4b4c-920d-d782477a447f", "bayName": "2号主变", "areaId": "213", "areaName": "城北", "equipLevel": "32", "equipLevelName": "110kV", "equipName": "2号主变中性点成套装置", "equipNo": "10MZ0108521505000", "equipModel": "SR-JXB-110", "equipTypeId": 141, "equipTypeName": "主变中性点成套装置", "transRunNo": "", "useEnvironment": "户内式", "useEnvironmentCode": "1", "structType": "", "structTypeCode": "", "insulationMedium": "", "insulationMediumCode": "", "ratedCurrent": null, "ratedBreakCurrent": null, "ratedCapacity": null, "breakerStructType": "", "breakerStructTypeCode": "", "ownNo": "", "produceOrgId": "", "produceOrg": "江苏省如皋高压电器有限公司", "startTime": "2024-12-20", "manufactureDate": "2023-10-01", "lastUpdateTime": "", "nextUpdateTime": "", "cycle": "6", "cycleUnit": "1", "dispatchRecord": "", "regulatePressureMode": null, "regulatePressureModeCode": null, "equipmentType": null, "equipmentTypeCode": null, "phase": "O", "phaseCode": "4", "psrStateName": "在运", "psrState": "20" }, { "id": "3109226059753587729", "stationId": "0f1da7c8-e937-47a9-ae19-485c64ed19bd", "stationName": "骆家变", "voltageLevel": "110kV", "voltageLevelCode": "32", "bayId": "6ab30fc2-7c0f-4c53-8ee1-0e5b5745ec71", "bayName": "1号主变", "areaId": "213", "areaName": "城北", "equipLevel": "32", "equipLevelName": "110kV", "equipName": "1号主变中性点成套装置", "equipNo": "10MZ0108521504999", "equipModel": "SR-JXB-110", "equipTypeId": 141, "equipTypeName": "主变中性点成套装置", "transRunNo": "", "useEnvironment": "户内式", "useEnvironmentCode": "1", "structType": "", "structTypeCode": "", "insulationMedium": "", "insulationMediumCode": "", "ratedCurrent": null, "ratedBreakCurrent": null, "ratedCapacity": null, "breakerStructType": "", "breakerStructTypeCode": "", "ownNo": "", "produceOrgId": "", "produceOrg": "江苏省如皋高压电器有限公司", "startTime": "2024-12-20", "manufactureDate": "2023-10-01", "lastUpdateTime": "", "nextUpdateTime": "", "cycle": "6", "cycleUnit": "1", "dispatchRecord": "", "regulatePressureMode": null, "regulatePressureModeCode": null, "equipmentType": null, "equipmentTypeCode": null, "phase": "O", "phaseCode": "4", "psrStateName": "在运", "psrState": "20" }, { "id": "3109226059753587730", "stationId": "10054", "stationName": "云南路变", "voltageLevel": "110kV", "voltageLevelCode": "32", "bayId": "10001661", "bayName": "2号主变", "areaId": "213", "areaName": "城北", "equipLevel": "32", "equipLevelName": "110kV", "equipName": "2号主变中性点成套装置", "equipNo": "10MZ0108521500656", "equipModel": "XK-ZJB-110", "equipTypeId": 141, "equipTypeName": "主变中性点成套装置", "transRunNo": "", "useEnvironment": "户内式", "useEnvironmentCode": "1", "structType": "", "structTypeCode": "", "insulationMedium": "", "insulationMediumCode": "", "ratedCurrent": null, "ratedBreakCurrent": null, "ratedCapacity": null, "breakerStructType": "", "breakerStructTypeCode": "", "ownNo": "60613", "produceOrgId": "", "produceOrg": "西安西电高压开关有限公司", "startTime": "2024-12-19", "manufactureDate": "2006-06-01", "lastUpdateTime": "", "nextUpdateTime": "", "cycle": "6", "cycleUnit": "1", "dispatchRecord": "", "regulatePressureMode": null, "regulatePressureModeCode": null, "equipmentType": null, "equipmentTypeCode": null, "phase": "O", "phaseCode": "4", "psrStateName": "在运", "psrState": "20" }, { "id": "3109226059753587731", "stationId": "10100", "stationName": "上新河变", "voltageLevel": "110kV", "voltageLevelCode": "32", "bayId": "10005161", "bayName": "2号主变", "areaId": "210", "areaName": "城南", "equipLevel": "32", "equipLevelName": "110kV", "equipName": "2号主变中性点成套装置", "equipNo": "10MZ0108522469177", "equipModel": "SR-JXB-110", "equipTypeId": 141, "equipTypeName": "主变中性点成套装置", "transRunNo": "", "useEnvironment": "户外式", "useEnvironmentCode": "2", "structType": "", "structTypeCode": "", "insulationMedium": "", "insulationMediumCode": "", "ratedCurrent": null, "ratedBreakCurrent": null, "ratedCapacity": null, "breakerStructType": "", "breakerStructTypeCode": "", "ownNo": "KH250036828", "produceOrgId": "", "produceOrg": "江苏如高高压电器有限公司", "startTime": "2025-05-07", "manufactureDate": "2025-03-01", "lastUpdateTime": "", "nextUpdateTime": "", "cycle": "6", "cycleUnit": "1", "dispatchRecord": "", "regulatePressureMode": null, "regulatePressureModeCode": null, "equipmentType": null, "equipmentTypeCode": null, "phase": "O", "phaseCode": "4", "psrStateName": "在运", "psrState": "20" }, { "id": "3109226059753587732", "stationId": "10055", "stationName": "珠江路变", "voltageLevel": "110kV", "voltageLevelCode": "32", "bayId": "8bbba0e3-8214-4833-80c2-4fbb37cedd47", "bayName": "2号主变", "areaId": "213", "areaName": "城北", "equipLevel": "32", "equipLevelName": "110kV", "equipName": "2号主变中性点成套装置", "equipNo": "10MZ0108522399716", "equipModel": "SR-JXB-110", "equipTypeId": 141, "equipTypeName": "主变中性点成套装置", "transRunNo": "", "useEnvironment": "户内式", "useEnvironmentCode": "1", "structType": "", "structTypeCode": "", "insulationMedium": "", "insulationMediumCode": "", "ratedCurrent": null, "ratedBreakCurrent": null, "ratedCapacity": null, "breakerStructType": "", "breakerStructTypeCode": "", "ownNo": "KH250064", "produceOrgId": "", "produceOrg": "江苏如高高压电器有限公司", "startTime": "2025-05-06", "manufactureDate": "2025-03-01", "lastUpdateTime": "", "nextUpdateTime": "", "cycle": "6", "cycleUnit": "1", "dispatchRecord": "", "regulatePressureMode": null, "regulatePressureModeCode": null, "equipmentType": null, "equipmentTypeCode": null, "phase": "O", "phaseCode": "4", "psrStateName": "在运", "psrState": "20" }, { "id": "3109226059753587733", "stationId": "a13ce0756f8a06deed5382a7950153a13cbdc630ab", "stationName": "诚实变", "voltageLevel": "110kV", "voltageLevelCode": "32", "bayId": "9b15d344-3e5b-41f1-88fb-86f94ec6f5c3", "bayName": "1号主变", "areaId": "213", "areaName": "城北", "equipLevel": "32", "equipLevelName": "110kV", "equipName": "1号主变中性点成套装置", "equipNo": "10MZ0108522479005", "equipModel": "GW13-126W/1600", "equipTypeId": 141, "equipTypeName": "主变中性点成套装置", "transRunNo": "", "useEnvironment": "户内式", "useEnvironmentCode": "1", "structType": "", "structTypeCode": "", "insulationMedium": "", "insulationMediumCode": "", "ratedCurrent": null, "ratedBreakCurrent": null, "ratedCapacity": null, "breakerStructType": "", "breakerStructTypeCode": "", "ownNo": "", "produceOrgId": "", "produceOrg": "江苏华鹏变压器有限公司", "startTime": "2025-05-12", "manufactureDate": "2025-02-01", "lastUpdateTime": "", "nextUpdateTime": "", "cycle": "6", "cycleUnit": "1", "dispatchRecord": "", "regulatePressureMode": null, "regulatePressureModeCode": null, "equipmentType": null, "equipmentTypeCode": null, "phase": "O", "phaseCode": "4", "psrStateName": "在运", "psrState": "20" }, { "id": "3109222058689561600", "stationId": "154178358", "stationName": "滨南变", "voltageLevel": "220kV", "voltageLevelCode": "33", "bayId": null, "bayName": null, "areaId": "203", "areaName": "220南", "equipLevel": "22", "equipLevelName": "10kV", "equipName": "1号主变102B4接地刀闸", "equipNo": "10MZ0108517740354", "equipModel": null, "equipTypeId": 138, "equipTypeName": "低压隔离开关", "transRunNo": "102B4", "useEnvironment": "", "useEnvironmentCode": "", "structType": "", "structTypeCode": "", "insulationMedium": "", "insulationMediumCode": "", "ratedCurrent": 4000.0, "ratedBreakCurrent": null, "ratedCapacity": null, "breakerStructType": "", "breakerStructTypeCode": "", "ownNo": "C2113022", "produceOrgId": "", "produceOrg": "江苏如高高压电器有限公司", "startTime": "2022-06-30", "manufactureDate": "2022-07-01", "lastUpdateTime": "", "nextUpdateTime": "", "cycle": "6", "cycleUnit": "1", "dispatchRecord": "", "regulatePressureMode": null, "regulatePressureModeCode": null, "equipmentType": null, "equipmentTypeCode": null, "phase": null, "phaseCode": null, "psrStateName": "在运", "psrState": "20" }, { "id": "3109222058689561601", "stationId": "154178358", "stationName": "滨南变", "voltageLevel": "220kV", "voltageLevelCode": "33", "bayId": null, "bayName": null, "areaId": "203", "areaName": "220南", "equipLevel": "22", "equipLevelName": "10kV", "equipName": "1号主变102B5接地刀闸", "equipNo": "10MZ0108517740480", "equipModel": null, "equipTypeId": 138, "equipTypeName": "低压隔离开关", "transRunNo": "102B5", "useEnvironment": "", "useEnvironmentCode": "", "structType": "", "structTypeCode": "", "insulationMedium": "", "insulationMediumCode": "", "ratedCurrent": 4000.0, "ratedBreakCurrent": null, "ratedCapacity": null, "breakerStructType": "", "breakerStructTypeCode": "", "ownNo": "C2113021", "produceOrgId": "", "produceOrg": "江苏如高高压电器有限公司", "startTime": "2022-06-30", "manufactureDate": "2022-07-01", "lastUpdateTime": "", "nextUpdateTime": "", "cycle": "6", "cycleUnit": "1", "dispatchRecord": "", "regulatePressureMode": null, "regulatePressureModeCode": null, "equipmentType": null, "equipmentTypeCode": null, "phase": null, "phaseCode": null, "psrStateName": "在运", "psrState": "20" }, { "id": "3109222058689561602", "stationId": "154178358", "stationName": "滨南变", "voltageLevel": "220kV", "voltageLevelCode": "33", "bayId": null, "bayName": null, "areaId": "203", "areaName": "220南", "equipLevel": "22", "equipLevelName": "10kV", "equipName": "2号主变102A4接地刀闸", "equipNo": "10MZ0108517740549", "equipModel": null, "equipTypeId": 138, "equipTypeName": "低压隔离开关", "transRunNo": "102A4", "useEnvironment": "", "useEnvironmentCode": "", "structType": "", "structTypeCode": "", "insulationMedium": "", "insulationMediumCode": "", "ratedCurrent": 4000.0, "ratedBreakCurrent": null, "ratedCapacity": null, "breakerStructType": "", "breakerStructTypeCode": "", "ownNo": "C2113023", "produceOrgId": "", "produceOrg": "江苏如高高压电器有限公司", "startTime": "2022-06-30", "manufactureDate": "2022-07-01", "lastUpdateTime": "", "nextUpdateTime": "", "cycle": "6", "cycleUnit": "1", "dispatchRecord": "", "regulatePressureMode": null, "regulatePressureModeCode": null, "equipmentType": null, "equipmentTypeCode": null, "phase": null, "phaseCode": null, "psrStateName": "在运", "psrState": "20" } ], "code": 200, "msg": "查询成功" } 在this.tableData = res.rows.map(row => { const deviceType = row.equipTypeName; const deviceColumns = this.configMap[deviceType] || []; const newRow = {...row}; // 遍历所有列,若不在设备类型对应列中,则添加斜线 this.columns.forEach(col => { const prop = col.prop; if (!deviceColumns.includes(col.label)) { newRow[prop] = '/'; } }); return newRow; });为什么渲染的时候需要2s左右

使用PC2LCD 2021解析数据,图像大小 宽:154,高:16,点阵格式为 阴码,取模走向为顺向,扫描模式为水平扫描。解析的数组为0x04,0x00,0x42,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x02,0x03,0xFA,0x04,0x81,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0xFF,0xF8,0x43,0xE4,0x9E,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00, 0x80,0x09,0xF4,0x44,0x90,0x3F,0xFE,0x01,0xDC,0x40,0x03,0x00,0x3E,0x00,0x10,0xE0,0x31,0x83,0x81,0x00, 0x00,0x01,0x5A,0x87,0xD0,0x01,0xC0,0x00,0x89,0xC0,0x04,0x80,0x11,0x00,0x00,0x20,0x12,0x44,0x43,0x00, 0x3F,0xE1,0xF1,0x04,0x1F,0x02,0xA0,0x30,0x88,0x40,0x08,0x40,0x11,0x00,0x00,0x20,0x14,0x24,0x45,0x00, 0x00,0x00,0xE2,0x84,0x15,0x02,0xA0,0x30,0x50,0x40,0x08,0x40,0x1E,0x66,0x70,0x20,0xF4,0x20,0x49,0x00, 0x00,0x01,0x54,0x67,0x95,0x04,0x90,0x00,0x50,0x40,0x08,0x40,0x11,0x22,0x10,0x21,0x14,0x20,0x89,0x00, 0xFF,0xFA,0x40,0x04,0x95,0x08,0x88,0x00,0x50,0x40,0x08,0x40,0x11,0x22,0x10,0x21,0x14,0x21,0x11,0x00, 0x08,0x81,0xFF,0xC4,0x95,0x10,0x84,0x00,0x50,0x40,0x08,0x40,0x11,0x22,0x10,0x21,0x14,0x22,0x0F,0x80, 0x08,0x80,0x08,0x04,0x92,0x27,0xF2,0x30,0x20,0x43,0x04,0x80,0x11,0x22,0x10,0x21,0x12,0x44,0x41,0x00, 0x10,0x88,0x4F,0x84,0x92,0x00,0x80,0x30,0x21,0xF3,0x03,0x00,0x3E,0x1F,0x7C,0xF8,0xF9,0x87,0xC3,0x80, 0x20,0x88,0x48,0x04,0xA5,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0xC0,0x7B,0xFF,0xE8,0xC8,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 此时解析出来的数据是什么

大家在看

recommend-type

IFIX 4.5 MB1 驱动

 MB1:有两个版本,6.x 和 7.x 版,通过串行口连接所有支持 Modbus 串行通讯协议的设备。主要有 Modicon PLC 和其它控制仪表如:Honeywell UDC,UMC,Moore 的控制仪表等。支持 Mobus RTU 和 ASCII 两种通讯协议。当使用其与其它兼容设备通讯时,注意数据类型会与 Modicon 的数据类型有所差别。7.x 版本支持电话拨号连接和无线电连接。
recommend-type

TLSF-All.rar_网络编程_C/C++_

TLSF2.46源代码+相关的英文文献在网站http://rtportal.upv.es/rtmalloc/上可以下载到原代码,但注意下载文件的格式。
recommend-type

思源黑体、简体、中文全套TTF格式

思源黑体、简体、中文全套TTF格式
recommend-type

高频感应加热电源斩波器补偿电路的设计

本文在分析基于功率控制的Buck斩波器的小信号模型和反馈控制模式的基础上,探讨了反馈控制的传递函数和环路参数的设计。对于高频感应加热电源广泛应用的Buck斩波调功电路,设计了双极点、双零点补偿电路,补偿后的系统不仅提高了系统响应速度,而且消除了稳态误差,系统性能明显提高。实验结果证明了这种补偿电路的实用性和有效性,对高频感应加热电源的改进和研究具有很好的参考价值。
recommend-type

XposedDetector

Xposed探测器 预制的静态库,用于检测xposed和清除钩子。 该库基于。 一体化 Gradle: implementation ' io.github.vvb2060.ndk:xposeddetector:2.2 ' 该库是 ,因此您需要在项目中启用它(Android Gradle Plugin 4.1+): android { .. . buildFeatures { .. . prefab true } } 用法 ndk构建 您可以在Android.mk使用xposed_detector 。 例如,如果您的应用程序定义了libapp.so并使用xposed_detector ,则您的Android.mk文件应包括以下内容: include $( CLEAR_VARS ) LOCAL_MODULE

最新推荐

recommend-type

boh5_hmdp_for_learn_redis_by_fastapi_36224_1754229591966.zip

boh5_hmdp_for_learn_redis_by_fastapi_36224_1754229591966.zip
recommend-type

JAVA程设计坦克大战游戏含代码.docx

JAVA程设计坦克大战游戏含代码.docx
recommend-type

计算机应用基础教案备课(全套).doc

计算机应用基础教案备课(全套).doc
recommend-type

19年国赛服务器答案深度解析:网络搭建与应用

网络搭建与应用是一门涉及计算机网络规划、配置、管理和维护的技术学科。在19年的国家竞赛中,参与者需要展示他们对网络架构、网络设备、协议、安全等方面的知识,以及他们在真实世界问题解决中的实际应用能力。在网络搭建与应用19国赛服务器答案中,涉及的知识点可能包括但不限于以下几个方面: 1. 网络基础知识 - 了解网络的基本概念,包括网络的定义、分类(如LAN、WAN等)、网络的功能和网络协议栈(如TCP/IP模型)。 - 理解网络设备的功能和作用,例如交换机、路由器、防火墙等。 - 掌握网络通信的基本原理,包括数据链路层、网络层、传输层和应用层的协议和功能。 2. 网络设计与规划 - 学习如何根据不同的需求设计网络拓扑结构,例如星形、环形、总线型等。 - 掌握IP地址规划和子网划分的方法,如CIDR、VLSM等技术。 - 了解如何进行网络流量分析和带宽规划,以确保网络性能和稳定性。 3. 网络设备配置与管理 - 掌握交换机和路由器的配置命令,例如VLAN划分、路由协议配置、端口安全等。 - 理解网络设备的管理和维护策略,包括日志管理、性能监控和故障诊断。 4. 网络安全 - 学习网络安全的基本原则,包括数据加密、访问控制、入侵检测系统(IDS)和入侵防御系统(IPS)。 - 掌握常见的网络攻击手段及其防御措施,例如DDoS攻击、ARP欺骗、病毒和恶意软件的防御。 5. 服务器搭建与应用 - 了解不同类型的服务器和它们的应用场景,如Web服务器、数据库服务器、邮件服务器等。 - 学习服务器的安装、配置和管理方法,包括操作系统的安装、服务软件的部署、用户管理等。 6. 实践操作 - 通过搭建真实或虚拟的网络环境来实践理论知识,包括使用网络模拟软件(如GNS3、Packet Tracer等)进行网络设备配置和故障排除。 - 学习如何准备和参加网络相关的竞赛,包括时间管理和应对突发问题的策略。 在给定的压缩包子文件的文件名称列表中,“19年国赛服务器的答案”表明该文件包含具体的竞赛解答步骤和方法。文件可能涉及的是如何根据具体的网络搭建与应用的题目,一步一步地提供解题策略、配置命令和执行步骤等。具体内容可能包括: - 对竞赛题目需求的分析和理解。 - 对应的网络设计解决方案和实现步骤。 - 关键的配置命令和参数设置。 - 对于各种网络功能和安全性的测试方法。 - 可能遇到的问题及其解决方案。 综上所述,对于网络搭建与应用19国赛服务器答案的深入学习和掌握,能够帮助专业人士和学生扩展网络知识,提高解决复杂网络问题的能力,并为将来的IT行业工作奠定扎实的基础。通过针对竞赛题目的实际操作演练,还能增强个人的实践技能和创新思维能力。
recommend-type

【VS2010模块化秘籍】:提升项目管理效率的10个技巧

# 1. VS2010模块化编程概述 在现代软件开发中,模块化编程已经成为提高代码质量和促进团队协作的关键技术之一。本章将介绍在Visual Studio 2010(VS2010)环境中如何理解和实施模块化编程。 ## 1.1 什么是模块化编程? 模块化编程是一种组织程序结构的方法,将程序分解为独立且可管理的模块,每个模块实现一个特定的功能。在V
recommend-type

数据分析师发展前景

<think>嗯,用户现在想了解数据分析师的职业发展和未来前景。根据之前的对话,用户是土木本科想转行,之前我建议过数据分析作为可能的方向之一,现在他可能想更深入了解这个领域的潜力。 首先,我需要参考之前提供的引用内容。引用1提到了数据分析师的职业路径,从专员到专家,还有技能提升的重要性。引用2和3强调了行业需求增长和技能的必要性,引用4则讨论了成为行业专家的长期发展优势。这些都需要整合到回答中。 用户的问题集中在职业前景和趋势,所以我要覆盖市场需求、职业阶段、技能要求、行业趋势和转行建议。考虑到用户是转行者,需要突出土木背景如何与数据分析结合,比如提到的BIM、GIS或者工程数据分析,这样
recommend-type

Elasticsearch及IK分词器安装包资源汇总

标题中提到的知识点包括Elasticsearch安装包和IK分词器,这是进行搜索引擎搭建和数据文本分析的重要组件。Elasticsearch是一个基于Lucene构建的开源搜索引擎,具有水平可伸缩性、高可用性和易用性的特点。它提供了全文搜索功能,同时支持结构化搜索和分析,常被用于大数据分析场景中。 描述中涉及的版本信息表明了所附的安装包和分词器支持不同版本的Elasticsearch。Elasticsearch版本6.x和7.x分别对应了两个主要的版本线,而IK分词器是专门为Elasticsearch设计的中文分词插件。 IK分词器是一款支持中文分词的扩展插件,可以根据中文语境进行智能分词,包括正向匹配、正向最大匹配和逆向最大匹配等算法,对中文文本进行处理。分词器的版本通常会与Elasticsearch的版本相匹配,以保证兼容性和最佳性能。 提到的logstash是与Elasticsearch配合使用的数据处理管道工具,负责收集、处理和转发数据。logstash可以作为事件的中介来处理各种来源的数据,然后将其发送到Elasticsearch进行存储。本压缩包中的logstash-6.4.3.tar.gz对应的版本表明了它的兼容性,适用于Elasticsearch 6.x版本。 压缩包文件名称列表中的文件包含了不同软件的多个版本。其中,“elasticsearch-head-master.zip”是一个可以对Elasticsearch进行可视化管理的Chrome插件,它提供了包括集群管理、索引管理、数据操作和查询在内的功能。 另外,“mysql-connector-java-5.1.41.jar”是一个MySQL数据库的Java驱动程序,用于连接Java应用程序和MySQL数据库,但这似乎与Elasticsearch及IK分词器直接关联不大,可能是一个辅助组件,用于在某些集成场景下将数据从MySQL迁移到Elasticsearch。 从标签内容来看,Elasticsearch被归类于源码软件、大数据和搜索引擎类别。它是一个重要的大数据处理组件,特别是在全文搜索和文本分析领域。在大数据背景下,Elasticsearch凭借其卓越的搜索和分析能力,已经成为企业构建和维护搜索引擎的首选技术之一。 总结来说,本次提供的压缩包包含了多个关键组件,它们共同支持构建一个功能强大的搜索引擎和数据分析平台。Elasticsearch自身及其配套的IK分词器、logstash和可视化插件elasticsearch-head,均对大数据和搜索领域有着重要意义。尽管这些工具具有复杂性,但它们的组合使用使得数据的索引、搜索、可视化和分析变得简单、快速和强大。
recommend-type

从零开始:Axure插件开发入门指南,构建自定义Chrome工具

# 摘要 随着原型设计工具Axure RP的广泛应用,定制化插件开发变得日益重要。本文旨在为开发者提供一个完整的Axure插件开发指南,从基础概念到环境搭建,再到核心编程和界面定制,最终实现交互逻辑与发布维护。通过详细解析插件的API、JavaScript编程、数据管理、界面设计及发布流程,本文帮助开发者深入理解并掌握Axure插件开发的关键技术,确保开发过程的高效性和插件的稳定运行。 # 关键字 Axur
recommend-type

代码错误,修改代码

<think>好的,用户说代码有错误,需要修改。首先我得仔细看看之前的代码哪里有问题。题目是关于彩灯的操作和查询,每个彩灯有一个周期k_i,每次操作区间加1,查询时判断当前按动次数是否为k_i的倍数。 首先,用户提供的代码使用了树状数组(Fenwick Tree)来维护差分数组,实现区间加和单点查询。但可能存在一些问题。比如,树状数组的差分处理是否正确? 在区间更新时,原代码是add(l, 1)和add(r+1, -1),这应该是正确的差分方法。当查询单点x时,sum(x)得到的是从1到x的累计值,也就是该点的实际操作次数。这部分逻辑看起来没问题。 但可能的问题在于,当k_i的值很大时,
recommend-type

筹资风险分析模板:Excel高效风险评估工具

Excel模板筹资风险分析.zip是一个用于财务风险分析的工具包,它可能包含了一个名为“筹资风险分析.xlsx”的Excel文件,这个文件被压缩在ZIP格式的压缩包中。下面将详细说明这个Excel模板中可能包含的知识点: 1. 筹资风险概念: 筹资风险指的是企业在筹资过程中由于各种不确定因素的影响,使得企业实际获得的筹资成本高于预期成本,或者筹资方式、筹资渠道未能达到预期目的,从而对企业财务状况和经营成果产生不利影响的可能性。筹资风险可以来源于金融市场波动、债务利率上升、企业信用评级下降等因素。 2. Excel在财务分析中的应用: Excel作为一个强大的电子表格软件,广泛应用于各种财务数据分析和管理中。它具备数据处理、图表制作、公式计算等功能,非常适合用来制作财务模型、进行预算编制、风险分析等任务。筹资风险分析中,Excel可以帮助用户进行敏感性分析、情景模拟和概率分析等。 3. 筹资风险分析的关键要素: - 资本结构:分析企业的债务与权益比例,评估不同筹资方式对资本结构的影响。 - 债务成本:估算企业债务的利率和偿还期限,考虑利率风险和偿债压力。 - 股权成本:计算股权筹资的期望回报率,评估股权稀释的影响。 - 流动性风险:考虑筹资后的资金流动性,确保企业运营资金的充足性。 - 筹资成本:计算不同筹资方式的综合成本,比较各种筹资渠道的经济性。 4. Excel模板筹资风险分析.xlsx可能包含的功能: - 数据录入区:用于输入企业的财务数据和筹资相关的具体参数。 - 计算引擎:使用Excel公式和函数来计算筹资成本、预期回报率等关键指标。 - 情景分析表:通过调整不同的变量,模拟出不同的筹资情景,分析其对企业财务状况的影响。 - 敏感性分析:评估筹资参数变动对企业风险和回报的影响程度。 - 图表展示:将分析结果以图表的形式展现出来,比如使用条形图、折线图和饼图等,直观展示风险和回报的对比。 - 结论和建议:根据分析结果提供筹资策略的优化建议。 5. 筹资风险分析的实施步骤: - 明确分析目标:确定分析筹资风险的目的和需要关注的关键点。 - 收集数据:搜集相关的市场数据、企业财务报表、筹资计划等。 - 构建模型:在Excel中根据筹资风险分析的理论框架构建分析模型。 - 输入参数:将收集到的数据输入到Excel模型中。 - 运行分析:利用Excel的数据处理能力,执行必要的计算和分析。 - 解读结果:分析输出结果,并据此解读筹资风险水平。 - 制定策略:基于分析结果,提出筹资策略和风险控制措施。 6. 筹资风险分析的应用场景: 筹资风险分析不仅可以用于企业自身的筹资决策过程中,还可以在投资评估、财务咨询、风险管理和战略规划等领域发挥作用。在企业层面,它可以辅助管理层和财务部门制定更为稳健和有效的资金筹集计划;在咨询领域,可以为投资者提供分析企业的筹资活动和风险状况的专业意见;在学术研究中,筹资风险分析是研究企业资本结构和企业价值的重要工具。 7. 筹资风险分析的局限性: 尽管Excel模板筹资风险分析提供了有力的工具,但也存在局限性。模型依赖于准确的数据输入,如果假设或数据有误,将影响分析结果的可靠性。此外,市场环境的变化、政策的调整以及其他不可预测的因素都可能对筹资风险造成影响,这些在模型中可能难以全面考虑。 通过使用Excel模板筹资风险分析.zip内的筹资风险分析.xlsx文件,企业可以更有效地进行筹资风险管理,制定出更合理的筹资策略,从而降低财务风险,提高企业的整体价值。