mirror of
https://github.com/iNavFlight/inav-configurator.git
synced 2025-07-17 05:15:20 +03:00
Allow reassignment of led pin to servos or motors
This commit is contained in:
parent
71ac169df6
commit
c98bf6e013
5 changed files with 21 additions and 7 deletions
|
@ -17,7 +17,7 @@ var BitHelper = function() {
|
|||
}
|
||||
|
||||
self.bit_check = function (num, bit) {
|
||||
return ((num >> bit) % 2 != 0);
|
||||
return ((1 << bit) & num) != 0;
|
||||
}
|
||||
|
||||
self.bit_set = function (num, bit) {
|
||||
|
|
|
@ -166,6 +166,7 @@ var MSPCodes = {
|
|||
MSP2_INAV_MC_BRAKING: 0x200B,
|
||||
MSP2_INAV_SET_MC_BRAKING: 0x200C,
|
||||
MSPV2_INAV_OUTPUT_MAPPING_EXT: 0x200D,
|
||||
MSPV2_INAV_OUTPUT_MAPPING_EXT2: 0x210D,
|
||||
MSP2_INAV_TIMER_OUTPUT_MODE: 0x200E,
|
||||
MSP2_INAV_SET_TIMER_OUTPUT_MODE: 0x200F,
|
||||
|
||||
|
|
|
@ -1423,6 +1423,7 @@ var mspHelper = (function () {
|
|||
case MSPCodes.MSP2_INAV_SET_CUSTOM_OSD_ELEMENTS:
|
||||
console.log('OSD custom elements preferences saved');
|
||||
break;
|
||||
/*
|
||||
case MSPCodes.MSPV2_INAV_OUTPUT_MAPPING:
|
||||
FC.OUTPUT_MAPPING.flush();
|
||||
for (let i = 0; i < data.byteLength; ++i)
|
||||
|
@ -1430,11 +1431,12 @@ var mspHelper = (function () {
|
|||
'timerId': i,
|
||||
'usageFlags': data.getUint8(i)});
|
||||
break;
|
||||
case MSPCodes.MSPV2_INAV_OUTPUT_MAPPING_EXT:
|
||||
*/
|
||||
case MSPCodes.MSPV2_INAV_OUTPUT_MAPPING_EXT2:
|
||||
FC.OUTPUT_MAPPING.flush();
|
||||
for (let i = 0; i < data.byteLength; i += 2) {
|
||||
for (let i = 0; i < data.byteLength; i += 5) {
|
||||
let timerId = data.getUint8(i);
|
||||
let usageFlags = data.getUint8(i + 1);
|
||||
let usageFlags = data.getUint32(i + 1, true);
|
||||
FC.OUTPUT_MAPPING.put(
|
||||
{
|
||||
'timerId': timerId,
|
||||
|
@ -2784,11 +2786,12 @@ var mspHelper = (function () {
|
|||
};
|
||||
|
||||
self.loadOutputMapping = function (callback) {
|
||||
alert('Obsolete MSPHelper.loadOutputMapping call');
|
||||
MSP.send_message(MSPCodes.MSPV2_INAV_OUTPUT_MAPPING, false, false, callback);
|
||||
};
|
||||
|
||||
self.loadOutputMappingExt = function (callback) {
|
||||
MSP.send_message(MSPCodes.MSPV2_INAV_OUTPUT_MAPPING_EXT, false, false, callback);
|
||||
MSP.send_message(MSPCodes.MSPV2_INAV_OUTPUT_MAPPING_EXT2, false, false, callback);
|
||||
};
|
||||
|
||||
self.loadTimerOutputModes = function(callback) {
|
||||
|
|
|
@ -30,6 +30,7 @@ var OutputMappingCollection = function () {
|
|||
|
||||
const OUTPUT_TYPE_MOTOR = 0;
|
||||
const OUTPUT_TYPE_SERVO = 1;
|
||||
const OUTPUT_TYPE_LED = 2;
|
||||
|
||||
self.TIMER_OUTPUT_MODE_AUTO = 0;
|
||||
self.TIMER_OUTPUT_MODE_MOTORS = 1;
|
||||
|
@ -98,6 +99,7 @@ var OutputMappingCollection = function () {
|
|||
outputMap = [],
|
||||
offset = getFirstOutputOffset();
|
||||
|
||||
|
||||
for (let i = 0; i < self.getOutputCount(); i++) {
|
||||
|
||||
let assignment = timerMap[i + offset];
|
||||
|
@ -110,6 +112,8 @@ var OutputMappingCollection = function () {
|
|||
} else if (assignment == OUTPUT_TYPE_SERVO) {
|
||||
outputMap[i] = "Servo " + servos[currentServoIndex];
|
||||
currentServoIndex++;
|
||||
} else if (assignment == OUTPUT_TYPE_LED) {
|
||||
outputMap[i] = "Led";
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -126,12 +130,17 @@ var OutputMappingCollection = function () {
|
|||
|
||||
self.getOutputCount = function () {
|
||||
let retVal = 0;
|
||||
let testFlag = 1 << TIM_USE_LED;
|
||||
testFlag = testFlag + 1;
|
||||
|
||||
for (let i = 0; i < data.length; i++) {
|
||||
let flags = data[i]['usageFlags'];
|
||||
if (
|
||||
BitHelper.bit_check(data[i]['usageFlags'], TIM_USE_MOTOR) ||
|
||||
BitHelper.bit_check(data[i]['usageFlags'], TIM_USE_SERVO)
|
||||
BitHelper.bit_check(flags, TIM_USE_MOTOR) ||
|
||||
BitHelper.bit_check(flags, TIM_USE_SERVO) ||
|
||||
BitHelper.bit_check(flags, TIM_USE_LED)
|
||||
) {
|
||||
//alert("Found motor, servo or led");
|
||||
retVal++;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -129,6 +129,7 @@ TABS.mixer.initialize = function (callback, scrollPosition) {
|
|||
'<option value=' + FC.OUTPUT_MAPPING.TIMER_OUTPUT_MODE_AUTO + '' + (usageMode == FC.OUTPUT_MAPPING.TIMER_OUTPUT_MODE_AUTO ? ' selected' : '')+ '>AUTO</option>'+
|
||||
'<option value=' + FC.OUTPUT_MAPPING.TIMER_OUTPUT_MODE_MOTORS + '' + (usageMode == FC.OUTPUT_MAPPING.TIMER_OUTPUT_MODE_MOTORS ? ' selected' : '')+ '>MOTORS</option>'+
|
||||
'<option value=' + FC.OUTPUT_MAPPING.TIMER_OUTPUT_MODE_SERVOS + '' + (usageMode == FC.OUTPUT_MAPPING.TIMER_OUTPUT_MODE_SERVOS ? ' selected' : '')+ '>SERVOS</option>'+
|
||||
'<option value=' + FC.OUTPUT_MAPPING.TIMER_OUTPUT_MODE_LED + '' + (usageMode == FC.OUTPUT_MAPPING.TIMER_OUTPUT_MODE_LED ? ' selected' : '')+ '>LED</option>'+
|
||||
'</select>' +
|
||||
'<label for="timer-output-' + t + '">' +
|
||||
'<span> Timer ' + (parseInt(t) + 1) + '</span>' +
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue