mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2024-11-29 07:24:13 +01:00
Merge branch 'rel-nano-15.05' into steve/OP-1904_Display_current_TxPID_settings_on_OSD
This commit is contained in:
commit
d41808ecaf
20
WHATSNEW.txt
20
WHATSNEW.txt
@ -1,9 +1,25 @@
|
||||
Release Notes - OpenPilot - Version RELEASE-15.05 RC4
|
||||
Release Notes - OpenPilot - Version RELEASE-15.05 RC6
|
||||
|
||||
RC6 changes relative to RC5:
|
||||
1. Altvario AltHold PID updates
|
||||
2. Fix timer bank assignments
|
||||
3. Reboot nano in wizard only when needed
|
||||
4. Fix wizard limits for oneshot/pwmsync
|
||||
5. Update PFD with latest flight modes
|
||||
6. Add AccelTau, AccelKp and AccelKi to TxPID
|
||||
7. Adding support for SRXL in vehicle wizard.
|
||||
|
||||
|
||||
RC5 changes relative to RC4:
|
||||
1. Landing flight mode now truely disarms to complete its sequence, triggered by a critical guidance alarm. Reset via change of flight mode.
|
||||
2. VelocityRoam now has its own VelocityRoamHorizontalVelPID to allow independent tuning.
|
||||
3. Sanity check for PWMSync & OneShot while using PWM receiver. Remove CC in hwsettings.xml
|
||||
4. Wizard freeze issue on erase settings fixed.
|
||||
|
||||
RC4 changes relative to RC3:
|
||||
1. GCS Input flight mode limit fixes hiding unsupported modes.
|
||||
2. Throttle check on GPSAssist/Stabi whilst in hold removed. Now easy to fly out of hold without reducing throttle.
|
||||
3. Trialling Rate instead of AxisLock on Yaw during Braking.
|
||||
3. Trialing Rate instead of AxisLock on Yaw during Braking.
|
||||
4. VelocityRoam now passing throttle position to AltVario. previously it was stuck in AltHold.
|
||||
5. OP-1905 Fix OPLN in PPM mode blocking telemetry stream of no USB connected
|
||||
|
||||
|
@ -823,7 +823,7 @@ void plan_run_AutoCruise()
|
||||
#define ASSISTEDCONTROL_TIMETOSTOP_MINIMUM 0.2f // seconds
|
||||
#define ASSISTEDCONTROL_TIMETOSTOP_MAXIMUM 9.0f // seconds
|
||||
#define ASSISTEDCONTROL_DELAY_TO_BRAKE 1.0f // seconds
|
||||
#define ASSISTEDCONTROL_TIMEOUT_MULTIPLIER 2.0f // actual deceleration rate can be 50% of desired...timeouts need to cater for this
|
||||
#define ASSISTEDCONTROL_TIMEOUT_MULTIPLIER 4.0f // actual deceleration rate can be 50% of desired...timeouts need to cater for this
|
||||
void plan_setup_assistedcontrol()
|
||||
{
|
||||
PositionStateData positionState;
|
||||
|
@ -117,6 +117,7 @@ void armHandler(bool newinit, FrameType_t frameType)
|
||||
|
||||
if (forcedDisArm()) {
|
||||
// PathPlanner forces explicit disarming due to error condition (crash, impact, fire, ...)
|
||||
armState = ARM_STATE_DISARMED;
|
||||
setArmedIfChanged(FLIGHTSTATUS_ARMED_DISARMED);
|
||||
return;
|
||||
}
|
||||
@ -346,18 +347,6 @@ static bool forcedDisArm(void)
|
||||
return true;
|
||||
}
|
||||
|
||||
#ifndef PIOS_EXCLUDE_ADVANCED_FEATURES
|
||||
// check landing state if active
|
||||
FlightStatusData flightStatus;
|
||||
FlightStatusGet(&flightStatus);
|
||||
if (flightStatus.FlightMode == FLIGHTSTATUS_FLIGHTMODE_LAND) {
|
||||
StatusVtolLandData statusland;
|
||||
StatusVtolLandGet(&statusland);
|
||||
if (statusland.State == STATUSVTOLLAND_STATE_DISARMED) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -63,8 +63,7 @@ public:
|
||||
|
||||
private:
|
||||
void UpdateVelocityDesired(void);
|
||||
int8_t UpdateStabilizationDesired(bool yaw_attitude, float yaw_direction);
|
||||
void setArmedIfChanged(FlightStatusArmedOptions val);
|
||||
int8_t UpdateStabilizationDesired(void);
|
||||
|
||||
VtolAutoTakeoffFSM *fsm;
|
||||
VtolPathFollowerSettingsData *vtolPathFollowerSettings;
|
||||
|
@ -73,7 +73,6 @@ public:
|
||||
void BoundThrust(float &ulow, float &uhigh);
|
||||
PathFollowerFSMState_T GetCurrentState(void);
|
||||
void ConstrainStabiDesired(StabilizationDesiredData *stabDesired);
|
||||
void Abort(void);
|
||||
uint8_t PositionHoldState(void);
|
||||
void setControlState(StatusVtolAutoTakeoffControlStateOptions controlState);
|
||||
|
||||
@ -138,9 +137,6 @@ protected:
|
||||
void setup_disarmed(void);
|
||||
void run_disarmed(uint8_t);
|
||||
|
||||
void setup_abort(void);
|
||||
void run_abort(uint8_t);
|
||||
|
||||
void initFSM(void);
|
||||
void setState(StatusVtolAutoTakeoffStateOptions newState, StatusVtolAutoTakeoffStateExitReasonOptions reason);
|
||||
int32_t runState();
|
||||
@ -150,7 +146,6 @@ protected:
|
||||
void assessAltitude(void);
|
||||
|
||||
void setStateTimeout(int32_t count);
|
||||
void fallback_to_hold(void);
|
||||
|
||||
static PathFollowerFSM_AutoTakeoffStateHandler_T sAutoTakeoffStateTable[AUTOTAKEOFF_STATE_SIZE];
|
||||
};
|
||||
|
@ -66,7 +66,6 @@ public:
|
||||
void Activate(void);
|
||||
void Update(void);
|
||||
PathFollowerFSMState_T GetCurrentState(void);
|
||||
void Abort(void);
|
||||
uint8_t PositionHoldState(void);
|
||||
|
||||
protected:
|
||||
@ -103,7 +102,6 @@ protected:
|
||||
// void updateVtolBrakeFSMStatus();
|
||||
|
||||
void setStateTimeout(int32_t count);
|
||||
void fallback_to_hold(void);
|
||||
|
||||
static PathFollowerFSM_BrakeStateHandler_T sBrakeStateTable[BRAKE_STATE_SIZE];
|
||||
};
|
||||
|
@ -47,7 +47,6 @@ typedef enum {
|
||||
LAND_STATE_THRUSTDOWN, // Thrust down sequence
|
||||
LAND_STATE_THRUSTOFF, // Thrust is now off
|
||||
LAND_STATE_DISARMED, // Disarmed
|
||||
LAND_STATE_ABORT, // Abort on error triggerig fallback to hold
|
||||
LAND_STATE_SIZE
|
||||
} PathFollowerFSM_LandState_T;
|
||||
|
||||
@ -75,7 +74,6 @@ public:
|
||||
void ConstrainStabiDesired(StabilizationDesiredData *stabDesired);
|
||||
float BoundVelocityDown(float);
|
||||
void CheckPidScaler(pid_scaler *scaler);
|
||||
void Abort(void);
|
||||
|
||||
protected:
|
||||
|
||||
@ -130,8 +128,6 @@ protected:
|
||||
void run_thrustoff(uint8_t);
|
||||
void setup_disarmed(void);
|
||||
void run_disarmed(uint8_t);
|
||||
void setup_abort(void);
|
||||
void run_abort(uint8_t);
|
||||
void initFSM(void);
|
||||
void setState(StatusVtolLandStateOptions newState, StatusVtolLandStateExitReasonOptions reason);
|
||||
int32_t runState();
|
||||
@ -140,7 +136,6 @@ protected:
|
||||
void assessAltitude(void);
|
||||
|
||||
void setStateTimeout(int32_t count);
|
||||
void fallback_to_hold(void);
|
||||
|
||||
static PathFollowerFSM_LandStateHandler_T sLandStateTable[LAND_STATE_SIZE];
|
||||
};
|
||||
|
@ -62,7 +62,6 @@ public:
|
||||
private:
|
||||
void UpdateVelocityDesired(void);
|
||||
int8_t UpdateStabilizationDesired(bool yaw_attitude, float yaw_direction);
|
||||
void fallback_to_hold(void);
|
||||
|
||||
VtolPathFollowerSettingsData *vtolPathFollowerSettings;
|
||||
PIDControlNE controlNE;
|
||||
|
@ -242,6 +242,7 @@ static void pathFollowerSetActiveController(void)
|
||||
if (activeController == 0) {
|
||||
// Initialise
|
||||
pathFollowerInitializeControllersForFrameType();
|
||||
AlarmsSet(SYSTEMALARMS_ALARM_GUIDANCE, SYSTEMALARMS_ALARM_OK);
|
||||
|
||||
switch (frameType) {
|
||||
case FRAME_TYPE_MULTIROTOR:
|
||||
@ -273,6 +274,7 @@ static void pathFollowerSetActiveController(void)
|
||||
break;
|
||||
default:
|
||||
activeController = 0;
|
||||
AlarmsSet(SYSTEMALARMS_ALARM_GUIDANCE, SYSTEMALARMS_ALARM_UNINITIALISED);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
@ -289,6 +291,7 @@ static void pathFollowerSetActiveController(void)
|
||||
break;
|
||||
default:
|
||||
activeController = 0;
|
||||
AlarmsSet(SYSTEMALARMS_ALARM_GUIDANCE, SYSTEMALARMS_ALARM_UNINITIALISED);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
@ -305,12 +308,14 @@ static void pathFollowerSetActiveController(void)
|
||||
break;
|
||||
default:
|
||||
activeController = 0;
|
||||
AlarmsSet(SYSTEMALARMS_ALARM_GUIDANCE, SYSTEMALARMS_ALARM_UNINITIALISED);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
activeController = 0;
|
||||
AlarmsSet(SYSTEMALARMS_ALARM_GUIDANCE, SYSTEMALARMS_ALARM_UNINITIALISED);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -30,6 +30,7 @@ extern "C" {
|
||||
|
||||
#include <math.h>
|
||||
#include <pid.h>
|
||||
#include <alarms.h>
|
||||
#include <CoordinateConversions.h>
|
||||
#include <sin_lookup.h>
|
||||
#include <pathdesired.h>
|
||||
@ -208,7 +209,7 @@ void VtolAutoTakeoffController::UpdateVelocityDesired()
|
||||
VelocityDesiredSet(&velocityDesired);
|
||||
}
|
||||
|
||||
int8_t VtolAutoTakeoffController::UpdateStabilizationDesired(bool yaw_attitude, float yaw_direction)
|
||||
int8_t VtolAutoTakeoffController::UpdateStabilizationDesired()
|
||||
{
|
||||
uint8_t result = 1;
|
||||
StabilizationDesiredData stabDesired;
|
||||
@ -236,13 +237,8 @@ int8_t VtolAutoTakeoffController::UpdateStabilizationDesired(bool yaw_attitude,
|
||||
ManualControlCommandData manualControl;
|
||||
ManualControlCommandGet(&manualControl);
|
||||
|
||||
if (yaw_attitude) {
|
||||
stabDesired.StabilizationMode.Yaw = STABILIZATIONDESIRED_STABILIZATIONMODE_ATTITUDE;
|
||||
stabDesired.Yaw = yaw_direction;
|
||||
} else {
|
||||
stabDesired.StabilizationMode.Yaw = STABILIZATIONDESIRED_STABILIZATIONMODE_AXISLOCK;
|
||||
stabDesired.Yaw = stabSettings.MaximumRate.Yaw * manualControl.Yaw;
|
||||
}
|
||||
|
||||
// default thrust mode to cruise control
|
||||
stabDesired.StabilizationMode.Thrust = STABILIZATIONDESIRED_STABILIZATIONMODE_CRUISECONTROL;
|
||||
@ -259,29 +255,13 @@ void VtolAutoTakeoffController::UpdateAutoPilot()
|
||||
|
||||
UpdateVelocityDesired();
|
||||
|
||||
// yaw behaviour is configurable in vtolpathfollower, select yaw control algorithm
|
||||
bool yaw_attitude = true;
|
||||
float yaw = 0.0f;
|
||||
|
||||
fsm->GetYaw(yaw_attitude, yaw);
|
||||
|
||||
int8_t result = UpdateStabilizationDesired(yaw_attitude, yaw);
|
||||
|
||||
if (!result) {
|
||||
fsm->Abort();
|
||||
}
|
||||
|
||||
if (fsm->GetCurrentState() == PFFSM_STATE_DISARMED) {
|
||||
setArmedIfChanged(FLIGHTSTATUS_ARMED_DISARMED);
|
||||
int8_t result = UpdateStabilizationDesired();
|
||||
if (result) {
|
||||
AlarmsSet(SYSTEMALARMS_ALARM_GUIDANCE, SYSTEMALARMS_ALARM_OK);
|
||||
} else {
|
||||
pathStatus->Status = PATHSTATUS_STATUS_CRITICAL;
|
||||
AlarmsSet(SYSTEMALARMS_ALARM_GUIDANCE, SYSTEMALARMS_ALARM_WARNING);
|
||||
}
|
||||
|
||||
PathStatusSet(pathStatus);
|
||||
}
|
||||
|
||||
void VtolAutoTakeoffController::setArmedIfChanged(FlightStatusArmedOptions val)
|
||||
{
|
||||
if (flightStatus->Armed != val) {
|
||||
flightStatus->Armed = val;
|
||||
FlightStatusSet(flightStatus);
|
||||
}
|
||||
}
|
||||
|
@ -65,7 +65,7 @@ extern "C" {
|
||||
#define TIMER_COUNT_PER_SECOND (1000 / vtolPathFollowerSettings->UpdatePeriod)
|
||||
#define TIMEOUT_SLOWSTART (2 * TIMER_COUNT_PER_SECOND)
|
||||
#define TIMEOUT_THRUSTUP (1 * TIMER_COUNT_PER_SECOND)
|
||||
#define TIMEOUT_THRUSTDOWN (2 * TIMER_COUNT_PER_SECOND)
|
||||
#define TIMEOUT_THRUSTDOWN (5 * TIMER_COUNT_PER_SECOND)
|
||||
#define AUTOTAKEOFFING_SLOWDOWN_HEIGHT -5.0f
|
||||
|
||||
VtolAutoTakeoffFSM::PathFollowerFSM_AutoTakeoffStateHandler_T VtolAutoTakeoffFSM::sAutoTakeoffStateTable[AUTOTAKEOFF_STATE_SIZE] = {
|
||||
@ -77,8 +77,7 @@ VtolAutoTakeoffFSM::PathFollowerFSM_AutoTakeoffStateHandler_T VtolAutoTakeoffFSM
|
||||
[AUTOTAKEOFF_STATE_HOLD] = { .setup = &VtolAutoTakeoffFSM::setup_hold, .run = &VtolAutoTakeoffFSM::run_hold },
|
||||
[AUTOTAKEOFF_STATE_THRUSTDOWN] = { .setup = &VtolAutoTakeoffFSM::setup_thrustdown, .run = &VtolAutoTakeoffFSM::run_thrustdown },
|
||||
[AUTOTAKEOFF_STATE_THRUSTOFF] = { .setup = &VtolAutoTakeoffFSM::setup_thrustoff, .run = &VtolAutoTakeoffFSM::run_thrustoff },
|
||||
[AUTOTAKEOFF_STATE_DISARMED] = { .setup = &VtolAutoTakeoffFSM::setup_disarmed, .run = &VtolAutoTakeoffFSM::run_disarmed },
|
||||
[AUTOTAKEOFF_STATE_ABORT] = { .setup = &VtolAutoTakeoffFSM::setup_abort, .run = &VtolAutoTakeoffFSM::run_abort }
|
||||
[AUTOTAKEOFF_STATE_DISARMED] = { .setup = &VtolAutoTakeoffFSM::setup_disarmed, .run = &VtolAutoTakeoffFSM::run_disarmed }
|
||||
};
|
||||
|
||||
// pointer to a singleton instance
|
||||
@ -161,21 +160,12 @@ void VtolAutoTakeoffFSM::Activate()
|
||||
setState(STATUSVTOLAUTOTAKEOFF_STATE_INACTIVE, STATUSVTOLAUTOTAKEOFF_STATEEXITREASON_NONE);
|
||||
}
|
||||
|
||||
void VtolAutoTakeoffFSM::Abort(void)
|
||||
{
|
||||
setState(STATUSVTOLAUTOTAKEOFF_STATE_ABORT, STATUSVTOLAUTOTAKEOFF_STATEEXITREASON_NONE);
|
||||
}
|
||||
|
||||
PathFollowerFSMState_T VtolAutoTakeoffFSM::GetCurrentState(void)
|
||||
{
|
||||
switch (mAutoTakeoffData->currentState) {
|
||||
case STATUSVTOLAUTOTAKEOFF_STATE_INACTIVE:
|
||||
return PFFSM_STATE_INACTIVE;
|
||||
|
||||
break;
|
||||
case STATUSVTOLAUTOTAKEOFF_STATE_ABORT:
|
||||
return PFFSM_STATE_ABORT;
|
||||
|
||||
break;
|
||||
case STATUSVTOLAUTOTAKEOFF_STATE_DISARMED:
|
||||
return PFFSM_STATE_DISARMED;
|
||||
@ -339,7 +329,7 @@ void VtolAutoTakeoffFSM::setControlState(StatusVtolAutoTakeoffControlStateOption
|
||||
setState(STATUSVTOLAUTOTAKEOFF_STATE_HOLD, STATUSVTOLAUTOTAKEOFF_STATEEXITREASON_NONE);
|
||||
break;
|
||||
case STATUSVTOLAUTOTAKEOFF_CONTROLSTATE_ABORT:
|
||||
setState(STATUSVTOLAUTOTAKEOFF_STATE_ABORT, STATUSVTOLAUTOTAKEOFF_STATEEXITREASON_NONE);
|
||||
setState(STATUSVTOLAUTOTAKEOFF_STATE_HOLD, STATUSVTOLAUTOTAKEOFF_STATEEXITREASON_NONE);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -540,51 +530,26 @@ void VtolAutoTakeoffFSM::run_thrustoff(__attribute__((unused)) uint8_t flTimeout
|
||||
// STATE: DISARMED
|
||||
void VtolAutoTakeoffFSM::setup_disarmed(void)
|
||||
{
|
||||
// nothing to do
|
||||
mAutoTakeoffData->flConstrainThrust = false;
|
||||
mAutoTakeoffData->flZeroStabiHorizontal = false;
|
||||
mAutoTakeoffData->thrustLimit = -1.0f;
|
||||
mAutoTakeoffData->flConstrainThrust = true;
|
||||
mAutoTakeoffData->flZeroStabiHorizontal = true;
|
||||
mAutoTakeoffData->observationCount = 0;
|
||||
mAutoTakeoffData->boundThrustMin = -0.1f;
|
||||
mAutoTakeoffData->boundThrustMax = 0.0f;
|
||||
|
||||
if (flightStatus->ControlChain.PathPlanner != FLIGHTSTATUS_CONTROLCHAIN_TRUE) {
|
||||
AlarmsSet(SYSTEMALARMS_ALARM_GUIDANCE, SYSTEMALARMS_ALARM_CRITICAL);
|
||||
}
|
||||
}
|
||||
|
||||
void VtolAutoTakeoffFSM::run_disarmed(__attribute__((unused)) uint8_t flTimeout)
|
||||
{
|
||||
if (flightStatus->ControlChain.PathPlanner != FLIGHTSTATUS_CONTROLCHAIN_TRUE) {
|
||||
AlarmsSet(SYSTEMALARMS_ALARM_GUIDANCE, SYSTEMALARMS_ALARM_CRITICAL);
|
||||
}
|
||||
#ifdef DEBUG_GROUNDIMPACT
|
||||
if (mAutoTakeoffData->observationCount++ > 100) {
|
||||
setState(AUTOTAKEOFF_STATE_WTG_FOR_GROUNDEFFECT, STATUSVTOLAUTOTAKEOFF_STATEEXITREASON_NONE);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void VtolAutoTakeoffFSM::fallback_to_hold(void)
|
||||
{
|
||||
PositionStateData positionState;
|
||||
|
||||
PositionStateGet(&positionState);
|
||||
pathDesired->End.North = positionState.North;
|
||||
pathDesired->End.East = positionState.East;
|
||||
pathDesired->End.Down = positionState.Down;
|
||||
pathDesired->Start.North = positionState.North;
|
||||
pathDesired->Start.East = positionState.East;
|
||||
pathDesired->Start.Down = positionState.Down;
|
||||
pathDesired->StartingVelocity = 0.0f;
|
||||
pathDesired->EndingVelocity = 0.0f;
|
||||
pathDesired->Mode = PATHDESIRED_MODE_GOTOENDPOINT;
|
||||
|
||||
PathDesiredSet(pathDesired);
|
||||
}
|
||||
|
||||
// abort repeatedly overwrites pathfollower's objective on a landing abort and
|
||||
// continues to do so until a flight mode change.
|
||||
void VtolAutoTakeoffFSM::setup_abort(void)
|
||||
{
|
||||
mAutoTakeoffData->boundThrustMin = vtolPathFollowerSettings->ThrustLimits.Min;
|
||||
mAutoTakeoffData->boundThrustMax = vtolPathFollowerSettings->ThrustLimits.Max;
|
||||
mAutoTakeoffData->flConstrainThrust = false;
|
||||
mAutoTakeoffData->flZeroStabiHorizontal = false;
|
||||
fallback_to_hold();
|
||||
}
|
||||
|
||||
void VtolAutoTakeoffFSM::run_abort(__attribute__((unused)) uint8_t flTimeout)
|
||||
{}
|
||||
|
@ -35,6 +35,7 @@ extern "C" {
|
||||
|
||||
#include <math.h>
|
||||
#include <pid.h>
|
||||
#include <alarms.h>
|
||||
#include <CoordinateConversions.h>
|
||||
#include <sin_lookup.h>
|
||||
#include <pathdesired.h>
|
||||
@ -138,10 +139,10 @@ void VtolBrakeController::SettingsUpdated(void)
|
||||
controlNE.UpdatePositionalParameters(vtolPathFollowerSettings->HorizontalPosP);
|
||||
controlNE.UpdateCommandParameters(-vtolPathFollowerSettings->BrakeMaxPitch, vtolPathFollowerSettings->BrakeMaxPitch, vtolPathFollowerSettings->BrakeVelocityFeedforward);
|
||||
|
||||
controlDown.UpdateParameters(vtolPathFollowerSettings->LandVerticalVelPID.Kp,
|
||||
vtolPathFollowerSettings->LandVerticalVelPID.Ki,
|
||||
vtolPathFollowerSettings->LandVerticalVelPID.Kd,
|
||||
vtolPathFollowerSettings->LandVerticalVelPID.Beta,
|
||||
controlDown.UpdateParameters(vtolPathFollowerSettings->VerticalVelPID.Kp,
|
||||
vtolPathFollowerSettings->VerticalVelPID.Ki,
|
||||
vtolPathFollowerSettings->VerticalVelPID.Kd,
|
||||
vtolPathFollowerSettings->VerticalVelPID.Beta,
|
||||
dT,
|
||||
10.0f * vtolPathFollowerSettings->VerticalVelMax); // avoid constraining initial fast entry into brake
|
||||
controlDown.UpdatePositionalParameters(vtolPathFollowerSettings->VerticalPosP);
|
||||
@ -364,8 +365,11 @@ void VtolBrakeController::UpdateAutoPilot()
|
||||
|
||||
int8_t result = UpdateStabilizationDesired();
|
||||
|
||||
if (!result) {
|
||||
fsm->Abort(); // enter PH
|
||||
if (result) {
|
||||
AlarmsSet(SYSTEMALARMS_ALARM_GUIDANCE, SYSTEMALARMS_ALARM_OK);
|
||||
} else {
|
||||
pathStatus->Status = PATHSTATUS_STATUS_CRITICAL;
|
||||
AlarmsSet(SYSTEMALARMS_ALARM_GUIDANCE, SYSTEMALARMS_ALARM_WARNING);
|
||||
}
|
||||
|
||||
PathStatusSet(pathStatus);
|
||||
|
@ -62,7 +62,7 @@ extern "C" {
|
||||
// Private constants
|
||||
#define TIMER_COUNT_PER_SECOND (1000 / vtolPathFollowerSettings->UpdatePeriod)
|
||||
#define BRAKE_FRACTIONALPROGRESS_STARTVELOCITYCHECK 0.95f
|
||||
#define BRAKE_EXIT_VELOCITY_LIMIT 0.2f
|
||||
#define BRAKE_EXIT_VELOCITY_LIMIT 0.15f
|
||||
|
||||
VtolBrakeFSM::PathFollowerFSM_BrakeStateHandler_T VtolBrakeFSM::sBrakeStateTable[BRAKE_STATE_SIZE] = {
|
||||
[BRAKE_STATE_INACTIVE] = { .setup = 0, .run = 0 },
|
||||
@ -130,11 +130,6 @@ void VtolBrakeFSM::Activate()
|
||||
setState(BRAKE_STATE_BRAKE, FSMBRAKESTATUS_STATEEXITREASON_NONE);
|
||||
}
|
||||
|
||||
void VtolBrakeFSM::Abort(void)
|
||||
{
|
||||
setState(BRAKE_STATE_HOLD, FSMBRAKESTATUS_STATEEXITREASON_NONE);
|
||||
}
|
||||
|
||||
PathFollowerFSMState_T VtolBrakeFSM::GetCurrentState(void)
|
||||
{
|
||||
switch (mBrakeData->currentState) {
|
||||
|
@ -30,6 +30,7 @@ extern "C" {
|
||||
|
||||
#include <math.h>
|
||||
#include <pid.h>
|
||||
#include <alarms.h>
|
||||
#include <CoordinateConversions.h>
|
||||
#include <sin_lookup.h>
|
||||
#include <pathdesired.h>
|
||||
@ -266,9 +267,11 @@ void VtolLandController::UpdateAutoPilot()
|
||||
fsm->GetYaw(yaw_attitude, yaw);
|
||||
|
||||
int8_t result = UpdateStabilizationDesired(yaw_attitude, yaw);
|
||||
|
||||
if (!result) {
|
||||
fsm->Abort();
|
||||
if (result) {
|
||||
AlarmsSet(SYSTEMALARMS_ALARM_GUIDANCE, SYSTEMALARMS_ALARM_OK);
|
||||
} else {
|
||||
pathStatus->Status = PATHSTATUS_STATUS_CRITICAL;
|
||||
AlarmsSet(SYSTEMALARMS_ALARM_GUIDANCE, SYSTEMALARMS_ALARM_WARNING);
|
||||
}
|
||||
|
||||
PathStatusSet(pathStatus);
|
||||
|
@ -31,6 +31,7 @@ extern "C" {
|
||||
|
||||
#include <math.h>
|
||||
#include <pid.h>
|
||||
#include <alarms.h>
|
||||
#include <CoordinateConversions.h>
|
||||
#include <sin_lookup.h>
|
||||
#include <pathdesired.h>
|
||||
@ -96,8 +97,7 @@ VtolLandFSM::PathFollowerFSM_LandStateHandler_T VtolLandFSM::sLandStateTable[LAN
|
||||
[LAND_STATE_GROUNDEFFECT] = { .setup = &VtolLandFSM::setup_groundeffect, .run = &VtolLandFSM::run_groundeffect },
|
||||
[LAND_STATE_THRUSTDOWN] = { .setup = &VtolLandFSM::setup_thrustdown, .run = &VtolLandFSM::run_thrustdown },
|
||||
[LAND_STATE_THRUSTOFF] = { .setup = &VtolLandFSM::setup_thrustoff, .run = &VtolLandFSM::run_thrustoff },
|
||||
[LAND_STATE_DISARMED] = { .setup = &VtolLandFSM::setup_disarmed, .run = &VtolLandFSM::run_disarmed },
|
||||
[LAND_STATE_ABORT] = { .setup = &VtolLandFSM::setup_abort, .run = &VtolLandFSM::run_abort }
|
||||
[LAND_STATE_DISARMED] = { .setup = &VtolLandFSM::setup_disarmed, .run = &VtolLandFSM::run_disarmed }
|
||||
};
|
||||
|
||||
// pointer to a singleton instance
|
||||
@ -176,25 +176,16 @@ void VtolLandFSM::Activate()
|
||||
#endif
|
||||
} else {
|
||||
// move to error state and callback to position hold
|
||||
setState(STATUSVTOLLAND_STATE_ABORT, STATUSVTOLLAND_STATEEXITREASON_NONE);
|
||||
setState(STATUSVTOLLAND_STATE_DISARMED, STATUSVTOLLAND_STATEEXITREASON_NONE);
|
||||
}
|
||||
}
|
||||
|
||||
void VtolLandFSM::Abort(void)
|
||||
{
|
||||
setState(STATUSVTOLLAND_STATE_ABORT, STATUSVTOLLAND_STATEEXITREASON_NONE);
|
||||
}
|
||||
|
||||
PathFollowerFSMState_T VtolLandFSM::GetCurrentState(void)
|
||||
{
|
||||
switch (mLandData->currentState) {
|
||||
case STATUSVTOLLAND_STATE_INACTIVE:
|
||||
return PFFSM_STATE_INACTIVE;
|
||||
|
||||
break;
|
||||
case STATUSVTOLLAND_STATE_ABORT:
|
||||
return PFFSM_STATE_ABORT;
|
||||
|
||||
break;
|
||||
case STATUSVTOLLAND_STATE_DISARMED:
|
||||
return PFFSM_STATE_DISARMED;
|
||||
@ -431,7 +422,7 @@ void VtolLandFSM::run_wtg_for_descentrate(uint8_t flTimeout)
|
||||
}
|
||||
|
||||
if (flTimeout) {
|
||||
setState(STATUSVTOLLAND_STATE_ABORT, STATUSVTOLLAND_STATEEXITREASON_TIMEOUT);
|
||||
setState(STATUSVTOLLAND_STATE_INITALTHOLD, STATUSVTOLLAND_STATEEXITREASON_TIMEOUT);
|
||||
}
|
||||
}
|
||||
|
||||
@ -638,6 +629,7 @@ void VtolLandFSM::run_thrustdown(__attribute__((unused)) uint8_t flTimeout)
|
||||
void VtolLandFSM::setup_thrustoff(void)
|
||||
{
|
||||
mLandData->thrustLimit = -1.0f;
|
||||
mLandData->flZeroStabiHorizontal = true;
|
||||
mLandData->flConstrainThrust = true;
|
||||
mLandData->boundThrustMin = -0.1f;
|
||||
mLandData->boundThrustMax = 0.0f;
|
||||
@ -653,49 +645,28 @@ void VtolLandFSM::setup_disarmed(void)
|
||||
{
|
||||
// nothing to do
|
||||
mLandData->flConstrainThrust = false;
|
||||
mLandData->flZeroStabiHorizontal = false;
|
||||
mLandData->flZeroStabiHorizontal = true;
|
||||
mLandData->observationCount = 0;
|
||||
mLandData->boundThrustMin = -0.1f;
|
||||
mLandData->boundThrustMax = 0.0f;
|
||||
|
||||
// force disarm unless in pathplanner mode
|
||||
// to clear, a new pathfollower mode must be selected that is not land,
|
||||
// and also a non-pathfollower mode selection will set this to uninitialised.
|
||||
if (flightStatus->ControlChain.PathPlanner != FLIGHTSTATUS_CONTROLCHAIN_TRUE) {
|
||||
AlarmsSet(SYSTEMALARMS_ALARM_GUIDANCE, SYSTEMALARMS_ALARM_CRITICAL);
|
||||
}
|
||||
}
|
||||
|
||||
void VtolLandFSM::run_disarmed(__attribute__((unused)) uint8_t flTimeout)
|
||||
{
|
||||
if (flightStatus->ControlChain.PathPlanner != FLIGHTSTATUS_CONTROLCHAIN_TRUE) {
|
||||
AlarmsSet(SYSTEMALARMS_ALARM_GUIDANCE, SYSTEMALARMS_ALARM_CRITICAL);
|
||||
}
|
||||
|
||||
#ifdef DEBUG_GROUNDIMPACT
|
||||
if (mLandData->observationCount++ > 100) {
|
||||
setState(STATUSVTOLLAND_STATE_WTGFORGROUNDEFFECT, STATUSVTOLLAND_STATEEXITREASON_NONE);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void VtolLandFSM::fallback_to_hold(void)
|
||||
{
|
||||
PositionStateData positionState;
|
||||
|
||||
PositionStateGet(&positionState);
|
||||
pathDesired->End.North = positionState.North;
|
||||
pathDesired->End.East = positionState.East;
|
||||
pathDesired->End.Down = positionState.Down;
|
||||
pathDesired->Start.North = positionState.North;
|
||||
pathDesired->Start.East = positionState.East;
|
||||
pathDesired->Start.Down = positionState.Down;
|
||||
pathDesired->StartingVelocity = 0.0f;
|
||||
pathDesired->EndingVelocity = 0.0f;
|
||||
pathDesired->Mode = PATHDESIRED_MODE_GOTOENDPOINT;
|
||||
|
||||
PathDesiredSet(pathDesired);
|
||||
}
|
||||
|
||||
// abort repeatedly overwrites pathfollower's objective on a landing abort and
|
||||
// continues to do so until a flight mode change.
|
||||
void VtolLandFSM::setup_abort(void)
|
||||
{
|
||||
mLandData->boundThrustMin = vtolPathFollowerSettings->ThrustLimits.Min;
|
||||
mLandData->boundThrustMax = vtolPathFollowerSettings->ThrustLimits.Max;
|
||||
mLandData->flConstrainThrust = false;
|
||||
mLandData->flZeroStabiHorizontal = false;
|
||||
fallback_to_hold();
|
||||
}
|
||||
|
||||
void VtolLandFSM::run_abort(__attribute__((unused)) uint8_t flTimeout)
|
||||
{}
|
||||
|
@ -30,6 +30,7 @@ extern "C" {
|
||||
|
||||
#include <math.h>
|
||||
#include <pid.h>
|
||||
#include <alarms.h>
|
||||
#include <CoordinateConversions.h>
|
||||
#include <sin_lookup.h>
|
||||
#include <pathdesired.h>
|
||||
@ -104,10 +105,10 @@ void VtolVelocityController::SettingsUpdated(void)
|
||||
{
|
||||
const float dT = vtolPathFollowerSettings->UpdatePeriod / 1000.0f;
|
||||
|
||||
controlNE.UpdateParameters(vtolPathFollowerSettings->HorizontalVelPID.Kp,
|
||||
vtolPathFollowerSettings->HorizontalVelPID.Ki,
|
||||
vtolPathFollowerSettings->HorizontalVelPID.Kd,
|
||||
vtolPathFollowerSettings->HorizontalVelPID.Beta,
|
||||
controlNE.UpdateParameters(vtolPathFollowerSettings->VelocityRoamHorizontalVelPID.Kp,
|
||||
vtolPathFollowerSettings->VelocityRoamHorizontalVelPID.Ki,
|
||||
vtolPathFollowerSettings->VelocityRoamHorizontalVelPID.Kd,
|
||||
vtolPathFollowerSettings->VelocityRoamHorizontalVelPID.Beta,
|
||||
dT,
|
||||
vtolPathFollowerSettings->HorizontalVelMax);
|
||||
|
||||
@ -201,28 +202,12 @@ void VtolVelocityController::UpdateAutoPilot()
|
||||
float yaw = 0.0f;
|
||||
|
||||
int8_t result = UpdateStabilizationDesired(yaw_attitude, yaw);
|
||||
|
||||
if (!result) {
|
||||
fallback_to_hold();
|
||||
if (result) {
|
||||
AlarmsSet(SYSTEMALARMS_ALARM_GUIDANCE, SYSTEMALARMS_ALARM_OK);
|
||||
} else {
|
||||
pathStatus->Status = PATHSTATUS_STATUS_CRITICAL;
|
||||
AlarmsSet(SYSTEMALARMS_ALARM_GUIDANCE, SYSTEMALARMS_ALARM_WARNING);
|
||||
}
|
||||
|
||||
PathStatusSet(pathStatus);
|
||||
}
|
||||
|
||||
void VtolVelocityController::fallback_to_hold(void)
|
||||
{
|
||||
PositionStateData positionState;
|
||||
|
||||
PositionStateGet(&positionState);
|
||||
pathDesired->End.North = positionState.North;
|
||||
pathDesired->End.East = positionState.East;
|
||||
pathDesired->End.Down = positionState.Down;
|
||||
pathDesired->Start.North = positionState.North;
|
||||
pathDesired->Start.East = positionState.East;
|
||||
pathDesired->Start.Down = positionState.Down;
|
||||
pathDesired->StartingVelocity = 0.0f;
|
||||
pathDesired->EndingVelocity = 0.0f;
|
||||
pathDesired->Mode = PATHDESIRED_MODE_GOTOENDPOINT;
|
||||
|
||||
PathDesiredSet(pathDesired);
|
||||
}
|
||||
|
@ -177,8 +177,8 @@ static void altitudeHoldTask(void)
|
||||
break;
|
||||
}
|
||||
|
||||
AltitudeHoldStatusSet(&altitudeHoldStatus);
|
||||
thrustDemand = local_thrustDemand;
|
||||
AltitudeHoldStatusSet(&altitudeHoldStatus);
|
||||
}
|
||||
|
||||
static void VelocityStateUpdatedCb(__attribute__((unused)) UAVObjEvent *ev)
|
||||
|
@ -36,7 +36,8 @@
|
||||
#include <pios_oplinkrcvr_priv.h>
|
||||
#include <taskinfo.h>
|
||||
#include <pios_ws2811.h>
|
||||
|
||||
#include <sanitycheck.h>
|
||||
#include <actuatorsettings.h>
|
||||
|
||||
#ifdef PIOS_INCLUDE_INSTRUMENTATION
|
||||
#include <pios_instrumentation.h>
|
||||
@ -52,6 +53,8 @@
|
||||
*/
|
||||
#include "../board_hw_defs.c"
|
||||
|
||||
static SystemAlarmsExtendedAlarmStatusOptions RevoNanoConfigHook();
|
||||
static void ActuatorSettingsUpdatedCb(UAVObjEvent *ev);
|
||||
/**
|
||||
* Sensor configurations
|
||||
*/
|
||||
@ -764,8 +767,54 @@ void PIOS_Board_Init(void)
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
// Attach the board config check hook
|
||||
SANITYCHECK_AttachHook(&RevoNanoConfigHook);
|
||||
// trigger a config check if actuatorsettings are updated
|
||||
ActuatorSettingsInitialize();
|
||||
ActuatorSettingsConnectCallback(ActuatorSettingsUpdatedCb);
|
||||
}
|
||||
|
||||
SystemAlarmsExtendedAlarmStatusOptions RevoNanoConfigHook()
|
||||
{
|
||||
// inhibit usage of oneshot for non supported RECEIVER port modes
|
||||
uint8_t recmode;
|
||||
|
||||
HwSettingsRM_RcvrPortGet(&recmode);
|
||||
uint8_t modes[ACTUATORSETTINGS_BANKMODE_NUMELEM];
|
||||
ActuatorSettingsBankModeGet(modes);
|
||||
|
||||
switch ((HwSettingsRM_RcvrPortOptions)recmode) {
|
||||
// Those modes allows oneshot usage
|
||||
case HWSETTINGS_RM_RCVRPORT_DISABLED:
|
||||
case HWSETTINGS_RM_RCVRPORT_PPM:
|
||||
case HWSETTINGS_RM_RCVRPORT_PPMOUTPUTS:
|
||||
case HWSETTINGS_RM_RCVRPORT_OUTPUTS:
|
||||
return SYSTEMALARMS_EXTENDEDALARMSTATUS_NONE;
|
||||
|
||||
// inhibit oneshot for the following modes
|
||||
case HWSETTINGS_RM_RCVRPORT_PWM:
|
||||
for (uint8_t i = 0; i < ACTUATORSETTINGS_BANKMODE_NUMELEM; i++) {
|
||||
if (modes[i] == ACTUATORSETTINGS_BANKMODE_PWMSYNC ||
|
||||
modes[i] == ACTUATORSETTINGS_BANKMODE_ONESHOT125) {
|
||||
return SYSTEMALARMS_EXTENDEDALARMSTATUS_UNSUPPORTEDCONFIG_ONESHOT;;
|
||||
}
|
||||
}
|
||||
|
||||
return SYSTEMALARMS_EXTENDEDALARMSTATUS_NONE;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return SYSTEMALARMS_EXTENDEDALARMSTATUS_UNSUPPORTEDCONFIG_ONESHOT;;
|
||||
}
|
||||
|
||||
// trigger a configuration check if ActuatorSettings are changed.
|
||||
void ActuatorSettingsUpdatedCb(__attribute__((unused)) UAVObjEvent *ev)
|
||||
{
|
||||
configuration_check();
|
||||
}
|
||||
/**
|
||||
* @}
|
||||
* @}
|
||||
|
@ -12,24 +12,24 @@ Item {
|
||||
|
||||
// All 'manual modes' are green, 'assisted' modes in cyan
|
||||
// "MANUAL","STAB 1","STAB 2", "STAB 3", "STAB 4", "STAB 5", "STAB 6",
|
||||
// "POS HOLD", "COURSE LOCK", "POS ROAM", "HOME LEASH", "ABS POS", "RTB", "LAND", "PATHPLANNER", "POI", "AUTOCRUISE"
|
||||
// "POS HOLD", "COURSELOCK","VEL ROAM", "HOME LEASH", "ABS POS", "RTB", "LAND", "PATHPLAN", "POI", "AUTOCRUISE", "AUTOTAKEOFF"
|
||||
|
||||
property variant flightmodeColors : ["gray", "green", "green", "green", "green", "green", "green",
|
||||
"cyan", "cyan", "cyan", "cyan", "cyan", "cyan", "cyan", "cyan", "cyan", "cyan"]
|
||||
"cyan", "cyan", "cyan", "cyan", "cyan", "cyan", "cyan", "cyan", "cyan", "cyan", "cyan"]
|
||||
|
||||
// Manual,Rate,Attitude,AxisLock,WeakLeveling,VirtualBar,Acro+,Rattitude,
|
||||
// AltitudeHold,AltitudeVario,CruiseControl + Auto mode (VTOL/Wing pathfollower)
|
||||
// Manual,Rate,RateTrainer,Attitude,AxisLock,WeakLeveling,VirtualBar,Acro+,Rattitude,
|
||||
// AltitudeHold,AltitudeVario,CruiseControl" + Auto mode (VTOL/Wing pathfollower)
|
||||
// grey : 'disabled' modes
|
||||
|
||||
property variant thrustmodeColors : ["green", "grey", "grey", "grey", "grey", "grey", "grey", "grey",
|
||||
property variant thrustmodeColors : ["green", "grey", "grey", "grey", "grey", "grey", "grey", "grey", "grey",
|
||||
"green", "green", "green", "cyan"]
|
||||
|
||||
// SystemSettings.AirframeType 3 - 17 : VtolPathFollower, check ThrustControl
|
||||
|
||||
property var thrust_mode: FlightStatus.FlightMode < 7 ? StabilizationDesired.StabilizationMode_Thrust :
|
||||
FlightStatus.FlightMode > 6 && SystemSettings.AirframeType > 2 && SystemSettings.AirframeType < 18
|
||||
&& VtolPathFollowerSettings.ThrustControl == 1 ? 11 :
|
||||
FlightStatus.FlightMode > 6 && SystemSettings.AirframeType < 3 ? 11: 0
|
||||
&& VtolPathFollowerSettings.ThrustControl == 1 ? 12 :
|
||||
FlightStatus.FlightMode > 6 && SystemSettings.AirframeType < 3 ? 12: 0
|
||||
|
||||
|
||||
property real flight_time: Math.round(SystemStats.FlightTime / 1000)
|
||||
@ -198,11 +198,13 @@ Item {
|
||||
Rectangle {
|
||||
anchors.fill: parent
|
||||
color: warnings.flightmodeColors[FlightStatus.FlightMode]
|
||||
// Manual,Stabilized1,Stabilized2,Stabilized3,Stabilized4,Stabilized5,Stabilized6,PositionHold,CourseLock,
|
||||
// VelocityRoam,HomeLeash,AbsolutePosition,ReturnToBase,Land,PathPlanner,POI,AutoCruise,AutoTakeoff
|
||||
|
||||
Text {
|
||||
anchors.centerIn: parent
|
||||
text: ["MANUAL","STAB 1","STAB 2", "STAB 3", "STAB 4", "STAB 5", "STAB 6", "POS HOLD", "COURSELOCK",
|
||||
"POS ROAM", "HOME LEASH", "ABS POS", "RTB", "LAND", "PATHPLAN", "POI", "AUTOCRUISE"][FlightStatus.FlightMode]
|
||||
"VEL ROAM", "HOME LEASH", "ABS POS", "RTB", "LAND", "PATHPLAN", "POI", "AUTOCRUISE", "AUTOTAKEOFF"][FlightStatus.FlightMode]
|
||||
font {
|
||||
family: pt_bold.name
|
||||
pixelSize: Math.floor(parent.height * 0.74)
|
||||
@ -225,12 +227,12 @@ Item {
|
||||
anchors.fill: parent
|
||||
color: FlightStatus.FlightMode < 1 ? "grey" : warnings.thrustmodeColors[thrust_mode.toString()]
|
||||
|
||||
// Manual,Rate,Attitude,AxisLock,WeakLeveling,VirtualBar,Acro+,Rattitude,
|
||||
// Manual,Rate,RateTrainer,Attitude,AxisLock,WeakLeveling,VirtualBar,Acro+,Rattitude,
|
||||
// AltitudeHold,AltitudeVario,CruiseControl
|
||||
// grey : 'disabled' modes
|
||||
Text {
|
||||
anchors.centerIn: parent
|
||||
text: ["MANUAL"," "," ", " ", " ", " ", " ", " ",
|
||||
text: ["MANUAL"," "," ", " ", " ", " ", " ", " ", " ",
|
||||
"ALT HOLD", "ALT VARIO", "CRUISECTRL", "AUTO"][thrust_mode.toString()]
|
||||
font {
|
||||
family: pt_bold.name
|
||||
|
@ -356,8 +356,8 @@ void ConfigOutputWidget::refreshWidgetsValues(UAVObject *obj)
|
||||
// Setup labels and combos for banks according to board type
|
||||
if (board == 0x0903) {
|
||||
// Revolution family of boards 6 timer banks
|
||||
bankLabels << "1 (1-2)" << "2 (3)" << "3 (4)" << "4 (5-6)" << "5 (7-8)" << "6 (9-10)";
|
||||
channelBanks << 1 << 1 << 2 << 3 << 4 << 4 << 5 << 5 << 6 << 6;
|
||||
bankLabels << "1 (1-2)" << "2 (3)" << "3 (4)" << "4 (5-6)" << "5 (7,12)" << "6 (8-11)";
|
||||
channelBanks << 1 << 1 << 2 << 3 << 4 << 4 << 5 << 6 << 6 << 6 << 6 << 5;
|
||||
} else if (board == 0x0905) {
|
||||
// Revolution Nano
|
||||
bankLabels << "1 (1)" << "2 (2,7,11)" << "3 (3)" << "4 (4)" << "5 (5-6)" << "6 (8-10,12)";
|
||||
@ -472,10 +472,7 @@ void ConfigOutputWidget::updateWarnings(UAVObject *)
|
||||
if (systemAlarms.Alarm[SystemAlarms::ALARM_SYSTEMCONFIGURATION] > SystemAlarms::ALARM_WARNING) {
|
||||
switch (systemAlarms.ExtendedAlarmStatus[SystemAlarms::EXTENDEDALARMSTATUS_SYSTEMCONFIGURATION]) {
|
||||
case SystemAlarms::EXTENDEDALARMSTATUS_UNSUPPORTEDCONFIG_ONESHOT:
|
||||
setWarning(tr("OneShot and PWMSync output only works with Receiver Port settings marked with '+OneShot'<br>"
|
||||
"When using Receiver Port setting 'PPM_PIN8+OneShot' "
|
||||
"<b><font color='%1'>Bank %2</font></b> must be set to PWM")
|
||||
.arg(m_banks.at(3).color().name()).arg(m_banks.at(3).label()->text()));
|
||||
setWarning(tr("OneShot and PWMSync output DO NOT work with Receiver Port is 'PWM'<br>"));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -180,6 +180,9 @@ void ConnectionDiagram::setupGraphicsScene()
|
||||
case VehicleConfigurationSource::INPUT_SBUS:
|
||||
elementsToShow << QString("%1sbus").arg(prefix);
|
||||
break;
|
||||
case VehicleConfigurationSource::INPUT_SRXL:
|
||||
elementsToShow << QString("%1srxl").arg(prefix);
|
||||
break;
|
||||
case VehicleConfigurationSource::INPUT_DSM:
|
||||
elementsToShow << QString("%1satellite").arg(prefix);
|
||||
break;
|
||||
|
@ -49,6 +49,7 @@ void AutoUpdatePage::autoUpdate()
|
||||
Q_ASSERT(uploader);
|
||||
m_isUpdating = true;
|
||||
uploader->autoUpdate(ui->eraseSettings->isChecked());
|
||||
getWizard()->setRestartNeeded(true);
|
||||
}
|
||||
|
||||
void AutoUpdatePage::updateStatus(uploader::ProgressStep status, QVariant value)
|
||||
|
@ -73,5 +73,16 @@ void EscPage::initializePage()
|
||||
|
||||
bool EscPage::isSynchOrOneShotAvailable()
|
||||
{
|
||||
return true;
|
||||
bool available = true;
|
||||
|
||||
switch (getWizard()->getControllerType()) {
|
||||
case SetupWizard::CONTROLLER_NANO:
|
||||
available = getWizard()->getInputType() != SetupWizard::INPUT_PWM;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return available;
|
||||
}
|
||||
|
@ -55,6 +55,8 @@ bool InputPage::validatePage()
|
||||
getWizard()->setInputType(SetupWizard::INPUT_SBUS);
|
||||
} else if (ui->spectrumButton->isChecked()) {
|
||||
getWizard()->setInputType(SetupWizard::INPUT_DSM);
|
||||
} else if (ui->multiplexButton->isChecked()){
|
||||
getWizard()->setInputType(SetupWizard::INPUT_SRXL);
|
||||
} else {
|
||||
getWizard()->setInputType(SetupWizard::INPUT_PWM);
|
||||
}
|
||||
@ -79,17 +81,15 @@ bool InputPage::restartNeeded(VehicleConfigurationSource::INPUT_TYPE selectedTyp
|
||||
switch (selectedType) {
|
||||
case VehicleConfigurationSource::INPUT_PWM:
|
||||
return data.RM_RcvrPort != HwSettings::RM_RCVRPORT_PWM;
|
||||
|
||||
case VehicleConfigurationSource::INPUT_PPM:
|
||||
return data.RM_RcvrPort != HwSettings::RM_RCVRPORT_PPM;
|
||||
|
||||
case VehicleConfigurationSource::INPUT_SBUS:
|
||||
return data.RM_MainPort != HwSettings::RM_MAINPORT_SBUS;
|
||||
|
||||
case VehicleConfigurationSource::INPUT_SRXL:
|
||||
return data.RM_FlexiPort != HwSettings::RM_FLEXIPORT_SRXL;
|
||||
case VehicleConfigurationSource::INPUT_DSM:
|
||||
// TODO: Handle all of the DSM types ?? Which is most common?
|
||||
return data.RM_MainPort != HwSettings::RM_MAINPORT_DSM;
|
||||
|
||||
default: return true;
|
||||
}
|
||||
break;
|
||||
|
@ -218,6 +218,47 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QToolButton" name="multiplexButton">
|
||||
<property name="font">
|
||||
<font>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Multiplex SRXL</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">QToolButton { border: none }</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>SRXL</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../wizardResources.qrc">
|
||||
<normaloff>:/setupwizard/resources/bttn-srxl-up.png</normaloff>
|
||||
<normalon>:/setupwizard/resources/bttn-srxl-down.png</normalon>:/setupwizard/resources/bttn-srxl-up.png</iconset>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>100</width>
|
||||
<height>100</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="autoExclusive">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="toolButtonStyle">
|
||||
<enum>Qt::ToolButtonTextUnderIcon</enum>
|
||||
</property>
|
||||
<property name="autoRaise">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
|
Binary file not shown.
After Width: | Height: | Size: 3.1 KiB |
Binary file not shown.
After Width: | Height: | Size: 3.7 KiB |
@ -30,13 +30,13 @@
|
||||
inkscape:window-height="928"
|
||||
id="namedview4616"
|
||||
showgrid="false"
|
||||
inkscape:zoom="4.1218791"
|
||||
inkscape:cx="466.90655"
|
||||
inkscape:cy="424.49244"
|
||||
inkscape:zoom="1.0702079"
|
||||
inkscape:cx="547.53816"
|
||||
inkscape:cy="386.12041"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="layer12"
|
||||
inkscape:current-layer="layer16"
|
||||
fit-margin-top="15"
|
||||
fit-margin-left="15"
|
||||
fit-margin-right="15"
|
||||
@ -17750,6 +17750,26 @@
|
||||
stop-color="#535353"
|
||||
id="stop6585-0-2-1-6-2-4" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient6587-8-2-7"
|
||||
id="linearGradient26963"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(-151.00134,-881.62884)"
|
||||
x1="1250"
|
||||
y1="1450"
|
||||
x2="1490"
|
||||
y2="1450" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient6587-8-2-7"
|
||||
id="linearGradient27052"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(-151.00134,-881.62884)"
|
||||
x1="1250"
|
||||
y1="1450"
|
||||
x2="1490"
|
||||
y2="1450" />
|
||||
</defs>
|
||||
<metadata
|
||||
id="metadata12656">
|
||||
@ -17787,6 +17807,125 @@
|
||||
inkscape:label="rc-input"
|
||||
style="display:inline"
|
||||
transform="translate(-32.46875,315.85439)">
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer16"
|
||||
inkscape:label="revo-srxl"
|
||||
style="display:inline">
|
||||
<g
|
||||
style="display:inline"
|
||||
id="revo-srxl"
|
||||
transform="matrix(0,0.4,-0.4,0,929.4684,-117.45414)">
|
||||
<path
|
||||
id="path9857-8-8-1-1-4"
|
||||
d="m 1430.6302,1592 c -5.97,64.9 57.0596,195.8293 232.2275,97.9523"
|
||||
stroke-miterlimit="4"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:none;stroke:#777777;stroke-width:14.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
sodipodi:nodetypes="ccc"
|
||||
style="fill:none;stroke:#ec6004;stroke-width:15.29999924;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 1392.571,1323.8556 l 0,-286.8032 l -291.0357,0"
|
||||
id="path8856-5-1-7-1-9-5-4-3-7" />
|
||||
<path
|
||||
sodipodi:nodetypes="ccc"
|
||||
style="fill:none;stroke:#d81900;stroke-width:15.29999924;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 1362.571,1323.8556 l -7e-4,-251.8944 l -261.035,0.1823"
|
||||
id="path8856-1-2-1-9-0-9" />
|
||||
<path
|
||||
sodipodi:nodetypes="ccc"
|
||||
style="fill:none;stroke:#000000;stroke-width:15.29999924;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 1347.571,1323.8556 l 0,-236.8032 l -246.0357,0"
|
||||
id="path8856-1-5-7-7-2-9-3" />
|
||||
<path
|
||||
sodipodi:nodetypes="cc"
|
||||
style="fill:none;stroke:#777777;stroke-width:14.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0"
|
||||
stroke-miterlimit="4"
|
||||
d="m 1308.744,1592 c 5.97,64.9 -57.0596,195.8293 -232.2275,97.9523"
|
||||
id="path21749-5" />
|
||||
<rect
|
||||
rx="11.5"
|
||||
id="rect8853-6-8-6-6-4"
|
||||
style="color:#000000;fill:url(#linearGradient26963);fill-rule:nonzero;stroke:#000000;stroke-width:5.76999998;stroke-miterlimit:4;stroke-dasharray:none;enable-background:accumulate"
|
||||
ry="11.5"
|
||||
height="272"
|
||||
width="237"
|
||||
stroke-miterlimit="4"
|
||||
y="1320"
|
||||
x="1250" />
|
||||
<g
|
||||
style="font-style:normal;font-weight:normal;font-size:100px;line-height:125%;font-family:Sans;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000"
|
||||
id="text4849-5-9-2-5"
|
||||
transform="matrix(0,-1,1,0,-97.5,2824.5)">
|
||||
<path
|
||||
d="m 1337.2402,1484.8574 l 0,3.8477 q -2.2461,-1.0742 -4.2382,-1.6016 q -1.9922,-0.5273 -3.8477,-0.5273 q -3.2227,0 -4.9805,1.25 q -1.7383,1.25 -1.7383,3.5547 q 0,1.9336 1.1524,2.9296 q 1.1719,0.9766 4.4141,1.5821 l 2.3828,0.4883 q 4.414,0.8398 6.5039,2.9687 q 2.1093,2.1094 2.1093,5.6641 q 0,4.2383 -2.8515,6.4258 q -2.832,2.1875 -8.3203,2.1875 q -2.0703,0 -4.4141,-0.4688 q -2.3242,-0.4687 -4.8242,-1.3867 l 0,-4.0625 q 2.4023,1.3476 4.707,2.0312 q 2.3047,0.6836 4.5313,0.6836 q 3.3789,0 5.2148,-1.3281 q 1.836,-1.3281 1.836,-3.7891 q 0,-2.1484 -1.3282,-3.3593 q -1.3086,-1.211 -4.3164,-1.8164 l -2.4023,-0.4688 q -4.4141,-0.8789 -6.3867,-2.7539 q -1.9727,-1.875 -1.9727,-5.2148 q 0,-3.8672 2.7148,-6.0938 q 2.7344,-2.2266 7.5196,-2.2266 q 2.0508,0 4.1797,0.3711 q 2.1289,0.3711 4.3554,1.1133 z"
|
||||
style="font-size:40px;text-align:center;text-anchor:middle;fill:#ffffff"
|
||||
id="path21770-9"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 1358.9785,1499.3887 q 1.2695,0.4297 2.461,1.8359 q 1.2109,1.4063 2.4218,3.8672 l 4.0039,7.9687 l -4.2382,0 l -3.7305,-7.4804 q -1.4453,-2.9297 -2.8125,-3.8867 q -1.3477,-0.9571 -3.6914,-0.9571 l -4.2969,0 l 0,12.3242 l -3.9453,0 l 0,-29.1601 l 8.9062,0 q 5,0 7.461,2.0898 q 2.4609,2.0899 2.4609,6.3086 q 0,2.7539 -1.289,4.5703 q -1.2696,1.8164 -3.711,2.5196 z m -9.8828,-12.2461 l 0,10.3515 l 4.9609,0 q 2.8516,0 4.2969,-1.3086 q 1.4649,-1.3281 1.4649,-3.8867 q 0,-2.5586 -1.4649,-3.8476 q -1.4453,-1.3086 -4.2969,-1.3086 l -4.9609,0 z"
|
||||
style="font-size:40px;text-align:center;text-anchor:middle;fill:#ffffff"
|
||||
id="path21772-3"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 1371.5566,1483.9004 l 4.2383,0 l 7.2461,10.8398 l 7.2852,-10.8398 l 4.2383,0 l -9.375,14.0039 l 10,15.1562 l -4.2383,0 l -8.2032,-12.4023 l -8.2617,12.4023 l -4.2578,0 l 10.4102,-15.5664 l -9.0821,-13.5937 z"
|
||||
style="font-size:40px;text-align:center;text-anchor:middle;fill:#ffffff"
|
||||
id="path21774-4"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 1400.3848,1483.9004 l 3.9453,0 l 0,25.8398 l 14.1992,0 l 0,3.3203 l -18.1445,0 l 0,-29.1601 z"
|
||||
style="font-size:40px;text-align:center;text-anchor:middle;fill:#ffffff"
|
||||
id="path21776-8"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<g
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:37.7733078px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Sans Bold';letter-spacing:0px;word-spacing:0px;display:inline;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
id="text20525-8"
|
||||
transform="matrix(0,-1,1,0,-68.75,2824.5001)">
|
||||
<path
|
||||
d="m 1264.1993,1413.0389 l 0,-27.0389 l 8.1707,0 l 4.9061,18.444 l 4.8507,-18.444 l 8.1892,0 l 0,27.0389 l -5.0721,0 l 0,-21.2843 l -5.3672,21.2843 l -5.2566,0 l -5.3487,-21.2843 l 0,21.2843 l -5.0721,0 z"
|
||||
id="path21779-0"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 1295.7385,1386 l 5.4594,0 l 0,14.6446 q 0,3.4859 0.2029,4.5188 q 0.3505,1.6599 1.66,2.6743 q 1.328,0.996 3.615,0.996 q 2.324,0 3.5044,-0.9406 q 1.1804,-0.9591 1.4202,-2.3424 q 0.2397,-1.3833 0.2397,-4.5926 l 0,-14.9581 l 5.4595,0 l 0,14.2019 q 0,4.8692 -0.4427,6.8796 q -0.4427,2.0104 -1.6415,3.3937 q -1.1804,1.3833 -3.1724,2.2133 q -1.9919,0.8115 -5.2012,0.8115 q -3.8732,0 -5.8836,-0.8853 q -1.992,-0.9037 -3.154,-2.3239 q -1.1619,-1.4386 -1.5308,-3.0064 q -0.5349,-2.3239 -0.5349,-6.8612 l 0,-14.4232 z"
|
||||
id="path21781-9"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 1323.2201,1413.0389 l 0,-26.8175 l 5.4594,0 l 0,22.2619 l 13.5748,0 l 0,4.5556 l -19.0342,0 z"
|
||||
id="path21783-1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 1349.4474,1413.0389 l 0,-22.4647 l -8.0231,0 l 0,-4.5742 l 21.4873,0 l 0,4.5742 l -8.0047,0 l 0,22.4647 l -5.4595,0 z"
|
||||
id="path21785-1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 1366.213,1413.0389 l 0,-27.0389 l 5.4595,0 l 0,27.0389 l -5.4595,0 z"
|
||||
id="path21787-2"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 1376.8552,1413.0389 l 0,-27.0389 l 8.7609,0 q 4.9799,0 6.4923,0.4058 q 2.3239,0.6087 3.8917,2.6559 q 1.5677,2.0289 1.5677,5.2566 q 0,2.4899 -0.9037,4.1868 q -0.9038,1.6968 -2.3055,2.6743 q -1.3833,0.9591 -2.822,1.2727 q -1.955,0.3873 -5.6623,0.3873 l -3.5597,0 l 0,10.1995 l -5.4594,0 z m 5.4594,-22.4647 l 0,7.6727 l 2.988,0 q 3.2277,0 4.3159,-0.4243 q 1.0882,-0.4242 1.6968,-1.3279 q 0.6271,-0.9038 0.6271,-2.1026 q 0,-1.4756 -0.8669,-2.4346 q -0.8668,-0.9591 -2.1948,-1.1989 q -0.9775,-0.1844 -3.9286,-0.1844 l -2.6375,0 z"
|
||||
id="path21789-4"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 1402.2342,1413.0389 l 0,-26.8175 l 5.4594,0 l 0,22.2619 l 13.5748,0 l 0,4.5556 l -19.0342,0 z"
|
||||
id="path21791-4"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 1425.1785,1413.0389 l 0,-27.0389 l 20.0486,0 l 0,4.5742 l -14.5892,0 l 0,5.9943 l 13.5748,0 l 0,4.5556 l -13.5748,0 l 0,7.3592 l 15.1057,0 l 0,4.5556 l -20.5651,0 z"
|
||||
id="path21793-5"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 1447.6617,1413.0389 l 9.2405,-14.1096 L 1448.5286,1386 l 6.3816,0 l 5.4226,8.6872 l 5.3118,-8.6872 l 6.3263,0 l -8.4104,13.1322 l 9.2404,13.9067 l -6.5845,0 l -5.9943,-9.3511 l -6.0128,9.3511 l -6.5476,0 z"
|
||||
id="path21795-4"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer54"
|
||||
@ -17799,115 +17938,115 @@
|
||||
transform="translate(1.0000001,-19)">
|
||||
<path
|
||||
id="path8856-1-8-4-9-0"
|
||||
d="M 309.08544,189.42619 L 430.46875,188.94219"
|
||||
d="m 309.08544,189.42619 l 121.38331,-0.484"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:none;stroke:#ec1d00;stroke-width:5.61390018;stroke-linecap:butt;stroke-linejoin:miter;display:inline"
|
||||
style="display:inline;fill:none;stroke:#ec1d00;stroke-width:5.61390018;stroke-linecap:butt;stroke-linejoin:miter"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
id="path8856-1-5-8-4-3-1"
|
||||
d="M 309.08544,183.82619 L 430.46875,183.62059"
|
||||
d="m 309.08544,183.82619 l 121.38331,-0.2056"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:none;stroke:#000000;stroke-width:5.61390018;stroke-linecap:butt;stroke-linejoin:miter;display:inline"
|
||||
style="display:inline;fill:none;stroke:#000000;stroke-width:5.61390018;stroke-linecap:butt;stroke-linejoin:miter"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
id="path8856-1-3-1-3-5-6"
|
||||
d="M 309.08544,195.62619 L 369.77709,195.42019 L 370.12292,212.31719 L 430.46875,212.21419"
|
||||
d="m 309.08544,195.62619 l 60.69165,-0.206 l 0.34583,16.897 l 60.34583,-0.103"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:none;stroke:#ffffff;stroke-width:5.17476749;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
|
||||
style="display:inline;fill:none;stroke:#ffffff;stroke-width:5.17476749;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
sodipodi:nodetypes="cccc" />
|
||||
<path
|
||||
sodipodi:nodetypes="cc"
|
||||
style="fill:none;stroke:#1f4697;stroke-width:5.61390018;stroke-linecap:butt;stroke-linejoin:round"
|
||||
inkscape:connector-curvature="0"
|
||||
d="M 394.76407,219.75113 L 430.56375,219.65633"
|
||||
d="m 394.76407,219.75113 l 35.79968,-0.0948"
|
||||
id="path8856-5-7-0" />
|
||||
<path
|
||||
sodipodi:nodetypes="cc"
|
||||
style="fill:none;stroke:#fac204;stroke-width:5.61399984;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0"
|
||||
d="M 395.16407,226.51434 L 430.56375,226.51434"
|
||||
d="m 395.16407,226.51434 l 35.39968,0"
|
||||
id="path8856-5-1-81-9" />
|
||||
<path
|
||||
sodipodi:nodetypes="cc"
|
||||
style="fill:none;stroke:#32a304;stroke-width:5.61399984;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0"
|
||||
d="M 395.80447,233.97173 L 430.40447,233.96573"
|
||||
d="m 395.80447,233.97173 l 34.6,-0.006"
|
||||
id="path8856-5-1-7-8-5" />
|
||||
<path
|
||||
sodipodi:nodetypes="cc"
|
||||
style="fill:none;stroke:#ec6004;stroke-width:5.61390018;stroke-linecap:butt;stroke-linejoin:round"
|
||||
inkscape:connector-curvature="0"
|
||||
d="M 396.284,241.51434 L 430.71887,241.51434"
|
||||
d="m 396.284,241.51434 l 34.43487,0"
|
||||
id="path8856-5-1-7-1-5-2" />
|
||||
<path
|
||||
style="fill:none;stroke:#777777;stroke-width:5.80000019;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;display:inline"
|
||||
style="display:inline;fill:none;stroke:#777777;stroke-width:5.80000019;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0"
|
||||
d="M 131.51628,280.89645 C 99.179438,276.41438 56.116118,293.77498 44.942858,345.61434"
|
||||
id="path9857-3-9-2-4" />
|
||||
<path
|
||||
style="fill:none;stroke:#6b6b6b;stroke-width:1.21428466;stroke-linecap:butt;stroke-linejoin:miter;display:inline"
|
||||
style="display:inline;fill:none;stroke:#6b6b6b;stroke-width:1.21428466;stroke-linecap:butt;stroke-linejoin:miter"
|
||||
inkscape:connector-curvature="0"
|
||||
d="M 309.08544,198.82619 L 366.77709,198.68719 L 367.12292,215.61769 L 430.46875,215.54819"
|
||||
d="m 309.08544,198.82619 l 57.69165,-0.139 l 0.34583,16.9305 l 63.34583,-0.0695"
|
||||
id="path8856-4-4-3-0"
|
||||
sodipodi:nodetypes="cccc" />
|
||||
<path
|
||||
style="fill:none;stroke:#6b6b6b;stroke-width:1.21428466;stroke-linecap:butt;stroke-linejoin:miter;display:inline"
|
||||
style="display:inline;fill:none;stroke:#6b6b6b;stroke-width:1.21428466;stroke-linecap:butt;stroke-linejoin:miter"
|
||||
inkscape:connector-curvature="0"
|
||||
d="M 309.08544,191.82619 L 372.77709,191.68719 L 373.12292,208.61769 L 430.46875,208.54819"
|
||||
d="m 309.08544,191.82619 l 63.69165,-0.139 l 0.34583,16.9305 l 57.34583,-0.0695"
|
||||
id="path8856-4-4-3-4-5"
|
||||
sodipodi:nodetypes="cccc" />
|
||||
<path
|
||||
sodipodi:nodetypes="sssccccssssss"
|
||||
inkscape:connector-curvature="0"
|
||||
id="rect8853-0-8-3-8"
|
||||
d="M 136.31357,163.05542 L 323.35356,163.05542 C 326.94348,163.05542 329.83356,165.9455 329.83356,169.53542 L 329.83356,178.37557 L 323.83356,178.37557 L 323.83356,300.73558 L 329.834,300.73558 L 329.83356,310.97542 C 329.83341,314.56534 326.94348,317.45542 323.35356,317.45542 L 136.31357,317.45542 C 132.72364,317.45542 129.83356,314.56534 129.83356,310.97542 L 129.83356,169.53542 C 129.83356,165.9455 132.72364,163.05542 136.31357,163.05542 z"
|
||||
style="color:#000000;fill:url(#linearGradient13565-9-6);fill-rule:nonzero;stroke:#000000;stroke-width:3.09599996;stroke-miterlimit:4;stroke-dasharray:none;display:inline;enable-background:accumulate" />
|
||||
d="m 136.31357,163.05542 l 187.03999,0 c 3.58992,0 6.48,2.89008 6.48,6.48 l 0,8.84015 l -6,0 l 0,122.36001 l 6.00044,0 l -4.4e-4,10.23984 c -1.5e-4,3.58992 -2.89008,6.48 -6.48,6.48 l -187.03999,0 c -3.58993,0 -6.48001,-2.89008 -6.48001,-6.48 l 0,-141.44 c 0,-3.58992 2.89008,-6.48 6.48001,-6.48 z"
|
||||
style="color:#000000;display:inline;fill:url(#linearGradient13565-9-6);fill-rule:nonzero;stroke:#000000;stroke-width:3.09599996;stroke-miterlimit:4;stroke-dasharray:none;enable-background:accumulate" />
|
||||
<g
|
||||
transform="translate(-93.48662,-127.74067)"
|
||||
id="text9734-24-8-2-2"
|
||||
style="font-size:22.39999962px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;display:inline;font-family:Sans">
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:22.39999962px;line-height:125%;font-family:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;display:inline;fill:#ffffff">
|
||||
<path
|
||||
id="path13900-3-4"
|
||||
d="M 268.82831,303.23718 L 275.81738,303.23718 C 277.89549,303.23719 279.48872,303.70021 280.59706,304.62624 C 281.71267,305.545 282.27049,306.8575 282.2705,308.56374 C 282.27049,310.27729 281.71267,311.59708 280.59706,312.52311 C 279.48872,313.44187 277.89549,313.90124 275.81738,313.90124 L 273.03925,313.90124 L 273.03925,319.56686 L 268.82831,319.56686 L 268.82831,303.23718 M 273.03925,306.28874 L 273.03925,310.84968 L 275.36894,310.84968 C 276.1856,310.84969 276.81632,310.65281 277.26113,310.25905 C 277.70591,309.85802 277.9283,309.29292 277.92831,308.56374 C 277.9283,307.83458 277.70591,307.27313 277.26113,306.87936 C 276.81632,306.48563 276.1856,306.28875 275.36894,306.28874 L 273.03925,306.28874"
|
||||
d="m 268.82831,303.23718 l 6.98907,0 c 2.07811,10e-6 3.67134,0.46303 4.77968,1.38906 c 1.11561,0.91876 1.67343,2.23126 1.67344,3.9375 c -1e-5,1.71355 -0.55783,3.03334 -1.67344,3.95937 c -1.10834,0.91876 -2.70157,1.37813 -4.77968,1.37813 l -2.77813,0 l 0,5.66562 l -4.21094,0 l 0,-16.32968 m 4.21094,3.05156 l 0,4.56094 l 2.32969,0 c 0.81666,1e-5 1.44738,-0.19687 1.89219,-0.59063 c 0.44478,-0.40103 0.66717,-0.96613 0.66718,-1.69531 c -1e-5,-0.72916 -0.2224,-1.29061 -0.66718,-1.68438 c -0.44481,-0.39373 -1.07553,-0.59061 -1.89219,-0.59062 l -2.32969,0"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path13902-9-6"
|
||||
d="M 285.23456,303.23718 L 292.22363,303.23718 C 294.30174,303.23719 295.89497,303.70021 297.00331,304.62624 C 298.11892,305.545 298.67674,306.8575 298.67675,308.56374 C 298.67674,310.27729 298.11892,311.59708 297.00331,312.52311 C 295.89497,313.44187 294.30174,313.90124 292.22363,313.90124 L 289.4455,313.90124 L 289.4455,319.56686 L 285.23456,319.56686 L 285.23456,303.23718 M 289.4455,306.28874 L 289.4455,310.84968 L 291.77519,310.84968 C 292.59185,310.84969 293.22257,310.65281 293.66738,310.25905 C 294.11216,309.85802 294.33455,309.29292 294.33456,308.56374 C 294.33455,307.83458 294.11216,307.27313 293.66738,306.87936 C 293.22257,306.48563 292.59185,306.28875 291.77519,306.28874 L 289.4455,306.28874"
|
||||
d="m 285.23456,303.23718 l 6.98907,0 c 2.07811,10e-6 3.67134,0.46303 4.77968,1.38906 c 1.11561,0.91876 1.67343,2.23126 1.67344,3.9375 c -1e-5,1.71355 -0.55783,3.03334 -1.67344,3.95937 c -1.10834,0.91876 -2.70157,1.37813 -4.77968,1.37813 l -2.77813,0 l 0,5.66562 l -4.21094,0 l 0,-16.32968 m 4.21094,3.05156 l 0,4.56094 l 2.32969,0 c 0.81666,1e-5 1.44738,-0.19687 1.89219,-0.59063 c 0.44478,-0.40103 0.66717,-0.96613 0.66718,-1.69531 c -1e-5,-0.72916 -0.2224,-1.29061 -0.66718,-1.68438 c -0.44481,-0.39373 -1.07553,-0.59061 -1.89219,-0.59062 l -2.32969,0"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path13904-1-3"
|
||||
d="M 301.64081,303.23718 L 307.00019,303.23718 L 310.71894,311.97624 L 314.45956,303.23718 L 319.808,303.23718 L 319.808,319.56686 L 315.82675,319.56686 L 315.82675,307.62311 L 312.06425,316.4278 L 309.3955,316.4278 L 305.633,307.62311 L 305.633,319.56686 L 301.64081,319.56686 L 301.64081,303.23718"
|
||||
d="m 301.64081,303.23718 l 5.35938,0 l 3.71875,8.73906 l 3.74062,-8.73906 l 5.34844,0 l 0,16.32968 l -3.98125,0 l 0,-11.94375 l -3.7625,8.80469 l -2.66875,0 l -3.7625,-8.80469 l 0,11.94375 l -3.99219,0 l 0,-16.32968"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path13906-1-0"
|
||||
d="M 343.10487,303.75124 L 343.10487,307.20749 C 342.20799,306.80646 341.33299,306.50386 340.47987,306.29968 C 339.62674,306.09552 338.82101,305.99344 338.06269,305.99343 C 337.05643,305.99344 336.31268,306.13198 335.83144,306.40905 C 335.35018,306.68615 335.10956,307.11636 335.10956,307.69968 C 335.10956,308.13719 335.26997,308.4799 335.59081,308.7278 C 335.91893,308.96844 336.50956,309.17625 337.36269,309.35124 L 339.15644,309.71218 C 340.97205,310.07677 342.26267,310.63094 343.02831,311.37468 C 343.79392,312.11843 344.17674,313.17572 344.17675,314.54655 C 344.17674,316.3476 343.6408,317.68926 342.56894,318.57155 C 341.50434,319.44655 339.87466,319.88405 337.67988,319.88405 C 336.64445,319.88405 335.60539,319.78565 334.56269,319.58874 C 333.51998,319.39186 332.47727,319.1002 331.43456,318.71374 L 331.43456,315.15905 C 332.47727,315.71322 333.48352,316.13249 334.45331,316.41686 C 335.43039,316.69395 336.37101,316.83249 337.27519,316.83249 C 338.19393,316.83249 338.89757,316.67937 339.38613,316.37311 C 339.87466,316.06687 340.11893,315.62937 340.11894,315.06061 C 340.11893,314.5502 339.95122,314.15645 339.61581,313.87936 C 339.28768,313.60229 338.62778,313.35437 337.63613,313.13561 L 336.00644,312.77468 C 334.3731,312.42468 333.17727,311.86687 332.41894,311.10124 C 331.66789,310.33562 331.29237,309.30385 331.29238,308.00593 C 331.29237,306.3799 331.81737,305.12938 332.86738,304.25436 C 333.91737,303.37938 335.42674,302.94188 337.3955,302.94186 C 338.29237,302.94188 339.21476,303.01116 340.16269,303.14968 C 341.11059,303.28094 342.09132,303.48146 343.10487,303.75124"
|
||||
d="m 343.10487,303.75124 l 0,3.45625 c -0.89688,-0.40103 -1.77188,-0.70363 -2.625,-0.90781 c -0.85313,-0.20416 -1.65886,-0.30624 -2.41718,-0.30625 c -1.00626,1e-5 -1.75001,0.13855 -2.23125,0.41562 c -0.48126,0.2771 -0.72188,0.70731 -0.72188,1.29063 c 0,0.43751 0.16041,0.78022 0.48125,1.02812 c 0.32812,0.24064 0.91875,0.44845 1.77188,0.62344 l 1.79375,0.36094 c 1.81561,0.36459 3.10623,0.91876 3.87187,1.6625 c 0.76561,0.74375 1.14843,1.80104 1.14844,3.17187 c -1e-5,1.80105 -0.53595,3.14271 -1.60781,4.025 c -1.0646,0.875 -2.69428,1.3125 -4.88906,1.3125 c -1.03543,0 -2.07449,-0.0984 -3.11719,-0.29531 c -1.04271,-0.19688 -2.08542,-0.48854 -3.12813,-0.875 l 0,-3.55469 c 1.04271,0.55417 2.04896,0.97344 3.01875,1.25781 c 0.97708,0.27709 1.9177,0.41563 2.82188,0.41563 c 0.91874,0 1.62238,-0.15312 2.11094,-0.45938 c 0.48853,-0.30624 0.7328,-0.74374 0.73281,-1.3125 c -1e-5,-0.51041 -0.16772,-0.90416 -0.50313,-1.18125 c -0.32813,-0.27707 -0.98803,-0.52499 -1.97968,-0.74375 l -1.62969,-0.36093 c -1.63334,-0.35 -2.82917,-0.90781 -3.5875,-1.67344 c -0.75105,-0.76562 -1.12657,-1.79739 -1.12656,-3.09531 c -10e-6,-1.62603 0.52499,-2.87655 1.575,-3.75157 c 1.04999,-0.87498 2.55936,-1.31248 4.52812,-1.3125 c 0.89687,2e-5 1.81926,0.0693 2.76719,0.20782 c 0.9479,0.13126 1.92863,0.33178 2.94218,0.60156"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path13908-3-7"
|
||||
d="M 347.70957,307.31686 L 351.62519,307.31686 L 351.62519,319.56686 L 347.70957,319.56686 L 347.70957,307.31686 M 347.70957,302.54811 L 351.62519,302.54811 L 351.62519,305.74186 L 347.70957,305.74186 L 347.70957,302.54811"
|
||||
d="m 347.70957,307.31686 l 3.91562,0 l 0,12.25 l -3.91562,0 l 0,-12.25 m 0,-4.76875 l 3.91562,0 l 0,3.19375 l -3.91562,0 l 0,-3.19375"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path13910-5-7"
|
||||
d="M 363.74394,317.48874 C 363.20434,318.20332 362.61007,318.72832 361.96113,319.06374 C 361.31216,319.39916 360.56112,319.56686 359.708,319.56686 C 358.2132,319.56686 356.97727,318.97989 356.00019,317.80593 C 355.0231,316.62468 354.53456,315.1226 354.53456,313.29968 C 354.53456,311.46948 355.0231,309.97104 356.00019,308.80436 C 356.97727,307.63042 358.2132,307.04344 359.708,307.04343 C 360.56112,307.04344 361.31216,307.21115 361.96113,307.54655 C 362.61007,307.88198 363.20434,308.41063 363.74394,309.13249 L 363.74394,307.31686 L 367.68144,307.31686 L 367.68144,318.33093 C 367.68142,320.29968 367.05799,321.80176 365.81112,322.83718 C 364.57153,323.87988 362.77049,324.40123 360.408,324.40124 C 359.64237,324.40123 358.90227,324.34294 358.18769,324.22624 C 357.4731,324.10957 356.75487,323.93092 356.033,323.6903 L 356.033,320.63874 C 356.71841,321.03249 357.38925,321.32415 358.0455,321.51374 C 358.70174,321.71061 359.36164,321.80905 360.02519,321.80905 C 361.30851,321.80905 362.24914,321.52832 362.84706,320.96686 C 363.44497,320.4054 363.74393,319.52676 363.74394,318.33093 L 363.74394,317.48874 M 361.16269,309.8653 C 360.35331,309.86531 359.72258,310.16427 359.2705,310.76218 C 358.81841,311.3601 358.59237,312.20593 358.59238,313.29968 C 358.59237,314.4226 358.81112,315.27572 359.24863,315.85905 C 359.68612,316.4351 360.32414,316.72312 361.16269,316.72311 C 361.97935,316.72312 362.61372,316.42416 363.06581,315.82624 C 363.51789,315.22833 363.74393,314.38614 363.74394,313.29968 C 363.74393,312.20593 363.51789,311.3601 363.06581,310.76218 C 362.61372,310.16427 361.97935,309.86531 361.16269,309.8653"
|
||||
d="m 363.74394,317.48874 c -0.5396,0.71458 -1.13387,1.23958 -1.78281,1.575 c -0.64897,0.33542 -1.40001,0.50312 -2.25313,0.50312 c -1.4948,0 -2.73073,-0.58697 -3.70781,-1.76093 c -0.97709,-1.18125 -1.46563,-2.68333 -1.46563,-4.50625 c 0,-1.8302 0.48854,-3.32864 1.46563,-4.49532 c 0.97708,-1.17394 2.21301,-1.76092 3.70781,-1.76093 c 0.85312,10e-6 1.60416,0.16772 2.25313,0.50312 c 0.64894,0.33543 1.24321,0.86408 1.78281,1.58594 l 0,-1.81563 l 3.9375,0 l 0,11.01407 c -2e-5,1.96875 -0.62345,3.47083 -1.87032,4.50625 c -1.23959,1.0427 -3.04063,1.56405 -5.40312,1.56406 c -0.76563,-10e-6 -1.50573,-0.0583 -2.22031,-0.175 c -0.71459,-0.11667 -1.43282,-0.29532 -2.15469,-0.53594 l 0,-3.05156 c 0.68541,0.39375 1.35625,0.68541 2.0125,0.875 c 0.65624,0.19687 1.31614,0.29531 1.97969,0.29531 c 1.28332,0 2.22395,-0.28073 2.82187,-0.84219 c 0.59791,-0.56146 0.89687,-1.4401 0.89688,-2.63593 l 0,-0.84219 m -2.58125,-7.62344 c -0.80938,1e-5 -1.44011,0.29897 -1.89219,0.89688 c -0.45209,0.59792 -0.67813,1.44375 -0.67812,2.5375 c -10e-6,1.12292 0.21874,1.97604 0.65625,2.55937 c 0.43749,0.57605 1.07551,0.86407 1.91406,0.86406 c 0.81666,10e-6 1.45103,-0.29895 1.90312,-0.89687 c 0.45208,-0.59791 0.67812,-1.4401 0.67813,-2.52656 c -1e-5,-1.09375 -0.22605,-1.93958 -0.67813,-2.5375 c -0.45209,-0.59791 -1.08646,-0.89687 -1.90312,-0.89688"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path13912-3-0"
|
||||
d="M 383.78144,312.10749 L 383.78144,319.56686 L 379.84394,319.56686 L 379.84394,318.3528 L 379.84394,313.85749 C 379.84393,312.8002 379.81844,312.07104 379.76734,311.66999 C 379.72354,311.26896 379.64337,310.97364 379.52671,310.78405 C 379.37358,310.52885 379.16576,310.33198 378.90327,310.19343 C 378.64076,310.0476 378.34181,309.97469 378.0064,309.97468 C 377.18972,309.97469 376.54806,310.29187 376.0814,310.92624 C 375.61473,311.55333 375.38139,312.42468 375.3814,313.5403 L 375.3814,319.56686 L 371.46577,319.56686 L 371.46577,307.31686 L 375.3814,307.31686 L 375.3814,309.11061 C 375.97202,308.39604 376.5991,307.87104 377.26265,307.53561 C 377.92618,307.19292 378.65899,307.02156 379.46109,307.02155 C 380.87566,307.02156 381.94753,307.45542 382.67671,308.32311 C 383.41316,309.19083 383.78138,310.45229 383.7814,312.10749"
|
||||
d="m 383.78144,312.10749 l 0,7.45937 l -3.9375,0 l 0,-1.21406 l 0,-4.49531 c -10e-6,-1.05729 -0.0255,-1.78645 -0.0766,-2.1875 c -0.0438,-0.40103 -0.12397,-0.69635 -0.24063,-0.88594 c -0.15313,-0.2552 -0.36095,-0.45207 -0.62344,-0.59062 c -0.26251,-0.14583 -0.56146,-0.21874 -0.89687,-0.21875 c -0.81668,1e-5 -1.45834,0.31719 -1.925,0.95156 c -0.46667,0.62709 -0.70001,1.49844 -0.7,2.61406 l 0,6.02656 l -3.91563,0 l 0,-12.25 l 3.91563,0 l 0,1.79375 c 0.59062,-0.71457 1.2177,-1.23957 1.88125,-1.575 c 0.66353,-0.34269 1.39634,-0.51405 2.19844,-0.51406 c 1.41457,1e-5 2.48644,0.43387 3.21562,1.30156 c 0.73645,0.86772 1.10467,2.12918 1.10469,3.78438"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path13914-2-8"
|
||||
d="M 392.92519,314.05436 C 392.10852,314.05437 391.49237,314.19291 391.07675,314.46999 C 390.66841,314.74708 390.46425,315.15541 390.46425,315.69499 C 390.46425,316.19083 390.62831,316.58093 390.95644,316.8653 C 391.29185,317.14239 391.75487,317.28093 392.3455,317.28093 C 393.08195,317.28093 393.70174,317.01843 394.20488,316.49343 C 394.70799,315.96114 394.95955,315.2976 394.95956,314.5028 L 394.95956,314.05436 L 392.92519,314.05436 M 398.908,312.5778 L 398.908,319.56686 L 394.95956,319.56686 L 394.95956,317.75124 C 394.43456,318.49499 393.84393,319.03822 393.18769,319.38093 C 392.53143,319.71634 391.733,319.88405 390.79238,319.88405 C 389.52362,319.88405 388.49185,319.51582 387.69706,318.77936 C 386.90956,318.03562 386.51581,317.07312 386.51581,315.89186 C 386.51581,314.45541 387.008,313.40177 387.99238,312.73093 C 388.98404,312.0601 390.53716,311.72468 392.65175,311.72468 L 394.95956,311.72468 L 394.95956,311.41843 C 394.95955,310.79864 394.71528,310.34656 394.22675,310.06218 C 393.7382,309.77052 392.97622,309.62469 391.94081,309.62468 C 391.10227,309.62469 390.32206,309.70858 389.60019,309.87624 C 388.87831,310.04396 388.20748,310.29552 387.58769,310.63093 L 387.58769,307.64499 C 388.42623,307.44083 389.26841,307.28771 390.11425,307.18561 C 390.96008,307.07625 391.80591,307.02156 392.65175,307.02155 C 394.86112,307.02156 396.45434,307.45906 397.43144,308.33405 C 398.4158,309.20177 398.90799,310.61635 398.908,312.5778"
|
||||
d="m 392.92519,314.05436 c -0.81667,1e-5 -1.43282,0.13855 -1.84844,0.41563 c -0.40834,0.27709 -0.6125,0.68542 -0.6125,1.225 c 0,0.49584 0.16406,0.88594 0.49219,1.17031 c 0.33541,0.27709 0.79843,0.41563 1.38906,0.41563 c 0.73645,0 1.35624,-0.2625 1.85938,-0.7875 c 0.50311,-0.53229 0.75467,-1.19583 0.75468,-1.99063 l 0,-0.44844 l -2.03437,0 m 5.98281,-1.47656 l 0,6.98906 l -3.94844,0 l 0,-1.81562 c -0.525,0.74375 -1.11563,1.28698 -1.77187,1.62969 c -0.65626,0.33541 -1.45469,0.50312 -2.39531,0.50312 c -1.26876,0 -2.30053,-0.36823 -3.09532,-1.10469 c -0.7875,-0.74374 -1.18125,-1.70624 -1.18125,-2.8875 c 0,-1.43645 0.49219,-2.49009 1.47657,-3.16093 c 0.99166,-0.67083 2.54478,-1.00625 4.65937,-1.00625 l 2.30781,0 l 0,-0.30625 c -1e-5,-0.61979 -0.24428,-1.07187 -0.73281,-1.35625 c -0.48855,-0.29166 -1.25053,-0.43749 -2.28594,-0.4375 c -0.83854,10e-6 -1.61875,0.0839 -2.34062,0.25156 c -0.72188,0.16772 -1.39271,0.41928 -2.0125,0.75469 l 0,-2.98594 c 0.83854,-0.20416 1.68072,-0.35728 2.52656,-0.45938 c 0.84583,-0.10936 1.69166,-0.16405 2.5375,-0.16406 c 2.20937,1e-5 3.80259,0.43751 4.77969,1.3125 c 0.98436,0.86772 1.47655,2.2823 1.47656,4.24375"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path13916-6-8"
|
||||
d="M 402.57206,302.54811 L 406.48769,302.54811 L 406.48769,319.56686 L 402.57206,319.56686 L 402.57206,302.54811"
|
||||
d="m 402.57206,302.54811 l 3.91563,0 l 0,17.01875 l -3.91563,0 l 0,-17.01875"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<path
|
||||
id="path22050-3"
|
||||
d="M 397.284,248.51434 L 430.71887,248.51434"
|
||||
d="m 397.284,248.51434 l 33.43487,0"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:none;stroke:#7a00ff;stroke-width:5.61390018;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;display:inline"
|
||||
style="display:inline;fill:none;stroke:#7a00ff;stroke-width:5.61390018;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"
|
||||
sodipodi:nodetypes="cc" />
|
||||
</g>
|
||||
</g>
|
||||
@ -18306,6 +18445,126 @@
|
||||
id="tspan11335">Satellite</tspan></text>
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer19"
|
||||
inkscape:label="nano-srxl"
|
||||
style="display:none"
|
||||
sodipodi:insensitive="true">
|
||||
<g
|
||||
style="display:inline"
|
||||
id="nano-srxl"
|
||||
transform="matrix(-0.4,0,0,-0.4,1078.3424,590.20822)">
|
||||
<path
|
||||
id="path9857-8-8-1-1"
|
||||
d="m 1430.6302,1592 c -5.97,64.9 57.0596,195.8293 232.2275,97.9523"
|
||||
stroke-miterlimit="4"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:none;stroke:#777777;stroke-width:14.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
sodipodi:nodetypes="cc"
|
||||
style="fill:#cccccc;stroke:#ec6004;stroke-width:15.29999924;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 1392.571,1323.8556 l 0,-171.0219"
|
||||
id="path8856-5-1-7-1-9-5-4-3" />
|
||||
<path
|
||||
sodipodi:nodetypes="cc"
|
||||
style="fill:none;stroke:#d81900;stroke-width:15.29999924;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 1362.571,1323.8556 l 0,-171.0209"
|
||||
id="path8856-1-2-1-9-0" />
|
||||
<path
|
||||
sodipodi:nodetypes="cc"
|
||||
style="fill:#cccccc;stroke:#000000;stroke-width:15.29999924;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 1347.571,1323.8556 l 0,-171.0209"
|
||||
id="path8856-1-5-7-7-2-9" />
|
||||
<path
|
||||
sodipodi:nodetypes="cc"
|
||||
style="fill:none;stroke:#777777;stroke-width:14.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0"
|
||||
stroke-miterlimit="4"
|
||||
d="m 1308.744,1592 c 5.97,64.9 -57.0596,195.8293 -232.2275,97.9523"
|
||||
id="path21749" />
|
||||
<rect
|
||||
rx="11.5"
|
||||
id="rect8853-6-8-6-6"
|
||||
style="color:#000000;fill:url(#linearGradient27052);fill-rule:nonzero;stroke:#000000;stroke-width:5.76999998;stroke-miterlimit:4;stroke-dasharray:none;enable-background:accumulate"
|
||||
ry="11.5"
|
||||
height="272"
|
||||
width="237"
|
||||
stroke-miterlimit="4"
|
||||
y="1320"
|
||||
x="1250" />
|
||||
<g
|
||||
style="font-style:normal;font-weight:normal;font-size:100px;line-height:125%;font-family:Sans;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000"
|
||||
id="text4849-5-9-2"
|
||||
transform="matrix(-1,0,0,-1,2737,2914.5)">
|
||||
<path
|
||||
d="m 1337.2402,1484.8574 l 0,3.8477 q -2.2461,-1.0742 -4.2382,-1.6016 q -1.9922,-0.5273 -3.8477,-0.5273 q -3.2227,0 -4.9805,1.25 q -1.7383,1.25 -1.7383,3.5547 q 0,1.9336 1.1524,2.9296 q 1.1719,0.9766 4.4141,1.5821 l 2.3828,0.4883 q 4.414,0.8398 6.5039,2.9687 q 2.1093,2.1094 2.1093,5.6641 q 0,4.2383 -2.8515,6.4258 q -2.832,2.1875 -8.3203,2.1875 q -2.0703,0 -4.4141,-0.4688 q -2.3242,-0.4687 -4.8242,-1.3867 l 0,-4.0625 q 2.4023,1.3476 4.707,2.0312 q 2.3047,0.6836 4.5313,0.6836 q 3.3789,0 5.2148,-1.3281 q 1.836,-1.3281 1.836,-3.7891 q 0,-2.1484 -1.3282,-3.3593 q -1.3086,-1.211 -4.3164,-1.8164 l -2.4023,-0.4688 q -4.4141,-0.8789 -6.3867,-2.7539 q -1.9727,-1.875 -1.9727,-5.2148 q 0,-3.8672 2.7148,-6.0938 q 2.7344,-2.2266 7.5196,-2.2266 q 2.0508,0 4.1797,0.3711 q 2.1289,0.3711 4.3554,1.1133 z"
|
||||
style="font-size:40px;text-align:center;text-anchor:middle;fill:#ffffff"
|
||||
id="path21770"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 1358.9785,1499.3887 q 1.2695,0.4297 2.461,1.8359 q 1.2109,1.4063 2.4218,3.8672 l 4.0039,7.9687 l -4.2382,0 l -3.7305,-7.4804 q -1.4453,-2.9297 -2.8125,-3.8867 q -1.3477,-0.9571 -3.6914,-0.9571 l -4.2969,0 l 0,12.3242 l -3.9453,0 l 0,-29.1601 l 8.9062,0 q 5,0 7.461,2.0898 q 2.4609,2.0899 2.4609,6.3086 q 0,2.7539 -1.289,4.5703 q -1.2696,1.8164 -3.711,2.5196 z m -9.8828,-12.2461 l 0,10.3515 l 4.9609,0 q 2.8516,0 4.2969,-1.3086 q 1.4649,-1.3281 1.4649,-3.8867 q 0,-2.5586 -1.4649,-3.8476 q -1.4453,-1.3086 -4.2969,-1.3086 l -4.9609,0 z"
|
||||
style="font-size:40px;text-align:center;text-anchor:middle;fill:#ffffff"
|
||||
id="path21772"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 1371.5566,1483.9004 l 4.2383,0 l 7.2461,10.8398 l 7.2852,-10.8398 l 4.2383,0 l -9.375,14.0039 l 10,15.1562 l -4.2383,0 l -8.2032,-12.4023 l -8.2617,12.4023 l -4.2578,0 l 10.4102,-15.5664 l -9.0821,-13.5937 z"
|
||||
style="font-size:40px;text-align:center;text-anchor:middle;fill:#ffffff"
|
||||
id="path21774"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 1400.3848,1483.9004 l 3.9453,0 l 0,25.8398 l 14.1992,0 l 0,3.3203 l -18.1445,0 l 0,-29.1601 z"
|
||||
style="font-size:40px;text-align:center;text-anchor:middle;fill:#ffffff"
|
||||
id="path21776"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<g
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:37.7733078px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Sans Bold';letter-spacing:0px;word-spacing:0px;display:inline;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
id="text20525"
|
||||
transform="matrix(-1,0,0,-1,2737.0002,2904.5)">
|
||||
<path
|
||||
d="m 1264.1993,1413.0389 l 0,-27.0389 l 8.1707,0 l 4.9061,18.444 l 4.8507,-18.444 l 8.1892,0 l 0,27.0389 l -5.0721,0 l 0,-21.2843 l -5.3672,21.2843 l -5.2566,0 l -5.3487,-21.2843 l 0,21.2843 l -5.0721,0 z"
|
||||
id="path21779"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 1295.7385,1386 l 5.4594,0 l 0,14.6446 q 0,3.4859 0.2029,4.5188 q 0.3505,1.6599 1.66,2.6743 q 1.328,0.996 3.615,0.996 q 2.324,0 3.5044,-0.9406 q 1.1804,-0.9591 1.4202,-2.3424 q 0.2397,-1.3833 0.2397,-4.5926 l 0,-14.9581 l 5.4595,0 l 0,14.2019 q 0,4.8692 -0.4427,6.8796 q -0.4427,2.0104 -1.6415,3.3937 q -1.1804,1.3833 -3.1724,2.2133 q -1.9919,0.8115 -5.2012,0.8115 q -3.8732,0 -5.8836,-0.8853 q -1.992,-0.9037 -3.154,-2.3239 q -1.1619,-1.4386 -1.5308,-3.0064 q -0.5349,-2.3239 -0.5349,-6.8612 l 0,-14.4232 z"
|
||||
id="path21781"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 1323.2201,1413.0389 l 0,-26.8175 l 5.4594,0 l 0,22.2619 l 13.5748,0 l 0,4.5556 l -19.0342,0 z"
|
||||
id="path21783"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 1349.4474,1413.0389 l 0,-22.4647 l -8.0231,0 l 0,-4.5742 l 21.4873,0 l 0,4.5742 l -8.0047,0 l 0,22.4647 l -5.4595,0 z"
|
||||
id="path21785"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 1366.213,1413.0389 l 0,-27.0389 l 5.4595,0 l 0,27.0389 l -5.4595,0 z"
|
||||
id="path21787"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 1376.8552,1413.0389 l 0,-27.0389 l 8.7609,0 q 4.9799,0 6.4923,0.4058 q 2.3239,0.6087 3.8917,2.6559 q 1.5677,2.0289 1.5677,5.2566 q 0,2.4899 -0.9037,4.1868 q -0.9038,1.6968 -2.3055,2.6743 q -1.3833,0.9591 -2.822,1.2727 q -1.955,0.3873 -5.6623,0.3873 l -3.5597,0 l 0,10.1995 l -5.4594,0 z m 5.4594,-22.4647 l 0,7.6727 l 2.988,0 q 3.2277,0 4.3159,-0.4243 q 1.0882,-0.4242 1.6968,-1.3279 q 0.6271,-0.9038 0.6271,-2.1026 q 0,-1.4756 -0.8669,-2.4346 q -0.8668,-0.9591 -2.1948,-1.1989 q -0.9775,-0.1844 -3.9286,-0.1844 l -2.6375,0 z"
|
||||
id="path21789"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 1402.2342,1413.0389 l 0,-26.8175 l 5.4594,0 l 0,22.2619 l 13.5748,0 l 0,4.5556 l -19.0342,0 z"
|
||||
id="path21791"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 1425.1785,1413.0389 l 0,-27.0389 l 20.0486,0 l 0,4.5742 l -14.5892,0 l 0,5.9943 l 13.5748,0 l 0,4.5556 l -13.5748,0 l 0,7.3592 l 15.1057,0 l 0,4.5556 l -20.5651,0 z"
|
||||
id="path21793"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 1447.6617,1413.0389 l 9.2405,-14.1096 L 1448.5286,1386 l 6.3816,0 l 5.4226,8.6872 l 5.3118,-8.6872 l 6.3263,0 l -8.4104,13.1322 l 9.2404,13.9067 l -6.5845,0 l -5.9943,-9.3511 l -6.0128,9.3511 l -6.5476,0 z"
|
||||
id="path21795"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer4"
|
||||
@ -18526,7 +18785,7 @@
|
||||
inkscape:groupmode="layer"
|
||||
id="layer3"
|
||||
inkscape:label="nano-ppm"
|
||||
style="display:inline">
|
||||
style="display:none">
|
||||
<g
|
||||
id="nano-ppm"
|
||||
transform="translate(-4,0)">
|
||||
@ -18640,44 +18899,44 @@
|
||||
id="text20057">
|
||||
<path
|
||||
d="m 442.45671,358.54608 l 0,-18.587 l 3.75291,0 l 0,18.587 l -3.75291,0 z"
|
||||
style=""
|
||||
id="path21266" />
|
||||
id="path21266"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 461.99462,358.54608 l -3.56272,0 l 0,-6.87186 q 0,-2.18074 -0.22822,-2.81468 q -0.22821,-0.64662 -0.74804,-1.00162 q -0.50715,-0.355 -1.22984,-0.355 q -0.92554,0 -1.66091,0.50715 q -0.73536,0.50714 -1.0143,1.34394 q -0.26625,0.8368 -0.26625,3.09361 l 0,6.09846 l -3.56272,0 l 0,-13.4648 l 3.30915,0 l 0,1.97788 q 1.76234,-2.28217 4.43755,-2.28217 q 1.17912,0 2.15538,0.43108 q 0.97626,0.4184 1.47073,1.07769 q 0.50715,0.65929 0.69733,1.49609 q 0.20286,0.83679 0.20286,2.39628 l 0,8.36795 z"
|
||||
style=""
|
||||
id="path21268" />
|
||||
id="path21268"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 465.51931,345.08128 l 3.32182,0 l 0,1.97788 q 0.64662,-1.0143 1.74966,-1.64823 q 1.10305,-0.63394 2.447,-0.63394 q 2.34556,0 3.98111,1.83842 q 1.63556,1.83841 1.63556,5.1222 q 0,3.37254 -1.64823,5.24899 q -1.64824,1.86377 -3.9938,1.86377 q -1.11573,0 -2.0286,-0.44375 q -0.90019,-0.44376 -1.9018,-1.52145 l 0,6.78311 l -3.56272,0 l 0,-18.587 z m 3.52468,6.50418 q 0,2.2695 0.90019,3.35987 q 0.90019,1.07769 2.19342,1.07769 q 1.24251,0 2.06663,-0.98894 q 0.82412,-1.00162 0.82412,-3.27111 q 0,-2.11735 -0.84948,-3.14433 q -0.84947,-1.02697 -2.10467,-1.02697 q -1.3059,0 -2.16806,1.0143 q -0.86215,1.00161 -0.86215,2.97949 z"
|
||||
style=""
|
||||
id="path21270" />
|
||||
id="path21270"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 490.35692,358.54608 l 0,-2.01591 q -0.73537,1.07769 -1.93984,1.69894 q -1.1918,0.62126 -2.52307,0.62126 q -1.35662,0 -2.43431,-0.5959 q -1.0777,-0.5959 -1.55949,-1.67359 q -0.48179,-1.07769 -0.48179,-2.9795 l 0,-8.5201 l 3.56272,0 l 0,6.18722 q 0,2.84003 0.19018,3.48664 q 0.20286,0.63394 0.72269,1.0143 q 0.51983,0.36768 1.31859,0.36768 q 0.91286,0 1.63555,-0.49447 q 0.72269,-0.50714 0.98894,-1.24251 q 0.26625,-0.74804 0.26625,-3.63879 l 0,-5.68007 l 3.56273,0 l 0,13.4648 l -3.30915,0 z"
|
||||
style=""
|
||||
id="path21272" />
|
||||
id="path21272"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 503.54279,345.08128 l 0,2.84003 l -2.43432,0 l 0,5.4265 q 0,1.64823 0.0634,1.92716 q 0.0761,0.26625 0.31696,0.44376 q 0.25358,0.1775 0.60858,0.1775 q 0.49447,0 1.4327,-0.34233 l 0.30429,2.76396 q -1.24252,0.53251 -2.81468,0.53251 q -0.96358,0 -1.73698,-0.31697 q -0.7734,-0.32964 -1.14109,-0.83679 q -0.355,-0.51983 -0.49447,-1.39466 q -0.11411,-0.62126 -0.11411,-2.51039 l 0,-5.87025 l -1.63555,0 l 0,-2.84003 l 1.63555,0 l 0,-2.67521 l 3.5754,-2.07931 l 0,4.75452 l 2.43432,0 z"
|
||||
style=""
|
||||
id="path21274" />
|
||||
id="path21274"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 524.51339,355.23694 l 0,3.30914 l -12.48854,0 q 0.20286,-1.87645 1.21716,-3.55004 q 1.01429,-1.68627 4.00647,-4.46291 q 2.40896,-2.24413 2.95414,-3.04289 q 0.73537,-1.10305 0.73537,-2.18074 q 0,-1.1918 -0.64661,-1.82574 q -0.63394,-0.64661 -1.76235,-0.64661 q -1.11572,0 -1.77502,0.67197 q -0.65929,0.67197 -0.76072,2.23145 l -3.55004,-0.355 q 0.31697,-2.94146 1.99056,-4.22201 q 1.67359,-1.28055 4.18397,-1.28055 q 2.75129,0 4.32345,1.48341 q 1.57216,1.48341 1.57216,3.6895 q 0,1.2552 -0.45644,2.39628 q -0.44375,1.12841 -1.42001,2.37092 q -0.64662,0.82412 -2.33289,2.37092 q -1.68627,1.54681 -2.1427,2.05396 q -0.44376,0.50714 -0.72269,0.98894 l 7.07473,0 z"
|
||||
style=""
|
||||
id="path21276" />
|
||||
id="path21276"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 454.10846,391.0036 l 0,-18.587 l 6.02239,0 q 3.42325,0 4.46291,0.27893 q 1.59752,0.4184 2.67521,1.82574 q 1.07769,1.39466 1.07769,3.61343 q 0,1.71163 -0.62126,2.87807 q -0.62125,1.16645 -1.58484,1.83842 q -0.9509,0.65929 -1.93984,0.87483 q -1.34394,0.26625 -3.89237,0.26625 l -2.44699,0 l 0,7.01133 l -3.7529,0 z m 3.7529,-15.44268 l 0,5.27435 l 2.05395,0 q 2.21878,0 2.96682,-0.29161 q 0.74805,-0.29161 1.16645,-0.91287 q 0.43107,-0.62125 0.43107,-1.44537 q 0,-1.0143 -0.5959,-1.67359 q -0.5959,-0.6593 -1.50877,-0.82412 q -0.67197,-0.12679 -2.70056,-0.12679 l -1.81306,0 z"
|
||||
style=""
|
||||
id="path21278" />
|
||||
id="path21278"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 471.42759,375.71307 l 0,-3.29647 l 3.56272,0 l 0,3.29647 l -3.56272,0 z m 0,15.29053 l 0,-13.4648 l 3.56272,0 l 0,13.4648 l -3.56272,0 z"
|
||||
style=""
|
||||
id="path21280" />
|
||||
id="path21280"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 490.87675,391.0036 l -3.56272,0 l 0,-6.87186 q 0,-2.18074 -0.22822,-2.81468 q -0.22822,-0.64661 -0.74805,-1.00162 q -0.50714,-0.355 -1.22983,-0.355 q -0.92555,0 -1.66091,0.50715 q -0.73537,0.50715 -1.0143,1.34394 q -0.26625,0.8368 -0.26625,3.09361 l 0,6.09846 l -3.56272,0 l 0,-13.4648 l 3.30914,0 l 0,1.97788 q 1.76234,-2.28217 4.43755,-2.28217 q 1.17912,0 2.15539,0.43108 q 0.97626,0.4184 1.47073,1.07769 q 0.50715,0.6593 0.69733,1.49609 q 0.20286,0.8368 0.20286,2.39628 l 0,8.36795 z"
|
||||
style=""
|
||||
id="path21282" />
|
||||
id="path21282"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 507.92962,391.0036 l 0,-3.74022 l -7.60723,0 l 0,-3.11896 l 8.06367,-11.80389 l 2.99217,0 l 0,11.79121 l 2.30753,0 l 0,3.13164 l -2.30753,0 l 0,3.74022 l -3.44861,0 z m 0,-6.87186 l 0,-6.35204 l -4.27273,6.35204 l 4.27273,0 z"
|
||||
style=""
|
||||
id="path21284" />
|
||||
id="path21284"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
@ -20060,7 +20319,7 @@
|
||||
inkscape:groupmode="layer"
|
||||
id="layer36"
|
||||
inkscape:label="revo-OPGPS-v9"
|
||||
style="display:none"
|
||||
style="display:inline"
|
||||
sodipodi:insensitive="true">
|
||||
<g
|
||||
id="revo-OPGPS-v9">
|
||||
@ -20406,9 +20665,9 @@
|
||||
<polygon
|
||||
transform="matrix(1.5711089,0,0,1.5372108,235.33403,522.2062)"
|
||||
id="polygon8706-1"
|
||||
points="186.083,4.74 191.036,13.319 186.194,11.031 181.129,13.319 " />
|
||||
points="186.194,11.031 181.129,13.319 186.083,4.74 191.036,13.319 " />
|
||||
<polygon
|
||||
points="181.129,13.319 186.083,4.74 191.036,13.319 186.194,11.031 "
|
||||
points="191.036,13.319 186.194,11.031 181.129,13.319 186.083,4.74 "
|
||||
id="polygon10148"
|
||||
transform="matrix(1.5711089,0,0,1.5372108,357.19879,522.2062)" />
|
||||
<g
|
||||
@ -21674,7 +21933,7 @@
|
||||
inkscape:groupmode="layer"
|
||||
id="layer39"
|
||||
inkscape:label="nano-OPGPS-v9"
|
||||
style="display:inline"
|
||||
style="display:none"
|
||||
sodipodi:insensitive="true">
|
||||
<g
|
||||
id="nano-OPGPS-v9">
|
||||
@ -21994,13 +22253,13 @@
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cscsscssscssccscccccscsssscscssscsssscssssssssscsscsscccccscscscssscccsccssssssccsccsccssssccccccccccsccccsccscssssssssccssssscsccscsscsscccsccsscccsscscsssccccccscccsccssscscsscssscssscssscsscssccsscccsscssscsssssscsssssssssssssscscsccsssscsssssscccsscccsssssssscssscssssscsssscccssccsccscssscccsssssssssccssssccsscsscssssssssscccsccssscccssscscccscsssscssscccssssssscccssssscsssscccccsssscsscscsssccccccsccs" />
|
||||
<polygon
|
||||
points="181.129,13.319 186.083,4.74 191.036,13.319 186.194,11.031 "
|
||||
points="191.036,13.319 186.194,11.031 181.129,13.319 186.083,4.74 "
|
||||
id="polygon8706-1-5"
|
||||
transform="matrix(1.5711089,0,0,1.5372108,223.37514,520.91932)" />
|
||||
<polygon
|
||||
transform="matrix(1.5711089,0,0,1.5372108,345.23991,520.91932)"
|
||||
id="polygon10148-2"
|
||||
points="186.194,11.031 181.129,13.319 186.083,4.74 191.036,13.319 " />
|
||||
points="186.083,4.74 191.036,13.319 186.194,11.031 181.129,13.319 " />
|
||||
<g
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:condensed;font-size:12px;line-height:125%;font-family:'Arial Narrow';-inkscape-font-specification:'Arial Narrow Bold Condensed';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none"
|
||||
id="text10150-4"
|
||||
@ -28759,7 +29018,7 @@
|
||||
inkscape:groupmode="layer"
|
||||
id="layer15"
|
||||
inkscape:label="revo"
|
||||
style="display:none">
|
||||
style="display:inline">
|
||||
<g
|
||||
style="display:inline"
|
||||
transform="translate(-1.4348189,-1.0188297)"
|
||||
@ -32045,10 +32304,10 @@
|
||||
cx="151.73199" />
|
||||
<polygon
|
||||
id="polygon8706"
|
||||
points="186.083,4.74 191.036,13.319 186.194,11.031 181.129,13.319 " />
|
||||
points="186.194,11.031 181.129,13.319 186.083,4.74 191.036,13.319 " />
|
||||
<polygon
|
||||
id="polygon8708"
|
||||
points="36.083,4.74 41.036,13.319 36.194,11.031 31.129,13.319 " />
|
||||
points="36.194,11.031 31.129,13.319 36.083,4.74 41.036,13.319 " />
|
||||
<g
|
||||
id="g8710">
|
||||
<circle
|
||||
@ -32230,7 +32489,7 @@
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path29449-6"
|
||||
d="m 1399.5228,690.81375 -1.6886,0.18624 c -0.041,-0.34765 -0.149,-0.60425 -0.3228,-0.76981 -0.1739,-0.16555 -0.3994,-0.24832 -0.6767,-0.24833 -0.3684,10e-6 -0.6809,0.16556 -0.9375,0.49665 -0.2524,0.33112 -0.4118,1.02022 -0.478,2.06733 0.4346,-0.5132 0.9747,-0.76981 1.6203,-0.76981 0.7285,0 1.3514,0.2773 1.8687,0.8319 0.5215,0.5546 0.7822,1.27061 0.7822,2.14803 0,0.93123 -0.2731,1.67829 -0.8194,2.24116 -0.5464,0.56288 -1.2479,0.84431 -2.1046,0.84431 -0.9188,0 -1.6742,-0.35593 -2.266,-1.0678 -0.5919,-0.71602 -0.8878,-1.88729 -0.8878,-3.51384 0,-1.66793 0.3084,-2.87025 0.925,-3.60697 0.6167,-0.73669 1.4176,-1.10505 2.4026,-1.10505 0.6912,0 1.2623,0.19453 1.7135,0.58357 0.4552,0.38491 0.745,0.94572 0.8691,1.68242 m -3.9546,3.80562 c 0,0.56702 0.1304,1.00573 0.3911,1.31614 0.2608,0.30627 0.5588,0.45941 0.894,0.45941 0.3228,0 0.5918,-0.12624 0.8071,-0.3787 0.2152,-0.25247 0.3228,-0.66635 0.3228,-1.24164 0,-0.59185 -0.1159,-1.02435 -0.3477,-1.29752 -0.2317,-0.27729 -0.5215,-0.41594 -0.8691,-0.41595 -0.3353,10e-6 -0.6188,0.13245 -0.8505,0.39733 -0.2318,0.26075 -0.3477,0.64772 -0.3477,1.16093"
|
||||
d="m 1399.5228,690.81375 l -1.6886,0.18624 c -0.041,-0.34765 -0.149,-0.60425 -0.3228,-0.76981 c -0.1739,-0.16555 -0.3994,-0.24832 -0.6767,-0.24833 c -0.3684,10e-6 -0.6809,0.16556 -0.9375,0.49665 c -0.2524,0.33112 -0.4118,1.02022 -0.478,2.06733 c 0.4346,-0.5132 0.9747,-0.76981 1.6203,-0.76981 c 0.7285,0 1.3514,0.2773 1.8687,0.8319 c 0.5215,0.5546 0.7822,1.27061 0.7822,2.14803 c 0,0.93123 -0.2731,1.67829 -0.8194,2.24116 c -0.5464,0.56288 -1.2479,0.84431 -2.1046,0.84431 c -0.9188,0 -1.6742,-0.35593 -2.266,-1.0678 c -0.5919,-0.71602 -0.8878,-1.88729 -0.8878,-3.51384 c 0,-1.66793 0.3084,-2.87025 0.925,-3.60697 c 0.6167,-0.73669 1.4176,-1.10505 2.4026,-1.10505 c 0.6912,0 1.2623,0.19453 1.7135,0.58357 c 0.4552,0.38491 0.745,0.94572 0.8691,1.68242 m -3.9546,3.80562 c 0,0.56702 0.1304,1.00573 0.3911,1.31614 c 0.2608,0.30627 0.5588,0.45941 0.894,0.45941 c 0.3228,0 0.5918,-0.12624 0.8071,-0.3787 c 0.2152,-0.25247 0.3228,-0.66635 0.3228,-1.24164 c 0,-0.59185 -0.1159,-1.02435 -0.3477,-1.29752 c -0.2317,-0.27729 -0.5215,-0.41594 -0.8691,-0.41595 c -0.3353,10e-6 -0.6188,0.13245 -0.8505,0.39733 c -0.2318,0.26075 -0.3477,0.64772 -0.3477,1.16093"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
@ -32239,7 +32498,7 @@
|
||||
inkscape:groupmode="layer"
|
||||
id="layer18"
|
||||
inkscape:label="nano"
|
||||
style="display:inline">
|
||||
style="display:none">
|
||||
<g
|
||||
id="controller-nano"
|
||||
transform="translate(-726.76021,-465.53821)">
|
||||
@ -32900,7 +33159,7 @@
|
||||
inkscape:transform-center-y="95.699765"
|
||||
inkscape:transform-center-x="-66.090998"
|
||||
transform="matrix(0,-1.0887723,1.065281,0,1247.1905,860.25683)"
|
||||
points="186.194,11.031 181.129,13.319 186.083,4.74 191.036,13.319 "
|
||||
points="186.083,4.74 191.036,13.319 186.194,11.031 181.129,13.319 "
|
||||
id="polygon8706-0" />
|
||||
<g
|
||||
transform="translate(726.6625,-66.912713)"
|
||||
@ -40090,7 +40349,6 @@
|
||||
<g
|
||||
id="g3806-3-8">
|
||||
<circle
|
||||
d="m 586.448,613.99402 c 0,1.51878 -1.23122,2.75 -2.75,2.75 -1.51879,0 -2.75,-1.23122 -2.75,-2.75 0,-1.51878 1.23121,-2.75 2.75,-2.75 1.51878,0 2.75,1.23122 2.75,2.75 z"
|
||||
sodipodi:ry="2.75"
|
||||
sodipodi:rx="2.75"
|
||||
sodipodi:cy="613.99402"
|
||||
|
Before Width: | Height: | Size: 2.5 MiB After Width: | Height: | Size: 2.5 MiB |
@ -96,10 +96,15 @@ int SetupWizard::nextId() const
|
||||
{
|
||||
switch (getControllerType()) {
|
||||
case CONTROLLER_REVO:
|
||||
case CONTROLLER_NANO:
|
||||
case CONTROLLER_DISCOVERYF4:
|
||||
return PAGE_INPUT;
|
||||
|
||||
case CONTROLLER_NANO:
|
||||
if (isRestartNeeded()) {
|
||||
reboot();
|
||||
}
|
||||
return PAGE_INPUT;
|
||||
|
||||
case CONTROLLER_OPLINK:
|
||||
default:
|
||||
return PAGE_NOTYETIMPLEMENTED;
|
||||
|
@ -159,6 +159,9 @@ void VehicleConfigurationHelper::applyHardwareConfiguration()
|
||||
case VehicleConfigurationSource::INPUT_DSM:
|
||||
data.RM_FlexiPort = HwSettings::RM_FLEXIPORT_DSM;
|
||||
break;
|
||||
case VehicleConfigurationSource::INPUT_SRXL:
|
||||
data.RM_FlexiPort = HwSettings::RM_FLEXIPORT_SRXL;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@ -805,6 +808,9 @@ void VehicleConfigurationHelper::applyManualControlDefaults()
|
||||
case VehicleConfigurationSource::INPUT_DSM:
|
||||
channelType = ManualControlSettings::CHANNELGROUPS_DSMFLEXIPORT;
|
||||
break;
|
||||
case VehicleConfigurationSource::INPUT_SRXL:
|
||||
channelType = ManualControlSettings::CHANNELGROUPS_SRXL;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
@ -66,7 +66,7 @@ public:
|
||||
GROUNDVEHICLE_MOTORCYCLE, GROUNDVEHICLE_CAR, GROUNDVEHICLE_DIFFERENTIAL };
|
||||
enum ESC_TYPE { ESC_ONESHOT, ESC_SYNCHED, ESC_RAPID, ESC_STANDARD, ESC_UNKNOWN };
|
||||
enum SERVO_TYPE { SERVO_ANALOG, SERVO_DIGITAL, SERVO_UNKNOWN };
|
||||
enum INPUT_TYPE { INPUT_PWM, INPUT_PPM, INPUT_SBUS, INPUT_DSM, INPUT_UNKNOWN };
|
||||
enum INPUT_TYPE { INPUT_PWM, INPUT_PPM, INPUT_SBUS, INPUT_DSM, INPUT_SRXL, INPUT_UNKNOWN };
|
||||
enum AIRSPEED_TYPE { AIRSPEED_ESTIMATE, AIRSPEED_EAGLETREE, AIRSPEED_MS4525, AIRSPEED_DISABLED };
|
||||
enum GPS_TYPE { GPS_PLATINUM, GPS_UBX, GPS_NMEA, GPS_DISABLED };
|
||||
enum RADIO_SETTING { RADIO_TELEMETRY, RADIO_DISABLED };
|
||||
|
@ -54,5 +54,7 @@
|
||||
<file>resources/connected.png</file>
|
||||
<file>resources/bttn-oneshot-dwn.png</file>
|
||||
<file>resources/bttn-oneshot-up.png</file>
|
||||
<file>resources/bttn-srxl-down.png</file>
|
||||
<file>resources/bttn-srxl-up.png</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
@ -1008,6 +1008,14 @@ void UploaderGadgetWidget::startAutoUpdate()
|
||||
void UploaderGadgetWidget::startAutoUpdateErase()
|
||||
{
|
||||
startAutoUpdate(true);
|
||||
|
||||
ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance();
|
||||
UAVObjectUtilManager *utilMngr = pm->getObject<UAVObjectUtilManager>();
|
||||
int id = utilMngr->getBoardModel();
|
||||
|
||||
if (id == 0x905) {
|
||||
systemReset();
|
||||
}
|
||||
}
|
||||
|
||||
void UploaderGadgetWidget::startAutoUpdate(bool erase)
|
||||
|
@ -5,8 +5,8 @@
|
||||
<field name="ThrustExp" units="" type="uint8" elements="1" defaultvalue="128" />
|
||||
<field name="ThrustRate" units="m/s" type="float" elements="1" defaultvalue="5" />
|
||||
<field name="ThrustLimits" units="" type="float" elementnames="Min,Neutral,Max" defaultvalue="0.2, 0.5, 0.9"/>
|
||||
<field name="VerticalPosP" units="(m/s)/m" type="float" elements="1" defaultvalue="0.3"/>
|
||||
<field name="VerticalVelPID" units="(m/s^2)/(m/s)" type="float" elementnames="Kp,Ki,Kd,Beta" defaultvalue="0.15, 0.25, 0.005, 0.95"/>
|
||||
<field name="VerticalPosP" units="(m/s)/m" type="float" elements="1" defaultvalue="0.7"/>
|
||||
<field name="VerticalVelPID" units="(m/s^2)/(m/s)" type="float" elementnames="Kp,Ki,Kd,Beta" defaultvalue="0.3, 1.0, 0.0001, 0.9"/>
|
||||
<access gcs="readwrite" flight="readwrite"/>
|
||||
<telemetrygcs acked="true" updatemode="onchange" period="0"/>
|
||||
<telemetryflight acked="true" updatemode="onchange" period="0"/>
|
||||
|
@ -1,10 +1,6 @@
|
||||
<xml>
|
||||
<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+OneShot,PWM+NoOneShot,PPM+NoOneShot,PPM+PWM+NoOneShot,PPM+Outputs+NoOneShot,PPM_PIN8+OneShot, Outputs+OneShot" defaultvalue="PWM+NoOneShot"/>
|
||||
<field name="CC_MainPort" units="function" type="enum" elements="1" options="Disabled,Telemetry,GPS,S.Bus,DSM,DebugConsole,ComBridge,OsdHk" defaultvalue="Telemetry"/>
|
||||
<field name="CC_FlexiPort" units="function" type="enum" elements="1" options="Disabled,Telemetry,GPS,I2C,PPM,DSM,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,DSM,ComAux,ComBridge,OsdHk" defaultvalue="Disabled"/>
|
||||
<field name="RV_AuxSBusPort" units="function" type="enum" elements="1" options="Disabled,S.Bus,DSM,ComAux,ComBridge,OsdHk" defaultvalue="Disabled"/>
|
||||
@ -28,9 +24,7 @@
|
||||
<field name="ADCRouting" units="" type="enum" elementnames="adc0,adc1,adc2,adc3,adc4,adc5,adc6,adc7" options="Disabled,BatteryVoltage,BatteryCurrent,AnalogAirspeed,Generic" defaultvalue="Disabled"/>
|
||||
<field name="DSMxBind" units="" type="uint8" elements="1" defaultvalue="0"/>
|
||||
<field name="WS2811LED_Out" units="" type="enum" elements="1" options="ServoOut1,ServoOut2,ServoOut3,ServoOut4,ServoOut5,ServoOut6,FlexiIOPin3,FlexiIOPin4,Disabled" defaultvalue="Disabled"
|
||||
limits="%0905NE:ServoOut2:ServoOut3:ServoOut4:ServoOut5:ServoOut6:FlexiIOPin3:FlexiIOPin4,\
|
||||
%0401NE:ServoOut1:ServoOut2:ServoOut3:ServoOut4:ServoOut5:ServoOut6:FlexiIOPin3:FlexiIOPin4,\
|
||||
%0402NE:ServoOut1:ServoOut2:ServoOut3:ServoOut4:ServoOut5:ServoOut6:FlexiIOPin3:FlexiIOPin4;"
|
||||
limits="%0905NE:ServoOut2:ServoOut3:ServoOut4:ServoOut5:ServoOut6:FlexiIOPin3:FlexiIOPin4;"
|
||||
/>
|
||||
|
||||
<access gcs="readwrite" flight="readwrite"/>
|
||||
|
@ -1,7 +1,7 @@
|
||||
<xml>
|
||||
<object name="StatusVtolAutoTakeoff" singleinstance="true" settings="false" category="Navigation">
|
||||
<description>Status of a AutoTakeoff autopilot</description>
|
||||
<field name="State" units="" type="enum" elements="1" options="Inactive,CheckState,SlowStart,ThrustUp,Takeoff,Hold,ThrustDown,ThrustOff,Disarmed, Abort" default="0"/>
|
||||
<field name="State" units="" type="enum" elements="1" options="Inactive,CheckState,SlowStart,ThrustUp,Takeoff,Hold,ThrustDown,ThrustOff,Disarmed" default="0"/>
|
||||
<field name="AltitudeAtState" units="m" type="float" elements="10" default="0"/>
|
||||
<field name="StateExitReason" units="" type="enum" elements="10" options="None,ArrivedAtAlt,ZeroThrust,PositionError,Timeout" default="0"/>
|
||||
<field name="AltitudeState" units="" type="enum" elements="1" options="High,Low" default="0"/>
|
||||
|
@ -2,7 +2,7 @@
|
||||
<object name="StatusVtolLand" singleinstance="true" settings="false" category="Navigation">
|
||||
<description>Status of a Vtol landing sequence</description>
|
||||
<field name="State" units="" type="enum" elements="1" options="Inactive,InitAltHold,WtgForDescentRate,AtDescentRate,WtgForGroundEffect,
|
||||
GroundEffect,ThrustDown,ThrustOff,Disarmed, Abort" default="0"/>
|
||||
GroundEffect,ThrustDown,ThrustOff,Disarmed" default="0"/>
|
||||
<field name="AltitudeAtState" units="m" type="float" elements="10" default="0"/>
|
||||
<field name="StateExitReason" units="" type="enum" elements="10" options="None,DescentRateOk,OnGround,BounceVelocity,BounceAccel,LowDescentRate,ZeroThrust,PositionError,Timeout" default="0"/>
|
||||
<field name="targetDescentRate" units="m" type="float" elements="1"/>
|
||||
|
@ -18,14 +18,15 @@
|
||||
<field name="EmergencyFallbackAttitude" units="deg" type="float" elementnames="Roll,Pitch" defaultvalue="0,-20.0"/>
|
||||
<field name="EmergencyFallbackYawRate" units="(deg/s)/deg" type="float" elementnames="kP,Max" defaultvalue="2.0, 30.0"/>
|
||||
<field name="MaxRollPitch" units="deg" type="float" elements="1" defaultvalue="25"/>
|
||||
<field name="VelocityRoamMaxRollPitch" units="deg" type="float" elements="1" defaultvalue="20"/>
|
||||
<field name="UpdatePeriod" units="ms" type="uint16" elements="1" defaultvalue="50"/>
|
||||
<field name="UpdatePeriod" units="ms" type="uint16" elements="1" defaultvalue="20"/>
|
||||
<field name="BrakeRate" units="m/s2" type="float" elements="1" defaultvalue="2.5"/>
|
||||
<field name="BrakeMaxPitch" units="deg" type="float" elements="1" defaultvalue="25"/>
|
||||
<field name="BrakeHorizontalVelPID" units="deg/(m/s)" type="float" elementnames="Kp,Ki,Kd,Beta" defaultvalue="18.0, 0.0, 0.001, 0.95"/>
|
||||
<field name="BrakeVelocityFeedforward" units="deg/(m/s)" type="float" elements="1" defaultvalue="0"/>
|
||||
<field name="LandVerticalVelPID" units="" type="float" elementnames="Kp,Ki,Kd,Beta" defaultvalue="0.42, 3.0, 0.02, 0.95"/>
|
||||
<field name="AutoTakeoffVerticalVelPID" units="" type="float" elementnames="Kp,Ki,Kd,Beta" defaultvalue="0.42, 3.0, 0.02, 0.95"/>
|
||||
<field name="VelocityRoamMaxRollPitch" units="deg" type="float" elements="1" defaultvalue="20"/>
|
||||
<field name="VelocityRoamHorizontalVelPID" units="deg/(m/s)" type="float" elementnames="Kp,Ki,Kd,Beta" defaultvalue="12.0, 0.5, 0.001, 0.95"/>
|
||||
<access gcs="readwrite" flight="readwrite"/>
|
||||
<telemetrygcs acked="true" updatemode="onchange" period="0"/>
|
||||
<telemetryflight acked="true" updatemode="onchange" period="0"/>
|
||||
|
Loading…
Reference in New Issue
Block a user