mirror of
https://github.com/iNavFlight/inav-configurator.git
synced 2025-07-14 20:10:11 +03:00
Merge remote-tracking branch 'origin/master' into dzikuvx-new-mixer-approach
This commit is contained in:
commit
c4735d2690
51 changed files with 4149 additions and 1231 deletions
|
@ -42,11 +42,17 @@ var mspHelper = (function (gui) {
|
|||
'BLACKBOX': 7,
|
||||
'TELEMETRY_MAVLINK': 8,
|
||||
'TELEMETRY_IBUS': 9,
|
||||
'RUNCAM_DEVICE_CONTROL' : 10,
|
||||
'RUNCAM_DEVICE_CONTROL': 10,
|
||||
'TBS_SMARTAUDIO': 11,
|
||||
'IRC_TRAMP': 12
|
||||
};
|
||||
|
||||
// Required for MSP_DEBUGMSG because console.log() doesn't allow omitting
|
||||
// the newline at the end, so we keep the pending message here until we find a
|
||||
// '\0', then print it. Messages sent by MSP_DEBUGMSG are guaranteed to
|
||||
// always finish with a '\0'.
|
||||
var debugMsgBuffer = '';
|
||||
|
||||
/**
|
||||
*
|
||||
* @param {MSP} dataHandler
|
||||
|
@ -132,14 +138,14 @@ var mspHelper = (function (gui) {
|
|||
|
||||
case MSPCodes.MSP_SENSOR_STATUS:
|
||||
SENSOR_STATUS.isHardwareHealthy = data.getUint8(0);
|
||||
SENSOR_STATUS.gyroHwStatus = data.getUint8(1);
|
||||
SENSOR_STATUS.accHwStatus = data.getUint8(2);
|
||||
SENSOR_STATUS.magHwStatus = data.getUint8(3);
|
||||
SENSOR_STATUS.baroHwStatus = data.getUint8(4);
|
||||
SENSOR_STATUS.gpsHwStatus = data.getUint8(5);
|
||||
SENSOR_STATUS.rangeHwStatus = data.getUint8(6);
|
||||
SENSOR_STATUS.speedHwStatus = data.getUint8(7);
|
||||
SENSOR_STATUS.flowHwStatus = data.getUint8(8);
|
||||
SENSOR_STATUS.gyroHwStatus = data.getUint8(1);
|
||||
SENSOR_STATUS.accHwStatus = data.getUint8(2);
|
||||
SENSOR_STATUS.magHwStatus = data.getUint8(3);
|
||||
SENSOR_STATUS.baroHwStatus = data.getUint8(4);
|
||||
SENSOR_STATUS.gpsHwStatus = data.getUint8(5);
|
||||
SENSOR_STATUS.rangeHwStatus = data.getUint8(6);
|
||||
SENSOR_STATUS.speedHwStatus = data.getUint8(7);
|
||||
SENSOR_STATUS.flowHwStatus = data.getUint8(8);
|
||||
if (semver.gte(CONFIG.flightControllerVersion, "1.5.0")) {
|
||||
sensor_status_ex(SENSOR_STATUS);
|
||||
}
|
||||
|
@ -225,11 +231,36 @@ var mspHelper = (function (gui) {
|
|||
case MSPCodes.MSP_SONAR:
|
||||
SENSOR_DATA.sonar = data.getInt32(0, true);
|
||||
break;
|
||||
case MSPCodes.MSPV2_INAV_AIR_SPEED:
|
||||
SENSOR_DATA.air_speed = data.getInt32(0, true);
|
||||
break;
|
||||
case MSPCodes.MSP_ANALOG:
|
||||
ANALOG.voltage = data.getUint8(0) / 10.0;
|
||||
ANALOG.mAhdrawn = data.getUint16(1, true);
|
||||
ANALOG.rssi = data.getUint16(3, true); // 0-1023
|
||||
ANALOG.amperage = data.getInt16(5, true) / 100; // A
|
||||
break;
|
||||
case MSPCodes.MSPV2_INAV_ANALOG:
|
||||
ANALOG.voltage = data.getUint16(offset, true) / 100.0;
|
||||
offset += 2;
|
||||
ANALOG.cell_count = data.getUint8(offset++);
|
||||
ANALOG.battery_percentage = data.getUint8(offset++);
|
||||
ANALOG.power = data.getUint16(offset, true);
|
||||
offset += 2;
|
||||
ANALOG.mAhdrawn = data.getUint16(offset, true);
|
||||
offset += 2;
|
||||
ANALOG.mWhdrawn = data.getUint16(offset, true);
|
||||
offset += 2;
|
||||
ANALOG.rssi = data.getUint16(offset, true); // 0-1023
|
||||
offset += 2;
|
||||
ANALOG.amperage = data.getInt16(offset, true) / 100; // A
|
||||
offset += 2;
|
||||
var battery_flags = data.getUint8(offset++);
|
||||
ANALOG.battery_full_when_plugged_in = (battery_flags & 1 ? true : false);
|
||||
ANALOG.use_capacity_thresholds = ((battery_flags & 2) >> 1 ? true : false);
|
||||
ANALOG.battery_state = (battery_flags & 12) >> 2;
|
||||
ANALOG.battery_remaining_capacity = data.getUint32(offset, true);
|
||||
offset += 4;
|
||||
//noinspection JSValidateTypes
|
||||
dataHandler.analog_last_received_timestamp = Date.now();
|
||||
break;
|
||||
|
@ -255,6 +286,32 @@ var mspHelper = (function (gui) {
|
|||
offset += 2;
|
||||
RC_tuning.RC_YAW_EXPO = parseFloat((data.getUint8(offset++) / 100).toFixed(2));
|
||||
break;
|
||||
case MSPCodes.MSPV2_INAV_RATE_PROFILE:
|
||||
// compat
|
||||
RC_tuning.RC_RATE = 100;
|
||||
RC_tuning.roll_pitch_rate = 0;
|
||||
|
||||
// throttle
|
||||
RC_tuning.throttle_MID = parseFloat((data.getUint8(offset++) / 100).toFixed(2));
|
||||
RC_tuning.throttle_EXPO = parseFloat((data.getUint8(offset++) / 100).toFixed(2));
|
||||
RC_tuning.dynamic_THR_PID = parseInt(data.getUint8(offset++));
|
||||
RC_tuning.dynamic_THR_breakpoint = data.getUint16(offset, true);
|
||||
offset += 2;
|
||||
|
||||
// stabilized
|
||||
RC_tuning.RC_EXPO = parseFloat((data.getUint8(offset++) / 100).toFixed(2));
|
||||
RC_tuning.RC_YAW_EXPO = parseFloat((data.getUint8(offset++) / 100).toFixed(2));
|
||||
RC_tuning.roll_rate = data.getUint8(offset++) * 10;
|
||||
RC_tuning.pitch_rate = data.getUint8(offset++) * 10;
|
||||
RC_tuning.yaw_rate = data.getUint8(offset++) * 10;
|
||||
|
||||
// manual
|
||||
RC_tuning.manual_RC_EXPO = parseFloat((data.getUint8(offset++) / 100).toFixed(2));
|
||||
RC_tuning.manual_RC_YAW_EXPO = parseFloat((data.getUint8(offset++) / 100).toFixed(2));
|
||||
RC_tuning.manual_roll_rate = data.getUint8(offset++);
|
||||
RC_tuning.manual_pitch_rate = data.getUint8(offset++);
|
||||
RC_tuning.manual_yaw_rate = data.getUint8(offset++);
|
||||
break;
|
||||
case MSPCodes.MSP_PID:
|
||||
// PID data arrived, we need to scale it and save to appropriate bank / array
|
||||
for (i = 0, needle = 0; i < (dataHandler.message_length_expected / 3); i++, needle += 3) {
|
||||
|
@ -294,6 +351,60 @@ var mspHelper = (function (gui) {
|
|||
MISC.vbatmaxcellvoltage = data.getUint8(offset++) / 10; // 10-50
|
||||
MISC.vbatwarningcellvoltage = data.getUint8(offset++) / 10; // 10-50
|
||||
break;
|
||||
case MSPCodes.MSPV2_INAV_MISC:
|
||||
MISC.midrc = data.getInt16(offset, true);
|
||||
offset += 2;
|
||||
MISC.minthrottle = data.getUint16(offset, true); // 0-2000
|
||||
offset += 2;
|
||||
MISC.maxthrottle = data.getUint16(offset, true); // 0-2000
|
||||
offset += 2;
|
||||
MISC.mincommand = data.getUint16(offset, true); // 0-2000
|
||||
offset += 2;
|
||||
MISC.failsafe_throttle = data.getUint16(offset, true); // 1000-2000
|
||||
offset += 2;
|
||||
MISC.gps_type = data.getUint8(offset++);
|
||||
MISC.sensors_baudrate = data.getUint8(offset++);
|
||||
MISC.gps_ubx_sbas = data.getInt8(offset++);
|
||||
MISC.rssi_channel = data.getUint8(offset++);
|
||||
MISC.mag_declination = data.getInt16(offset, 1) / 10; // -18000-18000
|
||||
offset += 2;
|
||||
MISC.vbatscale = data.getUint16(offset, true);
|
||||
offset += 2;
|
||||
MISC.vbatmincellvoltage = data.getUint16(offset, true) / 100;
|
||||
offset += 2;
|
||||
MISC.vbatmaxcellvoltage = data.getUint16(offset, true) / 100;
|
||||
offset += 2;
|
||||
MISC.vbatwarningcellvoltage = data.getUint16(offset, true) / 100;
|
||||
offset += 2;
|
||||
MISC.battery_capacity = data.getUint32(offset, true);
|
||||
offset += 4;
|
||||
MISC.battery_capacity_warning = data.getUint32(offset, true);
|
||||
offset += 4;
|
||||
MISC.battery_capacity_critical = data.getUint32(offset, true);
|
||||
offset += 4;
|
||||
MISC.battery_capacity_unit = (data.getUint8(offset++) ? 'mWh' : 'mAh');
|
||||
break;
|
||||
case MSPCodes.MSPV2_INAV_BATTERY_CONFIG:
|
||||
BATTERY_CONFIG.vbatscale = data.getUint16(offset, true);
|
||||
offset += 2;
|
||||
BATTERY_CONFIG.vbatmincellvoltage = data.getUint16(offset, true) / 100;
|
||||
offset += 2;
|
||||
BATTERY_CONFIG.vbatmaxcellvoltage = data.getUint16(offset, true) / 100;
|
||||
offset += 2;
|
||||
BATTERY_CONFIG.vbatwarningcellvoltage = data.getUint16(offset, true) / 100;
|
||||
offset += 2;
|
||||
BATTERY_CONFIG.current_offset = data.getUint16(offset, true);
|
||||
offset += 2;
|
||||
BATTERY_CONFIG.current_scale = data.getUint16(offset, true);
|
||||
offset += 2;
|
||||
BATTERY_CONFIG.capacity = data.getUint32(offset, true);
|
||||
offset += 4;
|
||||
BATTERY_CONFIG.capacity_warning = data.getUint32(offset, true);
|
||||
offset += 4;
|
||||
BATTERY_CONFIG.capacity_critical = data.getUint32(offset, true);
|
||||
offset += 4;
|
||||
BATTERY_CONFIG.battery_capacity_unit = (data.getUint8(offset++) ? 'mWh' : 'mAh');
|
||||
break;
|
||||
case MSPCodes.MSP_3D:
|
||||
_3D.deadband3d_low = data.getUint16(offset, true);
|
||||
offset += 2;
|
||||
|
@ -340,7 +451,13 @@ var mspHelper = (function (gui) {
|
|||
}
|
||||
break;
|
||||
case MSPCodes.MSP_WP:
|
||||
console.log(data);
|
||||
MISSION_PLANER.bufferPoint.number = data.getUint8(0);
|
||||
MISSION_PLANER.bufferPoint.action = data.getUint8(1);
|
||||
MISSION_PLANER.bufferPoint.lat = data.getInt32(2, true) / 10000000;
|
||||
MISSION_PLANER.bufferPoint.lon = data.getInt32(6, true) / 10000000;
|
||||
MISSION_PLANER.bufferPoint.alt = data.getInt32(10, true);
|
||||
MISSION_PLANER.bufferPoint.p1 = data.getInt16(14, true);
|
||||
|
||||
break;
|
||||
case MSPCodes.MSP_BOXIDS:
|
||||
//noinspection JSUndeclaredVariable
|
||||
|
@ -462,6 +579,19 @@ var mspHelper = (function (gui) {
|
|||
console.log('Settings Saved in EEPROM');
|
||||
break;
|
||||
case MSPCodes.MSP_DEBUGMSG:
|
||||
for (var ii = 0; ii < data.byteLength; ii++) {
|
||||
var c = data.readU8();
|
||||
if (c == 0) {
|
||||
// End of message
|
||||
if (debugMsgBuffer.length > 1) {
|
||||
console.log('[DEBUG] ' + debugMsgBuffer);
|
||||
DEBUG_TRACE = (DEBUG_TRACE || '') + debugMsgBuffer;
|
||||
}
|
||||
debugMsgBuffer = '';
|
||||
continue;
|
||||
}
|
||||
debugMsgBuffer += String.fromCharCode(c);
|
||||
}
|
||||
break;
|
||||
case MSPCodes.MSP_DEBUG:
|
||||
for (i = 0; i < 4; i++)
|
||||
|
@ -503,7 +633,7 @@ var mspHelper = (function (gui) {
|
|||
BF_CONFIG.board_align_pitch = data.getInt16(8, true); // -180 - 360
|
||||
BF_CONFIG.board_align_yaw = data.getInt16(10, true); // -180 - 360
|
||||
BF_CONFIG.currentscale = data.getInt16(12, true);
|
||||
BF_CONFIG.currentoffset = data.getUint16(14, true);
|
||||
BF_CONFIG.currentoffset = data.getInt16(14, true);
|
||||
break;
|
||||
case MSPCodes.MSP_SET_BF_CONFIG:
|
||||
console.log('BF_CONFIG saved');
|
||||
|
@ -1147,6 +1277,23 @@ var mspHelper = (function (gui) {
|
|||
case MSPCodes.MSPV2_SET_SETTING:
|
||||
console.log("Setting set");
|
||||
break;
|
||||
case MSPCodes.MSP_WP_GETINFO:
|
||||
// Reserved for waypoint capabilities data.getUint8(0);
|
||||
MISSION_PLANER.maxWaypoints = data.getUint8(1);
|
||||
MISSION_PLANER.isValidMission = data.getUint8(2);
|
||||
MISSION_PLANER.countBusyPoints = data.getUint8(3);
|
||||
break;
|
||||
case MSPCodes.MSP_SET_WP:
|
||||
console.log('Point saved');
|
||||
break;
|
||||
case MSPCodes.MSP_WP_MISSION_SAVE:
|
||||
// buffer.push(0);
|
||||
console.log(data);
|
||||
|
||||
break;
|
||||
case MSPCodes.MSP_WP_MISSION_LOAD:
|
||||
console.log('Mission load');
|
||||
break;
|
||||
default:
|
||||
console.log('Unknown code detected: ' + dataHandler.code);
|
||||
} else {
|
||||
|
@ -1231,6 +1378,28 @@ var mspHelper = (function (gui) {
|
|||
buffer.push(highByte(RC_tuning.dynamic_THR_breakpoint));
|
||||
buffer.push(Math.round(RC_tuning.RC_YAW_EXPO * 100));
|
||||
break;
|
||||
case MSPCodes.MSPV2_INAV_SET_RATE_PROFILE:
|
||||
// throttle
|
||||
buffer.push(Math.round(RC_tuning.throttle_MID * 100));
|
||||
buffer.push(Math.round(RC_tuning.throttle_EXPO * 100));
|
||||
buffer.push(RC_tuning.dynamic_THR_PID);
|
||||
buffer.push(lowByte(RC_tuning.dynamic_THR_breakpoint));
|
||||
buffer.push(highByte(RC_tuning.dynamic_THR_breakpoint));
|
||||
|
||||
// stabilized
|
||||
buffer.push(Math.round(RC_tuning.RC_EXPO * 100));
|
||||
buffer.push(Math.round(RC_tuning.RC_YAW_EXPO * 100));
|
||||
buffer.push(Math.round(RC_tuning.roll_rate / 10));
|
||||
buffer.push(Math.round(RC_tuning.pitch_rate / 10));
|
||||
buffer.push(Math.round(RC_tuning.yaw_rate / 10));
|
||||
|
||||
// manual
|
||||
buffer.push(Math.round(RC_tuning.manual_RC_EXPO * 100));
|
||||
buffer.push(Math.round(RC_tuning.manual_RC_YAW_EXPO * 100));
|
||||
buffer.push(RC_tuning.manual_roll_rate);
|
||||
buffer.push(RC_tuning.manual_pitch_rate);
|
||||
buffer.push(RC_tuning.manual_yaw_rate);
|
||||
break;
|
||||
|
||||
case MSPCodes.MSP_SET_RX_MAP:
|
||||
for (i = 0; i < RC_MAP.length; i++) {
|
||||
|
@ -1275,6 +1444,60 @@ var mspHelper = (function (gui) {
|
|||
buffer.push(Math.round(MISC.vbatmaxcellvoltage * 10));
|
||||
buffer.push(Math.round(MISC.vbatwarningcellvoltage * 10));
|
||||
break;
|
||||
case MSPCodes.MSPV2_INAV_SET_MISC:
|
||||
buffer.push(lowByte(MISC.midrc));
|
||||
buffer.push(highByte(MISC.midrc));
|
||||
buffer.push(lowByte(MISC.minthrottle));
|
||||
buffer.push(highByte(MISC.minthrottle));
|
||||
buffer.push(lowByte(MISC.maxthrottle));
|
||||
buffer.push(highByte(MISC.maxthrottle));
|
||||
buffer.push(lowByte(MISC.mincommand));
|
||||
buffer.push(highByte(MISC.mincommand));
|
||||
buffer.push(lowByte(MISC.failsafe_throttle));
|
||||
buffer.push(highByte(MISC.failsafe_throttle));
|
||||
buffer.push(MISC.gps_type);
|
||||
buffer.push(MISC.sensors_baudrate);
|
||||
buffer.push(MISC.gps_ubx_sbas);
|
||||
buffer.push(MISC.rssi_channel);
|
||||
buffer.push(lowByte(Math.round(MISC.mag_declination * 10)));
|
||||
buffer.push(highByte(Math.round(MISC.mag_declination * 10)));
|
||||
buffer.push(lowByte(MISC.vbatscale));
|
||||
buffer.push(highByte(MISC.vbatscale));
|
||||
buffer.push(lowByte(Math.round(MISC.vbatmincellvoltage * 100)));
|
||||
buffer.push(highByte(Math.round(MISC.vbatmincellvoltage * 100)));
|
||||
buffer.push(lowByte(Math.round(MISC.vbatmaxcellvoltage * 100)));
|
||||
buffer.push(highByte(Math.round(MISC.vbatmaxcellvoltage * 100)));
|
||||
buffer.push(lowByte(Math.round(MISC.vbatwarningcellvoltage * 100)));
|
||||
buffer.push(highByte(Math.round(MISC.vbatwarningcellvoltage * 100)));
|
||||
for (byte_index = 0; byte_index < 4; ++byte_index)
|
||||
buffer.push(specificByte(MISC.battery_capacity, byte_index));
|
||||
for (byte_index = 0; byte_index < 4; ++byte_index)
|
||||
buffer.push(specificByte(MISC.battery_capacity_warning, byte_index));
|
||||
for (byte_index = 0; byte_index < 4; ++byte_index)
|
||||
buffer.push(specificByte(MISC.battery_capacity_critical, byte_index));
|
||||
buffer.push((MISC.battery_capacity_unit == 'mAh') ? 0 : 1);
|
||||
break;
|
||||
case MSPCodes.MSPV2_INAV_SET_BATTERY_CONFIG:
|
||||
buffer.push(lowByte(BATTERY_CONFIG.vbatscale));
|
||||
buffer.push(highByte(BATTERY_CONFIG.vbatscale));
|
||||
buffer.push(lowByte(Math.round(BATTERY_CONFIG.vbatmincellvoltage * 100)));
|
||||
buffer.push(highByte(Math.round(BATTERY_CONFIG.vbatmincellvoltage * 100)));
|
||||
buffer.push(lowByte(Math.round(BATTERY_CONFIG.vbatmaxcellvoltage * 100)));
|
||||
buffer.push(highByte(Math.round(BATTERY_CONFIG.vbatmaxcellvoltage * 100)));
|
||||
buffer.push(lowByte(Math.round(BATTERY_CONFIG.vbatwarningcellvoltage * 100)));
|
||||
buffer.push(highByte(Math.round(BATTERY_CONFIG.vbatwarningcellvoltage * 100)));
|
||||
buffer.push(lowByte(BATTERY_CONFIG.current_offset));
|
||||
buffer.push(highByte(BATTERY_CONFIG.current_offset));
|
||||
buffer.push(lowByte(BATTERY_CONFIG.current_scale));
|
||||
buffer.push(highByte(BATTERY_CONFIG.current_scale));
|
||||
for (byte_index = 0; byte_index < 4; ++byte_index)
|
||||
buffer.push(specificByte(BATTERY_CONFIG.capacity, byte_index));
|
||||
for (byte_index = 0; byte_index < 4; ++byte_index)
|
||||
buffer.push(specificByte(BATTERY_CONFIG.capacity_warning, byte_index));
|
||||
for (byte_index = 0; byte_index < 4; ++byte_index)
|
||||
buffer.push(specificByte(BATTERY_CONFIG.capacity_critical, byte_index));
|
||||
buffer.push(BATTERY_CONFIG.capacity_unit);
|
||||
break;
|
||||
|
||||
case MSPCodes.MSP_SET_RX_CONFIG:
|
||||
buffer.push(RX_CONFIG.serialrx_provider);
|
||||
|
@ -1326,7 +1549,7 @@ var mspHelper = (function (gui) {
|
|||
buffer.push(highByte(FAILSAFE_CONFIG.failsafe_fw_yaw_rate));
|
||||
buffer.push(lowByte(FAILSAFE_CONFIG.failsafe_stick_motion_threshold));
|
||||
buffer.push(highByte(FAILSAFE_CONFIG.failsafe_stick_motion_threshold));
|
||||
}
|
||||
}
|
||||
if (semver.gte(CONFIG.flightControllerVersion, "1.7.4")) {
|
||||
buffer.push(lowByte(FAILSAFE_CONFIG.failsafe_min_distance));
|
||||
buffer.push(highByte(FAILSAFE_CONFIG.failsafe_min_distance));
|
||||
|
@ -1627,6 +1850,44 @@ var mspHelper = (function (gui) {
|
|||
buffer.push(SENSOR_CONFIG.opflow);
|
||||
break;
|
||||
|
||||
case MSPCodes.MSP_SET_WP:
|
||||
buffer.push(MISSION_PLANER.bufferPoint.number); // sbufReadU8(src); // number
|
||||
buffer.push(MISSION_PLANER.bufferPoint.action); // sbufReadU8(src); // action
|
||||
buffer.push(specificByte(MISSION_PLANER.bufferPoint.lat, 0)); // sbufReadU32(src); // lat
|
||||
buffer.push(specificByte(MISSION_PLANER.bufferPoint.lat, 1));
|
||||
buffer.push(specificByte(MISSION_PLANER.bufferPoint.lat, 2));
|
||||
buffer.push(specificByte(MISSION_PLANER.bufferPoint.lat, 3));
|
||||
buffer.push(specificByte(MISSION_PLANER.bufferPoint.lon, 0)); // sbufReadU32(src); // lon
|
||||
buffer.push(specificByte(MISSION_PLANER.bufferPoint.lon, 1));
|
||||
buffer.push(specificByte(MISSION_PLANER.bufferPoint.lon, 2));
|
||||
buffer.push(specificByte(MISSION_PLANER.bufferPoint.lon, 3));
|
||||
buffer.push(specificByte(MISSION_PLANER.bufferPoint.alt, 0)); // sbufReadU32(src); // to set altitude (cm)
|
||||
buffer.push(specificByte(MISSION_PLANER.bufferPoint.alt, 1));
|
||||
buffer.push(specificByte(MISSION_PLANER.bufferPoint.alt, 2));
|
||||
buffer.push(specificByte(MISSION_PLANER.bufferPoint.alt, 3));
|
||||
buffer.push(lowByte(MISSION_PLANER.bufferPoint.p1)); //sbufReadU16(src); // P1 speed or landing
|
||||
buffer.push(highByte(MISSION_PLANER.bufferPoint.p1));
|
||||
buffer.push(lowByte(0)); //sbufReadU16(src); // P2
|
||||
buffer.push(highByte(0));
|
||||
buffer.push(lowByte(0)); //sbufReadU16(src); // P3
|
||||
buffer.push(highByte(0));
|
||||
buffer.push(MISSION_PLANER.bufferPoint.endMission); //sbufReadU8(src); // future: to set nav flag
|
||||
break;
|
||||
case MSPCodes.MSP_WP:
|
||||
console.log(MISSION_PLANER.bufferPoint.number);
|
||||
buffer.push(MISSION_PLANER.bufferPoint.number+1);
|
||||
|
||||
break;
|
||||
case MSPCodes.MSP_WP_MISSION_SAVE:
|
||||
// buffer.push(0);
|
||||
console.log(buffer);
|
||||
|
||||
break;
|
||||
case MSPCodes.MSP_WP_MISSION_LOAD:
|
||||
// buffer.push(0);
|
||||
console.log(buffer);
|
||||
|
||||
break;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
|
@ -1652,9 +1913,9 @@ var mspHelper = (function (gui) {
|
|||
|
||||
self.sendBlackboxConfiguration = function (onDataCallback) {
|
||||
var message = [
|
||||
BLACKBOX.blackboxDevice & 0xFF,
|
||||
BLACKBOX.blackboxRateNum & 0xFF,
|
||||
BLACKBOX.blackboxRateDenom & 0xFF
|
||||
BLACKBOX.blackboxDevice & 0xFF,
|
||||
BLACKBOX.blackboxRateNum & 0xFF,
|
||||
BLACKBOX.blackboxRateDenom & 0xFF
|
||||
];
|
||||
|
||||
//noinspection JSUnusedLocalSymbols
|
||||
|
@ -2149,7 +2410,7 @@ var mspHelper = (function (gui) {
|
|||
MSP.send_message(MSPCodes.MSP_IDENT, false, false, callback);
|
||||
};
|
||||
|
||||
self.loadINAVPidConfig = function(callback) {
|
||||
self.loadINAVPidConfig = function (callback) {
|
||||
if (semver.gt(CONFIG.flightControllerVersion, "1.3.0")) {
|
||||
MSP.send_message(MSPCodes.MSP_INAV_PID, false, false, callback);
|
||||
} else {
|
||||
|
@ -2161,7 +2422,7 @@ var mspHelper = (function (gui) {
|
|||
MSP.send_message(MSPCodes.MSP_LOOP_TIME, false, false, callback);
|
||||
};
|
||||
|
||||
self.loadAdvancedConfig = function(callback) {
|
||||
self.loadAdvancedConfig = function (callback) {
|
||||
if (semver.gte(CONFIG.flightControllerVersion, "1.3.0")) {
|
||||
MSP.send_message(MSPCodes.MSP_ADVANCED_CONFIG, false, false, callback);
|
||||
} else {
|
||||
|
@ -2189,6 +2450,10 @@ var mspHelper = (function (gui) {
|
|||
MSP.send_message(MSPCodes.MSP_RC_TUNING, false, false, callback);
|
||||
};
|
||||
|
||||
self.loadRateProfileData = function (callback) {
|
||||
MSP.send_message(MSPCodes.MSPV2_INAV_RATE_PROFILE, false, false, callback);
|
||||
};
|
||||
|
||||
self.loadPidData = function (callback) {
|
||||
MSP.send_message(MSPCodes.MSP_PID, false, false, callback);
|
||||
};
|
||||
|
@ -2213,6 +2478,14 @@ var mspHelper = (function (gui) {
|
|||
MSP.send_message(MSPCodes.MSP_MISC, false, false, callback);
|
||||
};
|
||||
|
||||
self.loadMiscV2 = function (callback) {
|
||||
MSP.send_message(MSPCodes.MSPV2_INAV_MISC, false, false, callback);
|
||||
};
|
||||
|
||||
self.loadBatteryConfig = function (callback) {
|
||||
MSP.send_message(MSPCodes.MSPV2_BATTERY_CONFIG, false, false, callback);
|
||||
};
|
||||
|
||||
self.loadArmingConfig = function (callback) {
|
||||
MSP.send_message(MSPCodes.MSP_ARMING_CONFIG, false, false, callback);
|
||||
};
|
||||
|
@ -2309,6 +2582,10 @@ var mspHelper = (function (gui) {
|
|||
MSP.send_message(MSPCodes.MSP_SET_RC_TUNING, mspHelper.crunch(MSPCodes.MSP_SET_RC_TUNING), false, callback);
|
||||
};
|
||||
|
||||
self.saveRateProfileData = function (callback) {
|
||||
MSP.send_message(MSPCodes.MSPV2_INAV_SET_RATE_PROFILE, mspHelper.crunch(MSPCodes.MSPV2_INAV_SET_RATE_PROFILE), false, callback);
|
||||
};
|
||||
|
||||
self.savePidAdvanced = function (callback) {
|
||||
if (semver.gte(CONFIG.flightControllerVersion, "1.4.0")) {
|
||||
MSP.send_message(MSPCodes.MSP_SET_PID_ADVANCED, mspHelper.crunch(MSPCodes.MSP_SET_PID_ADVANCED), false, callback);
|
||||
|
@ -2325,6 +2602,14 @@ var mspHelper = (function (gui) {
|
|||
MSP.send_message(MSPCodes.MSP_SET_MISC, mspHelper.crunch(MSPCodes.MSP_SET_MISC), false, callback);
|
||||
};
|
||||
|
||||
self.saveMiscV2 = function (callback) {
|
||||
MSP.send_message(MSPCodes.MSPV2_INAV_SET_MISC, mspHelper.crunch(MSPCodes.MSPV2_INAV_SET_MISC), false, callback);
|
||||
};
|
||||
|
||||
self.saveBatteryConfig = function (callback) {
|
||||
MSP.send_message(MSPCodes.MSPV2_SET_BATTERY_CONFIG, mspHelper.crunch(MSPCodes.MSPV2_SET_BATTERY_CONFIG), false, callback);
|
||||
};
|
||||
|
||||
self.save3dConfig = function (callback) {
|
||||
MSP.send_message(MSPCodes.MSP_SET_3D, mspHelper.crunch(MSPCodes.MSP_SET_3D), false, callback);
|
||||
};
|
||||
|
@ -2342,7 +2627,7 @@ var mspHelper = (function (gui) {
|
|||
};
|
||||
|
||||
self.saveRxConfig = function (callback) {
|
||||
if(semver.gte(CONFIG.apiVersion, "1.21.0")) {
|
||||
if (semver.gte(CONFIG.apiVersion, "1.21.0")) {
|
||||
MSP.send_message(MSPCodes.MSP_SET_RX_CONFIG, mspHelper.crunch(MSPCodes.MSP_SET_RX_CONFIG), false, callback);
|
||||
} else {
|
||||
callback();
|
||||
|
@ -2350,7 +2635,7 @@ var mspHelper = (function (gui) {
|
|||
};
|
||||
|
||||
self.saveSensorConfig = function (callback) {
|
||||
if(semver.gte(CONFIG.flightControllerVersion, "1.5.0")) {
|
||||
if (semver.gte(CONFIG.flightControllerVersion, "1.5.0")) {
|
||||
MSP.send_message(MSPCodes.MSP_SET_SENSOR_CONFIG, mspHelper.crunch(MSPCodes.MSP_SET_SENSOR_CONFIG), false, callback);
|
||||
} else {
|
||||
callback();
|
||||
|
@ -2437,20 +2722,28 @@ var mspHelper = (function (gui) {
|
|||
}
|
||||
};
|
||||
|
||||
self._getSetting = function(name) {
|
||||
self.getMissionInfo = function (callback) {
|
||||
if (semver.gte(CONFIG.flightControllerVersion, "1.8.1")) {
|
||||
MSP.send_message(MSPCodes.MSP_WP_GETINFO, false, false, callback);
|
||||
} else {
|
||||
callback();
|
||||
}
|
||||
};
|
||||
|
||||
self._getSetting = function (name) {
|
||||
var promise;
|
||||
if (this._settings) {
|
||||
promise = Promise.resolve(this._settings);
|
||||
} else {
|
||||
promise = new Promise(function(resolve, reject) {
|
||||
promise = new Promise(function (resolve, reject) {
|
||||
var $this = this;
|
||||
$.ajax({
|
||||
url: chrome.runtime.getURL('/resources/settings.json'),
|
||||
dataType: 'json',
|
||||
error: function(jqXHR, text, error) {
|
||||
error: function (jqXHR, text, error) {
|
||||
reject(error);
|
||||
},
|
||||
success: function(data) {
|
||||
success: function (data) {
|
||||
$this._settings = data;
|
||||
resolve(data);
|
||||
}
|
||||
|
@ -2462,19 +2755,19 @@ var mspHelper = (function (gui) {
|
|||
});
|
||||
};
|
||||
|
||||
self._encodeSettingName = function(name, data) {
|
||||
self._encodeSettingName = function (name, data) {
|
||||
for (var ii = 0; ii < name.length; ii++) {
|
||||
data.push(name.charCodeAt(ii));
|
||||
}
|
||||
data.push(0);
|
||||
};
|
||||
|
||||
self.getSetting = function(name, callback) {
|
||||
self.getSetting = function (name, callback) {
|
||||
var $this = this;
|
||||
return this._getSetting(name).then(function (setting) {
|
||||
var data = [];
|
||||
var data = [];
|
||||
$this._encodeSettingName(name, data);
|
||||
MSP.send_message(MSPCodes.MSPV2_SETTING, data, false, function(resp) {
|
||||
MSP.send_message(MSPCodes.MSPV2_SETTING, data, false, function (resp) {
|
||||
var value;
|
||||
switch (setting.type) {
|
||||
case "uint8_t":
|
||||
|
@ -2511,7 +2804,7 @@ var mspHelper = (function (gui) {
|
|||
});
|
||||
};
|
||||
|
||||
self.encodeSetting = function(name, value) {
|
||||
self.encodeSetting = function (name, value) {
|
||||
var $this = this;
|
||||
return this._getSetting(name).then(function (setting) {
|
||||
if (setting.table) {
|
||||
|
@ -2554,15 +2847,15 @@ var mspHelper = (function (gui) {
|
|||
});
|
||||
};
|
||||
|
||||
self.setSetting = function(name, value, callback) {
|
||||
self.setSetting = function (name, value, callback) {
|
||||
this.encodeSetting(name, value).then(function (data) {
|
||||
MSP.send_message(MSPCodes.MSPV2_SET_SETTING, data, false, callback);
|
||||
});
|
||||
};
|
||||
|
||||
self.getRTC = function(callback) {
|
||||
self.getRTC = function (callback) {
|
||||
if (semver.gt(CONFIG.flightControllerVersion, "1.7.3")) {
|
||||
MSP.send_message(MSPCodes.MSP_RTC, false, false, function(resp) {
|
||||
MSP.send_message(MSPCodes.MSP_RTC, false, false, function (resp) {
|
||||
var seconds = resp.data.read32();
|
||||
var millis = resp.data.readU16();
|
||||
if (callback) {
|
||||
|
@ -2574,7 +2867,7 @@ var mspHelper = (function (gui) {
|
|||
}
|
||||
};
|
||||
|
||||
self.setRTC = function(callback) {
|
||||
self.setRTC = function (callback) {
|
||||
if (semver.gt(CONFIG.flightControllerVersion, "1.7.3")) {
|
||||
var now = Date.now();
|
||||
var secs = now / 1000;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue