소스 검색

成功转发蓝牙数据

xuxinyi 3 달 전
부모
커밋
57ff9ed4d6
4개의 변경된 파일215개의 추가작업 그리고 11개의 파일을 삭제
  1. 5 4
      Core/Inc/main.h
  2. 6 5
      Core/Src/main.c
  3. 14 1
      Core/Src/stm32f1xx_it.c
  4. 190 1
      问题记录/问题笔记.md

+ 5 - 4
Core/Inc/main.h

@@ -59,11 +59,12 @@ void Error_Handler(void);
 /* Private defines -----------------------------------------------------------*/
 
 /* USER CODE BEGIN Private defines */
-extern uint8_t rx_buf[500];
-extern  UART_HandleTypeDef huart1;
+extern uint8_t rx_buf[100];
+extern uint8_t totalData[30][100];
+extern UART_HandleTypeDef huart1;
 extern UART_HandleTypeDef huart2;
-extern  UART_HandleTypeDef huart3;
-extern  DMA_HandleTypeDef hdma_usart2_rx;
+extern UART_HandleTypeDef huart3;
+extern DMA_HandleTypeDef hdma_usart2_rx;
 
 /* USER CODE END Private defines */
 

+ 6 - 5
Core/Src/main.c

@@ -46,7 +46,8 @@ UART_HandleTypeDef huart3;
 DMA_HandleTypeDef hdma_usart3_rx;
 
 /* USER CODE BEGIN PV */
-uint8_t rx_buf[500];
+uint8_t rx_buf[100] = {0};
+uint8_t totalData[30][100] = {0};
 /* USER CODE END PV */
 
 /* Private function prototypes -----------------------------------------------*/
@@ -127,10 +128,10 @@ int main(void)
 
   printf("USART3 DMA + IDLE 中断接收已启动\r\n");
   // 发送一个字符串到UART2
-  const char *msg = "AT+ROLE=2";  // 建议加上回车换行
+  const char *msg = "AT+ROLE=2";
   HAL_UART_Transmit(&huart3, (uint8_t *)msg, strlen(msg), HAL_MAX_DELAY);
 
-  const char *lora_msg = "AT+OPTION=3,0";  // 建议加上回车换行
+  const char *lora_msg = "AT+OPTION=3,0";
   HAL_UART_Transmit(&huart2, (uint8_t *)lora_msg, strlen(lora_msg), HAL_MAX_DELAY);
   // uint8_t i = 0xaa;
   /* USER CODE END 2 */
@@ -153,8 +154,8 @@ int main(void)
     // HAL_UART_Transmit(&huart1, rx_buf, strlen(rx_buf), 100);
     // i++;
 
-    const char *lora_data = "hello world\r\n";  // 建议加上回车换行
-    HAL_UART_Transmit(&huart2, (uint8_t *)lora_data, strlen(lora_data), HAL_MAX_DELAY);
+    // const char *lora_data = "hello world\r\n";  // 建议加上回车换行
+    // HAL_UART_Transmit(&huart2, (uint8_t *)lora_data, strlen(lora_data), HAL_MAX_DELAY);
 
     HAL_Delay(1000);
     /* USER CODE BEGIN 3 */

+ 14 - 1
Core/Src/stm32f1xx_it.c

@@ -20,6 +20,9 @@
 /* Includes ------------------------------------------------------------------*/
 #include "main.h"
 #include "stm32f1xx_it.h"
+
+#include <stdio.h>
+
 #include "string.h"
 /* Private includes ----------------------------------------------------------*/
 /* USER CODE BEGIN Includes */
@@ -60,7 +63,7 @@ extern DMA_HandleTypeDef hdma_usart3_rx;
 extern UART_HandleTypeDef huart2;
 extern UART_HandleTypeDef huart3;
 extern TIM_HandleTypeDef htim3;
-
+uint8_t receiveBlDataCount = 0;
 /* USER CODE BEGIN EV */
 
 /* USER CODE END EV */
@@ -262,6 +265,16 @@ void USART3_IRQHandler(void)
 
     uint32_t received_len = sizeof(rx_buf) - __HAL_DMA_GET_COUNTER(huart3.hdmarx);
     HAL_UART_Transmit(&huart1, rx_buf, received_len, 100);
+    // if (receiveBlDataCount < 20)
+    // {
+    //   receiveBlDataCount++;
+    //   memcpy(totalData[receiveBlDataCount], rx_buf, sizeof(rx_buf));
+    //   memset(rx_buf, 0, sizeof(rx_buf));
+    //   HAL_UART_Receive_DMA(&huart3, rx_buf, sizeof(rx_buf)); // 重新启动
+    // }else {
+    //   printf("数据接收完毕");
+    // }
+    HAL_UART_Transmit(&huart2, rx_buf, received_len, HAL_MAX_DELAY);
     memset(rx_buf, 0, sizeof(rx_buf));
     HAL_UART_Receive_DMA(&huart3, rx_buf, sizeof(rx_buf)); // 重新启动
   }

