Skip to content

Commit 9a05f3a

Browse files
committed
Refactor
1 parent 0434221 commit 9a05f3a

File tree

1 file changed

+23
-54
lines changed

1 file changed

+23
-54
lines changed

src/js/msp.js

Lines changed: 23 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)