diff --git a/app/Core/Inc/stm32f1xx_it.h b/app/Core/Inc/stm32f1xx_it.h
index b203554..60cee3c 100644
--- a/app/Core/Inc/stm32f1xx_it.h
+++ b/app/Core/Inc/stm32f1xx_it.h
@@ -56,7 +56,6 @@ void SVC_Handler(void);
void DebugMon_Handler(void);
void PendSV_Handler(void);
void SysTick_Handler(void);
-void USART1_IRQHandler(void);
void USART2_IRQHandler(void);
/* USER CODE BEGIN EFP */
diff --git a/app/Core/Inc/tim.h b/app/Core/Inc/tim.h
index 4e8d7f9..47e3e87 100644
--- a/app/Core/Inc/tim.h
+++ b/app/Core/Inc/tim.h
@@ -32,12 +32,14 @@ extern "C" {
/* USER CODE END Includes */
extern TIM_HandleTypeDef htim1;
+extern TIM_HandleTypeDef htim4;
/* USER CODE BEGIN Private defines */
/* USER CODE END Private defines */
void MX_TIM1_Init(void);
+void MX_TIM4_Init(void);
void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim);
diff --git a/app/Core/Src/main.c b/app/Core/Src/main.c
index 15dca31..f652afa 100644
--- a/app/Core/Src/main.c
+++ b/app/Core/Src/main.c
@@ -92,6 +92,7 @@ int main(void)
MX_USART2_UART_Init();
MX_USART1_UART_Init();
MX_TIM1_Init();
+ MX_TIM4_Init();
/* USER CODE BEGIN 2 */
extern int user_main();
user_main();
diff --git a/app/Core/Src/stm32f1xx_it.c b/app/Core/Src/stm32f1xx_it.c
index efe4afb..d747a94 100644
--- a/app/Core/Src/stm32f1xx_it.c
+++ b/app/Core/Src/stm32f1xx_it.c
@@ -56,7 +56,6 @@
/* USER CODE END 0 */
/* External variables --------------------------------------------------------*/
-extern UART_HandleTypeDef huart1;
extern UART_HandleTypeDef huart2;
/* USER CODE BEGIN EV */
@@ -201,20 +200,6 @@ void SysTick_Handler(void)
/******************************************************************************/
/**
- * @brief This function handles USART1 global interrupt.
- */
-void USART1_IRQHandler(void)
-{
- /* USER CODE BEGIN USART1_IRQn 0 */
-
- /* USER CODE END USART1_IRQn 0 */
- HAL_UART_IRQHandler(&huart1);
- /* USER CODE BEGIN USART1_IRQn 1 */
-
- /* USER CODE END USART1_IRQn 1 */
-}
-
-/**
* @brief This function handles USART2 global interrupt.
*/
void USART2_IRQHandler(void)
diff --git a/app/Core/Src/tim.c b/app/Core/Src/tim.c
index 0688f08..7540a22 100644
--- a/app/Core/Src/tim.c
+++ b/app/Core/Src/tim.c
@@ -25,6 +25,7 @@
/* USER CODE END 0 */
TIM_HandleTypeDef htim1;
+TIM_HandleTypeDef htim4;
/* TIM1 init function */
void MX_TIM1_Init(void)
@@ -96,6 +97,46 @@ void MX_TIM1_Init(void)
HAL_TIM_MspPostInit(&htim1);
}
+/* TIM4 init function */
+void MX_TIM4_Init(void)
+{
+
+ /* USER CODE BEGIN TIM4_Init 0 */
+
+ /* USER CODE END TIM4_Init 0 */
+
+ TIM_ClockConfigTypeDef sClockSourceConfig = {0};
+ TIM_MasterConfigTypeDef sMasterConfig = {0};
+
+ /* USER CODE BEGIN TIM4_Init 1 */
+
+ /* USER CODE END TIM4_Init 1 */
+ htim4.Instance = TIM4;
+ htim4.Init.Prescaler = 72;
+ htim4.Init.CounterMode = TIM_COUNTERMODE_UP;
+ htim4.Init.Period = 65535;
+ htim4.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
+ htim4.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
+ if (HAL_TIM_Base_Init(&htim4) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
+ if (HAL_TIM_ConfigClockSource(&htim4, &sClockSourceConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
+ sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
+ if (HAL_TIMEx_MasterConfigSynchronization(&htim4, &sMasterConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN TIM4_Init 2 */
+
+ /* USER CODE END TIM4_Init 2 */
+
+}
void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle)
{
@@ -111,6 +152,17 @@ void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle)
/* USER CODE END TIM1_MspInit 1 */
}
+ else if(tim_baseHandle->Instance==TIM4)
+ {
+ /* USER CODE BEGIN TIM4_MspInit 0 */
+
+ /* USER CODE END TIM4_MspInit 0 */
+ /* TIM4 clock enable */
+ __HAL_RCC_TIM4_CLK_ENABLE();
+ /* USER CODE BEGIN TIM4_MspInit 1 */
+
+ /* USER CODE END TIM4_MspInit 1 */
+ }
}
void HAL_TIM_MspPostInit(TIM_HandleTypeDef* timHandle)
{
@@ -152,6 +204,17 @@ void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* tim_baseHandle)
/* USER CODE END TIM1_MspDeInit 1 */
}
+ else if(tim_baseHandle->Instance==TIM4)
+ {
+ /* USER CODE BEGIN TIM4_MspDeInit 0 */
+
+ /* USER CODE END TIM4_MspDeInit 0 */
+ /* Peripheral clock disable */
+ __HAL_RCC_TIM4_CLK_DISABLE();
+ /* USER CODE BEGIN TIM4_MspDeInit 1 */
+
+ /* USER CODE END TIM4_MspDeInit 1 */
+ }
}
/* USER CODE BEGIN 1 */
diff --git a/app/Core/Src/usart.c b/app/Core/Src/usart.c
index 2ccd36e..1df0932 100644
--- a/app/Core/Src/usart.c
+++ b/app/Core/Src/usart.c
@@ -113,9 +113,6 @@ void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle)
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
- /* USART1 interrupt Init */
- HAL_NVIC_SetPriority(USART1_IRQn, 0, 0);
- HAL_NVIC_EnableIRQ(USART1_IRQn);
/* USER CODE BEGIN USART1_MspInit 1 */
/* USER CODE END USART1_MspInit 1 */
@@ -169,8 +166,6 @@ void HAL_UART_MspDeInit(UART_HandleTypeDef* uartHandle)
*/
HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9|GPIO_PIN_10);
- /* USART1 interrupt Deinit */
- HAL_NVIC_DisableIRQ(USART1_IRQn);
/* USER CODE BEGIN USART1_MspDeInit 1 */
/* USER CODE END USART1_MspDeInit 1 */
diff --git a/app/MDK-ARM/EventRecorderStub.scvd b/app/MDK-ARM/EventRecorderStub.scvd
new file mode 100644
index 0000000..2956b29
--- /dev/null
+++ b/app/MDK-ARM/EventRecorderStub.scvd
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/app/MDK-ARM/app.uvguix.zwsd_cad3 b/app/MDK-ARM/app.uvguix.zwsd_cad3
index e1ebfe8..826acc0 100644
--- a/app/MDK-ARM/app.uvguix.zwsd_cad3
+++ b/app/MDK-ARM/app.uvguix.zwsd_cad3
@@ -15,17 +15,17 @@
38003
Registers
- 140 90
+ 140 100
346
Code Coverage
- 1010 160
+ 1010 656
204
Performance Analyzer
- 1170
+ 1170 175 175 146
@@ -70,7 +70,7 @@
466
Source Browser
500
- 300
+ 166
@@ -78,11 +78,11 @@
- 1
- 1
+ 0
+ 0
0
- 0
- -1
+ 50
+ 16
@@ -110,8 +110,8 @@
0
- 1480
- 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000A000000000000000100000050433A5C55736572735C7A7773645F636164335C4465736B746F705C576F726B706C6163655C70726F6A6563745C73746D33325F66313033633874365F64656D6F5C7372635C757365725F6D61696E2E63000000000B757365725F6D61696E2E6300000000C5D4F200FFFFFFFF4B433A5C55736572735C7A7773645F636164335C4465736B746F705C576F726B706C6163655C70726F6A6563745C73746D33325F66313033633874365F64656D6F5C7372635C706F72742E630000000006706F72742E6300000000FFDC7800FFFFFFFF59433A5C55736572735C7A7773645F636164335C4465736B746F705C576F726B706C6163655C70726F6A6563745C69666C79746F705F6D6963726F636F6E74726F6C6C65725C73646B5C73746D33325C73746D333273646B2E68000000000A73746D333273646B2E6800000000BECEA100FFFFFFFF6D433A5C55736572735C7A7773645F636164335C4465736B746F705C576F726B706C6163655C70726F6A6563745C73746D33325F66313033633874365F64656D6F5C69666C79746F705F6D6963726F636F6E74726F6C6C65725C73646B5C73746D33325C73746D333273646B2E63000000000A73746D333273646B2E6300000000F0A0A100FFFFFFFF75433A5C55736572735C7A7773645F636164335C4465736B746F705C576F726B706C6163655C70726F6A6563745C73746D33325F66313033633874365F64656D6F5C69666C79746F705F6D6963726F636F6E74726F6C6C65725C7A6D6F646275735C7374645C7A6D6F646275735F6D61737465722E6300000000107A6D6F646275735F6D61737465722E6300000000BCA8E100FFFFFFFF68433A5C55736572735C7A7773645F636164335C4465736B746F705C576F726B706C6163655C70726F6A6563745C73746D33325F66313033633874365F64656D6F5C69666C79746F705F6D6963726F636F6E74726F6C6C65725C7A6B65795C7374645C7A6B65792E6300000000067A6B65792E63000000009CC1B600FFFFFFFF77433A5C55736572735C7A7773645F636164335C4465736B746F705C576F726B706C6163655C70726F6A6563745C73746D33325F66313033633874365F64656D6F5C69666C79746F705F6D6963726F636F6E74726F6C6C65725C7A6D6F646275735C7374645C6D6F646275735F70726F6365737365722E6300000000126D6F646275735F70726F6365737365722E6300000000F7B88600FFFFFFFF74433A5C55736572735C7A7773645F636164335C4465736B746F705C576F726B706C6163655C70726F6A6563745C73746D33325F66313033633874365F64656D6F5C69666C79746F705F6D6963726F636F6E74726F6C6C65725C7A6D6F646275735C7374645C7A6D6F646275735F736C6176652E63000000000F7A6D6F646275735F736C6176652E6300000000D9ADC200FFFFFFFF68433A5C55736572735C7A7773645F636164335C4465736B746F705C576F726B706C6163655C70726F6A6563745C73746D33325F66313033633874365F64656D6F5C69666C79746F705F6D6963726F636F6E74726F6C6C65725C73646B5C73746D33325C70776D2E63000000000570776D2E6300000000A5C2D700FFFFFFFF71433A5C55736572735C7A7773645F636164335C4465736B746F705C576F726B706C6163655C70726F6A6563745C73746D33325F66313033633874365F64656D6F5C69666C79746F705F6D6963726F636F6E74726F6C6C65725C66616E636F6E74726F6C65725C73746D33325C66616E2E63000000000566616E2E6300000000B3A6BE00FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000000000000020000007408000066000000000F000006030000
+ 1725
+ 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000C000000000000000100000050433A5C55736572735C7A7773645F636164335C4465736B746F705C576F726B706C6163655C70726F6A6563745C73746D33325F66313033633874365F64656D6F5C7372635C757365725F6D61696E2E63000000000B757365725F6D61696E2E6300000000C5D4F200FFFFFFFF4B433A5C55736572735C7A7773645F636164335C4465736B746F705C576F726B706C6163655C70726F6A6563745C73746D33325F66313033633874365F64656D6F5C7372635C706F72742E630000000006706F72742E6300000000FFDC7800FFFFFFFF59433A5C55736572735C7A7773645F636164335C4465736B746F705C576F726B706C6163655C70726F6A6563745C69666C79746F705F6D6963726F636F6E74726F6C6C65725C73646B5C73746D33325C73746D333273646B2E68000000000A73746D333273646B2E6800000000BECEA100FFFFFFFF6D433A5C55736572735C7A7773645F636164335C4465736B746F705C576F726B706C6163655C70726F6A6563745C73746D33325F66313033633874365F64656D6F5C69666C79746F705F6D6963726F636F6E74726F6C6C65725C73646B5C73746D33325C73746D333273646B2E63000000000A73746D333273646B2E6300000000F0A0A100FFFFFFFF75433A5C55736572735C7A7773645F636164335C4465736B746F705C576F726B706C6163655C70726F6A6563745C73746D33325F66313033633874365F64656D6F5C69666C79746F705F6D6963726F636F6E74726F6C6C65725C7A6D6F646275735C7374645C7A6D6F646275735F6D61737465722E6300000000107A6D6F646275735F6D61737465722E6300000000BCA8E100FFFFFFFF68433A5C55736572735C7A7773645F636164335C4465736B746F705C576F726B706C6163655C70726F6A6563745C73746D33325F66313033633874365F64656D6F5C69666C79746F705F6D6963726F636F6E74726F6C6C65725C7A6B65795C7374645C7A6B65792E6300000000067A6B65792E63000000009CC1B600FFFFFFFF77433A5C55736572735C7A7773645F636164335C4465736B746F705C576F726B706C6163655C70726F6A6563745C73746D33325F66313033633874365F64656D6F5C69666C79746F705F6D6963726F636F6E74726F6C6C65725C7A6D6F646275735C7374645C6D6F646275735F70726F6365737365722E6300000000126D6F646275735F70726F6365737365722E6300000000F7B88600FFFFFFFF74433A5C55736572735C7A7773645F636164335C4465736B746F705C576F726B706C6163655C70726F6A6563745C73746D33325F66313033633874365F64656D6F5C69666C79746F705F6D6963726F636F6E74726F6C6C65725C7A6D6F646275735C7374645C7A6D6F646275735F736C6176652E63000000000F7A6D6F646275735F736C6176652E6300000000D9ADC200FFFFFFFF68433A5C55736572735C7A7773645F636164335C4465736B746F705C576F726B706C6163655C70726F6A6563745C73746D33325F66313033633874365F64656D6F5C69666C79746F705F6D6963726F636F6E74726F6C6C65725C73646B5C73746D33325C70776D2E63000000000570776D2E6300000000A5C2D700FFFFFFFF71433A5C55736572735C7A7773645F636164335C4465736B746F705C576F726B706C6163655C70726F6A6563745C73746D33325F66313033633874365F64656D6F5C69666C79746F705F6D6963726F636F6E74726F6C6C65725C66616E636F6E74726F6C65725C73746D33325C66616E2E63000000000566616E2E6300000000B3A6BE00FFFFFFFF62433A5C55736572735C7A7773645F636164335C4465736B746F705C576F726B706C6163655C70726F6A6563745C73746D33325F66313033633874365F64656D6F5C6170705C4D444B2D41524D5C737461727475705F73746D33326631303378622E730000000015737461727475705F73746D33326631303378622E7300000000EAD6A300FFFFFFFF54433A5C55736572735C7A7773645F636164335C4465736B746F705C576F726B706C6163655C70726F6A6563745C73746D33325F66313033633874365F64656D6F5C6170705C436F72655C5372635C6D61696E2E6300000000066D61696E2E6300000000F6FA7D00FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000000000000020000007408000066000000000F000006030000
@@ -1822,7 +1822,7 @@
Build
966
- 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000002001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA0000000000000000000000000000000000000000000000000100000001000000960000000300205000000000036170709600000000000000010003617070000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000
+ 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000002001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0000000000000000010000000000000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA0000000000000000000000000000000000000000000000000100000001000000960000000300205000000000036170709600000000000000010003617070000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000
583
@@ -1838,7 +1838,1748 @@
Debug
2373
- 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000
+ 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000
+
+
+ 898
+ 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000
+
+
+ 898
+ 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000
+
+
+
+ 0
+ 1920
+ 1080
+
+
+
+ 1
+ Debug
+
+ -1
+ -1
+ 1
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ F40000004F00000080070000DF000000
+
+
+ 16
+ 7408000066000000000F0000F6000000
+
+
+
+ 1005
+ 1005
+ 1
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 0300000066000000ED00000025030000
+
+
+ 16
+ D60700006D000000C608000038010000
+
+
+
+ 109
+ 109
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 0300000066000000ED00000025030000
+
+
+ 16
+ D60700006D000000F2080000AD020000
+
+
+
+ 1465
+ 1465
+ 1
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ C7030000590300007D070000CD030000
+
+
+ 16
+ D60700006D0000009E0A0000FD000000
+
+
+
+ 1466
+ 1466
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ C7030000590300007D070000CD030000
+
+
+ 16
+ D60700006D0000009E0A0000FD000000
+
+
+
+ 1467
+ 1467
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ C7030000590300007D070000CD030000
+
+
+ 16
+ D60700006D0000009E0A0000FD000000
+
+
+
+ 1468
+ 1468
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ C7030000590300007D070000CD030000
+
+
+ 16
+ D60700006D0000009E0A0000FD000000
+
+
+
+ 1506
+ 1506
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 16384
+ 0
+
+ 16
+ A3040000660000008D05000010020000
+
+
+ 16
+ D60700006D000000C608000038010000
+
+
+
+ 1913
+ 1913
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ F7000000660000007D070000C6000000
+
+
+ 16
+ D60700006D0000009E0A0000FD000000
+
+
+
+ 1935
+ 1935
+ 1
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 32768
+ 0
+
+ 16
+ C7030000590300007D070000CD030000
+
+
+ 16
+ D60700006D000000C608000038010000
+
+
+
+ 1936
+ 1936
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ C7030000590300007D070000CD030000
+
+
+ 16
+ D60700006D000000C608000038010000
+
+
+
+ 1937
+ 1937
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ C7030000590300007D070000CD030000
+
+
+ 16
+ D60700006D000000C608000038010000
+
+
+
+ 1939
+ 1939
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ C7030000590300007D070000CD030000
+
+
+ 16
+ D60700006D0000009E0A0000FD000000
+
+
+
+ 1940
+ 1940
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ C7030000590300007D070000CD030000
+
+
+ 16
+ D60700006D0000009E0A0000FD000000
+
+
+
+ 1941
+ 1941
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ C7030000590300007D070000CD030000
+
+
+ 16
+ D60700006D0000009E0A0000FD000000
+
+
+
+ 1942
+ 1942
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ C7030000590300007D070000CD030000
+
+
+ 16
+ D60700006D0000009E0A0000FD000000
+
+
+
+ 195
+ 195
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 0300000066000000ED00000025030000
+
+
+ 16
+ D60700006D000000F2080000AD020000
+
+
+
+ 196
+ 196
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 0300000066000000ED00000025030000
+
+
+ 16
+ D60700006D000000F2080000AD020000
+
+
+
+ 197
+ 197
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 32768
+ 0
+
+ 16
+ 03000000440200008D050000A4020000
+
+
+ 16
+ D60700006D0000009E0A0000FD000000
+
+
+
+ 198
+ 198
+ 1
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 32768
+ 0
+
+ 16
+ 0000000042030000C0030000E6030000
+
+
+ 16
+ D60700006D0000009E0A0000FD000000
+
+
+
+ 199
+ 199
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 03000000440200008D050000A4020000
+
+
+ 16
+ D60700006D0000009E0A0000FD000000
+
+
+
+ 203
+ 203
+ 1
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 8192
+ 0
+
+ 16
+ F40000006300000080070000DF000000
+
+
+ 16
+ D60700006D0000009E0A0000FD000000
+
+
+
+ 204
+ 204
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ F7000000660000007D070000C6000000
+
+
+ 16
+ D60700006D0000009E0A0000FD000000
+
+
+
+ 221
+ 221
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 00000000000000000000000000000000
+
+
+ 16
+ 0A0000000A0000006E0000006E000000
+
+
+
+ 2506
+ 2506
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ A3040000660000008D05000010020000
+
+
+ 16
+ D60700006D000000C608000038010000
+
+
+
+ 2507
+ 2507
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ C7030000590300007D070000CD030000
+
+
+ 16
+ D60700006D0000009E0A0000FD000000
+
+
+
+ 343
+ 343
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ F7000000660000007D070000C6000000
+
+
+ 16
+ D60700006D0000009E0A0000FD000000
+
+
+
+ 346
+ 346
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ F7000000660000007D070000C6000000
+
+
+ 16
+ D60700006D0000009E0A0000FD000000
+
+
+
+ 35141
+ 35141
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ F7000000660000007D070000C6000000
+
+
+ 16
+ D60700006D000000C608000038010000
+
+
+
+ 35824
+ 35824
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ F7000000660000007D070000C6000000
+
+
+ 16
+ D60700006D0000009E0A0000FD000000
+
+
+
+ 35885
+ 35885
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ A3040000660000008D05000010020000
+
+
+ 16
+ D60700006D000000C608000038010000
+
+
+
+ 35886
+ 35886
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ A3040000660000008D05000010020000
+
+
+ 16
+ D60700006D000000C608000038010000
+
+
+
+ 35887
+ 35887
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ A3040000660000008D05000010020000
+
+
+ 16
+ D60700006D000000C608000038010000
+
+
+
+ 35888
+ 35888
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ A3040000660000008D05000010020000
+
+
+ 16
+ D60700006D000000C608000038010000
+
+
+
+ 35889
+ 35889
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ A3040000660000008D05000010020000
+
+
+ 16
+ D60700006D000000C608000038010000
+
+
+
+ 35890
+ 35890
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ A3040000660000008D05000010020000
+
+
+ 16
+ D60700006D000000C608000038010000
+
+
+
+ 35891
+ 35891
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ A3040000660000008D05000010020000
+
+
+ 16
+ D60700006D000000C608000038010000
+
+
+
+ 35892
+ 35892
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ A3040000660000008D05000010020000
+
+
+ 16
+ D60700006D000000C608000038010000
+
+
+
+ 35893
+ 35893
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ A3040000660000008D05000010020000
+
+
+ 16
+ D60700006D000000C608000038010000
+
+
+
+ 35894
+ 35894
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ A3040000660000008D05000010020000
+
+
+ 16
+ D60700006D000000C608000038010000
+
+
+
+ 35895
+ 35895
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ A3040000660000008D05000010020000
+
+
+ 16
+ D60700006D000000C608000038010000
+
+
+
+ 35896
+ 35896
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ A3040000660000008D05000010020000
+
+
+ 16
+ D60700006D000000C608000038010000
+
+
+
+ 35897
+ 35897
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ A3040000660000008D05000010020000
+
+
+ 16
+ D60700006D000000C608000038010000
+
+
+
+ 35898
+ 35898
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ A3040000660000008D05000010020000
+
+
+ 16
+ D60700006D000000C608000038010000
+
+
+
+ 35899
+ 35899
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ A3040000660000008D05000010020000
+
+
+ 16
+ D60700006D000000C608000038010000
+
+
+
+ 35900
+ 35900
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ A3040000660000008D05000010020000
+
+
+ 16
+ D60700006D000000C608000038010000
+
+
+
+ 35901
+ 35901
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ A3040000660000008D05000010020000
+
+
+ 16
+ D60700006D000000C608000038010000
+
+
+
+ 35902
+ 35902
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ A3040000660000008D05000010020000
+
+
+ 16
+ D60700006D000000C608000038010000
+
+
+
+ 35903
+ 35903
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ A3040000660000008D05000010020000
+
+
+ 16
+ D60700006D000000C608000038010000
+
+
+
+ 35904
+ 35904
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ A3040000660000008D05000010020000
+
+
+ 16
+ D60700006D000000C608000038010000
+
+
+
+ 35905
+ 35905
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ A3040000660000008D05000010020000
+
+
+ 16
+ D60700006D000000C608000038010000
+
+
+
+ 38003
+ 38003
+ 1
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 0300000066000000ED00000025030000
+
+
+ 16
+ D60700006D000000F2080000AD020000
+
+
+
+ 38007
+ 38007
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 03000000440200008D050000A4020000
+
+
+ 16
+ D60700006D0000009E0A0000FD000000
+
+
+
+ 436
+ 436
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 03000000440200008D050000A4020000
+
+
+ 16
+ D60700006D000000F2080000AD020000
+
+
+
+ 437
+ 437
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ C7030000590300007D070000CD030000
+
+
+ 16
+ D60700006D000000C608000038010000
+
+
+
+ 440
+ 440
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ C7030000590300007D070000CD030000
+
+
+ 16
+ D60700006D000000C608000038010000
+
+
+
+ 463
+ 463
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 03000000440200008D050000A4020000
+
+
+ 16
+ D60700006D000000F2080000AD020000
+
+
+
+ 466
+ 466
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 03000000440200008D050000A4020000
+
+
+ 16
+ D60700006D000000F2080000AD020000
+
+
+
+ 470
+ 470
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ F7000000660000007D070000C6000000
+
+
+ 16
+ D60700006D0000009E0A0000FD000000
+
+
+
+ 50000
+ 50000
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ A3040000660000008D05000010020000
+
+
+ 16
+ D60700006D000000C608000038010000
+
+
+
+ 50001
+ 50001
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ A3040000660000008D05000010020000
+
+
+ 16
+ D60700006D000000C608000038010000
+
+
+
+ 50002
+ 50002
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ A3040000660000008D05000010020000
+
+
+ 16
+ D60700006D000000C608000038010000
+
+
+
+ 50003
+ 50003
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ A3040000660000008D05000010020000
+
+
+ 16
+ D60700006D000000C608000038010000
+
+
+
+ 50004
+ 50004
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ A3040000660000008D05000010020000
+
+
+ 16
+ D60700006D000000C608000038010000
+
+
+
+ 50005
+ 50005
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ A3040000660000008D05000010020000
+
+
+ 16
+ D60700006D000000C608000038010000
+
+
+
+ 50006
+ 50006
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ A3040000660000008D05000010020000
+
+
+ 16
+ D60700006D000000C608000038010000
+
+
+
+ 50007
+ 50007
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ A3040000660000008D05000010020000
+
+
+ 16
+ D60700006D000000C608000038010000
+
+
+
+ 50008
+ 50008
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ A3040000660000008D05000010020000
+
+
+ 16
+ D60700006D000000C608000038010000
+
+
+
+ 50009
+ 50009
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ A3040000660000008D05000010020000
+
+
+ 16
+ D60700006D000000C608000038010000
+
+
+
+ 50010
+ 50010
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ A3040000660000008D05000010020000
+
+
+ 16
+ D60700006D000000C608000038010000
+
+
+
+ 50011
+ 50011
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ A3040000660000008D05000010020000
+
+
+ 16
+ D60700006D000000C608000038010000
+
+
+
+ 50012
+ 50012
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ A3040000660000008D05000010020000
+
+
+ 16
+ D60700006D000000C608000038010000
+
+
+
+ 50013
+ 50013
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ A3040000660000008D05000010020000
+
+
+ 16
+ D60700006D000000C608000038010000
+
+
+
+ 50014
+ 50014
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ A3040000660000008D05000010020000
+
+
+ 16
+ D60700006D000000C608000038010000
+
+
+
+ 50015
+ 50015
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ A3040000660000008D05000010020000
+
+
+ 16
+ D60700006D000000C608000038010000
+
+
+
+ 50016
+ 50016
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ A3040000660000008D05000010020000
+
+
+ 16
+ D60700006D000000C608000038010000
+
+
+
+ 50017
+ 50017
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ A3040000660000008D05000010020000
+
+
+ 16
+ D60700006D000000C608000038010000
+
+
+
+ 50018
+ 50018
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ A3040000660000008D05000010020000
+
+
+ 16
+ D60700006D000000C608000038010000
+
+
+
+ 50019
+ 50019
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ A3040000660000008D05000010020000
+
+
+ 16
+ D60700006D000000C608000038010000
+
+
+
+ 59392
+ 59392
+ 1
+ 0
+ 0
+ 0
+ 966
+ 0
+ 8192
+ 0
+
+ 16
+ 0000000000000000D10300001C000000
+
+
+ 16
+ 0A0000000A0000006E0000006E000000
+
+
+
+ 59393
+ 0
+ 1
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 00000000E603000080070000F9030000
+
+
+ 16
+ 0A0000000A0000006E0000006E000000
+
+
+
+ 59399
+ 59399
+ 0
+ 0
+ 0
+ 0
+ 476
+ 0
+ 8192
+ 1
+
+ 16
+ 000000001C000000E701000038000000
+
+
+ 16
+ 0A0000000A0000006E0000006E000000
+
+
+
+ 59400
+ 59400
+ 1
+ 0
+ 0
+ 0
+ 612
+ 0
+ 8192
+ 2
+
+ 16
+ 000000001C0000006F02000038000000
+
+
+ 16
+ 0A0000000A0000006E0000006E000000
+
+
+
+ 824
+ 824
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ C7030000590300007D070000CD030000
+
+
+ 16
+ D60700006D000000C608000038010000
+
+
+
+ 3311
+ 000000000B000000000000000020000001000000FFFFFFFFFFFFFFFFF4000000DF00000080070000E3000000010000000100001004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E6500200000010000007408000066000000000F0000F6000000F40000004F00000080070000DF0000000000000040280056080000000B446973617373656D626C7901000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF9C0400004F000000A004000029020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000200C000066000000100D000040020000A00400004F000000900500002902000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFF00000004F000000F40000003E030000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C4000000739400000180001000000100000080070000660000007008000055030000000000004F000000F00000003E0300000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73000000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7300000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657300000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273010000007394000001000000FFFFFFFFFFFFFFFF04000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000001000000FFFFFFFFFFFFFFFF000000003E030000800700004203000001000000010000100400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB09000001800080000001000000440B000059030000000F0000FD030000C40300004203000080070000E603000000000000404100560F0000001343616C6C20537461636B202B204C6F63616C73010000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203101000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFF000000000000000001000000000000000100000001000000FFFFFFFFC003000042030000C4030000E603000001000000020000100400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000000000000FFFFFFFFFFFFFFFF0000000029020000900500002D020000000000000100000004000000010000000000000000000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF01000077940000018000800000000000008007000044020000100D0000D4020000000000002D02000090050000BD0200000000000040820046060000000C4275696C64204F757470757400000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0642726F777365000000007794000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000
+
+
+ 59392
+ File
+
+ 2728
+ 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000001748414C5F554152545F527843706C7443616C6C6261636B96000000000000000D001748414C5F554152545F527843706C7443616C6C6261636B056874696D34056874696D3118706F72745F7365745F6C65645F6272696768746E6573736C0A4646545F4F7574707574034E5054044672657105627265616B056861646331056874696D3304504F525406687561727431044E44545200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000100150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000000180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000
+
+
+ 1423
+ 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000
+
+
+ 1423
+ 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000
+
+
+
+ 59399
+ Build
+
+ 955
+ 00200000000000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0000000000000000010000000000000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000000002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050FFFFFFFF00960000000000000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000000240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000
+
+
+ 583
+ 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000
+
+
+ 583
+ 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000
+
+
+
+ 59400
+ Debug
+
+ 2362
+ 00200000010000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000004002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000004002800000000000000000000000000000000010000000100000001801B80000000000400290000000000000000000000000000000001000000010000000180E57F0000000004002A00000000000000000000000000000000010000000100000001801C800000000004002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000004002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000020001002D0000000000000000000000000000000001000000010000000180F07F0000020001002E0000000000000000000000000000000001000000010000000180E8880000020000003700000000000000000000000000000000010000000100000001803B010000020001002F0000000000000000000000000000000001000000010000000180BB8A00000200010030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000002000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F0100000200010032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000002000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000002000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000
898
@@ -1865,9 +3606,9 @@
0
..\..\src\user_main.c
- 5
- 32
- 57
+ 16
+ 71
+ 75
1
0
@@ -1875,8 +3616,8 @@
..\..\src\port.c
0
- 1
- 1
+ 46
+ 70
1
0
@@ -1884,7 +3625,7 @@
C:\Users\zwsd_cad3\Desktop\Workplace\project\iflytop_microcontroller\sdk\stm32\stm32sdk.h
56
- 16
+ 4
42
1
@@ -1893,7 +3634,7 @@
..\..\iflytop_microcontroller\sdk\stm32\stm32sdk.c
0
- 9
+ 1
36
1
@@ -1901,7 +3642,7 @@
..\..\iflytop_microcontroller\zmodbus\std\zmodbus_master.c
- 10
+ 9
80
106
1
@@ -1911,7 +3652,7 @@
..\..\iflytop_microcontroller\zkey\std\zkey.c
0
- 42
+ 30
69
1
@@ -1929,7 +3670,7 @@
..\..\iflytop_microcontroller\zmodbus\std\zmodbus_slave.c
0
- 86
+ 74
113
1
@@ -1938,7 +3679,7 @@
..\..\iflytop_microcontroller\sdk\stm32\pwm.c
0
- 73
+ 61
100
1
@@ -1947,12 +3688,30 @@
..\..\iflytop_microcontroller\fancontroler\stm32\fan.c
0
- 86
+ 74
113
1
0
+
+ startup_stm32f103xb.s
+ 0
+ 122
+ 133
+ 1
+
+ 0
+
+
+ ../Core/Src/main.c
+ 0
+ 68
+ 76
+ 1
+
+ 0
+
diff --git a/app/MDK-ARM/app.uvoptx b/app/MDK-ARM/app.uvoptx
index 1afa8cd..4004a83 100644
--- a/app/MDK-ARM/app.uvoptx
+++ b/app/MDK-ARM/app.uvoptx
@@ -119,8 +119,28 @@
0
+ ARMRTXEVENTFLAGS
+ -L70 -Z18 -C0 -M0 -T1
+
+
+ 0
+ DLGTARM
+ (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)
+
+
+ 0
+ ARMDBGFLAGS
+
+
+
+ 0
+ DLGUARM
+
+
+
+ 0
CMSIS_AGDI
- -X"ATK CMSIS-DAP-Debugger" -UATK 05022018 -O206 -S8 -C0 -P00000000 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_128.FLM -FS08000000 -FL020000 -FP0($$Device:STM32F103C8$Flash\STM32F10x_128.FLM)
+ -X"ATK CMSIS-DAP-Debugger" -UATK 05022018 -O206 -S8 -C0 -P00000000 -N00("ARM CoreSight SW-DP") -D00(1BA01477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_128.FLM -FS08000000 -FL020000 -FP0($$Device:STM32F103C8$Flash\STM32F10x_128.FLM)
0
@@ -133,7 +153,24 @@
-U-O142 -O2254 -S0 -C0 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F10x_128 -FS08000000 -FL010000 -FP0($$Device:STM32F103C8$Flash\STM32F10x_128.FLM)
-
+
+
+ 0
+ 0
+ 79
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ ..\..\src\user_main.c
+
+
+
+
0
diff --git a/app/MDK-ARM/app.uvprojx b/app/MDK-ARM/app.uvprojx
index 5b96fb1..f69f333 100644
--- a/app/MDK-ARM/app.uvprojx
+++ b/app/MDK-ARM/app.uvprojx
@@ -313,7 +313,7 @@
1
- 4
+ 1
0
0
1
@@ -322,7 +322,7 @@
0
0
0
- 3
+ 2
0
0
1
@@ -336,10 +336,10 @@
0
0
-
+ --diag_suppress=381 --diag_suppress=1 --diag_suppress=177 --diag_suppress=111 --diag_suppress=1295
USE_HAL_DRIVER,STM32F103xB
- ../Core/Inc; ../Drivers/STM32F1xx_HAL_Driver/Inc; ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy; ../Drivers/CMSIS/Device/ST/STM32F1xx/Include; ../Drivers/CMSIS/Include; ..\..\src; ..\..\; ..\..\iflytop_microcontroller
+ ../Core/Inc; ../Drivers/STM32F1xx_HAL_Driver/Inc; ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy; ../Drivers/CMSIS/Device/ST/STM32F1xx/Include; ../Drivers/CMSIS/Include; ..\..\src; ..\..\; ..\..\iflytop_microcontroller
diff --git a/app/app.ioc b/app/app.ioc
index 8b7b391..186983c 100644
--- a/app/app.ioc
+++ b/app/app.ioc
@@ -8,9 +8,10 @@ Mcu.IP1=NVIC
Mcu.IP2=RCC
Mcu.IP3=SYS
Mcu.IP4=TIM1
-Mcu.IP5=USART1
-Mcu.IP6=USART2
-Mcu.IPNb=7
+Mcu.IP5=TIM4
+Mcu.IP6=USART1
+Mcu.IP7=USART2
+Mcu.IPNb=8
Mcu.Name=STM32F103C(8-B)Tx
Mcu.Package=LQFP48
Mcu.Pin0=PD0-OSC_IN
@@ -18,6 +19,7 @@ Mcu.Pin1=PD1-OSC_OUT
Mcu.Pin10=VP_IWDG_VS_IWDG
Mcu.Pin11=VP_SYS_VS_Systick
Mcu.Pin12=VP_TIM1_VS_ClockSourceINT
+Mcu.Pin13=VP_TIM4_VS_ClockSourceINT
Mcu.Pin2=PA2
Mcu.Pin3=PA3
Mcu.Pin4=PA8
@@ -26,7 +28,7 @@ Mcu.Pin6=PA10
Mcu.Pin7=PA13
Mcu.Pin8=PA14
Mcu.Pin9=PB5
-Mcu.PinsNb=13
+Mcu.PinsNb=14
Mcu.ThirdPartyNb=0
Mcu.UserConstants=
Mcu.UserName=STM32F103C8Tx
@@ -42,7 +44,6 @@ NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false\:false
NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4
NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false\:false
NVIC.SysTick_IRQn=true\:0\:0\:false\:false\:true\:false\:true
-NVIC.USART1_IRQn=true\:0\:0\:false\:false\:true\:true\:true
NVIC.USART2_IRQn=true\:0\:0\:false\:false\:true\:true\:true
NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false
PA10.Mode=Asynchronous
@@ -92,7 +93,7 @@ ProjectManager.StackSize=0x400
ProjectManager.TargetToolchain=MDK-ARM V5.27
ProjectManager.ToolChainLocation=
ProjectManager.UnderRoot=false
-ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-SystemClock_Config-RCC-false-HAL-false,3-MX_IWDG_Init-IWDG-false-HAL-true,4-MX_TIM4_Init-TIM4-false-HAL-true,5-MX_USART2_UART_Init-USART2-false-HAL-true,6-MX_USART1_UART_Init-USART1-false-HAL-true
+ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-SystemClock_Config-RCC-false-HAL-false,3-MX_IWDG_Init-IWDG-false-HAL-true,4-MX_USART2_UART_Init-USART2-false-HAL-true,5-MX_USART1_UART_Init-USART1-false-HAL-true,6-MX_TIM1_Init-TIM1-false-HAL-true
RCC.ADCFreqValue=36000000
RCC.AHBFreq_Value=72000000
RCC.APB1CLKDivider=RCC_HCLK_DIV2
@@ -118,6 +119,8 @@ SH.S_TIM1_CH1.0=TIM1_CH1,PWM Generation1 CH1
SH.S_TIM1_CH1.ConfNb=1
TIM1.Channel-PWM\ Generation1\ CH1=TIM_CHANNEL_1
TIM1.IPParameters=Channel-PWM Generation1 CH1
+TIM4.IPParameters=Prescaler
+TIM4.Prescaler=72
USART1.IPParameters=VirtualMode
USART1.VirtualMode=VM_ASYNC
USART2.IPParameters=VirtualMode
@@ -128,4 +131,6 @@ VP_SYS_VS_Systick.Mode=SysTick
VP_SYS_VS_Systick.Signal=SYS_VS_Systick
VP_TIM1_VS_ClockSourceINT.Mode=Internal
VP_TIM1_VS_ClockSourceINT.Signal=TIM1_VS_ClockSourceINT
+VP_TIM4_VS_ClockSourceINT.Mode=Internal
+VP_TIM4_VS_ClockSourceINT.Signal=TIM4_VS_ClockSourceINT
board=custom
diff --git a/src/port.c b/src/port.c
index e5e2788..1b44cf9 100644
--- a/src/port.c
+++ b/src/port.c
@@ -37,7 +37,7 @@ void port_do_debug_light_state(void) {
static uart_t m_uarts[] = {
{&DEBUG_UART, 0},
- {&UART_TEST, 0},
+ {&MODBUS_UART, 0},
};
__weak void port_mock_on_uart_rx(uart_t* uart) {}
static void uarts_start_receive(uart_t* uart) { HAL_UART_Receive_IT(uart->uarthandler, &uart->rxbuf, 1); }
@@ -64,3 +64,22 @@ void port_uart_start_all_uart_receive(void) {
uarts_start_receive(&m_uarts[i]);
}
}
+
+bool port_electric_relay_get_state(int relayindex) {
+ /*
+ example:
+ if (relayindex == 1) {
+ return GPIO_GET(C, 8, !!);
+ }
+ */
+
+ return false;
+}
+void port_electric_relay_set_state(int relayindex, bool state) {
+ /*
+ example:
+ if (relayindex == 1) {
+ GPIO_SET(C, 8, !!, state);
+ }
+ */
+}
\ No newline at end of file
diff --git a/src/port.h b/src/port.h
index 2a367ab..3efb706 100644
--- a/src/port.h
+++ b/src/port.h
@@ -26,3 +26,10 @@ typedef struct {
} uart_t;
void port_mock_on_uart_rx(uart_t* uart);
void port_uart_start_all_uart_receive(void);
+
+bool port_electric_relay_get_state(int relayindex);
+void port_electric_relay_set_state(int relayindex, bool state);
+
+static inline bool port_get_gpio_int(int index) {
+ return false;
+}
diff --git a/src/user_main.c b/src/user_main.c
index 148f070..f1f5000 100644
--- a/src/user_main.c
+++ b/src/user_main.c
@@ -3,55 +3,155 @@
#include
#include
-#include "iflytop_microcontroller/fancontroler/stm32/fan.h"
#include "iwdg.h"
#include "main.h"
#include "port.h"
+//
+#include "iflytop_microcontroller/fancontroler/stm32/fan.h"
+#include "iflytop_microcontroller/zkey/std/zkey.h"
+#include "iflytop_microcontroller/zmodbus/std/modbus_processer.h"
+#include "iflytop_microcontroller/zmodbus/std/zmodbus_common.h"
-#define interrupt_reception_send_buf_max 32
-#define interrupt_reception_send_string "UART_TEST\r\n"
+#define TAG "main"
-bool interrupt_trigger_flag;
+#define interrupt_reception_send_buf_max 32
+#define interrupt_reception_send_string "MODBUS_UART\r\n"
+/***********************************************************************************************************************
+ * ====================================================全局状态===================================================== *
+ ***********************************************************************************************************************/
+static uint64_t s_key_press_state;
static fan_t s_fan[1] = {
FAN_INIT(NULL, 0, false, &FAN1_PWM_TIMER, FAN1_PWM_TIMER_CHANNEL, 1000, false, FAN1_FB_GPIO_PORT, FAN1_FB_PIN,
false),
};
-static void uart_test_interrupt_reception() {
- uint8_t send_buffer[interrupt_reception_send_buf_max] = interrupt_reception_send_string;
- uint16_t send_string_size = strlen(interrupt_reception_send_string);
- if (send_string_size >= interrupt_reception_send_buf_max) {
- return;
- }
- if (interrupt_trigger_flag) {
- HAL_UART_Transmit(&huart2, &send_buffer[0], send_string_size, 100);
- interrupt_trigger_flag = false;
- }
-}
-
/**
* @brief 处理从串口接收到的数据
*/
void port_mock_on_uart_rx(uart_t* uart) {
// 处理指令串口接收到的数据
- if (uart->uarthandler == &UART_TEST) {
- interrupt_trigger_flag = true;
+ if (uart->uarthandler == &MODBUS_UART) {
+ modbus_processer_push_data(uart->rxbuf);
+ }
+}
+
+/***********************************************************************************************************************
+ * ============================================ORDER_MODBUS_SLAVE============================================= *
+ ***********************************************************************************************************************/
+static uint8_t modbus_rx_buf[kmodbus_processer_rx_buf_size];
+static uint8_t modbus_tx_buf[kmodbus_processer_tx_buf_size];
+void process_10(uint16_t startreg, uint32_t regoff, uint16_t rxvalue);
+void process_03(uint16_t startreg, uint32_t regoff);
+void order_uart485_tx(uint8_t* rx, uint16_t len) { HAL_UART_Transmit(&MODBUS_UART, rx, len, 0xffffffff); }
+void modbux_process_rx(modbus_processer_context_t* context);
+static void delay_us(uint32_t us) { sys_delay_us(&US_TIMER, us); }
+modbus_processer_t s_modbus_processer = {
+ .modbus_device_id = MODBUS_DEVICE_ID,
+ .modbus_processer_rx_buf = modbus_rx_buf,
+ .modbus_processer_rx_buf_size = sizeof(modbus_rx_buf),
+ .modbus_processer_tx_buf = modbus_tx_buf,
+ .modbus_processer_tx_buf_size = sizeof(modbus_tx_buf),
+ /*************************************/
+ .modbus_baundrate_one_packet_delay_us = kmodbus_baundrate_one_packet_delay_us,
+ .port_enter_critical = sys_critical_enter,
+ .port_exit_critical = sys_critical_exit,
+ .port_delay_us = delay_us,
+ .tx = order_uart485_tx,
+ /*************************************/
+ .process_rx = modbux_process_rx,
+};
+
+#if 0
+寄存器:
+Addr | 功能
+------------|-------------------------------
+0 | 主版本号
+1 | 次版本号
+8(16Byte) | 继电器0 ->继电器15 掩码
+9(16Byte) | 继电器16->继电器31 掩码
+10(16Byte) | 继电器0 ->继电器15 继电器状态
+11(16Byte) | 继电器16->继电器31 继电器状态
+12(16Byte) | 所有限位输入状态
+15(16Byte) | 按键状态 KeyX|按下,长按,松开事件|(Key0|0,1,2|,Key1|3,4,5|,Key2|6,7,8|,Key3|9,10,11|,Key4|12,13,14|)
+#endif
+void modbus_process_0_15(modbus_processer_context_t* context) {
+ ModbusFunctionCode fcode = modbus_get_function_code(context);
+ if (fcode == ModbusOrder10) {
+ /**
+ * @brief 基本GPIO写
+ */
+ if (modbus_if_register_exists_10(context, 8) && modbus_if_register_exists_10(context, 9) &&
+ modbus_if_register_exists_10(context, 10) && modbus_if_register_exists_10(context, 11)) {
+ uint32_t mask = modbus_get_reg_10(context, 8) | (modbus_get_reg_10(context, 9) << 16);
+ uint32_t value = modbus_get_reg_10(context, 10) | (modbus_get_reg_10(context, 11) << 16);
+ for (size_t i = 0; i < 32; i++) {
+ if (mask & (0x0001 << i)) port_electric_relay_set_state(i, !!(value & (0x0001 << i)));
+ }
+ }
+ } else if (fcode == ModbusOrder03) {
+ if (modbus_if_register_exists_03(context, 0)) {
+ modbus_set_tx_reg_03(context, 0, VERSION_MAIN_ID);
+ }
+ if (modbus_if_register_exists_03(context, 1)) {
+ modbus_set_tx_reg_03(context, 1, VERSION_SUB_ID);
+ }
+ if (modbus_if_register_exists_03(context, 10)) {
+ uint32_t value = 0;
+ for (size_t i = 0; i < 16; i++) {
+ if (port_electric_relay_get_state(i)) value |= (0x0001 << i);
+ }
+ modbus_set_tx_reg_03(context, 10, value);
+ }
+ if (modbus_if_register_exists_03(context, 11)) {
+ uint32_t value = 0;
+ for (size_t i = 16; i < 32; i++) {
+ if (port_electric_relay_get_state(i)) value |= (0x0001 << i);
+ }
+ modbus_set_tx_reg_03(context, 11, value);
+ }
+
+ if (modbus_if_register_exists_03(context, 12)) {
+ uint16_t value = 0;
+ for (size_t i = 0; i < 16; i++) {
+ if (port_get_gpio_int(i)) {
+ value |= (0x0001 << i);
+ }
+ }
+ modbus_set_tx_reg_03(context, 12, value);
+ }
+
+ if (modbus_if_register_exists_03(context, 15)) {
+ modbus_set_tx_reg_03(context, 15, s_key_press_state & 0xffff);
+ s_key_press_state = 0;
+ }
+ }
+}
+
+void modbux_process_rx(modbus_processer_context_t* context) {
+ ModbusFunctionCode fcode = modbus_get_function_code(context);
+ modbus_process_0_15(context);
+ if (fcode == ModbusOrder10) {
+ modbus_send_10(context, Modbus_OK);
+ } else if (fcode == ModbusOrder03) {
+ modbus_send_03(context, Modbus_OK);
}
}
void user_main() {
+ ZLOGI(TAG, "VERSION :%d.%d", VERSION_MAIN_ID, VERSION_SUB_ID);
// 开启所有中断接收
port_uart_start_all_uart_receive();
+ modbus_processer_init(&s_modbus_processer);
- //使用了风扇的代码控制PWM(占空比)
+ // 使用了风扇的代码控制PWM(占空比)
fan_set_power(&s_fan[0], 50);
while (1) {
// debug灯
port_do_debug_light_state();
- // 串口测试中断处理
- uart_test_interrupt_reception();
+ // 指令485数据处理
+ modbus_processer_try_process_data();
// 刷新看门狗
HAL_IWDG_Refresh(&hiwdg);
diff --git a/src/zboard.h b/src/zboard.h
index aa618aa..91bb3bb 100644
--- a/src/zboard.h
+++ b/src/zboard.h
@@ -11,6 +11,11 @@
#define DEBUG_LIGHT_PIN GPIO_PIN_5
/***********************************************************************************************************************
+ * ======================================================微秒定时器===================================================
+ ***********************************************************************************************************************/
+#define US_TIMER htim4
+
+/***********************************************************************************************************************
* ============================-----==========================指令485MODBUS======================================================= *
***********************************************************************************************************************/
#define MODBUS_DEVICE_ID 0x01
@@ -19,16 +24,11 @@
#define modbus_baundrate 115200
/*modebus判断一帧是以是否3.5byte时间内是否收到新的数据*/
#define kmodbus_baundrate_one_packet_delay_us ((1000000 / (modbus_baundrate / 8) + 1) * 3) // 211
-#define UART_TEST huart2
+#define MODBUS_UART huart2
#define kmodbus_processer_rx_buf_size 128
#define kmodbus_processer_tx_buf_size 128
/***********************************************************************************************************************
- * =======================================================按键======================================================== *
- ***********************************************************************************************************************/
-#define KEY_SCAN_PERIOD 20
-
-/***********************************************************************************************************************
* =====================================================风扇配置====================================================== *
***********************************************************************************************************************/
#define FAN1_PWM_TIMER htim1