@@ -374,60 +374,46 @@ const MSP = {
374374 serial . send ( bufferOut ) ;
375375 } ,
376376 send_message ( code , data , callback_sent , callback_msp , doCallbackOnError ) {
377- // Early validation
378- if ( ! this . _validateSendMessage ( code , callback_msp ) ) {
377+ if ( code === undefined || ! serial . connected || CONFIGURATOR . virtualMode ) {
378+ if ( callback_msp ) {
379+ callback_msp ( ) ;
380+ }
379381 return false ;
380382 }
381383
382- const isDuplicateRequest = this . _isDuplicateRequest ( code ) ;
383- const bufferOut = this . _encodeMessage ( code , data ) ;
384+ const isDuplicateRequest = this . callbacks . some ( ( instance ) => instance . code === code ) ;
385+ const bufferOut = code <= 254 ? this . encode_message_v1 ( code , data ) : this . encode_message_v2 ( code , data ) ;
384386
385- const requestObj = this . _createRequestObject ( code , bufferOut , callback_msp , doCallbackOnError ) ;
387+ const requestObj = {
388+ code,
389+ requestBuffer : bufferOut ,
390+ callback : callback_msp ,
391+ callbackOnError : doCallbackOnError ,
392+ start : performance . now ( ) ,
393+ } ;
386394
387395 // Always set up timeout for all requests to ensure cleanup
388396 this . _setupTimeout ( requestObj , bufferOut ) ;
389397
390398 this . callbacks . push ( requestObj ) ;
391399
392400 // Send message if it has data or is a new request
393- if ( this . _shouldSendMessage ( data , isDuplicateRequest ) ) {
394- this . _sendBuffer ( bufferOut , callback_sent ) ;
395- }
396-
397- return true ;
398- } ,
399-
400- _validateSendMessage ( code , callback_msp ) {
401- const connected = serial . connected ;
402-
403- if ( code === undefined || ! connected || CONFIGURATOR . virtualMode ) {
404- if ( callback_msp ) {
405- callback_msp ( ) ;
401+ if ( data || ! isDuplicateRequest ) {
402+ // Optimize timeout for frequent requests
403+ if ( this . timeout > this . MIN_TIMEOUT ) {
404+ this . timeout -- ;
406405 }
407- return false ;
406+
407+ serial . send ( bufferOut , ( sendInfo ) => {
408+ if ( sendInfo . bytesSent === bufferOut . byteLength && callback_sent ) {
409+ callback_sent ( ) ;
410+ }
411+ } ) ;
408412 }
409413
410414 return true ;
411415 } ,
412416
413- _isDuplicateRequest ( code ) {
414- return this . callbacks . some ( ( instance ) => instance . code === code ) ;
415- } ,
416-
417- _encodeMessage ( code , data ) {
418- return code <= 254 ? this . encode_message_v1 ( code , data ) : this . encode_message_v2 ( code , data ) ;
419- } ,
420-
421- _createRequestObject ( code , bufferOut , callback_msp , doCallbackOnError ) {
422- return {
423- code,
424- requestBuffer : bufferOut ,
425- callback : callback_msp ,
426- callbackOnError : doCallbackOnError ,
427- start : performance . now ( ) ,
428- } ;
429- } ,
430-
431417 _setupTimeout ( requestObj , bufferOut ) {
432418 requestObj . timer = setTimeout ( ( ) => {
433419 this . _handleTimeout ( requestObj , bufferOut ) ;
@@ -454,23 +440,6 @@ const MSP = {
454440 this . _setupTimeout ( requestObj , bufferOut ) ;
455441 } ,
456442
457- _shouldSendMessage ( data , isDuplicateRequest ) {
458- return data || ! isDuplicateRequest ;
459- } ,
460-
461- _sendBuffer ( bufferOut , callback_sent ) {
462- // Optimize timeout for frequent requests
463- if ( this . timeout > this . MIN_TIMEOUT ) {
464- this . timeout -- ;
465- }
466-
467- serial . send ( bufferOut , ( sendInfo ) => {
468- if ( sendInfo . bytesSent === bufferOut . byteLength && callback_sent ) {
469- callback_sent ( ) ;
470- }
471- } ) ;
472- } ,
473-
474443 /**
475444 * resolves: {command: code, data: data, length: message_length}
476445 */
0 commit comments