+ 190 - 1
问题记录/问题笔记.md

@@ -44,4 +44,193 @@
    1E FF 06 00 01 09 20 22 5E 45 E1 50 B5 B5 9A 5D 82 63 24 D9 57 44 D2 3A 02 C5 4B D5 C7 3B 3F 
    
    1D 
-   9E B9 6C C5 0F 48 A8 15 FF 12 CC 3E 2D 54 00 00 20 48 0F C5 78 47 87 48 0F C5 78 47 87 25 71 0B 1D 60 C8 F0 B6 02 01 06 1A FF 4C 00 02 15 FD A5 06 93 A4 E2 4F B1 AF CF C6 EB 07 64 78 25 2A 32 0B 71 C3 
+   9E B9 6C C5 0F 48 A8 15 FF 12 CC 3E 2D 54 00 00 20 48 0F C5 78 47 87 48 0F C5 78 47 87 25 71 0B 1D 60 C8 F0 B6 02 01 06 1A FF 4C 00 02 15 FD A5 06 93 A4 E2 4F B1 AF CF C6 EB 07 64 78 25 2A 32 0B 71 C3 
+4.获取的数据
+   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   2b 4f 4b 0d   │ ············+OK· │
+   0a 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   26 61 ef bf   f7 1b 32 b1   1e ff 06 00   01 09 20 22   │ &a····2······· " │-------
+   a2 06 71 78   27 1f b1 4d   c8 5a 91 11   3d 03 5c 3b   │ ··qx'··M·Z··=·\; │
+   df 43 5e 6a   eb 3e d5 00   00 00 00 00   00 00 00 00   │ ·C^j·>·········· │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   26 61 ef bf   f7 1b 32 b1   1e ff 06 00   │ ····&a····2····· │-------
+   01 09 20 22   a2 06 71 78   27 1f b1 4d   c8 5a 91 11   │ ·· "··qx'··M·Z·· │
+   3d 03 5c 3b   df 43 5e 6a   eb 3e d5 00   00 00 00 00   │ =·\;·C^j·>······ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   26 61 ef bf   f7 1b 32 b1   │ ········&a····2· │-------
+   1e ff 06 00   01 09 20 22   a2 06 71 78   27 1f b1 4d   │ ······ "··qx'··M │
+   c8 5a 91 11   3d 03 5c 3b   df 43 5e 6a   eb 3e d5 00   │ ·Z··=·\;·C^j·>·· │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   25 70 0b 1d   │ ············%p·· │-------
+   60 c8 f0 b2   02 01 06 1a   ff 4c 00 02   15 fd a5 06   │ `········L······ │
+   93 a4 e2 4f   b1 af cf c6   eb 07 64 78   25 2a 32 0b   │ ···O······dx%*2· │
+   70 c3 22 70   0b 1d 60 c8   f0 b3 02 0a   fc 0e 16 64   │ p·"p··`········d │
+   73 05 f0 c8   60 1d 0b 70   00 00 00 00   08 09 6b 31   │ s···`··p······k1 │
+   64 30 62 37   30 00 00 00   00 00 00 00   00 00 00 00   │ d0b70··········· │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   01 09 20 22   a2 06 71 78   27 1f b1 4d   c8 5a 91 11   │ ·· "··qx'··M·Z·· │-------
+   3d 03 5c 3b   df 43 5e 6a   eb 3e d5 00   00 00 00 00   │ =·\;·C^j·>······ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   25 70 0b 1d   60 c8 f0 b5   02 01 06 1a   │ ····%p··`······· │-------
+   ff 4c 00 02   15 fd a5 06   93 a4 e2 4f   b1 af cf c6   │ ·L·········O···· │
+   eb 07 64 78   25 2a 32 0b   70 c3 22 70   0b 1d 60 c8   │ ··dx%*2·p·"p··`· │
+   f0 b5 02 0a   fc 0e 16 64   73 05 f0 c8   60 1d 0b 70   │ ·······ds···`··p │
+   00 00 00 00   08 09 6b 31   64 30 62 37   30 00 00 00   │ ······k1d0b70··· │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   26 61 ef bf   f7 1b 32 ae   │ ········&a····2· │-------
+   1e ff 06 00   01 09 20 22   a2 06 71 78   27 1f b1 4d   │ ······ "··qx'··M │
+   c8 5a 91 11   3d 03 5c 3b   df 43 5e 6a   eb 3e d5 00   │ ·Z··=·\;·C^j·>·· │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   26 61 ef bf   │ ············&a·· │-------
+   f7 1b 32 ab   1e ff 06 00   01 09 20 22   a2 06 71 78   │ ··2······· "··qx │
+   27 1f b1 4d   c8 5a 91 11   3d 03 5c 3b   df 43 5e 6a   │ '··M·Z··=·\;·C^j │
+   eb 3e d5 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ·>·············· │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   25 70 0b 1d   60 c8 f0 b1   02 01 06 1a   ff 4c 00 02   │ %p··`········L·· │-------
+   15 fd a5 06   93 a4 e2 4f   b1 af cf c6   eb 07 64 78   │ ·······O······dx │
+   25 2a 32 0b   70 c3 22 70   0b 1d 60 c8   f0 b2 02 0a   │ %*2·p·"p··`····· │
+   fc 0e 16 64   73 05 f0 c8   60 1d 0b 70   00 00 00 00   │ ···ds···`··p···· │
+   08 09 6b 31   64 30 62 37   30 00 00 00   00 00 00 00   │ ··k1d0b70······· │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   25 68 0b 1d   60 c8 f0 b6   02 01 06 1a   │ ····%h··`······· │
+   ff 4c 00 02   15 fd a5 06   93 a4 e2 4f   b1 af cf c6   │ ·L·········O···· │
+   eb 07 64 78   25 2a 32 0b   68 c3 22 68   0b 1d 60 c8   │ ··dx%*2·h·"h··`· │
+   f0 b6 02 0a   fc 0e 16 64   73 05 f0 c8   60 1d 0b 68   │ ·······ds···`··h │
+   00 00 00 00   08 09 6b 31   64 30 62 36   38 00 00 00   │ ······k1d0b68··· │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   26 61 ef bf   f7 1b 32 aa   │ ········&a····2· │-------
+   1e ff 06 00   01 09 20 22   a2 06 71 78   27 1f b1 4d   │ ······ "··qx'··M │
+   c8 5a 91 11   3d 03 5c 3b   df 43 5e 6a   eb 3e d5 00   │ ·Z··=·\;·C^j·>·· │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   26 61 ef bf   │ ············&a·· │-------
+   f7 1b 32 b2   1e ff 06 00   01 09 20 22   a2 06 71 78   │ ··2······· "··qx │
+   27 1f b1 4d   c8 5a 91 11   3d 03 5c 3b   df 43 5e 6a   │ '··M·Z··=·\;·C^j │
+   eb 3e d5 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ·>·············· │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   25 70 0b 1d   60 c8 f0 b2   02 01 06 1a   ff 4c 00 02   │ %p··`········L·· │-------
+   15 fd a5 06   93 a4 e2 4f   b1 af cf c6   eb 07 64 78   │ ·······O······dx │
+   25 2a 32 0b   70 c3 22 70   0b 1d 60 c8   f0 b2 02 0a   │ %*2·p·"p··`····· │
+   fc 0e 16 64   73 05 f0 c8   60 1d 0b 70   00 00 00 00   │ ···ds···`··p···· │
+   08 09 6b 31   64 30 62 37   30 00 00 00   00 00 00 00   │ ··k1d0b70······· │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   26 61 ef bf   f7 1b 32 aa   1e ff 06 00   │ ····&a····2····· │-------
+   01 09 20 22   a2 06 71 78   27 1f b1 4d   c8 5a 91 11   │ ·· "··qx'··M·Z·· │
+   3d 03 5c 3b   df 43 5e 6a   eb 3e d5 00   00 00 00 00   │ =·\;·C^j·>······ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   26 61 ef bf   f7 1b 32 ab   │ ········&a····2· │-------
+   1e ff 06 00   01 09 20 22   a2 06 71 78   27 1f b1 4d   │ ······ "··qx'··M │
+   c8 5a 91 11   3d 03 5c 3b   df 43 5e 6a   eb 3e d5 00   │ ·Z··=·\;·C^j·>·· │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   26 61 ef bf   │ ············&a·· │-------
+   f7 1b 32 ab   1e ff 06 00   01 09 20 22   a2 06 71 78   │ ··2······· "··qx │
+   27 1f b1 4d   c8 5a 91 11   3d 03 5c 3b   df 43 5e 6a   │ '··M·Z··=·\;·C^j │
+   eb 3e d5 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ·>·············· │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   26 61 ef bf   f7 1b 32 b1   1e ff 06 00   01 09 20 22   │ &a····2······· " │-------
+   a2 06 71 78   27 1f b1 4d   c8 5a 91 11   3d 03 5c 3b   │ ··qx'··M·Z··=·\; │
+   df 43 5e 6a   eb 3e d5 00   00 00 00 00   00 00 00 00   │ ·C^j·>·········· │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   26 61 ef bf   f7 1b 32 ae   1e ff 06 00   │ ····&a····2····· │-------
+   01 09 20 22   a2 06 71 78   27 1f b1 4d   c8 5a 91 11   │ ·· "··qx'··M·Z·· │
+   3d 03 5c 3b   df 43 5e 6a   eb 3e d5 00   00 00 00 00   │ =·\;·C^j·>······ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   26 61 ef bf   f7 1b 32 b0   │ ········&a····2· │-------
+   1e ff 06 00   01 09 20 22   a2 06 71 78   27 1f b1 4d   │ ······ "··qx'··M │
+   c8 5a 91 11   3d 03 5c 3b   df 43 5e 6a   eb 3e d5 00   │ ·Z··=·\;·C^j·>·· │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00   │ ················ │
+   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00