1
0
mirror of https://bitbucket.org/librepilot/librepilot.git synced 2024-12-02 10:24:11 +01:00

Merge remote-tracking branch 'origin/next' into laurent/OP-1337_French_translations_updates

This commit is contained in:
Laurent Lalanne 2014-10-12 20:54:14 +02:00
commit 0ef448cd1b
38 changed files with 11464 additions and 11048 deletions

View File

@ -120,4 +120,19 @@ static inline float y_on_curve(float x, const pointf points[], int num_points)
return y_on_line(x, &points[end_point - 1], &points[end_point]);
}
/**
* Ultrafast pow() aproximation needed for expo
* Based on Algorithm by Martin Ankerl
*/
static inline float fastPow(float a, float b)
{
union {
double d;
int32_t x[2];
} u = { (double)a };
u.x[1] = (int32_t)(b * (u.x[1] - 1072632447) + 1072632447);
u.x[0] = 0;
return (float)u.d;
}
#endif /* MATHMISC_H */

View File

@ -89,9 +89,12 @@ float pid_apply_setpoint(struct pid *pid, const pid_scaler *scaler, const float
float diff = ((deriv_gamma * setpoint - measured) - pid->lastErr);
pid->lastErr = (deriv_gamma * setpoint - measured);
if (pid->d > 0.0f && dT > 0.0f) {
// low pass filter derivative term. below formula is the same as
// dterm = (1-alpha)*pid->lastDer + alpha * (...)/dT
// with alpha = dT/(deriv_tau+dT)
dterm = pid->lastDer + dT / (dT + deriv_tau) * ((scaler->d * diff * pid->d / dT) - pid->lastDer);
pid->lastDer = dterm; // ^ set constant to 1/(2*pi*f_cutoff)
} // 7.9577e-3 means 20 Hz f_cutoff
pid->lastDer = dterm;
}
return (err * scaler->p * pid->p) + pid->iAccumulator / 1000.0f + dterm;
}

View File

@ -99,6 +99,7 @@ void takeOffLocationHandlerInit();
((int)FLIGHTMODESETTINGS_STABILIZATION1SETTINGS_AXISLOCK == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_AXISLOCK) && \
((int)FLIGHTMODESETTINGS_STABILIZATION1SETTINGS_WEAKLEVELING == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_WEAKLEVELING) && \
((int)FLIGHTMODESETTINGS_STABILIZATION1SETTINGS_VIRTUALBAR == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_VIRTUALBAR) && \
((int)FLIGHTMODESETTINGS_STABILIZATION1SETTINGS_ACRO == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_ACRO) && \
((int)FLIGHTMODESETTINGS_STABILIZATION1SETTINGS_RATTITUDE == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_RATTITUDE) && \
((int)FLIGHTMODESETTINGS_STABILIZATION1SETTINGS_RELAYRATE == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_RELAYRATE) && \
((int)FLIGHTMODESETTINGS_STABILIZATION1SETTINGS_RELAYATTITUDE == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_RELAYATTITUDE) && \
@ -116,6 +117,7 @@ void takeOffLocationHandlerInit();
((int)FLIGHTMODESETTINGS_STABILIZATION2SETTINGS_AXISLOCK == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_AXISLOCK) && \
((int)FLIGHTMODESETTINGS_STABILIZATION2SETTINGS_WEAKLEVELING == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_WEAKLEVELING) && \
((int)FLIGHTMODESETTINGS_STABILIZATION2SETTINGS_VIRTUALBAR == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_VIRTUALBAR) && \
((int)FLIGHTMODESETTINGS_STABILIZATION2SETTINGS_ACRO == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_ACRO) && \
((int)FLIGHTMODESETTINGS_STABILIZATION2SETTINGS_RATTITUDE == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_RATTITUDE) && \
((int)FLIGHTMODESETTINGS_STABILIZATION2SETTINGS_RELAYRATE == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_RELAYRATE) && \
((int)FLIGHTMODESETTINGS_STABILIZATION2SETTINGS_RELAYATTITUDE == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_RELAYATTITUDE) && \
@ -133,6 +135,7 @@ void takeOffLocationHandlerInit();
((int)FLIGHTMODESETTINGS_STABILIZATION3SETTINGS_AXISLOCK == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_AXISLOCK) && \
((int)FLIGHTMODESETTINGS_STABILIZATION3SETTINGS_WEAKLEVELING == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_WEAKLEVELING) && \
((int)FLIGHTMODESETTINGS_STABILIZATION3SETTINGS_VIRTUALBAR == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_VIRTUALBAR) && \
((int)FLIGHTMODESETTINGS_STABILIZATION3SETTINGS_ACRO == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_ACRO) && \
((int)FLIGHTMODESETTINGS_STABILIZATION3SETTINGS_RATTITUDE == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_RATTITUDE) && \
((int)FLIGHTMODESETTINGS_STABILIZATION3SETTINGS_RELAYRATE == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_RELAYRATE) && \
((int)FLIGHTMODESETTINGS_STABILIZATION3SETTINGS_RELAYATTITUDE == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_RELAYATTITUDE) && \
@ -150,6 +153,7 @@ void takeOffLocationHandlerInit();
((int)FLIGHTMODESETTINGS_STABILIZATION4SETTINGS_AXISLOCK == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_AXISLOCK) && \
((int)FLIGHTMODESETTINGS_STABILIZATION4SETTINGS_WEAKLEVELING == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_WEAKLEVELING) && \
((int)FLIGHTMODESETTINGS_STABILIZATION4SETTINGS_VIRTUALBAR == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_VIRTUALBAR) && \
((int)FLIGHTMODESETTINGS_STABILIZATION4SETTINGS_ACRO == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_ACRO) && \
((int)FLIGHTMODESETTINGS_STABILIZATION4SETTINGS_RATTITUDE == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_RATTITUDE) && \
((int)FLIGHTMODESETTINGS_STABILIZATION4SETTINGS_RELAYRATE == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_RELAYRATE) && \
((int)FLIGHTMODESETTINGS_STABILIZATION4SETTINGS_RELAYATTITUDE == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_RELAYATTITUDE) && \
@ -167,6 +171,7 @@ void takeOffLocationHandlerInit();
((int)FLIGHTMODESETTINGS_STABILIZATION5SETTINGS_AXISLOCK == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_AXISLOCK) && \
((int)FLIGHTMODESETTINGS_STABILIZATION5SETTINGS_WEAKLEVELING == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_WEAKLEVELING) && \
((int)FLIGHTMODESETTINGS_STABILIZATION5SETTINGS_VIRTUALBAR == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_VIRTUALBAR) && \
((int)FLIGHTMODESETTINGS_STABILIZATION5SETTINGS_ACRO == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_ACRO) && \
((int)FLIGHTMODESETTINGS_STABILIZATION5SETTINGS_RATTITUDE == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_RATTITUDE) && \
((int)FLIGHTMODESETTINGS_STABILIZATION5SETTINGS_RELAYRATE == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_RELAYRATE) && \
((int)FLIGHTMODESETTINGS_STABILIZATION5SETTINGS_RELAYATTITUDE == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_RELAYATTITUDE) && \
@ -184,6 +189,7 @@ void takeOffLocationHandlerInit();
((int)FLIGHTMODESETTINGS_STABILIZATION6SETTINGS_AXISLOCK == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_AXISLOCK) && \
((int)FLIGHTMODESETTINGS_STABILIZATION6SETTINGS_WEAKLEVELING == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_WEAKLEVELING) && \
((int)FLIGHTMODESETTINGS_STABILIZATION6SETTINGS_VIRTUALBAR == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_VIRTUALBAR) && \
((int)FLIGHTMODESETTINGS_STABILIZATION6SETTINGS_ACRO == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_ACRO) && \
((int)FLIGHTMODESETTINGS_STABILIZATION6SETTINGS_RATTITUDE == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_RATTITUDE) && \
((int)FLIGHTMODESETTINGS_STABILIZATION6SETTINGS_RELAYRATE == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_RELAYRATE) && \
((int)FLIGHTMODESETTINGS_STABILIZATION6SETTINGS_RELAYATTITUDE == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_RELAYATTITUDE) && \

View File

