1- using FontAwesome . WPF ;
1+ using FontAwesome . WPF ;
22using ICSharpCode . AvalonEdit . Highlighting ;
33using ICSharpCode . AvalonEdit . Highlighting . Xshd ;
44using ICSharpCode . AvalonEdit . Search ;
@@ -313,8 +313,13 @@ private void addUartLog(byte[] data, bool send)
313313 text . Foreground = Brushes . Black ;
314314 text . FontWeight = FontWeights . Bold ;
315315 p . Inlines . Add ( text ) ;
316+
317+ if ( data . Length > 2000 )
318+ text = new Span ( new Run ( Tools . Global . Byte2String ( data . Skip ( 0 ) . Take ( 2000 ) . ToArray ( ) )
319+ + "\r \n 数据过长,剩余部分请去日志文件查看" ) ) ;
320+ else
321+ text = new Span ( new Run ( Tools . Global . Byte2String ( data ) ) ) ;
316322
317- text = new Span ( new Run ( Tools . Global . Byte2String ( data ) ) ) ;
318323 if ( send )
319324 text . Foreground = Brushes . DarkRed ;
320325 else
@@ -328,14 +333,26 @@ private void addUartLog(byte[] data, bool send)
328333
329334 if ( Tools . Global . setting . showHex )
330335 {
331- p = new Paragraph ( new Run ( "HEX:" + Tools . Global . Byte2Hex ( data , " " ) ) ) ;
336+ if ( data . Length > 600 )
337+ p = new Paragraph ( new Run ( "HEX:" + Tools . Global . Byte2Hex ( data . Skip ( 0 ) . Take ( 600 ) . ToArray ( ) , " " )
338+ + "\r \n 数据过长,剩余部分请去日志文件查看" ) ) ;
339+ else
340+ p = new Paragraph ( new Run ( "HEX:" + Tools . Global . Byte2Hex ( data , " " ) ) ) ;
341+
332342 if ( send )
333343 p . Foreground = Brushes . LightPink ;
334344 else
335345 p . Foreground = Brushes . LightGreen ;
336346 p . Margin = new Thickness ( 0 , 0 , 0 , 8 ) ;
337347 uartDataFlowDocument . Document . Blocks . Add ( p ) ;
338348 }
349+
350+ //条目过多,自动清空
351+ if ( uartDataFlowDocument . Document . Blocks . Count > 500 )
352+ {
353+ uartDataFlowDocument . Document . Blocks . Clear ( ) ;
354+ addUartLog ( Tools . Global . Hex2Byte ( Tools . Global . String2Hex ( "数据量过大,自动清理,请去日志文件查看历史数据" , "" ) ) , true ) ;
355+ }
339356
340357 sv . ScrollToBottom ( ) ;
341358 }
0 commit comments