1
0
mirror of https://bitbucket.org/librepilot/librepilot.git synced 2025-02-20 10:54:14 +01:00

Revert "Merge remote-tracking branch 'origin/proff/OP-1373_DSMFixes' into next"

This reverts commit a39e3932748fa1ca0126a33c188703944e1e7c3e, reversing
changes made to ebfdaf28b5295f558baf9297fdc8421d93214d83.
This commit is contained in:
Fredrik Larrson 2014-09-08 02:31:02 +10:00
parent a39e393274
commit d91db0af6f
10 changed files with 65 additions and 76 deletions

View File

@ -111,8 +111,7 @@
/* DSM protocol variations */
enum pios_dsm_proto {
PIOS_DSM_PROTO_DSM210BIT,
PIOS_DSM_PROTO_DSM211BIT,
PIOS_DSM_PROTO_DSM2,
PIOS_DSM_PROTO_DSMX10BIT,
PIOS_DSM_PROTO_DSMX11BIT,
};

View File

@ -181,7 +181,7 @@ static void PIOS_DSM_ResetState(struct pios_dsm_dev *dsm_dev)
static int PIOS_DSM_UnrollChannels(struct pios_dsm_dev *dsm_dev)
{
struct pios_dsm_state *state = &(dsm_dev->state);
uint8_t resolution=10;
uint8_t resolution;
#ifdef DSM_LOST_FRAME_COUNTER
/* increment the lost frame counter */
@ -191,16 +191,35 @@ static int PIOS_DSM_UnrollChannels(struct pios_dsm_dev *dsm_dev)
#endif
/* check the frame type assuming master satellite stream */
switch(dsm_dev->proto) {
case PIOS_DSM_PROTO_DSM210BIT:
case PIOS_DSM_PROTO_DSMX10BIT:
resolution = 10;
break;
case PIOS_DSM_PROTO_DSM211BIT:
case PIOS_DSM_PROTO_DSMX11BIT:
resolution = 11;
break;
uint8_t type = state->received_data[1];
switch (type) {
case 0x01:
case 0x02:
case 0x12:
/* DSM2, DSMJ stream */
if (dsm_dev->proto == PIOS_DSM_PROTO_DSM2) {
/* DSM2/DSMJ resolution is known from the header */
resolution = (type & DSM_DSM2_RES_MASK) ? 11 : 10;
} else {
/* DSMX resolution should explicitly be selected */
goto stream_error;
}
break;
case 0xA2:
case 0xB2:
/* DSMX stream */
if (dsm_dev->proto == PIOS_DSM_PROTO_DSMX10BIT) {
resolution = 10;
} else if (dsm_dev->proto == PIOS_DSM_PROTO_DSMX11BIT) {
resolution = 11;
} else {
/* DSMX resolution should explicitly be selected */
goto stream_error;
}
break;
default:
/* unknown yet data stream */
goto stream_error;
}
/* unroll channels */

View File

@ -477,19 +477,15 @@ void PIOS_Board_Init(void)
}
#endif /* PIOS_INCLUDE_GPS */
break;
case HWSETTINGS_CC_MAINPORT_DSM210BIT:
case HWSETTINGS_CC_MAINPORT_DSM211BIT:
case HWSETTINGS_CC_MAINPORT_DSM2:
case HWSETTINGS_CC_MAINPORT_DSMX10BIT:
case HWSETTINGS_CC_MAINPORT_DSMX11BIT:
#if defined(PIOS_INCLUDE_DSM)
{
enum pios_dsm_proto proto;
switch (hwsettings_cc_mainport) {
case HWSETTINGS_CC_MAINPORT_DSM210BIT:
proto = PIOS_DSM_PROTO_DSM210BIT;
break;
case HWSETTINGS_CC_MAINPORT_DSM211BIT:
proto = PIOS_DSM_PROTO_DSM211BIT;
case HWSETTINGS_CC_MAINPORT_DSM2:
proto = PIOS_DSM_PROTO_DSM2;
break;
case HWSETTINGS_CC_MAINPORT_DSMX10BIT:
proto = PIOS_DSM_PROTO_DSMX10BIT;

View File

@ -632,18 +632,14 @@ void PIOS_Board_Init(void)
}
#endif
break;
case HWSETTINGS_RM_MAINPORT_DSM210BIT:
case HWSETTINGS_RM_MAINPORT_DSM211BIT:
case HWSETTINGS_RM_MAINPORT_DSM2:
case HWSETTINGS_RM_MAINPORT_DSMX10BIT:
case HWSETTINGS_RM_MAINPORT_DSMX11BIT:
{
enum pios_dsm_proto proto;
switch (hwsettings_mainport) {
case HWSETTINGS_RM_MAINPORT_DSM210BIT:
proto = PIOS_DSM_PROTO_DSM210BIT;
break;
case HWSETTINGS_RM_MAINPORT_DSM211BIT:
proto = PIOS_DSM_PROTO_DSM211BIT;
case HWSETTINGS_RM_MAINPORT_DSM2:
proto = PIOS_DSM_PROTO_DSM2;
break;
case HWSETTINGS_RM_MAINPORT_DSMX10BIT:
proto = PIOS_DSM_PROTO_DSMX10BIT;
@ -705,18 +701,14 @@ void PIOS_Board_Init(void)
case HWSETTINGS_RM_FLEXIPORT_GPS:
PIOS_Board_configure_com(&pios_usart_flexi_cfg, PIOS_COM_GPS_RX_BUF_LEN, -1, &pios_usart_com_driver, &pios_com_gps_id);
break;
case HWSETTINGS_RM_FLEXIPORT_DSM210BIT:
case HWSETTINGS_RM_FLEXIPORT_DSM211BIT:
case HWSETTINGS_RM_FLEXIPORT_DSM2:
case HWSETTINGS_RM_FLEXIPORT_DSMX10BIT:
case HWSETTINGS_RM_FLEXIPORT_DSMX11BIT:
{
enum pios_dsm_proto proto;
switch (hwsettings_flexiport) {
case HWSETTINGS_RM_FLEXIPORT_DSM210BIT:
proto = PIOS_DSM_PROTO_DSM210BIT;
break;
case HWSETTINGS_RM_FLEXIPORT_DSM211BIT:
proto = PIOS_DSM_PROTO_DSM211BIT;
case HWSETTINGS_RM_FLEXIPORT_DSM2:
proto = PIOS_DSM_PROTO_DSM2;
break;
case HWSETTINGS_RM_FLEXIPORT_DSMX10BIT:
proto = PIOS_DSM_PROTO_DSMX10BIT;

View File

@ -139,8 +139,7 @@ void ConnectionDiagram::setupGraphicsScene()
break;
case VehicleConfigurationSource::INPUT_DSMX10:
case VehicleConfigurationSource::INPUT_DSMX11:
case VehicleConfigurationSource::INPUT_DSM2_10:
case VehicleConfigurationSource::INPUT_DSM2_11:
case VehicleConfigurationSource::INPUT_DSM2:
elementsToShow << "satellite";
break;
default:

View File

@ -54,7 +54,7 @@ bool InputPage::validatePage()
} else if (ui->sbusButton->isChecked()) {
getWizard()->setInputType(SetupWizard::INPUT_SBUS);
} else if (ui->spectrumButton->isChecked()) {
getWizard()->setInputType(SetupWizard::INPUT_DSM2_11);
getWizard()->setInputType(SetupWizard::INPUT_DSM2);
} else {
getWizard()->setInputType(SetupWizard::INPUT_PWM);
}
@ -85,13 +85,9 @@ bool InputPage::restartNeeded(VehicleConfigurationSource::INPUT_TYPE selectedTyp
case VehicleConfigurationSource::INPUT_SBUS:
return data.CC_MainPort != HwSettings::CC_MAINPORT_SBUS;
case VehicleConfigurationSource::INPUT_DSM2_10:
case VehicleConfigurationSource::INPUT_DSM2:
// TODO: Handle all of the DSM types ?? Which is most common?
return data.CC_MainPort != HwSettings::CC_MAINPORT_DSM210BIT;
case VehicleConfigurationSource::INPUT_DSM2_11:
// TODO: Handle all of the DSM types ?? Which is most common?
return data.CC_MainPort != HwSettings::CC_MAINPORT_DSM211BIT;
return data.CC_MainPort != HwSettings::CC_MAINPORT_DSM2;
default: return true;
}
@ -109,13 +105,9 @@ bool InputPage::restartNeeded(VehicleConfigurationSource::INPUT_TYPE selectedTyp
case VehicleConfigurationSource::INPUT_SBUS:
return data.RM_MainPort != HwSettings::CC_MAINPORT_SBUS;
case VehicleConfigurationSource::INPUT_DSM2_10:
case VehicleConfigurationSource::INPUT_DSM2:
// TODO: Handle all of the DSM types ?? Which is most common?
return data.RM_MainPort != HwSettings::CC_MAINPORT_DSM210BIT;
case VehicleConfigurationSource::INPUT_DSM2_11:
// TODO: Handle all of the DSM types ?? Which is most common?
return data.RM_MainPort != HwSettings::CC_MAINPORT_DSM211BIT;
return data.RM_MainPort != HwSettings::CC_MAINPORT_DSM2;
default: return true;
}

View File

@ -252,17 +252,14 @@ QString SetupWizard::getSummaryText()
case INPUT_SBUS:
summary.append(tr("Futaba S.Bus"));
break;
case INPUT_DSM2_10:
summary.append(tr("Spektrum satellite (DSM2 10bits)"));
break;
case INPUT_DSM2_11:
summary.append(tr("Spektrum satellite (DSM2 11bits)"));
case INPUT_DSM2:
summary.append(tr("Spektrum satellite (DSM2)"));
break;
case INPUT_DSMX10:
summary.append(tr("Spektrum satellite (DSMX 10bits)"));
summary.append(tr("Spektrum satellite (DSMX10BIT)"));
break;
case INPUT_DSMX11:
summary.append(tr("Spektrum satellite (DSMX 11bits)"));
summary.append(tr("Spektrum satellite (DSMX11BIT)"));
break;
default:
summary.append(tr("Unknown"));

View File

@ -140,11 +140,8 @@ void VehicleConfigurationHelper::applyHardwareConfiguration()
case VehicleConfigurationSource::INPUT_DSMX11:
data.CC_FlexiPort = HwSettings::CC_FLEXIPORT_DSMX11BIT;
break;
case VehicleConfigurationSource::INPUT_DSM2_10:
data.CC_FlexiPort = HwSettings::CC_FLEXIPORT_DSM210BIT;
break;
case VehicleConfigurationSource::INPUT_DSM2_11:
data.CC_FlexiPort = HwSettings::CC_FLEXIPORT_DSM211BIT;
case VehicleConfigurationSource::INPUT_DSM2:
data.CC_FlexiPort = HwSettings::CC_FLEXIPORT_DSM2;
break;
default:
break;
@ -176,11 +173,8 @@ void VehicleConfigurationHelper::applyHardwareConfiguration()
case VehicleConfigurationSource::INPUT_DSMX11:
data.RM_FlexiPort = HwSettings::RM_FLEXIPORT_DSMX11BIT;
break;
case VehicleConfigurationSource::INPUT_DSM2_10:
data.RM_FlexiPort = HwSettings::RM_FLEXIPORT_DSM210BIT;
break;
case VehicleConfigurationSource::INPUT_DSM2_11:
data.RM_FlexiPort = HwSettings::RM_FLEXIPORT_DSM211BIT;
case VehicleConfigurationSource::INPUT_DSM2:
data.RM_FlexiPort = HwSettings::RM_FLEXIPORT_DSM2;
break;
default:
break;
@ -563,8 +557,7 @@ void VehicleConfigurationHelper::applyManualControlDefaults()
break;
case VehicleConfigurationSource::INPUT_DSMX10:
case VehicleConfigurationSource::INPUT_DSMX11:
case VehicleConfigurationSource::INPUT_DSM2_10:
case VehicleConfigurationSource::INPUT_DSM2_11:
case VehicleConfigurationSource::INPUT_DSM2:
channelType = ManualControlSettings::CHANNELGROUPS_DSMMAINPORT;
break;
default:

View File

@ -62,7 +62,7 @@ public:
MULTI_ROTOR_OCTO_X, MULTI_ROTOR_OCTO_V, MULTI_ROTOR_OCTO_COAX_X, MULTI_ROTOR_OCTO_COAX_PLUS,
FIXED_WING_AILERON, FIXED_WING_VTAIL, HELI_CCPM };
enum ESC_TYPE { ESC_RAPID, ESC_LEGACY, ESC_UNKNOWN };
enum INPUT_TYPE { INPUT_PWM, INPUT_PPM, INPUT_SBUS, INPUT_DSMX10, INPUT_DSMX11, INPUT_DSM2_10, INPUT_DSM2_11, INPUT_UNKNOWN };
enum INPUT_TYPE { INPUT_PWM, INPUT_PPM, INPUT_SBUS, INPUT_DSMX10, INPUT_DSMX11, INPUT_DSM2, INPUT_UNKNOWN };
enum GPS_SETTING { GPS_UBX, GPS_NMEA, GPS_DISABLED };
enum RADIO_SETTING { RADIO_TELEMETRY, RADIO_DISABLED };

View File

@ -2,18 +2,20 @@
<object name="HwSettings" singleinstance="true" settings="true" category="System">
<description>Selection of optional hardware configurations.</description>
<field name="CC_RcvrPort" units="function" type="enum" elements="1" options="Disabled,PWM,PPM,PPM+PWM,PPM+Outputs,Outputs" defaultvalue="PWM"/>
<field name="CC_MainPort" units="function" type="enum" elements="1" options="Disabled,Telemetry,GPS,S.Bus,DSM2 (10bit),DSM2 (11bit),DSMX (10bit),DSMX (11bit),DebugConsole,ComBridge,OsdHk" defaultvalue="Telemetry"/>
<field name="CC_FlexiPort" units="function" type="enum" elements="1" options="Disabled,Telemetry,GPS,I2C,PPM,DSM2 (10bit),DSM2 (11bit),DSMX (10bit),DSMX (11bit),DebugConsole,ComBridge,OsdHk" defaultvalue="Disabled"/>
<field name="CC_MainPort" units="function" type="enum" elements="1" options="Disabled,Telemetry,GPS,S.Bus,DSM2,DSMX (10bit),DSMX (11bit),DebugConsole,ComBridge,OsdHk" defaultvalue="Telemetry"/>
<field name="CC_FlexiPort" units="function" type="enum" elements="1" options="Disabled,Telemetry,GPS,I2C,PPM,DSM2,DSMX (10bit),DSMX (11bit),DebugConsole,ComBridge,OsdHk" defaultvalue="Disabled"/>
<field name="RV_RcvrPort" units="function" type="enum" elements="1" options="Disabled,PWM,PPM,PPM+Outputs,Outputs" defaultvalue="PWM"/>
<field name="RV_AuxPort" units="function" type="enum" elements="1" options="Disabled,Telemetry,DSM2 (10bit),DSM2 (11bit),DSMX (10bit),DSMX (11bit),ComAux,ComBridge,OsdHk" defaultvalue="Disabled"/>
<field name="RV_AuxSBusPort" units="function" type="enum" elements="1" options="Disabled,S.Bus,DSM2 (10bit),DSM2 (11bit),DSMX (10bit),DSMX (11bit),ComAux,ComBridge,OsdHk" defaultvalue="Disabled"/>
<field name="RV_FlexiPort" units="function" type="enum" elements="1" options="Disabled,I2C,DSM2 (10bit),DSM2 (11bit),DSMX (10bit),DSMX (11bit),ComAux,ComBridge" defaultvalue="Disabled"/>
<field name="RV_AuxPort" units="function" type="enum" elements="1" options="Disabled,Telemetry,DSM2,DSMX (10bit),DSMX (11bit),ComAux,ComBridge,OsdHk" defaultvalue="Disabled"/>
<field name="RV_AuxSBusPort" units="function" type="enum" elements="1" options="Disabled,S.Bus,DSM2,DSMX (10bit),DSMX (11bit),ComAux,ComBridge,OsdHk" defaultvalue="Disabled"/>
<field name="RV_FlexiPort" units="function" type="enum" elements="1" options="Disabled,I2C,DSM2,DSMX (10bit),DSMX (11bit),ComAux,ComBridge" defaultvalue="Disabled"/>
<field name="RV_TelemetryPort" units="function" type="enum" elements="1" options="Disabled,Telemetry,ComAux,ComBridge" defaultvalue="Telemetry"/>
<field name="RV_GPSPort" units="function" type="enum" elements="1" options="Disabled,Telemetry,GPS,ComAux,ComBridge" defaultvalue="GPS"/>
<field name="RM_RcvrPort" units="function" type="enum" elements="1" options="Disabled,PWM,PPM,PPM+PWM,PPM+Outputs,Outputs" defaultvalue="PWM"/>
<field name="RM_MainPort" units="function" type="enum" elements="1" options="Disabled,Telemetry,GPS,S.Bus,DSM2 (10bit),DSM2 (11bit),DSMX (10bit),DSMX (11bit),DebugConsole,ComBridge,OsdHk" defaultvalue="Telemetry"/>
<field name="RM_FlexiPort" units="function" type="enum" elements="1" options="Disabled,Telemetry,GPS,I2C,DSM2 (10bit),DSM2 (11bit),DSMX (10bit),DSMX (11bit),DebugConsole,ComBridge,OsdHk" defaultvalue="Disabled"/>
<field name="RM_MainPort" units="function" type="enum" elements="1" options="Disabled,Telemetry,GPS,S.Bus,DSM2,DSMX (10bit),DSMX (11bit),DebugConsole,ComBridge,OsdHk" defaultvalue="Telemetry"/>
<field name="RM_FlexiPort" units="function" type="enum" elements="1" options="Disabled,Telemetry,GPS,I2C,DSM2,DSMX (10bit),DSMX (11bit),DebugConsole,ComBridge,OsdHk" defaultvalue="Disabled"/>
<field name="TelemetrySpeed" units="bps" type="enum" elements="1" options="2400,4800,9600,19200,38400,57600,115200" defaultvalue="57600"/>
<field name="GPSSpeed" units="bps" type="enum" elements="1" options="2400,4800,9600,19200,38400,57600,115200" defaultvalue="57600"/>
<field name="ComUsbBridgeSpeed" units="bps" type="enum" elements="1" options="2400,4800,9600,19200,38400,57600,115200" defaultvalue="57600"/>