@ -29,6 +29,7 @@
*/
#include "inc/manualcontrol.h"
#include <mathmisc.h>
#include <manualcontrolcommand.h>
#include <stabilizationdesired.h>
#include <flightmodesettings.h>
@ -39,6 +40,28 @@
// Private types
// Private functions
static float applyExpo(float value, float expo);
static float applyExpo(float value, float expo)
{
// note: fastPow makes a small error, therefore result needs to be bound
float exp = boundf(fastPow(1.00695f, expo), 0.5f, 2.0f);
// magic number scales expo
// so that
// expo=100 yields value**10
// expo=0 yields value**1
// expo=-100 yields value**(1/10)
// (pow(2.0,1/100)~=1.00695)
if (value > 0.0f) {
return boundf(fastPow(value, exp), 0.0f, 1.0f);
} else if (value < -0.0f) {
return boundf(-fastPow(-value, exp), -1.0f, 0.0f);
} else {
return 0.0f;
}
}
/**
@ -64,6 +87,9 @@ void stabilizedHandler(bool newinit)
StabilizationBankData stabSettings;
StabilizationBankGet(&stabSettings);
cmd.Roll = applyExpo(cmd.Roll, stabSettings.StickExpo.Roll);
cmd.Pitch = applyExpo(cmd.Pitch, stabSettings.StickExpo.Pitch);
cmd.Yaw = applyExpo(cmd.Yaw, stabSettings.StickExpo.Yaw);
uint8_t *stab_settings;
FlightStatusData flightStatus;
FlightStatusGet(&flightStatus);
@ -100,6 +126,7 @@ void stabilizedHandler(bool newinit)
(stab_settings[0] == STABILIZATIONDESIRED_STABILIZATIONMODE_ATTITUDE) ? cmd.Roll * stabSettings.RollMax :
(stab_settings[0] == STABILIZATIONDESIRED_STABILIZATIONMODE_AXISLOCK) ? cmd.Roll * stabSettings.ManualRate.Roll :
(stab_settings[0] == STABILIZATIONDESIRED_STABILIZATIONMODE_VIRTUALBAR) ? cmd.Roll :
(stab_settings[0] == STABILIZATIONDESIRED_STABILIZATIONMODE_ACRO) ? cmd.Roll * stabSettings.ManualRate.Roll :
(stab_settings[0] == STABILIZATIONDESIRED_STABILIZATIONMODE_RATTITUDE) ? cmd.Roll * stabSettings.RollMax :
(stab_settings[0] == STABILIZATIONDESIRED_STABILIZATIONMODE_RELAYRATE) ? cmd.Roll * stabSettings.ManualRate.Roll :
(stab_settings[0] == STABILIZATIONDESIRED_STABILIZATIONMODE_RELAYATTITUDE) ? cmd.Roll * stabSettings.RollMax :
@ -112,6 +139,7 @@ void stabilizedHandler(bool newinit)
(stab_settings[1] == STABILIZATIONDESIRED_STABILIZATIONMODE_ATTITUDE) ? cmd.Pitch * stabSettings.PitchMax :
(stab_settings[1] == STABILIZATIONDESIRED_STABILIZATIONMODE_AXISLOCK) ? cmd.Pitch * stabSettings.ManualRate.Pitch :
(stab_settings[1] == STABILIZATIONDESIRED_STABILIZATIONMODE_VIRTUALBAR) ? cmd.Pitch :
(stab_settings[1] == STABILIZATIONDESIRED_STABILIZATIONMODE_ACRO) ? cmd.Pitch * stabSettings.ManualRate.Pitch :
(stab_settings[1] == STABILIZATIONDESIRED_STABILIZATIONMODE_RATTITUDE) ? cmd.Pitch * stabSettings.PitchMax :
(stab_settings[1] == STABILIZATIONDESIRED_STABILIZATIONMODE_RELAYRATE) ? cmd.Pitch * stabSettings.ManualRate.Pitch :
(stab_settings[1] == STABILIZATIONDESIRED_STABILIZATIONMODE_RELAYATTITUDE) ? cmd.Pitch * stabSettings.PitchMax :
@ -134,6 +162,7 @@ void stabilizedHandler(bool newinit)
(stab_settings[2] == STABILIZATIONDESIRED_STABILIZATIONMODE_ATTITUDE) ? cmd.Yaw * stabSettings.YawMax :
(stab_settings[2] == STABILIZATIONDESIRED_STABILIZATIONMODE_AXISLOCK) ? cmd.Yaw * stabSettings.ManualRate.Yaw :
(stab_settings[2] == STABILIZATIONDESIRED_STABILIZATIONMODE_VIRTUALBAR) ? cmd.Yaw :
(stab_settings[2] == STABILIZATIONDESIRED_STABILIZATIONMODE_ACRO) ? cmd.Yaw * stabSettings.ManualRate.Yaw :
(stab_settings[2] == STABILIZATIONDESIRED_STABILIZATIONMODE_RATTITUDE) ? cmd.Yaw * stabSettings.YawMax :
(stab_settings[2] == STABILIZATIONDESIRED_STABILIZATIONMODE_RELAYRATE) ? cmd.Yaw * stabSettings.ManualRate.Yaw :
(stab_settings[2] == STABILIZATIONDESIRED_STABILIZATIONMODE_RELAYATTITUDE) ? cmd.Yaw * stabSettings.YawMax :

View File

@ -33,6 +33,7 @@
#include <openpilot.h>
#include <pid.h>
#include <sin_lookup.h>
#include <callbackinfo.h>
#include <ratedesired.h>
#include <actuatordesired.h>
@ -281,6 +282,23 @@ static void stabilizationInnerloopTask()
pid_scaler scaler = create_pid_scaler(t);
actuatorDesiredAxis[t] = pid_apply_setpoint(&stabSettings.innerPids[t], &scaler, rate[t], gyro_filtered[t], dT);
break;
case STABILIZATIONSTATUS_INNERLOOP_ACRO:
{
float stickinput[3];
stickinput[0] = boundf(rate[0] / stabSettings.stabBank.ManualRate.Roll, -1.0f, 1.0f);
stickinput[1] = boundf(rate[1] / stabSettings.stabBank.ManualRate.Pitch, -1.0f, 1.0f);
stickinput[2] = boundf(rate[2] / stabSettings.stabBank.ManualRate.Yaw, -1.0f, 1.0f);
rate[t] = boundf(rate[t],
-StabilizationBankMaximumRateToArray(stabSettings.stabBank.MaximumRate)[t],
StabilizationBankMaximumRateToArray(stabSettings.stabBank.MaximumRate)[t]
);
pid_scaler ascaler = create_pid_scaler(t);
ascaler.i *= boundf(1.0f - (1.5f * fabsf(stickinput[t])), 0.0f, 1.0f); // this prevents Integral from getting too high while controlled manually
float arate = pid_apply_setpoint(&stabSettings.innerPids[t], &ascaler, rate[t], gyro_filtered[t], dT);
float factor = fabsf(stickinput[t]) * stabSettings.stabBank.AcroInsanityFactor;
actuatorDesiredAxis[t] = factor * stickinput[t] + (1.0f - factor) * arate;
}
break;
case STABILIZATIONSTATUS_INNERLOOP_DIRECT:
default:
actuatorDesiredAxis[t] = rate[t];
@ -311,6 +329,18 @@ static void stabilizationInnerloopTask()
previous_mode[t] = 255;
}
}
if (stabSettings.stabBank.EnablePiroComp == STABILIZATIONBANK_ENABLEPIROCOMP_TRUE && stabSettings.innerPids[0].iLim > 1e-3f && stabSettings.innerPids[1].iLim > 1e-3f) {
// attempted piro compensation - rotate pitch and yaw integrals (experimental)
float angleYaw = DEG2RAD(gyro_filtered[2] * dT);
float sinYaw = sinf(angleYaw);
float cosYaw = cosf(angleYaw);
float rollAcc = stabSettings.innerPids[0].iAccumulator / stabSettings.innerPids[0].iLim;
float pitchAcc = stabSettings.innerPids[1].iAccumulator / stabSettings.innerPids[1].iLim;
stabSettings.innerPids[0].iAccumulator = stabSettings.innerPids[0].iLim * (cosYaw * rollAcc + sinYaw * pitchAcc);
stabSettings.innerPids[1].iAccumulator = stabSettings.innerPids[1].iLim * (cosYaw * pitchAcc - sinYaw * rollAcc);
}
{
uint8_t armed;
FlightStatusArmedGet(&armed);

View File

@ -158,6 +158,10 @@ static void StabilizationDesiredUpdatedCb(__attribute__((unused)) UAVObjEvent *e
StabilizationStatusOuterLoopToArray(status.OuterLoop)[t] = STABILIZATIONSTATUS_OUTERLOOP_DIRECT;
StabilizationStatusInnerLoopToArray(status.InnerLoop)[t] = STABILIZATIONSTATUS_INNERLOOP_VIRTUALFLYBAR;
break;
case STABILIZATIONDESIRED_STABILIZATIONMODE_ACRO:
StabilizationStatusOuterLoopToArray(status.OuterLoop)[t] = STABILIZATIONSTATUS_OUTERLOOP_DIRECT;
StabilizationStatusInnerLoopToArray(status.InnerLoop)[t] = STABILIZATIONSTATUS_INNERLOOP_ACRO;
break;
case STABILIZATIONDESIRED_STABILIZATIONMODE_RATTITUDE:
StabilizationStatusOuterLoopToArray(status.OuterLoop)[t] = STABILIZATIONSTATUS_OUTERLOOP_RATTITUDE;
StabilizationStatusInnerLoopToArray(status.InnerLoop)[t] = STABILIZATIONSTATUS_INNERLOOP_RATE;

View File

@ -116,6 +116,8 @@
#define USB_LED_OFF
#endif
#define CONNECTED_LIVE 8
/* Local type definitions */
struct pios_rfm22b_transition {
@ -358,7 +360,7 @@ static const uint8_t reg_72[] = { 0x30, 0x48, 0x48, 0x48, 0x48, 0x60, 0x90, 0xCD
static const uint8_t packet_time[] = { 80, 40, 25, 15, 13, 10, 8, 6, 5 };
static const uint8_t packet_time_ppm[] = { 26, 25, 25, 15, 13, 10, 8, 6, 5 };
static const uint8_t num_channels[] = { 4, 4, 4, 6, 8, 8, 10, 12, 16 };
static const uint8_t num_channels[] = { 32, 32, 32, 32, 32, 32, 32, 32, 32 };
static struct pios_rfm22b_dev *g_rfm22b_dev = NULL;
@ -606,6 +608,8 @@ void PIOS_RFM22B_SetChannelConfig(uint32_t rfm22b_id, enum rfm22b_datarate datar
}
}
rfm22b_dev->num_channels = num_found;
// Calculate the maximum packet length from the datarate.
float bytes_per_period = (float)data_rate[datarate] * (float)(rfm22b_dev->packet_time - 2) / 9000;
@ -797,7 +801,6 @@ bool PIOS_RFM22B_TransmitPacket(uint32_t rfm22b_id, uint8_t *p, uint8_t len)
rfm22_write(rfm22b_dev, RFM22_interrupt_enable2, 0x00);
// set the tx power
rfm22b_dev->tx_power = 0x7;
rfm22_write(rfm22b_dev, RFM22_tx_power, RFM22_tx_pwr_lna_sw | rfm22b_dev->tx_power);
// TUNE mode
@ -1356,7 +1359,7 @@ static enum pios_radio_event rfm22_init(struct pios_rfm22b_dev *rfm22b_dev)
rfm22b_dev->packet_start_ticks = 0;
rfm22b_dev->tx_complete_ticks = 0;
rfm22b_dev->rfm22b_state = RFM22B_STATE_INITIALIZING;
rfm22b_dev->on_sync_channel = false;
rfm22b_dev->connected_timeout = 0;
// software reset the RF chip .. following procedure according to Si4x3x Errata (rev. B)
rfm22_write_claim(rfm22b_dev, RFM22_op_and_func_ctrl1, RFM22_opfc1_swres);
@ -1800,8 +1803,8 @@ static enum pios_radio_event radio_txStart(struct pios_rfm22b_dev *radio_dev)
len += (radio_dev->tx_out_cb)(radio_dev->tx_out_context, p + len, max_data_len - len, NULL, &need_yield);
}
// Always send a packet on the sync channel if this modem is a coordinator.
if ((len == 0) && ((radio_dev->channel_index != 0) || !rfm22_isCoordinator(radio_dev))) {
// Always send a packet if this modem is a coordinator.
if ((len == 0) && !rfm22_isCoordinator(radio_dev)) {
return RADIO_EVENT_RX_MODE;
}
@ -1961,12 +1964,16 @@ static enum pios_radio_event radio_receivePacket(struct pios_rfm22b_dev *radio_d
(radio_dev->rx_in_cb)(radio_dev->rx_in_context, p, data_len, NULL, &rx_need_yield);
}
// We only synchronize the clock on packets from our coordinator on the sync channel.
if (!rfm22_isCoordinator(radio_dev) && (radio_dev->rx_destination_id == rfm22_destinationID(radio_dev)) && (radio_dev->channel_index == 0)) {
/*
* If the packet is valid and destined for us we synchronize the clock.
*/
if (!rfm22_isCoordinator(radio_dev) &&
radio_dev->rx_destination_id == rfm22_destinationID(radio_dev)) {
rfm22_synchronizeClock(radio_dev);
radio_dev->stats.link_state = OPLINKSTATUS_LINKSTATE_CONNECTED;
radio_dev->on_sync_channel = false;
}
radio_dev->connected_timeout = CONNECTED_LIVE;
} else {
ret_event = RADIO_EVENT_RX_COMPLETE;
}
@ -2162,14 +2169,14 @@ static void rfm22_synchronizeClock(struct pios_rfm22b_dev *rfm22b_dev)
portTickType start_time = rfm22b_dev->packet_start_ticks;
// This packet was transmitted on channel 0, calculate the time delta that will force us to transmit on channel 0 at the time this packet started.
uint8_t num_chan = num_channels[rfm22b_dev->datarate];
uint16_t frequency_hop_cycle_time = rfm22b_dev->packet_time * num_chan;
uint16_t frequency_hop_cycle_time = rfm22b_dev->packet_time * rfm22b_dev->num_channels;
uint16_t time_delta = start_time % frequency_hop_cycle_time;
// Calculate the adjustment for the preamble
uint8_t offset = (uint8_t)ceil(35000.0F / data_rate[rfm22b_dev->datarate]);
rfm22b_dev->time_delta = frequency_hop_cycle_time - time_delta + offset;
rfm22b_dev->time_delta = frequency_hop_cycle_time - time_delta + offset +
rfm22b_dev->packet_time * rfm22b_dev->channel_index;
}
/**
@ -2224,14 +2231,11 @@ static bool rfm22_timeToSend(struct pios_rfm22b_dev *rfm22b_dev)
static uint8_t rfm22_calcChannel(struct pios_rfm22b_dev *rfm22b_dev, uint8_t index)
{
// Make sure we don't index outside of the range.
uint8_t num_chan = num_channels[rfm22b_dev->datarate];
uint8_t idx = index % num_chan;
uint8_t idx = index % rfm22b_dev->num_channels;
// Are we switching to a new channel?
if (idx != rfm22b_dev->channel_index) {
// If the on_sync_channel flag is set, it means that we were on the sync channel, but no packet was received, so transition to a non-connected state.
if (!rfm22_isCoordinator(rfm22b_dev) && (rfm22b_dev->channel_index == 0) && rfm22b_dev->on_sync_channel) {
rfm22b_dev->on_sync_channel = false;
if (!rfm22_isCoordinator(rfm22b_dev) && rfm22b_dev->connected_timeout == 0) {
// Set the link state to disconnected.
if (rfm22b_dev->stats.link_state == OPLINKSTATUS_LINKSTATE_CONNECTED) {
@ -2242,14 +2246,14 @@ static uint8_t rfm22_calcChannel(struct pios_rfm22b_dev *rfm22b_dev, uint8_t ind
}
}
// Stay on the sync channel.
// Stay on first channel.
idx = 0;
} else if (idx == 0) {
// If we're switching to the sync channel, set a flag that can be used to detect if a packet was received.
rfm22b_dev->on_sync_channel = true;
}
rfm22b_dev->channel_index = idx;
if (rfm22b_dev->connected_timeout > 0)
rfm22b_dev->connected_timeout--;
}
return rfm22b_dev->channels[idx];
@ -2265,8 +2269,7 @@ static uint8_t rfm22_calcChannelFromClock(struct pios_rfm22b_dev *rfm22b_dev)
portTickType time = rfm22_coordinatorTime(rfm22b_dev, xTaskGetTickCount());
// Divide time into 8ms blocks. Coordinator sends in first 2 ms, and remote send in 5th and 6th ms.
// Channel changes occur in the last 2 ms.
uint8_t num_chan = num_channels[rfm22b_dev->datarate];
uint8_t n = (time / rfm22b_dev->packet_time) % num_chan;
uint8_t n = (time / rfm22b_dev->packet_time) % rfm22b_dev->num_channels;
return rfm22_calcChannel(rfm22b_dev, n);
}

View File

@ -780,7 +780,7 @@ struct pios_rfm22b_dev {
portTickType packet_start_ticks;
portTickType tx_complete_ticks;
portTickType time_delta;
bool on_sync_channel;
uint8_t connected_timeout;
};

View File

@ -411,26 +411,6 @@ void ConfigMultiRotorWidget::refreshWidgetsValues(QString frameType)
setComboCurrentIndex(m_aircraft->multiMotorChannelBox4, multi.VTOLMotorSW);
setComboCurrentIndex(m_aircraft->multiMotorChannelBox5, multi.VTOLMotorW);
setComboCurrentIndex(m_aircraft->multiMotorChannelBox6, multi.VTOLMotorNW);
// Now, read the 1st mixer R/P/Y levels and initialize the mix sliders.
// This assumes that all vectors are identical - if not, the user should use the
// "custom" setting.
int channel = m_aircraft->multiMotorChannelBox1->currentIndex() - 1;
if (channel > -1) {
// get motor 1 value for Pitch
double value = getMixerVectorValue(mixer, channel, VehicleConfig::MIXERVECTOR_PITCH);
m_aircraft->mrPitchMixLevel->setValue(qRound(value / 1.27));
// get motor 2 value for Yaw and Roll
channel = m_aircraft->multiMotorChannelBox2->currentIndex() - 1;
value = getMixerVectorValue(mixer, channel, VehicleConfig::MIXERVECTOR_YAW);
setYawMixLevel(qRound(value / 1.27));
channel = m_aircraft->multiMotorChannelBox2->currentIndex() - 1;
value = getMixerVectorValue(mixer, channel, VehicleConfig::MIXERVECTOR_ROLL);
m_aircraft->mrRollMixLevel->setValue(-qRound(value / 1.27));
}
} else if (frameType == "HexaCoax") {
// Motors 1/2/3 4/5/6 are: NW/W NE/E S/SE
setComboCurrentIndex(m_aircraft->multiMotorChannelBox1, multi.VTOLMotorNW);
@ -480,7 +460,9 @@ void ConfigMultiRotorWidget::refreshWidgetsValues(QString frameType)
// Now, read mixing values stored on board and applies values on sliders.
m_aircraft->mrPitchMixLevel->setValue(getMixerValue(mixer, "MixerValuePitch"));
m_aircraft->mrRollMixLevel->setValue(getMixerValue(mixer, "MixerValueRoll"));
m_aircraft->mrYawMixLevel->setValue(getMixerValue(mixer, "MixerValueYaw"));
// MixerValueYaw : negative = reversed
setYawMixLevel(getMixerValue(mixer, "MixerValueYaw"));
updateAirframe(frameType);
}
@ -743,7 +725,8 @@ QString ConfigMultiRotorWidget::updateConfigObjectsFromWidgets()
setMixerType(mixer, channel, VehicleConfig::MIXERTYPE_SERVO);
// Tricopter : Yaw mix slider value applies to servo (was fixed)
setMixerVectorValue(mixer, channel, VehicleConfig::MIXERVECTOR_YAW, getMixerValue(mixer, "MixerValueYaw") * 1.27);
// Get absolute MixerValueYaw, no servo reverse when Reverse All Motors is checked
setMixerVectorValue(mixer, channel, VehicleConfig::MIXERVECTOR_YAW, abs(getMixerValue(mixer, "MixerValueYaw")) * 1.27);
}
m_aircraft->mrStatusLabel->setText(tr("Configuration OK"));
@ -1046,7 +1029,9 @@ bool ConfigMultiRotorWidget::setupMultiRotorMixer(double mixerFactors[8][3])
setMixerValue(mixer, "MixerValueRoll", m_aircraft->mrRollMixLevel->value());
setMixerValue(mixer, "MixerValuePitch", m_aircraft->mrPitchMixLevel->value());
setMixerValue(mixer, "MixerValueYaw", m_aircraft->mrYawMixLevel->value());
// Store negative value if ReverseAllMotors is checked
setMixerValue(mixer, "MixerValueYaw", m_aircraft->mrYawMixLevel->value() * (invertMotors ? -1.0 : 1.0));
QList<QComboBox *> mmList;
mmList << m_aircraft->multiMotorChannelBox1 << m_aircraft->multiMotorChannelBox2

View File

@ -7,3 +7,4 @@ include(../../plugins/uavobjectutil/uavobjectutil.pri)
include(../../plugins/uavsettingsimportexport/uavsettingsimportexport.pri)
include(../../plugins/uavobjectwidgetutils/uavobjectwidgetutils.pri)
include(../../libs/version_info/version_info.pri)
include(../../libs/qwt/qwt.pri)

View File

@ -48,7 +48,7 @@
#include <QDesktopServices>
#include <QUrl>
ConfigOutputWidget::ConfigOutputWidget(QWidget *parent) : ConfigTaskWidget(parent), wasItMe(false)
ConfigOutputWidget::ConfigOutputWidget(QWidget *parent) : ConfigTaskWidget(parent)
{
ui = new Ui_OutputWidget();
ui->setupUi(this);
@ -100,13 +100,6 @@ ConfigOutputWidget::ConfigOutputWidget(QWidget *parent) : ConfigTaskWidget(paren
disconnect(this, SLOT(refreshWidgetsValues(UAVObject *)));
UAVObjectManager *objManager = pm->getObject<UAVObjectManager>();
UAVObject *obj = objManager->getObject(QString("ActuatorCommand"));
if (UAVObject::GetGcsTelemetryUpdateMode(obj->getMetadata()) == UAVObject::UPDATEMODE_ONCHANGE) {
this->setEnabled(false);
}
connect(obj, SIGNAL(objectUpdated(UAVObject *)), this, SLOT(disableIfNotMe(UAVObject *)));
refreshWidgetsValues();
updateEnableControls();
}
@ -178,7 +171,6 @@ void ConfigOutputWidget::runChannelTests(bool state)
ActuatorCommand *obj = ActuatorCommand::GetInstance(getObjectManager());
UAVObject::Metadata mdata = obj->getMetadata();
if (state) {
wasItMe = true;
accInitialData = mdata;
UAVObject::SetFlightAccess(mdata, UAVObject::ACCESS_READONLY);
UAVObject::SetFlightTelemetryUpdateMode(mdata, UAVObject::UPDATEMODE_ONCHANGE);
@ -186,8 +178,7 @@ void ConfigOutputWidget::runChannelTests(bool state)
UAVObject::SetGcsTelemetryUpdateMode(mdata, UAVObject::UPDATEMODE_ONCHANGE);
mdata.gcsTelemetryUpdatePeriod = 100;
} else {
wasItMe = false;
mdata = accInitialData; // Restore metadata
mdata = accInitialData; // Restore metadata
}
obj->setMetadata(mdata);
obj->updated();
@ -425,14 +416,3 @@ void ConfigOutputWidget::stopTests()
{
ui->channelOutTest->setChecked(false);
}
void ConfigOutputWidget::disableIfNotMe(UAVObject *obj)
{
if (UAVObject::GetGcsTelemetryUpdateMode(obj->getMetadata()) == UAVObject::UPDATEMODE_ONCHANGE) {
if (!wasItMe) {
this->setEnabled(false);
}
} else {
this->setEnabled(true);
}
}

View File

@ -67,11 +67,8 @@ private:
UAVObject::Metadata accInitialData;
bool wasItMe;
private slots:
void stopTests();
void disableIfNotMe(UAVObject *obj);
virtual void refreshWidgetsValues(UAVObject *obj = NULL);
void updateObjectsFromWidgets();
void runChannelTests(bool state);

View File

@ -43,12 +43,19 @@
#include "altitudeholdsettings.h"
#include "stabilizationsettings.h"
#include "qwt/src/qwt.h"
#include "qwt/src/qwt_plot.h"
#include "qwt/src/qwt_plot_canvas.h"
#include "qwt/src/qwt_scale_widget.h"
ConfigStabilizationWidget::ConfigStabilizationWidget(QWidget *parent) : ConfigTaskWidget(parent),
boardModel(0), m_pidBankCount(0), m_currentPIDBank(0)
{
ui = new Ui_StabilizationWidget();
ui->setupUi(this);
setupExpoPlot();
StabilizationSettings *stabSettings = qobject_cast<StabilizationSettings *>(getObject("StabilizationSettings"));
Q_ASSERT(stabSettings);
@ -59,7 +66,7 @@ ConfigStabilizationWidget::ConfigStabilizationWidget(QWidget *parent) : ConfigTa
m_pidTabBars.append(ui->advancedPIDBankTabBar);
foreach(QTabBar * tabBar, m_pidTabBars) {
for (int i = 0; i < m_pidBankCount; i++) {
tabBar->addTab(tr("PID Bank %1").arg(i + 1));
tabBar->addTab(tr("Settings Bank %1").arg(i + 1));
tabBar->setTabData(i, QString("StabilizationSettingsBank%1").arg(i + 1));
}
tabBar->setExpanding(false);
@ -144,6 +151,11 @@ ConfigStabilizationWidget::ConfigStabilizationWidget(QWidget *parent) : ConfigTa
connect(this, SIGNAL(autoPilotConnected()), this, SLOT(onBoardConnected()));
addWidget(ui->expoPlot);
connect(ui->expoSpinnerRoll, SIGNAL(valueChanged(int)), this, SLOT(replotExpoRoll(int)));
connect(ui->expoSpinnerPitch, SIGNAL(valueChanged(int)), this, SLOT(replotExpoPitch(int)));
connect(ui->expoSpinnerYaw, SIGNAL(valueChanged(int)), this, SLOT(replotExpoYaw(int)));
disableMouseWheelEvents();
updateEnableControls();
}
@ -218,6 +230,55 @@ void ConfigStabilizationWidget::updateObjectFromThrottleCurve()
field->setValue(ui->enableThrustPIDScalingCheckBox->isChecked() ? "TRUE" : "FALSE");
}
void ConfigStabilizationWidget::setupExpoPlot()
{
ui->expoPlot->setMouseTracking(false);
ui->expoPlot->setAxisScale(QwtPlot::xBottom, 0, 100, 25);
QwtText title;
title.setText(tr("Input %"));
title.setFont(ui->expoPlot->axisFont(QwtPlot::xBottom));
ui->expoPlot->setAxisTitle(QwtPlot::xBottom, title);
ui->expoPlot->setAxisScale(QwtPlot::yLeft, 0, 100, 25);
title.setText(tr("Output %"));
title.setFont(ui->expoPlot->axisFont(QwtPlot::yLeft));
ui->expoPlot->setAxisTitle(QwtPlot::yLeft, title);
ui->expoPlot->canvas()->setFrameShape(QFrame::NoFrame);
ui->expoPlot->canvas()->setCursor(QCursor());
m_plotGrid.setMajPen(QColor(Qt::gray));
m_plotGrid.setMinPen(QColor(Qt::lightGray));
m_plotGrid.enableXMin(false);
m_plotGrid.enableYMin(false);
m_plotGrid.attach(ui->expoPlot);
m_expoPlotCurveRoll.setRenderHint(QwtPlotCurve::RenderAntialiased);
QColor rollColor(Qt::red);
rollColor.setAlpha(180);
m_expoPlotCurveRoll.setPen(QPen(rollColor, 2));
m_expoPlotCurveRoll.attach(ui->expoPlot);
replotExpoRoll(ui->expoSpinnerRoll->value());
m_expoPlotCurveRoll.show();
QColor pitchColor(Qt::green);
pitchColor.setAlpha(180);
m_expoPlotCurvePitch.setRenderHint(QwtPlotCurve::RenderAntialiased);
m_expoPlotCurvePitch.setPen(QPen(pitchColor, 2));
m_expoPlotCurvePitch.attach(ui->expoPlot);
replotExpoPitch(ui->expoSpinnerPitch->value());
m_expoPlotCurvePitch.show();
QColor yawColor(Qt::blue);
yawColor.setAlpha(180);
m_expoPlotCurveYaw.setRenderHint(QwtPlotCurve::RenderAntialiased);
m_expoPlotCurveYaw.setPen(QPen(yawColor, 2));
m_expoPlotCurveYaw.attach(ui->expoPlot);
replotExpoYaw(ui->expoSpinnerYaw->value());
m_expoPlotCurveYaw.show();
}
void ConfigStabilizationWidget::resetThrottleCurveToDefault()
{
UAVDataObject *defaultStabBank = (UAVDataObject *)getObjectManager()->getObject(QString(m_pidTabBars.at(0)->tabData(m_currentPIDBank).toString()));
@ -250,6 +311,37 @@ void ConfigStabilizationWidget::throttleCurveUpdated()
setDirty(true);
}
void ConfigStabilizationWidget::replotExpo(int value, QwtPlotCurve &curve)
{
double x[EXPO_CURVE_POINTS_COUNT] = { 0 };
double y[EXPO_CURVE_POINTS_COUNT] = { 0 };
double factor = pow(EXPO_CURVE_CONSTANT, value);
double step = 1.0 / (EXPO_CURVE_POINTS_COUNT - 1);
for (int i = 0; i < EXPO_CURVE_POINTS_COUNT; i++) {
double val = i * step;
x[i] = val * 100.0;
y[i] = pow(val, factor) * 100.0;
}
curve.setSamples(x, y, EXPO_CURVE_POINTS_COUNT);
ui->expoPlot->replot();
}
void ConfigStabilizationWidget::replotExpoRoll(int value)
{
replotExpo(value, m_expoPlotCurveRoll);
}
void ConfigStabilizationWidget::replotExpoPitch(int value)
{
replotExpo(value, m_expoPlotCurvePitch);
}
void ConfigStabilizationWidget::replotExpoYaw(int value)
{
replotExpo(value, m_expoPlotCurveYaw);
}
void ConfigStabilizationWidget::realtimeUpdatesSlot(bool value)
{
ui->realTimeUpdates_6->setChecked(value);

View File

@ -35,7 +35,8 @@
#include "stabilizationsettings.h"
#include <QWidget>
#include <QTimer>
#include "qwt/src/qwt_plot_curve.h"
#include "qwt/src/qwt_plot_grid.h"
class ConfigStabilizationWidget : public ConfigTaskWidget {
Q_OBJECT
@ -52,14 +53,23 @@ private:
QString m_stabilizationObjectsString;
// Milliseconds between automatic 'Instant Updates'
static const int AUTOMATIC_UPDATE_RATE = 500;
static const int AUTOMATIC_UPDATE_RATE = 500;
static const int EXPO_CURVE_POINTS_COUNT = 100;
static const double EXPO_CURVE_CONSTANT = 1.00695;
int boardModel;
int m_pidBankCount;
int m_currentPIDBank;
QwtPlotCurve m_expoPlotCurveRoll;
QwtPlotCurve m_expoPlotCurvePitch;
QwtPlotCurve m_expoPlotCurveYaw;
QwtPlotGrid m_plotGrid;
void updateThrottleCurveFromObject();
void updateObjectFromThrottleCurve();
void setupExpoPlot();
protected:
QString mapObjectName(const QString objectName);
@ -75,5 +85,9 @@ private slots:
void pidBankChanged(int index);
void resetThrottleCurveToDefault();
void throttleCurveUpdated();
void replotExpo(int value, QwtPlotCurve &curve);
void replotExpoRoll(int value);
void replotExpoPitch(int value);
void replotExpoYaw(int value);
};
#endif // ConfigStabilizationWidget_H

View File

@ -116,8 +116,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>772</width>
<height>514</height>
<width>774</width>
<height>505</height>
</rect>
</property>
<layout class="QGridLayout" name="gridLayout">
@ -542,8 +542,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>724</width>
<height>497</height>
<width>758</width>
<height>542</height>
</rect>
</property>
<layout class="QGridLayout" name="gridLayout_7" rowstretch="1,0,0,0">
@ -1228,7 +1228,7 @@ margin:1px;
font:bold;</string>
</property>
<property name="text">
<string>PID Bank</string>
<string>Settings Bank</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
@ -2044,8 +2044,8 @@ Setup the flight mode channel on the RC Input tab if you have not done so alread
<rect>
<x>0</x>
<y>0</y>
<width>407</width>
<height>138</height>
<width>565</width>
<height>159</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">

File diff suppressed because it is too large Load Diff

View File

@ -148,64 +148,24 @@ void ConnectionDiagram::setupGraphicsScene()
break;
}
QString prefix = "";
if (m_configSource->getControllerType() == VehicleConfigurationSource::CONTROLLER_NANO) {
prefix = "nano-";
}
switch (m_configSource->getInputType()) {
case VehicleConfigurationSource::INPUT_PWM:
if (m_configSource->getControllerType() == VehicleConfigurationSource::CONTROLLER_NANO) {
elementsToShow << "pwm-nano";
} else {
elementsToShow << "pwm";
}
elementsToShow << QString("%1pwm").arg(prefix);
break;
case VehicleConfigurationSource::INPUT_PPM:
if (m_configSource->getControllerType() == VehicleConfigurationSource::CONTROLLER_NANO) {
elementsToShow << "ppm-nano";
} else {
elementsToShow << "ppm";
}
elementsToShow << QString("%1ppm").arg(prefix);
break;
case VehicleConfigurationSource::INPUT_SBUS:
if (m_configSource->getControllerType() == VehicleConfigurationSource::CONTROLLER_NANO) {
elementsToShow << "sbus-nano";
} else {
elementsToShow << "sbus";
}
elementsToShow << QString("%1sbus").arg(prefix);
break;
case VehicleConfigurationSource::INPUT_DSMX10:
case VehicleConfigurationSource::INPUT_DSMX11:
case VehicleConfigurationSource::INPUT_DSM2:
if (m_configSource->getControllerType() == VehicleConfigurationSource::CONTROLLER_NANO) {
elementsToShow << "satellite-nano";
} else {
elementsToShow << "satellite";
}
break;
default:
break;
}
switch (m_configSource->getGpsType()) {
case VehicleConfigurationSource::GPS_DISABLED:
break;
case VehicleConfigurationSource::GPS_NMEA:
if (m_configSource->getControllerType() == VehicleConfigurationSource::CONTROLLER_NANO) {
elementsToShow << "nano-generic-nmea";
} else if (m_configSource->getControllerType() == VehicleConfigurationSource::CONTROLLER_REVO) {
elementsToShow << "generic-nmea";
}
break;
case VehicleConfigurationSource::GPS_PLATINUM:
if (m_configSource->getControllerType() == VehicleConfigurationSource::CONTROLLER_NANO) {
elementsToShow << "nano-OPGPS-v9";
} else if (m_configSource->getControllerType() == VehicleConfigurationSource::CONTROLLER_REVO) {
elementsToShow << "OPGPS-v9";
}
break;
case VehicleConfigurationSource::GPS_UBX:
if (m_configSource->getControllerType() == VehicleConfigurationSource::CONTROLLER_NANO) {
elementsToShow << "nano-OPGPS-v8-ublox";
} else if (m_configSource->getControllerType() == VehicleConfigurationSource::CONTROLLER_REVO) {
elementsToShow << "OPGPS-v8-ublox";
}
elementsToShow << QString("%1satellite").arg(prefix);
break;
default:
break;
@ -215,24 +175,35 @@ void ConnectionDiagram::setupGraphicsScene()
m_configSource->getAirspeedType() != VehicleConfigurationSource::AIRSPEED_ESTIMATE) {
switch (m_configSource->getAirspeedType()) {
case VehicleConfigurationSource::AIRSPEED_EAGLETREE:
if (m_configSource->getControllerType() == VehicleConfigurationSource::CONTROLLER_NANO) {
elementsToShow << "nano-eagletree-speed-sensor";
} else if (m_configSource->getControllerType() == VehicleConfigurationSource::CONTROLLER_REVO) {
elementsToShow << "eagletree-speed-sensor";
}
elementsToShow << QString("%1eagletree-speed-sensor").arg(prefix);
break;
case VehicleConfigurationSource::AIRSPEED_MS4525:
if (m_configSource->getControllerType() == VehicleConfigurationSource::CONTROLLER_NANO) {
elementsToShow << "nano-ms4525-speed-sensor";
} else if (m_configSource->getControllerType() == VehicleConfigurationSource::CONTROLLER_REVO) {
elementsToShow << "ms4525-speed-sensor";
}
elementsToShow << QString("%1ms4525-speed-sensor").arg(prefix);
break;
default:
break;
}
}
if (m_configSource->getInputType() == VehicleConfigurationSource::INPUT_SBUS) {
prefix = QString("flexi-%1").arg(prefix);
}
switch (m_configSource->getGpsType()) {
case VehicleConfigurationSource::GPS_DISABLED:
break;
case VehicleConfigurationSource::GPS_NMEA:
elementsToShow << QString("%1generic-nmea").arg(prefix);
break;
case VehicleConfigurationSource::GPS_PLATINUM:
elementsToShow << QString("%1OPGPS-v9").arg(prefix);
break;
case VehicleConfigurationSource::GPS_UBX:
elementsToShow << QString("%1OPGPS-v8-ublox").arg(prefix);
break;
default:
break;
}
setupGraphicsSceneItems(elementsToShow);
fitInView();
qDebug() << "Scene complete";

View File

@ -41,6 +41,10 @@ EscCalibrationPage::EscCalibrationPage(SetupWizard *wizard, QWidget *parent) :
{
ui->setupUi(this);
connect(ui->startStopButton, SIGNAL(clicked()), this, SLOT(startStopButtonClicked()));
connect(ui->securityCheckBox1, SIGNAL(toggled(bool)), this, SLOT(securityCheckBoxesToggled()));
connect(ui->securityCheckBox2, SIGNAL(toggled(bool)), this, SLOT(securityCheckBoxesToggled()));
connect(ui->securityCheckBox3, SIGNAL(toggled(bool)), this, SLOT(securityCheckBoxesToggled()));
}
EscCalibrationPage::~EscCalibrationPage()
@ -59,9 +63,19 @@ void EscCalibrationPage::enableButtons(bool enable)
getWizard()->button(QWizard::CancelButton)->setEnabled(enable);
getWizard()->button(QWizard::BackButton)->setEnabled(enable);
getWizard()->button(QWizard::CustomButton1)->setEnabled(enable);
ui->securityCheckBox1->setEnabled(enable);
ui->securityCheckBox2->setEnabled(enable);
ui->securityCheckBox3->setEnabled(enable);
QApplication::processEvents();
}
void EscCalibrationPage::resetAllSecurityCheckboxes()
{
ui->securityCheckBox1->setChecked(false);
ui->securityCheckBox2->setChecked(false);
ui->securityCheckBox3->setChecked(false);
}
void EscCalibrationPage::startStopButtonClicked()
{
if (!m_isCalibrating) {
@ -74,7 +88,7 @@ void EscCalibrationPage::startStopButtonClicked()
MixerSettings *mSettings = MixerSettings::GetInstance(uavoManager);
Q_ASSERT(mSettings);
QString mixerTypePattern = "Mixer%1Type";
for (int i = 0; i < ActuatorSettings::CHANNELADDR_NUMELEM; i++) {
for (quint32 i = 0; i < ActuatorSettings::CHANNELADDR_NUMELEM; i++) {
UAVObjectField *field = mSettings->getField(mixerTypePattern.arg(i + 1));
Q_ASSERT(field);
if (field->getValue().toString() == field->getOptions().at(VehicleConfigurationHelper::MIXER_TYPE_MOTOR)) {
@ -95,8 +109,21 @@ void EscCalibrationPage::startStopButtonClicked()
}
m_outputs.clear();
m_isCalibrating = false;
resetAllSecurityCheckboxes();
ui->startStopButton->setText(tr("Start"));
ui->startStopButton->setEnabled(true);
enableButtons(true);
}
}
void EscCalibrationPage::securityCheckBoxesToggled()
{
ui->startStopButton->setEnabled(ui->securityCheckBox1->isChecked() &&
ui->securityCheckBox2->isChecked() &&
ui->securityCheckBox3->isChecked());
}
void EscCalibrationPage::initializePage()
{
resetAllSecurityCheckboxes();
}

View File

@ -43,14 +43,17 @@ public:
explicit EscCalibrationPage(SetupWizard *wizard, QWidget *parent = 0);
~EscCalibrationPage();
bool validatePage();
void initializePage();
private slots:
void startStopButtonClicked();
void securityCheckBoxesToggled();
void enableButtons(bool enable);
void resetAllSecurityCheckboxes();
private:
const int LOW_PWM_OUTPUT_PULSE_LENGTH_MICROSECONDS = 1000;
const int HIGH_PWM_OUTPUT_PULSE_LENGTH_MICROSECONDS = 2000;
static const int LOW_PWM_OUTPUT_PULSE_LENGTH_MICROSECONDS = 1000;
static const int HIGH_PWM_OUTPUT_PULSE_LENGTH_MICROSECONDS = 1900;
Ui::EscCalibrationPage *ui;
bool m_isCalibrating;

View File

@ -17,7 +17,7 @@
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p align=&quot;center&quot;&gt;&lt;span style=&quot; font-size:12pt; font-weight:600;&quot;&gt;OpenPilot ESC Calibration Procedure&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;As you have selected to use a MultiRotor and Fast / Flashed ESCs, we need to calibrate the endpoints of these ESCs so they can see the full throttle range sent from the flight controller. &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;This part of the wizard will tell you to connect the battery to your aircraft, before doing so you absolutely &lt;/span&gt;&lt;span style=&quot; font-size:10pt; font-weight:600; color:#f30f1d;&quot;&gt;must remove the propellers from all motors&lt;/span&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;. &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;The steps to perform this calibration are as follows:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;1. Press the Start button on this page &lt;br/&gt;2. Connect the battery to your airframe&lt;br/&gt;3. Wait for ESC calibration beep(s)&lt;br/&gt;4. Press the Stop button on this page&lt;br/&gt;5. Wait for ESC confirmation beep(s)&lt;br/&gt;6. Disconnect battery&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;When ready push the start button below.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p align=&quot;center&quot;&gt;&lt;span style=&quot; font-size:12pt; font-weight:600;&quot;&gt;OpenPilot ESC Calibration Procedure&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;As you have selected to use a MultiRotor and Fast / Flashed ESCs, we need to calibrate the endpoints of these ESCs so they can see the full throttle range sent from the flight controller. &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;This part of the wizard will tell you to connect the battery to your aircraft, before doing so you absolutely &lt;/span&gt;&lt;span style=&quot; font-size:10pt; font-weight:600; color:#f30f1d;&quot;&gt;must remove the propellers from all motors&lt;/span&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;. &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;The steps to perform this calibration are as follows:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;1. Confirm all safety questions&lt;br/&gt;2. Press the Start button when it becomes enabled&lt;br/&gt;3. Connect the battery to your airframe&lt;br/&gt;4. Wait for ESC calibration beep(s)&lt;br/&gt;5. Press the Stop button&lt;br/&gt;6. Wait for ESC confirmation beep(s)&lt;br/&gt;7. Disconnect battery&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
@ -43,6 +43,27 @@
</property>
</spacer>
</item>
<item>
<widget class="QCheckBox" name="securityCheckBox1">
<property name="text">
<string>I have removed ALL propellers from ALL motors of my vehicle.</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="securityCheckBox2">
<property name="text">
<string>The vehicle is NOT powered by any external power source but USB</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="securityCheckBox3">
<property name="text">
<string>I confirm I have read and understood the above instructions in full</string>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<property name="topMargin">
@ -63,6 +84,9 @@
</item>
<item>
<widget class="QPushButton" name="startStopButton">
<property name="enabled">
<bool>false</bool>
</property>
<property name="minimumSize">
<size>
<width>0</width>
@ -104,6 +128,12 @@
</item>
</layout>
</widget>
<tabstops>
<tabstop>securityCheckBox1</tabstop>
<tabstop>securityCheckBox2</tabstop>
<tabstop>securityCheckBox3</tabstop>
<tabstop>startStopButton</tabstop>
</tabstops>
<resources/>
<connections/>
</ui>

View File

@ -75,7 +75,7 @@ void OutputCalibrationPage::setupActuatorMinMaxAndNeutral(int motorChannelStart,
// Set to motor safe values
m_actuatorSettings[servoid].channelMin = 1000;
m_actuatorSettings[servoid].channelNeutral = 1000;
m_actuatorSettings[servoid].channelMax = 2000;
m_actuatorSettings[servoid].channelMax = 1900;
} else if (servoid < totalUsedChannels) {
// Set to servo safe values
m_actuatorSettings[servoid].channelMin = 1500;
@ -217,9 +217,6 @@ void OutputCalibrationPage::setupVehicle()
break;
}
VehicleConfigurationHelper helper(getWizard());
helper.setupVehicle(false);
if (m_calibrationUtil) {
delete m_calibrationUtil;
m_calibrationUtil = 0;

View File

@ -45,6 +45,10 @@ SummaryPage::~SummaryPage()
bool SummaryPage::validatePage()
{
// Save settings so far.
VehicleConfigurationHelper helper(getWizard());
helper.setupVehicle(false);
return true;
}

View File

@ -20,13 +20,13 @@
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p align=&quot;center&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:12pt; font-weight:600;&quot;&gt;OpenPilot Configuration Summary&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;The first part of this wizard is now complete. All information required to create a basic OpenPilot controller configuration for a specific vehicle has been collected.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;Below is a summary of the configuration and a button that links to a diagram illustrating how to connect required hardware and the OpenPilot Controller with the current configuration.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:10pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;The following steps require that your OpenPilot controller is connected according to the diagram, remians connected to the computer by USB, and that you have a battery ready but &lt;/span&gt;&lt;span style=&quot; font-size:10pt; font-weight:600;&quot;&gt;do not&lt;/span&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt; connect it right now, you will be told when to in later steps of this wizard.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p align=&quot;center&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'MS Shell Dlg 2'; font-size:12pt; font-weight:600;&quot;&gt;OpenPilot Configuration Summary&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:12pt; font-weight:600;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'MS Shell Dlg 2'; font-size:10pt;&quot;&gt;The first part of this wizard is now complete. All information required to create a basic OpenPilot controller configuration for a specific vehicle has been collected.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'MS Shell Dlg 2'; font-size:10pt;&quot;&gt;Below is a summary of the configuration and a button that links to a diagram illustrating how to connect required hardware and the OpenPilot Controller with the current configuration.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:10pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'MS Shell Dlg 2'; font-size:10pt;&quot;&gt;The following steps require that your OpenPilot controller is connected according to the diagram, remains connected to the computer by USB, and that you have a battery ready but &lt;/span&gt;&lt;span style=&quot; font-family:'MS Shell Dlg 2'; font-size:10pt; font-weight:600;&quot;&gt;do not&lt;/span&gt;&lt;span style=&quot; font-family:'MS Shell Dlg 2'; font-size:10pt;&quot;&gt; connect it right now, you will be told when to in later steps of this wizard.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>

View File

@ -15,7 +15,7 @@
height="1074.8231"
width="1398.5884"
version="1.1"
inkscape:version="0.48.5 r10040"
inkscape:version="0.48.4 r9939"
sodipodi:docname="connection-diagrams.svg">
<sodipodi:namedview
pagecolor="#ffffff"
@ -26,17 +26,17 @@
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1280"
inkscape:window-height="928"
inkscape:window-width="1920"
inkscape:window-height="1176"
id="namedview4616"
showgrid="false"
inkscape:zoom="0.67825113"
inkscape:cx="942.97766"
inkscape:cx="603.13304"
inkscape:cy="537.41156"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-x="1600"
inkscape:window-y="24"
inkscape:window-maximized="1"
inkscape:current-layer="layer20"
inkscape:current-layer="layer4"
fit-margin-top="15"
fit-margin-left="15"
fit-margin-right="15"
@ -11025,104 +11025,104 @@
<g
inkscape:groupmode="layer"
id="layer4"
inkscape:label="pwm-nano"
inkscape:label="nano-pwm"
style="display:none"
sodipodi:insensitive="true">
<g
id="pwm-nano">
id="nano-pwm">
<path
sodipodi:nodetypes="ccc"
style="fill:none;stroke:#6b6b6b;stroke-width:1.21428466;stroke-linecap:butt;stroke-linejoin:miter"
inkscape:connector-curvature="0"
d="M 423.36407,327.33254 L 528.564,326.77654 L 528.564,240.51434"
d="m 423.36407,327.33254 105.19993,-0.556 0,-86.2622"
id="path8856-0" />
<path
sodipodi:nodetypes="ccc"
style="fill:none;stroke:#ec1d00;stroke-width:5.61390018;stroke-linecap:butt;stroke-linejoin:miter"
inkscape:connector-curvature="0"
d="M 423.36407,318.93254 L 519.6,318.44854 L 519.6,240.51434"
d="m 423.36407,318.93254 96.23593,-0.484 0,-77.9342"
id="path8856-1-20" />
<path
sodipodi:nodetypes="ccc"
style="fill:none;stroke:#1f4697;stroke-width:5.61390018;stroke-linecap:butt;stroke-linejoin:miter"
inkscape:connector-curvature="0"
d="M 423.76407,344.75113 L 533.94,344.65633 L 533.93967,240.51434"
d="M 423.76407,344.75113 533.94,344.65633 533.93967,240.51434"
id="path8856-5-4" />
<path
sodipodi:nodetypes="ccc"
style="fill:none;stroke:#fac204;stroke-width:5.61390018;stroke-linecap:butt;stroke-linejoin:miter"
inkscape:connector-curvature="0"
d="M 423.76407,370.35113 L 541,370.35113 L 541,240.51434"
d="m 423.76407,370.35113 117.23593,0 0,-129.83679"
id="path8856-5-1-8" />
<path
sodipodi:nodetypes="ccc"
style="fill:none;stroke:#32a304;stroke-width:5.61399984;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none"
inkscape:connector-curvature="0"
d="M 423.76407,395.55113 L 548.804,395.58223 L 548.80447,240.51434"
d="m 423.76407,395.55113 125.03993,0.0311 4.7e-4,-155.06789"
id="path8856-5-1-7-0" />
<path
sodipodi:nodetypes="cccc"
style="fill:none;stroke:#ec6004;stroke-width:5.61390018;stroke-linecap:butt;stroke-linejoin:miter"
inkscape:connector-curvature="0"
d="M 423.76407,417.95113 L 440.88407,418.27993 L 555.8,418.02753 L 555.8,240.51434"
d="m 423.76407,417.95113 17.12,0.3288 114.91593,-0.2524 0,-177.51319"
id="path8856-5-1-7-1-0" />
<path
sodipodi:nodetypes="ccc"
style="fill:none;stroke:#ffffff;stroke-width:5.17476749;stroke-linecap:butt;stroke-linejoin:miter"
inkscape:connector-curvature="0"
d="M 423.36407,324.13254 L 525.36407,323.72054 L 525.52367,240.51434"
d="m 423.36407,324.13254 102,-0.412 0.1596,-83.2062"
id="path8856-1-3-9" />
<path
style="fill:none;stroke:#777777;stroke-width:5.80000019;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;display:inline"
inkscape:connector-curvature="0"
d="M 231.51628,406.89645 C 199.17944,402.41438 156.11612,419.77498 144.94286,471.61434"
d="m 231.51628,406.89645 c -32.33684,-4.48207 -75.40016,12.87853 -86.57342,64.71789"
id="path9857-3-9-3" />
<path
sodipodi:nodetypes="sssccccssssss"
inkscape:connector-curvature="0"
id="rect8853-0-8-1"
d="M 236.31357,289.05542 L 423.35356,289.05542 C 426.94348,289.05542 429.83356,291.9455 429.83356,295.53542 L 429.83356,304.37557 L 423.83356,304.37557 L 423.83356,426.73558 L 429.834,426.73558 L 429.83356,436.97542 C 429.83341,440.56534 426.94348,443.45542 423.35356,443.45542 L 236.31357,443.45542 C 232.72364,443.45542 229.83356,440.56534 229.83356,436.97542 L 229.83356,295.53542 C 229.83356,291.9455 232.72364,289.05542 236.31357,289.05542 z"
d="m 236.31357,289.05542 187.03999,0 c 3.58992,0 6.48,2.89008 6.48,6.48 l 0,8.84015 -6,0 0,122.36001 6.00044,0 -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;fill:url(#linearGradient13971);fill-rule:nonzero;stroke:#000000;stroke-width:3.09599996;stroke-miterlimit:4;stroke-dasharray:none;display:inline;enable-background:accumulate" />
<path
sodipodi:nodetypes="ccc"
style="fill:none;stroke:#000000;stroke-width:5.61390018;stroke-linecap:butt;stroke-linejoin:miter"
inkscape:connector-curvature="0"
d="M 423.36407,313.33254 L 514,313.12694 L 514,240.51434"
d="M 423.36407,313.33254 514,313.12694 l 0,-72.6126"
id="path8856-1-5-6" />
<g
id="text9734-3"
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;font-family:Sans">
<path
id="path13982"
d="M 318.29907,305.8605 L 333.34907,305.8605 L 333.34907,309.04331 L 327.93501,309.04331 L 327.93501,322.19019 L 323.72407,322.19019 L 323.72407,309.04331 L 318.29907,309.04331 L 318.29907,305.8605"
d="m 318.29907,305.8605 15.05,0 0,3.18281 -5.41406,0 0,13.14688 -4.21094,0 0,-13.14688 -5.425,0 0,-3.18281"
inkscape:connector-curvature="0" />
<path
id="path13984"
d="M 347.65532,314.73081 L 347.65532,322.19019 L 343.71782,322.19019 L 343.71782,320.97612 L 343.71782,316.50269 C 343.71781,315.43082 343.69232,314.69436 343.64122,314.29331 C 343.59742,313.89228 343.51725,313.59697 343.40059,313.40737 C 343.24746,313.15217 343.03965,312.9553 342.77716,312.81675 C 342.51465,312.67092 342.21569,312.59801 341.88028,312.598 C 341.06361,312.59801 340.42194,312.91519 339.95528,313.54956 C 339.48861,314.17665 339.25528,315.04801 339.25528,316.16362 L 339.25528,322.19019 L 335.33966,322.19019 L 335.33966,305.17144 L 339.25528,305.17144 L 339.25528,311.73394 C 339.8459,311.01936 340.47298,310.49436 341.13653,310.15894 C 341.80007,309.81624 342.53288,309.64489 343.33497,309.64487 C 344.74954,309.64489 345.82142,310.07874 346.55059,310.94644 C 347.28704,311.81415 347.65527,313.07561 347.65528,314.73081"
d="m 347.65532,314.73081 0,7.45938 -3.9375,0 0,-1.21407 0,-4.47343 c -1e-5,-1.07187 -0.0255,-1.80833 -0.0766,-2.20938 -0.0438,-0.40103 -0.12397,-0.69634 -0.24063,-0.88594 -0.15313,-0.2552 -0.36094,-0.45207 -0.62343,-0.59062 -0.26251,-0.14583 -0.56147,-0.21874 -0.89688,-0.21875 -0.81667,10e-6 -1.45834,0.31719 -1.925,0.95156 -0.46667,0.62709 -0.7,1.49845 -0.7,2.61406 l 0,6.02657 -3.91562,0 0,-17.01875 3.91562,0 0,6.5625 c 0.59062,-0.71458 1.2177,-1.23958 1.88125,-1.575 0.66354,-0.3427 1.39635,-0.51405 2.19844,-0.51407 1.41457,2e-5 2.48645,0.43387 3.21562,1.30157 0.73645,0.86771 1.10468,2.12917 1.10469,3.78437"
inkscape:connector-curvature="0" />
<path
id="path13986"
d="M 360.40845,313.27612 C 360.06573,313.11572 359.72302,312.99905 359.38032,312.92612 C 359.0449,312.84592 358.70583,312.80582 358.36313,312.80581 C 357.35688,312.80582 356.58031,313.1303 356.03345,313.77925 C 355.49386,314.42092 355.22407,315.34332 355.22407,316.54644 L 355.22407,322.19019 L 351.30845,322.19019 L 351.30845,309.94019 L 355.22407,309.94019 L 355.22407,311.95269 C 355.72719,311.15061 356.30323,310.56728 356.9522,310.20269 C 357.60844,309.83082 358.39229,309.64489 359.30376,309.64487 C 359.435,309.64489 359.57719,309.65187 359.73032,309.66677 C 359.88344,309.67377 360.10583,309.69597 360.39751,309.73237 L 360.40841,313.27612"
d="m 360.40845,313.27612 c -0.34272,-0.1604 -0.68543,-0.27707 -1.02813,-0.35 -0.33542,-0.0802 -0.67449,-0.1203 -1.01719,-0.12031 -1.00625,10e-6 -1.78282,0.32449 -2.32968,0.97344 -0.53959,0.64167 -0.80938,1.56407 -0.80938,2.76719 l 0,5.64375 -3.91562,0 0,-12.25 3.91562,0 0,2.0125 c 0.50312,-0.80208 1.07916,-1.38541 1.72813,-1.75 0.65624,-0.37187 1.44009,-0.5578 2.35156,-0.55782 0.13124,2e-5 0.27343,0.007 0.42656,0.0219 0.15312,0.007 0.37551,0.0292 0.66719,0.0656 l 0.0109,3.54375"
inkscape:connector-curvature="0" />
<path
id="path13988"
d="M 368.20689,312.44487 C 367.33917,312.44488 366.67563,312.75842 366.21626,313.3855 C 365.76417,314.0053 365.53813,314.90217 365.53814,316.07612 C 365.53813,317.25009 365.76417,318.15061 366.21626,318.77769 C 366.67563,319.39748 367.33917,319.70738 368.20689,319.70737 C 369.06,319.70738 369.71261,319.39748 370.1647,318.77769 C 370.61677,318.15061 370.84281,317.25009 370.84282,316.07612 C 370.84281,314.90217 370.61677,314.0053 370.1647,313.3855 C 369.71261,312.75842 369.06,312.44488 368.20689,312.44487 M 368.20689,309.64487 C 370.31417,309.64489 371.95844,310.21364 373.1397,311.35112 C 374.32823,312.48863 374.9225,314.06363 374.92251,316.07612 C 374.9225,318.08863 374.32823,319.66363 373.1397,320.80112 C 371.95844,321.93862 370.31417,322.50737 368.20689,322.50737 C 366.0923,322.50737 364.43709,321.93862 363.24126,320.80112 C 362.05272,319.66363 361.45845,318.08863 361.45845,316.07612 C 361.45845,314.06363 362.05272,312.48863 363.24126,311.35112 C 364.43709,310.21364 366.0923,309.64489 368.20689,309.64487"
d="m 368.20689,312.44487 c -0.86772,1e-5 -1.53126,0.31355 -1.99063,0.94063 -0.45209,0.6198 -0.67813,1.51667 -0.67812,2.69062 -10e-6,1.17397 0.22603,2.07449 0.67812,2.70157 0.45937,0.61979 1.12291,0.92969 1.99063,0.92968 0.85311,10e-6 1.50572,-0.30989 1.95781,-0.92968 0.45207,-0.62708 0.67811,-1.5276 0.67812,-2.70157 -1e-5,-1.17395 -0.22605,-2.07082 -0.67812,-2.69062 -0.45209,-0.62708 -1.1047,-0.94062 -1.95781,-0.94063 m 0,-2.8 c 2.10728,2e-5 3.75155,0.56877 4.93281,1.70625 1.18853,1.13751 1.7828,2.71251 1.78281,4.725 -10e-6,2.01251 -0.59428,3.58751 -1.78281,4.725 -1.18126,1.1375 -2.82553,1.70625 -4.93281,1.70625 -2.11459,0 -3.7698,-0.56875 -4.96563,-1.70625 -1.18854,-1.13749 -1.78281,-2.71249 -1.78281,-4.725 0,-2.01249 0.59427,-3.58749 1.78281,-4.725 1.19583,-1.13748 2.85104,-1.70623 4.96563,-1.70625"
inkscape:connector-curvature="0" />
<path
id="path13990"
d="M 382.05376,306.46206 L 382.05376,309.94019 L 386.0897,309.94019 L 386.0897,312.74019 L 382.05376,312.74019 L 382.05376,317.9355 C 382.05375,318.50425 382.16677,318.89071 382.39282,319.09487 C 382.61886,319.29175 383.06729,319.39019 383.73813,319.39019 L 385.75063,319.39019 L 385.75063,322.19019 L 382.39282,322.19019 C 380.84698,322.19019 379.74959,321.86935 379.10063,321.22769 C 378.45896,320.57873 378.13813,319.48133 378.13813,317.9355 L 378.13813,312.74019 L 376.19126,312.74019 L 376.19126,309.94019 L 378.13813,309.94019 L 378.13813,306.46206 L 382.05376,306.46206"
d="m 382.05376,306.46206 0,3.47813 4.03594,0 0,2.8 -4.03594,0 0,5.19531 c -1e-5,0.56875 0.11301,0.95521 0.33906,1.15937 0.22604,0.19688 0.67447,0.29532 1.34531,0.29532 l 2.0125,0 0,2.8 -3.35781,0 c -1.54584,0 -2.64323,-0.32084 -3.29219,-0.9625 -0.64167,-0.64896 -0.9625,-1.74636 -0.9625,-3.29219 l 0,-5.19531 -1.94687,0 0,-2.8 1.94687,0 0,-3.47813 3.91563,0"
inkscape:connector-curvature="0" />
<path
id="path13992"
d="M 392.77251,306.46206 L 392.77251,309.94019 L 396.80845,309.94019 L 396.80845,312.74019 L 392.77251,312.74019 L 392.77251,317.9355 C 392.77251,318.50425 392.88553,318.89071 393.11158,319.09487 C 393.33761,319.29175 393.78605,319.39019 394.45689,319.39019 L 396.46939,319.39019 L 396.46939,322.19019 L 393.11158,322.19019 C 391.56574,322.19019 390.46834,321.86935 389.81939,321.22769 C 389.17772,320.57873 388.85689,319.48133 388.85689,317.9355 L 388.85689,312.74019 L 386.91001,312.74019 L 386.91001,309.94019 L 388.85689,309.94019 L 388.85689,306.46206 L 392.77251,306.46206"
d="m 392.77251,306.46206 0,3.47813 4.03594,0 0,2.8 -4.03594,0 0,5.19531 c 0,0.56875 0.11302,0.95521 0.33907,1.15937 0.22603,0.19688 0.67447,0.29532 1.34531,0.29532 l 2.0125,0 0,2.8 -3.35781,0 c -1.54584,0 -2.64324,-0.32084 -3.29219,-0.9625 -0.64167,-0.64896 -0.9625,-1.74636 -0.9625,-3.29219 l 0,-5.19531 -1.94688,0 0,-2.8 1.94688,0 0,-3.47813 3.91562,0"
inkscape:connector-curvature="0" />
<path
id="path13994"
d="M 399.2147,305.17144 L 403.13033,305.17144 L 403.13033,322.19019 L 399.2147,322.19019 L 399.2147,305.17144"
d="m 399.2147,305.17144 3.91563,0 0,17.01875 -3.91563,0 0,-17.01875"
inkscape:connector-curvature="0" />
<path
id="path13996"
d="M 419.14282,316.03237 L 419.14282,317.148 L 409.98813,317.148 C 410.08293,318.06675 410.41469,318.75581 410.98345,319.21519 C 411.55219,319.67456 412.34698,319.90425 413.36782,319.90425 C 414.19177,319.90425 415.03396,319.78394 415.89438,319.54331 C 416.76208,319.2954 417.65166,318.92352 418.56313,318.42769 L 418.56313,321.44644 C 417.63708,321.79644 416.71104,322.05894 415.78501,322.23394 C 414.85896,322.41623 413.93292,322.50737 413.00688,322.50737 C 410.79021,322.50737 409.06573,321.94591 407.83345,320.823 C 406.60845,319.69279 405.99595,318.1105 405.99595,316.07612 C 405.99595,314.07821 406.59751,312.50686 407.80063,311.36206 C 409.01105,310.21728 410.67355,309.64489 412.78813,309.64487 C 414.71312,309.64489 416.25167,310.22457 417.40376,311.38394 C 418.56312,312.54332 419.14281,314.0928 419.14282,316.03237 M 415.11782,314.73081 C 415.11781,313.98707 414.89906,313.38915 414.46157,312.93706 C 414.03135,312.4777 413.46625,312.24801 412.76626,312.248 C 412.00792,312.24801 411.39177,312.46311 410.91782,312.89331 C 410.44386,313.31624 410.14855,313.92874 410.03188,314.73081 L 415.11782,314.73081"
d="m 419.14282,316.03237 0,1.11563 -9.15469,0 c 0.0948,0.91875 0.42656,1.60781 0.99532,2.06719 0.56874,0.45937 1.36353,0.68906 2.38437,0.68906 0.82395,0 1.66614,-0.12031 2.52656,-0.36094 0.8677,-0.24791 1.75728,-0.61979 2.66875,-1.11562 l 0,3.01875 c -0.92605,0.35 -1.85209,0.6125 -2.77812,0.7875 -0.92605,0.18229 -1.85209,0.27343 -2.77813,0.27343 -2.21667,0 -3.94115,-0.56146 -5.17343,-1.68437 -1.225,-1.13021 -1.8375,-2.7125 -1.8375,-4.74688 0,-1.99791 0.60156,-3.56926 1.80468,-4.71406 1.21042,-1.14478 2.87292,-1.71717 4.9875,-1.71719 1.92499,2e-5 3.46354,0.5797 4.61563,1.73907 1.15936,1.15938 1.73905,2.70886 1.73906,4.64843 m -4.025,-1.30156 c -10e-6,-0.74374 -0.21876,-1.34166 -0.65625,-1.79375 -0.43022,-0.45936 -0.99532,-0.68905 -1.69531,-0.68906 -0.75834,1e-5 -1.37449,0.21511 -1.84844,0.64531 -0.47396,0.42293 -0.76927,1.03543 -0.88594,1.8375 l 5.08594,0"
inkscape:connector-curvature="0" />
</g>
<g
@ -11130,19 +11130,19 @@
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:#488eff;font-family:Sans">
<path
id="path13999"
d="M 376.62875,339.50112 C 377.51104,339.50113 378.14176,339.33706 378.52094,339.00893 C 378.90739,338.68081 379.10062,338.14123 379.10063,337.39018 C 379.10062,336.64644 378.90739,336.11415 378.52094,335.7933 C 378.14176,335.47248 377.51104,335.31207 376.62875,335.31205 L 374.85688,335.31205 L 374.85688,339.50112 L 376.62875,339.50112 M 374.85688,342.41049 L 374.85688,348.59018 L 370.64594,348.59018 L 370.64594,332.26049 L 377.07719,332.26049 C 379.22822,332.26051 380.80322,332.62145 381.80219,333.3433 C 382.80843,334.06519 383.31155,335.20634 383.31157,336.76674 C 383.31155,337.84592 383.04905,338.73186 382.52407,339.42455 C 382.00634,340.11727 381.22249,340.62769 380.1725,340.9558 C 380.74853,341.08706 381.26259,341.38602 381.71469,341.85268 C 382.17405,342.31206 382.63707,343.01206 383.10375,343.95268 L 385.38969,348.59018 L 380.90532,348.59018 L 378.91469,344.53237 C 378.51364,343.71571 378.10531,343.15789 377.68969,342.85893 C 377.28135,342.55998 376.73447,342.4105 376.04907,342.41049 L 374.85688,342.41049"
d="m 376.62875,339.50112 c 0.88229,10e-6 1.51301,-0.16406 1.89219,-0.49219 0.38645,-0.32812 0.57968,-0.8677 0.57969,-1.61875 -1e-5,-0.74374 -0.19324,-1.27603 -0.57969,-1.59688 -0.37918,-0.32082 -1.0099,-0.48123 -1.89219,-0.48125 l -1.77187,0 0,4.18907 1.77187,0 m -1.77187,2.90937 0,6.17969 -4.21094,0 0,-16.32969 6.43125,0 c 2.15103,2e-5 3.72603,0.36096 4.725,1.08281 1.00624,0.72189 1.50936,1.86304 1.50938,3.42344 -2e-5,1.07918 -0.26252,1.96512 -0.7875,2.65781 -0.51773,0.69272 -1.30158,1.20314 -2.35157,1.53125 0.57603,0.13126 1.09009,0.43022 1.54219,0.89688 0.45936,0.45938 0.92238,1.15938 1.38906,2.1 l 2.28594,4.6375 -4.48437,0 -1.99063,-4.05781 c -0.40105,-0.81666 -0.80938,-1.37448 -1.225,-1.67344 -0.40834,-0.29895 -0.95522,-0.44843 -1.64062,-0.44844 l -1.19219,0"
inkscape:connector-curvature="0" />
<path
id="path14001"
d="M 393.53813,338.84487 C 392.67041,338.84488 392.00687,339.15842 391.5475,339.78549 C 391.09541,340.40529 390.86937,341.30217 390.86938,342.47612 C 390.86937,343.65008 391.09541,344.5506 391.5475,345.17768 C 392.00687,345.79747 392.67041,346.10737 393.53813,346.10737 C 394.39124,346.10737 395.04385,345.79747 395.49594,345.17768 C 395.94801,344.5506 396.17405,343.65008 396.17407,342.47612 C 396.17405,341.30217 395.94801,340.40529 395.49594,339.78549 C 395.04385,339.15842 394.39124,338.84488 393.53813,338.84487 M 393.53813,336.04487 C 395.64541,336.04488 397.28968,336.61363 398.47094,337.75112 C 399.65947,338.88863 400.25374,340.46363 400.25375,342.47612 C 400.25374,344.48862 399.65947,346.06362 398.47094,347.20112 C 397.28968,348.33862 395.64541,348.90737 393.53813,348.90737 C 391.42354,348.90737 389.76833,348.33862 388.5725,347.20112 C 387.38396,346.06362 386.78969,344.48862 386.78969,342.47612 C 386.78969,340.46363 387.38396,338.88863 388.5725,337.75112 C 389.76833,336.61363 391.42354,336.04488 393.53813,336.04487"
d="m 393.53813,338.84487 c -0.86772,10e-6 -1.53126,0.31355 -1.99063,0.94062 -0.45209,0.6198 -0.67813,1.51668 -0.67812,2.69063 -10e-6,1.17396 0.22603,2.07448 0.67812,2.70156 0.45937,0.61979 1.12291,0.92969 1.99063,0.92969 0.85311,0 1.50572,-0.3099 1.95781,-0.92969 0.45207,-0.62708 0.67811,-1.5276 0.67813,-2.70156 -2e-5,-1.17395 -0.22606,-2.07083 -0.67813,-2.69063 -0.45209,-0.62707 -1.1047,-0.94061 -1.95781,-0.94062 m 0,-2.8 c 2.10728,10e-6 3.75155,0.56876 4.93281,1.70625 1.18853,1.13751 1.7828,2.71251 1.78281,4.725 -1e-5,2.0125 -0.59428,3.5875 -1.78281,4.725 -1.18126,1.1375 -2.82553,1.70625 -4.93281,1.70625 -2.11459,0 -3.7698,-0.56875 -4.96563,-1.70625 -1.18854,-1.1375 -1.78281,-2.7125 -1.78281,-4.725 0,-2.01249 0.59427,-3.58749 1.78281,-4.725 1.19583,-1.13749 2.85104,-1.70624 4.96563,-1.70625"
inkscape:connector-curvature="0" />
<path
id="path14003"
d="M 403.10844,331.57143 L 407.02406,331.57143 L 407.02406,348.59018 L 403.10844,348.59018 L 403.10844,331.57143"
d="m 403.10844,331.57143 3.91562,0 0,17.01875 -3.91562,0 0,-17.01875"
inkscape:connector-curvature="0" />
<path
id="path14005"
d="M 410.80844,331.57143 L 414.72406,331.57143 L 414.72406,348.59018 L 410.80844,348.59018 L 410.80844,331.57143"
d="m 410.80844,331.57143 3.91562,0 0,17.01875 -3.91562,0 0,-17.01875"
inkscape:connector-curvature="0" />
</g>
<g
@ -11150,23 +11150,23 @@
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:#ffdc00;font-family:Sans">
<path
id="path14008"
d="M 359.44596,359.4605 L 366.43502,359.4605 C 368.51314,359.46052 370.10636,359.92354 371.21471,360.84957 C 372.33032,361.76833 372.88813,363.08083 372.88815,364.78707 C 372.88813,366.50062 372.33032,367.82041 371.21471,368.74644 C 370.10636,369.6652 368.51314,370.12457 366.43502,370.12457 L 363.6569,370.12457 L 363.6569,375.79019 L 359.44596,375.79019 L 359.44596,359.4605 M 363.6569,362.51207 L 363.6569,367.073 L 365.98658,367.073 C 366.80324,367.07301 367.43397,366.87614 367.87877,366.48238 C 368.32355,366.08135 368.54595,365.51624 368.54596,364.78707 C 368.54595,364.05791 368.32355,363.49645 367.87877,363.10269 C 367.43397,362.70895 366.80324,362.51208 365.98658,362.51207 L 363.6569,362.51207"
d="m 359.44596,359.4605 6.98906,0 c 2.07812,2e-5 3.67134,0.46304 4.77969,1.38907 1.11561,0.91876 1.67342,2.23126 1.67344,3.9375 -2e-5,1.71355 -0.55783,3.03334 -1.67344,3.95937 -1.10835,0.91876 -2.70157,1.37813 -4.77969,1.37813 l -2.77812,0 0,5.66562 -4.21094,0 0,-16.32969 m 4.21094,3.05157 0,4.56093 2.32968,0 c 0.81666,1e-5 1.44739,-0.19686 1.89219,-0.59062 0.44478,-0.40103 0.66718,-0.96614 0.66719,-1.69531 -10e-6,-0.72916 -0.22241,-1.29062 -0.66719,-1.68438 -0.4448,-0.39374 -1.07553,-0.59061 -1.89219,-0.59062 l -2.32968,0"
inkscape:connector-curvature="0" />
<path
id="path14010"
d="M 375.67721,363.54019 L 379.59283,363.54019 L 379.59283,375.79019 L 375.67721,375.79019 L 375.67721,363.54019 M 375.67721,358.77144 L 379.59283,358.77144 L 379.59283,361.96519 L 375.67721,361.96519 L 375.67721,358.77144"
d="m 375.67721,363.54019 3.91562,0 0,12.25 -3.91562,0 0,-12.25 m 0,-4.76875 3.91562,0 0,3.19375 -3.91562,0 0,-3.19375"
inkscape:connector-curvature="0" />
<path
id="path14012"
d="M 387.65377,360.06207 L 387.65377,363.54019 L 391.68971,363.54019 L 391.68971,366.34019 L 387.65377,366.34019 L 387.65377,371.5355 C 387.65377,372.10426 387.76679,372.49072 387.99284,372.69488 C 388.21887,372.89176 388.66731,372.99019 389.33815,372.99019 L 391.35065,372.99019 L 391.35065,375.79019 L 387.99284,375.79019 C 386.447,375.79019 385.3496,375.46936 384.70065,374.82769 C 384.05898,374.17873 383.73815,373.08134 383.73815,371.5355 L 383.73815,366.34019 L 381.79127,366.34019 L 381.79127,363.54019 L 383.73815,363.54019 L 383.73815,360.06207 L 387.65377,360.06207"
d="m 387.65377,360.06207 0,3.47812 4.03594,0 0,2.8 -4.03594,0 0,5.19531 c 0,0.56876 0.11302,0.95522 0.33907,1.15938 0.22603,0.19688 0.67447,0.29531 1.34531,0.29531 l 2.0125,0 0,2.8 -3.35781,0 c -1.54584,0 -2.64324,-0.32083 -3.29219,-0.9625 -0.64167,-0.64896 -0.9625,-1.74635 -0.9625,-3.29219 l 0,-5.19531 -1.94688,0 0,-2.8 1.94688,0 0,-3.47812 3.91562,0"
inkscape:connector-curvature="0" />
<path
id="path14014"
d="M 403.9944,363.923 L 403.9944,367.11675 C 403.46209,366.75218 402.92616,366.48239 402.38659,366.30738 C 401.85428,366.13239 401.30012,366.04489 400.72409,366.04488 C 399.63033,366.04489 398.7772,366.36572 398.16471,367.00738 C 397.5595,367.64176 397.25689,368.53134 397.2569,369.67613 C 397.25689,370.82093 397.5595,371.71415 398.16471,372.35582 C 398.7772,372.99019 399.63033,373.30738 400.72409,373.30738 C 401.33658,373.30738 401.91626,373.21628 402.46315,373.03394 C 403.0173,372.85165 403.52772,372.58186 403.9944,372.22457 L 403.9944,375.42925 C 403.38189,375.6553 402.75845,375.823 402.12409,375.93238 C 401.49699,376.04905 400.86626,376.10738 400.2319,376.10738 C 398.02252,376.10738 396.29439,375.54228 395.04752,374.41207 C 393.80065,373.27457 393.17721,371.69592 393.17721,369.67613 C 393.17721,367.65635 393.80065,366.08135 395.04752,364.95113 C 396.29439,363.81364 398.02252,363.24489 400.2319,363.24488 C 400.87356,363.24489 401.50428,363.30318 402.12409,363.41988 C 402.75116,363.52927 403.37459,363.69697 403.9944,363.923"
d="m 403.9944,363.923 0,3.19375 c -0.53231,-0.36457 -1.06824,-0.63436 -1.60781,-0.80937 -0.53231,-0.17499 -1.08647,-0.26249 -1.6625,-0.2625 -1.09376,1e-5 -1.94689,0.32084 -2.55938,0.9625 -0.60521,0.63438 -0.90782,1.52396 -0.90781,2.66875 -10e-6,1.1448 0.3026,2.03802 0.90781,2.67969 0.61249,0.63437 1.46562,0.95156 2.55938,0.95156 0.61249,0 1.19217,-0.0911 1.73906,-0.27344 0.55415,-0.18229 1.06457,-0.45208 1.53125,-0.80937 l 0,3.20468 c -0.61251,0.22605 -1.23595,0.39375 -1.87031,0.50313 -0.6271,0.11667 -1.25783,0.175 -1.89219,0.175 -2.20938,0 -3.93751,-0.5651 -5.18438,-1.69531 -1.24687,-1.1375 -1.87031,-2.71615 -1.87031,-4.73594 0,-2.01978 0.62344,-3.59478 1.87031,-4.725 1.24687,-1.13749 2.975,-1.70624 5.18438,-1.70625 0.64166,10e-6 1.27238,0.0583 1.89219,0.175 0.62707,0.10939 1.2505,0.27709 1.87031,0.50312"
inkscape:connector-curvature="0" />
<path
id="path14016"
d="M 419.71158,368.33082 L 419.71158,375.79019 L 415.77408,375.79019 L 415.77408,374.57613 L 415.77408,370.10269 C 415.77407,369.03082 415.74858,368.29437 415.69748,367.89332 C 415.65368,367.49228 415.57351,367.19697 415.45686,367.00738 C 415.30372,366.75218 415.09591,366.55531 414.83342,366.41675 C 414.57091,366.27093 414.27195,366.19801 413.93654,366.198 C 413.11987,366.19801 412.4782,366.5152 412.01154,367.14957 C 411.54487,367.77666 411.31154,368.64801 411.31154,369.76363 L 411.31154,375.79019 L 407.39592,375.79019 L 407.39592,358.77144 L 411.31154,358.77144 L 411.31154,365.33394 C 411.90216,364.61937 412.52925,364.09437 413.19279,363.75894 C 413.85633,363.41625 414.58914,363.24489 415.39123,363.24488 C 416.8058,363.24489 417.87768,363.67875 418.60686,364.54644 C 419.3433,365.41416 419.71153,366.67562 419.71154,368.33082"
d="m 419.71158,368.33082 0,7.45937 -3.9375,0 0,-1.21406 0,-4.47344 c -1e-5,-1.07187 -0.0255,-1.80832 -0.0766,-2.20937 -0.0438,-0.40104 -0.12397,-0.69635 -0.24062,-0.88594 -0.15314,-0.2552 -0.36095,-0.45207 -0.62344,-0.59063 -0.26251,-0.14582 -0.56147,-0.21874 -0.89688,-0.21875 -0.81667,1e-5 -1.45834,0.3172 -1.925,0.95157 -0.46667,0.62709 -0.7,1.49844 -0.7,2.61406 l 0,6.02656 -3.91562,0 0,-17.01875 3.91562,0 0,6.5625 c 0.59062,-0.71457 1.21771,-1.23957 1.88125,-1.575 0.66354,-0.34269 1.39635,-0.51405 2.19844,-0.51406 1.41457,10e-6 2.48645,0.43387 3.21563,1.30156 0.73644,0.86772 1.10467,2.12918 1.10468,3.78438"
inkscape:connector-curvature="0" />
</g>
<g
@ -11174,15 +11174,15 @@
style="font-size:22.39999962px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#73ff00;fill-rule:nonzero;enable-background:accumulate;font-family:Sans">
<path
id="path14040"
d="M 364.37094,385.86053 L 368.97563,385.86053 L 372.69438,391.67928 L 376.41313,385.86053 L 381.02875,385.86053 L 374.80532,395.31053 L 374.80532,402.19022 L 370.59438,402.19022 L 370.59438,395.31053 L 364.37094,385.86053"
d="m 364.37094,385.86053 4.60469,0 3.71875,5.81875 3.71875,-5.81875 4.61562,0 -6.22343,9.45 0,6.87969 -4.21094,0 0,-6.87969 -6.22344,-9.45"
inkscape:connector-curvature="0" />
<path
id="path14042"
d="M 386.13657,396.67772 C 385.31989,396.67772 384.70375,396.81626 384.28813,397.09334 C 383.87979,397.37043 383.67562,397.77876 383.67563,398.31834 C 383.67562,398.81418 383.83969,399.20428 384.16782,399.48865 C 384.50323,399.76574 384.96625,399.90428 385.55688,399.90428 C 386.29333,399.90428 386.91312,399.64178 387.41625,399.11678 C 387.91937,398.58449 388.17093,397.92095 388.17094,397.12615 L 388.17094,396.67772 L 386.13657,396.67772 M 392.11938,395.20115 L 392.11938,402.19022 L 388.17094,402.19022 L 388.17094,400.37459 C 387.64593,401.11834 387.05531,401.66157 386.39907,402.00428 C 385.74281,402.3397 384.94437,402.5074 384.00375,402.5074 C 382.735,402.5074 381.70323,402.13917 380.90844,401.40272 C 380.12094,400.65897 379.72719,399.69647 379.72719,398.51522 C 379.72719,397.07876 380.21938,396.02512 381.20375,395.35428 C 382.19542,394.68345 383.74854,394.34804 385.86313,394.34803 L 388.17094,394.34803 L 388.17094,394.04178 C 388.17093,393.422 387.92666,392.96991 387.43813,392.68553 C 386.94958,392.39387 386.1876,392.24804 385.15219,392.24803 C 384.31364,392.24804 383.53344,392.33193 382.81157,392.49959 C 382.08969,392.66731 381.41886,392.91887 380.79907,393.25428 L 380.79907,390.26834 C 381.63761,390.06419 382.47979,389.91106 383.32563,389.80897 C 384.17146,389.6996 385.01729,389.64492 385.86313,389.6449 C 388.07249,389.64492 389.66572,390.08242 390.64282,390.9574 C 391.62718,391.82512 392.11937,393.2397 392.11938,395.20115"
d="m 386.13657,396.67772 c -0.81668,0 -1.43282,0.13854 -1.84844,0.41562 -0.40834,0.27709 -0.61251,0.68542 -0.6125,1.225 -1e-5,0.49584 0.16406,0.88594 0.49219,1.17031 0.33541,0.27709 0.79843,0.41563 1.38906,0.41563 0.73645,0 1.35624,-0.2625 1.85937,-0.7875 0.50312,-0.53229 0.75468,-1.19583 0.75469,-1.99063 l 0,-0.44843 -2.03437,0 m 5.98281,-1.47657 0,6.98907 -3.94844,0 0,-1.81563 c -0.52501,0.74375 -1.11563,1.28698 -1.77187,1.62969 -0.65626,0.33542 -1.4547,0.50312 -2.39532,0.50312 -1.26875,0 -2.30052,-0.36823 -3.09531,-1.10468 -0.7875,-0.74375 -1.18125,-1.70625 -1.18125,-2.8875 0,-1.43646 0.49219,-2.4901 1.47656,-3.16094 0.99167,-0.67083 2.54479,-1.00624 4.65938,-1.00625 l 2.30781,0 0,-0.30625 c -10e-6,-0.61978 -0.24428,-1.07187 -0.73281,-1.35625 -0.48855,-0.29166 -1.25053,-0.43749 -2.28594,-0.4375 -0.83855,10e-6 -1.61875,0.0839 -2.34062,0.25156 -0.72188,0.16772 -1.39271,0.41928 -2.0125,0.75469 l 0,-2.98594 c 0.83854,-0.20415 1.68072,-0.35728 2.52656,-0.45937 0.84583,-0.10937 1.69166,-0.16405 2.5375,-0.16407 2.20936,2e-5 3.80259,0.43752 4.77969,1.3125 0.98436,0.86772 1.47655,2.2823 1.47656,4.24375"
inkscape:connector-curvature="0" />
<path
id="path14044"
d="M 394.68969,389.94022 L 398.49594,389.94022 L 400.55219,398.38397 L 402.61938,389.94022 L 405.88969,389.94022 L 407.94594,398.29647 L 410.01313,389.94022 L 413.81938,389.94022 L 410.59282,402.19022 L 406.31625,402.19022 L 404.24907,393.76834 L 402.19282,402.19022 L 397.91625,402.19022 L 394.68969,389.94022"
d="m 394.68969,389.94022 3.80625,0 2.05625,8.44375 2.06719,-8.44375 3.27031,0 2.05625,8.35625 2.06719,-8.35625 3.80625,0 -3.22656,12.25 -4.27657,0 -2.06718,-8.42188 -2.05625,8.42188 -4.27657,0 -3.22656,-12.25"
inkscape:connector-curvature="0" />
</g>
<g
@ -11190,43 +11190,43 @@
style="font-size:22.39999962px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-indent:0;text-align:end;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:end;baseline-shift:baseline;color:#000000;fill:#ff7e00;fill-rule:nonzero;enable-background:accumulate;font-family:Sans">
<path
id="path14019"
d="M 262.89598,409.86053 L 274.26004,409.86053 L 274.26004,413.04334 L 267.10692,413.04334 L 267.10692,416.08397 L 273.83348,416.08397 L 273.83348,419.26678 L 267.10692,419.26678 L 267.10692,426.19022 L 262.89598,426.19022 L 262.89598,409.86053"
d="m 262.89598,409.86053 11.36406,0 0,3.18281 -7.15312,0 0,3.04063 6.72656,0 0,3.18281 -6.72656,0 0,6.92344 -4.21094,0 0,-16.32969"
inkscape:connector-curvature="0" />
<path
id="path14021"
d="M 278.03348,409.17147 L 281.94911,409.17147 L 281.94911,426.19022 L 278.03348,426.19022 L 278.03348,409.17147"
d="m 278.03348,409.17147 3.91563,0 0,17.01875 -3.91563,0 0,-17.01875"
inkscape:connector-curvature="0" />
<path
id="path14023"
d="M 285.73348,413.94022 L 289.64911,413.94022 L 289.64911,426.19022 L 285.73348,426.19022 L 285.73348,413.94022 M 285.73348,409.17147 L 289.64911,409.17147 L 289.64911,412.36522 L 285.73348,412.36522 L 285.73348,409.17147"
d="m 285.73348,413.94022 3.91563,0 0,12.25 -3.91563,0 0,-12.25 m 0,-4.76875 3.91563,0 0,3.19375 -3.91563,0 0,-3.19375"
inkscape:connector-curvature="0" />
<path
id="path14025"
d="M 301.76785,424.11209 C 301.22826,424.82668 300.63399,425.35168 299.98504,425.68709 C 299.33608,426.02251 298.58504,426.19022 297.73192,426.19022 C 296.23712,426.19022 295.00118,425.60324 294.0241,424.42928 C 293.04702,423.24803 292.55848,421.74595 292.55848,419.92303 C 292.55848,418.09283 293.04702,416.59439 294.0241,415.42772 C 295.00118,414.25377 296.23712,413.66679 297.73192,413.66678 C 298.58504,413.66679 299.33608,413.8345 299.98504,414.1699 C 300.63399,414.50533 301.22826,415.03398 301.76785,415.75584 L 301.76785,413.94022 L 305.70535,413.94022 L 305.70535,424.95428 C 305.70534,426.92303 305.0819,428.42511 303.83504,429.46053 C 302.59545,430.50323 300.79441,431.02459 298.43192,431.02459 C 297.66629,431.02459 296.92618,430.96629 296.2116,430.84959 C 295.49702,430.73292 294.77879,430.55427 294.05692,430.31365 L 294.05692,427.26209 C 294.74233,427.65584 295.41316,427.94751 296.06942,428.13709 C 296.72566,428.33396 297.38556,428.4324 298.0491,428.4324 C 299.33243,428.4324 300.27305,428.15167 300.87098,427.59022 C 301.46889,427.02876 301.76784,426.15011 301.76785,424.95428 L 301.76785,424.11209 M 299.1866,416.48865 C 298.37722,416.48866 297.74649,416.78762 297.29442,417.38553 C 296.84233,417.98345 296.61629,418.82929 296.61629,419.92303 C 296.61629,421.04595 296.83504,421.89907 297.27254,422.4824 C 297.71004,423.05845 298.34806,423.34647 299.1866,423.34647 C 300.00326,423.34647 300.63764,423.04751 301.08973,422.44959 C 301.5418,421.85168 301.76784,421.00949 301.76785,419.92303 C 301.76784,418.82929 301.5418,417.98345 301.08973,417.38553 C 300.63764,416.78762 300.00326,416.48866 299.1866,416.48865"
d="m 301.76785,424.11209 c -0.53959,0.71459 -1.13386,1.23959 -1.78281,1.575 -0.64896,0.33542 -1.4,0.50313 -2.25312,0.50313 -1.4948,0 -2.73074,-0.58698 -3.70782,-1.76094 -0.97708,-1.18125 -1.46562,-2.68333 -1.46562,-4.50625 0,-1.8302 0.48854,-3.32864 1.46562,-4.49531 0.97708,-1.17395 2.21302,-1.76093 3.70782,-1.76094 0.85312,10e-6 1.60416,0.16772 2.25312,0.50312 0.64895,0.33543 1.24322,0.86408 1.78281,1.58594 l 0,-1.81562 3.9375,0 0,11.01406 c -1e-5,1.96875 -0.62345,3.47083 -1.87031,4.50625 -1.23959,1.0427 -3.04063,1.56406 -5.40312,1.56406 -0.76563,0 -1.50574,-0.0583 -2.22032,-0.175 -0.71458,-0.11667 -1.43281,-0.29532 -2.15468,-0.53594 l 0,-3.05156 c 0.68541,0.39375 1.35624,0.68542 2.0125,0.875 0.65624,0.19687 1.31614,0.29531 1.97968,0.29531 1.28333,0 2.22395,-0.28073 2.82188,-0.84218 0.59791,-0.56146 0.89686,-1.44011 0.89687,-2.63594 l 0,-0.84219 m -2.58125,-7.62344 c -0.80938,10e-6 -1.44011,0.29897 -1.89218,0.89688 -0.45209,0.59792 -0.67813,1.44376 -0.67813,2.5375 0,1.12292 0.21875,1.97604 0.65625,2.55937 0.4375,0.57605 1.07552,0.86407 1.91406,0.86407 0.81666,0 1.45104,-0.29896 1.90313,-0.89688 0.45207,-0.59791 0.67811,-1.4401 0.67812,-2.52656 -1e-5,-1.09374 -0.22605,-1.93958 -0.67812,-2.5375 -0.45209,-0.59791 -1.08647,-0.89687 -1.90313,-0.89688"
inkscape:connector-curvature="0" />
<path
id="path14027"
d="M 321.80535,418.73084 L 321.80535,426.19022 L 317.86785,426.19022 L 317.86785,424.97615 L 317.86785,420.50272 C 317.86784,419.43085 317.84235,418.69439 317.79125,418.29334 C 317.74745,417.89231 317.66728,417.597 317.55063,417.4074 C 317.39749,417.1522 317.18968,416.95533 316.92719,416.81678 C 316.66468,416.67095 316.36572,416.59804 316.03031,416.59803 C 315.21364,416.59804 314.57197,416.91523 314.10531,417.54959 C 313.63864,418.17668 313.40531,419.04804 313.40531,420.16365 L 313.40531,426.19022 L 309.48969,426.19022 L 309.48969,409.17147 L 313.40531,409.17147 L 313.40531,415.73397 C 313.99593,415.01939 314.62302,414.49439 315.28656,414.15897 C 315.9501,413.81627 316.68291,413.64492 317.485,413.6449 C 318.89957,413.64492 319.97145,414.07877 320.70063,414.94647 C 321.43707,415.81418 321.8053,417.07564 321.80531,418.73084"
d="m 321.80535,418.73084 0,7.45938 -3.9375,0 0,-1.21407 0,-4.47343 c -10e-6,-1.07187 -0.0255,-1.80833 -0.0766,-2.20938 -0.0438,-0.40103 -0.12397,-0.69634 -0.24062,-0.88594 -0.15314,-0.2552 -0.36095,-0.45207 -0.62344,-0.59062 -0.26251,-0.14583 -0.56147,-0.21874 -0.89688,-0.21875 -0.81667,1e-5 -1.45834,0.3172 -1.925,0.95156 -0.46667,0.62709 -0.7,1.49845 -0.7,2.61406 l 0,6.02657 -3.91562,0 0,-17.01875 3.91562,0 0,6.5625 c 0.59062,-0.71458 1.21771,-1.23958 1.88125,-1.575 0.66354,-0.3427 1.39635,-0.51405 2.19844,-0.51407 1.41457,2e-5 2.48645,0.43387 3.21563,1.30157 0.73644,0.86771 1.10467,2.12917 1.10468,3.78437"
inkscape:connector-curvature="0" />
<path
id="path14029"
d="M 329.73504,410.46209 L 329.73504,413.94022 L 333.77098,413.94022 L 333.77098,416.74022 L 329.73504,416.74022 L 329.73504,421.93553 C 329.73504,422.50428 329.84806,422.89074 330.0741,423.0949 C 330.30014,423.29178 330.74858,423.39022 331.41942,423.39022 L 333.43192,423.39022 L 333.43192,426.19022 L 330.0741,426.19022 C 328.52827,426.19022 327.43087,425.86938 326.78192,425.22772 C 326.14025,424.57876 325.81941,423.48136 325.81942,421.93553 L 325.81942,416.74022 L 323.87254,416.74022 L 323.87254,413.94022 L 325.81942,413.94022 L 325.81942,410.46209 L 329.73504,410.46209"
d="m 329.73504,410.46209 0,3.47813 4.03594,0 0,2.8 -4.03594,0 0,5.19531 c 0,0.56875 0.11302,0.95521 0.33906,1.15937 0.22604,0.19688 0.67448,0.29532 1.34532,0.29532 l 2.0125,0 0,2.8 -3.35782,0 c -1.54583,0 -2.64323,-0.32084 -3.29218,-0.9625 -0.64167,-0.64896 -0.96251,-1.74636 -0.9625,-3.29219 l 0,-5.19531 -1.94688,0 0,-2.8 1.94688,0 0,-3.47813 3.91562,0"
inkscape:connector-curvature="0" />
<path
id="path14031"
d="M 344.13973,409.86053 L 349.49911,409.86053 L 353.21786,418.59959 L 356.95848,409.86053 L 362.30692,409.86053 L 362.30692,426.19022 L 358.32567,426.19022 L 358.32567,414.24647 L 354.56317,423.05115 L 351.89442,423.05115 L 348.13192,414.24647 L 348.13192,426.19022 L 344.13973,426.19022 L 344.13973,409.86053"
d="m 344.13973,409.86053 5.35938,0 3.71875,8.73906 3.74062,-8.73906 5.34844,0 0,16.32969 -3.98125,0 0,-11.94375 -3.7625,8.80468 -2.66875,0 -3.7625,-8.80468 0,11.94375 -3.99219,0 0,-16.32969"
inkscape:connector-curvature="0" />
<path
id="path14033"
d="M 372.10692,416.4449 C 371.2392,416.44491 370.57566,416.75845 370.11629,417.38553 C 369.66421,418.00533 369.43816,418.9022 369.43817,420.07615 C 369.43816,421.25012 369.66421,422.15064 370.11629,422.77772 C 370.57566,423.39751 371.2392,423.70741 372.10692,423.7074 C 372.96004,423.70741 373.61264,423.39751 374.06473,422.77772 C 374.5168,422.15064 374.74285,421.25012 374.74286,420.07615 C 374.74285,418.9022 374.5168,418.00533 374.06473,417.38553 C 373.61264,416.75845 372.96004,416.44491 372.10692,416.4449 M 372.10692,413.6449 C 374.2142,413.64492 375.85847,414.21367 377.03973,415.35115 C 378.22826,416.48866 378.82253,418.06366 378.82254,420.07615 C 378.82253,422.08866 378.22826,423.66366 377.03973,424.80115 C 375.85847,425.93865 374.2142,426.5074 372.10692,426.5074 C 369.99233,426.5074 368.33712,425.93865 367.14129,424.80115 C 365.95275,423.66366 365.35848,422.08866 365.35848,420.07615 C 365.35848,418.06366 365.95275,416.48866 367.14129,415.35115 C 368.33712,414.21367 369.99233,413.64492 372.10692,413.6449"
d="m 372.10692,416.4449 c -0.86772,10e-6 -1.53126,0.31355 -1.99063,0.94063 -0.45208,0.6198 -0.67813,1.51667 -0.67812,2.69062 -1e-5,1.17397 0.22604,2.07449 0.67812,2.70157 0.45937,0.61979 1.12291,0.92969 1.99063,0.92968 0.85312,10e-6 1.50572,-0.30989 1.95781,-0.92968 0.45207,-0.62708 0.67812,-1.5276 0.67813,-2.70157 -1e-5,-1.17395 -0.22606,-2.07082 -0.67813,-2.69062 -0.45209,-0.62708 -1.10469,-0.94062 -1.95781,-0.94063 m 0,-2.8 c 2.10728,2e-5 3.75155,0.56877 4.93281,1.70625 1.18853,1.13751 1.7828,2.71251 1.78281,4.725 -1e-5,2.01251 -0.59428,3.58751 -1.78281,4.725 -1.18126,1.1375 -2.82553,1.70625 -4.93281,1.70625 -2.11459,0 -3.7698,-0.56875 -4.96563,-1.70625 -1.18854,-1.13749 -1.78281,-2.71249 -1.78281,-4.725 0,-2.01249 0.59427,-3.58749 1.78281,-4.725 1.19583,-1.13748 2.85104,-1.70623 4.96563,-1.70625"
inkscape:connector-curvature="0" />
<path
id="path14035"
d="M 390.0116,415.73397 L 390.0116,409.17147 L 393.9491,409.17147 L 393.9491,426.19022 L 390.0116,426.19022 L 390.0116,424.41834 C 389.47201,425.14022 388.87774,425.66886 388.22879,426.00428 C 387.57982,426.3397 386.82878,426.5074 385.97566,426.5074 C 384.46628,426.5074 383.2267,425.90949 382.25691,424.71365 C 381.28712,423.51053 380.80222,421.9647 380.80223,420.07615 C 380.80222,418.18762 381.28712,416.64543 382.25691,415.44959 C 383.2267,414.24648 384.46628,413.64492 385.97566,413.6449 C 386.82149,413.64492 387.56888,413.81627 388.21785,414.15897 C 388.87409,414.49439 389.47201,415.01939 390.0116,415.73397 M 387.43035,423.66365 C 388.26888,423.66366 388.9069,423.35741 389.34441,422.7449 C 389.78919,422.13241 390.01159,421.24283 390.0116,420.07615 C 390.01159,418.90949 389.78919,418.01991 389.34441,417.4074 C 388.9069,416.79491 388.26888,416.48866 387.43035,416.48865 C 386.59909,416.48866 385.96107,416.79491 385.51629,417.4074 C 385.07878,418.01991 384.86003,418.90949 384.86004,420.07615 C 384.86003,421.24283 385.07878,422.13241 385.51629,422.7449 C 385.96107,423.35741 386.59909,423.66366 387.43035,423.66365"
d="m 390.0116,415.73397 0,-6.5625 3.9375,0 0,17.01875 -3.9375,0 0,-1.77188 c -0.53959,0.72188 -1.13386,1.25052 -1.78281,1.58594 -0.64897,0.33542 -1.40001,0.50312 -2.25313,0.50312 -1.50938,0 -2.74896,-0.59791 -3.71875,-1.79375 -0.96979,-1.20312 -1.45469,-2.74895 -1.45468,-4.6375 -1e-5,-1.88853 0.48489,-3.43072 1.45468,-4.62656 0.96979,-1.20311 2.20937,-1.80467 3.71875,-1.80469 0.84583,2e-5 1.59322,0.17137 2.24219,0.51407 0.65624,0.33542 1.25416,0.86042 1.79375,1.575 m -2.58125,7.92968 c 0.83853,10e-6 1.47655,-0.30624 1.91406,-0.91875 0.44478,-0.61249 0.66718,-1.50207 0.66719,-2.66875 -10e-6,-1.16666 -0.22241,-2.05624 -0.66719,-2.66875 -0.43751,-0.61249 -1.07553,-0.91874 -1.91406,-0.91875 -0.83126,10e-6 -1.46928,0.30626 -1.91406,0.91875 -0.43751,0.61251 -0.65626,1.50209 -0.65625,2.66875 -1e-5,1.16668 0.21874,2.05626 0.65625,2.66875 0.44478,0.61251 1.0828,0.91876 1.91406,0.91875"
inkscape:connector-curvature="0" />
<path
id="path14037"
d="M 409.9616,420.0324 L 409.9616,421.14803 L 400.80691,421.14803 C 400.90171,422.06678 401.23347,422.75584 401.80223,423.21522 C 402.37097,423.67459 403.16576,423.90428 404.1866,423.90428 C 405.01055,423.90428 405.85274,423.78397 406.71316,423.54334 C 407.58086,423.29543 408.47044,422.92355 409.38191,422.42772 L 409.38191,425.44647 C 408.45586,425.79647 407.52982,426.05897 406.60379,426.23397 C 405.67774,426.41626 404.7517,426.5074 403.82566,426.5074 C 401.60899,426.5074 399.88451,425.94595 398.65223,424.82303 C 397.42723,423.69282 396.81473,422.11053 396.81473,420.07615 C 396.81473,418.07825 397.41629,416.50689 398.61941,415.36209 C 399.82983,414.21731 401.49233,413.64492 403.60691,413.6449 C 405.5319,413.64492 407.07045,414.2246 408.22254,415.38397 C 409.3819,416.54335 409.96159,418.09283 409.9616,420.0324 M 405.9366,418.73084 C 405.93659,417.9871 405.71784,417.38918 405.28035,416.93709 C 404.85013,416.47773 404.28503,416.24804 403.58504,416.24803 C 402.8267,416.24804 402.21055,416.46314 401.7366,416.89334 C 401.26264,417.31627 400.96733,417.92877 400.85066,418.73084 L 405.9366,418.73084"
d="m 409.9616,420.0324 0,1.11563 -9.15469,0 c 0.0948,0.91875 0.42656,1.60781 0.99532,2.06719 0.56874,0.45937 1.36353,0.68906 2.38437,0.68906 0.82395,0 1.66614,-0.12031 2.52656,-0.36094 0.8677,-0.24791 1.75728,-0.61979 2.66875,-1.11562 l 0,3.01875 c -0.92605,0.35 -1.85209,0.6125 -2.77812,0.7875 -0.92605,0.18229 -1.85209,0.27343 -2.77813,0.27343 -2.21667,0 -3.94115,-0.56145 -5.17343,-1.68437 -1.225,-1.13021 -1.8375,-2.7125 -1.8375,-4.74688 0,-1.9979 0.60156,-3.56926 1.80468,-4.71406 1.21042,-1.14478 2.87292,-1.71717 4.9875,-1.71719 1.92499,2e-5 3.46354,0.5797 4.61563,1.73907 1.15936,1.15938 1.73905,2.70886 1.73906,4.64843 m -4.025,-1.30156 c -10e-6,-0.74374 -0.21876,-1.34166 -0.65625,-1.79375 -0.43022,-0.45936 -0.99532,-0.68905 -1.69531,-0.68906 -0.75834,10e-6 -1.37449,0.21511 -1.84844,0.64531 -0.47396,0.42293 -0.76927,1.03543 -0.88594,1.8375 l 5.08594,0"
inkscape:connector-curvature="0" />
</g>
</g>
@ -11234,43 +11234,43 @@
<g
inkscape:groupmode="layer"
id="layer3"
inkscape:label="ppm-nano"
inkscape:label="nano-ppm"
style="display:none"
sodipodi:insensitive="true">
<g
id="ppm-nano">
id="nano-ppm">
<path
sodipodi:nodetypes="ccc"
style="fill:none;stroke:#6b6b6b;stroke-width:1.21428466;stroke-linecap:butt;stroke-linejoin:miter;display:inline"
inkscape:connector-curvature="0"
d="M 423.36407,327.33254 L 528.564,326.77654 L 528.564,240.51434"
d="m 423.36407,327.33254 105.19993,-0.556 0,-86.2622"
id="path8856-0-2" />
<path
sodipodi:nodetypes="ccc"
style="fill:none;stroke:#ec1d00;stroke-width:5.61390018;stroke-linecap:butt;stroke-linejoin:miter;display:inline"
inkscape:connector-curvature="0"
d="M 423.36407,318.93254 L 519.6,318.44854 L 519.6,240.51434"
d="m 423.36407,318.93254 96.23593,-0.484 0,-77.9342"
id="path8856-1-20-8" />
<path
sodipodi:nodetypes="ccc"
style="fill:none;stroke:#ffffff;stroke-width:5.17476749;stroke-linecap:butt;stroke-linejoin:miter;display:inline"
inkscape:connector-curvature="0"
d="M 423.36407,324.13254 L 525.36407,323.72054 L 525.52367,240.51434"
d="m 423.36407,324.13254 102,-0.412 0.1596,-83.2062"
id="path8856-1-3-9-1" />
<path
sodipodi:nodetypes="ccc"
style="fill:none;stroke:#000000;stroke-width:5.61390018;stroke-linecap:butt;stroke-linejoin:miter;display:inline"
inkscape:connector-curvature="0"
d="M 423.36407,313.33254 L 514,313.12694 L 514,240.51434"
d="M 423.36407,313.33254 514,313.12694 l 0,-72.6126"
id="path8856-1-5-6-5" />
<path
id="path9857-3-5"
d="M 231.51627,406.89645 C 199.17943,402.41438 156.11612,419.77498 144.94286,471.61434"
d="m 231.51627,406.89645 c -32.33684,-4.48207 -75.40015,12.87853 -86.57341,64.71789"
inkscape:connector-curvature="0"
style="fill:none;stroke:#777777;stroke-width:5.80000019;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;display:inline" />
<path
style="color:#000000;fill:url(#linearGradient13896);fill-rule:nonzero;stroke:#000000;stroke-width:3.09599996;stroke-miterlimit:4;stroke-dasharray:none;display:inline;enable-background:accumulate"
d="M 236.31356,289.05542 L 423.35356,289.05542 C 426.94348,289.05542 429.83356,291.9455 429.83356,295.53542 L 429.83356,304.37557 L 423.83356,304.37557 L 423.83356,426.73558 L 429.834,426.73558 L 429.83356,436.97542 C 429.8334,440.56534 426.94348,443.45542 423.35356,443.45542 L 236.31356,443.45542 C 232.72364,443.45542 229.83356,440.56534 229.83356,436.97542 L 229.83356,295.53542 C 229.83356,291.9455 232.72364,289.05542 236.31356,289.05542 z"
d="m 236.31356,289.05542 187.04,0 c 3.58992,0 6.48,2.89008 6.48,6.48 l 0,8.84015 -6,0 0,122.36001 6.00044,0 -4.4e-4,10.23984 c -1.6e-4,3.58992 -2.89008,6.48 -6.48,6.48 l -187.04,0 c -3.58992,0 -6.48,-2.89008 -6.48,-6.48 l 0,-141.44 c 0,-3.58992 2.89008,-6.48 6.48,-6.48 z"
id="rect8853-0-6"
inkscape:connector-curvature="0"
sodipodi:nodetypes="sssccccssssss" />
@ -11279,39 +11279,39 @@
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;font-family:Sans">
<path
id="path13900"
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 6.98907,0 c 2.07811,10e-6 3.67134,0.46303 4.77968,1.38906 1.11561,0.91876 1.67343,2.23126 1.67344,3.9375 -1e-5,1.71355 -0.55783,3.03334 -1.67344,3.95937 -1.10834,0.91876 -2.70157,1.37813 -4.77968,1.37813 l -2.77813,0 0,5.66562 -4.21094,0 0,-16.32968 m 4.21094,3.05156 0,4.56094 2.32969,0 c 0.81666,1e-5 1.44738,-0.19687 1.89219,-0.59063 0.44478,-0.40103 0.66717,-0.96613 0.66718,-1.69531 -1e-5,-0.72916 -0.2224,-1.29061 -0.66718,-1.68438 -0.44481,-0.39373 -1.07553,-0.59061 -1.89219,-0.59062 l -2.32969,0"
inkscape:connector-curvature="0" />
<path
id="path13902"
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 6.98907,0 c 2.07811,10e-6 3.67134,0.46303 4.77968,1.38906 1.11561,0.91876 1.67343,2.23126 1.67344,3.9375 -1e-5,1.71355 -0.55783,3.03334 -1.67344,3.95937 -1.10834,0.91876 -2.70157,1.37813 -4.77968,1.37813 l -2.77813,0 0,5.66562 -4.21094,0 0,-16.32968 m 4.21094,3.05156 0,4.56094 2.32969,0 c 0.81666,1e-5 1.44738,-0.19687 1.89219,-0.59063 0.44478,-0.40103 0.66717,-0.96613 0.66718,-1.69531 -1e-5,-0.72916 -0.2224,-1.29061 -0.66718,-1.68438 -0.44481,-0.39373 -1.07553,-0.59061 -1.89219,-0.59062 l -2.32969,0"
inkscape:connector-curvature="0" />
<path
id="path13904"
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 5.35938,0 3.71875,8.73906 3.74062,-8.73906 5.34844,0 0,16.32968 -3.98125,0 0,-11.94375 -3.7625,8.80469 -2.66875,0 -3.7625,-8.80469 0,11.94375 -3.99219,0 0,-16.32968"
inkscape:connector-curvature="0" />
<path
id="path13906"
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 0,3.45625 c -0.89688,-0.40103 -1.77188,-0.70363 -2.625,-0.90781 -0.85313,-0.20416 -1.65886,-0.30624 -2.41718,-0.30625 -1.00626,1e-5 -1.75001,0.13855 -2.23125,0.41562 -0.48126,0.2771 -0.72188,0.70731 -0.72188,1.29063 0,0.43751 0.16041,0.78022 0.48125,1.02812 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 0.76561,0.74375 1.14843,1.80104 1.14844,3.17187 -1e-5,1.80105 -0.53595,3.14271 -1.60781,4.025 -1.0646,0.875 -2.69428,1.3125 -4.88906,1.3125 -1.03543,0 -2.07449,-0.0984 -3.11719,-0.29531 -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 0.97708,0.27709 1.9177,0.41563 2.82188,0.41563 0.91874,0 1.62238,-0.15312 2.11094,-0.45938 0.48853,-0.30624 0.7328,-0.74374 0.73281,-1.3125 -1e-5,-0.51041 -0.16772,-0.90416 -0.50313,-1.18125 -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 -0.75105,-0.76562 -1.12657,-1.79739 -1.12656,-3.09531 -10e-6,-1.62603 0.52499,-2.87655 1.575,-3.75157 1.04999,-0.87498 2.55936,-1.31248 4.52812,-1.3125 0.89687,2e-5 1.81926,0.0693 2.76719,0.20782 0.9479,0.13126 1.92863,0.33178 2.94218,0.60156"
inkscape:connector-curvature="0" />
<path
id="path13908"
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 3.91562,0 0,12.25 -3.91562,0 0,-12.25 m 0,-4.76875 3.91562,0 0,3.19375 -3.91562,0 0,-3.19375"
inkscape:connector-curvature="0" />
<path
id="path13910"
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 -0.64897,0.33542 -1.40001,0.50312 -2.25313,0.50312 -1.4948,0 -2.73073,-0.58697 -3.70781,-1.76093 -0.97709,-1.18125 -1.46563,-2.68333 -1.46563,-4.50625 0,-1.8302 0.48854,-3.32864 1.46563,-4.49532 0.97708,-1.17394 2.21301,-1.76092 3.70781,-1.76093 0.85312,10e-6 1.60416,0.16772 2.25313,0.50312 0.64894,0.33543 1.24321,0.86408 1.78281,1.58594 l 0,-1.81563 3.9375,0 0,11.01407 c -2e-5,1.96875 -0.62345,3.47083 -1.87032,4.50625 -1.23959,1.0427 -3.04063,1.56405 -5.40312,1.56406 -0.76563,-10e-6 -1.50573,-0.0583 -2.22031,-0.175 -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 0.65624,0.19687 1.31614,0.29531 1.97969,0.29531 1.28332,0 2.22395,-0.28073 2.82187,-0.84219 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 -0.45209,0.59792 -0.67813,1.44375 -0.67812,2.5375 -10e-6,1.12292 0.21874,1.97604 0.65625,2.55937 0.43749,0.57605 1.07551,0.86407 1.91406,0.86406 0.81666,10e-6 1.45103,-0.29895 1.90312,-0.89687 0.45208,-0.59791 0.67812,-1.4401 0.67813,-2.52656 -1e-5,-1.09375 -0.22605,-1.93958 -0.67813,-2.5375 -0.45209,-0.59791 -1.08646,-0.89687 -1.90312,-0.89688"
inkscape:connector-curvature="0" />
<path
id="path13912"
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 0,7.45937 -3.9375,0 0,-1.21406 0,-4.49531 c -10e-6,-1.05729 -0.0255,-1.78645 -0.0766,-2.1875 -0.0438,-0.40103 -0.12397,-0.69635 -0.24063,-0.88594 -0.15313,-0.2552 -0.36095,-0.45207 -0.62344,-0.59062 -0.26251,-0.14583 -0.56146,-0.21874 -0.89687,-0.21875 -0.81668,1e-5 -1.45834,0.31719 -1.925,0.95156 -0.46667,0.62709 -0.70001,1.49844 -0.7,2.61406 l 0,6.02656 -3.91563,0 0,-12.25 3.91563,0 0,1.79375 c 0.59062,-0.71457 1.2177,-1.23957 1.88125,-1.575 0.66353,-0.34269 1.39634,-0.51405 2.19844,-0.51406 1.41457,1e-5 2.48644,0.43387 3.21562,1.30156 0.73645,0.86772 1.10467,2.12918 1.10469,3.78438"
inkscape:connector-curvature="0" />
<path
id="path13914"
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 -0.40834,0.27709 -0.6125,0.68542 -0.6125,1.225 0,0.49584 0.16406,0.88594 0.49219,1.17031 0.33541,0.27709 0.79843,0.41563 1.38906,0.41563 0.73645,0 1.35624,-0.2625 1.85938,-0.7875 0.50311,-0.53229 0.75467,-1.19583 0.75468,-1.99063 l 0,-0.44844 -2.03437,0 m 5.98281,-1.47656 0,6.98906 -3.94844,0 0,-1.81562 c -0.525,0.74375 -1.11563,1.28698 -1.77187,1.62969 -0.65626,0.33541 -1.45469,0.50312 -2.39531,0.50312 -1.26876,0 -2.30053,-0.36823 -3.09532,-1.10469 -0.7875,-0.74374 -1.18125,-1.70624 -1.18125,-2.8875 0,-1.43645 0.49219,-2.49009 1.47657,-3.16093 0.99166,-0.67083 2.54478,-1.00625 4.65937,-1.00625 l 2.30781,0 0,-0.30625 c -1e-5,-0.61979 -0.24428,-1.07187 -0.73281,-1.35625 -0.48855,-0.29166 -1.25053,-0.43749 -2.28594,-0.4375 -0.83854,10e-6 -1.61875,0.0839 -2.34062,0.25156 -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 0.84583,-0.10936 1.69166,-0.16405 2.5375,-0.16406 2.20937,1e-5 3.80259,0.43751 4.77969,1.3125 0.98436,0.86772 1.47655,2.2823 1.47656,4.24375"
inkscape:connector-curvature="0" />
<path
id="path13916"
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 3.91563,0 0,17.01875 -3.91563,0 0,-17.01875"
inkscape:connector-curvature="0" />
</g>
</g>
@ -11319,22 +11319,22 @@
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="sbus-nano"
inkscape:label="nano-sbus"
style="display:none"
sodipodi:insensitive="true">
<g
style="display:inline"
id="sbus-nano"
id="nano-sbus"
transform="matrix(0.4,0,0,0.4,44.451336,-221.73416)">
<path
id="path9857-8-5-2-3"
d="M 1487.3483,1530 C 1537.6483,1528.91 1602.3483,1535.3 1642.3483,1566.6"
d="m 1487.3483,1530 c 50.3,-1.09 115,5.3 155,36.6"
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" />
<path
id="path9857-8-8-1"
d="M 1250,1530 C 1185.1,1524.03 1129,1544.3 1079,1570.7"
d="m 1250,1530 c -64.9,-5.97 -121,14.3 -171,40.7"
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" />
@ -11342,19 +11342,19 @@
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 1392.571,1152.8337"
d="m 1392.571,1323.8556 0,-171.0219"
id="path8856-5-1-7-1-9-5-4" />
<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 1362.571,1152.8347"
d="m 1362.571,1323.8556 0,-171.0209"
id="path8856-1-2-1-9" />
<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 1347.571,1152.8347"
d="m 1347.571,1323.8556 0,-171.0209"
id="path8856-1-5-7-7-2" />
<rect
rx="11.5"
@ -11401,13 +11401,13 @@
<g
inkscape:groupmode="layer"
id="layer1"
inkscape:label="satellite-nano"
inkscape:label="nano-satellite"
style="display:none"
sodipodi:insensitive="true">
<g
style="display:inline"
transform="matrix(0.4,0,0,0.4,-16.455057,-574.3857)"
id="satellite-nano"
id="nano-satellite"
inkscape:export-filename="/home/laurent/Images/nano_rc_input.png"
inkscape:export-xdpi="300"
inkscape:export-ydpi="300">
@ -11415,13 +11415,13 @@
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 1250,1530 C 1185.1,1524.03 1129,1544.3 1079,1570.7"
d="m 1250,1530 c -64.9,-5.97 -121,14.3 -171,40.7"
id="path12004" />
<path
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 1490,1530 C 1540.3,1528.91 1605,1535.3 1645,1566.6"
d="m 1490,1530 c 50.3,-1.09 115,5.3 155,36.6"
id="path12006" />
<g
style="stroke-width:20.94064903;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none"
@ -11432,25 +11432,25 @@
sodipodi:nodetypes="cc"
style="fill:#cccccc;stroke:#1f4697"
inkscape:connector-curvature="0"
d="M 2206,1470 L 1891.3555,1470"
d="m 2206,1470 -314.6445,0"
id="path12010" />
<path
sodipodi:nodetypes="cc"
style="fill:#cccccc;stroke:#ec6004"
inkscape:connector-curvature="0"
d="M 2206,1485 L 1891.3555,1485"
d="m 2206,1485 -314.6445,0"
id="path12012" />
<path
sodipodi:nodetypes="cc"
style="fill:none;stroke:#d81900"
inkscape:connector-curvature="0"
d="M 2206,1455 L 1891.3555,1455"
d="m 2206,1455 -314.6445,0"
id="path12014" />
<path
sodipodi:nodetypes="cc"
style="fill:#cccccc;stroke:#000000"
inkscape:connector-curvature="0"
d="M 2206,1440 L 1891.3555,1440"
d="m 2206,1440 -314.6445,0"
id="path12016" />
</g>
<rect
@ -12540,7 +12540,7 @@
</g>
<path
transform="matrix(0,0.40146247,-0.40146247,0,1015.7912,553.33859)"
d="M -12.73456,572.3067 A 23.877298,23.877298 0 1 1 -60.489157,572.3067 A 23.877298,23.877298 0 1 1 -12.73456,572.3067 z"
d="m -12.73456,572.3067 c 0,13.18707 -10.690231,23.8773 -23.877298,23.8773 -13.187068,0 -23.877299,-10.69023 -23.877299,-23.8773 0,-13.18707 10.690231,-23.8773 23.877299,-23.8773 13.187067,0 23.877298,10.69023 23.877298,23.8773 z"
sodipodi:ry="23.877298"
sodipodi:rx="23.877298"
sodipodi:cy="572.3067"
@ -12556,7 +12556,7 @@
sodipodi:cy="572.3067"
sodipodi:rx="23.877298"
sodipodi:ry="23.877298"
d="M -12.73456,572.3067 A 23.877298,23.877298 0 1 1 -60.489157,572.3067 A 23.877298,23.877298 0 1 1 -12.73456,572.3067 z"
d="m -12.73456,572.3067 c 0,13.18707 -10.690231,23.8773 -23.877298,23.8773 -13.187068,0 -23.877299,-10.69023 -23.877299,-23.8773 0,-13.18707 10.690231,-23.8773 23.877299,-23.8773 13.187067,0 23.877298,10.69023 23.877298,23.8773 z"
transform="matrix(0,0.40146247,-0.40146247,0,819.07458,553.33859)" />
<path
sodipodi:type="arc"
@ -12566,11 +12566,11 @@
sodipodi:cy="572.3067"
sodipodi:rx="23.877298"
sodipodi:ry="23.877298"
d="M -12.73456,572.3067 A 23.877298,23.877298 0 1 1 -60.489157,572.3067 A 23.877298,23.877298 0 1 1 -12.73456,572.3067 z"
d="m -12.73456,572.3067 c 0,13.18707 -10.690231,23.8773 -23.877298,23.8773 -13.187068,0 -23.877299,-10.69023 -23.877299,-23.8773 0,-13.18707 10.690231,-23.8773 23.877299,-23.8773 13.187067,0 23.877298,10.69023 23.877298,23.8773 z"
transform="matrix(0,0.40146247,-0.40146247,0,1015.7912,750.0552)" />
<path
transform="matrix(0,0.40146247,-0.40146247,0,819.07458,750.0552)"
d="M -12.73456,572.3067 A 23.877298,23.877298 0 1 1 -60.489157,572.3067 A 23.877298,23.877298 0 1 1 -12.73456,572.3067 z"
d="m -12.73456,572.3067 c 0,13.18707 -10.690231,23.8773 -23.877298,23.8773 -13.187068,0 -23.877299,-10.69023 -23.877299,-23.8773 0,-13.18707 10.690231,-23.8773 23.877299,-23.8773 13.187067,0 23.877298,10.69023 23.877298,23.8773 z"
sodipodi:ry="23.877298"
sodipodi:rx="23.877298"
sodipodi:cy="572.3067"
@ -12719,11 +12719,11 @@
sodipodi:cy="572.3067"
sodipodi:rx="23.877298"
sodipodi:ry="23.877298"
d="M -12.73456,572.3067 A 23.877298,23.877298 0 1 1 -60.489157,572.3067 A 23.877298,23.877298 0 1 1 -12.73456,572.3067 z"
d="m -12.73456,572.3067 c 0,13.18707 -10.690231,23.8773 -23.877298,23.8773 -13.187068,0 -23.877299,-10.69023 -23.877299,-23.8773 0,-13.18707 10.690231,-23.8773 23.877299,-23.8773 13.187067,0 23.877298,10.69023 23.877298,23.8773 z"
transform="matrix(0,-0.40146247,0.40146247,0,260.05873,720.82148)" />
<path
transform="matrix(0,-0.40146247,0.40146247,0,260.05873,524.10489)"
d="M -12.73456,572.3067 A 23.877298,23.877298 0 1 1 -60.489157,572.3067 A 23.877298,23.877298 0 1 1 -12.73456,572.3067 z"
d="m -12.73456,572.3067 c 0,13.18707 -10.690231,23.8773 -23.877298,23.8773 -13.187068,0 -23.877299,-10.69023 -23.877299,-23.8773 0,-13.18707 10.690231,-23.8773 23.877299,-23.8773 13.187067,0 23.877298,10.69023 23.877298,23.8773 z"
sodipodi:ry="23.877298"
sodipodi:rx="23.877298"
sodipodi:cy="572.3067"
@ -12847,7 +12847,7 @@
</g>
<path
transform="matrix(0,-0.40146247,0.40146247,0,456.77534,720.82148)"
d="M -12.73456,572.3067 A 23.877298,23.877298 0 1 1 -60.489157,572.3067 A 23.877298,23.877298 0 1 1 -12.73456,572.3067 z"
d="m -12.73456,572.3067 c 0,13.18707 -10.690231,23.8773 -23.877298,23.8773 -13.187068,0 -23.877299,-10.69023 -23.877299,-23.8773 0,-13.18707 10.690231,-23.8773 23.877299,-23.8773 13.187067,0 23.877298,10.69023 23.877298,23.8773 z"
sodipodi:ry="23.877298"
sodipodi:rx="23.877298"
sodipodi:cy="572.3067"
@ -12863,7 +12863,7 @@
sodipodi:cy="572.3067"
sodipodi:rx="23.877298"
sodipodi:ry="23.877298"
d="M -12.73456,572.3067 A 23.877298,23.877298 0 1 1 -60.489157,572.3067 A 23.877298,23.877298 0 1 1 -12.73456,572.3067 z"
d="m -12.73456,572.3067 c 0,13.18707 -10.690231,23.8773 -23.877298,23.8773 -13.187068,0 -23.877299,-10.69023 -23.877299,-23.8773 0,-13.18707 10.690231,-23.8773 23.877299,-23.8773 13.187067,0 23.877298,10.69023 23.877298,23.8773 z"
transform="matrix(0,-0.40146247,0.40146247,0,456.77534,524.10489)" />
<rect
id="rect7428"
@ -14166,7 +14166,7 @@
</g>
<path
transform="matrix(0,0.40146247,-0.40146247,0,966.79118,555.54549)"
d="M -12.73456,572.3067 A 23.877298,23.877298 0 1 1 -60.489157,572.3067 A 23.877298,23.877298 0 1 1 -12.73456,572.3067 z"
d="m -12.73456,572.3067 c 0,13.18707 -10.690231,23.8773 -23.877298,23.8773 -13.187068,0 -23.877299,-10.69023 -23.877299,-23.8773 0,-13.18707 10.690231,-23.8773 23.877299,-23.8773 13.187067,0 23.877298,10.69023 23.877298,23.8773 z"
sodipodi:ry="23.877298"
sodipodi:rx="23.877298"
sodipodi:cy="572.3067"
@ -14182,7 +14182,7 @@
sodipodi:cy="572.3067"
sodipodi:rx="23.877298"
sodipodi:ry="23.877298"
d="M -12.73456,572.3067 A 23.877298,23.877298 0 1 1 -60.489157,572.3067 A 23.877298,23.877298 0 1 1 -12.73456,572.3067 z"
d="m -12.73456,572.3067 c 0,13.18707 -10.690231,23.8773 -23.877298,23.8773 -13.187068,0 -23.877299,-10.69023 -23.877299,-23.8773 0,-13.18707 10.690231,-23.8773 23.877299,-23.8773 13.187067,0 23.877298,10.69023 23.877298,23.8773 z"
transform="matrix(0,0.40146247,-0.40146247,0,770.07457,555.54549)" />
<path
sodipodi:type="arc"
@ -14192,11 +14192,11 @@
sodipodi:cy="572.3067"
sodipodi:rx="23.877298"
sodipodi:ry="23.877298"
d="M -12.73456,572.3067 A 23.877298,23.877298 0 1 1 -60.489157,572.3067 A 23.877298,23.877298 0 1 1 -12.73456,572.3067 z"
d="m -12.73456,572.3067 c 0,13.18707 -10.690231,23.8773 -23.877298,23.8773 -13.187068,0 -23.877299,-10.69023 -23.877299,-23.8773 0,-13.18707 10.690231,-23.8773 23.877299,-23.8773 13.187067,0 23.877298,10.69023 23.877298,23.8773 z"
transform="matrix(0,0.40146247,-0.40146247,0,966.79118,752.26239)" />
<path
transform="matrix(0,0.40146247,-0.40146247,0,770.07457,752.26239)"
d="M -12.73456,572.3067 A 23.877298,23.877298 0 1 1 -60.489157,572.3067 A 23.877298,23.877298 0 1 1 -12.73456,572.3067 z"
d="m -12.73456,572.3067 c 0,13.18707 -10.690231,23.8773 -23.877298,23.8773 -13.187068,0 -23.877299,-10.69023 -23.877299,-23.8773 0,-13.18707 10.690231,-23.8773 23.877299,-23.8773 13.187067,0 23.877298,10.69023 23.877298,23.8773 z"
sodipodi:ry="23.877298"
sodipodi:rx="23.877298"
sodipodi:cy="572.3067"
@ -14429,7 +14429,7 @@
</g>
<path
transform="matrix(0,-0.40146247,0.40146247,0,248.09985,719.53351)"
d="M -12.73456,572.3067 A 23.877298,23.877298 0 1 1 -60.489157,572.3067 A 23.877298,23.877298 0 1 1 -12.73456,572.3067 z"
d="m -12.73456,572.3067 c 0,13.18707 -10.690231,23.8773 -23.877298,23.8773 -13.187068,0 -23.877299,-10.69023 -23.877299,-23.8773 0,-13.18707 10.690231,-23.8773 23.877299,-23.8773 13.187067,0 23.877298,10.69023 23.877298,23.8773 z"
sodipodi:ry="23.877298"
sodipodi:rx="23.877298"
sodipodi:cy="572.3067"
@ -14445,7 +14445,7 @@
sodipodi:cy="572.3067"
sodipodi:rx="23.877298"
sodipodi:ry="23.877298"
d="M -12.73456,572.3067 A 23.877298,23.877298 0 1 1 -60.489157,572.3067 A 23.877298,23.877298 0 1 1 -12.73456,572.3067 z"
d="m -12.73456,572.3067 c 0,13.18707 -10.690231,23.8773 -23.877298,23.8773 -13.187068,0 -23.877299,-10.69023 -23.877299,-23.8773 0,-13.18707 10.690231,-23.8773 23.877299,-23.8773 13.187067,0 23.877298,10.69023 23.877298,23.8773 z"
transform="matrix(0,-0.40146247,0.40146247,0,444.81646,719.53351)" />
<path
sodipodi:type="arc"
@ -14455,11 +14455,11 @@
sodipodi:cy="572.3067"
sodipodi:rx="23.877298"
sodipodi:ry="23.877298"
d="M -12.73456,572.3067 A 23.877298,23.877298 0 1 1 -60.489157,572.3067 A 23.877298,23.877298 0 1 1 -12.73456,572.3067 z"
d="m -12.73456,572.3067 c 0,13.18707 -10.690231,23.8773 -23.877298,23.8773 -13.187068,0 -23.877299,-10.69023 -23.877299,-23.8773 0,-13.18707 10.690231,-23.8773 23.877299,-23.8773 13.187067,0 23.877298,10.69023 23.877298,23.8773 z"
transform="matrix(0,-0.40146247,0.40146247,0,248.09985,522.818)" />
<path
transform="matrix(0,-0.40146247,0.40146247,0,444.81646,522.818)"
d="M -12.73456,572.3067 A 23.877298,23.877298 0 1 1 -60.489157,572.3067 A 23.877298,23.877298 0 1 1 -12.73456,572.3067 z"
d="m -12.73456,572.3067 c 0,13.18707 -10.690231,23.8773 -23.877298,23.8773 -13.187068,0 -23.877299,-10.69023 -23.877299,-23.8773 0,-13.18707 10.690231,-23.8773 23.877299,-23.8773 13.187067,0 23.877298,10.69023 23.877298,23.8773 z"
sodipodi:ry="23.877298"
sodipodi:rx="23.877298"
sodipodi:cy="572.3067"
@ -15804,7 +15804,7 @@
</g>
<path
transform="matrix(0,0.40146247,-0.40146247,0,1015.7912,553.33859)"
d="M -12.73456,572.3067 A 23.877298,23.877298 0 1 1 -60.489157,572.3067 A 23.877298,23.877298 0 1 1 -12.73456,572.3067 z"
d="m -12.73456,572.3067 c 0,13.18707 -10.690231,23.8773 -23.877298,23.8773 -13.187068,0 -23.877299,-10.69023 -23.877299,-23.8773 0,-13.18707 10.690231,-23.8773 23.877299,-23.8773 13.187067,0 23.877298,10.69023 23.877298,23.8773 z"
sodipodi:ry="23.877298"
sodipodi:rx="23.877298"
sodipodi:cy="572.3067"
@ -15820,7 +15820,7 @@
sodipodi:cy="572.3067"
sodipodi:rx="23.877298"
sodipodi:ry="23.877298"
d="M -12.73456,572.3067 A 23.877298,23.877298 0 1 1 -60.489157,572.3067 A 23.877298,23.877298 0 1 1 -12.73456,572.3067 z"
d="m -12.73456,572.3067 c 0,13.18707 -10.690231,23.8773 -23.877298,23.8773 -13.187068,0 -23.877299,-10.69023 -23.877299,-23.8773 0,-13.18707 10.690231,-23.8773 23.877299,-23.8773 13.187067,0 23.877298,10.69023 23.877298,23.8773 z"
transform="matrix(0,0.40146247,-0.40146247,0,819.07458,553.33859)" />
<path
sodipodi:type="arc"
@ -15830,11 +15830,11 @@
sodipodi:cy="572.3067"
sodipodi:rx="23.877298"
sodipodi:ry="23.877298"
d="M -12.73456,572.3067 A 23.877298,23.877298 0 1 1 -60.489157,572.3067 A 23.877298,23.877298 0 1 1 -12.73456,572.3067 z"
d="m -12.73456,572.3067 c 0,13.18707 -10.690231,23.8773 -23.877298,23.8773 -13.187068,0 -23.877299,-10.69023 -23.877299,-23.8773 0,-13.18707 10.690231,-23.8773 23.877299,-23.8773 13.187067,0 23.877298,10.69023 23.877298,23.8773 z"
transform="matrix(0,0.40146247,-0.40146247,0,1015.7912,750.0552)" />
<path
transform="matrix(0,0.40146247,-0.40146247,0,819.07458,750.0552)"
d="M -12.73456,572.3067 A 23.877298,23.877298 0 1 1 -60.489157,572.3067 A 23.877298,23.877298 0 1 1 -12.73456,572.3067 z"
d="m -12.73456,572.3067 c 0,13.18707 -10.690231,23.8773 -23.877298,23.8773 -13.187068,0 -23.877299,-10.69023 -23.877299,-23.8773 0,-13.18707 10.690231,-23.8773 23.877299,-23.8773 13.187067,0 23.877298,10.69023 23.877298,23.8773 z"
sodipodi:ry="23.877298"
sodipodi:rx="23.877298"
sodipodi:cy="572.3067"
@ -15985,11 +15985,11 @@
sodipodi:cy="572.3067"
sodipodi:rx="23.877298"
sodipodi:ry="23.877298"
d="M -12.73456,572.3067 A 23.877298,23.877298 0 1 1 -60.489157,572.3067 A 23.877298,23.877298 0 1 1 -12.73456,572.3067 z"
d="m -12.73456,572.3067 c 0,13.18707 -10.690231,23.8773 -23.877298,23.8773 -13.187068,0 -23.877299,-10.69023 -23.877299,-23.8773 0,-13.18707 10.690231,-23.8773 23.877299,-23.8773 13.187067,0 23.877298,10.69023 23.877298,23.8773 z"
transform="matrix(0,-0.40146247,0.40146247,0,260.05873,720.82148)" />
<path
transform="matrix(0,-0.40146247,0.40146247,0,260.05873,524.10489)"
d="M -12.73456,572.3067 A 23.877298,23.877298 0 1 1 -60.489157,572.3067 A 23.877298,23.877298 0 1 1 -12.73456,572.3067 z"
d="m -12.73456,572.3067 c 0,13.18707 -10.690231,23.8773 -23.877298,23.8773 -13.187068,0 -23.877299,-10.69023 -23.877299,-23.8773 0,-13.18707 10.690231,-23.8773 23.877299,-23.8773 13.187067,0 23.877298,10.69023 23.877298,23.8773 z"
sodipodi:ry="23.877298"
sodipodi:rx="23.877298"
sodipodi:cy="572.3067"
@ -16113,7 +16113,7 @@
</g>
<path
transform="matrix(0,-0.40146247,0.40146247,0,456.77534,720.82148)"
d="M -12.73456,572.3067 A 23.877298,23.877298 0 1 1 -60.489157,572.3067 A 23.877298,23.877298 0 1 1 -12.73456,572.3067 z"
d="m -12.73456,572.3067 c 0,13.18707 -10.690231,23.8773 -23.877298,23.8773 -13.187068,0 -23.877299,-10.69023 -23.877299,-23.8773 0,-13.18707 10.690231,-23.8773 23.877299,-23.8773 13.187067,0 23.877298,10.69023 23.877298,23.8773 z"
sodipodi:ry="23.877298"
sodipodi:rx="23.877298"
sodipodi:cy="572.3067"
@ -16129,7 +16129,7 @@
sodipodi:cy="572.3067"
sodipodi:rx="23.877298"
sodipodi:ry="23.877298"
d="M -12.73456,572.3067 A 23.877298,23.877298 0 1 1 -60.489157,572.3067 A 23.877298,23.877298 0 1 1 -12.73456,572.3067 z"
d="m -12.73456,572.3067 c 0,13.18707 -10.690231,23.8773 -23.877298,23.8773 -13.187068,0 -23.877299,-10.69023 -23.877299,-23.8773 0,-13.18707 10.690231,-23.8773 23.877299,-23.8773 13.187067,0 23.877298,10.69023 23.877298,23.8773 z"
transform="matrix(0,-0.40146247,0.40146247,0,456.77534,524.10489)" />
<rect
id="rect7428-5"
@ -17435,7 +17435,7 @@
</g>
<path
transform="matrix(0,0.40146247,-0.40146247,0,966.79118,555.54549)"
d="M -12.73456,572.3067 A 23.877298,23.877298 0 1 1 -60.489157,572.3067 A 23.877298,23.877298 0 1 1 -12.73456,572.3067 z"
d="m -12.73456,572.3067 c 0,13.18707 -10.690231,23.8773 -23.877298,23.8773 -13.187068,0 -23.877299,-10.69023 -23.877299,-23.8773 0,-13.18707 10.690231,-23.8773 23.877299,-23.8773 13.187067,0 23.877298,10.69023 23.877298,23.8773 z"
sodipodi:ry="23.877298"
sodipodi:rx="23.877298"
sodipodi:cy="572.3067"
@ -17451,7 +17451,7 @@
sodipodi:cy="572.3067"
sodipodi:rx="23.877298"
sodipodi:ry="23.877298"
d="M -12.73456,572.3067 A 23.877298,23.877298 0 1 1 -60.489157,572.3067 A 23.877298,23.877298 0 1 1 -12.73456,572.3067 z"
d="m -12.73456,572.3067 c 0,13.18707 -10.690231,23.8773 -23.877298,23.8773 -13.187068,0 -23.877299,-10.69023 -23.877299,-23.8773 0,-13.18707 10.690231,-23.8773 23.877299,-23.8773 13.187067,0 23.877298,10.69023 23.877298,23.8773 z"
transform="matrix(0,0.40146247,-0.40146247,0,770.07457,555.54549)" />
<path
sodipodi:type="arc"
@ -17461,11 +17461,11 @@
sodipodi:cy="572.3067"
sodipodi:rx="23.877298"
sodipodi:ry="23.877298"
d="M -12.73456,572.3067 A 23.877298,23.877298 0 1 1 -60.489157,572.3067 A 23.877298,23.877298 0 1 1 -12.73456,572.3067 z"
d="m -12.73456,572.3067 c 0,13.18707 -10.690231,23.8773 -23.877298,23.8773 -13.187068,0 -23.877299,-10.69023 -23.877299,-23.8773 0,-13.18707 10.690231,-23.8773 23.877299,-23.8773 13.187067,0 23.877298,10.69023 23.877298,23.8773 z"
transform="matrix(0,0.40146247,-0.40146247,0,966.79118,752.26239)" />
<path
transform="matrix(0,0.40146247,-0.40146247,0,770.07457,752.26239)"
d="M -12.73456,572.3067 A 23.877298,23.877298 0 1 1 -60.489157,572.3067 A 23.877298,23.877298 0 1 1 -12.73456,572.3067 z"
d="m -12.73456,572.3067 c 0,13.18707 -10.690231,23.8773 -23.877298,23.8773 -13.187068,0 -23.877299,-10.69023 -23.877299,-23.8773 0,-13.18707 10.690231,-23.8773 23.877299,-23.8773 13.187067,0 23.877298,10.69023 23.877298,23.8773 z"
sodipodi:ry="23.877298"
sodipodi:rx="23.877298"
sodipodi:cy="572.3067"
@ -17700,7 +17700,7 @@
</g>
<path
transform="matrix(0,-0.40146247,0.40146247,0,248.09985,719.53351)"
d="M -12.73456,572.3067 A 23.877298,23.877298 0 1 1 -60.489157,572.3067 A 23.877298,23.877298 0 1 1 -12.73456,572.3067 z"
d="m -12.73456,572.3067 c 0,13.18707 -10.690231,23.8773 -23.877298,23.8773 -13.187068,0 -23.877299,-10.69023 -23.877299,-23.8773 0,-13.18707 10.690231,-23.8773 23.877299,-23.8773 13.187067,0 23.877298,10.69023 23.877298,23.8773 z"
sodipodi:ry="23.877298"
sodipodi:rx="23.877298"
sodipodi:cy="572.3067"
@ -17716,7 +17716,7 @@
sodipodi:cy="572.3067"
sodipodi:rx="23.877298"
sodipodi:ry="23.877298"
d="M -12.73456,572.3067 A 23.877298,23.877298 0 1 1 -60.489157,572.3067 A 23.877298,23.877298 0 1 1 -12.73456,572.3067 z"
d="m -12.73456,572.3067 c 0,13.18707 -10.690231,23.8773 -23.877298,23.8773 -13.187068,0 -23.877299,-10.69023 -23.877299,-23.8773 0,-13.18707 10.690231,-23.8773 23.877299,-23.8773 13.187067,0 23.877298,10.69023 23.877298,23.8773 z"
transform="matrix(0,-0.40146247,0.40146247,0,444.81646,719.53351)" />
<path
sodipodi:type="arc"
@ -17726,11 +17726,11 @@
sodipodi:cy="572.3067"
sodipodi:rx="23.877298"
sodipodi:ry="23.877298"
d="M -12.73456,572.3067 A 23.877298,23.877298 0 1 1 -60.489157,572.3067 A 23.877298,23.877298 0 1 1 -12.73456,572.3067 z"
d="m -12.73456,572.3067 c 0,13.18707 -10.690231,23.8773 -23.877298,23.8773 -13.187068,0 -23.877299,-10.69023 -23.877299,-23.8773 0,-13.18707 10.690231,-23.8773 23.877299,-23.8773 13.187067,0 23.877298,10.69023 23.877298,23.8773 z"
transform="matrix(0,-0.40146247,0.40146247,0,248.09985,522.818)" />
<path
transform="matrix(0,-0.40146247,0.40146247,0,444.81646,522.818)"
d="M -12.73456,572.3067 A 23.877298,23.877298 0 1 1 -60.489157,572.3067 A 23.877298,23.877298 0 1 1 -12.73456,572.3067 z"
d="m -12.73456,572.3067 c 0,13.18707 -10.690231,23.8773 -23.877298,23.8773 -13.187068,0 -23.877299,-10.69023 -23.877299,-23.8773 0,-13.18707 10.690231,-23.8773 23.877299,-23.8773 13.187067,0 23.877298,10.69023 23.877298,23.8773 z"
sodipodi:ry="23.877298"
sodipodi:rx="23.877298"
sodipodi:cy="572.3067"
@ -18741,7 +18741,7 @@
style="fill:#df181b;fill-opacity:1;stroke:#000000;stroke-width:0.77129602px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
transform="matrix(0.77129601,0,0,0.77129601,324.31484,-346.34006)"
d="M 379.6109,501.66602 C 379.6109,504.54173 377.16866,506.87296 374.15601,506.87296 C 371.14335,506.87296 368.70111,504.54173 368.70111,501.66602 C 368.70111,498.7903 371.14335,496.45907 374.15601,496.45907 C 377.16866,496.45907 379.6109,498.7903 379.6109,501.66602 z"
d="m 379.6109,501.66602 c 0,2.87571 -2.44224,5.20694 -5.45489,5.20694 -3.01266,0 -5.4549,-2.33123 -5.4549,-5.20694 0,-2.87572 2.44224,-5.20695 5.4549,-5.20695 3.01265,0 5.45489,2.33123 5.45489,5.20695 z"
sodipodi:ry="5.2069426"
sodipodi:rx="5.4548922"
sodipodi:cy="501.66602"
@ -19551,7 +19551,7 @@
id="path8856-5-6-5-6-7-2-87-6-9" />
<path
transform="translate(-136.3084,-443.63428)"
d="M 656.58418,483.271 C 656.58418,486.11211 654.281,488.4153 651.43988,488.4153 C 648.59876,488.4153 646.29558,486.11211 646.29558,483.271 C 646.29558,480.42988 648.59876,478.1267 651.43988,478.1267 C 654.281,478.1267 656.58418,480.42988 656.58418,483.271 z"
d="m 656.58418,483.271 c 0,2.84111 -2.30318,5.1443 -5.1443,5.1443 -2.84112,0 -5.1443,-2.30319 -5.1443,-5.1443 0,-2.84112 2.30318,-5.1443 5.1443,-5.1443 2.84112,0 5.1443,2.30318 5.1443,5.1443 z"
sodipodi:ry="5.1442995"
sodipodi:rx="5.1442995"
sodipodi:cy="483.271"
@ -19567,11 +19567,11 @@
sodipodi:cy="483.271"
sodipodi:rx="5.1442995"
sodipodi:ry="5.1442995"
d="M 656.58418,483.271 C 656.58418,486.11211 654.281,488.4153 651.43988,488.4153 C 648.59876,488.4153 646.29558,486.11211 646.29558,483.271 C 646.29558,480.42988 648.59876,478.1267 651.43988,478.1267 C 654.281,478.1267 656.58418,480.42988 656.58418,483.271 z"
d="m 656.58418,483.271 c 0,2.84111 -2.30318,5.1443 -5.1443,5.1443 -2.84112,0 -5.1443,-2.30319 -5.1443,-5.1443 0,-2.84112 2.30318,-5.1443 5.1443,-5.1443 2.84112,0 5.1443,2.30318 5.1443,5.1443 z"
transform="translate(-136.3084,-463.68797)" />
<path
transform="translate(-136.3084,-481.68799)"
d="M 656.58418,483.271 C 656.58418,486.11211 654.281,488.4153 651.43988,488.4153 C 648.59876,488.4153 646.29558,486.11211 646.29558,483.271 C 646.29558,480.42988 648.59876,478.1267 651.43988,478.1267 C 654.281,478.1267 656.58418,480.42988 656.58418,483.271 z"
d="m 656.58418,483.271 c 0,2.84111 -2.30318,5.1443 -5.1443,5.1443 -2.84112,0 -5.1443,-2.30319 -5.1443,-5.1443 0,-2.84112 2.30318,-5.1443 5.1443,-5.1443 2.84112,0 5.1443,2.30318 5.1443,5.1443 z"
sodipodi:ry="5.1442995"
sodipodi:rx="5.1442995"
sodipodi:cy="483.271"
@ -19587,7 +19587,7 @@
sodipodi:cy="483.271"
sodipodi:rx="5.1442995"
sodipodi:ry="5.1442995"
d="M 656.58418,483.271 C 656.58418,486.11211 654.281,488.4153 651.43988,488.4153 C 648.59876,488.4153 646.29558,486.11211 646.29558,483.271 C 646.29558,480.42988 648.59876,478.1267 651.43988,478.1267 C 654.281,478.1267 656.58418,480.42988 656.58418,483.271 z"
d="m 656.58418,483.271 c 0,2.84111 -2.30318,5.1443 -5.1443,5.1443 -2.84112,0 -5.1443,-2.30319 -5.1443,-5.1443 0,-2.84112 2.30318,-5.1443 5.1443,-5.1443 2.84112,0 5.1443,2.30318 5.1443,5.1443 z"
transform="translate(-136.3084,-501.68802)" />
<g
id="g9542-2-1"
@ -20422,7 +20422,7 @@
style="fill:#df181b;fill-opacity:1;stroke:#000000;stroke-width:0.77129602px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
transform="matrix(0.77129601,0,0,0.77129601,-4.0324,147.80034)"
d="M 379.6109,501.66602 C 379.6109,504.54173 377.16866,506.87296 374.15601,506.87296 C 371.14335,506.87296 368.70111,504.54173 368.70111,501.66602 C 368.70111,498.7903 371.14335,496.45907 374.15601,496.45907 C 377.16866,496.45907 379.6109,498.7903 379.6109,501.66602 z"
d="m 379.6109,501.66602 c 0,2.87571 -2.44224,5.20694 -5.45489,5.20694 -3.01266,0 -5.4549,-2.33123 -5.4549,-5.20694 0,-2.87572 2.44224,-5.20695 5.4549,-5.20695 3.01265,0 5.45489,2.33123 5.45489,5.20695 z"
sodipodi:ry="5.2069426"
sodipodi:rx="5.4548922"
sodipodi:cy="501.66602"
@ -21232,7 +21232,7 @@
id="path8856-5-6-5-6-7-2-87-6-9-8" />
<path
transform="translate(-465.89215,50.457722)"
d="M 656.58418,483.271 C 656.58418,486.11211 654.281,488.4153 651.43988,488.4153 C 648.59876,488.4153 646.29558,486.11211 646.29558,483.271 C 646.29558,480.42988 648.59876,478.1267 651.43988,478.1267 C 654.281,478.1267 656.58418,480.42988 656.58418,483.271 z"
d="m 656.58418,483.271 c 0,2.84111 -2.30318,5.1443 -5.1443,5.1443 -2.84112,0 -5.1443,-2.30319 -5.1443,-5.1443 0,-2.84112 2.30318,-5.1443 5.1443,-5.1443 2.84112,0 5.1443,2.30318 5.1443,5.1443 z"
sodipodi:ry="5.1442995"
sodipodi:rx="5.1442995"
sodipodi:cy="483.271"
@ -21248,11 +21248,11 @@
sodipodi:cy="483.271"
sodipodi:rx="5.1442995"
sodipodi:ry="5.1442995"
d="M 656.58418,483.271 C 656.58418,486.11211 654.281,488.4153 651.43988,488.4153 C 648.59876,488.4153 646.29558,486.11211 646.29558,483.271 C 646.29558,480.42988 648.59876,478.1267 651.43988,478.1267 C 654.281,478.1267 656.58418,480.42988 656.58418,483.271 z"
d="m 656.58418,483.271 c 0,2.84111 -2.30318,5.1443 -5.1443,5.1443 -2.84112,0 -5.1443,-2.30319 -5.1443,-5.1443 0,-2.84112 2.30318,-5.1443 5.1443,-5.1443 2.84112,0 5.1443,2.30318 5.1443,5.1443 z"
transform="translate(-465.89215,30.404033)" />
<path
transform="translate(-465.89215,12.404008)"
d="M 656.58418,483.271 C 656.58418,486.11211 654.281,488.4153 651.43988,488.4153 C 648.59876,488.4153 646.29558,486.11211 646.29558,483.271 C 646.29558,480.42988 648.59876,478.1267 651.43988,478.1267 C 654.281,478.1267 656.58418,480.42988 656.58418,483.271 z"
d="m 656.58418,483.271 c 0,2.84111 -2.30318,5.1443 -5.1443,5.1443 -2.84112,0 -5.1443,-2.30319 -5.1443,-5.1443 0,-2.84112 2.30318,-5.1443 5.1443,-5.1443 2.84112,0 5.1443,2.30318 5.1443,5.1443 z"
sodipodi:ry="5.1442995"
sodipodi:rx="5.1442995"
sodipodi:cy="483.271"
@ -21268,7 +21268,7 @@
sodipodi:cy="483.271"
sodipodi:rx="5.1442995"
sodipodi:ry="5.1442995"
d="M 656.58418,483.271 C 656.58418,486.11211 654.281,488.4153 651.43988,488.4153 C 648.59876,488.4153 646.29558,486.11211 646.29558,483.271 C 646.29558,480.42988 648.59876,478.1267 651.43988,478.1267 C 654.281,478.1267 656.58418,480.42988 656.58418,483.271 z"
d="m 656.58418,483.271 c 0,2.84111 -2.30318,5.1443 -5.1443,5.1443 -2.84112,0 -5.1443,-2.30319 -5.1443,-5.1443 0,-2.84112 2.30318,-5.1443 5.1443,-5.1443 2.84112,0 5.1443,2.30318 5.1443,5.1443 z"
transform="translate(-465.89215,-7.5960203)" />
<g
id="g9542-2-1-6"
@ -24660,7 +24660,7 @@
id="path8690"
d="M 132.598,12.433 V 5.672 H 133.854 L 135.277,8.992 V 5.672 H 136.71 V 12.433 H 135.52 L 134.051,9.122 V 12.433 H 132.598 z" />
<circle
d="M 110.432,9.1289997 C 110.432,9.6470428 110.01205,10.067 109.494,10.067 C 108.97596,10.067 108.556,9.6470428 108.556,9.1289997 C 108.556,8.6109566 108.97596,8.1909997 109.494,8.1909997 C 110.01205,8.1909997 110.432,8.6109566 110.432,9.1289997 z"
d="m 110.432,9.1289997 c 0,0.5180431 -0.41995,0.9380003 -0.938,0.9380003 -0.51804,0 -0.938,-0.4199572 -0.938,-0.9380003 0,-0.5180431 0.41996,-0.938 0.938,-0.938 0.51805,0 0.938,0.4199569 0.938,0.938 z"
style="fill:#070606"
sodipodi:ry="0.93800002"
sodipodi:rx="0.93800002"
@ -24697,7 +24697,7 @@
y="17.379"
x="128.155" />
<circle
d="M 132.598,20.466 C 132.598,21.246378 131.96538,21.879 131.185,21.879 C 130.40462,21.879 129.772,21.246378 129.772,20.466 C 129.772,19.685621 130.40462,19.053 131.185,19.053 C 131.96538,19.053 132.598,19.685621 132.598,20.466 z"
d="m 132.598,20.466 c 0,0.780378 -0.63262,1.413 -1.413,1.413 -0.78038,0 -1.413,-0.632622 -1.413,-1.413 0,-0.780379 0.63262,-1.413 1.413,-1.413 0.78038,0 1.413,0.632621 1.413,1.413 z"
style="fill:#2c2c2c"
sodipodi:ry="1.413"
sodipodi:rx="1.413"
@ -24708,7 +24708,7 @@
cy="20.466"
cx="131.185" />
<circle
d="M 153.14499,29.417 C 153.14499,30.197378 152.51237,30.83 151.73199,30.83 C 150.95162,30.83 150.31899,30.197378 150.31899,29.417 C 150.31899,28.636621 150.95162,28.004 151.73199,28.004 C 152.51237,28.004 153.14499,28.636621 153.14499,29.417 z"
d="m 153.14499,29.417 c 0,0.780378 -0.63262,1.413 -1.413,1.413 -0.78037,0 -1.413,-0.632622 -1.413,-1.413 0,-0.780379 0.63263,-1.413 1.413,-1.413 0.78038,0 1.413,0.632621 1.413,1.413 z"
style="fill:#2c2c2c"
sodipodi:ry="1.413"
sodipodi:rx="1.413"
@ -24727,7 +24727,7 @@
<g
id="g8710">
<circle
d="M 195.585,45.712002 C 195.585,48.448573 193.36658,50.667002 190.63,50.667002 C 187.89343,50.667002 185.675,48.448573 185.675,45.712002 C 185.675,42.975431 187.89343,40.757002 190.63,40.757002 C 193.36658,40.757002 195.585,42.975431 195.585,45.712002 z"
d="m 195.585,45.712002 c 0,2.736571 -2.21842,4.955 -4.955,4.955 -2.73657,0 -4.955,-2.218429 -4.955,-4.955 0,-2.736571 2.21843,-4.955 4.955,-4.955 2.73658,0 4.955,2.218429 4.955,4.955 z"
style="fill:none;stroke:#dab452;stroke-width:1.5;stroke-linecap:square"
sodipodi:ry="4.9549999"
sodipodi:rx="4.9549999"
@ -24741,7 +24741,7 @@
<g
id="g8714">
<circle
d="M 210.585,45.712002 C 210.585,48.448573 208.36658,50.667002 205.63,50.667002 C 202.89343,50.667002 200.675,48.448573 200.675,45.712002 C 200.675,42.975431 202.89343,40.757002 205.63,40.757002 C 208.36658,40.757002 210.585,42.975431 210.585,45.712002 z"
d="m 210.585,45.712002 c 0,2.736571 -2.21842,4.955 -4.955,4.955 -2.73657,0 -4.955,-2.218429 -4.955,-4.955 0,-2.736571 2.21843,-4.955 4.955,-4.955 2.73658,0 4.955,2.218429 4.955,4.955 z"
style="fill:none;stroke:#dab452;stroke-width:1.5;stroke-linecap:square"
sodipodi:ry="4.9549999"
sodipodi:rx="4.9549999"
@ -24755,7 +24755,7 @@
<g
id="g8718">
<circle
d="M 195.585,60.712002 C 195.585,63.448573 193.36658,65.667002 190.63,65.667002 C 187.89343,65.667002 185.675,63.448573 185.675,60.712002 C 185.675,57.975431 187.89343,55.757002 190.63,55.757002 C 193.36658,55.757002 195.585,57.975431 195.585,60.712002 z"
d="m 195.585,60.712002 c 0,2.736571 -2.21842,4.955 -4.955,4.955 -2.73657,0 -4.955,-2.218429 -4.955,-4.955 0,-2.736571 2.21843,-4.955 4.955,-4.955 2.73658,0 4.955,2.218429 4.955,4.955 z"
style="fill:none;stroke:#dab452;stroke-width:1.5;stroke-linecap:square"
sodipodi:ry="4.9549999"
sodipodi:rx="4.9549999"
@ -24769,7 +24769,7 @@
<g
id="g8722">
<circle
d="M 210.585,60.712002 C 210.585,63.448573 208.36658,65.667002 205.63,65.667002 C 202.89343,65.667002 200.675,63.448573 200.675,60.712002 C 200.675,57.975431 202.89343,55.757002 205.63,55.757002 C 208.36658,55.757002 210.585,57.975431 210.585,60.712002 z"
d="m 210.585,60.712002 c 0,2.736571 -2.21842,4.955 -4.955,4.955 -2.73657,0 -4.955,-2.218429 -4.955,-4.955 0,-2.736571 2.21843,-4.955 4.955,-4.955 2.73658,0 4.955,2.218429 4.955,4.955 z"
style="fill:none;stroke:#dab452;stroke-width:1.5;stroke-linecap:square"
sodipodi:ry="4.9549999"
sodipodi:rx="4.9549999"
@ -24783,7 +24783,7 @@
<g
id="g8726">
<circle
d="M 195.585,75.711998 C 195.585,78.448569 193.36658,80.666998 190.63,80.666998 C 187.89343,80.666998 185.675,78.448569 185.675,75.711998 C 185.675,72.975427 187.89343,70.756998 190.63,70.756998 C 193.36658,70.756998 195.585,72.975427 195.585,75.711998 z"
d="m 195.585,75.711998 c 0,2.736571 -2.21842,4.955 -4.955,4.955 -2.73657,0 -4.955,-2.218429 -4.955,-4.955 0,-2.736571 2.21843,-4.955 4.955,-4.955 2.73658,0 4.955,2.218429 4.955,4.955 z"
style="fill:none;stroke:#dab452;stroke-width:1.5;stroke-linecap:square"
sodipodi:ry="4.9549999"
sodipodi:rx="4.9549999"
@ -24797,7 +24797,7 @@
<g
id="g8730">
<circle
d="M 210.585,75.711998 C 210.585,78.448569 208.36658,80.666998 205.63,80.666998 C 202.89343,80.666998 200.675,78.448569 200.675,75.711998 C 200.675,72.975427 202.89343,70.756998 205.63,70.756998 C 208.36658,70.756998 210.585,72.975427 210.585,75.711998 z"
d="m 210.585,75.711998 c 0,2.736571 -2.21842,4.955 -4.955,4.955 -2.73657,0 -4.955,-2.218429 -4.955,-4.955 0,-2.736571 2.21843,-4.955 4.955,-4.955 2.73658,0 4.955,2.218429 4.955,4.955 z"
style="fill:none;stroke:#dab452;stroke-width:1.5;stroke-linecap:square"
sodipodi:ry="4.9549999"
sodipodi:rx="4.9549999"
@ -24811,7 +24811,7 @@
<g
id="g8734">
<circle
d="M 195.585,90.711998 C 195.585,93.448569 193.36658,95.666998 190.63,95.666998 C 187.89343,95.666998 185.675,93.448569 185.675,90.711998 C 185.675,87.975427 187.89343,85.756998 190.63,85.756998 C 193.36658,85.756998 195.585,87.975427 195.585,90.711998 z"
d="m 195.585,90.711998 c 0,2.736571 -2.21842,4.955 -4.955,4.955 -2.73657,0 -4.955,-2.218429 -4.955,-4.955 0,-2.736571 2.21843,-4.955 4.955,-4.955 2.73658,0 4.955,2.218429 4.955,4.955 z"
style="fill:none;stroke:#dab452;stroke-width:1.5;stroke-linecap:square"
sodipodi:ry="4.9549999"
sodipodi:rx="4.9549999"
@ -24825,7 +24825,7 @@
<g
id="g8738">
<circle
d="M 210.585,90.711998 C 210.585,93.448569 208.36658,95.666998 205.63,95.666998 C 202.89343,95.666998 200.675,93.448569 200.675,90.711998 C 200.675,87.975427 202.89343,85.756998 205.63,85.756998 C 208.36658,85.756998 210.585,87.975427 210.585,90.711998 z"
d="m 210.585,90.711998 c 0,2.736571 -2.21842,4.955 -4.955,4.955 -2.73657,0 -4.955,-2.218429 -4.955,-4.955 0,-2.736571 2.21843,-4.955 4.955,-4.955 2.73658,0 4.955,2.218429 4.955,4.955 z"
style="fill:none;stroke:#dab452;stroke-width:1.5;stroke-linecap:square"
sodipodi:ry="4.9549999"
sodipodi:rx="4.9549999"
@ -24839,7 +24839,7 @@
<g
id="g8742">
<circle
d="M 195.585,105.712 C 195.585,108.44857 193.36658,110.667 190.63,110.667 C 187.89343,110.667 185.675,108.44857 185.675,105.712 C 185.675,102.97543 187.89343,100.757 190.63,100.757 C 193.36658,100.757 195.585,102.97543 195.585,105.712 z"
d="m 195.585,105.712 c 0,2.73657 -2.21842,4.955 -4.955,4.955 -2.73657,0 -4.955,-2.21843 -4.955,-4.955 0,-2.73657 2.21843,-4.955 4.955,-4.955 2.73658,0 4.955,2.21843 4.955,4.955 z"
style="fill:none;stroke:#dab452;stroke-width:1.5;stroke-linecap:square"
sodipodi:ry="4.9549999"
sodipodi:rx="4.9549999"
@ -24853,7 +24853,7 @@
<g
id="g8746">
<circle
d="M 210.585,105.712 C 210.585,108.44857 208.36658,110.667 205.63,110.667 C 202.89343,110.667 200.675,108.44857 200.675,105.712 C 200.675,102.97543 202.89343,100.757 205.63,100.757 C 208.36658,100.757 210.585,102.97543 210.585,105.712 z"
d="m 210.585,105.712 c 0,2.73657 -2.21842,4.955 -4.955,4.955 -2.73657,0 -4.955,-2.21843 -4.955,-4.955 0,-2.73657 2.21843,-4.955 4.955,-4.955 2.73658,0 4.955,2.21843 4.955,4.955 z"
style="fill:none;stroke:#dab452;stroke-width:1.5;stroke-linecap:square"
sodipodi:ry="4.9549999"
sodipodi:rx="4.9549999"
@ -24867,7 +24867,7 @@
<g
id="g8750">
<circle
d="M 195.585,120.712 C 195.585,123.44857 193.36658,125.667 190.63,125.667 C 187.89343,125.667 185.675,123.44857 185.675,120.712 C 185.675,117.97543 187.89343,115.757 190.63,115.757 C 193.36658,115.757 195.585,117.97543 195.585,120.712 z"
d="m 195.585,120.712 c 0,2.73657 -2.21842,4.955 -4.955,4.955 -2.73657,0 -4.955,-2.21843 -4.955,-4.955 0,-2.73657 2.21843,-4.955 4.955,-4.955 2.73658,0 4.955,2.21843 4.955,4.955 z"
style="fill:none;stroke:#dab452;stroke-width:1.5;stroke-linecap:square"
sodipodi:ry="4.9549999"
sodipodi:rx="4.9549999"
@ -24881,7 +24881,7 @@
<g
id="g8754">
<circle
d="M 210.585,120.712 C 210.585,123.44857 208.36658,125.667 205.63,125.667 C 202.89343,125.667 200.675,123.44857 200.675,120.712 C 200.675,117.97543 202.89343,115.757 205.63,115.757 C 208.36658,115.757 210.585,117.97543 210.585,120.712 z"
d="m 210.585,120.712 c 0,2.73657 -2.21842,4.955 -4.955,4.955 -2.73657,0 -4.955,-2.21843 -4.955,-4.955 0,-2.73657 2.21843,-4.955 4.955,-4.955 2.73658,0 4.955,2.21843 4.955,4.955 z"
style="fill:none;stroke:#dab452;stroke-width:1.5;stroke-linecap:square"
sodipodi:ry="4.9549999"
sodipodi:rx="4.9549999"
@ -28186,7 +28186,7 @@
id="path8690-8"
d="M 505.7531,676.67731 V 669.47494 H 507.1206 L 508.66992,673.01168 V 669.47494 H 510.23013 V 676.67731 H 508.93449 L 507.33509,673.15016 V 676.67731 H 505.7531 z" />
<circle
d="M 110.432,9.1289997 C 110.432,9.6470428 110.01205,10.067 109.494,10.067 C 108.97596,10.067 108.556,9.6470428 108.556,9.1289997 C 108.556,8.6109566 108.97596,8.1909997 109.494,8.1909997 C 110.01205,8.1909997 110.432,8.6109566 110.432,9.1289997 z"
d="m 110.432,9.1289997 c 0,0.5180431 -0.41995,0.9380003 -0.938,0.9380003 -0.51804,0 -0.938,-0.4199572 -0.938,-0.9380003 0,-0.5180431 0.41996,-0.938 0.938,-0.938 0.51805,0 0.938,0.4199569 0.938,0.938 z"
style="fill:#070606"
sodipodi:ry="0.93800002"
sodipodi:rx="0.93800002"
@ -28224,7 +28224,7 @@
sodipodi:rx="1.413"
sodipodi:ry="1.413"
style="fill:#2c2c2c"
d="M 132.598,20.466 C 132.598,21.246378 131.96538,21.879 131.185,21.879 C 130.40462,21.879 129.772,21.246378 129.772,20.466 C 129.772,19.685621 130.40462,19.053 131.185,19.053 C 131.96538,19.053 132.598,19.685621 132.598,20.466 z" />
d="m 132.598,20.466 c 0,0.780378 -0.63262,1.413 -1.413,1.413 -0.78038,0 -1.413,-0.632622 -1.413,-1.413 0,-0.780379 0.63262,-1.413 1.413,-1.413 0.78038,0 1.413,0.632621 1.413,1.413 z" />
<circle
transform="matrix(1.0887723,0,0,1.065281,361.38407,663.43267)"
cx="151.73199"
@ -28236,7 +28236,7 @@
sodipodi:rx="1.413"
sodipodi:ry="1.413"
style="fill:#2c2c2c"
d="M 153.14499,29.417 C 153.14499,30.197378 152.51237,30.83 151.73199,30.83 C 150.95162,30.83 150.31899,30.197378 150.31899,29.417 C 150.31899,28.636621 150.95162,28.004 151.73199,28.004 C 152.51237,28.004 153.14499,28.636621 153.14499,29.417 z" />
d="m 153.14499,29.417 c 0,0.780378 -0.63262,1.413 -1.413,1.413 -0.78037,0 -1.413,-0.632622 -1.413,-1.413 0,-0.780379 0.63263,-1.413 1.413,-1.413 0.78038,0 1.413,0.632621 1.413,1.413 z" />
</g>
</g>
<polygon
@ -28336,7 +28336,7 @@
id="g8710-1"
transform="matrix(1.0887723,0,0,1.065281,431.17616,631.18026)">
<circle
d="M 195.585,45.712002 C 195.585,48.448573 193.36658,50.667002 190.63,50.667002 C 187.89343,50.667002 185.675,48.448573 185.675,45.712002 C 185.675,42.975431 187.89343,40.757002 190.63,40.757002 C 193.36658,40.757002 195.585,42.975431 195.585,45.712002 z"
d="m 195.585,45.712002 c 0,2.736571 -2.21842,4.955 -4.955,4.955 -2.73657,0 -4.955,-2.218429 -4.955,-4.955 0,-2.736571 2.21843,-4.955 4.955,-4.955 2.73658,0 4.955,2.218429 4.955,4.955 z"
style="fill:none;stroke:#dab452;stroke-width:1.5;stroke-linecap:square"
sodipodi:ry="4.9549999"
sodipodi:rx="4.9549999"
@ -28351,7 +28351,7 @@
id="g8714-9"
transform="matrix(1.0887723,0,0,1.065281,431.17616,631.18026)">
<circle
d="M 210.585,45.712002 C 210.585,48.448573 208.36658,50.667002 205.63,50.667002 C 202.89343,50.667002 200.675,48.448573 200.675,45.712002 C 200.675,42.975431 202.89343,40.757002 205.63,40.757002 C 208.36658,40.757002 210.585,42.975431 210.585,45.712002 z"
d="m 210.585,45.712002 c 0,2.736571 -2.21842,4.955 -4.955,4.955 -2.73657,0 -4.955,-2.218429 -4.955,-4.955 0,-2.736571 2.21843,-4.955 4.955,-4.955 2.73658,0 4.955,2.218429 4.955,4.955 z"
style="fill:none;stroke:#dab452;stroke-width:1.5;stroke-linecap:square"
sodipodi:ry="4.9549999"
sodipodi:rx="4.9549999"
@ -28366,7 +28366,7 @@
id="g8718-4"
transform="matrix(1.0887723,0,0,1.065281,431.17616,631.18026)">
<circle
d="M 195.585,60.712002 C 195.585,63.448573 193.36658,65.667002 190.63,65.667002 C 187.89343,65.667002 185.675,63.448573 185.675,60.712002 C 185.675,57.975431 187.89343,55.757002 190.63,55.757002 C 193.36658,55.757002 195.585,57.975431 195.585,60.712002 z"
d="m 195.585,60.712002 c 0,2.736571 -2.21842,4.955 -4.955,4.955 -2.73657,0 -4.955,-2.218429 -4.955,-4.955 0,-2.736571 2.21843,-4.955 4.955,-4.955 2.73658,0 4.955,2.218429 4.955,4.955 z"
style="fill:none;stroke:#dab452;stroke-width:1.5;stroke-linecap:square"
sodipodi:ry="4.9549999"
sodipodi:rx="4.9549999"
@ -28381,7 +28381,7 @@
id="g8722-8"
transform="matrix(1.0887723,0,0,1.065281,431.17616,631.18026)">
<circle
d="M 210.585,60.712002 C 210.585,63.448573 208.36658,65.667002 205.63,65.667002 C 202.89343,65.667002 200.675,63.448573 200.675,60.712002 C 200.675,57.975431 202.89343,55.757002 205.63,55.757002 C 208.36658,55.757002 210.585,57.975431 210.585,60.712002 z"
d="m 210.585,60.712002 c 0,2.736571 -2.21842,4.955 -4.955,4.955 -2.73657,0 -4.955,-2.218429 -4.955,-4.955 0,-2.736571 2.21843,-4.955 4.955,-4.955 2.73658,0 4.955,2.218429 4.955,4.955 z"
style="fill:none;stroke:#dab452;stroke-width:1.5;stroke-linecap:square"
sodipodi:ry="4.9549999"
sodipodi:rx="4.9549999"
@ -28396,7 +28396,7 @@
id="g8726-5"
transform="matrix(1.0887723,0,0,1.065281,431.17616,631.18026)">
<circle
d="M 195.585,75.711998 C 195.585,78.448569 193.36658,80.666998 190.63,80.666998 C 187.89343,80.666998 185.675,78.448569 185.675,75.711998 C 185.675,72.975427 187.89343,70.756998 190.63,70.756998 C 193.36658,70.756998 195.585,72.975427 195.585,75.711998 z"
d="m 195.585,75.711998 c 0,2.736571 -2.21842,4.955 -4.955,4.955 -2.73657,0 -4.955,-2.218429 -4.955,-4.955 0,-2.736571 2.21843,-4.955 4.955,-4.955 2.73658,0 4.955,2.218429 4.955,4.955 z"
style="fill:none;stroke:#dab452;stroke-width:1.5;stroke-linecap:square"
sodipodi:ry="4.9549999"
sodipodi:rx="4.9549999"
@ -28411,7 +28411,7 @@
id="g8730-3"
transform="matrix(1.0887723,0,0,1.065281,431.17616,631.18026)">
<circle
d="M 210.585,75.711998 C 210.585,78.448569 208.36658,80.666998 205.63,80.666998 C 202.89343,80.666998 200.675,78.448569 200.675,75.711998 C 200.675,72.975427 202.89343,70.756998 205.63,70.756998 C 208.36658,70.756998 210.585,72.975427 210.585,75.711998 z"
d="m 210.585,75.711998 c 0,2.736571 -2.21842,4.955 -4.955,4.955 -2.73657,0 -4.955,-2.218429 -4.955,-4.955 0,-2.736571 2.21843,-4.955 4.955,-4.955 2.73658,0 4.955,2.218429 4.955,4.955 z"
style="fill:none;stroke:#dab452;stroke-width:1.5;stroke-linecap:square"
sodipodi:ry="4.9549999"
sodipodi:rx="4.9549999"
@ -28426,7 +28426,7 @@
id="g8734-8"
transform="matrix(1.0887723,0,0,1.065281,431.17616,631.18026)">
<circle
d="M 195.585,90.711998 C 195.585,93.448569 193.36658,95.666998 190.63,95.666998 C 187.89343,95.666998 185.675,93.448569 185.675,90.711998 C 185.675,87.975427 187.89343,85.756998 190.63,85.756998 C 193.36658,85.756998 195.585,87.975427 195.585,90.711998 z"
d="m 195.585,90.711998 c 0,2.736571 -2.21842,4.955 -4.955,4.955 -2.73657,0 -4.955,-2.218429 -4.955,-4.955 0,-2.736571 2.21843,-4.955 4.955,-4.955 2.73658,0 4.955,2.218429 4.955,4.955 z"
style="fill:none;stroke:#dab452;stroke-width:1.5;stroke-linecap:square"
sodipodi:ry="4.9549999"
sodipodi:rx="4.9549999"
@ -28441,7 +28441,7 @@
id="g8738-2"
transform="matrix(1.0887723,0,0,1.065281,431.17616,631.18026)">
<circle
d="M 210.585,90.711998 C 210.585,93.448569 208.36658,95.666998 205.63,95.666998 C 202.89343,95.666998 200.675,93.448569 200.675,90.711998 C 200.675,87.975427 202.89343,85.756998 205.63,85.756998 C 208.36658,85.756998 210.585,87.975427 210.585,90.711998 z"
d="m 210.585,90.711998 c 0,2.736571 -2.21842,4.955 -4.955,4.955 -2.73657,0 -4.955,-2.218429 -4.955,-4.955 0,-2.736571 2.21843,-4.955 4.955,-4.955 2.73658,0 4.955,2.218429 4.955,4.955 z"
style="fill:none;stroke:#dab452;stroke-width:1.5;stroke-linecap:square"
sodipodi:ry="4.9549999"
sodipodi:rx="4.9549999"
@ -28456,7 +28456,7 @@
id="g8742-5"
transform="matrix(1.0887723,0,0,1.065281,431.17616,631.18026)">
<circle
d="M 195.585,105.712 C 195.585,108.44857 193.36658,110.667 190.63,110.667 C 187.89343,110.667 185.675,108.44857 185.675,105.712 C 185.675,102.97543 187.89343,100.757 190.63,100.757 C 193.36658,100.757 195.585,102.97543 195.585,105.712 z"
d="m 195.585,105.712 c 0,2.73657 -2.21842,4.955 -4.955,4.955 -2.73657,0 -4.955,-2.21843 -4.955,-4.955 0,-2.73657 2.21843,-4.955 4.955,-4.955 2.73658,0 4.955,2.21843 4.955,4.955 z"
style="fill:none;stroke:#dab452;stroke-width:1.5;stroke-linecap:square"
sodipodi:ry="4.9549999"
sodipodi:rx="4.9549999"
@ -28471,7 +28471,7 @@
id="g8746-8"
transform="matrix(1.0887723,0,0,1.065281,431.17616,631.18026)">
<circle
d="M 210.585,105.712 C 210.585,108.44857 208.36658,110.667 205.63,110.667 C 202.89343,110.667 200.675,108.44857 200.675,105.712 C 200.675,102.97543 202.89343,100.757 205.63,100.757 C 208.36658,100.757 210.585,102.97543 210.585,105.712 z"
d="m 210.585,105.712 c 0,2.73657 -2.21842,4.955 -4.955,4.955 -2.73657,0 -4.955,-2.21843 -4.955,-4.955 0,-2.73657 2.21843,-4.955 4.955,-4.955 2.73658,0 4.955,2.21843 4.955,4.955 z"
style="fill:none;stroke:#dab452;stroke-width:1.5;stroke-linecap:square"
sodipodi:ry="4.9549999"
sodipodi:rx="4.9549999"
@ -28486,7 +28486,7 @@
id="g8750-5"
transform="matrix(1.0887723,0,0,1.065281,431.17616,631.18026)">
<circle
d="M 195.585,120.712 C 195.585,123.44857 193.36658,125.667 190.63,125.667 C 187.89343,125.667 185.675,123.44857 185.675,120.712 C 185.675,117.97543 187.89343,115.757 190.63,115.757 C 193.36658,115.757 195.585,117.97543 195.585,120.712 z"
d="m 195.585,120.712 c 0,2.73657 -2.21842,4.955 -4.955,4.955 -2.73657,0 -4.955,-2.21843 -4.955,-4.955 0,-2.73657 2.21843,-4.955 4.955,-4.955 2.73658,0 4.955,2.21843 4.955,4.955 z"
style="fill:none;stroke:#dab452;stroke-width:1.5;stroke-linecap:square"
sodipodi:ry="4.9549999"
sodipodi:rx="4.9549999"
@ -28501,7 +28501,7 @@
id="g8754-0"
transform="matrix(1.0887723,0,0,1.065281,431.17616,631.18026)">
<circle
d="M 210.585,120.712 C 210.585,123.44857 208.36658,125.667 205.63,125.667 C 202.89343,125.667 200.675,123.44857 200.675,120.712 C 200.675,117.97543 202.89343,115.757 205.63,115.757 C 208.36658,115.757 210.585,117.97543 210.585,120.712 z"
d="m 210.585,120.712 c 0,2.73657 -2.21842,4.955 -4.955,4.955 -2.73657,0 -4.955,-2.21843 -4.955,-4.955 0,-2.73657 2.21843,-4.955 4.955,-4.955 2.73658,0 4.955,2.21843 4.955,4.955 z"
style="fill:none;stroke:#dab452;stroke-width:1.5;stroke-linecap:square"
sodipodi:ry="4.9549999"
sodipodi:rx="4.9549999"
@ -29343,7 +29343,7 @@
style="fill:none;stroke:#000000;stroke-width:0.99212599px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" />
<ellipse
id="ellipse8748"
d="M 253.1,45.400002 C 253.1,70.197588 221.71516,90.300003 183,90.300003 C 144.28484,90.300003 112.9,70.197588 112.9,45.400002 C 112.9,20.602415 144.28484,0.5 183,0.5 C 221.71516,0.5 253.1,20.602415 253.1,45.400002 z"
d="m 253.1,45.400002 c 0,24.797586 -31.38484,44.900001 -70.1,44.900001 -38.71516,0 -70.1,-20.102415 -70.1,-44.900001 C 112.9,20.602415 144.28484,0.5 183,0.5 c 38.71516,0 70.1,20.102415 70.1,44.900002 z"
cx="183"
rx="70.099998"
cy="45.400002"
@ -29356,7 +29356,7 @@
style="fill:#ff0000;fill-rule:evenodd;stroke:#000000;stroke-width:0.99199998px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" />
<ellipse
id="ellipse8750"
d="M 253.1,51.299999 C 253.1,76.097585 221.71516,96.200001 183,96.200001 C 144.28484,96.200001 112.9,76.097585 112.9,51.299999 C 112.9,26.502413 144.28484,6.3999977 183,6.3999977 C 221.71516,6.3999977 253.1,26.502413 253.1,51.299999 z"
d="m 253.1,51.299999 c 0,24.797586 -31.38484,44.900002 -70.1,44.900002 -38.71516,0 -70.1,-20.102416 -70.1,-44.900002 0,-24.797586 31.38484,-44.9000013 70.1,-44.9000013 38.71516,0 70.1,20.1024153 70.1,44.9000013 z"
cx="183"
rx="70.099998"
cy="51.299999"
@ -29369,7 +29369,7 @@
style="fill:#443838;fill-rule:evenodd;stroke:#000000;stroke-width:0.99199998px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" />
<ellipse
id="ellipse8752"
d="M 253.1,45.400002 C 253.1,70.197588 221.71516,90.300003 183,90.300003 C 144.28484,90.300003 112.9,70.197588 112.9,45.400002 C 112.9,20.602415 144.28484,0.5 183,0.5 C 221.71516,0.5 253.1,20.602415 253.1,45.400002 z"
d="m 253.1,45.400002 c 0,24.797586 -31.38484,44.900001 -70.1,44.900001 -38.71516,0 -70.1,-20.102415 -70.1,-44.900001 C 112.9,20.602415 144.28484,0.5 183,0.5 c 38.71516,0 70.1,20.102415 70.1,44.900002 z"
cx="183"
rx="70.099998"
cy="45.400002"
@ -29495,7 +29495,7 @@
style="fill:#b3b3b3;fill-rule:nonzero;stroke:#000000;stroke-width:0.99212599px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" />
<ellipse
id="ellipse8796"
d="M 198.1,45.400002 C 198.1,50.370564 191.3395,54.400002 183,54.400002 C 174.6605,54.400002 167.9,50.370564 167.9,45.400002 C 167.9,40.429439 174.6605,36.400002 183,36.400002 C 191.3395,36.400002 198.1,40.429439 198.1,45.400002 z"
d="m 198.1,45.400002 c 0,4.970562 -6.7605,9 -15.1,9 -8.3395,0 -15.1,-4.029438 -15.1,-9 0,-4.970563 6.7605,-9 15.1,-9 8.3395,0 15.1,4.029437 15.1,9 z"
cx="183"
rx="15.1"
cy="45.400002"
@ -33322,7 +33322,7 @@
<g
id="g3887-1-0">
<circle
d="M 386.44699,686.89099 C 386.44699,688.40977 385.21577,689.64099 383.69699,689.64099 C 382.17821,689.64099 380.94699,688.40977 380.94699,686.89099 C 380.94699,685.37221 382.17821,684.14099 383.69699,684.14099 C 385.21577,684.14099 386.44699,685.37221 386.44699,686.89099 z"
d="m 386.44699,686.89099 c 0,1.51878 -1.23122,2.75 -2.75,2.75 -1.51878,0 -2.75,-1.23122 -2.75,-2.75 0,-1.51878 1.23122,-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="686.89099"
@ -33668,7 +33668,7 @@
<g
id="g3913-3-1">
<circle
d="M 411.435,717.672 C 411.435,719.19078 410.20378,720.422 408.685,720.422 C 407.16621,720.422 405.935,719.19078 405.935,717.672 C 405.935,716.15321 407.16621,714.922 408.685,714.922 C 410.20378,714.922 411.435,716.15321 411.435,717.672 z"
d="m 411.435,717.672 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.51879 1.23121,-2.75 2.75,-2.75 1.51878,0 2.75,1.23121 2.75,2.75 z"
sodipodi:ry="2.75"
sodipodi:rx="2.75"
sodipodi:cy="717.672"
@ -34311,7 +34311,7 @@
<g
id="g3806-2">
<circle
d="M 586.448,613.99402 C 586.448,615.5128 585.21678,616.74402 583.698,616.74402 C 582.17921,616.74402 580.948,615.5128 580.948,613.99402 C 580.948,612.47524 582.17921,611.24402 583.698,611.24402 C 585.21678,611.24402 586.448,612.47524 586.448,613.99402 z"
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"
@ -34680,7 +34680,7 @@
<g
id="g3851-2">
<circle
d="M 216.804,613.62 C 216.804,615.13878 215.57278,616.37 214.054,616.37 C 212.53522,616.37 211.304,615.13878 211.304,613.62 C 211.304,612.10121 212.53522,610.87 214.054,610.87 C 215.57278,610.87 216.804,612.10121 216.804,613.62 z"
d="m 216.804,613.62 c 0,1.51878 -1.23122,2.75 -2.75,2.75 -1.51878,0 -2.75,-1.23122 -2.75,-2.75 0,-1.51879 1.23122,-2.75 2.75,-2.75 1.51878,0 2.75,1.23121 2.75,2.75 z"
sodipodi:ry="2.75"
sodipodi:rx="2.75"
sodipodi:cy="613.62"
@ -35399,7 +35399,7 @@
<g
id="g3806-3-8-3">
<circle
d="M 586.448,613.99402 C 586.448,615.5128 585.21678,616.74402 583.698,616.74402 C 582.17921,616.74402 580.948,615.5128 580.948,613.99402 C 580.948,612.47524 582.17921,611.24402 583.698,611.24402 C 585.21678,611.24402 586.448,612.47524 586.448,613.99402 z"
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"
@ -35500,7 +35500,7 @@
<g
id="g3806-3-8">
<circle
d="M 586.448,613.99402 C 586.448,615.5128 585.21678,616.74402 583.698,616.74402 C 582.17921,616.74402 580.948,615.5128 580.948,613.99402 C 580.948,612.47524 582.17921,611.24402 583.698,611.24402 C 585.21678,611.24402 586.448,612.47524 586.448,613.99402 z"
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"
@ -36603,7 +36603,7 @@
sodipodi:cy="686.89099"
sodipodi:rx="2.75"
sodipodi:ry="2.75"
d="M 386.44699,686.89099 C 386.44699,688.40977 385.21577,689.64099 383.69699,689.64099 C 382.17821,689.64099 380.94699,688.40977 380.94699,686.89099 C 380.94699,685.37221 382.17821,684.14099 383.69699,684.14099 C 385.21577,684.14099 386.44699,685.37221 386.44699,686.89099 z" />
d="m 386.44699,686.89099 c 0,1.51878 -1.23122,2.75 -2.75,2.75 -1.51878,0 -2.75,-1.23122 -2.75,-2.75 0,-1.51878 1.23122,-2.75 2.75,-2.75 1.51878,0 2.75,1.23122 2.75,2.75 z" />
<polygon
id="polygon3891-8"
points="385.232,688.145 384.951,688.426 383.697,687.172 382.443,688.426 382.162,688.145 383.416,686.891 382.162,685.637 382.443,685.355 383.697,686.609 384.951,685.355 385.232,685.637 383.978,686.891 "
@ -36669,7 +36669,7 @@
sodipodi:cy="717.672"
sodipodi:rx="2.75"
sodipodi:ry="2.75"
d="M 411.435,717.672 C 411.435,719.19078 410.20378,720.422 408.685,720.422 C 407.16621,720.422 405.935,719.19078 405.935,717.672 C 405.935,716.15321 407.16621,714.922 408.685,714.922 C 410.20378,714.922 411.435,716.15321 411.435,717.672 z" />
d="m 411.435,717.672 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.51879 1.23121,-2.75 2.75,-2.75 1.51878,0 2.75,1.23121 2.75,2.75 z" />
<polygon
id="polygon3917-1"
points="408.685,717.953 409.938,719.207 410.22,718.926 408.966,717.672 410.22,716.418 409.938,716.137 408.685,717.391 407.431,716.137 407.149,716.418 408.403,717.672 407.149,718.926 407.431,719.207 "
@ -36797,7 +36797,7 @@
sodipodi:cy="613.62"
sodipodi:rx="2.75"
sodipodi:ry="2.75"
d="M 216.804,613.62 C 216.804,615.13878 215.57278,616.37 214.054,616.37 C 212.53522,616.37 211.304,615.13878 211.304,613.62 C 211.304,612.10121 212.53522,610.87 214.054,610.87 C 215.57278,610.87 216.804,612.10121 216.804,613.62 z" />
d="m 216.804,613.62 c 0,1.51878 -1.23122,2.75 -2.75,2.75 -1.51878,0 -2.75,-1.23122 -2.75,-2.75 0,-1.51879 1.23122,-2.75 2.75,-2.75 1.51878,0 2.75,1.23121 2.75,2.75 z" />
<polygon
id="polygon3855-2"
points="213.773,613.621 212.52,612.367 212.801,612.086 214.055,613.34 215.309,612.086 215.59,612.367 214.336,613.621 215.59,614.875 215.309,615.156 214.055,613.901 212.801,615.156 212.52,614.875 "
@ -37820,7 +37820,7 @@
sodipodi:cy="613.62"
sodipodi:rx="2.75"
sodipodi:ry="2.75"
d="M 216.804,613.62 C 216.804,615.13878 215.57278,616.37 214.054,616.37 C 212.53522,616.37 211.304,615.13878 211.304,613.62 C 211.304,612.10121 212.53522,610.87 214.054,610.87 C 215.57278,610.87 216.804,612.10121 216.804,613.62 z" />
d="m 216.804,613.62 c 0,1.51878 -1.23122,2.75 -2.75,2.75 -1.51878,0 -2.75,-1.23122 -2.75,-2.75 0,-1.51879 1.23122,-2.75 2.75,-2.75 1.51878,0 2.75,1.23121 2.75,2.75 z" />
<polygon
id="polygon3855"
points="215.309,615.156 214.055,613.901 212.801,615.156 212.52,614.875 213.773,613.621 212.52,612.367 212.801,612.086 214.055,613.34 215.309,612.086 215.59,612.367 214.336,613.621 215.59,614.875 "
@ -37917,7 +37917,7 @@
sodipodi:cy="613.99402"
sodipodi:rx="2.75"
sodipodi:ry="2.75"
d="M 586.448,613.99402 C 586.448,615.5128 585.21678,616.74402 583.698,616.74402 C 582.17921,616.74402 580.948,615.5128 580.948,613.99402 C 580.948,612.47524 582.17921,611.24402 583.698,611.24402 C 585.21678,611.24402 586.448,612.47524 586.448,613.99402 z" />
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" />
<polygon
id="polygon3810"
points="582.163,612.74 583.417,613.994 582.163,615.248 582.444,615.529 583.698,614.275 584.952,615.529 585.233,615.248 583.979,613.994 585.233,612.74 584.952,612.459 583.698,613.713 582.444,612.459 "
@ -38078,7 +38078,7 @@
sodipodi:cy="686.89099"
sodipodi:rx="2.75"
sodipodi:ry="2.75"
d="M 386.44699,686.89099 C 386.44699,688.40977 385.21577,689.64099 383.69699,689.64099 C 382.17821,689.64099 380.94699,688.40977 380.94699,686.89099 C 380.94699,685.37221 382.17821,684.14099 383.69699,684.14099 C 385.21577,684.14099 386.44699,685.37221 386.44699,686.89099 z" />
d="m 386.44699,686.89099 c 0,1.51878 -1.23122,2.75 -2.75,2.75 -1.51878,0 -2.75,-1.23122 -2.75,-2.75 0,-1.51878 1.23122,-2.75 2.75,-2.75 1.51878,0 2.75,1.23122 2.75,2.75 z" />
<polygon
id="polygon3891"
points="383.416,686.891 382.162,685.637 382.443,685.355 383.697,686.609 384.951,685.355 385.232,685.637 383.978,686.891 385.232,688.145 384.951,688.426 383.697,687.172 382.443,688.426 382.162,688.145 "
@ -38144,7 +38144,7 @@
sodipodi:cy="717.672"
sodipodi:rx="2.75"
sodipodi:ry="2.75"
d="M 411.435,717.672 C 411.435,719.19078 410.20378,720.422 408.685,720.422 C 407.16621,720.422 405.935,719.19078 405.935,717.672 C 405.935,716.15321 407.16621,714.922 408.685,714.922 C 410.20378,714.922 411.435,716.15321 411.435,717.672 z" />
d="m 411.435,717.672 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.51879 1.23121,-2.75 2.75,-2.75 1.51878,0 2.75,1.23121 2.75,2.75 z" />
<polygon
id="polygon3917"
points="409.938,716.137 408.685,717.391 407.431,716.137 407.149,716.418 408.403,717.672 407.149,718.926 407.431,719.207 408.685,717.953 409.938,719.207 410.22,718.926 408.966,717.672 410.22,716.418 "

Before

Width:  |  Height:  |  Size: 2.3 MiB

After

Width:  |  Height:  |  Size: 2.3 MiB

View File

@ -43,6 +43,7 @@
#include "airspeedsettings.h"
#include <QtCore/qmath.h>
#include <QJsonObject>
#include "auxmagsettings.h"
VehicleConfigurationHelper::VehicleConfigurationHelper(VehicleConfigurationSource *configSource)
: m_configSource(configSource), m_uavoManager(0),
@ -193,43 +194,48 @@ void VehicleConfigurationHelper::applyHardwareConfiguration()
}
if (m_configSource->getGpsType() != VehicleConfigurationSource::GPS_DISABLED) {
data.OptionalModules[HwSettings::OPTIONALMODULES_GPS] = 1;
data.GPSSpeed = HwSettings::GPSSPEED_57600;
if (m_configSource->getInputType() == VehicleConfigurationSource::INPUT_SBUS) {
data.RM_FlexiPort = HwSettings::RM_FLEXIPORT_GPS;
} else {
data.RM_MainPort = HwSettings::RM_MAINPORT_GPS;
}
GPSSettings *gpsSettings = GPSSettings::GetInstance(m_uavoManager);
Q_ASSERT(gpsSettings);
GPSSettings::DataFields gpsData = gpsSettings->getData();
gpsData.UbxAutoConfig = GPSSettings::UBXAUTOCONFIG_DISABLED;
switch (m_configSource->getGpsType()) {
case VehicleConfigurationSource::GPS_NMEA:
data.OptionalModules[HwSettings::OPTIONALMODULES_GPS] = 1;
data.RM_MainPort = HwSettings::RM_MAINPORT_GPS;
data.GPSSpeed = HwSettings::GPSSPEED_57600;
gpsData.DataProtocol = GPSSettings::DATAPROTOCOL_NMEA;
break;
case VehicleConfigurationSource::GPS_UBX:
data.OptionalModules[HwSettings::OPTIONALMODULES_GPS] = 1;
data.RM_MainPort = HwSettings::RM_MAINPORT_GPS;
data.GPSSpeed = HwSettings::GPSSPEED_57600;
gpsData.DataProtocol = GPSSettings::DATAPROTOCOL_UBX;
break;
case VehicleConfigurationSource::GPS_PLATINUM:
data.OptionalModules[HwSettings::OPTIONALMODULES_GPS] = 1;
data.RM_MainPort = HwSettings::RM_MAINPORT_GPS;
data.GPSSpeed = HwSettings::GPSSPEED_115200;
/*
gpsData.DataProtocol = GPSSettings::DATAPROTOCOL_UBLOX;
AuxMagSettings *magSettings = AuxMagSettings::GetInstance(m_uavoManager);
AuxMagSettings::DataFields magsData = magSettings->getData();
magsData.usage = AuxMagSettings::Both;
magSettings->setData(magsData);
addModifiedObject(magSettings, tr("Writing External Mag sensor settings"));
*/
{
gpsData.DataProtocol = GPSSettings::DATAPROTOCOL_UBX;
gpsData.UbxAutoConfig = GPSSettings::UBXAUTOCONFIG_CONFIGURE;
AuxMagSettings *magSettings = AuxMagSettings::GetInstance(m_uavoManager);
Q_ASSERT(magSettings);
AuxMagSettings::DataFields magsData = magSettings->getData();
magsData.Usage = AuxMagSettings::USAGE_BOTH;
magSettings->setData(magsData);
addModifiedObject(magSettings, tr("Writing External Mag sensor settings"));
break;
default:
data.OptionalModules[HwSettings::OPTIONALMODULES_GPS] = 0;
}
case VehicleConfigurationSource::GPS_DISABLED:
// Should not be able to reach here
break;
}
gpsSettings->setData(gpsData);
addModifiedObject(gpsSettings, tr("Writing GPS sensor settings"));
} else {
data.OptionalModules[HwSettings::OPTIONALMODULES_GPS] = 0;
}
if (m_configSource->getVehicleType() == VehicleConfigurationSource::VEHICLE_FIXEDWING &&
@ -592,7 +598,7 @@ void VehicleConfigurationHelper::applyMixerConfiguration(mixerChannelSettings ch
// Set Mixer types and values
QString mixerTypePattern = "Mixer%1Type";
QString mixerVectorPattern = "Mixer%1Vector";
for (int i = 0; i < ActuatorSettings::CHANNELADDR_NUMELEM; i++) {
for (quint32 i = 0; i < ActuatorSettings::CHANNELADDR_NUMELEM; i++) {
UAVObjectField *field = mSettings->getField(mixerTypePattern.arg(i + 1));
Q_ASSERT(field);
field->setValue(field->getOptions().at(channels[i].type));
@ -1371,7 +1377,7 @@ void VehicleConfigurationHelper::setupHexaCopter()
void VehicleConfigurationHelper::setupOctoCopter()
{
mixerChannelSettings channels[10];
mixerChannelSettings channels[ActuatorSettings::CHANNELADDR_NUMELEM];
GUIConfigDataUnion guiSettings = getGUIConfigData();
SystemSettings::AirframeTypeOptions frame = SystemSettings::AIRFRAMETYPE_OCTO;
@ -1758,7 +1764,7 @@ void VehicleConfigurationHelper::setupOctoCopter()
void VehicleConfigurationHelper::setupElevon()
{
mixerChannelSettings channels[10];
mixerChannelSettings channels[ActuatorSettings::CHANNELADDR_NUMELEM];
GUIConfigDataUnion guiSettings = getGUIConfigData();
// Motor (Chan 3)
@ -1800,7 +1806,7 @@ void VehicleConfigurationHelper::setupDualAileron()
// 2. Setup GUI data
// 3. Apply changes
mixerChannelSettings channels[10];
mixerChannelSettings channels[ActuatorSettings::CHANNELADDR_NUMELEM];
GUIConfigDataUnion guiSettings = getGUIConfigData();
// Motor (Chan 3)
@ -1860,7 +1866,7 @@ void VehicleConfigurationHelper::setupAileron()
// 2. Setup GUI data
// 3. Apply changes
mixerChannelSettings channels[10];
mixerChannelSettings channels[ActuatorSettings::CHANNELADDR_NUMELEM];
GUIConfigDataUnion guiSettings = getGUIConfigData();
// Motor (Chan 3)

View File

@ -343,7 +343,7 @@ public:
{
QLineEdit *lineEdit = new QLineEdit(parent);
lineEdit->setInputMask(QString(maxLength(), 'H'));
lineEdit->setInputMask(QString(TreeItem::maxHexStringLength(m_field->getType()), 'H'));
return lineEdit;
}
@ -401,35 +401,75 @@ private:
return str.toString().toUInt(&ok, 16);
}
};
int maxLength()
class CharFieldTreeItem : public FieldTreeItem {
Q_OBJECT
public:
CharFieldTreeItem(UAVObjectField *field, int index, const QList<QVariant> &data, TreeItem *parent = 0) :
FieldTreeItem(index, data, parent), m_field(field)
{}
CharFieldTreeItem(UAVObjectField *field, int index, const QVariant &data, TreeItem *parent = 0) :
FieldTreeItem(index, data, parent), m_field(field)
{}
QWidget *createEditor(QWidget *parent)
{
int maxLength = 0;
QLineEdit *lineEdit = new QLineEdit(parent);
switch (m_field->getType()) {
case UAVObjectField::INT8:
maxLength = 2;
break;
case UAVObjectField::INT16:
maxLength = 4;
break;
case UAVObjectField::INT32:
maxLength = 8;
break;
case UAVObjectField::UINT8:
maxLength = 2;
break;
case UAVObjectField::UINT16:
maxLength = 4;
break;
case UAVObjectField::UINT32:
maxLength = 8;
break;
default:
Q_ASSERT(false);
break;
lineEdit->setInputMask(QString(1, 'N'));
return lineEdit;
}
QVariant getEditorValue(QWidget *editor)
{
QLineEdit *lineEdit = static_cast<QLineEdit *>(editor);
return lineEdit->text();
}
void setEditorValue(QWidget *editor, QVariant value)
{
QLineEdit *lineEdit = static_cast<QLineEdit *>(editor);
lineEdit->setText(value.toString());
}
void setData(QVariant value, int column)
{
setChanged(m_field->getValue(m_index) != toUInt(value));
TreeItem::setData(value, column);
}
void apply()
{
m_field->setValue(toUInt(data()), m_index);
setChanged(false);
}
void update()
{
QVariant value = toChar(m_field->getValue(m_index));
if (data() != value || changed()) {
TreeItem::setData(value);
setHighlight(true);
}
return maxLength;
}
private:
UAVObjectField *m_field;
QVariant toChar(QVariant value)
{
return value.toChar();
}
QVariant toUInt(QVariant str)
{
return QVariant(str.toString().at(0).toLatin1());
}
};

View File

@ -228,3 +228,34 @@ QList<MetaObjectTreeItem *> TopTreeItem::getMetaObjectItems()
{
return m_metaObjectTreeItemsPerObjectIds.values();
}
QVariant ArrayFieldTreeItem::data(int column) const
{
if (column == 1) {
if (m_field->getType() == UAVObjectField::UINT8 && m_field->getUnits().toLower() == "char") {
QString dataString;
for (uint i = 0; i < m_field->getNumElements(); ++i) {
dataString.append(m_field->getValue(i).toChar());
}
QString data = QString("'%1'").arg(dataString);
return data;
} else if (m_field->getUnits().toLower() == "hex") {
QString dataString;
for (uint i = 0; i < m_field->getNumElements(); ++i) {
if (i > 0) {
dataString.append(' ');
}
bool ok;
dataString.append(QString("%1")
.arg(m_field->getValue(i).toUInt(&ok), TreeItem::maxHexStringLength(m_field->getType()),
16, QChar('0')).toUpper());
}
QString data = QString("{%1}").arg(dataString);
return data;
} else {
return QVariant();
}
} else {
return TreeItem::data(column);
}
}

View File

@ -102,7 +102,7 @@ public:
}
int childCount() const;
int columnCount() const;
QVariant data(int column = 1) const;
virtual QVariant data(int column = 1) const;
QString description()
{
return m_description;
@ -179,6 +179,33 @@ public:
return 0;
}
static int maxHexStringLength(UAVObjectField::FieldType type)
{
switch (type) {
case UAVObjectField::INT8:
return 2;
case UAVObjectField::INT16:
return 4;
case UAVObjectField::INT32:
return 8;
case UAVObjectField::UINT8:
return 2;
case UAVObjectField::UINT16:
return 4;
case UAVObjectField::UINT32:
return 8;
default:
Q_ASSERT(false);
}
return 0;
}
signals:
void updateHighlight(TreeItem *);
@ -324,8 +351,14 @@ public:
class ArrayFieldTreeItem : public TreeItem {
Q_OBJECT
public:
ArrayFieldTreeItem(const QList<QVariant> &data, TreeItem *parent = 0) : TreeItem(data, parent) {}
ArrayFieldTreeItem(const QVariant &data, TreeItem *parent = 0) : TreeItem(data, parent) {}
ArrayFieldTreeItem(UAVObjectField *field, const QList<QVariant> &data, TreeItem *parent = 0) : TreeItem(data, parent), m_field(field)
{}
ArrayFieldTreeItem(UAVObjectField *field, const QVariant &data, TreeItem *parent = 0) : TreeItem(data, parent), m_field(field)
{}
QVariant data(int column) const;
private:
UAVObjectField *m_field;
};
#endif // TREEITEM_H

View File

@ -188,7 +188,7 @@ void UAVObjectTreeModel::addInstance(UAVObject *obj, TreeItem *parent)
void UAVObjectTreeModel::addArrayField(UAVObjectField *field, TreeItem *parent)
{
TreeItem *item = new ArrayFieldTreeItem(field->getName());
TreeItem *item = new ArrayFieldTreeItem(field, field->getName());
item->setHighlightManager(m_highlightManager);
connect(item, SIGNAL(updateHighlight(TreeItem *)), this, SLOT(updateHighlight(TreeItem *)));
@ -230,6 +230,8 @@ void UAVObjectTreeModel::addSingleField(int index, UAVObjectField *field, TreeIt
data.append(field->getUnits());
if (field->getUnits().toLower() == "hex") {
item = new HexFieldTreeItem(field, index, data);
} else if (field->getUnits().toLower() == "char") {
item = new CharFieldTreeItem(field, index, data);
} else {
item = new IntFieldTreeItem(field, index, data);
}

View File

@ -3,7 +3,7 @@
<description>Queries board for SN, model, revision, and sends reset command</description>
<field name="Command" units="" type="uint16" elements="1"/>
<field name="Description" units="" type="uint8" elements="100"/>
<field name="CPUSerial" units="" type="uint8" elements="12" />
<field name="CPUSerial" units="hex" type="uint8" elements="12" />
<field name="BoardRevision" units="" type="uint16" elements="1"/>
<field name="BoardType" units="" type="uint8" elements="1"/>
<field name="BootloaderRevision" units="" type="uint8" elements="1"/>

View File

@ -7,69 +7,69 @@
<!-- Note these options should be identical to those in StabilizationDesired.StabilizationMode -->
<field name="Stabilization1Settings" units="" type="enum"
elementnames="Roll,Pitch,Yaw,Thrust"
options="Manual,Rate,Attitude,AxisLock,WeakLeveling,VirtualBar,Rattitude,RelayRate,RelayAttitude,AltitudeHold,AltitudeVario,CruiseControl"
options="Manual,Rate,Attitude,AxisLock,WeakLeveling,VirtualBar,Acro+,Rattitude,RelayRate,RelayAttitude,AltitudeHold,AltitudeVario,CruiseControl"
defaultvalue="Attitude,Attitude,AxisLock,Manual"
limits="%NE:RelayRate:RelayAttitude:AltitudeHold:AltitudeVario:CruiseControl; \
%NE:RelayRate:RelayAttitude:AltitudeHold:AltitudeVario:CruiseControl; \
%NE:RelayRate:RelayAttitude:AltitudeHold:AltitudeVario:CruiseControl; \
%NE:Rate:Attitude:AxisLock:WeakLeveling:VirtualBar:Rattitude:RelayRate:RelayAttitude,\
%0401NE:Rate:Attitude:AxisLock:WeakLeveling:VirtualBar:Rattitude:RelayRate:RelayAttitude:AltitudeHold:AltitudeVario,\
%0402NE:Rate:Attitude:AxisLock:WeakLeveling:VirtualBar:Rattitude:RelayRate:RelayAttitude:AltitudeHold:AltitudeVario;"
%NE:Rate:Attitude:AxisLock:WeakLeveling:VirtualBar:Acro+:Rattitude:RelayRate:RelayAttitude,\
%0401NE:Rate:Attitude:AxisLock:WeakLeveling:VirtualBar:Acro+:Rattitude:RelayRate:RelayAttitude:AltitudeHold:AltitudeVario,\
%0402NE:Rate:Attitude:AxisLock:WeakLeveling:VirtualBar:Acro+:Rattitude:RelayRate:RelayAttitude:AltitudeHold:AltitudeVario;"
/>
<field name="Stabilization2Settings" units="" type="enum"
elementnames="Roll,Pitch,Yaw,Thrust"
options="Manual,Rate,Attitude,AxisLock,WeakLeveling,VirtualBar,Rattitude,RelayRate,RelayAttitude,AltitudeHold,AltitudeVario,CruiseControl"
options="Manual,Rate,Attitude,AxisLock,WeakLeveling,VirtualBar,Acro+,Rattitude,RelayRate,RelayAttitude,AltitudeHold,AltitudeVario,CruiseControl"
defaultvalue="Attitude,Attitude,Rate,Manual"
limits="%NE:RelayRate:RelayAttitude:AltitudeHold:AltitudeVario:CruiseControl; \
%NE:RelayRate:RelayAttitude:AltitudeHold:AltitudeVario:CruiseControl; \
%NE:RelayRate:RelayAttitude:AltitudeHold:AltitudeVario:CruiseControl; \
%NE:Rate:Attitude:AxisLock:WeakLeveling:VirtualBar:Rattitude:RelayRate:RelayAttitude,\
%0401NE:Rate:Attitude:AxisLock:WeakLeveling:VirtualBar:Rattitude:RelayRate:RelayAttitude:AltitudeHold:AltitudeVario,\
%0402NE:Rate:Attitude:AxisLock:WeakLeveling:VirtualBar:Rattitude:RelayRate:RelayAttitude:AltitudeHold:AltitudeVario;"
%NE:Rate:Attitude:AxisLock:WeakLeveling:VirtualBar:Acro+:Rattitude:RelayRate:RelayAttitude,\
%0401NE:Rate:Attitude:AxisLock:WeakLeveling:VirtualBar:Acro+:Rattitude:RelayRate:RelayAttitude:AltitudeHold:AltitudeVario,\
%0402NE:Rate:Attitude:AxisLock:WeakLeveling:VirtualBar:Acro+:Rattitude:RelayRate:RelayAttitude:AltitudeHold:AltitudeVario;"
/>
<field name="Stabilization3Settings" units="" type="enum"
elementnames="Roll,Pitch,Yaw,Thrust"
options="Manual,Rate,Attitude,AxisLock,WeakLeveling,VirtualBar,Rattitude,RelayRate,RelayAttitude,AltitudeHold,AltitudeVario,CruiseControl"
options="Manual,Rate,Attitude,AxisLock,WeakLeveling,VirtualBar,Acro+,Rattitude,RelayRate,RelayAttitude,AltitudeHold,AltitudeVario,CruiseControl"
defaultvalue="Rate,Rate,Rate,Manual"
limits="%NE:RelayRate:RelayAttitude:AltitudeHold:AltitudeVario:CruiseControl; \
%NE:RelayRate:RelayAttitude:AltitudeHold:AltitudeVario:CruiseControl; \
%NE:RelayRate:RelayAttitude:AltitudeHold:AltitudeVario:CruiseControl; \
%NE:Rate:Attitude:AxisLock:WeakLeveling:VirtualBar:Rattitude:RelayRate:RelayAttitude,\
%0401NE:Rate:Attitude:AxisLock:WeakLeveling:VirtualBar:Rattitude:RelayRate:RelayAttitude:AltitudeHold:AltitudeVario,\
%0402NE:Rate:Attitude:AxisLock:WeakLeveling:VirtualBar:Rattitude:RelayRate:RelayAttitude:AltitudeHold:AltitudeVario;"
%NE:Rate:Attitude:AxisLock:WeakLeveling:VirtualBar:Acro+:Rattitude:RelayRate:RelayAttitude,\
%0401NE:Rate:Attitude:AxisLock:WeakLeveling:VirtualBar:Acro+:Rattitude:RelayRate:RelayAttitude:AltitudeHold:AltitudeVario,\
%0402NE:Rate:Attitude:AxisLock:WeakLeveling:VirtualBar:Acro+:Rattitude:RelayRate:RelayAttitude:AltitudeHold:AltitudeVario;"
/>
<field name="Stabilization4Settings" units="" type="enum"
elementnames="Roll,Pitch,Yaw,Thrust"
options="Manual,Rate,Attitude,AxisLock,WeakLeveling,VirtualBar,Rattitude,RelayRate,RelayAttitude,AltitudeHold,AltitudeVario,CruiseControl"
options="Manual,Rate,Attitude,AxisLock,WeakLeveling,VirtualBar,Acro+,Rattitude,RelayRate,RelayAttitude,AltitudeHold,AltitudeVario,CruiseControl"
defaultvalue="Attitude,Attitude,AxisLock,CruiseControl"
limits="%NE:RelayRate:RelayAttitude:AltitudeHold:AltitudeVario:CruiseControl; \
%NE:RelayRate:RelayAttitude:AltitudeHold:AltitudeVario:CruiseControl; \
%NE:RelayRate:RelayAttitude:AltitudeHold:AltitudeVario:CruiseControl; \
%NE:Rate:Attitude:AxisLock:WeakLeveling:VirtualBar:Rattitude:RelayRate:RelayAttitude,\
%0401NE:Rate:Attitude:AxisLock:WeakLeveling:VirtualBar:Rattitude:RelayRate:RelayAttitude:AltitudeHold:AltitudeVario,\
%0402NE:Rate:Attitude:AxisLock:WeakLeveling:VirtualBar:Rattitude:RelayRate:RelayAttitude:AltitudeHold:AltitudeVario;"
%NE:Rate:Attitude:AxisLock:WeakLeveling:VirtualBar:Acro+:Rattitude:RelayRate:RelayAttitude,\
%0401NE:Rate:Attitude:AxisLock:WeakLeveling:VirtualBar:Acro+:Rattitude:RelayRate:RelayAttitude:AltitudeHold:AltitudeVario,\
%0402NE:Rate:Attitude:AxisLock:WeakLeveling:VirtualBar:Acro+:Rattitude:RelayRate:RelayAttitude:AltitudeHold:AltitudeVario;"
/>
<field name="Stabilization5Settings" units="" type="enum"
elementnames="Roll,Pitch,Yaw,Thrust"
options="Manual,Rate,Attitude,AxisLock,WeakLeveling,VirtualBar,Rattitude,RelayRate,RelayAttitude,AltitudeHold,AltitudeVario,CruiseControl"
options="Manual,Rate,Attitude,AxisLock,WeakLeveling,VirtualBar,Acro+,Rattitude,RelayRate,RelayAttitude,AltitudeHold,AltitudeVario,CruiseControl"
defaultvalue="Attitude,Attitude,Rate,CruiseControl"
limits="%NE:RelayRate:RelayAttitude:AltitudeHold:AltitudeVario:CruiseControl; \
%NE:RelayRate:RelayAttitude:AltitudeHold:AltitudeVario:CruiseControl; \
%NE:RelayRate:RelayAttitude:AltitudeHold:AltitudeVario:CruiseControl; \
%NE:Rate:Attitude:AxisLock:WeakLeveling:VirtualBar:Rattitude:RelayRate:RelayAttitude,\
%0401NE:Rate:Attitude:AxisLock:WeakLeveling:VirtualBar:Rattitude:RelayRate:RelayAttitude:AltitudeHold:AltitudeVario,\
%0402NE:Rate:Attitude:AxisLock:WeakLeveling:VirtualBar:Rattitude:RelayRate:RelayAttitude:AltitudeHold:AltitudeVario;"
%NE:Rate:Attitude:AxisLock:WeakLeveling:VirtualBar:Acro+:Rattitude:RelayRate:RelayAttitude,\
%0401NE:Rate:Attitude:AxisLock:WeakLeveling:VirtualBar:Acro+:Rattitude:RelayRate:RelayAttitude:AltitudeHold:AltitudeVario,\
%0402NE:Rate:Attitude:AxisLock:WeakLeveling:VirtualBar:Acro+:Rattitude:RelayRate:RelayAttitude:AltitudeHold:AltitudeVario;"
/>
<field name="Stabilization6Settings" units="" type="enum"
elementnames="Roll,Pitch,Yaw,Thrust"
options="Manual,Rate,Attitude,AxisLock,WeakLeveling,VirtualBar,Rattitude,RelayRate,RelayAttitude,AltitudeHold,AltitudeVario,CruiseControl"
options="Manual,Rate,Attitude,AxisLock,WeakLeveling,VirtualBar,Acro+,Rattitude,RelayRate,RelayAttitude,AltitudeHold,AltitudeVario,CruiseControl"
defaultvalue="Rate,Rate,Rate,CruiseControl"
limits="%NE:RelayRate:RelayAttitude:AltitudeHold:AltitudeVario:CruiseControl; \
%NE:RelayRate:RelayAttitude:AltitudeHold:AltitudeVario:CruiseControl; \
%NE:RelayRate:RelayAttitude:AltitudeHold:AltitudeVario:CruiseControl; \
%NE:Rate:Attitude:AxisLock:WeakLeveling:VirtualBar:Rattitude:RelayRate:RelayAttitude,\
%0401NE:Rate:Attitude:AxisLock:WeakLeveling:VirtualBar:Rattitude:RelayRate:RelayAttitude:AltitudeHold:AltitudeVario,\
%0402NE:Rate:Attitude:AxisLock:WeakLeveling:VirtualBar:Rattitude:RelayRate:RelayAttitude:AltitudeHold:AltitudeVario;"
%NE:Rate:Attitude:AxisLock:WeakLeveling:VirtualBar:Acro+:Rattitude:RelayRate:RelayAttitude,\
%0401NE:Rate:Attitude:AxisLock:WeakLeveling:VirtualBar:Acro+:Rattitude:RelayRate:RelayAttitude:AltitudeHold:AltitudeVario,\
%0402NE:Rate:Attitude:AxisLock:WeakLeveling:VirtualBar:Acro+:Rattitude:RelayRate:RelayAttitude:AltitudeHold:AltitudeVario;"
/>
<!-- Note these options values should be identical to those defined in FlightMode -->

View File

@ -3,9 +3,9 @@
<description>Extended GPS status.</description>
<field name="Status" units="" type="enum" elements="1" options="NONE,GPSV9" defaultvalue="NONE"/>
<field name="FlightTime" units="" type="uint32" elements="1"/>
<field name="BoardType" units="bytes" type="uint8" elements="2"/>
<field name="FirmwareHash" units=" bytes" type="uint8" elements="8"/>
<field name="FirmwareTag" units="bytes" type="uint8" elements="26"/>
<field name="BoardType" units="hex" type="uint8" elements="2"/>
<field name="FirmwareHash" units="hex" type="uint8" elements="8"/>
<field name="FirmwareTag" units="char" type="uint8" elements="26"/>
<field name="Options" units="" type="uint16" elements="1"/>
<access gcs="readwrite" flight="readwrite"/>
<telemetrygcs acked="false" updatemode="manual" period="0"/>

View File

@ -7,14 +7,19 @@
<field name="YawMax" units="degrees" type="uint8" elements="1" defaultvalue="42" limits="%BE:0:180"/>
<field name="ManualRate" units="degrees/sec" type="float" elementnames="Roll,Pitch,Yaw" defaultvalue="150,150,175" limits="%BE:0:500; %BE:0:500; %BE:0:500"/>
<field name="MaximumRate" units="degrees/sec" type="float" elementnames="Roll,Pitch,Yaw" defaultvalue="300,300,50" limits="%BE:0:500; %BE:0:500; %BE:0:500"/>
<field name="StickExpo" units="percent" type="int8" elementnames="Roll,Pitch,Yaw" defaultvalue="0,0,0" limits="%BE:-100:100; %BE:-100:100; %BE:-100:100"/>
<field name="RollRatePID" units="" type="float" elementnames="Kp,Ki,Kd,ILimit" defaultvalue="0.003,0.003,0.00002,0.3" limits="%BE:0:0.01; %BE:0:0.01; ; "/>
<field name="PitchRatePID" units="" type="float" elementnames="Kp,Ki,Kd,ILimit" defaultvalue="0.003,0.003,0.00002,0.3" limits="%BE:0:0.01; %BE:0:0.01; ; "/>
<field name="YawRatePID" units="" type="float" elementnames="Kp,Ki,Kd,ILimit" defaultvalue="0.0035,0.0035,0,0.3" limits="%BE:0:0.01; %BE:0:0.01 ; ; "/>
<field name="RollRatePID" units="" type="float" elementnames="Kp,Ki,Kd,ILimit" defaultvalue="0.003,0.003,0.00002,0.3" limits="%BE:0:0.01; %BE:0:0.015; ; "/>
<field name="PitchRatePID" units="" type="float" elementnames="Kp,Ki,Kd,ILimit" defaultvalue="0.003,0.003,0.00002,0.3" limits="%BE:0:0.01; %BE:0:0.015; ; "/>
<field name="YawRatePID" units="" type="float" elementnames="Kp,Ki,Kd,ILimit" defaultvalue="0.0035,0.0035,0,0.3" limits="%BE:0:0.01; %BE:0:0.015 ; ; "/>
<field name="RollPI" units="" type="float" elementnames="Kp,Ki,ILimit" defaultvalue="2.5,0,50" limits="%BE:0:10; %BE:0:10; "/>
<field name="PitchPI" units="" type="float" elementnames="Kp,Ki,ILimit" defaultvalue="2.5,0,50" limits="%BE:0:10; %BE:0:10; "/>
<field name="YawPI" units="" type="float" elementnames="Kp,Ki,ILimit"/>
<field name="AcroInsanityFactor" units="percent" type="float" elements="1" defaultvalue="0.5" limits="%BE:0.0:1.0; %BE:0.0:1.0; %BE:0.0:1.0"/>
<field name="EnablePiroComp" units="" type="enum" elements="1" options="FALSE,TRUE" defaultvalue="TRUE"/>
<field name="EnableThrustPIDScaling" units="" type="enum" elements="1" options="FALSE,TRUE" defaultvalue="FALSE"/>
<field name="ThrustPIDScaleCurve" units="percent" type="float" elementnames="0,25,50,75,100" defaultvalue="0.3,0.15,0,-0.15,-0.3"/>
<field name="ThrustPIDScaleSource" units="" type="enum" elements="1" options="ManualControlThrottle,StabilizationDesiredThrust,ActuatorDesiredThrust" defaultvalue="ActuatorDesiredThrust" />

View File

@ -6,7 +6,7 @@
<field name="Yaw" units="degrees" type="float" elements="1"/>
<field name="Thrust" units="%" type="float" elements="1"/>
<!-- These values should match those in FlightModeSettings.Stabilization{1,2,3}Settings -->
<field name="StabilizationMode" units="" type="enum" elementnames="Roll,Pitch,Yaw,Thrust" options="Manual,Rate,Attitude,AxisLock,WeakLeveling,VirtualBar,Rattitude,RelayRate,RelayAttitude,AltitudeHold,AltitudeVario,CruiseControl"/>
<field name="StabilizationMode" units="" type="enum" elementnames="Roll,Pitch,Yaw,Thrust" options="Manual,Rate,Attitude,AxisLock,WeakLeveling,VirtualBar,Acro+,Rattitude,RelayRate,RelayAttitude,AltitudeHold,AltitudeVario,CruiseControl"/>
<access gcs="readwrite" flight="readwrite"/>
<telemetrygcs acked="false" updatemode="manual" period="0"/>
<telemetryflight acked="false" updatemode="periodic" period="1000"/>

View File

@ -7,14 +7,19 @@
<field name="YawMax" units="degrees" type="uint8" elements="1" defaultvalue="35" limits="%BE:0:180"/>
<field name="ManualRate" units="degrees/sec" type="float" elementnames="Roll,Pitch,Yaw" defaultvalue="220,220,220" limits="%BE:0:500; %BE:0:500; %BE:0:500"/>
<field name="MaximumRate" units="degrees/sec" type="float" elementnames="Roll,Pitch,Yaw" defaultvalue="300,300,300" limits="%BE:0:500; %BE:0:500; %BE:0:500"/>
<field name="StickExpo" units="percent" type="int8" elementnames="Roll,Pitch,Yaw" defaultvalue="0,0,0" limits="%BE:-100:100; %BE:-100:100; %BE:-100:100"/>
<field name="RollRatePID" units="" type="float" elementnames="Kp,Ki,Kd,ILimit" defaultvalue="0.0025,0.004,0.00002,0.3" limits="%BE:0:0.01; %BE:0:0.01; ; "/>
<field name="PitchRatePID" units="" type="float" elementnames="Kp,Ki,Kd,ILimit" defaultvalue="0.0025,0.004,0.00002,0.3" limits="%BE:0:0.01; %BE:0:0.01; ; "/>
<field name="RollRatePID" units="" type="float" elementnames="Kp,Ki,Kd,ILimit" defaultvalue="0.0025,0.004,0.00002,0.3" limits="%BE:0:0.01; %BE:0:0.015; ; "/>
<field name="PitchRatePID" units="" type="float" elementnames="Kp,Ki,Kd,ILimit" defaultvalue="0.0025,0.004,0.00002,0.3" limits="%BE:0:0.01; %BE:0:0.015; ; "/>
<field name="YawRatePID" units="" type="float" elementnames="Kp,Ki,Kd,ILimit" defaultvalue="0.00620,0.01000,0.00005,0.3" limits="%BE:0:0.01; %BE:0:0.015 ; ; "/>
<field name="RollPI" units="" type="float" elementnames="Kp,Ki,ILimit" defaultvalue="2.5,0,50" limits="%BE:0:10; %BE:0:10; "/>
<field name="PitchPI" units="" type="float" elementnames="Kp,Ki,ILimit" defaultvalue="2.5,0,50" limits="%BE:0:10; %BE:0:10; "/>
<field name="YawPI" units="" type="float" elementnames="Kp,Ki,ILimit" defaultvalue="2.5,0,50" limits="%BE:0:10; %BE:0:10; "/>
<field name="AcroInsanityFactor" units="percent" type="float" elements="1" defaultvalue="0.5" limits="%BE:0.0:1.0; %BE:0.0:1.0; %BE:0.0:1.0"/>
<field name="EnablePiroComp" units="" type="enum" elements="1" options="FALSE,TRUE" defaultvalue="TRUE"/>
<field name="EnableThrustPIDScaling" units="" type="enum" elements="1" options="FALSE,TRUE" defaultvalue="FALSE"/>
<field name="ThrustPIDScaleCurve" units="percent" type="float" elementnames="0,25,50,75,100" defaultvalue="0.3,0.15,0,-0.15,-0.3"/>
<field name="ThrustPIDScaleSource" units="" type="enum" elements="1" options="ManualControlThrottle,StabilizationDesiredThrust,ActuatorDesiredThrust" defaultvalue="ActuatorDesiredThrust" />

View File

@ -7,14 +7,19 @@
<field name="YawMax" units="degrees" type="uint8" elements="1" defaultvalue="35" limits="%BE:0:180"/>
<field name="ManualRate" units="degrees/sec" type="float" elementnames="Roll,Pitch,Yaw" defaultvalue="220,220,220" limits="%BE:0:500; %BE:0:500; %BE:0:500"/>
<field name="MaximumRate" units="degrees/sec" type="float" elementnames="Roll,Pitch,Yaw" defaultvalue="300,300,300" limits="%BE:0:500; %BE:0:500; %BE:0:500"/>
<field name="StickExpo" units="percent" type="int8" elementnames="Roll,Pitch,Yaw" defaultvalue="0,0,0" limits="%BE:-100:100; %BE:-100:100; %BE:-100:100"/>
<field name="RollRatePID" units="" type="float" elementnames="Kp,Ki,Kd,ILimit" defaultvalue="0.0025,0.004,0.00002,0.3" limits="%BE:0:0.01; %BE:0:0.01; ; "/>
<field name="PitchRatePID" units="" type="float" elementnames="Kp,Ki,Kd,ILimit" defaultvalue="0.0025,0.004,0.00002,0.3" limits="%BE:0:0.01; %BE:0:0.01; ; "/>
<field name="RollRatePID" units="" type="float" elementnames="Kp,Ki,Kd,ILimit" defaultvalue="0.0025,0.004,0.00002,0.3" limits="%BE:0:0.01; %BE:0:0.015; ; "/>
<field name="PitchRatePID" units="" type="float" elementnames="Kp,Ki,Kd,ILimit" defaultvalue="0.0025,0.004,0.00002,0.3" limits="%BE:0:0.01; %BE:0:0.015; ; "/>
<field name="YawRatePID" units="" type="float" elementnames="Kp,Ki,Kd,ILimit" defaultvalue="0.00620,0.01000,0.00005,0.3" limits="%BE:0:0.01; %BE:0:0.015 ; ; "/>
<field name="RollPI" units="" type="float" elementnames="Kp,Ki,ILimit" defaultvalue="2.5,0,50" limits="%BE:0:10; %BE:0:10; "/>
<field name="PitchPI" units="" type="float" elementnames="Kp,Ki,ILimit" defaultvalue="2.5,0,50" limits="%BE:0:10; %BE:0:10; "/>
<field name="YawPI" units="" type="float" elementnames="Kp,Ki,ILimit" defaultvalue="2.5,0,50" limits="%BE:0:10; %BE:0:10; "/>
<field name="AcroInsanityFactor" units="percent" type="float" elements="1" defaultvalue="0.5" limits="%BE:0.0:1.0; %BE:0.0:1.0; %BE:0.0:1.0"/>
<field name="EnablePiroComp" units="" type="enum" elements="1" options="FALSE,TRUE" defaultvalue="TRUE"/>
<field name="EnableThrustPIDScaling" units="" type="enum" elements="1" options="FALSE,TRUE" defaultvalue="FALSE"/>
<field name="ThrustPIDScaleCurve" units="percent" type="float" elementnames="0,25,50,75,100" defaultvalue="0.3,0.15,0,-0.15,-0.3"/>
<field name="ThrustPIDScaleSource" units="" type="enum" elements="1" options="ManualControlThrottle,StabilizationDesiredThrust,ActuatorDesiredThrust" defaultvalue="ActuatorDesiredThrust" />

View File

@ -7,14 +7,19 @@
<field name="YawMax" units="degrees" type="uint8" elements="1" defaultvalue="35" limits="%BE:0:180"/>
<field name="ManualRate" units="degrees/sec" type="float" elementnames="Roll,Pitch,Yaw" defaultvalue="220,220,220" limits="%BE:0:500; %BE:0:500; %BE:0:500"/>
<field name="MaximumRate" units="degrees/sec" type="float" elementnames="Roll,Pitch,Yaw" defaultvalue="300,300,300" limits="%BE:0:500; %BE:0:500; %BE:0:500"/>
<field name="StickExpo" units="percent" type="int8" elementnames="Roll,Pitch,Yaw" defaultvalue="0,0,0" limits="%BE:-100:100; %BE:-100:100; %BE:-100:100"/>
<field name="RollRatePID" units="" type="float" elementnames="Kp,Ki,Kd,ILimit" defaultvalue="0.0025,0.004,0.00002,0.3" limits="%BE:0:0.01; %BE:0:0.01; ; "/>
<field name="PitchRatePID" units="" type="float" elementnames="Kp,Ki,Kd,ILimit" defaultvalue="0.0025,0.004,0.00002,0.3" limits="%BE:0:0.01; %BE:0:0.01; ; "/>
<field name="RollRatePID" units="" type="float" elementnames="Kp,Ki,Kd,ILimit" defaultvalue="0.0025,0.004,0.00002,0.3" limits="%BE:0:0.01; %BE:0:0.015; ; "/>
<field name="PitchRatePID" units="" type="float" elementnames="Kp,Ki,Kd,ILimit" defaultvalue="0.0025,0.004,0.00002,0.3" limits="%BE:0:0.01; %BE:0:0.015; ; "/>
<field name="YawRatePID" units="" type="float" elementnames="Kp,Ki,Kd,ILimit" defaultvalue="0.00620,0.01000,0.00005,0.3" limits="%BE:0:0.01; %BE:0:0.015 ; ; "/>
<field name="RollPI" units="" type="float" elementnames="Kp,Ki,ILimit" defaultvalue="2.5,0,50" limits="%BE:0:10; %BE:0:10; "/>
<field name="PitchPI" units="" type="float" elementnames="Kp,Ki,ILimit" defaultvalue="2.5,0,50" limits="%BE:0:10; %BE:0:10; "/>
<field name="YawPI" units="" type="float" elementnames="Kp,Ki,ILimit" defaultvalue="2.5,0,50" limits="%BE:0:10; %BE:0:10; "/>
<field name="AcroInsanityFactor" units="percent" type="float" elements="1" defaultvalue="0.5" limits="%BE:0.0:1.0; %BE:0.0:1.0; %BE:0.0:1.0"/>
<field name="EnablePiroComp" units="" type="enum" elements="1" options="FALSE,TRUE" defaultvalue="TRUE"/>
<field name="EnableThrustPIDScaling" units="" type="enum" elements="1" options="FALSE,TRUE" defaultvalue="FALSE"/>
<field name="ThrustPIDScaleCurve" units="percent" type="float" elementnames="0,25,50,75,100" defaultvalue="0.3,0.15,0,-0.15,-0.3"/>
<field name="ThrustPIDScaleSource" units="" type="enum" elements="1" options="ManualControlThrottle,StabilizationDesiredThrust,ActuatorDesiredThrust" defaultvalue="ActuatorDesiredThrust" />

View File

@ -11,7 +11,7 @@
<elementname>Thrust</elementname>
</elementnames>
</field>
<field name="InnerLoop" units="" type="enum" options="Direct,VirtualFlyBar,RelayTuning,AxisLock,Rate,CruiseControl">
<field name="InnerLoop" units="" type="enum" options="Direct,VirtualFlyBar,Acro+,RelayTuning,AxisLock,Rate,CruiseControl">
<elementnames>
<elementname>Roll</elementname>
<elementname>Pitch</elementname>