@@ -19,7 +19,9 @@ ctx.addEventListener("message", (event) => {
19
19
let buffer = "" ;
20
20
let discardFirstLine = true ;
21
21
const separator = "\n" ;
22
- var re = new RegExp ( `(${ separator } )` , "g" ) ;
22
+ const delimiter = "[, \t]+" ; // Serial Plotter protocol supports Comma, Space & Tab characters as delimiters
23
+ var separatorRegex = new RegExp ( `(${ separator } )` , "g" ) ;
24
+ var delimiterRegex = new RegExp ( `(${ delimiter } )` , "g" ) ;
23
25
24
26
export const parseSerialMessages = (
25
27
messages : string [ ]
@@ -47,7 +49,7 @@ export const parseSerialMessages = (
47
49
48
50
//add any leftover from the buffer to the first line
49
51
const messagesAndBuffer = ( ( buffer || "" ) + joinMessages )
50
- . split ( re )
52
+ . split ( separatorRegex )
51
53
. filter ( ( message ) => message . length > 0 ) ;
52
54
53
55
// remove the previous buffer
@@ -74,7 +76,7 @@ export const parseSerialMessages = (
74
76
// if we find a colon, we assume the latter is being used
75
77
let tokens : string [ ] = [ ] ;
76
78
if ( message . indexOf ( ":" ) > 0 ) {
77
- message . split ( "," ) . forEach ( ( keyValue : string ) => {
79
+ message . split ( delimiterRegex ) . forEach ( ( keyValue : string ) => {
78
80
let [ key , value ] = keyValue . split ( ":" ) ;
79
81
key = key && key . trim ( ) ;
80
82
value = value && value . trim ( ) ;
@@ -84,7 +86,7 @@ export const parseSerialMessages = (
84
86
} ) ;
85
87
} else {
86
88
// otherwise they are spaces
87
- const values = message . split ( / \s / ) ;
89
+ const values = message . split ( delimiterRegex ) ;
88
90
values . forEach ( ( value , i ) => {
89
91
if ( value . length ) {
90
92
tokens . push ( ...[ `value ${ i + 1 } ` , value ] ) ;
0 commit comments