Skip to content

Commit 0214ba3

Browse files
authored
Fix camera angle not being saved (#4487)
* Fix camera angle not being saved * Make sonar happy, maybe
1 parent e8841f9 commit 0214ba3

File tree

1 file changed

+64
-63
lines changed

1 file changed

+64
-63
lines changed

src/js/tabs/configuration.js

Lines changed: 64 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -423,6 +423,70 @@ configuration.initialize = function (callback) {
423423
FC.BEEPER_CONFIG.beepers.updateData(element);
424424
});
425425

426+
function save_config() {
427+
// Define all configuration operations to execute
428+
const saveOperations = [
429+
{ code: MSPCodes.MSP_SET_FEATURE_CONFIG },
430+
{ code: MSPCodes.MSP_SET_BEEPER_CONFIG },
431+
{ code: MSPCodes.MSP_SET_BOARD_ALIGNMENT_CONFIG },
432+
{ code: MSPCodes.MSP_SET_RC_DEADBAND },
433+
{ code: MSPCodes.MSP_SET_SENSOR_ALIGNMENT },
434+
{ code: MSPCodes.MSP_SET_ADVANCED_CONFIG },
435+
{ code: MSPCodes.MSP_SET_ACC_TRIM },
436+
{ code: MSPCodes.MSP_SET_ARMING_CONFIG },
437+
{ code: MSPCodes.MSP_SET_SENSOR_CONFIG },
438+
{
439+
condition: () => semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_45),
440+
code: MSPCodes.MSP2_SET_TEXT,
441+
extraParams: MSPCodes.CRAFT_NAME,
442+
fallback: { code: MSPCodes.MSP_SET_NAME },
443+
},
444+
{
445+
condition: () => semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_45),
446+
code: MSPCodes.MSP2_SET_TEXT,
447+
extraParams: MSPCodes.PILOT_NAME,
448+
},
449+
{ code: MSPCodes.MSP_SET_RX_CONFIG },
450+
{
451+
condition: () => semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_46),
452+
code: MSPCodes.MSP_SET_COMPASS_CONFIG,
453+
},
454+
];
455+
456+
// Start with a resolved promise
457+
let saveChain = Promise.resolve(true);
458+
459+
// Build the promise chain
460+
saveOperations.forEach((operation) => {
461+
saveChain = saveChain.then(() => {
462+
// Skip if operation has a condition that returns false
463+
if (operation.condition && !operation.condition()) {
464+
if (operation.fallback) {
465+
// Use fallback operation if provided
466+
return MSP.promise(
467+
operation.fallback.code,
468+
operation.fallback.extraParams
469+
? mspHelper.crunch(operation.fallback.code, operation.fallback.extraParams)
470+
: mspHelper.crunch(operation.fallback.code),
471+
);
472+
}
473+
return Promise.resolve(true);
474+
}
475+
476+
// Execute the operation
477+
return MSP.promise(
478+
operation.code,
479+
operation.extraParams
480+
? mspHelper.crunch(operation.code, operation.extraParams)
481+
: mspHelper.crunch(operation.code),
482+
);
483+
});
484+
});
485+
486+
// Complete the chain with final write
487+
return saveChain.then(() => mspHelper.writeConfiguration(true));
488+
}
489+
426490
$("a.save").on("click", function () {
427491
// gather data that doesn't have automatic change event bound
428492
FC.BOARD_ALIGNMENT_CONFIG.roll = parseInt($('input[name="board_align_roll"]').val());
@@ -500,69 +564,6 @@ configuration.initialize = function (callback) {
500564
FC.CONFIG.name = $('input[name="craftName"]').val().trim();
501565
}
502566

503-
function save_config() {
504-
Promise.resolve(true)
505-
.then(() =>
506-
MSP.promise(MSPCodes.MSP_SET_FEATURE_CONFIG, mspHelper.crunch(MSPCodes.MSP_SET_FEATURE_CONFIG)),
507-
)
508-
.then(() =>
509-
MSP.promise(MSPCodes.MSP_SET_BEEPER_CONFIG, mspHelper.crunch(MSPCodes.MSP_SET_BEEPER_CONFIG)),
510-
)
511-
.then(() =>
512-
MSP.promise(
513-
MSPCodes.MSP_SET_BOARD_ALIGNMENT_CONFIG,
514-
mspHelper.crunch(MSPCodes.MSP_SET_BOARD_ALIGNMENT_CONFIG),
515-
),
516-
)
517-
.then(() =>
518-
MSP.promise(MSPCodes.MSP_SET_RC_DEADBAND, mspHelper.crunch(MSPCodes.MSP_SET_RC_DEADBAND)),
519-
)
520-
.then(() =>
521-
MSP.promise(
522-
MSPCodes.MSP_SET_SENSOR_ALIGNMENT,
523-
mspHelper.crunch(MSPCodes.MSP_SET_SENSOR_ALIGNMENT),
524-
),
525-
)
526-
.then(() =>
527-
MSP.promise(
528-
MSPCodes.MSP_SET_ADVANCED_CONFIG,
529-
mspHelper.crunch(MSPCodes.MSP_SET_ADVANCED_CONFIG),
530-
),
531-
)
532-
.then(() => MSP.promise(MSPCodes.MSP_SET_ACC_TRIM, mspHelper.crunch(MSPCodes.MSP_SET_ACC_TRIM)))
533-
.then(() =>
534-
MSP.promise(MSPCodes.MSP_SET_ARMING_CONFIG, mspHelper.crunch(MSPCodes.MSP_SET_ARMING_CONFIG)),
535-
)
536-
.then(() =>
537-
MSP.promise(MSPCodes.MSP_SET_SENSOR_CONFIG, mspHelper.crunch(MSPCodes.MSP_SET_SENSOR_CONFIG)),
538-
)
539-
.then(() =>
540-
semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_45)
541-
? MSP.promise(
542-
MSPCodes.MSP2_SET_TEXT,
543-
mspHelper.crunch(MSPCodes.MSP2_SET_TEXT, MSPCodes.CRAFT_NAME),
544-
)
545-
: MSP.promise(MSPCodes.MSP_SET_NAME, mspHelper.crunch(MSPCodes.MSP_SET_NAME)),
546-
)
547-
.then(() =>
548-
semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_45)
549-
? MSP.promise(
550-
MSPCodes.MSP2_SET_TEXT,
551-
mspHelper.crunch(MSPCodes.MSP2_SET_TEXT, MSPCodes.PILOT_NAME),
552-
)
553-
: Promise.resolve(true),
554-
)
555-
.then(() =>
556-
semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_46)
557-
? MSP.promise(
558-
MSPCodes.MSP_SET_COMPASS_CONFIG,
559-
mspHelper.crunch(MSPCodes.MSP_SET_COMPASS_CONFIG),
560-
)
561-
: Promise.resolve(true),
562-
)
563-
.then(() => mspHelper.writeConfiguration(true));
564-
}
565-
566567
mspHelper.sendSerialConfig(save_config);
567568
});
568569

0 commit comments

Comments
 (0)