Skip to content

Commit

Permalink
Update Beepers.js
Browse files Browse the repository at this point in the history
  • Loading branch information
haybnzz authored Jan 22, 2025
1 parent 67fb8e7 commit d3eb34e
Showing 1 changed file with 58 additions and 74 deletions.
132 changes: 58 additions & 74 deletions src/js/Beepers.js
Original file line number Diff line number Diff line change
@@ -1,109 +1,93 @@
import { bit_check, bit_clear, bit_set } from "./bit";
import $ from "jquery";
// Import bit manipulation functions for handling beeper states
import { bit_check, bit_clear, bit_set } from './bit';

class Beepers {
constructor(config, supportedConditions) {
const self = this;

const beepers = [
{ bit: 0, name: "GYRO_CALIBRATED", visible: true },
{ bit: 1, name: "RX_LOST", visible: true },
{ bit: 2, name: "RX_LOST_LANDING", visible: true },
{ bit: 3, name: "DISARMING", visible: true },
{ bit: 4, name: "ARMING", visible: true },
{ bit: 5, name: "ARMING_GPS_FIX", visible: true },
{ bit: 6, name: "BAT_CRIT_LOW", visible: true },
{ bit: 7, name: "BAT_LOW", visible: true },
{ bit: 8, name: "GPS_STATUS", visible: true },
{ bit: 9, name: "RX_SET", visible: true },
{ bit: 10, name: "ACC_CALIBRATION", visible: true },
{ bit: 11, name: "ACC_CALIBRATION_FAIL", visible: true },
{ bit: 12, name: "READY_BEEP", visible: true },
{ bit: 13, name: "MULTI_BEEPS", visible: false },
{ bit: 14, name: "DISARM_REPEAT", visible: true },
{ bit: 15, name: "ARMED", visible: true },
{ bit: 16, name: "SYSTEM_INIT", visible: true },
{ bit: 17, name: "USB", visible: true },
{ bit: 18, name: "BLACKBOX_ERASE", visible: true },
{ bit: 19, name: "CRASH_FLIP", visible: true },
{ bit: 20, name: "CAM_CONNECTION_OPEN", visible: true },
{ bit: 21, name: "CAM_CONNECTION_CLOSE", visible: true },
{ bit: 22, name: "RC_SMOOTHING_INIT_FAIL", visible: true },
{ bit: 0, name: 'GYRO_CALIBRATED', visible: true },
{ bit: 1, name: 'RX_LOST', visible: true },
{ bit: 2, name: 'RX_LOST_LANDING', visible: true },
{ bit: 3, name: 'DISARMING', visible: true },
{ bit: 4, name: 'ARMING', visible: true },
{ bit: 5, name: 'ARMING_GPS_FIX', visible: true },
{ bit: 6, name: 'BAT_CRIT_LOW', visible: true },
{ bit: 7, name: 'BAT_LOW', visible: true },
{ bit: 8, name: 'GPS_STATUS', visible: true },
{ bit: 9, name: 'RX_SET', visible: true },
{ bit: 10, name: 'ACC_CALIBRATION', visible: true },
{ bit: 11, name: 'ACC_CALIBRATION_FAIL', visible: true },
{ bit: 12, name: 'READY_BEEP', visible: true },
{ bit: 13, name: 'MULTI_BEEPS', visible: false },
{ bit: 14, name: 'DISARM_REPEAT', visible: true },
{ bit: 15, name: 'ARMED', visible: true },
{ bit: 16, name: 'SYSTEM_INIT', visible: true },
{ bit: 17, name: 'USB', visible: true },
{ bit: 18, name: 'BLACKBOX_ERASE', visible: true },
{ bit: 19, name: 'CRASH_FLIP', visible: true },
{ bit: 20, name: 'CAM_CONNECTION_OPEN', visible: true },
{ bit: 21, name: 'CAM_CONNECTION_CLOSE', visible: true },
{ bit: 22, name: 'RC_SMOOTHING_INIT_FAIL', visible: true },
];

if (supportedConditions) {
self._beepers = [];
beepers.forEach(function (beeper) {
if (
supportedConditions.some(function (supportedCondition) {
return supportedCondition === beeper.name;
})
) {
self._beepers.push(beeper);
}
});
self._beepers = beepers.filter(beeper =>
supportedConditions.includes(beeper.name)
);
} else {
self._beepers = beepers.slice();
self._beepers = [...beepers]; // Use spread operator for shallow copy
}

self._beeperDisabledMask = 0;
}
getDisabledMask() {
const self = this;

return self._beeperDisabledMask;
getDisabledMask() {
return this._beeperDisabledMask; // Use 'this' instead of 'self'
}
setDisabledMask(beeperDisabledMask) {
const self = this;

self._beeperDisabledMask = beeperDisabledMask;
setDisabledMask(beeperDisabledMask) {
this._beeperDisabledMask = beeperDisabledMask; // Use 'this' instead of 'self'
}
isEnabled(beeperName) {
const self = this;

for (let i = 0; i < self._beepers.length; i++) {
if (self._beepers[i].name === beeperName && bit_check(self._beeperOfMask, self._beepers[i].bit)) {
return true;
}
}
return false;
isEnabled(beeperName) {
return this._beepers.some(beeper =>
beeper.name === beeperName && bit_check(this._beeperDisabledMask, beeper.bit)
);
}
generateElements(template, destination) {
const self = this;

for (let i = 0; i < self._beepers.length; i++) {
if (self._beepers[i].visible) {
generateElements(template, destination) {
for (let beeper of this._beepers) {
if (beeper.visible) {
const element = template.clone();
destination.append(element);

const inputElement = $(element).find("input");
const labelElement = $(element).find("div");
const spanElement = $(element).find("span");

inputElement.attr("id", `beeper-${i}`);
inputElement.attr("name", self._beepers[i].name);
inputElement.attr("title", self._beepers[i].name);
inputElement.prop("checked", !bit_check(self._beeperDisabledMask, self._beepers[i].bit));
inputElement.data("bit", self._beepers[i].bit);
const inputElement = element.find('input');
const labelElement = element.find('div');
const spanElement = element.find('span');

labelElement.text(self._beepers[i].name);

spanElement.attr("i18n", `beeper${self._beepers[i].name}`);
inputElement.attr({
id: `beeper-${beeper.bit}`,
name: beeper.name,
title: beeper.name,
}).prop('checked', !bit_check(this._beeperDisabledMask, beeper.bit))
.data('bit', beeper.bit);

labelElement.text(beeper.name);
spanElement.attr('i18n', `beeper${beeper.name}`);

element.show();
}
}
}
updateData(beeperElement) {
const self = this;

if (beeperElement.attr("type") === "checkbox") {
const bit = beeperElement.data("bit");

if (beeperElement.is(":checked")) {
self._beeperDisabledMask = bit_clear(self._beeperDisabledMask, bit);
updateData(beeperElement) {
if (beeperElement.attr('type') === 'checkbox') {
const bit = beeperElement.data('bit');
if (beeperElement.is(':checked')) {
this._beeperDisabledMask = bit_clear(this._beeperDisabledMask, bit);
} else {
self._beeperDisabledMask = bit_set(self._beeperDisabledMask, bit);
this._beeperDisabledMask = bit_set(this._beeperDisabledMask, bit);
}
}
}
Expand Down

0 comments on commit d3eb34e

Please sign in to comment.