Merge branch 'next' into CC_GPS
@ -27,6 +27,10 @@ N: Pedro Assuncao
|
||||
E: pedro (dot) agda (plus) openpilot (at) gmail (dot) com
|
||||
D: Initial GCS Settings Gadget work
|
||||
|
||||
N: Werner Backes
|
||||
E: werner (at) bit-1 (dot) de
|
||||
D: Port of CopterControl to PS3 Move Controller (MoveCopter)
|
||||
|
||||
N: Jose Barros
|
||||
E: josembarros (at) hotmail (dot) com
|
||||
D: Next-Gen OP Map Lib, Y-Modem Library, Uploader Plugin
|
||||
@ -162,6 +166,8 @@ D: Creator of the OpenPilot INS / EKF
|
||||
N: Oleg Semyonov
|
||||
E: os-openpilot-org (at) os-propo (dot) info
|
||||
D: Core tester & Project organisation
|
||||
M: Common part of multi-platform packaging system
|
||||
M: Windows NSIS Installer
|
||||
M: Russian Documentation Lead
|
||||
|
||||
N: Stacey Sheldon
|
||||
@ -201,4 +207,3 @@ M: Architecture co-lead
|
||||
N: Alex Vrubel
|
||||
E: alex (dot) vrubel (plus) openpilot (at) gmail (dot) com
|
||||
D: Russian translation of the GCS
|
||||
|
||||
|
43
HISTORY.txt
Normal file
@ -0,0 +1,43 @@
|
||||
Short summary of changes. For a complete list see the git log.
|
||||
|
||||
2011-08-10
|
||||
Added Camera Stabilization and a gui to configure this. This is a software
|
||||
selectable module from the GUI. However, a restart is required to make it
|
||||
active. The GUI does not currently expose the configuration for using the
|
||||
transmitter to change the view angle but this is supported by the hardware.
|
||||
|
||||
2011-08-10
|
||||
By default a lot of diagnostic objects that were enabled by default are now
|
||||
disabled in the build. This include TaskInfo (and all the FreeRTOS options
|
||||
that provide that debugging information). Also MixerStatus, I2CStatus,
|
||||
WatchdogStatus and RateDesired. These can be reenabled for debugging with
|
||||
-DDIAGNOSTICS.
|
||||
|
||||
2011-08-04
|
||||
Fixed packaging aesthetic issues. Also avoid runtime issues on OSX Lion by
|
||||
disabling the ModelView and Notify plugins for now (sorry).
|
||||
|
||||
2011-07-29
|
||||
Added support for PPM receivers from James W. Now all 4 interfaces (R/C
|
||||
standard PWM, combined PPM (MK), Spektrum satellite, Futaba S.Bus) are
|
||||
supported and configurable through the GCS hardware configuration tab.
|
||||
|
||||
2011-07-17
|
||||
Updated module initialization from Mathieu which separates the initialization
|
||||
from the task startup. Also implements a method to reclaim unused ram from
|
||||
initialization and end of memory for the FreeRTOS heap.
|
||||
|
||||
2011-07-12
|
||||
Improvements to the stabilization code. Included a LPF on the gyros to smooth
|
||||
out noise in high vibration environments. Also two new modes: axis-lock and
|
||||
weak leveling. Axis-lock will try and hold an axis at a fixed position and
|
||||
reject any disturbances. This is like heading-hold on a heli for the tail but
|
||||
can be useful for other axes. Weak leveling is rate mode with a weak
|
||||
correction to self level the craft - good for easier rate mode flying.
|
||||
|
||||
2011-07-07
|
||||
Dynamic hardware configuration from Stac. The input type is now
|
||||
selected from ManualControlSettings.InputMode and the aircraft must be rebooted
|
||||
after changing this. Also for CopterControl the HwSettings object must
|
||||
indicate which modules are connected to which ports. PPM currently not
|
||||
working.
|
@ -38,7 +38,7 @@ C: Cathy Moss
|
||||
D: October 2010
|
||||
|
||||
M: First OpenPilot night flight
|
||||
C: Dale Schintock
|
||||
C: Dale Schinstock
|
||||
D: October 2010
|
||||
V: http://www.youtube.com/watch?v=yk8ckeRMV8U
|
||||
|
||||
@ -53,7 +53,7 @@ D: November 2010
|
||||
V: http://vimeo.com/17488702
|
||||
|
||||
M: First solid OpenPilot Position Hold
|
||||
C: Dale Schintock
|
||||
C: Dale Schinstock
|
||||
D: December 2010
|
||||
V: http://www.youtube.com/watch?v=BBCGVP0Vpgw
|
||||
|
||||
@ -94,37 +94,87 @@ V: http://vimeo.com/22221798
|
||||
|
||||
M: First CopterControl flight on a Hexa
|
||||
C: Edouard Lafargue
|
||||
|
||||
D: March 2011
|
||||
|
||||
V: http://vimeo.com/21476466
|
||||
|
||||
|
||||
M: First CopterControl flight on a Tri
|
||||
C: Gary Mortimer and the Scorpion
|
||||
D: March 2011
|
||||
V: http://vimeo.com/22104334
|
||||
|
||||
M: First Y6 OpenPilot flight
|
||||
C: Sami Korhonen (Sambas)
|
||||
D: May 2011
|
||||
V: http://www.vimeo.com/23637586
|
||||
|
||||
M: First CopterControl flight on a Flybarless Heli
|
||||
C: ?
|
||||
D: ?
|
||||
V:
|
||||
C: Oleg Semyonov (osnwt)
|
||||
D: May 2011
|
||||
V: http://www.youtube.com/watch?v=-J8cxqzxxWw
|
||||
|
||||
M: First V8 Octo OpenPilot flight
|
||||
C: Sami Korhonen (Sambas)
|
||||
D: May 2011
|
||||
V: http://vimeo.com/24258192
|
||||
|
||||
M: First Y6 CopterControl flight
|
||||
C: ?
|
||||
D: ?
|
||||
C: Michel Pet
|
||||
D: June 2011
|
||||
V: http://www.youtube.com/watch?v=QsE2MQELPZY
|
||||
|
||||
M: First MoveCopter flight
|
||||
C: Werner Backes
|
||||
D: July 2011
|
||||
V: http://vimeo.com/25983655
|
||||
|
||||
M: First Y4 CopterControl flight
|
||||
C: Mat Wellington
|
||||
D: July 2011
|
||||
V: http://www.youtube.com/watch?v=TxZ4MDGIj1o
|
||||
|
||||
M: First V-Tail4 CopterControl flight
|
||||
C: Mat Wellington
|
||||
D: July 2011
|
||||
V: http://www.youtube.com/watch?v=YE4Fd9vdg1I
|
||||
|
||||
M: First CopterControl Flybared Heli inverted flight (2:33)
|
||||
C: Maxim Izergin (Maximus43)
|
||||
D: August 2011
|
||||
V: http://www.youtube.com/watch?v=8SrfIS7OkB4
|
||||
|
||||
M: First CopterControl Flybared Heli funnel (4:18), loop (5:35)
|
||||
C: Sergey Solodennikov (alconaft43)
|
||||
D: August 2011
|
||||
V: http://www.youtube.com/watch?v=8SrfIS7OkB4
|
||||
|
||||
M: First Altitude Hold using Sonar
|
||||
C:
|
||||
D:
|
||||
V:
|
||||
|
||||
M: First CopterControl Navigation on RC Ground Vechicle
|
||||
C:
|
||||
D:
|
||||
V:
|
||||
|
||||
M: First CopterControl Navigation on RC Water Vechicle
|
||||
C:
|
||||
D:
|
||||
V:
|
||||
|
||||
M: First CopterControl flip on a Flybarless Heli
|
||||
C:
|
||||
D:
|
||||
V:
|
||||
|
||||
|
||||
An incomplete list of some future Milestones is below:
|
||||
|
||||
* First Y6 CopterControl flight
|
||||
* First Helicopter flight with OpenPilot
|
||||
* First Octo flight with OpenPilot
|
||||
* First successful flight using the GCS only and no RC TX
|
||||
* First use of Magic Waypoint
|
||||
* First Flybarless Helicopter flight with OpenPilot
|
||||
* First flight with CopterControl
|
||||
* First fixed wing navigation flight
|
||||
* First Multirotor navigation flight
|
||||
* First Helicopter navigation flight
|
||||
|
449
Makefile
@ -71,36 +71,46 @@ help:
|
||||
@echo " qt_sdk_install - Install the QT v4.6.2 tools"
|
||||
@echo " arm_sdk_install - Install the Code Sourcery ARM gcc toolchain"
|
||||
@echo " openocd_install - Install the OpenOCD JTAG daemon"
|
||||
@echo " stm32flash_install - Install the stm32flash tool for unbricking boards"
|
||||
@echo
|
||||
@echo " [Big Hammer]"
|
||||
@echo " all - Generate UAVObjects, build openpilot firmware and gcs"
|
||||
@echo " all_flight - Build all firmware, bootloaders and bootloader updaters"
|
||||
@echo " all_fw - Build only firmware for all boards"
|
||||
@echo " all_bl - Build only bootloaders for all boards"
|
||||
@echo " all_blupd - Build only bootloader updaters for all boards"
|
||||
@echo " all_bu - Build only bootloader updaters for all boards"
|
||||
@echo
|
||||
@echo " all_clean - Remove your build directory ($(BUILD_DIR))"
|
||||
@echo " all_flight_clean - Remove all firmware, bootloaders and bootloader updaters"
|
||||
@echo " all_fw_clean - Remove firmware for all boards"
|
||||
@echo " all_bl_clean - Remove bootlaoders for all boards"
|
||||
@echo " all_blupd_clean - Remove bootloader updaters for all boards"
|
||||
@echo " all_bu_clean - Remove bootloader updaters for all boards"
|
||||
@echo
|
||||
@echo " all_<board> - Build all available images for <board>"
|
||||
@echo " all_<board>_clean - Remove all available images for <board>"
|
||||
@echo
|
||||
@echo " [Firmware]"
|
||||
@echo " <board> - Build firmware for <board>"
|
||||
@echo " supported boards are ($(FW_TARGETS))"
|
||||
@echo " <board>_clean - Remove firmware for <board>"
|
||||
@echo " <board>_program - Use OpenOCD + JTAG to write firmware to <board>"
|
||||
@echo " supported boards are ($(ALL_BOARDS))"
|
||||
@echo " fw_<board> - Build firmware for <board>"
|
||||
@echo " supported boards are ($(FW_BOARDS))"
|
||||
@echo " fw_<board>_clean - Remove firmware for <board>"
|
||||
@echo " fw_<board>_program - Use OpenOCD + JTAG to write firmware to <board>"
|
||||
@echo
|
||||
@echo " [Bootloader]"
|
||||
@echo " bl_<board> - Build bootloader for <board>"
|
||||
@echo " supported boards are ($(BL_TARGETS))"
|
||||
@echo " supported boards are ($(BL_BOARDS))"
|
||||
@echo " bl_<board>_clean - Remove bootloader for <board>"
|
||||
@echo " bl_<board>_program - Use OpenOCD + JTAG to write bootloader to <board>"
|
||||
@echo
|
||||
@echo " [Bootloader Updater]"
|
||||
@echo " blupd_<board> - Build bootloader updater for <board>"
|
||||
@echo " supported boards are ($(BLUPD_TARGETS))"
|
||||
@echo " blupd_<board>_clean - Remove bootloader updater for <board>"
|
||||
@echo " bu_<board> - Build bootloader updater for <board>"
|
||||
@echo " supported boards are ($(BU_BOARDS))"
|
||||
@echo " bu_<board>_clean - Remove bootloader updater for <board>"
|
||||
@echo
|
||||
@echo " [Unbrick a board]"
|
||||
@echo " unbrick_<board> - Use the STM32's built in boot ROM to write a bootloader to <board>"
|
||||
@echo " supported boards are ($(BL_BOARDS))"
|
||||
@echo
|
||||
@echo " [Simulation]"
|
||||
@echo " sim_posix - Build OpenPilot simulation firmware for"
|
||||
@ -170,10 +180,10 @@ qt_sdk_clean:
|
||||
$(V1) [ ! -d "$(QT_SDK_DIR)" ] || $(RM) -rf $(QT_SDK_DIR)
|
||||
|
||||
# Set up ARM (STM32) SDK
|
||||
ARM_SDK_DIR := $(TOOLS_DIR)/arm-2009q3
|
||||
ARM_SDK_DIR := $(TOOLS_DIR)/arm-2011.03
|
||||
|
||||
.PHONY: arm_sdk_install
|
||||
arm_sdk_install: ARM_SDK_URL := http://www.codesourcery.com/sgpp/lite/arm/portal/package5353/public/arm-none-eabi/arm-2009q3-68-arm-none-eabi-i686-pc-linux-gnu.tar.bz2
|
||||
arm_sdk_install: ARM_SDK_URL := http://www.codesourcery.com/sgpp/lite/arm/portal/package8734/public/arm-none-eabi/arm-2011.03-42-arm-none-eabi-i686-pc-linux-gnu.tar.bz2
|
||||
arm_sdk_install: ARM_SDK_FILE := $(notdir $(ARM_SDK_URL))
|
||||
# order-only prereq on directory existance:
|
||||
arm_sdk_install: | $(DL_DIR) $(TOOLS_DIR)
|
||||
@ -221,6 +231,25 @@ openocd_install: openocd_clean
|
||||
openocd_clean:
|
||||
$(V1) [ ! -d "$(OPENOCD_DIR)" ] || $(RM) -r "$(OPENOCD_DIR)"
|
||||
|
||||
STM32FLASH_DIR := $(TOOLS_DIR)/stm32flash
|
||||
|
||||
.PHONY: stm32flash_install
|
||||
stm32flash_install: STM32FLASH_URL := http://stm32flash.googlecode.com/svn/trunk
|
||||
stm32flash_install: STM32FLASH_REV := 52
|
||||
stm32flash_install: stm32flash_clean
|
||||
# download the source
|
||||
$(V0) @echo " DOWNLOAD $(STM32FLASH_URL) @ r$(STM32FLASH_REV)"
|
||||
$(V1) svn export -q -r "$(STM32FLASH_REV)" "$(STM32FLASH_URL)" "$(STM32FLASH_DIR)"
|
||||
|
||||
# build
|
||||
$(V0) @echo " BUILD $(STM32FLASH_DIR)"
|
||||
$(V1) $(MAKE) --silent -C $(STM32FLASH_DIR) all
|
||||
|
||||
.PHONY: stm32flash_clean
|
||||
stm32flash_clean:
|
||||
$(V0) @echo " CLEAN $(STM32FLASH_DIR)"
|
||||
$(V1) [ ! -d "$(STM32FLASH_DIR)" ] || $(RM) -r "$(STM32FLASH_DIR)"
|
||||
|
||||
##############################
|
||||
#
|
||||
# Set up paths to tools
|
||||
@ -265,33 +294,21 @@ gcs_clean: openpilotgcs_clean
|
||||
.PHONY: openpilotgcs
|
||||
openpilotgcs: uavobjects_gcs
|
||||
$(V1) mkdir -p $(BUILD_DIR)/ground/$@
|
||||
$(V1) ( cd $(BUILD_DIR)/ground/$@ ; \
|
||||
$(QMAKE) $(ROOT_DIR)/ground/openpilotgcs/openpilotgcs.pro -spec $(QT_SPEC) -r CONFIG+=$(GCS_BUILD_CONF) ; \
|
||||
$(V1) ( cd $(BUILD_DIR)/ground/$@ && \
|
||||
$(QMAKE) $(ROOT_DIR)/ground/openpilotgcs/openpilotgcs.pro -spec $(QT_SPEC) -r CONFIG+=$(GCS_BUILD_CONF) && \
|
||||
$(MAKE) -w ; \
|
||||
)
|
||||
|
||||
.PHONY: gcs_installer
|
||||
gcs_installer: openpilotgcs
|
||||
ifeq ($(QT_SPEC), win32-g++)
|
||||
ifeq ($(GCS_BUILD_CONF), release)
|
||||
$(V1) cd $(BUILD_DIR)/ground/openpilotgcs/packaging/winx86 && $(MAKE) -r --no-print-directory $@
|
||||
else
|
||||
$(error $@ can be generated for release build only (GCS_BUILD_CONF=release))
|
||||
endif
|
||||
else
|
||||
$(error $@ is currently only available on Windows)
|
||||
endif
|
||||
|
||||
.PHONY: openpilotgcs_clean
|
||||
openpilotgcs_clean:
|
||||
$(V0) @echo " CLEAN $@"
|
||||
$(V0) @echo " CLEAN $@"
|
||||
$(V1) [ ! -d "$(BUILD_DIR)/ground/openpilotgcs" ] || $(RM) -r "$(BUILD_DIR)/ground/openpilotgcs"
|
||||
|
||||
.PHONY: uavobjgenerator
|
||||
uavobjgenerator:
|
||||
$(V1) mkdir -p $(BUILD_DIR)/ground/$@
|
||||
$(V1) ( cd $(BUILD_DIR)/ground/$@ ; \
|
||||
$(QMAKE) $(ROOT_DIR)/ground/uavobjgenerator/uavobjgenerator.pro -spec $(QT_SPEC) -r CONFIG+=debug ; \
|
||||
$(V1) ( cd $(BUILD_DIR)/ground/$@ && \
|
||||
$(QMAKE) $(ROOT_DIR)/ground/uavobjgenerator/uavobjgenerator.pro -spec $(QT_SPEC) -r CONFIG+=debug && \
|
||||
$(MAKE) --no-print-directory -w ; \
|
||||
)
|
||||
|
||||
@ -306,7 +323,7 @@ $(UAVOBJ_OUT_DIR):
|
||||
$(V1) mkdir -p $@
|
||||
|
||||
uavobjects_%: $(UAVOBJ_OUT_DIR) uavobjgenerator
|
||||
$(V1) ( cd $(UAVOBJ_OUT_DIR) ; \
|
||||
$(V1) ( cd $(UAVOBJ_OUT_DIR) && \
|
||||
$(UAVOBJGENERATOR) -$* $(UAVOBJ_XML_DIR) $(ROOT_DIR) ; \
|
||||
)
|
||||
|
||||
@ -314,7 +331,7 @@ uavobjects_test: $(UAVOBJ_OUT_DIR) uavobjgenerator
|
||||
$(V1) $(UAVOBJGENERATOR) -v -none $(UAVOBJ_XML_DIR) $(ROOT_DIR)
|
||||
|
||||
uavobjects_clean:
|
||||
$(V0) @echo " CLEAN $@"
|
||||
$(V0) @echo " CLEAN $@"
|
||||
$(V1) [ ! -d "$(UAVOBJ_OUT_DIR)" ] || $(RM) -r "$(UAVOBJ_OUT_DIR)"
|
||||
|
||||
##############################
|
||||
@ -323,254 +340,149 @@ uavobjects_clean:
|
||||
#
|
||||
##############################
|
||||
|
||||
FW_TARGETS := openpilot ahrs coptercontrol pipxtreme ins
|
||||
BL_TARGETS := $(addprefix bl_, $(FW_TARGETS))
|
||||
BLUPD_TARGETS := $(addprefix blupd_, $(FW_TARGETS))
|
||||
# $(1) = Canonical board name all in lower case (e.g. coptercontrol)
|
||||
# $(2) = Name of board used in source tree (e.g. CopterControl)
|
||||
define FW_TEMPLATE
|
||||
.PHONY: $(1) fw_$(1)
|
||||
$(1): fw_$(1)_opfw
|
||||
fw_$(1): fw_$(1)_opfw
|
||||
|
||||
fw_$(1)_%: uavobjects_flight
|
||||
$(V1) mkdir -p $(BUILD_DIR)/fw_$(1)/dep
|
||||
$(V1) cd $(ROOT_DIR)/flight/$(2) && \
|
||||
$$(MAKE) -r --no-print-directory \
|
||||
BOARD_NAME=$(1) \
|
||||
TCHAIN_PREFIX="$(ARM_SDK_PREFIX)" \
|
||||
REMOVE_CMD="$(RM)" OOCD_EXE="$(OPENOCD)" \
|
||||
$$*
|
||||
|
||||
.PHONY: $(1)_clean
|
||||
$(1)_clean: fw_$(1)_clean
|
||||
fw_$(1)_clean:
|
||||
$(V0) @echo " CLEAN $$@"
|
||||
$(V1) $(RM) -fr $(BUILD_DIR)/fw_$(1)
|
||||
endef
|
||||
|
||||
# $(1) = Canonical board name all in lower case (e.g. coptercontrol)
|
||||
# $(2) = Name of board used in source tree (e.g. CopterControl)
|
||||
define BL_TEMPLATE
|
||||
.PHONY: bl_$(1)
|
||||
bl_$(1): bl_$(1)_bin
|
||||
bl_$(1)_bino: bl_$(1)_bin
|
||||
|
||||
bl_$(1)_%:
|
||||
$(V1) mkdir -p $(BUILD_DIR)/bl_$(1)/dep
|
||||
$(V1) cd $(ROOT_DIR)/flight/Bootloaders/$(2) && \
|
||||
$$(MAKE) -r --no-print-directory \
|
||||
BOARD_NAME=$(1) \
|
||||
TCHAIN_PREFIX="$(ARM_SDK_PREFIX)" \
|
||||
REMOVE_CMD="$(RM)" OOCD_EXE="$(OPENOCD)" \
|
||||
$$*
|
||||
|
||||
.PHONY: unbrick_$(1)
|
||||
unbrick_$(1): bl_$(1)_hex
|
||||
$(if $(filter-out undefined,$(origin UNBRICK_TTY)),
|
||||
$(V0) @echo " UNBRICK $(1) via $$(UNBRICK_TTY)"
|
||||
$(V1) $(STM32FLASH_DIR)/stm32flash \
|
||||
-w $(BUILD_DIR)/bl_$(1)/bl_$(1).hex \
|
||||
-g 0x0 \
|
||||
$$(UNBRICK_TTY)
|
||||
,
|
||||
$(V0) @echo
|
||||
$(V0) @echo "ERROR: You must specify UNBRICK_TTY=<serial-device> to use for unbricking."
|
||||
$(V0) @echo " eg. $$(MAKE) $$@ UNBRICK_TTY=/dev/ttyUSB0"
|
||||
)
|
||||
|
||||
.PHONY: bl_$(1)_clean
|
||||
bl_$(1)_clean:
|
||||
$(V0) @echo " CLEAN $$@"
|
||||
$(V1) $(RM) -fr $(BUILD_DIR)/bl_$(1)
|
||||
endef
|
||||
|
||||
# $(1) = Canonical board name all in lower case (e.g. coptercontrol)
|
||||
define BU_TEMPLATE
|
||||
.PHONY: bu_$(1)
|
||||
bu_$(1): bu_$(1)_opfw
|
||||
|
||||
bu_$(1)_%: bl_$(1)_bino
|
||||
$(V1) mkdir -p $(BUILD_DIR)/bu_$(1)/dep
|
||||
$(V1) cd $(ROOT_DIR)/flight/Bootloaders/BootloaderUpdater && \
|
||||
$$(MAKE) -r --no-print-directory \
|
||||
BOARD_NAME=$(1) \
|
||||
TCHAIN_PREFIX="$(ARM_SDK_PREFIX)" \
|
||||
REMOVE_CMD="$(RM)" OOCD_EXE="$(OPENOCD)" \
|
||||
$$*
|
||||
|
||||
.PHONY: bu_$(1)_clean
|
||||
bu_$(1)_clean:
|
||||
$(V0) @echo " CLEAN $$@"
|
||||
$(V1) $(RM) -fr $(BUILD_DIR)/bu_$(1)
|
||||
endef
|
||||
|
||||
# $(1) = Canonical board name all in lower case (e.g. coptercontrol)
|
||||
define BOARD_PHONY_TEMPLATE
|
||||
.PHONY: all_$(1)
|
||||
all_$(1): $$(filter fw_$(1), $$(FW_TARGETS))
|
||||
all_$(1): $$(filter bl_$(1), $$(BL_TARGETS))
|
||||
all_$(1): $$(filter bu_$(1), $$(BU_TARGETS))
|
||||
|
||||
.PHONY: all_$(1)_clean
|
||||
all_$(1)_clean: $$(addsuffix _clean, $$(filter fw_$(1), $$(FW_TARGETS)))
|
||||
all_$(1)_clean: $$(addsuffix _clean, $$(filter bl_$(1), $$(BL_TARGETS)))
|
||||
all_$(1)_clean: $$(addsuffix _clean, $$(filter bu_$(1), $$(BU_TARGETS)))
|
||||
endef
|
||||
|
||||
ALL_BOARDS := openpilot ahrs coptercontrol pipxtreme ins
|
||||
|
||||
# Friendly names of each board (used to find source tree)
|
||||
openpilot_friendly := OpenPilot
|
||||
coptercontrol_friendly := CopterControl
|
||||
pipxtreme_friendly := PipXtreme
|
||||
ins_friendly := INS
|
||||
ahrs_friendly := AHRS
|
||||
|
||||
# Start out assuming that we'll build fw, bl and bu for all boards
|
||||
FW_BOARDS := $(ALL_BOARDS)
|
||||
BL_BOARDS := $(ALL_BOARDS)
|
||||
BU_BOARDS := $(ALL_BOARDS)
|
||||
|
||||
# FIXME: The INS build doesn't have a bootloader or bootloader
|
||||
# updater yet so we need to filter them out to prevent errors.
|
||||
BL_TARGETS := $(filter-out bl_ins, $(BL_TARGETS))
|
||||
BLUPD_TARGETS := $(filter-out blupd_ins, $(BLUPD_TARGETS))
|
||||
BL_BOARDS := $(filter-out ins, $(ALL_BOARDS))
|
||||
BU_BOARDS := $(filter-out ins, $(ALL_BOARDS))
|
||||
|
||||
# Generate the targets for whatever boards are left in each list
|
||||
FW_TARGETS := $(addprefix fw_, $(FW_BOARDS))
|
||||
BL_TARGETS := $(addprefix bl_, $(BL_BOARDS))
|
||||
BU_TARGETS := $(addprefix bu_, $(BU_BOARDS))
|
||||
|
||||
.PHONY: all_fw all_fw_clean
|
||||
all_fw: $(addsuffix _bin, $(FW_TARGETS))
|
||||
all_fw_clean: $(addsuffix _clean, $(FW_TARGETS))
|
||||
all_fw: $(addsuffix _opfw, $(FW_TARGETS))
|
||||
all_fw_clean: $(addsuffix _clean, $(FW_TARGETS))
|
||||
|
||||
.PHONY: all_bl all_bl_clean
|
||||
all_bl: $(addsuffix _bin, $(BL_TARGETS))
|
||||
all_bl_clean: $(addsuffix _clean, $(BL_TARGETS))
|
||||
all_bl: $(addsuffix _bin, $(BL_TARGETS))
|
||||
all_bl_clean: $(addsuffix _clean, $(BL_TARGETS))
|
||||
|
||||
.PHONY: all_blupd all_blupd_clean
|
||||
all_blupd: $(addsuffix _bin, $(BLUPD_TARGETS))
|
||||
all_blupd_clean: $(addsuffix _clean, $(BLUPD_TARGETS))
|
||||
.PHONY: all_bu all_bu_clean
|
||||
all_bu: $(addsuffix _opfw, $(BU_TARGETS))
|
||||
all_bu_clean: $(addsuffix _clean, $(BU_TARGETS))
|
||||
|
||||
.PHONY: all_flight all_flight_clean
|
||||
all_flight: all_fw all_bl all_blupd
|
||||
all_flight_clean: all_fw_clean all_bl_clean all_blupd_clean
|
||||
all_flight: all_fw all_bl all_bu
|
||||
all_flight_clean: all_fw_clean all_bl_clean all_bu_clean
|
||||
|
||||
.PHONY: openpilot
|
||||
openpilot: openpilot_bin
|
||||
# Expand the groups of targets for each board
|
||||
$(foreach board, $(ALL_BOARDS), $(eval $(call BOARD_PHONY_TEMPLATE,$(board))))
|
||||
|
||||
openpilot_%: uavobjects_flight
|
||||
$(V1) mkdir -p $(BUILD_DIR)/openpilot/dep
|
||||
$(V1) cd $(ROOT_DIR)/flight/OpenPilot && \
|
||||
$(MAKE) -r --no-print-directory \
|
||||
OUTDIR="$(BUILD_DIR)/openpilot" TCHAIN_PREFIX="$(ARM_SDK_PREFIX)" \
|
||||
REMOVE_CMD="$(RM)" OOCD_EXE="$(OPENOCD)" $*
|
||||
# Expand the bootloader updater rules
|
||||
$(foreach board, $(ALL_BOARDS), $(eval $(call BU_TEMPLATE,$(board),$($(board)_friendly))))
|
||||
|
||||
.PHONY: openpilot_clean
|
||||
openpilot_clean:
|
||||
$(V0) @echo " CLEAN $@"
|
||||
$(V1) $(RM) -fr $(BUILD_DIR)/openpilot
|
||||
|
||||
.PHONY: bl_openpilot
|
||||
bl_openpilot: bl_openpilot_bin
|
||||
bl_openpilot_bino: bl_openpilot_bin
|
||||
|
||||
bl_openpilot_%:
|
||||
$(V1) mkdir -p $(BUILD_DIR)/bl_openpilot/dep
|
||||
$(V1) cd $(ROOT_DIR)/flight/Bootloaders/OpenPilot && \
|
||||
$(MAKE) -r --no-print-directory \
|
||||
OUTDIR="$(BUILD_DIR)/bl_openpilot" TCHAIN_PREFIX="$(ARM_SDK_PREFIX)" \
|
||||
REMOVE_CMD="$(RM)" OOCD_EXE="$(OPENOCD)" $*
|
||||
|
||||
.PHONY: bl_openpilot_clean
|
||||
bl_openpilot_clean:
|
||||
$(V0) @echo " CLEAN $@"
|
||||
$(V1) $(RM) -fr $(BUILD_DIR)/bl_openpilot
|
||||
|
||||
.PHONY: blupd_openpilot
|
||||
blupd_openpilot: blupd_openpilot_bin
|
||||
|
||||
blupd_openpilot_%: bl_openpilot_bino
|
||||
$(V1) mkdir -p $(BUILD_DIR)/blupd_openpilot/dep
|
||||
$(V1) cd $(ROOT_DIR)/flight/Bootloaders/BootloaderUpdater && \
|
||||
$(MAKE) -r --no-print-directory \
|
||||
OUTDIR="$(BUILD_DIR)/blupd_openpilot" TCHAIN_PREFIX="$(ARM_SDK_PREFIX)" \
|
||||
REMOVE_CMD="$(RM)" OOCD_EXE="$(OPENOCD)" \
|
||||
BOARD=STM3210E_OP MODEL=HD MODEL_SUFFIX=_OP \
|
||||
BLOBJ=$(BUILD_DIR)/bl_openpilot/OpenPilot_BL.bin.o $*
|
||||
|
||||
.PHONY: blupd_openpilot_clean
|
||||
blupd_openpilot_clean:
|
||||
$(V0) @echo " CLEAN $@"
|
||||
$(V1) $(RM) -fr $(BUILD_DIR)/blupd_openpilot
|
||||
|
||||
.PHONY: ahrs
|
||||
ahrs: ahrs_bin
|
||||
|
||||
ahrs_%: uavobjects_flight
|
||||
$(V1) mkdir -p $(BUILD_DIR)/ahrs/dep
|
||||
$(V1) cd $(ROOT_DIR)/flight/AHRS && \
|
||||
$(MAKE) -r --no-print-directory \
|
||||
OUTDIR="$(BUILD_DIR)/ahrs" TCHAIN_PREFIX="$(ARM_SDK_PREFIX)" \
|
||||
REMOVE_CMD="$(RM)" OOCD_EXE="$(OPENOCD)" $*
|
||||
|
||||
.PHONY: ahrs_clean
|
||||
ahrs_clean:
|
||||
$(V0) @echo " CLEAN $@"
|
||||
$(V1) $(RM) -fr $(BUILD_DIR)/ahrs
|
||||
|
||||
.PHONY: bl_ahrs
|
||||
bl_ahrs: bl_ahrs_bin
|
||||
bl_ahrs_bino: bl_ahrs_bin
|
||||
|
||||
bl_ahrs_%:
|
||||
$(V1) mkdir -p $(BUILD_DIR)/bl_ahrs/dep
|
||||
$(V1) cd $(ROOT_DIR)/flight/Bootloaders/AHRS && \
|
||||
$(MAKE) -r --no-print-directory \
|
||||
OUTDIR="$(BUILD_DIR)/bl_ahrs" TCHAIN_PREFIX="$(ARM_SDK_PREFIX)" \
|
||||
REMOVE_CMD="$(RM)" OOCD_EXE="$(OPENOCD)" $*
|
||||
|
||||
.PHONY: bl_ahrs_clean
|
||||
bl_ahrs_clean:
|
||||
$(V0) @echo " CLEAN $@"
|
||||
$(V1) $(RM) -fr $(BUILD_DIR)/bl_ahrs
|
||||
|
||||
.PHONY: blupd_ahrs
|
||||
blupd_ahrs: blupd_ahrs_bin
|
||||
|
||||
blupd_ahrs_%: bl_ahrs_bino bl_ahrs
|
||||
$(V1) mkdir -p $(BUILD_DIR)/blupd_ahrs/dep
|
||||
$(V1) cd $(ROOT_DIR)/flight/Bootloaders/BootloaderUpdater && \
|
||||
$(MAKE) -r --no-print-directory \
|
||||
OUTDIR="$(BUILD_DIR)/blupd_ahrs" TCHAIN_PREFIX="$(ARM_SDK_PREFIX)" \
|
||||
REMOVE_CMD="$(RM)" OOCD_EXE="$(OPENOCD)" \
|
||||
BOARD=STM32103CB_AHRS MODEL=MD \
|
||||
BLOBJ=$(BUILD_DIR)/bl_ahrs/AHRS_BL.bin.o $*
|
||||
|
||||
.PHONY: blupd_ahrs_clean
|
||||
blupd_ahrs_clean:
|
||||
$(V0) @echo " CLEAN $@"
|
||||
$(V1) $(RM) -fr $(BUILD_DIR)/blupd_ahrs
|
||||
|
||||
.PHONY: coptercontrol
|
||||
coptercontrol: coptercontrol_bin
|
||||
|
||||
coptercontrol_%: uavobjects_flight
|
||||
$(V1) mkdir -p $(BUILD_DIR)/coptercontrol/dep
|
||||
$(V1) cd $(ROOT_DIR)/flight/CopterControl && \
|
||||
$(MAKE) -r --no-print-directory \
|
||||
OUTDIR="$(BUILD_DIR)/coptercontrol" TCHAIN_PREFIX="$(ARM_SDK_PREFIX)" \
|
||||
REMOVE_CMD="$(RM)" OOCD_EXE="$(OPENOCD)" $*
|
||||
|
||||
.PHONY: coptercontrol_clean
|
||||
coptercontrol_clean:
|
||||
$(V0) @echo " CLEAN $@"
|
||||
$(V1) $(RM) -fr $(BUILD_DIR)/coptercontrol
|
||||
|
||||
.PHONY: bl_coptercontrol
|
||||
bl_coptercontrol: bl_coptercontrol_bin
|
||||
bl_coptercontrol_bino: bl_coptercontrol_bin
|
||||
|
||||
bl_coptercontrol_%:
|
||||
$(V1) mkdir -p $(BUILD_DIR)/bl_coptercontrol/dep
|
||||
$(V1) cd $(ROOT_DIR)/flight/Bootloaders/CopterControl && \
|
||||
$(MAKE) -r --no-print-directory \
|
||||
OUTDIR="$(BUILD_DIR)/bl_coptercontrol" TCHAIN_PREFIX="$(ARM_SDK_PREFIX)" \
|
||||
REMOVE_CMD="$(RM)" OOCD_EXE="$(OPENOCD)" $*
|
||||
|
||||
.PHONY: bl_coptercontrol_clean
|
||||
bl_coptercontrol_clean:
|
||||
$(V0) @echo " CLEAN $@"
|
||||
$(V1) $(RM) -fr $(BUILD_DIR)/bl_coptercontrol
|
||||
|
||||
.PHONY: blupd_coptercontrol
|
||||
blupd_coptercontrol: blupd_coptercontrol_bin
|
||||
|
||||
blupd_coptercontrol_%: bl_coptercontrol_bino
|
||||
$(V1) mkdir -p $(BUILD_DIR)/blupd_coptercontrol/dep
|
||||
$(V1) cd $(ROOT_DIR)/flight/Bootloaders/BootloaderUpdater && \
|
||||
$(MAKE) -r --no-print-directory \
|
||||
OUTDIR="$(BUILD_DIR)/blupd_coptercontrol" TCHAIN_PREFIX="$(ARM_SDK_PREFIX)" \
|
||||
REMOVE_CMD="$(RM)" OOCD_EXE="$(OPENOCD)" \
|
||||
BOARD=STM32103CB_CC_Rev1 MODEL=MD MODEL_SUFFIX=_CC \
|
||||
BLOBJ=$(BUILD_DIR)/bl_coptercontrol/CopterControl_BL.bin.o $*
|
||||
|
||||
.PHONY: blupd_coptercontrol_clean
|
||||
blupd_coptercontrol_clean:
|
||||
$(V0) @echo " CLEAN $@"
|
||||
$(V1) $(RM) -fr $(BUILD_DIR)/blupd_coptercontrol
|
||||
|
||||
.PHONY: pipxtreme
|
||||
pipxtreme: pipxtreme_bin
|
||||
|
||||
pipxtreme_%: uavobjects_flight
|
||||
$(V1) mkdir -p $(BUILD_DIR)/pipxtreme/dep
|
||||
$(V1) cd $(ROOT_DIR)/flight/PipXtreme && \
|
||||
$(MAKE) -r --no-print-directory \
|
||||
OUTDIR="$(BUILD_DIR)/pipxtreme" TCHAIN_PREFIX="$(ARM_SDK_PREFIX)" \
|
||||
REMOVE_CMD="$(RM)" OOCD_EXE="$(OPENOCD)" $*
|
||||
|
||||
.PHONY: pipxtreme_clean
|
||||
pipxtreme_clean:
|
||||
$(V0) @echo " CLEAN $@"
|
||||
$(V1) $(RM) -fr $(BUILD_DIR)/pipxtreme
|
||||
|
||||
.PHONY: bl_pipxtreme
|
||||
bl_pipxtreme: bl_pipxtreme_bin
|
||||
bl_pipxtreme_bino: bl_pipxtreme_bin
|
||||
|
||||
bl_pipxtreme_%:
|
||||
$(V1) mkdir -p $(BUILD_DIR)/bl_pipxtreme/dep
|
||||
$(V1) cd $(ROOT_DIR)/flight/Bootloaders/PipXtreme && \
|
||||
$(MAKE) -r --no-print-directory \
|
||||
OUTDIR="$(BUILD_DIR)/bl_pipxtreme" TCHAIN_PREFIX="$(ARM_SDK_PREFIX)" \
|
||||
REMOVE_CMD="$(RM)" OOCD_EXE="$(OPENOCD)" $*
|
||||
|
||||
.PHONY: bl_pipxtreme_clean
|
||||
bl_pipxtreme_clean:
|
||||
$(V0) @echo " CLEAN $@"
|
||||
$(V1) $(RM) -fr $(BUILD_DIR)/bl_pipxtreme
|
||||
|
||||
.PHONY: blupd_pipxtreme
|
||||
blupd_pipxtreme: blupd_pipxtreme_bin
|
||||
|
||||
blupd_pipxtreme_%: bl_pipxtreme_bino
|
||||
$(V1) mkdir -p $(BUILD_DIR)/blupd_pipxtreme/dep
|
||||
$(V1) cd $(ROOT_DIR)/flight/Bootloaders/BootloaderUpdater && \
|
||||
$(MAKE) -r --no-print-directory \
|
||||
OUTDIR="$(BUILD_DIR)/blupd_pipxtreme" TCHAIN_PREFIX="$(ARM_SDK_PREFIX)" \
|
||||
REMOVE_CMD="$(RM)" OOCD_EXE="$(OPENOCD)" \
|
||||
BOARD=STM32103CB_PIPXTREME MODEL=MD MODEL_SUFFIX=_CC \
|
||||
BLOBJ=$(BUILD_DIR)/bl_pipxtreme/PipXtreme_BL.bin.o $*
|
||||
|
||||
.PHONY: blupd_pipxtreme_clean
|
||||
blupd_pipxtreme_clean:
|
||||
$(V0) @echo " CLEAN $@"
|
||||
$(V1) $(RM) -fr $(BUILD_DIR)/blupd_pipxtreme
|
||||
|
||||
|
||||
.PHONY: ins
|
||||
ins: ins_bin
|
||||
|
||||
ins_%: uavobjects_flight
|
||||
$(V1) mkdir -p $(BUILD_DIR)/ins/dep
|
||||
$(V1) cd $(ROOT_DIR)/flight/INS && \
|
||||
$(MAKE) -r --no-print-directory \
|
||||
OUTDIR="$(BUILD_DIR)/ins" TCHAIN_PREFIX="$(ARM_SDK_PREFIX)" \
|
||||
REMOVE_CMD="$(RM)" OOCD_EXE="$(OPENOCD)" $*
|
||||
|
||||
.PHONY: ins_clean
|
||||
ins_clean:
|
||||
$(V0) @echo " CLEAN $@"
|
||||
$(V1) $(RM) -fr $(BUILD_DIR)/ins
|
||||
|
||||
.PHONY: bl_ins
|
||||
bl_ins: bl_ins_elf
|
||||
|
||||
bl_ins_%:
|
||||
$(V1) mkdir -p $(BUILD_DIR)/bl_ins/dep
|
||||
$(V1) cd $(ROOT_DIR)/flight/Bootloaders/INS && \
|
||||
$(MAKE) -r --no-print-directory \
|
||||
OUTDIR="$(BUILD_DIR)/bl_ins" TCHAIN_PREFIX="$(ARM_SDK_PREFIX)" \
|
||||
REMOVE_CMD="$(RM)" OOCD_EXE="$(OPENOCD)" $*
|
||||
|
||||
.PHONY: bl_ins_clean
|
||||
bl_ins_clean:
|
||||
$(V0) @echo " CLEAN $@"
|
||||
$(V1) $(RM) -fr $(BUILD_DIR)/bl_ins
|
||||
# Expand the firmware rules
|
||||
$(foreach board, $(ALL_BOARDS), $(eval $(call FW_TEMPLATE,$(board),$($(board)_friendly))))
|
||||
|
||||
# Expand the bootloader rules
|
||||
$(foreach board, $(ALL_BOARDS), $(eval $(call BL_TEMPLATE,$(board),$($(board)_friendly))))
|
||||
|
||||
.PHONY: sim_posix
|
||||
sim_posix: sim_posix_elf
|
||||
@ -587,3 +499,12 @@ sim_win32_%: uavobjects_flight
|
||||
$(V1) mkdir -p $(BUILD_DIR)/sitl_win32
|
||||
$(V1) $(MAKE) --no-print-directory \
|
||||
-C $(ROOT_DIR)/flight/OpenPilot --file=$(ROOT_DIR)/flight/OpenPilot/Makefile.win32 $*
|
||||
|
||||
##############################
|
||||
#
|
||||
# Packaging components
|
||||
#
|
||||
##############################
|
||||
.PHONY: package
|
||||
package:
|
||||
$(V1) cd $@ && $(MAKE) --no-print-directory $@
|
||||
|
BIN
artwork/3D Model/boards/CopterControl/CopterControl.3ds
Normal file
BIN
artwork/3D Model/boards/CopterControl/TEXTURE.PNG
Normal file
After Width: | Height: | Size: 31 KiB |
BIN
artwork/3D Model/multi/joes_cnc/CC.PNG
Normal file
After Width: | Height: | Size: 96 KiB |
BIN
artwork/3D Model/multi/joes_cnc/J14-QT_+.3DS
Normal file
BIN
artwork/3D Model/multi/joes_cnc/J14-QT_+.jpg
Normal file
After Width: | Height: | Size: 125 KiB |
BIN
artwork/3D Model/multi/joes_cnc/J14-QT_X.3DS
Normal file
BIN
artwork/3D Model/multi/joes_cnc/J14-QT_X.jpg
Normal file
After Width: | Height: | Size: 132 KiB |
BIN
artwork/3D Model/multi/joes_cnc/J14-Q_+.3DS
Normal file
BIN
artwork/3D Model/multi/joes_cnc/J14-Q_+.jpg
Normal file
After Width: | Height: | Size: 84 KiB |
BIN
artwork/3D Model/multi/joes_cnc/J14-Q_X.3DS
Normal file
BIN
artwork/3D Model/multi/joes_cnc/J14-Q_X.jpg
Normal file
After Width: | Height: | Size: 84 KiB |
BIN
artwork/3D Model/multi/joes_cnc/TEXTURE.PNG
Normal file
After Width: | Height: | Size: 1.1 KiB |
@ -14,7 +14,7 @@
|
||||
height="80.827866"
|
||||
id="svg10068"
|
||||
version="1.1"
|
||||
inkscape:version="0.47 r22583"
|
||||
inkscape:version="0.48.1 r9760"
|
||||
sodipodi:docname="flightmode-status.svg"
|
||||
inkscape:export-filename="H:\Documents\Hobbies\W433\My Gauges\vbat-001.png"
|
||||
inkscape:export-xdpi="103.61"
|
||||
@ -949,6 +949,94 @@
|
||||
fx="29.77438"
|
||||
fy="7.0922189"
|
||||
r="25.380436" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5224-4"
|
||||
id="radialGradient3197"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.29375,0,18.848047)"
|
||||
cx="14.5"
|
||||
cy="26.6875"
|
||||
fx="14.5"
|
||||
fy="26.6875"
|
||||
r="10" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5224-4"
|
||||
id="radialGradient3199"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.29375,0,18.848047)"
|
||||
cx="14.5"
|
||||
cy="26.6875"
|
||||
fx="14.5"
|
||||
fy="26.6875"
|
||||
r="10" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5237-2"
|
||||
id="radialGradient3201"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.5354369,0,0,1.5485894,-15.737913,-10.36738)"
|
||||
cx="29.392656"
|
||||
cy="18.898249"
|
||||
fx="29.392656"
|
||||
fy="18.898249"
|
||||
r="29.699959" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5300-7"
|
||||
id="radialGradient3203"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(2.2469896,0,0,2.2469896,-37.128341,-8.8439229)"
|
||||
cx="29.77438"
|
||||
cy="7.0922189"
|
||||
fx="29.77438"
|
||||
fy="7.0922189"
|
||||
r="25.380436" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5224-4"
|
||||
id="radialGradient3231"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.29375,0,18.848047)"
|
||||
cx="14.5"
|
||||
cy="26.6875"
|
||||
fx="14.5"
|
||||
fy="26.6875"
|
||||
r="10" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5224-4"
|
||||
id="radialGradient3233"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.29375,0,18.848047)"
|
||||
cx="14.5"
|
||||
cy="26.6875"
|
||||
fx="14.5"
|
||||
fy="26.6875"
|
||||
r="10" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5237-2"
|
||||
id="radialGradient3235"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.5354369,0,0,1.5485894,-15.737913,-10.36738)"
|
||||
cx="29.392656"
|
||||
cy="18.898249"
|
||||
fx="29.392656"
|
||||
fy="18.898249"
|
||||
r="29.699959" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5300-7"
|
||||
id="radialGradient3237"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(2.2469896,0,0,2.2469896,-37.128341,-8.8439229)"
|
||||
cx="29.77438"
|
||||
cy="7.0922189"
|
||||
fx="29.77438"
|
||||
fy="7.0922189"
|
||||
r="25.380436" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
@ -958,13 +1046,13 @@
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="1.979899"
|
||||
inkscape:cx="56.191298"
|
||||
inkscape:cx="-7.1957738"
|
||||
inkscape:cy="90.710362"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1280"
|
||||
inkscape:window-height="725"
|
||||
inkscape:window-width="1366"
|
||||
inkscape:window-height="691"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="1"
|
||||
@ -1090,13 +1178,13 @@
|
||||
style="opacity:0.98000004;fill:#ffffff;fill-opacity:1;stroke:#e31717;stroke-width:3.18836617;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
id="value"
|
||||
width="132.66878"
|
||||
height="20.899738"
|
||||
height="13.323594"
|
||||
x="15.425945"
|
||||
y="29.964067"
|
||||
ry="5.4077783"
|
||||
y="33.75214"
|
||||
ry="3.4474616"
|
||||
inkscape:label="#rect2989" />
|
||||
<g
|
||||
id="symbol-Stabilized"
|
||||
id="symbol-Stabilized1"
|
||||
inkscape:label="#g3832"
|
||||
transform="matrix(1.2181818,0,0,1.2181818,-416.7342,39.213763)">
|
||||
<g
|
||||
@ -1297,7 +1385,7 @@
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
id="symbol-Auto"
|
||||
id="symbol-VelocityControl"
|
||||
inkscape:label="#g4229"
|
||||
transform="matrix(1.2181818,0,0,1.2181818,-132.92733,94.550987)">
|
||||
<g
|
||||
@ -1354,5 +1442,245 @@
|
||||
inkscape:export-xdpi="103.61"
|
||||
inkscape:export-ydpi="103.61" />
|
||||
</g>
|
||||
<g
|
||||
transform="matrix(1.2181818,0,0,1.2181818,-488.7342,39.213763)"
|
||||
inkscape:label="#g3832"
|
||||
id="symbol-Stabilized2">
|
||||
<g
|
||||
style="display:inline"
|
||||
id="g3173"
|
||||
inkscape:label="#g4504"
|
||||
transform="matrix(1.6946172,0,0,1.6946172,90.69312,69.91641)">
|
||||
<path
|
||||
d="m 24.5,26.6875 c 0,1.622336 -4.477153,2.9375 -10,2.9375 -5.5228475,0 -10,-1.315164 -10,-2.9375 0,-1.622336 4.4771525,-2.9375 10,-2.9375 5.522847,0 10,1.315164 10,2.9375 z"
|
||||
id="path3175"
|
||||
sodipodi:cx="14.5"
|
||||
sodipodi:cy="26.6875"
|
||||
sodipodi:rx="10"
|
||||
sodipodi:ry="2.9375"
|
||||
sodipodi:type="arc"
|
||||
style="opacity:0.53012049;color:#000000;fill:url(#radialGradient3197);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter5296-2);enable-background:accumulate"
|
||||
transform="matrix(1.3565115,0,0,1.3564842,148.6163,-105.84566)" />
|
||||
<path
|
||||
d="m 24.5,26.6875 c 0,1.622336 -4.477153,2.9375 -10,2.9375 -5.5228475,0 -10,-1.315164 -10,-2.9375 0,-1.622336 4.4771525,-2.9375 10,-2.9375 5.522847,0 10,1.315164 10,2.9375 z"
|
||||
id="path3177"
|
||||
sodipodi:cx="14.5"
|
||||
sodipodi:cy="26.6875"
|
||||
sodipodi:rx="10"
|
||||
sodipodi:ry="2.9375"
|
||||
sodipodi:type="arc"
|
||||
style="opacity:0.80120479;color:#000000;fill:url(#radialGradient3199);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter5296-2);enable-background:accumulate"
|
||||
transform="matrix(0.8476709,0,0,0.8476539,155.99448,-91.479567)" />
|
||||
<path
|
||||
d="m 58.403591,29.207693 c 0,16.022297 -12.988638,29.010935 -29.010935,29.010935 -16.022297,0 -29.0109345,-12.988638 -29.0109345,-29.010935 0,-16.022297 12.9886375,-29.01093473 29.0109345,-29.01093473 16.022297,0 29.010935,12.98863773 29.010935,29.01093473 z"
|
||||
id="path3179"
|
||||
sodipodi:cx="29.392656"
|
||||
sodipodi:cy="29.207693"
|
||||
sodipodi:rx="29.010935"
|
||||
sodipodi:ry="29.010935"
|
||||
sodipodi:type="arc"
|
||||
style="fill:url(#radialGradient3201);fill-opacity:1;fill-rule:evenodd;stroke:#d4d0d0;stroke-width:2.19046068;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
transform="matrix(0.4552142,0,0,0.4578395,154.92379,-94.080092)" />
|
||||
<path
|
||||
d="m 53.950159,30.352861 c 0,13.351915 -10.823865,24.17578 -24.175779,24.17578 -13.351915,0 -24.1757796,-10.823865 -24.1757796,-24.17578 0,-13.351914 10.8238646,-24.1757789 24.1757796,-24.1757789 13.351914,0 24.175779,10.8238649 24.175779,24.1757789 z"
|
||||
id="path3181"
|
||||
sodipodi:cx="29.77438"
|
||||
sodipodi:cy="30.352861"
|
||||
sodipodi:rx="24.175779"
|
||||
sodipodi:ry="24.175779"
|
||||
sodipodi:type="arc"
|
||||
style="fill:none;stroke:url(#radialGradient3203);stroke-width:1.98282218;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
transform="matrix(0.5041973,0,0,0.5044661,153.2742,-96.019639)" />
|
||||
</g>
|
||||
<g
|
||||
style="stroke-width:5.32037735;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="g3183"
|
||||
transform="matrix(0.33832187,0,0,0.33832187,410.06766,-39.187259)">
|
||||
<path
|
||||
sodipodi:open="true"
|
||||
sodipodi:type="arc"
|
||||
style="opacity:0.98000004;fill:none;stroke:#ff4e34;stroke-width:5.56557703;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline"
|
||||
id="path3185"
|
||||
sodipodi:cx="-102.85714"
|
||||
sodipodi:cy="-85.6007"
|
||||
sodipodi:rx="21.428572"
|
||||
sodipodi:ry="5.7142859"
|
||||
d="m -124.28571,-85.600701 c 0,-3.155913 9.5939,-5.714285 21.42857,-5.714285 11.834674,0 21.428572,2.558373 21.428572,5.714286"
|
||||
transform="matrix(0.9559435,0,0,0.9559435,-2.74581,-3.77127)"
|
||||
sodipodi:start="3.1415927"
|
||||
sodipodi:end="6.2831853" />
|
||||
<path
|
||||
transform="translate(0,-0.35714)"
|
||||
d="m -51.42857,-85.243561 c 0,6.50907 -22.225864,11.785714 -49.64286,11.785714 -27.41699,0 -49.64285,-5.276644 -49.64285,-11.785714 0,-6.50907 22.22586,-11.785714 49.64285,-11.785714 27.416996,0 49.64286,5.276644 49.64286,11.785714 z"
|
||||
sodipodi:ry="11.785714"
|
||||
sodipodi:rx="49.642857"
|
||||
sodipodi:cy="-85.243561"
|
||||
sodipodi:cx="-101.07143"
|
||||
id="path3187"
|
||||
style="opacity:0.98000004;fill:none;stroke:#ff4e34;stroke-width:5.32037735;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline"
|
||||
sodipodi:type="arc" />
|
||||
<path
|
||||
id="path3189"
|
||||
d="m -101.07143,-37.895278 0,-96.382562"
|
||||
style="fill:none;stroke:#ff4e34;stroke-width:5.32037735;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
sodipodi:open="true"
|
||||
transform="matrix(0.9559435,0,0,0.9559435,-2.7458124,-3.7712673)"
|
||||
d="m -81.428568,-85.6007 c 0,3.155913 -9.593898,5.714285 -21.428572,5.714285 -11.83467,0 -21.42857,-2.558372 -21.42857,-5.714285 0,0 0,-10e-7 0,-10e-7"
|
||||
sodipodi:ry="5.7142859"
|
||||
sodipodi:rx="21.428572"
|
||||
sodipodi:cy="-85.6007"
|
||||
sodipodi:cx="-102.85714"
|
||||
id="path3191"
|
||||
style="opacity:0.98000004;fill:none;stroke:#ff4e34;stroke-width:5.56557703;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
sodipodi:type="arc"
|
||||
sodipodi:start="0"
|
||||
sodipodi:end="3.1415927" />
|
||||
<path
|
||||
transform="matrix(1.0062564,0,0,1,1.3510971,0)"
|
||||
d="m -81.42857,-85.6007 c 0,21.6969 -9.114203,39.285713 -20.35714,39.285713 -11.24294,0 -20.35715,-17.588813 -20.35715,-39.285713 0,-21.6969 9.11421,-39.28571 20.35715,-39.28571 11.242937,0 20.35714,17.58881 20.35714,39.28571 z"
|
||||
sodipodi:ry="39.285713"
|
||||
sodipodi:rx="20.357143"
|
||||
sodipodi:cy="-85.6007"
|
||||
sodipodi:cx="-101.78571"
|
||||
id="path3193"
|
||||
style="opacity:0.98000004;fill:none;stroke:#ff4e34;stroke-width:5.30381203;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
sodipodi:type="arc" />
|
||||
<path
|
||||
sodipodi:open="true"
|
||||
sodipodi:end="3.1415927"
|
||||
sodipodi:start="0"
|
||||
sodipodi:type="arc"
|
||||
style="opacity:0.98000004;fill:none;stroke:#ff4e34;stroke-width:5.32037735;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
id="path3195"
|
||||
sodipodi:cx="-101.07143"
|
||||
sodipodi:cy="-85.243561"
|
||||
sodipodi:rx="49.642857"
|
||||
sodipodi:ry="11.785714"
|
||||
d="m -51.42857,-85.243561 c 0,6.50907 -22.225864,11.785714 -49.64286,11.785714 -27.41699,0 -49.64285,-5.276644 -49.64285,-11.785714 0,0 0,0 0,0"
|
||||
transform="translate(0,-0.35713959)" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
id="symbol-Stabilized3"
|
||||
inkscape:label="#g3832"
|
||||
transform="matrix(1.2181818,0,0,1.2181818,-488.7342,-34.786237)">
|
||||
<g
|
||||
transform="matrix(1.6946172,0,0,1.6946172,90.69312,69.91641)"
|
||||
inkscape:label="#g4504"
|
||||
id="g3207"
|
||||
style="display:inline">
|
||||
<path
|
||||
transform="matrix(1.3565115,0,0,1.3564842,148.6163,-105.84566)"
|
||||
style="opacity:0.53012049;color:#000000;fill:url(#radialGradient3231);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter5296-2);enable-background:accumulate"
|
||||
sodipodi:type="arc"
|
||||
sodipodi:ry="2.9375"
|
||||
sodipodi:rx="10"
|
||||
sodipodi:cy="26.6875"
|
||||
sodipodi:cx="14.5"
|
||||
id="path3209"
|
||||
d="m 24.5,26.6875 c 0,1.622336 -4.477153,2.9375 -10,2.9375 -5.5228475,0 -10,-1.315164 -10,-2.9375 0,-1.622336 4.4771525,-2.9375 10,-2.9375 5.522847,0 10,1.315164 10,2.9375 z" />
|
||||
<path
|
||||
transform="matrix(0.8476709,0,0,0.8476539,155.99448,-91.479567)"
|
||||
style="opacity:0.80120479;color:#000000;fill:url(#radialGradient3233);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter5296-2);enable-background:accumulate"
|
||||
sodipodi:type="arc"
|
||||
sodipodi:ry="2.9375"
|
||||
sodipodi:rx="10"
|
||||
sodipodi:cy="26.6875"
|
||||
sodipodi:cx="14.5"
|
||||
id="path3211"
|
||||
d="m 24.5,26.6875 c 0,1.622336 -4.477153,2.9375 -10,2.9375 -5.5228475,0 -10,-1.315164 -10,-2.9375 0,-1.622336 4.4771525,-2.9375 10,-2.9375 5.522847,0 10,1.315164 10,2.9375 z" />
|
||||
<path
|
||||
transform="matrix(0.4552142,0,0,0.4578395,154.92379,-94.080092)"
|
||||
style="fill:url(#radialGradient3235);fill-opacity:1;fill-rule:evenodd;stroke:#d4d0d0;stroke-width:2.19046068;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
sodipodi:type="arc"
|
||||
sodipodi:ry="29.010935"
|
||||
sodipodi:rx="29.010935"
|
||||
sodipodi:cy="29.207693"
|
||||
sodipodi:cx="29.392656"
|
||||
id="path3213"
|
||||
d="m 58.403591,29.207693 c 0,16.022297 -12.988638,29.010935 -29.010935,29.010935 -16.022297,0 -29.0109345,-12.988638 -29.0109345,-29.010935 0,-16.022297 12.9886375,-29.01093473 29.0109345,-29.01093473 16.022297,0 29.010935,12.98863773 29.010935,29.01093473 z" />
|
||||
<path
|
||||
transform="matrix(0.5041973,0,0,0.5044661,153.2742,-96.019639)"
|
||||
style="fill:none;stroke:url(#radialGradient3237);stroke-width:1.98282218;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
sodipodi:type="arc"
|
||||
sodipodi:ry="24.175779"
|
||||
sodipodi:rx="24.175779"
|
||||
sodipodi:cy="30.352861"
|
||||
sodipodi:cx="29.77438"
|
||||
id="path3215"
|
||||
d="m 53.950159,30.352861 c 0,13.351915 -10.823865,24.17578 -24.175779,24.17578 -13.351915,0 -24.1757796,-10.823865 -24.1757796,-24.17578 0,-13.351914 10.8238646,-24.1757789 24.1757796,-24.1757789 13.351914,0 24.175779,10.8238649 24.175779,24.1757789 z" />
|
||||
</g>
|
||||
<g
|
||||
transform="matrix(0.33832187,0,0,0.33832187,410.06766,-39.187259)"
|
||||
id="g3217"
|
||||
style="stroke-width:5.32037735;stroke-miterlimit:4;stroke-dasharray:none">
|
||||
<path
|
||||
sodipodi:end="6.2831853"
|
||||
sodipodi:start="3.1415927"
|
||||
transform="matrix(0.9559435,0,0,0.9559435,-2.74581,-3.77127)"
|
||||
d="m -124.28571,-85.600701 c 0,-3.155913 9.5939,-5.714285 21.42857,-5.714285 11.834674,0 21.428572,2.558373 21.428572,5.714286"
|
||||
sodipodi:ry="5.7142859"
|
||||
sodipodi:rx="21.428572"
|
||||
sodipodi:cy="-85.6007"
|
||||
sodipodi:cx="-102.85714"
|
||||
id="path3219"
|
||||
style="opacity:0.98000004;fill:none;stroke:#ff4e34;stroke-width:5.56557703;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline"
|
||||
sodipodi:type="arc"
|
||||
sodipodi:open="true" />
|
||||
<path
|
||||
sodipodi:type="arc"
|
||||
style="opacity:0.98000004;fill:none;stroke:#ff4e34;stroke-width:5.32037735;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline"
|
||||
id="path3221"
|
||||
sodipodi:cx="-101.07143"
|
||||
sodipodi:cy="-85.243561"
|
||||
sodipodi:rx="49.642857"
|
||||
sodipodi:ry="11.785714"
|
||||
d="m -51.42857,-85.243561 c 0,6.50907 -22.225864,11.785714 -49.64286,11.785714 -27.41699,0 -49.64285,-5.276644 -49.64285,-11.785714 0,-6.50907 22.22586,-11.785714 49.64285,-11.785714 27.416996,0 49.64286,5.276644 49.64286,11.785714 z"
|
||||
transform="translate(0,-0.35714)" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:none;stroke:#ff4e34;stroke-width:5.32037735;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m -101.07143,-37.895278 0,-96.382562"
|
||||
id="path3223" />
|
||||
<path
|
||||
sodipodi:end="3.1415927"
|
||||
sodipodi:start="0"
|
||||
sodipodi:type="arc"
|
||||
style="opacity:0.98000004;fill:none;stroke:#ff4e34;stroke-width:5.56557703;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
id="path3225"
|
||||
sodipodi:cx="-102.85714"
|
||||
sodipodi:cy="-85.6007"
|
||||
sodipodi:rx="21.428572"
|
||||
sodipodi:ry="5.7142859"
|
||||
d="m -81.428568,-85.6007 c 0,3.155913 -9.593898,5.714285 -21.428572,5.714285 -11.83467,0 -21.42857,-2.558372 -21.42857,-5.714285 0,0 0,-10e-7 0,-10e-7"
|
||||
transform="matrix(0.9559435,0,0,0.9559435,-2.7458124,-3.7712673)"
|
||||
sodipodi:open="true" />
|
||||
<path
|
||||
sodipodi:type="arc"
|
||||
style="opacity:0.98000004;fill:none;stroke:#ff4e34;stroke-width:5.30381203;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
id="path3227"
|
||||
sodipodi:cx="-101.78571"
|
||||
sodipodi:cy="-85.6007"
|
||||
sodipodi:rx="20.357143"
|
||||
sodipodi:ry="39.285713"
|
||||
d="m -81.42857,-85.6007 c 0,21.6969 -9.114203,39.285713 -20.35714,39.285713 -11.24294,0 -20.35715,-17.588813 -20.35715,-39.285713 0,-21.6969 9.11421,-39.28571 20.35715,-39.28571 11.242937,0 20.35714,17.58881 20.35714,39.28571 z"
|
||||
transform="matrix(1.0062564,0,0,1,1.3510971,0)" />
|
||||
<path
|
||||
transform="translate(0,-0.35713959)"
|
||||
d="m -51.42857,-85.243561 c 0,6.50907 -22.225864,11.785714 -49.64286,11.785714 -27.41699,0 -49.64285,-5.276644 -49.64285,-11.785714 0,0 0,0 0,0"
|
||||
sodipodi:ry="11.785714"
|
||||
sodipodi:rx="49.642857"
|
||||
sodipodi:cy="-85.243561"
|
||||
sodipodi:cx="-101.07143"
|
||||
id="path3229"
|
||||
style="opacity:0.98000004;fill:none;stroke:#ff4e34;stroke-width:5.32037735;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
sodipodi:type="arc"
|
||||
sodipodi:start="0"
|
||||
sodipodi:end="3.1415927"
|
||||
sodipodi:open="true" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 52 KiB After Width: | Height: | Size: 69 KiB |
1329
artwork/Dials/deluxe/lineardial-horizontal.svg
Normal file
@ -0,0 +1,1329 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="280.76797"
|
||||
height="70.597504"
|
||||
id="svg10068"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.1 "
|
||||
sodipodi:docname="lineardial-horizontal.svg"
|
||||
inkscape:export-filename="H:\Documents\Hobbies\W433\My Gauges\vbat-001.png"
|
||||
inkscape:export-xdpi="103.61"
|
||||
inkscape:export-ydpi="103.61"
|
||||
style="display:inline">
|
||||
<defs
|
||||
id="defs10070">
|
||||
<linearGradient
|
||||
id="linearGradient4439">
|
||||
<stop
|
||||
style="stop-color:#1a1a1a;stop-opacity:1"
|
||||
offset="0"
|
||||
id="stop4441" />
|
||||
<stop
|
||||
id="stop4443"
|
||||
offset="0.19742694"
|
||||
style="stop-color:#808080;stop-opacity:1" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1"
|
||||
offset="1"
|
||||
id="stop4445" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient4413">
|
||||
<stop
|
||||
id="stop4415"
|
||||
offset="0"
|
||||
style="stop-color:#1a1a1a;stop-opacity:1" />
|
||||
<stop
|
||||
style="stop-color:#4d4d4d;stop-opacity:1"
|
||||
offset="0.19742694"
|
||||
id="stop4417" />
|
||||
<stop
|
||||
id="stop4419"
|
||||
offset="1"
|
||||
style="stop-color:#000000;stop-opacity:1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient4387">
|
||||
<stop
|
||||
id="stop4389"
|
||||
offset="0"
|
||||
style="stop-color:#4d4d4d;stop-opacity:1" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1"
|
||||
offset="0.60976541"
|
||||
id="stop4391" />
|
||||
<stop
|
||||
id="stop4393"
|
||||
offset="1"
|
||||
style="stop-color:#4d4d4d;stop-opacity:1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient4361">
|
||||
<stop
|
||||
style="stop-color:#4d4d4d;stop-opacity:1"
|
||||
offset="0"
|
||||
id="stop4363" />
|
||||
<stop
|
||||
id="stop4365"
|
||||
offset="0.60976541"
|
||||
style="stop-color:#000000;stop-opacity:1" />
|
||||
<stop
|
||||
style="stop-color:#4d4d4d;stop-opacity:1"
|
||||
offset="1"
|
||||
id="stop4367" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient4317">
|
||||
<stop
|
||||
id="stop4319"
|
||||
offset="0"
|
||||
style="stop-color:#4d4d4d;stop-opacity:1" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1"
|
||||
offset="0.60976541"
|
||||
id="stop4321" />
|
||||
<stop
|
||||
id="stop4323"
|
||||
offset="1"
|
||||
style="stop-color:#b3b3b3;stop-opacity:1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient4265">
|
||||
<stop
|
||||
style="stop-color:#333333;stop-opacity:1"
|
||||
offset="0"
|
||||
id="stop4267" />
|
||||
<stop
|
||||
id="stop4269"
|
||||
offset="0.60976541"
|
||||
style="stop-color:#000000;stop-opacity:1" />
|
||||
<stop
|
||||
style="stop-color:#333333;stop-opacity:1"
|
||||
offset="1"
|
||||
id="stop4271" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient4239">
|
||||
<stop
|
||||
id="stop4241"
|
||||
offset="0"
|
||||
style="stop-color:#000000;stop-opacity:1" />
|
||||
<stop
|
||||
style="stop-color:#808080;stop-opacity:1"
|
||||
offset="0.60976541"
|
||||
id="stop4243" />
|
||||
<stop
|
||||
id="stop4245"
|
||||
offset="1"
|
||||
style="stop-color:#000000;stop-opacity:1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient4215">
|
||||
<stop
|
||||
style="stop-color:#1a1a1a;stop-opacity:1"
|
||||
offset="0"
|
||||
id="stop4217" />
|
||||
<stop
|
||||
id="stop4219"
|
||||
offset="0.3051295"
|
||||
style="stop-color:#808080;stop-opacity:1" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1"
|
||||
offset="1"
|
||||
id="stop4221" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient4193">
|
||||
<stop
|
||||
id="stop4195"
|
||||
offset="0"
|
||||
style="stop-color:#1a1a1a;stop-opacity:1" />
|
||||
<stop
|
||||
style="stop-color:#999999;stop-opacity:1"
|
||||
offset="0.3051295"
|
||||
id="stop4197" />
|
||||
<stop
|
||||
id="stop4199"
|
||||
offset="1"
|
||||
style="stop-color:#000000;stop-opacity:1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient4171">
|
||||
<stop
|
||||
style="stop-color:#1a1a1a;stop-opacity:1"
|
||||
offset="0"
|
||||
id="stop4173" />
|
||||
<stop
|
||||
id="stop4175"
|
||||
offset="0.3051295"
|
||||
style="stop-color:#666666;stop-opacity:1" />
|
||||
<stop
|
||||
style="stop-color:#1a1a1a;stop-opacity:1"
|
||||
offset="1"
|
||||
id="stop4177" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient4121">
|
||||
<stop
|
||||
id="stop4123"
|
||||
offset="0"
|
||||
style="stop-color:#1a1a1a;stop-opacity:1" />
|
||||
<stop
|
||||
style="stop-color:#666666;stop-opacity:1"
|
||||
offset="0.2984421"
|
||||
id="stop4125" />
|
||||
<stop
|
||||
id="stop4127"
|
||||
offset="1"
|
||||
style="stop-color:#1a1a1a;stop-opacity:1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient4085">
|
||||
<stop
|
||||
style="stop-color:#1a1a1a;stop-opacity:1"
|
||||
offset="0"
|
||||
id="stop4087" />
|
||||
<stop
|
||||
id="stop4089"
|
||||
offset="0.2984421"
|
||||
style="stop-color:#999999;stop-opacity:1" />
|
||||
<stop
|
||||
style="stop-color:#1a1a1a;stop-opacity:1"
|
||||
offset="1"
|
||||
id="stop4091" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient4063">
|
||||
<stop
|
||||
id="stop4065"
|
||||
offset="0"
|
||||
style="stop-color:#1a1a1a;stop-opacity:1" />
|
||||
<stop
|
||||
style="stop-color:#b3b3b3;stop-opacity:1"
|
||||
offset="0.39999998"
|
||||
id="stop4067" />
|
||||
<stop
|
||||
id="stop4069"
|
||||
offset="1"
|
||||
style="stop-color:#1a1a1a;stop-opacity:1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient4027">
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1"
|
||||
offset="0"
|
||||
id="stop4029" />
|
||||
<stop
|
||||
id="stop4031"
|
||||
offset="0.31880337"
|
||||
style="stop-color:#b3b3b3;stop-opacity:1" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1"
|
||||
offset="1"
|
||||
id="stop4033" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient3903">
|
||||
<stop
|
||||
id="stop3905"
|
||||
offset="0"
|
||||
style="stop-color:#000000;stop-opacity:1" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1"
|
||||
offset="0.3220683"
|
||||
id="stop3907" />
|
||||
<stop
|
||||
id="stop3909"
|
||||
offset="1"
|
||||
style="stop-color:#000000;stop-opacity:1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient5375">
|
||||
<stop
|
||||
style="stop-color:#00000c;stop-opacity:1"
|
||||
offset="0"
|
||||
id="stop5377" />
|
||||
<stop
|
||||
id="stop5383"
|
||||
offset="0.34210527"
|
||||
style="stop-color:#0044d8;stop-opacity:1" />
|
||||
<stop
|
||||
style="stop-color:#00000c;stop-opacity:1"
|
||||
offset="1"
|
||||
id="stop5379" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient5367">
|
||||
<stop
|
||||
style="stop-color:#000020;stop-opacity:1"
|
||||
offset="0"
|
||||
id="stop5369" />
|
||||
<stop
|
||||
id="stop5371"
|
||||
offset="1"
|
||||
style="stop-color:#000018;stop-opacity:1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient5359">
|
||||
<stop
|
||||
style="stop-color:#00002c;stop-opacity:1"
|
||||
offset="0"
|
||||
id="stop5361" />
|
||||
<stop
|
||||
id="stop5363"
|
||||
offset="0.32456139"
|
||||
style="stop-color:#00ffff;stop-opacity:1" />
|
||||
<stop
|
||||
style="stop-color:#00c8fc;stop-opacity:1"
|
||||
offset="1"
|
||||
id="stop5365" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient5346">
|
||||
<stop
|
||||
id="stop5348"
|
||||
offset="0"
|
||||
style="stop-color:#1a1a1a;stop-opacity:1" />
|
||||
<stop
|
||||
style="stop-color:#666666;stop-opacity:1"
|
||||
offset="0.37595931"
|
||||
id="stop5350" />
|
||||
<stop
|
||||
id="stop5352"
|
||||
offset="1"
|
||||
style="stop-color:#1a1a1a;stop-opacity:1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient5326">
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1"
|
||||
offset="0"
|
||||
id="stop5328" />
|
||||
<stop
|
||||
id="stop5330"
|
||||
offset="0.35277387"
|
||||
style="stop-color:#4d4d4d;stop-opacity:1" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1"
|
||||
offset="1"
|
||||
id="stop5332" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient5306">
|
||||
<stop
|
||||
id="stop5308"
|
||||
offset="0"
|
||||
style="stop-color:#000000;stop-opacity:1" />
|
||||
<stop
|
||||
style="stop-color:#808080;stop-opacity:1"
|
||||
offset="0.35277387"
|
||||
id="stop5310" />
|
||||
<stop
|
||||
id="stop5312"
|
||||
offset="1"
|
||||
style="stop-color:#000000;stop-opacity:1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient5271">
|
||||
<stop
|
||||
id="stop5273"
|
||||
offset="0"
|
||||
style="stop-color:#000080;stop-opacity:1" />
|
||||
<stop
|
||||
style="stop-color:#00ffff;stop-opacity:1"
|
||||
offset="0.32456139"
|
||||
id="stop5275" />
|
||||
<stop
|
||||
id="stop5277"
|
||||
offset="1"
|
||||
style="stop-color:#000080;stop-opacity:1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient5248">
|
||||
<stop
|
||||
style="stop-color:#000080;stop-opacity:1"
|
||||
offset="0"
|
||||
id="stop5250" />
|
||||
<stop
|
||||
id="stop5256"
|
||||
offset="0.32456139"
|
||||
style="stop-color:#00ffff;stop-opacity:1" />
|
||||
<stop
|
||||
style="stop-color:#000080;stop-opacity:1"
|
||||
offset="1"
|
||||
id="stop5252" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient5236">
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop5238" />
|
||||
<stop
|
||||
id="stop5244"
|
||||
offset="0.5"
|
||||
style="stop-color:#000000;stop-opacity:0.49803922;" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop5240" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient5219">
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1"
|
||||
offset="0"
|
||||
id="stop5221" />
|
||||
<stop
|
||||
id="stop5223"
|
||||
offset="0.35277387"
|
||||
style="stop-color:#b3b3b3;stop-opacity:1" />
|
||||
<stop
|
||||
style="stop-color:#1a1a1a;stop-opacity:1"
|
||||
offset="1"
|
||||
id="stop5225" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient5151">
|
||||
<stop
|
||||
id="stop5153"
|
||||
offset="0"
|
||||
style="stop-color:#000000;stop-opacity:1" />
|
||||
<stop
|
||||
style="stop-color:#b3b3b3;stop-opacity:1"
|
||||
offset="0.38512576"
|
||||
id="stop5155" />
|
||||
<stop
|
||||
id="stop5157"
|
||||
offset="1"
|
||||
style="stop-color:#000000;stop-opacity:1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient5129">
|
||||
<stop
|
||||
style="stop-color:#1a1a1a;stop-opacity:1"
|
||||
offset="0"
|
||||
id="stop5131" />
|
||||
<stop
|
||||
id="stop5137"
|
||||
offset="0.38512576"
|
||||
style="stop-color:#cccccc;stop-opacity:1" />
|
||||
<stop
|
||||
style="stop-color:#4d4d4d;stop-opacity:1"
|
||||
offset="1"
|
||||
id="stop5133" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient5116">
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1"
|
||||
offset="0"
|
||||
id="stop5118" />
|
||||
<stop
|
||||
id="stop5124"
|
||||
offset="0.35911319"
|
||||
style="stop-color:#dcaf28;stop-opacity:1" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1"
|
||||
offset="1"
|
||||
id="stop5120" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient5106">
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1"
|
||||
offset="0"
|
||||
id="stop5108" />
|
||||
<stop
|
||||
id="stop5114"
|
||||
offset="0.36023793"
|
||||
style="stop-color:#00a000;stop-opacity:1" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1"
|
||||
offset="1"
|
||||
id="stop5110" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient5096">
|
||||
<stop
|
||||
style="stop-color:#100000;stop-opacity:1"
|
||||
offset="0"
|
||||
id="stop5098" />
|
||||
<stop
|
||||
id="stop5104"
|
||||
offset="0.36453304"
|
||||
style="stop-color:#aa0000;stop-opacity:1" />
|
||||
<stop
|
||||
style="stop-color:#0c0000;stop-opacity:1"
|
||||
offset="1"
|
||||
id="stop5100" />
|
||||
</linearGradient>
|
||||
<marker
|
||||
inkscape:stockid="Arrow2Sstart"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow2Sstart"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path4640"
|
||||
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
|
||||
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
|
||||
transform="matrix(0.3,0,0,0.3,-0.69,0)"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 526.18109 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="744.09448 : 526.18109 : 1"
|
||||
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
|
||||
id="perspective10076" />
|
||||
<inkscape:perspective
|
||||
id="perspective9987"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective10250"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective10279"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective10517"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective11202"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective3720"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective3735"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective3757"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective3828"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective3889"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective3925"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective3968"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective3982"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective4682"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective3347"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective5659"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective5719"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective5810"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective3546"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective4328"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient8928"
|
||||
id="linearGradient5318"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(2.2532936,0,0,2.206809,446.89077,-285.33499)"
|
||||
x1="-29.837337"
|
||||
y1="285.0596"
|
||||
x2="-29.837337"
|
||||
y2="342.60553" />
|
||||
<linearGradient
|
||||
id="linearGradient8928">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.89156628;"
|
||||
offset="0"
|
||||
id="stop8930" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop8932" />
|
||||
</linearGradient>
|
||||
<inkscape:perspective
|
||||
id="perspective4367"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective4402"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective2940"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective2864"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5096"
|
||||
id="linearGradient5102"
|
||||
x1="117.41457"
|
||||
y1="168.83261"
|
||||
x2="87.074203"
|
||||
y2="168.83261"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0,0.99999995,-0.99999975,0,-11.23354,-270.8763)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5106"
|
||||
id="linearGradient5112"
|
||||
x1="117.57944"
|
||||
y1="173.46591"
|
||||
x2="86.644958"
|
||||
y2="173.46591"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0,0.99999997,-1,0,-11.23354,-270.8763)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5116"
|
||||
id="linearGradient5122"
|
||||
x1="117.77806"
|
||||
y1="168.82289"
|
||||
x2="86.547356"
|
||||
y2="168.82289"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0,1,-1,0,-11.23354,-270.8763)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5129"
|
||||
id="linearGradient5135"
|
||||
x1="-246.82069"
|
||||
y1="353.9455"
|
||||
x2="-246.82069"
|
||||
y2="408.26157"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5129"
|
||||
id="linearGradient5144"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="-246.82069"
|
||||
y1="353.9455"
|
||||
x2="-246.82069"
|
||||
y2="408.26157" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5151"
|
||||
id="linearGradient5149"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="-246.82069"
|
||||
y1="353.9455"
|
||||
x2="-246.82069"
|
||||
y2="408.26157" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5151"
|
||||
id="linearGradient5164"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="-246.82069"
|
||||
y1="353.9455"
|
||||
x2="-246.82069"
|
||||
y2="408.26157" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5151"
|
||||
id="linearGradient5169"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="-246.82069"
|
||||
y1="353.9455"
|
||||
x2="-246.82069"
|
||||
y2="408.26157" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5151"
|
||||
id="linearGradient5176"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="-246.82069"
|
||||
y1="353.9455"
|
||||
x2="-246.82069"
|
||||
y2="408.26157" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5151"
|
||||
id="linearGradient5181"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="-246.82069"
|
||||
y1="353.9455"
|
||||
x2="-246.82069"
|
||||
y2="408.26157" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5151"
|
||||
id="linearGradient5188"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="-246.82069"
|
||||
y1="353.9455"
|
||||
x2="-246.82069"
|
||||
y2="408.26157" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5151"
|
||||
id="linearGradient5193"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="-246.82069"
|
||||
y1="353.9455"
|
||||
x2="-246.82069"
|
||||
y2="408.26157" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5151"
|
||||
id="linearGradient5200"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="-246.82069"
|
||||
y1="353.9455"
|
||||
x2="-246.82069"
|
||||
y2="408.26157" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5151"
|
||||
id="linearGradient5205"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="-246.82069"
|
||||
y1="353.9455"
|
||||
x2="-246.82069"
|
||||
y2="408.26157" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5151"
|
||||
id="linearGradient5212"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="-246.82069"
|
||||
y1="353.9455"
|
||||
x2="-246.82069"
|
||||
y2="408.26157" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5219"
|
||||
id="linearGradient5217"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="-246.82069"
|
||||
y1="353.9455"
|
||||
x2="-247.44464"
|
||||
y2="412.00528" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5236"
|
||||
id="linearGradient5242"
|
||||
x1="3.7395172"
|
||||
y1="59.899364"
|
||||
x2="42.432911"
|
||||
y2="59.899364"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(129.62194,-129.52019)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5248"
|
||||
id="linearGradient5254"
|
||||
x1="-172.83463"
|
||||
y1="74.562233"
|
||||
x2="-137.26938"
|
||||
y2="74.562233"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5271"
|
||||
id="linearGradient5285"
|
||||
x1="-172.83463"
|
||||
y1="74.562233"
|
||||
x2="-137.26938"
|
||||
y2="74.562233"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.58333333,-2.7039997e-8,32.705471)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5219"
|
||||
id="linearGradient5287"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="-246.82069"
|
||||
y1="353.9455"
|
||||
x2="-247.44464"
|
||||
y2="412.00528" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5219"
|
||||
id="linearGradient5292"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="-246.82069"
|
||||
y1="353.9455"
|
||||
x2="-247.44464"
|
||||
y2="412.00528" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5219"
|
||||
id="linearGradient5299"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="-246.82069"
|
||||
y1="353.9455"
|
||||
x2="-247.44464"
|
||||
y2="412.00528" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5306"
|
||||
id="linearGradient5304"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="-246.82069"
|
||||
y1="353.9455"
|
||||
x2="-247.44464"
|
||||
y2="412.00528" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5306"
|
||||
id="linearGradient5319"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="-246.82069"
|
||||
y1="353.9455"
|
||||
x2="-247.44464"
|
||||
y2="412.00528" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5326"
|
||||
id="linearGradient5324"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="-246.82069"
|
||||
y1="353.9455"
|
||||
x2="-247.44464"
|
||||
y2="412.00528" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5326"
|
||||
id="linearGradient5339"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="-246.82069"
|
||||
y1="353.9455"
|
||||
x2="-247.44464"
|
||||
y2="412.00528" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5375"
|
||||
id="linearGradient5381"
|
||||
x1="-172.83463"
|
||||
y1="74.562233"
|
||||
x2="-137.26938"
|
||||
y2="74.562233"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(128.37404,-129.52019)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3903"
|
||||
id="linearGradient3899"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0,-0.99999988,1.7142859,0,35.373449,-317.43383)"
|
||||
x1="-150.75359"
|
||||
y1="68.860146"
|
||||
x2="-150.75359"
|
||||
y2="87.776077" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4317"
|
||||
id="linearGradient4337"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="-384.0242"
|
||||
y1="-558.1579"
|
||||
x2="-384.0242"
|
||||
y2="-510.8558" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4215"
|
||||
id="linearGradient4340"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0,0.99999998,-0.99999991,0,-11.233538,-270.87634)"
|
||||
x1="-235.30438"
|
||||
y1="369.2117"
|
||||
x2="-299.45587"
|
||||
y2="369.2117" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4215"
|
||||
id="linearGradient4349"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0,0.99999998,-0.99999991,0,-11.233538,-270.87634)"
|
||||
x1="-235.30438"
|
||||
y1="369.2117"
|
||||
x2="-299.45587"
|
||||
y2="369.2117" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4317"
|
||||
id="linearGradient4351"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="-384.0242"
|
||||
y1="-558.1579"
|
||||
x2="-384.0242"
|
||||
y2="-510.8558" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4361"
|
||||
id="linearGradient4355"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="-384.0242"
|
||||
y1="-558.1579"
|
||||
x2="-383.71014"
|
||||
y2="-510.8558" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4215"
|
||||
id="linearGradient4358"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0,0.99999998,-0.99999991,0,-11.233538,-270.87634)"
|
||||
x1="-235.30438"
|
||||
y1="369.2117"
|
||||
x2="-299.45587"
|
||||
y2="369.2117" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4215"
|
||||
id="linearGradient4375"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0,0.99999998,-0.99999991,0,-11.233538,-270.87634)"
|
||||
x1="-235.30438"
|
||||
y1="369.2117"
|
||||
x2="-299.45587"
|
||||
y2="369.2117" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4361"
|
||||
id="linearGradient4377"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="-384.0242"
|
||||
y1="-558.1579"
|
||||
x2="-383.71014"
|
||||
y2="-510.8558" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4387"
|
||||
id="linearGradient4381"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="-383.39609"
|
||||
y1="-561.92657"
|
||||
x2="-383.71014"
|
||||
y2="-510.8558" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4215"
|
||||
id="linearGradient4384"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0,0.99999998,-0.99999991,0,-11.233538,-270.87634)"
|
||||
x1="-235.30438"
|
||||
y1="369.2117"
|
||||
x2="-299.45587"
|
||||
y2="369.2117" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4215"
|
||||
id="linearGradient4401"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0,0.99999998,-0.99999991,0,-11.233536,-270.87635)"
|
||||
x1="-235.30438"
|
||||
y1="369.2117"
|
||||
x2="-299.45587"
|
||||
y2="369.2117" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4387"
|
||||
id="linearGradient4403"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="-383.39609"
|
||||
y1="-561.92657"
|
||||
x2="-383.71014"
|
||||
y2="-510.8558"
|
||||
gradientTransform="translate(2.3925782e-6,-1.3232422e-5)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4387"
|
||||
id="linearGradient4407"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(2.3925782e-6,-1.3232422e-5)"
|
||||
x1="-383.39609"
|
||||
y1="-561.92657"
|
||||
x2="-383.71014"
|
||||
y2="-510.8558" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4413"
|
||||
id="linearGradient4410"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0,0.99999998,-0.99999991,0,-11.233536,-270.87635)"
|
||||
x1="-235.30438"
|
||||
y1="369.2117"
|
||||
x2="-299.45587"
|
||||
y2="369.2117" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4413"
|
||||
id="linearGradient4427"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0,0.99999998,-0.99999991,0,-11.233536,-270.87635)"
|
||||
x1="-235.30438"
|
||||
y1="369.2117"
|
||||
x2="-299.45587"
|
||||
y2="369.2117" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4387"
|
||||
id="linearGradient4429"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(2.3925782e-6,-1.3232422e-5)"
|
||||
x1="-383.39609"
|
||||
y1="-561.92657"
|
||||
x2="-383.71014"
|
||||
y2="-510.8558" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4387"
|
||||
id="linearGradient4433"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(2.3925782e-6,-1.3232422e-5)"
|
||||
x1="-383.39609"
|
||||
y1="-561.92657"
|
||||
x2="-383.71014"
|
||||
y2="-510.8558" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4439"
|
||||
id="linearGradient4436"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0,0.99999998,-0.99999991,0,-11.233536,-270.87635)"
|
||||
x1="-235.30438"
|
||||
y1="369.2117"
|
||||
x2="-299.45587"
|
||||
y2="369.2117" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="3.1841238"
|
||||
inkscape:cx="140.38399"
|
||||
inkscape:cy="35.455778"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer5"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1366"
|
||||
inkscape:window-height="706"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:object-paths="true"
|
||||
showguides="true"
|
||||
inkscape:guide-bbox="true"
|
||||
inkscape:snap-to-guides="false"
|
||||
inkscape:snap-grids="false"
|
||||
inkscape:snap-global="false"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0" />
|
||||
<metadata
|
||||
id="metadata10073">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
<dc:creator>
|
||||
<cc:Agent>
|
||||
<dc:title>Edouard Lafargue</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:creator>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
style="display:inline"
|
||||
inkscape:label="Dark background"
|
||||
id="g2932"
|
||||
inkscape:groupmode="layer"
|
||||
transform="translate(-368.2988,-507.08981)"
|
||||
sodipodi:insensitive="true">
|
||||
<g
|
||||
id="background"
|
||||
inkscape:label="#g4447">
|
||||
<rect
|
||||
inkscape:export-ydpi="88.809998"
|
||||
inkscape:export-xdpi="88.809998"
|
||||
inkscape:export-filename="H:\Documents\Hobbies\W433\g9905.png"
|
||||
ry="4.5346842"
|
||||
y="-577.68732"
|
||||
x="-616.67365"
|
||||
height="61.448738"
|
||||
width="226.5451"
|
||||
id="rect3145"
|
||||
style="fill:none;stroke:none"
|
||||
transform="scale(-1,-1)" />
|
||||
<rect
|
||||
transform="scale(-1,-1)"
|
||||
style="fill:url(#linearGradient4436);fill-opacity:1;stroke:none"
|
||||
id="rect2936"
|
||||
width="280.76797"
|
||||
height="53.465179"
|
||||
x="-649.06677"
|
||||
y="-560.55499"
|
||||
ry="3.9455285"
|
||||
inkscape:export-filename="H:\Documents\Hobbies\W433\g9905.png"
|
||||
inkscape:export-xdpi="88.809998"
|
||||
inkscape:export-ydpi="88.809998" />
|
||||
<rect
|
||||
transform="scale(-1,-1)"
|
||||
inkscape:label="#rect4388"
|
||||
inkscape:export-ydpi="88.809998"
|
||||
inkscape:export-xdpi="88.809998"
|
||||
inkscape:export-filename="H:\Documents\Hobbies\W433\g9905.png"
|
||||
ry="2.9134333"
|
||||
y="-554.10626"
|
||||
x="-642.96082"
|
||||
height="39.479435"
|
||||
width="267.02957"
|
||||
id="bargraph-outer"
|
||||
style="fill:url(#linearGradient4433);fill-opacity:1;stroke:none" />
|
||||
<rect
|
||||
transform="scale(-1,-1)"
|
||||
style="fill:#000000;fill-opacity:1;stroke:none"
|
||||
id="bargraph"
|
||||
width="262.18338"
|
||||
height="32.956219"
|
||||
x="-640.57104"
|
||||
y="-550.64001"
|
||||
ry="2.432044"
|
||||
inkscape:export-filename="H:\Documents\Hobbies\W433\g9905.png"
|
||||
inkscape:export-xdpi="88.809998"
|
||||
inkscape:export-ydpi="88.809998"
|
||||
inkscape:label="#rect4388" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer5"
|
||||
inkscape:label="Green Zone"
|
||||
style="display:inline"
|
||||
transform="translate(-140.85549,-141.35611)"
|
||||
sodipodi:insensitive="true">
|
||||
<rect
|
||||
inkscape:label="#rect5741"
|
||||
style="fill:url(#linearGradient5112);fill-opacity:1;stroke:none;display:inline"
|
||||
id="green"
|
||||
width="260.53882"
|
||||
height="32.20755"
|
||||
x="-411.77084"
|
||||
y="-184.00433"
|
||||
ry="2.3767958"
|
||||
inkscape:export-filename="H:\Documents\Hobbies\W433\g9905.png"
|
||||
inkscape:export-xdpi="88.809998"
|
||||
inkscape:export-ydpi="88.809998"
|
||||
transform="scale(-1,-1)" />
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer4"
|
||||
inkscape:label="Yellow Zone"
|
||||
style="display:none"
|
||||
transform="translate(-140.85549,-141.35611)"
|
||||
sodipodi:insensitive="true">
|
||||
<rect
|
||||
inkscape:export-ydpi="88.809998"
|
||||
inkscape:export-xdpi="88.809998"
|
||||
inkscape:export-filename="H:\Documents\Hobbies\W433\g9905.png"
|
||||
ry="2.4231479"
|
||||
y="-184.63248"
|
||||
x="-411.45679"
|
||||
height="32.835663"
|
||||
width="260.53882"
|
||||
id="yellow"
|
||||
style="fill:url(#linearGradient5122);fill-opacity:1;stroke:none;display:inline"
|
||||
inkscape:label="#rect5741"
|
||||
transform="scale(-1,-1)" />
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer3"
|
||||
inkscape:label="Red zone"
|
||||
style="display:none"
|
||||
transform="translate(-140.85549,-141.35611)"
|
||||
sodipodi:insensitive="true">
|
||||
<rect
|
||||
inkscape:label="#rect5741"
|
||||
style="fill:url(#linearGradient5102);fill-opacity:1;stroke:none;display:inline"
|
||||
id="red"
|
||||
width="260.23901"
|
||||
height="32.519711"
|
||||
x="-411.38739"
|
||||
y="-184.35484"
|
||||
ry="2.399832"
|
||||
inkscape:export-filename="H:\Documents\Hobbies\W433\g9905.png"
|
||||
inkscape:export-xdpi="88.809998"
|
||||
inkscape:export-ydpi="88.809998"
|
||||
transform="scale(-1,-1)" />
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer6"
|
||||
inkscape:label="Indicator"
|
||||
style="display:inline"
|
||||
transform="translate(-140.85549,-141.35611)"
|
||||
sodipodi:insensitive="true">
|
||||
<rect
|
||||
style="fill:url(#linearGradient3899);fill-opacity:1;stroke:#000000;stroke-width:0.2964696;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
id="needle"
|
||||
width="32.035065"
|
||||
height="6.0045304"
|
||||
x="152.63882"
|
||||
y="-157.12926"
|
||||
inkscape:label="#rect5246"
|
||||
transform="matrix(0,1,-1,0,0,0)" />
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
inkscape:label="Text"
|
||||
style="display:inline"
|
||||
transform="translate(-140.85549,-141.35611)"
|
||||
sodipodi:insensitive="true">
|
||||
<rect
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:none"
|
||||
id="field"
|
||||
width="50.321022"
|
||||
height="13.236827"
|
||||
x="-201.80493"
|
||||
y="-209.93616"
|
||||
inkscape:label="#rect2878"
|
||||
transform="scale(-1,-1)" />
|
||||
<rect
|
||||
inkscape:label="#rect2878"
|
||||
y="-209.5061"
|
||||
x="-405.05276"
|
||||
height="13.236827"
|
||||
width="51.71294"
|
||||
id="value"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:none"
|
||||
transform="scale(-1,-1)" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 39 KiB |
929
artwork/Dials/deluxe/lineardial-vertical.svg
Normal file
@ -0,0 +1,929 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="47.012333"
|
||||
height="322.58304"
|
||||
id="svg10068"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.1 "
|
||||
sodipodi:docname="lineardial-vertical.svg"
|
||||
inkscape:export-filename="H:\Documents\Hobbies\W433\My Gauges\vbat-001.png"
|
||||
inkscape:export-xdpi="103.61"
|
||||
inkscape:export-ydpi="103.61"
|
||||
style="display:inline">
|
||||
<defs
|
||||
id="defs10070">
|
||||
<linearGradient
|
||||
id="linearGradient3903">
|
||||
<stop
|
||||
id="stop3905"
|
||||
offset="0"
|
||||
style="stop-color:#000000;stop-opacity:1" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1"
|
||||
offset="0.39386007"
|
||||
id="stop3907" />
|
||||
<stop
|
||||
id="stop3909"
|
||||
offset="1"
|
||||
style="stop-color:#000000;stop-opacity:1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient5375">
|
||||
<stop
|
||||
style="stop-color:#00000c;stop-opacity:1"
|
||||
offset="0"
|
||||
id="stop5377" />
|
||||
<stop
|
||||
id="stop5383"
|
||||
offset="0.34210527"
|
||||
style="stop-color:#0044d8;stop-opacity:1" />
|
||||
<stop
|
||||
style="stop-color:#00000c;stop-opacity:1"
|
||||
offset="1"
|
||||
id="stop5379" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient5367">
|
||||
<stop
|
||||
style="stop-color:#000020;stop-opacity:1"
|
||||
offset="0"
|
||||
id="stop5369" />
|
||||
<stop
|
||||
id="stop5371"
|
||||
offset="1"
|
||||
style="stop-color:#000018;stop-opacity:1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient5359">
|
||||
<stop
|
||||
style="stop-color:#00002c;stop-opacity:1"
|
||||
offset="0"
|
||||
id="stop5361" />
|
||||
<stop
|
||||
id="stop5363"
|
||||
offset="0.32456139"
|
||||
style="stop-color:#00ffff;stop-opacity:1" />
|
||||
<stop
|
||||
style="stop-color:#00c8fc;stop-opacity:1"
|
||||
offset="1"
|
||||
id="stop5365" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient5346">
|
||||
<stop
|
||||
id="stop5348"
|
||||
offset="0"
|
||||
style="stop-color:#1a1a1a;stop-opacity:1" />
|
||||
<stop
|
||||
style="stop-color:#666666;stop-opacity:1"
|
||||
offset="0.35277387"
|
||||
id="stop5350" />
|
||||
<stop
|
||||
id="stop5352"
|
||||
offset="1"
|
||||
style="stop-color:#1a1a1a;stop-opacity:1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient5326">
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1"
|
||||
offset="0"
|
||||
id="stop5328" />
|
||||
<stop
|
||||
id="stop5330"
|
||||
offset="0.35277387"
|
||||
style="stop-color:#4d4d4d;stop-opacity:1" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1"
|
||||
offset="1"
|
||||
id="stop5332" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient5306">
|
||||
<stop
|
||||
id="stop5308"
|
||||
offset="0"
|
||||
style="stop-color:#000000;stop-opacity:1" />
|
||||
<stop
|
||||
style="stop-color:#808080;stop-opacity:1"
|
||||
offset="0.35277387"
|
||||
id="stop5310" />
|
||||
<stop
|
||||
id="stop5312"
|
||||
offset="1"
|
||||
style="stop-color:#000000;stop-opacity:1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient5271">
|
||||
<stop
|
||||
id="stop5273"
|
||||
offset="0"
|
||||
style="stop-color:#000080;stop-opacity:1" />
|
||||
<stop
|
||||
style="stop-color:#00ffff;stop-opacity:1"
|
||||
offset="0.32456139"
|
||||
id="stop5275" />
|
||||
<stop
|
||||
id="stop5277"
|
||||
offset="1"
|
||||
style="stop-color:#000080;stop-opacity:1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient5248">
|
||||
<stop
|
||||
style="stop-color:#000080;stop-opacity:1"
|
||||
offset="0"
|
||||
id="stop5250" />
|
||||
<stop
|
||||
id="stop5256"
|
||||
offset="0.32456139"
|
||||
style="stop-color:#00ffff;stop-opacity:1" />
|
||||
<stop
|
||||
style="stop-color:#000080;stop-opacity:1"
|
||||
offset="1"
|
||||
id="stop5252" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient5236">
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop5238" />
|
||||
<stop
|
||||
id="stop5244"
|
||||
offset="0.5"
|
||||
style="stop-color:#000000;stop-opacity:0.49803922;" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop5240" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient5219">
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1"
|
||||
offset="0"
|
||||
id="stop5221" />
|
||||
<stop
|
||||
id="stop5223"
|
||||
offset="0.35277387"
|
||||
style="stop-color:#b3b3b3;stop-opacity:1" />
|
||||
<stop
|
||||
style="stop-color:#1a1a1a;stop-opacity:1"
|
||||
offset="1"
|
||||
id="stop5225" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient5151">
|
||||
<stop
|
||||
id="stop5153"
|
||||
offset="0"
|
||||
style="stop-color:#000000;stop-opacity:1" />
|
||||
<stop
|
||||
style="stop-color:#b3b3b3;stop-opacity:1"
|
||||
offset="0.38512576"
|
||||
id="stop5155" />
|
||||
<stop
|
||||
id="stop5157"
|
||||
offset="1"
|
||||
style="stop-color:#000000;stop-opacity:1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient5129">
|
||||
<stop
|
||||
style="stop-color:#1a1a1a;stop-opacity:1"
|
||||
offset="0"
|
||||
id="stop5131" />
|
||||
<stop
|
||||
id="stop5137"
|
||||
offset="0.38512576"
|
||||
style="stop-color:#cccccc;stop-opacity:1" />
|
||||
<stop
|
||||
style="stop-color:#4d4d4d;stop-opacity:1"
|
||||
offset="1"
|
||||
id="stop5133" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient5116">
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1"
|
||||
offset="0"
|
||||
id="stop5118" />
|
||||
<stop
|
||||
id="stop5124"
|
||||
offset="0.37640449"
|
||||
style="stop-color:#dcaf28;stop-opacity:1" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1"
|
||||
offset="1"
|
||||
id="stop5120" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient5106">
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1"
|
||||
offset="0"
|
||||
id="stop5108" />
|
||||
<stop
|
||||
id="stop5114"
|
||||
offset="0.38184431"
|
||||
style="stop-color:#00a000;stop-opacity:1" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1"
|
||||
offset="1"
|
||||
id="stop5110" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient5096">
|
||||
<stop
|
||||
style="stop-color:#100000;stop-opacity:1"
|
||||
offset="0"
|
||||
id="stop5098" />
|
||||
<stop
|
||||
id="stop5104"
|
||||
offset="0.39717463"
|
||||
style="stop-color:#aa0000;stop-opacity:1" />
|
||||
<stop
|
||||
style="stop-color:#0c0000;stop-opacity:1"
|
||||
offset="1"
|
||||
id="stop5100" />
|
||||
</linearGradient>
|
||||
<marker
|
||||
inkscape:stockid="Arrow2Sstart"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow2Sstart"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path4640"
|
||||
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
|
||||
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
|
||||
transform="matrix(0.3,0,0,0.3,-0.69,0)" />
|
||||
</marker>
|
||||
<inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 526.18109 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="744.09448 : 526.18109 : 1"
|
||||
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
|
||||
id="perspective10076" />
|
||||
<inkscape:perspective
|
||||
id="perspective9987"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective10250"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective10279"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective10517"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective11202"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective3720"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective3735"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective3757"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective3828"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective3889"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective3925"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective3968"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective3982"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective4682"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective3347"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective5659"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective5719"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective5810"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective3546"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective4328"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient8928"
|
||||
id="linearGradient5318"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(2.2532936,0,0,2.206809,446.89077,-285.33499)"
|
||||
x1="-29.837337"
|
||||
y1="285.0596"
|
||||
x2="-29.837337"
|
||||
y2="342.60553" />
|
||||
<linearGradient
|
||||
id="linearGradient8928">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.89156628;"
|
||||
offset="0"
|
||||
id="stop8930" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop8932" />
|
||||
</linearGradient>
|
||||
<inkscape:perspective
|
||||
id="perspective4367"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective4402"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective2940"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective2864"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5096"
|
||||
id="linearGradient5102"
|
||||
x1="-58.661255"
|
||||
y1="132.84332"
|
||||
x2="-58.661255"
|
||||
y2="169.46072"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5106"
|
||||
id="linearGradient5112"
|
||||
x1="-38.946774"
|
||||
y1="133.15433"
|
||||
x2="-38.946774"
|
||||
y2="168.58655"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5116"
|
||||
id="linearGradient5122"
|
||||
x1="-17.108463"
|
||||
y1="133.16322"
|
||||
x2="-17.108463"
|
||||
y2="168.82289"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5129"
|
||||
id="linearGradient5135"
|
||||
x1="-246.82069"
|
||||
y1="353.9455"
|
||||
x2="-246.82069"
|
||||
y2="408.26157"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5129"
|
||||
id="linearGradient5144"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="-246.82069"
|
||||
y1="353.9455"
|
||||
x2="-246.82069"
|
||||
y2="408.26157" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5151"
|
||||
id="linearGradient5149"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="-246.82069"
|
||||
y1="353.9455"
|
||||
x2="-246.82069"
|
||||
y2="408.26157" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5151"
|
||||
id="linearGradient5164"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="-246.82069"
|
||||
y1="353.9455"
|
||||
x2="-246.82069"
|
||||
y2="408.26157" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5151"
|
||||
id="linearGradient5169"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="-246.82069"
|
||||
y1="353.9455"
|
||||
x2="-246.82069"
|
||||
y2="408.26157" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5151"
|
||||
id="linearGradient5176"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="-246.82069"
|
||||
y1="353.9455"
|
||||
x2="-246.82069"
|
||||
y2="408.26157" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5151"
|
||||
id="linearGradient5181"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="-246.82069"
|
||||
y1="353.9455"
|
||||
x2="-246.82069"
|
||||
y2="408.26157" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5151"
|
||||
id="linearGradient5188"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="-246.82069"
|
||||
y1="353.9455"
|
||||
x2="-246.82069"
|
||||
y2="408.26157" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5151"
|
||||
id="linearGradient5193"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="-246.82069"
|
||||
y1="353.9455"
|
||||
x2="-246.82069"
|
||||
y2="408.26157" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5151"
|
||||
id="linearGradient5200"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="-246.82069"
|
||||
y1="353.9455"
|
||||
x2="-246.82069"
|
||||
y2="408.26157" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5151"
|
||||
id="linearGradient5205"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="-246.82069"
|
||||
y1="353.9455"
|
||||
x2="-246.82069"
|
||||
y2="408.26157" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5151"
|
||||
id="linearGradient5212"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="-246.82069"
|
||||
y1="353.9455"
|
||||
x2="-246.82069"
|
||||
y2="408.26157" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5219"
|
||||
id="linearGradient5217"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="-246.82069"
|
||||
y1="353.9455"
|
||||
x2="-247.44464"
|
||||
y2="412.00528" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5236"
|
||||
id="linearGradient5242"
|
||||
x1="3.7395172"
|
||||
y1="59.899365"
|
||||
x2="42.43291"
|
||||
y2="59.899365"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(129.62194,-129.52019)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5248"
|
||||
id="linearGradient5254"
|
||||
x1="-172.83463"
|
||||
y1="74.562234"
|
||||
x2="-137.26938"
|
||||
y2="74.562234"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5271"
|
||||
id="linearGradient5285"
|
||||
x1="-172.83463"
|
||||
y1="74.562233"
|
||||
x2="-137.26938"
|
||||
y2="74.562233"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.58333333,-2.7039997e-8,32.705471)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5219"
|
||||
id="linearGradient5287"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="-246.82069"
|
||||
y1="353.9455"
|
||||
x2="-247.44464"
|
||||
y2="412.00528" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5219"
|
||||
id="linearGradient5292"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="-246.82069"
|
||||
y1="353.9455"
|
||||
x2="-247.44464"
|
||||
y2="412.00528" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5219"
|
||||
id="linearGradient5299"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="-246.82069"
|
||||
y1="353.9455"
|
||||
x2="-247.44464"
|
||||
y2="412.00528" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5306"
|
||||
id="linearGradient5304"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="-246.82069"
|
||||
y1="353.9455"
|
||||
x2="-247.44464"
|
||||
y2="412.00528" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5306"
|
||||
id="linearGradient5319"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="-246.82069"
|
||||
y1="353.9455"
|
||||
x2="-247.44464"
|
||||
y2="412.00528" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5326"
|
||||
id="linearGradient5324"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="-246.82069"
|
||||
y1="353.9455"
|
||||
x2="-247.44464"
|
||||
y2="412.00528" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5326"
|
||||
id="linearGradient5339"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="-246.82069"
|
||||
y1="353.9455"
|
||||
x2="-247.44464"
|
||||
y2="412.00528" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5346"
|
||||
id="linearGradient5344"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="-246.82069"
|
||||
y1="353.9455"
|
||||
x2="-247.44464"
|
||||
y2="412.00528" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5375"
|
||||
id="linearGradient5381"
|
||||
x1="-172.83463"
|
||||
y1="74.562234"
|
||||
x2="-137.26938"
|
||||
y2="74.562234"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(128.37404,-129.52019)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3903"
|
||||
id="linearGradient3899"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.99999998,0,0,1.7142857,306.20028,-235.50286)"
|
||||
x1="-172.33069"
|
||||
y1="74.562233"
|
||||
x2="-135.50557"
|
||||
y2="74.562233" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="1.9843492"
|
||||
inkscape:cx="13.888309"
|
||||
inkscape:cy="302.67927"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer6"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1366"
|
||||
inkscape:window-height="706"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:object-paths="true"
|
||||
showguides="true"
|
||||
inkscape:guide-bbox="true"
|
||||
inkscape:snap-to-guides="false"
|
||||
inkscape:snap-grids="false"
|
||||
inkscape:snap-global="false" />
|
||||
<metadata
|
||||
id="metadata10073">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
<dc:creator>
|
||||
<cc:Agent>
|
||||
<dc:title>Edouard Lafargue</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:creator>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
style="display:inline"
|
||||
inkscape:label="Dark background"
|
||||
id="g2932"
|
||||
inkscape:groupmode="layer"
|
||||
transform="translate(-357.06525,-236.21351)"
|
||||
sodipodi:insensitive="true">
|
||||
<g
|
||||
id="background"
|
||||
inkscape:label="#g5354">
|
||||
<rect
|
||||
transform="matrix(0,-1,1,0,0,0)"
|
||||
style="fill:url(#linearGradient5344);fill-opacity:1;stroke:none"
|
||||
id="rect2936"
|
||||
width="318.58304"
|
||||
height="46.756046"
|
||||
x="-556.79657"
|
||||
y="358.44128"
|
||||
ry="3.4504199"
|
||||
inkscape:export-filename="H:\Documents\Hobbies\W433\g9905.png"
|
||||
inkscape:export-xdpi="88.809998"
|
||||
inkscape:export-ydpi="88.809998" />
|
||||
<rect
|
||||
transform="matrix(0,-1,1,0,0,0)"
|
||||
style="fill:#332d2d;fill-opacity:1;stroke:none"
|
||||
id="bargraph"
|
||||
width="260.53882"
|
||||
height="34.835861"
|
||||
x="-519.56018"
|
||||
y="362.7359"
|
||||
ry="2.5707548"
|
||||
inkscape:export-filename="H:\Documents\Hobbies\W433\g9905.png"
|
||||
inkscape:export-xdpi="88.809998"
|
||||
inkscape:export-ydpi="88.809998"
|
||||
inkscape:label="#rect4388" />
|
||||
<rect
|
||||
transform="matrix(0,-1,1,0,0,0)"
|
||||
inkscape:label="#rect4388"
|
||||
inkscape:export-ydpi="88.809998"
|
||||
inkscape:export-xdpi="88.809998"
|
||||
inkscape:export-filename="H:\Documents\Hobbies\W433\g9905.png"
|
||||
ry="2.2944832"
|
||||
y="365.23175"
|
||||
x="-519.56018"
|
||||
height="31.09215"
|
||||
width="260.53882"
|
||||
id="bargraph-outer"
|
||||
style="fill:#332d2d;fill-opacity:1;stroke:none" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer5"
|
||||
inkscape:label="Green Zone"
|
||||
style="display:inline"
|
||||
transform="translate(-129.62194,129.52019)"
|
||||
sodipodi:insensitive="true">
|
||||
<rect
|
||||
inkscape:label="#rect5741"
|
||||
style="fill:url(#linearGradient5112);fill-opacity:1;stroke:none;display:inline"
|
||||
id="green"
|
||||
width="260.53882"
|
||||
height="34.0919"
|
||||
x="-153.97397"
|
||||
y="134.02345"
|
||||
ry="2.5158536"
|
||||
inkscape:export-filename="H:\Documents\Hobbies\W433\g9905.png"
|
||||
inkscape:export-xdpi="88.809998"
|
||||
inkscape:export-ydpi="88.809998"
|
||||
transform="matrix(0,-1,1,0,0,0)" />
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer4"
|
||||
inkscape:label="Yellow Zone"
|
||||
style="display:none"
|
||||
transform="translate(-129.62194,129.52019)"
|
||||
sodipodi:insensitive="true">
|
||||
<rect
|
||||
inkscape:export-ydpi="88.809998"
|
||||
inkscape:export-xdpi="88.809998"
|
||||
inkscape:export-filename="H:\Documents\Hobbies\W433\g9905.png"
|
||||
ry="2.5158532"
|
||||
y="134.02345"
|
||||
x="-153.97397"
|
||||
height="34.091896"
|
||||
width="260.53882"
|
||||
id="yellow"
|
||||
style="fill:url(#linearGradient5122);fill-opacity:1;stroke:none;display:inline"
|
||||
inkscape:label="#rect5741"
|
||||
transform="matrix(0,-1,1,0,0,0)" />
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer3"
|
||||
inkscape:label="Red zone"
|
||||
style="display:none"
|
||||
transform="translate(-129.62194,129.52019)"
|
||||
sodipodi:insensitive="true">
|
||||
<rect
|
||||
inkscape:label="#rect5741"
|
||||
style="fill:url(#linearGradient5102);fill-opacity:1;stroke:none;display:inline"
|
||||
id="red"
|
||||
width="260.53882"
|
||||
height="34.589863"
|
||||
x="-154.0755"
|
||||
y="134.00487"
|
||||
ry="2.5526016"
|
||||
inkscape:export-filename="H:\Documents\Hobbies\W433\g9905.png"
|
||||
inkscape:export-xdpi="88.809998"
|
||||
inkscape:export-ydpi="88.809998"
|
||||
transform="matrix(0,-1,1,0,0,0)" />
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer6"
|
||||
inkscape:label="Indicator"
|
||||
style="display:inline"
|
||||
transform="translate(-129.62194,129.52019)">
|
||||
<rect
|
||||
style="fill:url(#linearGradient3899);fill-opacity:1;stroke:#000000;stroke-width:0.30000000999999998;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
id="needle"
|
||||
width="33.162418"
|
||||
height="5.9393759"
|
||||
x="135.64999"
|
||||
y="-107.91632"
|
||||
inkscape:label="#rect5246" />
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
inkscape:label="Text"
|
||||
style="display:inline"
|
||||
transform="translate(-129.62194,129.52019)"
|
||||
sodipodi:insensitive="true">
|
||||
<rect
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:none"
|
||||
id="field"
|
||||
width="33.853165"
|
||||
height="12.626906"
|
||||
x="128.30692"
|
||||
y="157.31393"
|
||||
inkscape:label="#rect2878" />
|
||||
<rect
|
||||
inkscape:label="#rect2878"
|
||||
y="170.91206"
|
||||
x="128.88902"
|
||||
height="12.626906"
|
||||
width="32.851257"
|
||||
id="value"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:none" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 28 KiB |
@ -16,5 +16,7 @@ Symbols:
|
||||
|
||||
Capital A = OpenPilot Logo
|
||||
Capital B = CC-BY-SA
|
||||
Capital B = CC-BY-NC-SA
|
||||
Capital D = RoHS
|
||||
|
||||
|
1
artwork/GCS Icons/README.txt
Normal file
@ -0,0 +1 @@
|
||||
Those icons come from the Tango set and are used in the GCS.
|
443
artwork/GCS Icons/application-certificate.svg
Normal file
@ -0,0 +1,443 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Adobe Illustrator 9.0, SVG Export Plug-In -->
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
sodipodi:docbase="/home/jimmac/gfx/ximian/tango-icon-theme/scalable/mimetypes"
|
||||
sodipodi:docname="application-certificate.svg"
|
||||
inkscape:version="0.46"
|
||||
sodipodi:version="0.32"
|
||||
id="svg5105"
|
||||
xml:space="preserve"
|
||||
viewBox="0 0 48 48"
|
||||
height="48.000000px"
|
||||
width="48.000000px"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape"><metadata
|
||||
id="metadata5189">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
|
||||
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
|
||||
|
||||
<dc:title>Certificate</dc:title><dc:creator><cc:Agent><dc:title>Jakub Steiner</dc:title></cc:Agent></dc:creator><dc:subject><rdf:Bag><rdf:li>certificate</rdf:li></rdf:Bag></dc:subject><cc:license
|
||||
rdf:resource="http://creativecommons.org/licenses/publicdomain/" /></cc:Work>
|
||||
|
||||
|
||||
<cc:License
|
||||
rdf:about="http://creativecommons.org/licenses/publicdomain/"><cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Reproduction" /><cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Distribution" /><cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /></cc:License></rdf:RDF>
|
||||
|
||||
|
||||
</metadata>
|
||||
|
||||
|
||||
<defs
|
||||
id="defs5187"><inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 24 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="48 : 24 : 1"
|
||||
inkscape:persp3d-origin="24 : 16 : 1"
|
||||
id="perspective54" /><linearGradient
|
||||
id="linearGradient6684">
|
||||
<stop
|
||||
id="stop6686"
|
||||
offset="0.0000000"
|
||||
style="stop-color:#d5dbff;stop-opacity:1.0000000;" />
|
||||
<stop
|
||||
id="stop6688"
|
||||
offset="1"
|
||||
style="stop-color:#6579ff;stop-opacity:0;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient6665">
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||
offset="0.0000000"
|
||||
id="stop6667" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:0.0000000;"
|
||||
offset="1.0000000"
|
||||
id="stop6669" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient6625">
|
||||
<stop
|
||||
id="stop6627"
|
||||
offset="0.0000000"
|
||||
style="stop-color:#1d2349;stop-opacity:1.0000000;" />
|
||||
<stop
|
||||
style="stop-color:#4c5279;stop-opacity:1.0000000;"
|
||||
offset="0.35315102"
|
||||
id="stop6637" />
|
||||
<stop
|
||||
style="stop-color:#b3bdff;stop-opacity:1.0000000;"
|
||||
offset="0.46551725"
|
||||
id="stop6633" />
|
||||
<stop
|
||||
id="stop6635"
|
||||
offset="0.64982164"
|
||||
style="stop-color:#727cbe;stop-opacity:1.0000000;" />
|
||||
<stop
|
||||
id="stop6629"
|
||||
offset="1.0000000"
|
||||
style="stop-color:#323c7e;stop-opacity:1.0000000;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient6617">
|
||||
<stop
|
||||
id="stop6619"
|
||||
offset="0.0000000"
|
||||
style="stop-color:#ffffff;stop-opacity:0.24742268;" />
|
||||
<stop
|
||||
id="stop6621"
|
||||
offset="1"
|
||||
style="stop-color:#ffffff;stop-opacity:0;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient6604">
|
||||
<stop
|
||||
id="stop6606"
|
||||
offset="0.0000000"
|
||||
style="stop-color:#ffa196;stop-opacity:1.0000000;" />
|
||||
<stop
|
||||
id="stop6608"
|
||||
offset="1"
|
||||
style="stop-color:#ff1f06;stop-opacity:0;" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
r="13.2807"
|
||||
fy="20.9712"
|
||||
fx="28.7891"
|
||||
cy="20.9712"
|
||||
cx="28.7891"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient5199"
|
||||
xlink:href="#aigrd1"
|
||||
inkscape:collect="always" />
|
||||
|
||||
|
||||
<radialGradient
|
||||
r="14.6944"
|
||||
fy="13.5444"
|
||||
fx="19.292"
|
||||
cy="13.5444"
|
||||
cx="19.292"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient5201"
|
||||
xlink:href="#aigrd2"
|
||||
inkscape:collect="always" />
|
||||
|
||||
|
||||
<linearGradient
|
||||
y2="16.7231"
|
||||
x2="23.412"
|
||||
y1="11.5991"
|
||||
x1="18.229"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="linearGradient5203"
|
||||
xlink:href="#aigrd3"
|
||||
inkscape:collect="always" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<radialGradient
|
||||
gradientUnits="userSpaceOnUse"
|
||||
fy="20.971201"
|
||||
fx="28.789101"
|
||||
r="13.280700"
|
||||
cy="20.971201"
|
||||
cx="28.789101"
|
||||
id="aigrd1">
|
||||
<stop
|
||||
id="stop5115"
|
||||
style="stop-color:#E41E08"
|
||||
offset="0" />
|
||||
|
||||
|
||||
|
||||
<stop
|
||||
id="stop5117"
|
||||
style="stop-color:#901505"
|
||||
offset="1" />
|
||||
|
||||
|
||||
|
||||
</radialGradient>
|
||||
|
||||
|
||||
|
||||
|
||||
<radialGradient
|
||||
gradientUnits="userSpaceOnUse"
|
||||
fy="13.544400"
|
||||
fx="19.292000"
|
||||
r="14.694400"
|
||||
cy="13.544400"
|
||||
cx="19.292000"
|
||||
id="aigrd2">
|
||||
<stop
|
||||
id="stop5122"
|
||||
style="stop-color:#E41E08"
|
||||
offset="0" />
|
||||
|
||||
|
||||
|
||||
<stop
|
||||
id="stop5124"
|
||||
style="stop-color:#901505"
|
||||
offset="1" />
|
||||
|
||||
|
||||
|
||||
</radialGradient>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<linearGradient
|
||||
y2="16.723101"
|
||||
x2="23.412001"
|
||||
y1="11.599100"
|
||||
x1="18.229000"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="aigrd3">
|
||||
<stop
|
||||
id="stop5137"
|
||||
style="stop-color:#FFFFFF"
|
||||
offset="0" />
|
||||
|
||||
|
||||
|
||||
<stop
|
||||
id="stop5139"
|
||||
style="stop-color:#901505"
|
||||
offset="1" />
|
||||
|
||||
|
||||
|
||||
</linearGradient>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<linearGradient
|
||||
gradientTransform="matrix(1.135551,0.000000,0.000000,1.135551,-3.259995,-3.266773)"
|
||||
y2="16.7231"
|
||||
x2="23.412"
|
||||
y1="11.5991"
|
||||
x1="18.229"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="linearGradient5274"
|
||||
xlink:href="#aigrd3"
|
||||
inkscape:collect="always" />
|
||||
|
||||
|
||||
<radialGradient
|
||||
gradientTransform="matrix(1.135551,0.000000,0.000000,1.135551,-4.540325,-2.077433)"
|
||||
r="14.6944"
|
||||
fy="13.5444"
|
||||
fx="19.292"
|
||||
cy="13.5444"
|
||||
cx="19.292"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient5281"
|
||||
xlink:href="#aigrd2"
|
||||
inkscape:collect="always" />
|
||||
|
||||
|
||||
<radialGradient
|
||||
gradientTransform="matrix(1.310386,0.000000,0.000000,1.310386,-8.642682,-4.375977)"
|
||||
r="13.2807"
|
||||
fy="20.9712"
|
||||
fx="28.7891"
|
||||
cy="20.9712"
|
||||
cx="28.7891"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient5284"
|
||||
xlink:href="#aigrd1"
|
||||
inkscape:collect="always" />
|
||||
|
||||
|
||||
|
||||
|
||||
<linearGradient
|
||||
gradientUnits="userSpaceOnUse"
|
||||
y2="49.895073"
|
||||
x2="43.140980"
|
||||
y1="5.9244628"
|
||||
x1="15.338736"
|
||||
gradientTransform="matrix(0.975728,0.000000,0.000000,0.931033,-0.132002,1.978392)"
|
||||
id="linearGradient6610"
|
||||
xlink:href="#linearGradient6604"
|
||||
inkscape:collect="always" />
|
||||
<linearGradient
|
||||
gradientUnits="userSpaceOnUse"
|
||||
y2="22.783224"
|
||||
x2="29.957399"
|
||||
y1="9.4436626"
|
||||
x1="18.570419"
|
||||
gradientTransform="matrix(1.028670,0.000000,0.000000,0.972129,-1.280330,1.189340)"
|
||||
id="linearGradient6623"
|
||||
xlink:href="#linearGradient6617"
|
||||
inkscape:collect="always" />
|
||||
<linearGradient
|
||||
gradientUnits="userSpaceOnUse"
|
||||
y2="35.017860"
|
||||
x2="38.250904"
|
||||
y1="22.886259"
|
||||
x1="38.506161"
|
||||
gradientTransform="matrix(0.843938,0.000000,0.000000,1.184922,-1.280330,1.689340)"
|
||||
id="linearGradient6631"
|
||||
xlink:href="#linearGradient6625"
|
||||
inkscape:collect="always" />
|
||||
<radialGradient
|
||||
gradientUnits="userSpaceOnUse"
|
||||
r="33.156136"
|
||||
fy="19.818913"
|
||||
fx="24.452202"
|
||||
cy="19.818913"
|
||||
cx="24.452202"
|
||||
gradientTransform="matrix(1.024478,0.000000,0.000000,0.976107,0.939339,-0.530329)"
|
||||
id="radialGradient6663"
|
||||
xlink:href="#linearGradient6665"
|
||||
inkscape:collect="always" />
|
||||
<radialGradient
|
||||
r="33.156136"
|
||||
fy="19.818913"
|
||||
fx="24.452202"
|
||||
cy="19.818913"
|
||||
cx="24.452202"
|
||||
gradientTransform="matrix(1.024478,0.000000,0.000000,0.976107,1.646447,-0.353552)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient6675"
|
||||
xlink:href="#linearGradient6665"
|
||||
inkscape:collect="always" />
|
||||
<radialGradient
|
||||
r="14.6944"
|
||||
fy="20.479359"
|
||||
fx="26.887432"
|
||||
cy="20.479359"
|
||||
cx="26.887432"
|
||||
gradientTransform="matrix(1.135551,0.000000,0.000000,1.135551,-4.540325,-2.077433)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient6678"
|
||||
xlink:href="#aigrd2"
|
||||
inkscape:collect="always" />
|
||||
<linearGradient
|
||||
gradientUnits="userSpaceOnUse"
|
||||
y2="27.403761"
|
||||
x2="36.499001"
|
||||
y1="35.458244"
|
||||
x1="37.502811"
|
||||
gradientTransform="scale(0.843938,1.184922)"
|
||||
id="linearGradient6690"
|
||||
xlink:href="#linearGradient6684"
|
||||
inkscape:collect="always" />
|
||||
</defs>
|
||||
|
||||
|
||||
<sodipodi:namedview
|
||||
inkscape:current-layer="svg5105"
|
||||
inkscape:window-y="30"
|
||||
inkscape:window-x="203"
|
||||
inkscape:cy="20.392013"
|
||||
inkscape:cx="20.303269"
|
||||
inkscape:zoom="5.6568542"
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="0.16470588"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="821"
|
||||
inkscape:window-height="818"
|
||||
inkscape:showpageshadow="false"
|
||||
showgrid="false" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<path
|
||||
style="opacity:0.48044690;color:#000000;fill:url(#radialGradient6675);fill-opacity:1.0000000;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible"
|
||||
d="M 25.389110,19.305038 C 25.389110,19.305038 19.484245,27.481005 19.484245,31.228324 C 19.484245,34.975642 26.297551,32.931650 29.022873,35.656973 C 31.748195,38.382295 22.663787,45.422711 22.663787,45.422711 L 31.748195,42.924499 L 35.381959,46.785372 C 35.381959,42.129613 40.719048,38.382295 37.993726,35.543418 C 35.154848,32.704540 27.092436,33.045205 26.638216,29.297887 C 26.183995,25.550569 25.502665,19.418593 25.502665,19.418593 L 25.389110,19.305038 z "
|
||||
id="path6671" />
|
||||
<path
|
||||
style="opacity:0.48044690;fill:url(#radialGradient6663);fill-opacity:1.0000000;fill-rule:nonzero;stroke:none;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||
d="M 36.916160,9.3946518 C 38.237688,12.452028 40.559293,12.296470 40.616709,16.377167 C 40.649454,18.652929 42.449165,19.847910 42.449165,22.172684 C 42.449165,24.497457 38.434150,25.646156 37.066636,27.013668 C 35.699121,28.381184 37.174521,31.888095 33.464606,32.918627 C 29.789944,33.939367 27.994548,32.508375 25.669774,32.508375 C 23.344998,32.508375 17.781956,36.991063 15.730683,34.939790 C 13.679411,32.888519 13.635647,28.405831 11.857879,26.628063 C 9.9433579,24.713542 6.9184435,22.038663 6.9184435,18.619877 C 6.9184435,15.201092 8.8926489,13.396291 11.721128,10.217892 C 14.639403,6.9385873 14.729659,2.0128046 18.148445,2.0128046 C 21.567230,2.0128046 22.877627,2.9506145 25.787409,2.8770766 C 30.425746,2.7598534 30.994149,0.55375463 34.405481,2.2835766 C 37.413183,3.8087260 35.881638,7.0012699 36.916160,9.3946518 z "
|
||||
id="path6639"
|
||||
sodipodi:nodetypes="csssssssssssss" />
|
||||
<path
|
||||
id="path5112"
|
||||
d="M 23.621340,18.067599 C 23.621340,18.067599 17.716475,26.243566 17.716475,29.990885 C 17.716475,33.738203 24.529781,31.694211 27.255103,34.419534 C 29.980425,37.144856 20.896017,44.185272 20.896017,44.185272 L 29.980425,41.687060 L 33.614189,45.547933 C 33.614189,40.892174 38.951278,37.144856 36.225956,34.305979 C 33.387078,31.467101 25.324666,31.807766 24.870446,28.060448 C 24.416225,24.313130 23.734895,18.181154 23.734895,18.181154 L 23.621340,18.067599 z "
|
||||
style="stroke-opacity:1.0000000;stroke-miterlimit:6.5999999;stroke-width:1.0000000;stroke:#1f254f;fill-rule:nonzero;fill-opacity:1.0000000;fill:url(#linearGradient6631)" />
|
||||
|
||||
|
||||
<path
|
||||
sodipodi:nodetypes="cscccsss"
|
||||
style="fill:none;fill-opacity:1.0000000;fill-rule:nonzero;stroke:url(#linearGradient6690);stroke-width:0.72112519;stroke-miterlimit:6.5999999;stroke-opacity:1.0000000"
|
||||
d="M 20.803213,31.602421 C 25.355213,32.050805 28.232227,32.837946 28.609835,35.591528 C 28.939949,37.998767 24.377692,42.324487 24.377692,42.324487 L 30.221580,40.699741 L 33.062950,43.660691 C 33.725862,39.949751 37.427758,37.438687 35.741856,35.156087 C 33.627168,32.292939 26.775807,32.912620 26.448257,30.210335 C 26.120707,27.508049 18.114196,31.334950 20.803213,31.602421 z "
|
||||
id="path6680" />
|
||||
<path
|
||||
sodipodi:nodetypes="csssssssssssss"
|
||||
id="path5119"
|
||||
d="M 34.935485,9.2468088 C 36.201806,12.176463 38.426426,12.027404 38.481444,15.937630 C 38.512821,18.118322 40.237349,19.263383 40.237349,21.491039 C 40.237349,23.718695 36.390061,24.819407 35.079675,26.129792 C 33.769288,27.440180 35.183053,30.800590 31.628119,31.788071 C 28.106966,32.766170 26.386573,31.394957 24.158916,31.394957 C 21.931258,31.394957 16.600611,35.690381 14.635030,33.724800 C 12.669450,31.759221 12.627514,27.463797 10.924012,25.760295 C 9.0894699,23.925753 6.1909207,21.362617 6.1909207,18.086651 C 6.1909207,14.810685 8.0826538,13.081280 10.792974,10.035658 C 13.589338,6.8933472 13.675824,2.1733389 16.951790,2.1733389 C 20.227756,2.1733389 21.483411,3.0719718 24.271637,3.0015059 C 28.716208,2.8891797 29.260866,0.77524063 32.529689,2.4327994 C 35.411745,3.8942357 33.944180,6.9534113 34.935485,9.2468088 z "
|
||||
style="stroke-opacity:1.0000000;stroke-miterlimit:4.0000000;stroke-linejoin:round;stroke-linecap:round;stroke:#4c0901;fill-rule:nonzero;fill:url(#radialGradient5284)" />
|
||||
|
||||
|
||||
<path
|
||||
id="path5126"
|
||||
d="M 34.976850,17.567599 C 34.976850,23.813130 29.866870,28.923109 23.621340,28.923109 C 17.375809,28.923109 12.265830,23.813130 12.265830,17.567599 C 12.265830,11.322069 17.375809,6.2120891 23.621340,6.2120891 C 29.866870,6.2120891 34.976850,11.322069 34.976850,17.567599 z "
|
||||
style="stroke-miterlimit:4.0000000;stroke:none;fill-rule:nonzero;fill:url(#radialGradient6678)" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<path
|
||||
style="fill:none;fill-rule:nonzero;stroke:url(#linearGradient6610);stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||
d="M 33.888971,10.030124 C 35.042232,12.698211 37.068232,12.562460 37.118338,16.123571 C 37.146913,18.109565 38.717470,19.152392 38.717470,21.181157 C 38.717470,23.209922 35.213679,24.212359 34.020288,25.405749 C 32.826895,26.599143 34.114436,29.659526 30.876896,30.558842 C 27.670121,31.449613 26.103329,30.200827 24.074563,30.200827 C 22.045797,30.200827 17.191084,34.112744 15.400995,32.322655 C 13.610908,30.532568 13.572716,26.620651 12.021307,25.069242 C 10.350558,23.398493 7.7107989,21.064201 7.7107989,18.080722 C 7.7107989,15.097243 9.4336334,13.522243 11.901968,10.748543 C 14.448666,7.8867861 14.527430,3.5881928 17.510909,3.5881928 C 20.494388,3.5881928 21.637935,4.4065934 24.177221,4.3424188 C 28.224968,4.2401214 28.720998,2.3149204 31.697971,3.8244879 C 34.322710,5.1554433 32.986173,7.9414875 33.888971,10.030124 z "
|
||||
id="path6600"
|
||||
sodipodi:nodetypes="csssssssssssss" />
|
||||
<path
|
||||
id="path6612"
|
||||
d="M 23.663250,7.0524597 C 17.795434,7.0524597 13.016988,11.794692 13.016988,17.662510 C 13.016988,21.333503 15.000693,24.443138 17.833154,26.353336 C 25.073625,22.456374 23.786958,15.548148 33.440430,13.606789 C 31.841424,9.7576868 28.088842,7.0524597 23.663250,7.0524597 z "
|
||||
style="color:#000000;fill:url(#linearGradient6623);fill-opacity:1.0000000;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible;opacity:1.0000000" />
|
||||
</svg>
|
After Width: | Height: | Size: 15 KiB |
35
artwork/GCS Icons/dialog-warning.svg
Normal file
@ -0,0 +1,35 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
<svg id="svg3247" xmlns="http://www.w3.org/2000/svg" height="48" width="48" version="1.0" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<defs id="defs3249">
|
||||
<linearGradient id="linearGradient2411" y2="5.4676" gradientUnits="userSpaceOnUse" x2="63.397" gradientTransform="matrix(2.1154 0 0 2.1153 -107.58 32.427)" y1="-12.489" x1="63.397">
|
||||
<stop id="stop4875" style="stop-color:#fff" offset="0"/>
|
||||
<stop id="stop4877" style="stop-color:#fff;stop-opacity:0" offset="1"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="linearGradient2416" y2="3.0816" gradientUnits="userSpaceOnUse" x2="18.379" gradientTransform="matrix(.95844 0 0 .95844 .99752 1.9975)" y1="44.98" x1="18.379">
|
||||
<stop id="stop2492" style="stop-color:#791235" offset="0"/>
|
||||
<stop id="stop2494" style="stop-color:#dd3b27" offset="1"/>
|
||||
</linearGradient>
|
||||
<radialGradient id="radialGradient2414" gradientUnits="userSpaceOnUse" cy="3.99" cx="23.896" gradientTransform="matrix(0 2.2875 -3.0194 0 36.047 -50.63)" r="20.397">
|
||||
<stop id="stop3244" style="stop-color:#f8b17e" offset="0"/>
|
||||
<stop id="stop3246" style="stop-color:#e35d4f" offset=".26238"/>
|
||||
<stop id="stop3248" style="stop-color:#c6262e" offset=".66094"/>
|
||||
<stop id="stop3250" style="stop-color:#690b54" offset="1"/>
|
||||
</radialGradient>
|
||||
<radialGradient id="radialGradient2419" gradientUnits="userSpaceOnUse" cy="4.625" cx="62.625" gradientTransform="matrix(2.1647 0 0 .75294 -111.56 36.518)" r="10.625">
|
||||
<stop id="stop8840" offset="0"/>
|
||||
<stop id="stop8842" style="stop-opacity:0" offset="1"/>
|
||||
</radialGradient>
|
||||
</defs>
|
||||
<g id="layer1">
|
||||
<g id="g3275">
|
||||
<path id="path8836" style="opacity:.3;fill-rule:evenodd;fill:url(#radialGradient2419)" d="m47 40c0 4.418-10.297 8-23 8s-23-3.582-23-8 10.297-8 23-8 23 3.582 23 8z"/>
|
||||
<path id="path2555" style="stroke-linejoin:round;stroke:url(#linearGradient2416);stroke-linecap:round;stroke-width:1.0037;fill:url(#radialGradient2414)" d="m24 5.5018c-10.758 0-19.498 8.7402-19.498 19.498-0.0002 10.758 8.74 19.498 19.498 19.498s19.498-8.74 19.498-19.498-8.74-19.498-19.498-19.498z"/>
|
||||
<path id="path8655" style="opacity:.4;stroke:url(#linearGradient2411);fill:none" d="m42.5 24.999c0 10.218-8.283 18.501-18.5 18.501s-18.5-8.283-18.5-18.501c0-10.217 8.283-18.499 18.5-18.499s18.5 8.282 18.5 18.499z"/>
|
||||
</g>
|
||||
<g id="g3243" transform="translate(51.075 .56862)">
|
||||
<path id="path3295" style="opacity:.2" d="m-29.451 12.554c0.563 5.5 1.208 10.961 1.687 16.482h1.53c0.397-5.302 1.038-10.571 1.501-15.867 0.236-1.254-0.408-2.742-1.732-3.047-1.308-0.3824-2.77 0.565-2.944 1.918-0.029 0.17-0.042 0.342-0.042 0.514zm-0.167 22.359c-0.059 1.637 1.742 2.92 3.28 2.401 1.489-0.38 2.274-2.252 1.51-3.583-0.683-1.375-2.687-1.829-3.84-0.776-0.582 0.479-0.968 1.194-0.95 1.958z"/>
|
||||
<path id="text2315" style="fill:#fff" d="m-29.451 13.555c0.563 5.499 1.208 10.96 1.687 16.481h1.53c0.397-5.301 1.038-10.571 1.501-15.866 0.236-1.254-0.408-2.743-1.732-3.048-1.308-0.382-2.77 0.565-2.944 1.918-0.029 0.17-0.042 0.342-0.042 0.515zm-0.167 22.358c-0.059 1.637 1.742 2.921 3.28 2.402 1.489-0.381 2.274-2.253 1.51-3.584-0.683-1.375-2.687-1.828-3.84-0.776-0.582 0.479-0.968 1.194-0.95 1.958z"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 3.2 KiB |
34
artwork/GCS Icons/edit-delete.svg
Normal file
@ -0,0 +1,34 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
<svg id="svg2757" xmlns="http://www.w3.org/2000/svg" height="48" width="48" version="1.0" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<defs id="defs2759">
|
||||
<radialGradient id="radialGradient2436" gradientUnits="userSpaceOnUse" cy="4.625" cx="62.625" gradientTransform="matrix(2.1647 0 0 .75294 -111.56 36.518)" r="10.625">
|
||||
<stop id="stop8840" offset="0"/>
|
||||
<stop id="stop8842" style="stop-opacity:0" offset="1"/>
|
||||
</radialGradient>
|
||||
<linearGradient id="linearGradient2750" y2="3.0816" gradientUnits="userSpaceOnUse" x2="18.379" gradientTransform="matrix(.95844 0 0 .95844 .99752 1.9975)" y1="44.98" x1="18.379">
|
||||
<stop id="stop2492" style="stop-color:#791235" offset="0"/>
|
||||
<stop id="stop2494" style="stop-color:#dd3b27" offset="1"/>
|
||||
</linearGradient>
|
||||
<radialGradient id="radialGradient2748" gradientUnits="userSpaceOnUse" cy="3.99" cx="23.896" gradientTransform="matrix(0 2.2875 -3.0194 0 36.047 -50.63)" r="20.397">
|
||||
<stop id="stop3244" style="stop-color:#f8b17e" offset="0"/>
|
||||
<stop id="stop3246" style="stop-color:#e35d4f" offset=".26238"/>
|
||||
<stop id="stop3248" style="stop-color:#c6262e" offset=".66094"/>
|
||||
<stop id="stop3250" style="stop-color:#690b54" offset="1"/>
|
||||
</radialGradient>
|
||||
<linearGradient id="linearGradient2745" y2="5.4676" gradientUnits="userSpaceOnUse" x2="63.397" gradientTransform="matrix(2.1154 0 0 2.1153 -107.58 32.427)" y1="-12.489" x1="63.397">
|
||||
<stop id="stop4875" style="stop-color:#fff" offset="0"/>
|
||||
<stop id="stop4877" style="stop-color:#fff;stop-opacity:0" offset="1"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="linearGradient2742" y2="45.074" gradientUnits="userSpaceOnUse" x2="24.481" y1="5.0809" x1="24.481">
|
||||
<stop id="stop3783" style="stop-color:#fff" offset="0"/>
|
||||
<stop id="stop3785" style="stop-color:#fff;stop-opacity:0" offset="1"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<g id="layer1">
|
||||
<path id="path8836" style="opacity:.3;fill-rule:evenodd;fill:url(#radialGradient2436)" d="m47 40c0 4.418-10.297 8-23 8s-23-3.582-23-8 10.297-8 23-8 23 3.582 23 8z"/>
|
||||
<path id="path2555" style="stroke-linejoin:round;stroke:url(#linearGradient2750);stroke-linecap:round;stroke-width:1.0037;fill:url(#radialGradient2748)" d="m24 5.5018c-10.758 0-19.498 8.7402-19.498 19.498-0.0002 10.758 8.74 19.498 19.498 19.498s19.498-8.74 19.498-19.498-8.74-19.498-19.498-19.498zm0 6.2602c7.314 0 13.238 5.924 13.238 13.238 0 3.07-1.063 5.872-2.815 8.117l-16.773-19.738c1.885-1.031 4.049-1.617 6.35-1.617zm-10.603 5.331l16.713 19.648c-1.828 0.952-3.905 1.497-6.11 1.497-7.314 0-13.238-5.924-13.238-13.238 0-2.971 0.984-5.699 2.635-7.907z"/>
|
||||
<path id="path8655" style="opacity:.4;stroke:url(#linearGradient2745);fill:none" d="m42.5 24.999c0 10.218-8.283 18.501-18.5 18.501s-18.5-8.283-18.5-18.501c0-10.217 8.283-18.499 18.5-18.499s18.5 8.282 18.5 18.499z"/>
|
||||
<path id="path3270" style="opacity:.4;stroke:url(#linearGradient2742);stroke-linecap:round;stroke-width:1px;fill:none" d="m17.05 14.239l16.702 19.687"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 3.0 KiB |
37
artwork/GCS Icons/help-contents.svg
Normal file
@ -0,0 +1,37 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
<svg id="svg3675" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="48" width="48" version="1.0" xmlns:cc="http://creativecommons.org/ns#" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<metadata id="metadata29">
|
||||
<rdf:RDF>
|
||||
<cc:Work rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs id="defs3677">
|
||||
<linearGradient id="linearGradient2407" y2="5.4676" gradientUnits="userSpaceOnUse" x2="63.397" gradientTransform="matrix(2.1154 0 0 2.1153 -107.58 32.427)" y1="-12.489" x1="63.397">
|
||||
<stop id="stop4875" style="stop-color:#fff" offset="0"/>
|
||||
<stop id="stop4877" style="stop-color:#fff;stop-opacity:0" offset="1"/>
|
||||
</linearGradient>
|
||||
<radialGradient id="radialGradient2410" gradientUnits="userSpaceOnUse" cy="3.99" cx="23.896" gradientTransform="matrix(0 2.2875 -3.0194 0 36.047 -50.63)" r="20.397">
|
||||
<stop id="stop2778" style="stop-color:#8badea" offset="0"/>
|
||||
<stop id="stop2780" style="stop-color:#6396cd" offset=".26238"/>
|
||||
<stop id="stop2782" style="stop-color:#3b7caf" offset=".66094"/>
|
||||
<stop id="stop2784" style="stop-color:#194c70" offset="1"/>
|
||||
</radialGradient>
|
||||
<linearGradient id="linearGradient2412" y2="3.0816" gradientUnits="userSpaceOnUse" x2="18.379" gradientTransform="matrix(.95844 0 0 .95844 .99752 1.9975)" y1="44.98" x1="18.379">
|
||||
<stop id="stop2788" style="stop-color:#1f4b6a" offset="0"/>
|
||||
<stop id="stop2790" style="stop-color:#4083c2" offset="1"/>
|
||||
</linearGradient>
|
||||
<radialGradient id="radialGradient2415" gradientUnits="userSpaceOnUse" cy="4.625" cx="62.625" gradientTransform="matrix(2.1647 0 0 .75294 -111.56 36.518)" r="10.625">
|
||||
<stop id="stop8840" offset="0"/>
|
||||
<stop id="stop8842" style="stop-opacity:0" offset="1"/>
|
||||
</radialGradient>
|
||||
</defs>
|
||||
<path id="path8836" style="opacity:.3;fill-rule:evenodd;fill:url(#radialGradient2415)" d="m47 40c0 4.418-10.297 8-23 8s-23-3.582-23-8 10.297-8 23-8 23 3.582 23 8z"/>
|
||||
<path id="path2555" style="stroke-linejoin:round;stroke:url(#linearGradient2412);stroke-linecap:round;stroke-width:1.0037;fill:url(#radialGradient2410)" d="m24 5.5018c-10.758 0-19.498 8.7402-19.498 19.498-0.0002 10.758 8.74 19.498 19.498 19.498s19.498-8.74 19.498-19.498-8.74-19.498-19.498-19.498z"/>
|
||||
<path id="path8655" style="opacity:.4;stroke:url(#linearGradient2407);fill:none" d="m42.5 24.999c0 10.218-8.283 18.501-18.5 18.501s-18.5-8.283-18.5-18.501c0-10.217 8.283-18.499 18.5-18.499s18.5 8.282 18.5 18.499z"/>
|
||||
<path id="path9053" style="opacity:.2" d="m24.91 30.164c-0.066-2.359 0.463-4.649 2.691-6.271 2.354-1.834 4.621-4.129 4.382-6.835-0.053-2.609-3.093-4.653-6.368-4.947-3.684-0.511-8.142 0.751-9.377 3.629-0.626 1.399-0.045 3.91 2.056 3.91 1.229 0 1.794-0.794 1.887-1.521 0.07-0.549-0.156-1.04-0.289-1.494-0.152-0.517 0.496-1.519 1.202-1.928 0.59-0.341 1.207-0.455 1.298-0.477 2.118-0.509 4.229 0.615 5.11 1.984 0.881 1.368-0.088 3.444-1.482 5.463-1.395 2.018-2.891 4.311-2.885 6.746 0 0.928-0.082 1.243-0.024 1.618 0.047 0.299 1.039 0.263 1.799 0.123zm-0.966 3.174c-2.025-0.11-3.427 2.186-2.211 3.649 1.087 1.615 4.133 1.217 4.656-0.612 0.542-1.423-0.764-3.06-2.445-3.037z"/>
|
||||
<path id="path3298" style="fill:#fff" d="m24.91 31.164c-0.066-2.359 0.463-4.649 2.691-6.271 2.354-1.834 4.621-4.129 4.382-6.835-0.053-2.609-3.093-4.653-6.368-4.947-3.684-0.511-8.142 0.751-9.377 3.629-0.626 1.399-0.045 3.91 2.056 3.91 1.229 0 1.794-0.794 1.887-1.521 0.07-0.549-0.156-1.04-0.289-1.494-0.152-0.517 0.496-1.519 1.202-1.928 0.59-0.341 1.207-0.455 1.298-0.477 2.118-0.509 4.229 0.615 5.11 1.984 0.881 1.368-0.088 3.444-1.482 5.463-1.395 2.018-2.891 4.311-2.885 6.746 0 0.928-0.082 1.243-0.024 1.618 0.047 0.299 1.039 0.263 1.799 0.123zm-0.966 3.174c-2.025-0.11-3.427 2.186-2.211 3.649 1.087 1.615 4.133 1.217 4.656-0.612 0.542-1.423-0.764-3.06-2.445-3.037z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 4.0 KiB |
33
artwork/GCS Icons/help-hint.svg
Normal file
@ -0,0 +1,33 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
<svg id="svg2515" xmlns="http://www.w3.org/2000/svg" height="48" width="48" version="1.0" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<defs id="defs2517">
|
||||
<radialGradient id="radialGradient2415" gradientUnits="userSpaceOnUse" cy="4.625" cx="62.625" gradientTransform="matrix(2.1647 0 0 .75294 -111.56 36.518)" r="10.625">
|
||||
<stop id="stop8840" offset="0"/>
|
||||
<stop id="stop8842" style="stop-opacity:0" offset="1"/>
|
||||
</radialGradient>
|
||||
<linearGradient id="linearGradient2412" y2="3.0816" gradientUnits="userSpaceOnUse" x2="18.379" gradientTransform="matrix(.95844 0 0 .95844 .99752 1.9975)" y1="44.98" x1="18.379">
|
||||
<stop id="stop2788" style="stop-color:#1f4b6a" offset="0"/>
|
||||
<stop id="stop2790" style="stop-color:#4083c2" offset="1"/>
|
||||
</linearGradient>
|
||||
<radialGradient id="radialGradient2410" gradientUnits="userSpaceOnUse" cy="3.99" cx="23.896" gradientTransform="matrix(0 2.2875 -3.0194 0 36.047 -50.63)" r="20.397">
|
||||
<stop id="stop2778" style="stop-color:#8badea" offset="0"/>
|
||||
<stop id="stop2780" style="stop-color:#6396cd" offset=".26238"/>
|
||||
<stop id="stop2782" style="stop-color:#3b7caf" offset=".66094"/>
|
||||
<stop id="stop2784" style="stop-color:#194c70" offset="1"/>
|
||||
</radialGradient>
|
||||
<linearGradient id="linearGradient2407" y2="5.4676" gradientUnits="userSpaceOnUse" x2="63.397" gradientTransform="matrix(2.1154 0 0 2.1153 -107.58 32.427)" y1="-12.489" x1="63.397">
|
||||
<stop id="stop4875" style="stop-color:#fff" offset="0"/>
|
||||
<stop id="stop4877" style="stop-color:#fff;stop-opacity:0" offset="1"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<g id="layer1">
|
||||
<path id="path8836" style="opacity:.3;fill-rule:evenodd;fill:url(#radialGradient2415)" d="m47 40c0 4.418-10.297 8-23 8s-23-3.582-23-8 10.297-8 23-8 23 3.582 23 8z"/>
|
||||
<path id="path2555" style="stroke-linejoin:round;stroke:url(#linearGradient2412);stroke-linecap:round;stroke-width:1.0037;fill:url(#radialGradient2410)" d="m24 5.5018c-10.758 0-19.498 8.7402-19.498 19.498-0.0002 10.758 8.74 19.498 19.498 19.498s19.498-8.74 19.498-19.498-8.74-19.498-19.498-19.498z"/>
|
||||
<path id="path8655" style="opacity:.4;stroke:url(#linearGradient2407);fill:none" d="m42.5 24.999c0 10.218-8.283 18.501-18.5 18.501s-18.5-8.283-18.5-18.501c0-10.217 8.283-18.499 18.5-18.499s18.5 8.282 18.5 18.499z"/>
|
||||
<g id="g3243" transform="translate(51.075 .56862)">
|
||||
<path id="path3295" style="opacity:.2" d="m-29.451 12.554c0.563 5.5 1.208 10.961 1.687 16.482h1.53c0.397-5.302 1.038-10.571 1.501-15.867 0.236-1.254-0.408-2.742-1.732-3.047-1.308-0.3824-2.77 0.565-2.944 1.918-0.029 0.17-0.042 0.342-0.042 0.514zm-0.167 22.359c-0.059 1.637 1.742 2.92 3.28 2.401 1.489-0.38 2.274-2.252 1.51-3.583-0.683-1.375-2.687-1.829-3.84-0.776-0.582 0.479-0.968 1.194-0.95 1.958z"/>
|
||||
<path id="text2315" style="fill:#fff" d="m-29.451 13.555c0.563 5.499 1.208 10.96 1.687 16.481h1.53c0.397-5.301 1.038-10.571 1.501-15.866 0.236-1.254-0.408-2.743-1.732-3.048-1.308-0.382-2.77 0.565-2.944 1.918-0.029 0.17-0.042 0.342-0.042 0.515zm-0.167 22.358c-0.059 1.637 1.742 2.921 3.28 2.402 1.489-0.381 2.274-2.253 1.51-3.584-0.683-1.375-2.687-1.828-3.84-0.776-0.582 0.479-0.968 1.194-0.95 1.958z"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 3.2 KiB |
91
artwork/GCS Icons/icon-checkbox.svg
Normal file
@ -0,0 +1,91 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
version="1.1"
|
||||
width="48"
|
||||
height="48"
|
||||
id="svg2448">
|
||||
<defs
|
||||
id="defs2450">
|
||||
<linearGradient
|
||||
id="linearGradient8662">
|
||||
<stop
|
||||
id="stop8664"
|
||||
style="stop-color:black;stop-opacity:1"
|
||||
offset="0" />
|
||||
<stop
|
||||
id="stop8666"
|
||||
style="stop-color:black;stop-opacity:0"
|
||||
offset="1" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
cx="24.837126"
|
||||
cy="36.421127"
|
||||
r="15.644737"
|
||||
fx="24.837126"
|
||||
fy="36.421127"
|
||||
id="radialGradient1444"
|
||||
xlink:href="#linearGradient8662"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" />
|
||||
<linearGradient
|
||||
id="linearGradient2264">
|
||||
<stop
|
||||
id="stop2266"
|
||||
style="stop-color:#d7e866;stop-opacity:1"
|
||||
offset="0" />
|
||||
<stop
|
||||
id="stop2268"
|
||||
style="stop-color:#8cab2a;stop-opacity:1"
|
||||
offset="1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
x1="-84.343536"
|
||||
y1="-5.3878593"
|
||||
x2="-91.513138"
|
||||
y2="24.558243"
|
||||
id="linearGradient2628"
|
||||
xlink:href="#linearGradient2264"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.017301,-0.243559,0.243559,1.017301,110.52469,-7.9553513)" />
|
||||
<linearGradient
|
||||
id="linearGradient3400">
|
||||
<stop
|
||||
id="stop3402"
|
||||
style="stop-color:white;stop-opacity:1"
|
||||
offset="0" />
|
||||
<stop
|
||||
id="stop3404"
|
||||
style="stop-color:white;stop-opacity:0"
|
||||
offset="1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
x1="20.494444"
|
||||
y1="6.0097799"
|
||||
x2="20.494444"
|
||||
y2="47.760197"
|
||||
id="linearGradient3406"
|
||||
xlink:href="#linearGradient3400"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
</defs>
|
||||
<g
|
||||
id="layer1">
|
||||
<path
|
||||
d="m 40.481863,36.421127 a 15.644737,8.3968938 0 1 1 -31.2894745,0 15.644737,8.3968938 0 1 1 31.2894745,0 z"
|
||||
transform="matrix(1.214466,0,0,0.595458,-6.163846,20.31274)"
|
||||
id="path8660"
|
||||
style="opacity:0.20454544;color:black;fill:url(#radialGradient1444);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
|
||||
<path
|
||||
d="m 33.706448,5.4818293 c -0.559734,-0.056806 -1.116221,0.217337 -1.403811,0.7436469 L 20.049307,28.645074 12.17121,22.380993 c -0.701747,-0.383453 -1.577286,-0.136769 -1.960742,0.564978 l -3.5328714,4.535744 c -0.3834475,0.701741 -0.1254891,1.577017 0.5762529,1.960469 0,0 14.3844195,11.880283 14.4021675,11.889074 0.164469,0.08987 0.336465,0.135093 0.511297,0.157184 0.571121,0.07217 1.155595,-0.196162 1.449176,-0.733433 L 40.141725,10.519399 C 40.525176,9.8176549 40.267222,8.9423801 39.565474,8.558928 L 34.26311,5.6492257 C 34.087671,5.553362 33.893026,5.5007637 33.706448,5.4818293 z"
|
||||
id="path1542"
|
||||
style="fill:url(#linearGradient2628);fill-opacity:1;fill-rule:nonzero;stroke:#42770c;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
|
||||
<path
|
||||
d="M 32.938536,7.2012775 26.730268,18.60791 21.197213,28.668822 c -0.178482,0.181096 -0.123845,0.754094 -0.902701,0.952966 -0.538869,0.137595 -0.636352,-0.06289 -1.204172,-0.427914 l -6.950556,-5.492153 c -0.7733,-0.621665 -0.749753,-0.589365 -1.297288,-0.03737 L 8.0515824,27.18582 c -0.7518117,0.804672 -0.6353589,1.290849 0.3017539,1.891047 0,0 13.0781537,10.780055 13.0949407,10.788373 0.155564,0.085 0.0892,0.114145 0.757862,0.57814 0.428927,0.297637 0.807539,-0.647982 1.083435,-1.15286 L 39.190779,10.274963 C 39.55113,9.6155282 39.523767,9.624421 38.860008,9.2617466 L 34.11801,6.7472827 C 33.434075,6.3758505 33.430508,6.3800895 32.938536,7.2012775 z"
|
||||
id="path1544"
|
||||
style="opacity:0.4;fill:none;stroke:url(#linearGradient3406);stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 4.3 KiB |
390
artwork/GCS Icons/icon-gears.svg
Normal file
@ -0,0 +1,390 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
version="1.0"
|
||||
width="48"
|
||||
height="48"
|
||||
id="svg2527">
|
||||
<defs
|
||||
id="defs2529">
|
||||
<linearGradient
|
||||
id="linearGradient8838">
|
||||
<stop
|
||||
id="stop8840"
|
||||
style="stop-color:#000000;stop-opacity:1"
|
||||
offset="0" />
|
||||
<stop
|
||||
id="stop8842"
|
||||
style="stop-color:#000000;stop-opacity:0"
|
||||
offset="1" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
cx="62.625"
|
||||
cy="4.625"
|
||||
r="10.625"
|
||||
fx="62.625"
|
||||
fy="4.625"
|
||||
id="radialGradient2436"
|
||||
xlink:href="#linearGradient8838"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(2.1647059,0,0,0.7529402,-111.56471,36.517647)" />
|
||||
<linearGradient
|
||||
id="linearGradient3397">
|
||||
<stop
|
||||
id="stop3399"
|
||||
style="stop-color:#aaaaaa;stop-opacity:1"
|
||||
offset="0" />
|
||||
<stop
|
||||
id="stop3401"
|
||||
style="stop-color:#8c8c8c;stop-opacity:1"
|
||||
offset="1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
x1="37.201294"
|
||||
y1="1"
|
||||
x2="37.201294"
|
||||
y2="45"
|
||||
id="linearGradient2517"
|
||||
xlink:href="#linearGradient3397"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
x1="63.9995"
|
||||
y1="3.1001"
|
||||
x2="63.9995"
|
||||
y2="122.8994"
|
||||
id="linearGradient3309"
|
||||
gradientUnits="userSpaceOnUse">
|
||||
<stop
|
||||
id="stop3311"
|
||||
style="stop-color:#f6f6f6;stop-opacity:1"
|
||||
offset="0" />
|
||||
<stop
|
||||
id="stop3313"
|
||||
style="stop-color:#d2d2d2;stop-opacity:1"
|
||||
offset="1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
x1="20.758585"
|
||||
y1="1"
|
||||
x2="20.758585"
|
||||
y2="45.017357"
|
||||
id="linearGradient2515"
|
||||
xlink:href="#linearGradient3309"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
id="linearGradient5128">
|
||||
<stop
|
||||
id="stop5130"
|
||||
style="stop-color:#e5e5e5;stop-opacity:1"
|
||||
offset="0" />
|
||||
<stop
|
||||
id="stop5132"
|
||||
style="stop-color:#ababab;stop-opacity:1"
|
||||
offset="1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
x1="86.132919"
|
||||
y1="105.105"
|
||||
x2="84.63858"
|
||||
y2="20.895"
|
||||
id="linearGradient2512"
|
||||
xlink:href="#linearGradient5128"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.3244803,0,0,0.3244803,3.2332655,2.5577454)" />
|
||||
<radialGradient
|
||||
cx="6.702713"
|
||||
cy="73.615715"
|
||||
r="7.228416"
|
||||
fx="6.702713"
|
||||
fy="73.615715"
|
||||
id="radialGradient2538"
|
||||
xlink:href="#linearGradient10691"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(2.2134617,0,0,0.4842001,1.1638028,-7.1447362)" />
|
||||
<linearGradient
|
||||
id="linearGradient10691">
|
||||
<stop
|
||||
id="stop10693"
|
||||
style="stop-color:#000000;stop-opacity:1"
|
||||
offset="0" />
|
||||
<stop
|
||||
id="stop10695"
|
||||
style="stop-color:#000000;stop-opacity:0"
|
||||
offset="1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
x1="32.036148"
|
||||
y1="19"
|
||||
x2="32.036148"
|
||||
y2="47.012184"
|
||||
id="linearGradient3326"
|
||||
xlink:href="#linearGradient3309-8"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.93928017,0.34315123,-0.34315123,0.93928017,-1.7936946,-25.633934)" />
|
||||
<linearGradient
|
||||
x1="63.9995"
|
||||
y1="3.1001"
|
||||
x2="63.9995"
|
||||
y2="122.8994"
|
||||
id="linearGradient3309-8"
|
||||
gradientUnits="userSpaceOnUse">
|
||||
<stop
|
||||
id="stop3311-4"
|
||||
style="stop-color:#f6f6f6;stop-opacity:1"
|
||||
offset="0" />
|
||||
<stop
|
||||
id="stop3313-8"
|
||||
style="stop-color:#d2d2d2;stop-opacity:1"
|
||||
offset="1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
x1="25.922546"
|
||||
y1="19"
|
||||
x2="25.922546"
|
||||
y2="47.044857"
|
||||
id="linearGradient3328"
|
||||
xlink:href="#linearGradient3397-1"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.93928017,0.34315123,-0.34315123,0.93928017,-1.7936946,-25.633934)" />
|
||||
<linearGradient
|
||||
id="linearGradient3397-1">
|
||||
<stop
|
||||
id="stop3399-0"
|
||||
style="stop-color:#aaaaaa;stop-opacity:1"
|
||||
offset="0" />
|
||||
<stop
|
||||
id="stop3401-3"
|
||||
style="stop-color:#8c8c8c;stop-opacity:1"
|
||||
offset="1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient5128-0">
|
||||
<stop
|
||||
id="stop5130-4"
|
||||
style="stop-color:#ffffff;stop-opacity:1"
|
||||
offset="0" />
|
||||
<stop
|
||||
id="stop5132-4"
|
||||
style="stop-color:#959595;stop-opacity:1"
|
||||
offset="1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
x1="86.132919"
|
||||
y1="105.105"
|
||||
x2="84.63858"
|
||||
y2="20.895"
|
||||
id="linearGradient2868"
|
||||
xlink:href="#linearGradient5128-0"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.2014014,0,0,0.2014015,3.1103045,3.311705)" />
|
||||
<radialGradient
|
||||
cx="6.702713"
|
||||
cy="73.615715"
|
||||
r="7.228416"
|
||||
fx="6.702713"
|
||||
fy="73.615715"
|
||||
id="radialGradient2411"
|
||||
xlink:href="#linearGradient10691-8"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.660115,0,0,0.3458573,0.8727276,-3.9605294)" />
|
||||
<linearGradient
|
||||
id="linearGradient10691-8">
|
||||
<stop
|
||||
id="stop10693-6"
|
||||
style="stop-color:#000000;stop-opacity:1"
|
||||
offset="0" />
|
||||
<stop
|
||||
id="stop10695-0"
|
||||
style="stop-color:#000000;stop-opacity:0"
|
||||
offset="1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
x1="34"
|
||||
y1="1"
|
||||
x2="34"
|
||||
y2="23.00024"
|
||||
id="linearGradient3218"
|
||||
xlink:href="#linearGradient3309-4"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(-24.5,0)" />
|
||||
<linearGradient
|
||||
x1="63.9995"
|
||||
y1="3.1001"
|
||||
x2="63.9995"
|
||||
y2="122.8994"
|
||||
id="linearGradient3309-4"
|
||||
gradientUnits="userSpaceOnUse">
|
||||
<stop
|
||||
id="stop3311-8"
|
||||
style="stop-color:#f6f6f6;stop-opacity:1"
|
||||
offset="0" />
|
||||
<stop
|
||||
id="stop3313-88"
|
||||
style="stop-color:#d2d2d2;stop-opacity:1"
|
||||
offset="1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
x1="40"
|
||||
y1="1"
|
||||
x2="40"
|
||||
y2="23.019524"
|
||||
id="linearGradient3228"
|
||||
xlink:href="#linearGradient3397-9"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(-24.5,0)" />
|
||||
<linearGradient
|
||||
id="linearGradient3397-9">
|
||||
<stop
|
||||
id="stop3399-7"
|
||||
style="stop-color:#aaaaaa;stop-opacity:1"
|
||||
offset="0" />
|
||||
<stop
|
||||
id="stop3401-7"
|
||||
style="stop-color:#8c8c8c;stop-opacity:1"
|
||||
offset="1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
x1="86.132919"
|
||||
y1="105.105"
|
||||
x2="84.63858"
|
||||
y2="20.895"
|
||||
id="linearGradient3241"
|
||||
xlink:href="#linearGradient5128-6"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.1562313,0,0,0.1562313,2.0012016,2.1574324)" />
|
||||
<linearGradient
|
||||
id="linearGradient5128-6">
|
||||
<stop
|
||||
id="stop5130-43"
|
||||
style="stop-color:#eeeeee;stop-opacity:1"
|
||||
offset="0" />
|
||||
<stop
|
||||
id="stop5132-0"
|
||||
style="stop-color:#a2a2a2;stop-opacity:1"
|
||||
offset="1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
x1="25"
|
||||
y1="0"
|
||||
x2="25"
|
||||
y2="16.000105"
|
||||
id="linearGradient3262"
|
||||
xlink:href="#linearGradient3309-6"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(-17.058189,0)" />
|
||||
<linearGradient
|
||||
x1="63.9995"
|
||||
y1="3.1001"
|
||||
x2="63.9995"
|
||||
y2="122.8994"
|
||||
id="linearGradient3309-6"
|
||||
gradientUnits="userSpaceOnUse">
|
||||
<stop
|
||||
id="stop3311-2"
|
||||
style="stop-color:#f6f6f6;stop-opacity:1"
|
||||
offset="0" />
|
||||
<stop
|
||||
id="stop3313-9"
|
||||
style="stop-color:#cccccc;stop-opacity:1"
|
||||
offset="1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
x1="21"
|
||||
y1="0"
|
||||
x2="21"
|
||||
y2="16.004715"
|
||||
id="linearGradient3264"
|
||||
xlink:href="#linearGradient3397-90"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(-17.058189,0)" />
|
||||
<linearGradient
|
||||
id="linearGradient3397-90">
|
||||
<stop
|
||||
id="stop3399-8"
|
||||
style="stop-color:#aaaaaa;stop-opacity:1"
|
||||
offset="0" />
|
||||
<stop
|
||||
id="stop3401-1"
|
||||
style="stop-color:#8c8c8c;stop-opacity:1"
|
||||
offset="1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
x1="86.132919"
|
||||
y1="105.105"
|
||||
x2="84.63858"
|
||||
y2="20.895"
|
||||
id="linearGradient3260"
|
||||
xlink:href="#linearGradient5128-3"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.09614231,0,0,0.09614231,1.8468935,1.9430362)" />
|
||||
<linearGradient
|
||||
id="linearGradient5128-3">
|
||||
<stop
|
||||
id="stop5130-1"
|
||||
style="stop-color:#e5e5e5;stop-opacity:1"
|
||||
offset="0" />
|
||||
<stop
|
||||
id="stop5132-1"
|
||||
style="stop-color:#ababab;stop-opacity:1"
|
||||
offset="1" />
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<g
|
||||
transform="translate(15.999999,12)"
|
||||
id="layer1">
|
||||
<path
|
||||
d="m 18.636572,2.5905216 c -0.703275,-0.2569307 -1.495689,0.08705 -1.752619,0.7903248 l -0.600515,1.6437399 c -0.499176,-0.013219 -0.993955,0.00248 -1.484533,0.056512 L 14.072373,3.5181351 C 13.756758,2.8391668 12.960838,2.5483897 12.28187,2.864003 L 8.3651471,4.6602954 C 7.6861782,4.9759083 7.3954033,5.7718319 7.7110151,6.4507982 l 0.726532,1.5629636 C 8.0724464,8.359396 7.744193,8.7441155 7.4266456,9.141602 L 5.8122578,8.5518108 C 5.1089821,8.2948801 4.3165666,8.6388602 4.0596381,9.3421356 L 2.5797984,13.392781 c -0.2569313,0.703275 0.1271272,1.477063 0.8304007,1.733991 l 1.6143878,0.589791 c -0.013469,0.508577 -0.010523,1.014295 0.045789,1.513885 l -1.5629633,0.726533 c -0.6789688,0.315613 -0.9697472,1.111534 -0.654132,1.790502 l 1.8363684,3.898094 c 0.3156123,0.678968 1.1115366,0.969744 1.7905029,0.654132 l 1.5629636,-0.726532 c 0.3402133,0.357549 0.7083491,0.688501 1.0984877,1.000178 l -0.6005147,1.64374 c -0.2569313,0.703275 0.1271291,1.477064 0.8304008,1.733991 l 4.0212927,1.469116 c 0.703276,0.256931 1.466338,-0.09777 1.723267,-0.801048 l 0.600515,-1.64374 c 0.508577,0.01347 1.014295,0.01052 1.513885,-0.04579 l 0.726532,1.562963 c 0.315614,0.678968 1.111534,0.969745 1.790502,0.654132 l 3.916723,-1.796292 c 0.678969,-0.315613 0.969742,-1.111538 0.654132,-1.790503 l -0.745161,-1.603039 c 0.357549,-0.340214 0.6885,-0.708349 1.000178,-1.098488 l 1.64374,0.600515 c 0.703276,0.25693 1.466338,-0.09778 1.723267,-0.801049 l 1.47984,-4.050645 c 0.256931,-0.703275 -0.09778,-1.466339 -0.801048,-1.723268 l -1.64374,-0.600514 c 0.01322,-0.499176 -0.0025,-0.993955 -0.05651,-1.484533 l 1.60304,-0.745162 C 29.20091,13.73813 29.491686,12.942208 29.176073,12.26324 L 27.339704,8.365146 C 27.024092,7.6861784 26.228168,7.3954 25.549202,7.711014 L 23.986239,8.4375465 C 23.640605,8.0724458 23.255886,7.7441924 22.858399,7.4266449 L 23.458914,5.782905 C 23.715845,5.0796306 23.361136,4.3165668 22.657865,4.0596378 L 18.636572,2.5905216 z M 17.20103,12.71252 c 1.81469,0.662968 2.74942,2.67382 2.086452,4.48851 -0.662969,1.814689 -2.673821,2.749419 -4.48851,2.086451 -1.814691,-0.662969 -2.74942,-2.673821 -2.086452,-4.48851 0.662968,-1.81469 2.673821,-2.74942 4.48851,-2.086451 z"
|
||||
id="rect2576"
|
||||
style="fill:url(#linearGradient3326);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient3328);stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:block;overflow:visible;enable-background:accumulate" />
|
||||
<path
|
||||
d="m 16.000001,7.9999996 c -4.411273,0 -7.9999985,3.5887274 -7.9999985,8.0000004 0,4.411274 3.5887255,8 7.9999985,8 C 20.411274,24 24,20.411274 24,16 24,11.588727 20.411274,7.9999996 16.000001,7.9999996 z m 0,3.6923094 c 2.377844,0 4.307693,1.929846 4.307693,4.307691 0,2.377847 -1.929849,4.307693 -4.307693,4.307693 -2.377846,0 -4.307691,-1.929846 -4.307691,-4.307693 0,-2.377845 1.929845,-4.307691 4.307691,-4.307691 z"
|
||||
id="path3315"
|
||||
style="opacity:0.05;fill:#000000;fill-opacity:1;stroke:none" />
|
||||
<path
|
||||
d="m 16.000001,7.6206906 c -4.620353,0 -8.3793085,3.7589574 -8.3793085,8.3793084 0,4.620352 3.7589555,8.37931 8.3793085,8.37931 4.620353,0 8.379309,-3.758958 8.379309,-8.37931 0,-4.620351 -3.758956,-8.3793084 -8.379309,-8.3793084 z"
|
||||
id="path28"
|
||||
style="fill:none;stroke:url(#linearGradient2868);stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none" />
|
||||
</g>
|
||||
<g
|
||||
transform="translate(2,-1)"
|
||||
id="layer1-3">
|
||||
<g
|
||||
id="g2486">
|
||||
<path
|
||||
d="M 10.1875,1.5 C 9.799134,1.5 9.5,1.7991339 9.5,2.1875 l 0,1.6875 C 8.988333,4.0322247 8.496816,4.2537684 8.03125,4.5 L 6.84375,3.3125 c -0.274616,-0.2746162 -0.725384,-0.2746162 -1,0 L 3.3125,5.84375 c -0.274616,0.2746162 -0.274616,0.7253836 0,1 L 4.5,8.03125 C 4.253769,8.4968155 4.032225,8.9883329 3.875,9.5 l -1.6875,0 C 1.799134,9.5 1.5,9.7991344 1.5,10.1875 l 0,3.625 C 1.5,14.200866 1.799134,14.5 2.1875,14.5 l 1.6875,0 c 0.157225,0.511667 0.378769,1.003185 0.625,1.46875 l -1.1875,1.1875 c -0.274616,0.274616 -0.274616,0.725384 0,1 l 2.53125,2.53125 c 0.274616,0.274616 0.725384,0.274616 1,0 L 8.03125,19.5 C 8.496816,19.746232 8.988333,19.967775 9.5,20.125 l 0,1.6875 c 0,0.388366 0.299135,0.6875 0.6875,0.6875 l 3.625,0 c 0.388366,0 0.6875,-0.299134 0.6875,-0.6875 l 0,-1.6875 c 0.511667,-0.157225 1.003185,-0.378768 1.46875,-0.625 l 1.1875,1.1875 c 0.274616,0.274616 0.725384,0.274616 1,0 l 2.53125,-2.53125 c 0.274616,-0.274616 0.274616,-0.725384 0,-1 L 19.5,15.96875 C 19.746232,15.503185 19.967775,15.011667 20.125,14.5 l 1.6875,0 c 0.388366,0 0.6875,-0.299134 0.6875,-0.6875 l 0,-3.625 C 22.5,9.7991341 22.200866,9.5 21.8125,9.5 l -1.6875,0 C 19.967775,8.9883329 19.746232,8.4968155 19.5,8.03125 l 1.1875,-1.1875 c 0.274616,-0.2746162 0.274616,-0.7253837 0,-1 L 18.15625,3.3125 c -0.274616,-0.2746162 -0.725384,-0.2746162 -1,0 L 15.96875,4.5 C 15.503185,4.2537684 15.011667,4.0322247 14.5,3.875 l 0,-1.6875 C 14.5,1.7991341 14.200866,1.5 13.8125,1.5 l -3.625,0 z M 12,9 c 1.656,0 3,1.344 3,3 0,1.656 -1.344,3 -3,3 -1.656,0 -3,-1.344 -3,-3 0,-1.656 1.344,-3 3,-3 z"
|
||||
id="rect2426"
|
||||
style="fill:url(#linearGradient3218);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient3228);stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:block;overflow:visible;enable-background:accumulate" />
|
||||
<path
|
||||
d="m 12,6 c -3.3084557,-2e-7 -5.9999999,2.6915446 -5.9999999,6 0,3.308455 2.6915442,6 5.9999999,6 3.308455,-1e-6 6,-2.691545 6,-6 0,-3.3084554 -2.691545,-6 -6,-6 z m 0,2.7692308 c 1.783385,0 3.230769,1.4473842 3.230769,3.2307692 0,1.783385 -1.447384,3.230769 -3.230769,3.230769 -1.783385,0 -3.2307692,-1.447384 -3.2307692,-3.230769 0,-1.783385 1.4473842,-3.2307692 3.2307692,-3.2307692 z"
|
||||
id="path3315-9"
|
||||
style="opacity:0.05;fill:#000000;fill-opacity:1;stroke:none" />
|
||||
<path
|
||||
d="m 11.999999,5.4999995 c -3.5840997,0 -6.4999994,2.9158997 -6.4999994,6.4999995 C 5.4999996,15.5841 8.4158993,18.5 11.999999,18.5 15.584101,18.5 18.5,15.5841 18.5,11.999999 18.5,8.4158992 15.584101,5.4999995 11.999999,5.4999995 z"
|
||||
id="path28-2"
|
||||
style="fill:none;stroke:url(#linearGradient3241);stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
transform="translate(3,29)"
|
||||
id="layer1-0">
|
||||
<g
|
||||
id="g2479">
|
||||
<path
|
||||
d="M 6.9375,0.5 C 6.6890831,0.5 6.5,0.68908218 6.5,0.9375 l 0,1.25 C 5.9460971,2.3297005 5.448836,2.5593783 4.96875,2.84375 L 4.0625,1.9375 c -0.1756569,-0.1756579 -0.449342,-0.1756579 -0.625,0 l -1.5,1.5 c -0.175657,0.1756579 -0.175657,0.4493421 0,0.625 L 2.84375,4.96875 C 2.5593789,5.4488356 2.329701,5.9460968 2.1875,6.5 l -1.25,0 C 0.68908301,6.5 0.5,6.6890821 0.5,6.9375 l 0,2.125 c 1e-8,0.2484178 0.189083,0.4375 0.4375,0.4375 l 1.25,0 c 0.1422009,0.553903 0.371879,1.051164 0.65625,1.53125 L 1.9375,11.9375 c -0.175657,0.175658 -0.175657,0.449342 0,0.625 l 1.5,1.5 c 0.1756579,0.175658 0.449342,0.175658 0.625,0 L 4.96875,13.15625 C 5.4488361,13.440622 5.946097,13.6703 6.5,13.8125 l 0,1.25 c 1e-7,0.248418 0.189083,0.4375 0.4375,0.4375 l 2.125,0 C 9.3109176,15.5 9.5,15.310918 9.5,15.0625 l 0,-1.25 c 0.553903,-0.1422 1.051164,-0.371878 1.53125,-0.65625 l 0.90625,0.90625 c 0.175658,0.175658 0.449342,0.175658 0.625,0 l 1.5,-1.5 c 0.175658,-0.175658 0.175658,-0.449342 0,-0.625 L 13.15625,11.03125 C 13.440622,10.551164 13.6703,10.053903 13.8125,9.5 l 1.25,0 C 15.310918,9.5 15.5,9.3109174 15.5,9.0625 l 0,-2.125 C 15.5,6.6890822 15.310917,6.5 15.0625,6.5 l -1.25,0 C 13.6703,5.9460968 13.440622,5.4488356 13.15625,4.96875 L 14.0625,4.0625 c 0.175658,-0.1756579 0.175658,-0.449342 0,-0.625 l -1.5,-1.5 c -0.175658,-0.1756579 -0.449342,-0.1756579 -0.625,0 L 11.03125,2.84375 C 10.551164,2.5593783 10.053903,2.3297005 9.5,2.1875 l 0,-1.25 C 9.4999996,0.68908218 9.310918,0.5 9.0625,0.5 l -2.125,0 z M 8,6 c 1.104,0 2,0.896 2,2 0,1.104 -0.896,2 -2,2 C 6.896,10 6,9.104 6,8 6,6.896 6.896,6 8,6 z"
|
||||
id="path2426"
|
||||
style="fill:url(#linearGradient3262);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient3264);stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:block;overflow:visible;enable-background:accumulate" />
|
||||
<path
|
||||
d="M 8,3.465116 C 5.4994229,3.465116 3.4651163,5.499423 3.4651163,8 3.4651163,10.500577 5.4994229,12.534884 8,12.534884 10.500576,12.534883 12.534884,10.500577 12.534884,8 12.534884,5.499423 10.500576,3.465116 8,3.465116 z M 8,5.55814 c 1.347907,0 2.44186,1.093953 2.44186,2.44186 0,1.347907 -1.093953,2.44186 -2.44186,2.44186 C 6.652093,10.44186 5.5581395,9.347907 5.5581395,8 5.5581395,6.652093 6.652093,5.55814 8,5.55814 z"
|
||||
id="path3315-3"
|
||||
style="opacity:0.05;fill:#000000;fill-opacity:1;stroke:none" />
|
||||
<path
|
||||
d="M 8.0000001,4 C 5.7943997,4 3.9999999,5.7944001 3.9999999,8.0000008 3.9999999,10.2056 5.7943997,12 8.0000001,12 10.2056,12 12,10.2056 12,8.0000008 12,5.7944001 10.2056,4 8.0000001,4 z"
|
||||
id="path28-4"
|
||||
style="fill:none;stroke:url(#linearGradient3260);stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 18 KiB |
131
artwork/GCS Icons/icon-info.svg
Normal file
@ -0,0 +1,131 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
<svg
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
version="1.0"
|
||||
width="48"
|
||||
height="48"
|
||||
id="svg3581">
|
||||
<defs
|
||||
id="defs3583">
|
||||
<linearGradient
|
||||
id="linearGradient8838">
|
||||
<stop
|
||||
id="stop8840"
|
||||
style="stop-color:#000000;stop-opacity:1"
|
||||
offset="0" />
|
||||
<stop
|
||||
id="stop8842"
|
||||
style="stop-color:#000000;stop-opacity:0"
|
||||
offset="1" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
cx="62.625"
|
||||
cy="4.625"
|
||||
r="10.625"
|
||||
fx="62.625"
|
||||
fy="4.625"
|
||||
id="radialGradient3534"
|
||||
xlink:href="#linearGradient8838"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(2.1647059,0,0,0.7529402,-111.56471,36.517647)" />
|
||||
<linearGradient
|
||||
id="linearGradient2490-182-124">
|
||||
<stop
|
||||
id="stop2788"
|
||||
style="stop-color:#1f4b6a;stop-opacity:1"
|
||||
offset="0" />
|
||||
<stop
|
||||
id="stop2790"
|
||||
style="stop-color:#4083c2;stop-opacity:1"
|
||||
offset="1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
x1="18.379412"
|
||||
y1="44.980297"
|
||||
x2="18.379412"
|
||||
y2="3.0816143"
|
||||
id="linearGradient3531"
|
||||
xlink:href="#linearGradient2490-182-124"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9584364,0,0,0.9584366,0.9975246,1.9975253)" />
|
||||
<linearGradient
|
||||
id="linearGradient3242-187-536">
|
||||
<stop
|
||||
id="stop2778"
|
||||
style="stop-color:#8badea;stop-opacity:1"
|
||||
offset="0" />
|
||||
<stop
|
||||
id="stop2780"
|
||||
style="stop-color:#6396cd;stop-opacity:1"
|
||||
offset="0.26238" />
|
||||
<stop
|
||||
id="stop2782"
|
||||
style="stop-color:#3b7caf;stop-opacity:1"
|
||||
offset="0.66093999" />
|
||||
<stop
|
||||
id="stop2784"
|
||||
style="stop-color:#194c70;stop-opacity:1"
|
||||
offset="1" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
cx="23.895569"
|
||||
cy="3.9900031"
|
||||
r="20.397499"
|
||||
fx="23.895569"
|
||||
fy="3.9900031"
|
||||
id="radialGradient3529"
|
||||
xlink:href="#linearGradient3242-187-536"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0,2.2874593,-3.0194057,0,36.047437,-50.630156)" />
|
||||
<linearGradient
|
||||
id="linearGradient4873">
|
||||
<stop
|
||||
id="stop4875"
|
||||
style="stop-color:#ffffff;stop-opacity:1"
|
||||
offset="0" />
|
||||
<stop
|
||||
id="stop4877"
|
||||
style="stop-color:#ffffff;stop-opacity:0"
|
||||
offset="1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
x1="63.397362"
|
||||
y1="-12.489107"
|
||||
x2="63.397362"
|
||||
y2="5.4675598"
|
||||
id="linearGradient3526"
|
||||
xlink:href="#linearGradient4873"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(2.1153735,0,0,2.1153253,-107.57709,32.426559)" />
|
||||
</defs>
|
||||
<g
|
||||
id="layer1">
|
||||
<path
|
||||
d="M 46.999997,40 C 46.999997,44.418278 36.702545,48 23.999997,48 C 11.297449,48 0.9999968,44.418278 0.9999968,40 C 0.9999968,35.581722 11.297449,32 23.999997,32 C 36.702545,32 46.999997,35.581722 46.999997,40 L 46.999997,40 z"
|
||||
id="path8836"
|
||||
style="opacity:0.3;fill:url(#radialGradient3534);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999988;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
|
||||
<path
|
||||
d="M 24.000002,5.5018088 C 13.241573,5.5018088 4.5018088,14.24157 4.5018088,25 C 4.5018088,35.75843 13.241573,44.498195 24.000002,44.498192 C 34.758427,44.498192 43.498201,35.75843 43.498191,25 C 43.498191,14.24157 34.758427,5.5018088 24.000002,5.5018088 z"
|
||||
id="path2555"
|
||||
style="fill:url(#radialGradient3529);fill-opacity:1;stroke:url(#linearGradient3531);stroke-width:1.003654;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
|
||||
<path
|
||||
d="M 42.500002,24.999344 C 42.500002,35.216942 34.21666,43.5 24.000235,43.5 C 13.782875,43.5 5.5000003,35.216848 5.5000003,24.999344 C 5.5000003,14.782219 13.782875,6.5000001 24.000235,6.5000001 C 34.21666,6.5000001 42.500002,14.782219 42.500002,24.999344 L 42.500002,24.999344 z"
|
||||
id="path8655"
|
||||
style="opacity:0.4;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient3526);stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<g
|
||||
transform="translate(-2.507855,0)"
|
||||
id="g3538">
|
||||
<path
|
||||
d="M 20.507855,24.213243 C 20.766006,24.915016 21.056573,25.483856 21.675512,24.706045 C 22.442859,24.249493 25.013952,22.248288 24.756683,24.208513 C 23.93342,27.835795 22.931327,31.424931 22.165113,35.063385 C 21.363928,37.055603 23.183263,38.857649 25.082782,37.562099 C 27.101847,36.729758 28.839248,35.374018 30.614199,34.130331 C 30.372019,33.536398 30.210602,32.683218 29.541434,33.459946 C 28.662781,33.858755 26.743708,35.738993 26.387179,34.188218 C 27.125239,30.260529 28.492698,26.478234 29.366801,22.58186 C 30.171202,20.790317 28.857456,18.526637 26.890929,20.008625 C 24.534979,21.034718 22.564787,22.710882 20.507855,24.213243 z M 29.251545,11.003077 C 26.847779,10.875511 25.591007,14.750449 27.87529,15.810806 C 29.728512,16.57083 31.746339,14.670114 31.293604,12.770861 C 31.153105,11.781904 30.26521,10.96981 29.251546,11.003077 L 29.251545,11.003077 z"
|
||||
id="text3482"
|
||||
style="font-size:40px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;opacity:0.2;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:URW Palladio L;-inkscape-font-specification:URW Palladio L Bold" />
|
||||
<path
|
||||
d="M 20.507855,25.213243 C 20.766006,25.915016 21.056573,26.483856 21.675512,25.706045 C 22.442859,25.249493 25.013952,23.248288 24.756683,25.208513 C 23.93342,28.835795 22.931327,32.424931 22.165113,36.063385 C 21.363928,38.055603 23.183263,39.857649 25.082782,38.562099 C 27.101847,37.729758 28.839248,36.374018 30.614199,35.130331 C 30.372019,34.536398 30.210602,33.683218 29.541434,34.459946 C 28.662781,34.858755 26.743708,36.738993 26.387179,35.188218 C 27.125239,31.260529 28.492698,27.478234 29.366801,23.58186 C 30.171202,21.790317 28.857456,19.526637 26.890929,21.008625 C 24.534979,22.034718 22.564787,23.710882 20.507855,25.213243 z M 29.251545,12.003077 C 26.847779,11.875511 25.591007,15.750449 27.87529,16.810806 C 29.728512,17.57083 31.746339,15.670114 31.293604,13.770861 C 31.153105,12.781904 30.26521,11.96981 29.251546,12.003077 L 29.251545,12.003077 z"
|
||||
id="path3536"
|
||||
style="font-size:40px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:URW Palladio L;-inkscape-font-specification:URW Palladio L Bold" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 7.2 KiB |
230
artwork/GCS Icons/icon-refresh.svg
Normal file
@ -0,0 +1,230 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
version="1.1"
|
||||
width="48"
|
||||
height="48"
|
||||
id="svg2474">
|
||||
<metadata
|
||||
id="metadata33">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs2476">
|
||||
<linearGradient
|
||||
id="linearGradient3533">
|
||||
<stop
|
||||
id="stop3535"
|
||||
style="stop-color:#93b9dd;stop-opacity:1"
|
||||
offset="0" />
|
||||
<stop
|
||||
id="stop3545"
|
||||
style="stop-color:#6396cd;stop-opacity:1"
|
||||
offset="1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient3266">
|
||||
<stop
|
||||
id="stop3268"
|
||||
style="stop-color:#387ab8;stop-opacity:1"
|
||||
offset="0" />
|
||||
<stop
|
||||
id="stop3270"
|
||||
style="stop-color:#387ab8;stop-opacity:0"
|
||||
offset="1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient3276">
|
||||
<stop
|
||||
id="stop3278"
|
||||
style="stop-color:#6396cd;stop-opacity:1"
|
||||
offset="0" />
|
||||
<stop
|
||||
id="stop3280"
|
||||
style="stop-color:#83acd5;stop-opacity:0"
|
||||
offset="1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
x1="108.5625"
|
||||
y1="102.78125"
|
||||
x2="108.5625"
|
||||
y2="71.78125"
|
||||
id="linearGradient5497"
|
||||
xlink:href="#linearGradient5491"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(-95.99949,-49.00038)" />
|
||||
<linearGradient
|
||||
id="linearGradient5491">
|
||||
<stop
|
||||
id="stop5493"
|
||||
style="stop-color:#ffffff;stop-opacity:1"
|
||||
offset="0" />
|
||||
<stop
|
||||
id="stop5495"
|
||||
style="stop-color:#ffffff;stop-opacity:0"
|
||||
offset="1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
x1="102.5625"
|
||||
y1="49.78125"
|
||||
x2="103.5625"
|
||||
y2="72.78125"
|
||||
id="linearGradient5480"
|
||||
xlink:href="#linearGradient5474"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(-95.99949,-49.00038)" />
|
||||
<linearGradient
|
||||
id="linearGradient5474">
|
||||
<stop
|
||||
id="stop5476"
|
||||
style="stop-color:#ffffff;stop-opacity:1"
|
||||
offset="0" />
|
||||
<stop
|
||||
id="stop5478"
|
||||
style="stop-color:#ffffff;stop-opacity:0"
|
||||
offset="1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
x1="118.47968"
|
||||
y1="55.060318"
|
||||
x2="118.47968"
|
||||
y2="91.941895"
|
||||
id="linearGradient4593-5-8-1-5-2"
|
||||
xlink:href="#linearGradient3533"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(-100.99949,-49.00038)" />
|
||||
<linearGradient
|
||||
x1="34.980953"
|
||||
y1="53.837799"
|
||||
x2="35.996098"
|
||||
y2="83.57618"
|
||||
id="linearGradient4593-5-8-1-5-2-3"
|
||||
xlink:href="#linearGradient3533"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(-5,0)" />
|
||||
<radialGradient
|
||||
cx="33.875"
|
||||
cy="197.29688"
|
||||
r="4.84375"
|
||||
fx="33.875"
|
||||
fy="197.29688"
|
||||
id="radialGradient5147-5"
|
||||
xlink:href="#linearGradient6462-6-8-548-9-2-7"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.33870968,0,130.47051)" />
|
||||
<linearGradient
|
||||
id="linearGradient6462-6-8-548-9-2-7">
|
||||
<stop
|
||||
id="stop6464-5-9-94-5-4-4"
|
||||
style="stop-color:#000000;stop-opacity:1"
|
||||
offset="0" />
|
||||
<stop
|
||||
id="stop6466-3-6-1-7-2-8"
|
||||
style="stop-color:#000000;stop-opacity:0"
|
||||
offset="1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient6462-6-8-548-9-5">
|
||||
<stop
|
||||
id="stop6464-5-9-94-5-8"
|
||||
style="stop-color:#000000;stop-opacity:1"
|
||||
offset="0" />
|
||||
<stop
|
||||
id="stop6466-3-6-1-7-5"
|
||||
style="stop-color:#000000;stop-opacity:0"
|
||||
offset="1" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
cx="33.875"
|
||||
cy="197.29688"
|
||||
r="4.84375"
|
||||
fx="33.875"
|
||||
fy="197.29688"
|
||||
id="radialGradient6081"
|
||||
xlink:href="#linearGradient6462-6-8-548-9-5"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.33870968,0,130.47051)" />
|
||||
<linearGradient
|
||||
x1="42.030777"
|
||||
y1="84.719109"
|
||||
x2="53.808601"
|
||||
y2="73.263672"
|
||||
id="linearGradient4008"
|
||||
xlink:href="#linearGradient3276"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(-5,0)" />
|
||||
<linearGradient
|
||||
x1="39.843277"
|
||||
y1="83.781609"
|
||||
x2="50.683601"
|
||||
y2="75.138672"
|
||||
id="linearGradient4018"
|
||||
xlink:href="#linearGradient3266"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
</defs>
|
||||
<path
|
||||
d="m 38.71875,197.29687 a 4.84375,1.640625 0 1 1 -9.6875,0 4.84375,1.640625 0 1 1 9.6875,0 z"
|
||||
transform="matrix(3.3032251,0,0,1.6761866,-89.458749,-288.73764)"
|
||||
id="path6460-6-4-4-3-3"
|
||||
style="opacity:0.2;color:#000000;fill:url(#radialGradient5147-5);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new" />
|
||||
<path
|
||||
d="M 46.405989,78.610714 A 13.125,13.125 0 0 1 33.62701,84.097034"
|
||||
transform="matrix(1.0666665,0,0,1.0666665,-14.49949,-51.367037)"
|
||||
id="path4010"
|
||||
style="color:#000000;fill:none;stroke:url(#linearGradient4018);stroke-width:8.43750095;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new" />
|
||||
<path
|
||||
d="m 38.71875,197.29687 a 4.84375,1.640625 0 1 1 -9.6875,0 4.84375,1.640625 0 1 1 9.6875,0 z"
|
||||
transform="matrix(4.541935,0,0,1.9809503,-131.42005,-348.86656)"
|
||||
id="path6460-6-4-4-4"
|
||||
style="opacity:0.1;color:#000000;fill:url(#radialGradient6081);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new" />
|
||||
<path
|
||||
d="M 35.542313,84.24974 A 13.125,13.125 0 1 1 47.171703,64.884866"
|
||||
transform="matrix(1.0666665,0,0,1.0666665,-14.49949,-51.367037)"
|
||||
id="path4788-6"
|
||||
style="color:#000000;fill:none;stroke:#387ab8;stroke-width:8.43750095;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new" />
|
||||
<path
|
||||
d="m 38.50051,9.4996196 0,11.0000004 -11,0"
|
||||
id="path4847"
|
||||
style="color:#000000;fill:none;stroke:#387ab8;stroke-width:7;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new" />
|
||||
<path
|
||||
d="m 46.386659,78.638476 a 13.125,13.125 0 0 1 -13.412517,5.34104"
|
||||
transform="matrix(1.0666665,0,0,1.0666665,-14.49949,-51.367037)"
|
||||
id="path4006"
|
||||
style="color:#000000;fill:none;stroke:url(#linearGradient4008);stroke-width:6.56250095;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new" />
|
||||
<path
|
||||
d="m 37.320778,84.13999 a 13.125,13.125 0 1 1 9.33779,-20.123155"
|
||||
transform="matrix(1.0666665,0,0,1.0666665,-14.49949,-51.367037)"
|
||||
id="path4788"
|
||||
style="color:#000000;fill:none;stroke:url(#linearGradient4593-5-8-1-5-2-3);stroke-width:6.56250095;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new" />
|
||||
<path
|
||||
d="m 38.50051,9.4996196 0,11.0000004 -11,0"
|
||||
id="path4847-1"
|
||||
style="color:#000000;fill:none;stroke:url(#linearGradient4593-5-8-1-5-2);stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new" />
|
||||
<path
|
||||
d="m 29.740794,33.593555 c -3.674085,2.533277 -8.663315,2.652831 -12.552784,-0.06269 -5.010358,-3.498088 -6.216831,-10.333397 -2.718751,-15.34375 3.498091,-5.010353 10.3334,-6.216833 15.343751,-2.71875 1.16116,0.810688 2.10377,1.843969 2.875,3.03125 l -5.1875,0 c -1.056625,-0.01494 -2.028484,0.943269 -2.028484,2 0,1.056731 0.971859,2.014943 2.028484,2 l 11,0 c 1.062499,0.28125 2.062499,-0.71875 2,-2 l 0,-11.0000004 c 0.01671,-1.0680358 -0.963214,-2.0479629 -2.03125,-2.0312505 -0.06245,-0.00293 -0.125046,-0.00293 -0.1875,0 -0.982752,0.107995 -1.802514,1.0428108 -1.78125,2.0312505 l 0,4.0625004 c -0.9534,-1.127853 -2.06667,-2.152011 -3.28125,-3 l -0.09375,-0.0625 c -2.85203,-1.9610889 -6.0733,-2.9220479 -9.312501,-2.9687509 -5.46224,-0.07875 -10.90353,2.4568065 -14.2500005,7.2500009 -5.354351,7.669111 -3.450361,18.3019 4.2187505,23.65625 6.255407,4.367344 14.482569,3.905673 20.208772,-0.574695"
|
||||
id="path4788-2"
|
||||
style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;opacity:0.23999999;color:#000000;fill:none;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans" />
|
||||
<path
|
||||
d="m 36.50052,13.562118 c -0.9534,-1.127853 -2.06667,-2.152011 -3.28125,-3 l -0.0937,-0.0625 c -2.85203,-1.9610889 -6.0733,-2.9220479 -9.312501,-2.9687509 -5.46224,-0.07875 -10.90354,2.4568065 -14.2500105,7.2500009 -5.354351,7.669111 -3.450361,18.3019 4.2187505,23.65625"
|
||||
id="path4788-2-3"
|
||||
style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;opacity:0.3;color:#000000;fill:none;stroke:url(#linearGradient5480);stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans" />
|
||||
<path
|
||||
d="M 32.53183,30.81212 C 29.03374,35.822473 22.198429,37.028952 17.18808,33.53087 12.177699,30.032787 10.971229,23.197473 14.469309,18.18712 17.96742,13.176767 24.802729,11.970287 29.81308,15.46837"
|
||||
id="path4788-2-3-4"
|
||||
style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;opacity:0.3;color:#000000;fill:none;stroke:url(#linearGradient5497);stroke-width:1;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans" />
|
||||
</svg>
|
After Width: | Height: | Size: 12 KiB |
130
artwork/GCS Icons/icon-stop.svg
Normal file
@ -0,0 +1,130 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
version="1.0"
|
||||
width="48"
|
||||
height="48"
|
||||
id="svg3258">
|
||||
<defs
|
||||
id="defs3260">
|
||||
<linearGradient
|
||||
id="linearGradient8838">
|
||||
<stop
|
||||
id="stop8840"
|
||||
style="stop-color:black;stop-opacity:1"
|
||||
offset="0" />
|
||||
<stop
|
||||
id="stop8842"
|
||||
style="stop-color:black;stop-opacity:0"
|
||||
offset="1" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
cx="62.625"
|
||||
cy="4.625"
|
||||
r="10.625"
|
||||
fx="62.625"
|
||||
fy="4.625"
|
||||
id="radialGradient3254"
|
||||
xlink:href="#linearGradient8838"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(2.1647059,0,0,0.7529402,-111.56471,36.517647)" />
|
||||
<linearGradient
|
||||
id="linearGradient2490">
|
||||
<stop
|
||||
id="stop2492"
|
||||
style="stop-color:#791235;stop-opacity:1"
|
||||
offset="0" />
|
||||
<stop
|
||||
id="stop2494"
|
||||
style="stop-color:#dd3b27;stop-opacity:1"
|
||||
offset="1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
x1="18.379412"
|
||||
y1="44.980297"
|
||||
x2="18.379412"
|
||||
y2="3.0816143"
|
||||
id="linearGradient3251"
|
||||
xlink:href="#linearGradient2490"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9584364,0,0,0.9584366,0.9975246,1.9975253)" />
|
||||
<linearGradient
|
||||
id="linearGradient3242">
|
||||
<stop
|
||||
id="stop3244"
|
||||
style="stop-color:#f8b17e;stop-opacity:1"
|
||||
offset="0" />
|
||||
<stop
|
||||
id="stop3246"
|
||||
style="stop-color:#e35d4f;stop-opacity:1"
|
||||
offset="0.26238" />
|
||||
<stop
|
||||
id="stop3248"
|
||||
style="stop-color:#c6262e;stop-opacity:1"
|
||||
offset="0.66093999" />
|
||||
<stop
|
||||
id="stop3250"
|
||||
style="stop-color:#690b54;stop-opacity:1"
|
||||
offset="1" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
cx="23.895569"
|
||||
cy="3.9900031"
|
||||
r="20.397499"
|
||||
fx="23.895569"
|
||||
fy="3.9900031"
|
||||
id="radialGradient3249"
|
||||
xlink:href="#linearGradient3242"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0,2.2874593,-3.0194057,0,36.047437,-50.630156)" />
|
||||
<linearGradient
|
||||
id="linearGradient4873">
|
||||
<stop
|
||||
id="stop4875"
|
||||
style="stop-color:white;stop-opacity:1"
|
||||
offset="0" />
|
||||
<stop
|
||||
id="stop4877"
|
||||
style="stop-color:white;stop-opacity:0"
|
||||
offset="1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
x1="63.397362"
|
||||
y1="-12.489107"
|
||||
x2="63.397362"
|
||||
y2="5.4675598"
|
||||
id="linearGradient3246"
|
||||
xlink:href="#linearGradient4873"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(2.1153735,0,0,2.1153253,-107.57709,32.426559)" />
|
||||
</defs>
|
||||
<g
|
||||
id="layer1">
|
||||
<path
|
||||
d="m 46.999997,40 c 0,4.418278 -10.297452,8 -23,8 -12.702548,0 -23.0000002,-3.581722 -23.0000002,-8 0,-4.418278 10.2974522,-8 23.0000002,-8 12.702548,0 23,3.581722 23,8 l 0,0 z"
|
||||
id="path8836"
|
||||
style="opacity:0.3;fill:url(#radialGradient3254);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999988;marker:none;visibility:visible;display:inline;overflow:visible" />
|
||||
<path
|
||||
d="M 24.000002,5.5018088 C 13.241573,5.5018088 4.5018088,14.24157 4.5018088,25 c 0,10.75843 8.7397642,19.498195 19.4981932,19.498192 10.758425,0 19.498199,-8.739762 19.498189,-19.498192 0,-10.75843 -8.739764,-19.4981912 -19.498189,-19.4981912 z"
|
||||
id="path2555"
|
||||
style="fill:url(#radialGradient3249);fill-opacity:1;stroke:url(#linearGradient3251);stroke-width:1.003654;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
|
||||
<path
|
||||
d="M 42.500002,24.999344 C 42.500002,35.216942 34.21666,43.5 24.000235,43.5 13.782875,43.5 5.5000003,35.216848 5.5000003,24.999344 c 0,-10.217125 8.2828747,-18.4993439 18.5002347,-18.4993439 10.216425,0 18.499767,8.2822189 18.499767,18.4993439 l 0,0 z"
|
||||
id="path8655"
|
||||
style="opacity:0.4;fill:none;stroke:url(#linearGradient3246);stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
<path
|
||||
d="m -33.28125,16.3125 -2.96875,2.96875 6.125,6.09375 c 0.188168,0.19054 0.188168,0.49696 0,0.6875 l -6.125,6.09375 2.96875,2.96875 6.09375,-6.09375 c 0.19054,-0.188168 0.49696,-0.188168 0.6875,0 l 6.09375,6.09375 2.96875,-2.96875 -6.09375,-6.09375 c -0.188168,-0.19054 -0.188168,-0.49696 0,-0.6875 L -17.4375,19.28125 -20.40625,16.3125 -26.5,22.40625 c -0.19054,0.188168 -0.49696,0.188168 -0.6875,0 l -6.09375,-6.09375 z"
|
||||
transform="translate(50.84375,-2.1249996)"
|
||||
id="path3243"
|
||||
style="opacity:0.2;fill:black;fill-opacity:1;fill-rule:evenodd;stroke:none" />
|
||||
<path
|
||||
d="m -33.28125,16.3125 -2.96875,2.96875 6.125,6.09375 c 0.188168,0.19054 0.188168,0.49696 0,0.6875 l -6.125,6.09375 2.96875,2.96875 6.09375,-6.09375 c 0.19054,-0.188168 0.49696,-0.188168 0.6875,0 l 6.09375,6.09375 2.96875,-2.96875 -6.09375,-6.09375 c -0.188168,-0.19054 -0.188168,-0.49696 0,-0.6875 L -17.4375,19.28125 -20.40625,16.3125 -26.5,22.40625 c -0.19054,0.188168 -0.49696,0.188168 -0.6875,0 l -6.09375,-6.09375 z"
|
||||
transform="translate(50.84375,-1.1249996)"
|
||||
id="path3256"
|
||||
style="fill:white;fill-opacity:1;fill-rule:evenodd;stroke:none" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 5.4 KiB |
23
artwork/GCS Icons/window-close.svg
Normal file
@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
<svg id="svg2405" xmlns="http://www.w3.org/2000/svg" height="48" width="48" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<defs id="defs2407">
|
||||
<radialGradient id="radialGradient2177" gradientUnits="userSpaceOnUse" cy="35.127" cx="23.071" gradientTransform="matrix(.91481 .012650 -.0082150 .21356 2.2539 27.189)" r="10.319">
|
||||
<stop id="stop2093" offset="0"/>
|
||||
<stop id="stop2095" style="stop-opacity:0" offset="1"/>
|
||||
</radialGradient>
|
||||
<linearGradient id="linearGradient2181" y2="32.85" gradientUnits="userSpaceOnUse" x2="16.145" gradientTransform="matrix(1.0318 -1.0287 1.0318 1.0287 -26.553 23.964)" y1="17.13" x1="31.865">
|
||||
<stop id="stop7918" style="stop-color:#fff" offset="0"/>
|
||||
<stop id="stop7920" style="stop-color:#fff;stop-opacity:.34021" offset="1"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="linearGradient2179" y2="46.421" gradientUnits="userSpaceOnUse" x2="34.163" gradientTransform="matrix(1.0318 -1.0287 1.0318 1.0287 -59.146 28.538)" y1="30.701" x1="49.882">
|
||||
<stop id="stop1324" style="stop-color:#b4b4b4" offset="0"/>
|
||||
<stop id="stop1326" style="stop-color:#505050" offset="1"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<g id="layer1">
|
||||
<path id="path1361" style="opacity:.25571;fill:url(#radialGradient2177)" d="m33.278 34.941a10.319 2.3202 0 1 1 -20.639 0 10.319 2.3202 0 1 1 20.639 0z" transform="matrix(2.3012 0 0 1.919 -28.833 -24.805)"/>
|
||||
<path id="text1314" style="stroke-linejoin:round;stroke:#4d4d4d;stroke-width:.98170;fill:#555753" d="m41.892 35.011-10.392-10.017 10-10.494-7.209-6.5-10.291 10-10.5-10-7.5 6.739 10.5 10.212-10.5 10.049 7.5 7 10.488-10.5 10.512 10.5 7.392-6.989z"/>
|
||||
<path id="path7076" style="opacity:.40860;stroke-linejoin:round;stroke:url(#linearGradient2181);stroke-width:.98170;fill:url(#linearGradient2179)" d="m40.5 35-10.5-10 10-10.5-5.708-4.9586-10.292 9.9586-10.5-10-6 5.5 10.5 9.945-10.5 10.055 6 5.5 10.5-10.5 10.5 10.5 6-5.5z"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 436 KiB After Width: | Height: | Size: 438 KiB |
2208
artwork/PFD/pfd.svg
@ -14,7 +14,7 @@
|
||||
height="707.56323"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.47 r22583"
|
||||
inkscape:version="0.48.1 "
|
||||
sodipodi:docname="pfd.svg"
|
||||
style="display:inline"
|
||||
inkscape:export-filename="H:\Documents\Hobbies\OpenPilot\SVN\artwork\PFD-2.png"
|
||||
@ -1561,6 +1561,52 @@
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#SVGID_2_-8-6"
|
||||
id="linearGradient9715"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="311.81049"
|
||||
y1="255.11819"
|
||||
x2="311.81049"
|
||||
y2="5.6694002"
|
||||
gradientTransform="matrix(2.3120787,0,0,4.0093283,-610.5687,-120.59521)" />
|
||||
<linearGradient
|
||||
id="SVGID_2_-8-6"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="311.81049"
|
||||
y1="255.11819"
|
||||
x2="311.81049"
|
||||
y2="5.6694002">
|
||||
<stop
|
||||
offset="0"
|
||||
style="stop-color:#27AAE1"
|
||||
id="stop6282-4-5" />
|
||||
<stop
|
||||
offset="1"
|
||||
style="stop-color:#2B3990"
|
||||
id="stop6284-0-4" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3774"
|
||||
id="linearGradient5597"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,2.0069652,1.0784651e-5,-517.448)"
|
||||
x1="380.38251"
|
||||
y1="512.13574"
|
||||
x2="380.38251"
|
||||
y2="775.37415" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3758"
|
||||
id="linearGradient5599"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,1.6738023,1.0784651e-5,-514.72728)"
|
||||
x1="376.34192"
|
||||
y1="484.50259"
|
||||
x2="376.34192"
|
||||
y2="745.59497" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
@ -1569,16 +1615,16 @@
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="1.4"
|
||||
inkscape:cx="542.75891"
|
||||
inkscape:cy="127.43692"
|
||||
inkscape:zoom="0.73067675"
|
||||
inkscape:cx="305.98471"
|
||||
inkscape:cy="372.16908"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer6"
|
||||
inkscape:current-layer="layer3"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1280"
|
||||
inkscape:window-height="725"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-width="1366"
|
||||
inkscape:window-height="706"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
showguides="true"
|
||||
inkscape:guide-bbox="true"
|
||||
@ -1651,7 +1697,7 @@
|
||||
inkscape:groupmode="layer"
|
||||
id="layer7"
|
||||
inkscape:label="Background"
|
||||
style="display:inline"
|
||||
style="display:none"
|
||||
transform="translate(230.4171,-2.5493479)"
|
||||
sodipodi:insensitive="true">
|
||||
<rect
|
||||
@ -1672,185 +1718,286 @@
|
||||
style="display:inline"
|
||||
sodipodi:insensitive="true">
|
||||
<g
|
||||
transform="matrix(2.013443,0,0,1.5267412,-477.87461,-169.05952)"
|
||||
style="display:inline"
|
||||
id="world"
|
||||
inkscape:label="#g3042">
|
||||
<g
|
||||
id="g2887"
|
||||
transform="matrix(2.3026321,0,0,1,-495.46969,-2.6199594)">
|
||||
<g
|
||||
id="g4280"
|
||||
transform="translate(0,2.6199594)">
|
||||
<rect
|
||||
style="fill:url(#linearGradient4284);fill-opacity:1;stroke:none"
|
||||
id="rect3724"
|
||||
width="305.71429"
|
||||
height="654.98987"
|
||||
x="227.8495"
|
||||
y="509.42014"
|
||||
ry="0" />
|
||||
<rect
|
||||
rx="2.7755576e-17"
|
||||
ry="0"
|
||||
y="-145.56979"
|
||||
x="227.8495"
|
||||
height="654.98987"
|
||||
width="305.71429"
|
||||
id="rect2942"
|
||||
style="fill:url(#linearGradient4286);fill-opacity:1;stroke:none" />
|
||||
</g>
|
||||
<path
|
||||
style="fill:none;stroke:#ffffff;stroke-width:0.75173599;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 227.84948,512.09626 305,0"
|
||||
id="path3808" />
|
||||
</g>
|
||||
<g
|
||||
id="g3456"
|
||||
transform="translate(0,-2.5232082)">
|
||||
<path
|
||||
style="fill:none;stroke:#fff5f5;stroke-width:1.2823472;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
|
||||
d="m 369.18848,488.05969 21.97363,0"
|
||||
id="path2897" />
|
||||
<path
|
||||
id="path2899"
|
||||
d="m 369.51556,584.99713 21.31947,0"
|
||||
style="fill:none;stroke:#fff5f5;stroke-width:1.2823472;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
|
||||
<path
|
||||
id="path5881"
|
||||
d="m 369.18848,439.59096 21.97363,0"
|
||||
style="fill:none;stroke:#fff5f5;stroke-width:1.2823472;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
|
||||
<path
|
||||
style="fill:none;stroke:#fff5f5;stroke-width:1.2823472;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
|
||||
d="m 369.51556,536.52842 21.31947,0"
|
||||
id="path5883" />
|
||||
<g
|
||||
id="g3426">
|
||||
<path
|
||||
id="path3867"
|
||||
d="m 344.26359,415.3566 72.25318,0"
|
||||
style="fill:none;stroke:#fff5f5;stroke-width:2.5646944;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
|
||||
<text
|
||||
transform="scale(0.87078919,1.1483836)"
|
||||
id="text5911"
|
||||
y="364.95422"
|
||||
x="482.14175"
|
||||
style="font-size:22.81432533px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
|
||||
xml:space="preserve"><tspan
|
||||
style="font-size:9.12572956px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
y="364.95422"
|
||||
x="482.14175"
|
||||
id="tspan5913"
|
||||
sodipodi:role="line">20</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:22.81432533px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
|
||||
x="379.47711"
|
||||
y="364.95422"
|
||||
id="text5915"
|
||||
transform="scale(0.87078919,1.1483836)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan5917"
|
||||
x="379.47711"
|
||||
y="364.95422"
|
||||
style="font-size:9.12572956px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black">20</tspan></text>
|
||||
</g>
|
||||
<g
|
||||
transform="translate(0,-6.5505232)"
|
||||
id="g3433">
|
||||
<path
|
||||
style="fill:none;stroke:#fff5f5;stroke-width:2.5646944;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
|
||||
d="m 366.12884,470.37584 27.96785,0"
|
||||
id="path3777" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:22.81432533px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
|
||||
x="461.60883"
|
||||
y="412.86438"
|
||||
id="text5907"
|
||||
transform="scale(0.87078921,1.1483836)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan5909"
|
||||
x="461.60883"
|
||||
y="412.86438"
|
||||
style="font-size:9.12572956px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black">10</tspan></text>
|
||||
<text
|
||||
transform="scale(0.87078921,1.1483836)"
|
||||
id="text5919"
|
||||
y="412.86438"
|
||||
x="398.86932"
|
||||
style="font-size:22.81432533px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
|
||||
xml:space="preserve"><tspan
|
||||
style="font-size:9.12572956px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
y="412.86438"
|
||||
x="398.86932"
|
||||
id="tspan5921"
|
||||
sodipodi:role="line">10</tspan></text>
|
||||
</g>
|
||||
<g
|
||||
transform="translate(0,7.8592037)"
|
||||
id="g3440">
|
||||
<path
|
||||
id="path3869"
|
||||
d="m 366.12883,553.51 27.96786,0"
|
||||
style="fill:none;stroke:#fff5f5;stroke-width:2.5646944;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:22.81432533px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
|
||||
x="398.86932"
|
||||
y="484.72864"
|
||||
id="text5923"
|
||||
transform="scale(0.87078921,1.1483836)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan5925"
|
||||
x="398.86932"
|
||||
y="484.72864"
|
||||
style="font-size:9.12572956px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black">10</tspan></text>
|
||||
<text
|
||||
transform="scale(0.87078921,1.1483836)"
|
||||
id="text5927"
|
||||
y="484.72864"
|
||||
x="461.60883"
|
||||
style="font-size:22.81432533px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
|
||||
xml:space="preserve"><tspan
|
||||
style="font-size:9.12572956px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
y="484.72864"
|
||||
x="461.60883"
|
||||
id="tspan5929"
|
||||
sodipodi:role="line">10</tspan></text>
|
||||
</g>
|
||||
<g
|
||||
id="g3447">
|
||||
<path
|
||||
style="fill:none;stroke:#fff5f5;stroke-width:2.5646944;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
|
||||
d="m 344.26361,609.2315 72.25318,0"
|
||||
id="path5895" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:22.81432533px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
|
||||
x="482.14175"
|
||||
y="533.77838"
|
||||
id="text5931"
|
||||
transform="scale(0.87078921,1.1483836)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan5933"
|
||||
x="482.14175"
|
||||
y="533.77838"
|
||||
style="font-size:9.12572956px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black">20</tspan></text>
|
||||
<text
|
||||
transform="scale(0.87078921,1.1483836)"
|
||||
id="text5935"
|
||||
y="533.77838"
|
||||
x="379.47711"
|
||||
style="font-size:22.81432533px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
|
||||
xml:space="preserve"><tspan
|
||||
style="font-size:9.12572956px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
y="533.77838"
|
||||
x="379.47711"
|
||||
id="tspan5937"
|
||||
sodipodi:role="line">20</tspan></text>
|
||||
</g>
|
||||
transform="matrix(4.6362185,0,0,1.5267412,-1475.4746,-169.05952)"
|
||||
id="g4280">
|
||||
<rect
|
||||
ry="0"
|
||||
y="509.42014"
|
||||
x="227.8495"
|
||||
height="654.98987"
|
||||
width="305.71429"
|
||||
id="rect3724"
|
||||
style="fill:url(#linearGradient5597);fill-opacity:1;stroke:none" />
|
||||
<rect
|
||||
style="fill:url(#linearGradient5599);fill-opacity:1;stroke:none"
|
||||
id="rect2942"
|
||||
width="305.71429"
|
||||
height="654.98987"
|
||||
x="227.8495"
|
||||
y="-145.56979"
|
||||
ry="0"
|
||||
rx="2.7755576e-017" />
|
||||
</g>
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3808"
|
||||
d="m -419.11463,608.77894 1414.04665,0"
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
<text
|
||||
y="537.23804"
|
||||
x="201.93459"
|
||||
style="font-size:13.30799103px;fill:#ffffff;font-family:CenturyGothic"
|
||||
transform="scale(0.97685665,1.0236917)"
|
||||
font-size="13"
|
||||
id="text6388">10</text>
|
||||
<text
|
||||
y="537.23804"
|
||||
x="376.04211"
|
||||
style="font-size:13.30799103px;fill:#ffffff;font-family:CenturyGothic"
|
||||
transform="scale(0.97685665,1.0236917)"
|
||||
font-size="13"
|
||||
id="text6390">10</text>
|
||||
<line
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.04738331"
|
||||
x1="258.02176"
|
||||
y1="538.08423"
|
||||
x2="221.47374"
|
||||
y2="538.08423"
|
||||
id="line6404" />
|
||||
<line
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.04738331"
|
||||
x1="357.53674"
|
||||
y1="538.08423"
|
||||
x2="323.52075"
|
||||
y2="538.08423"
|
||||
id="line6406" />
|
||||
<line
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.04738331"
|
||||
x1="221.47374"
|
||||
y1="538.08423"
|
||||
x2="221.47374"
|
||||
y2="549.96582"
|
||||
id="line6408" />
|
||||
<line
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.04738331"
|
||||
x1="357.53674"
|
||||
y1="538.08319"
|
||||
x2="357.53674"
|
||||
y2="549.96582"
|
||||
id="line6410" />
|
||||
<text
|
||||
y="461.79126"
|
||||
x="201.93459"
|
||||
style="font-size:13.30799103px;fill:#ffffff;font-family:CenturyGothic"
|
||||
transform="scale(0.97685665,1.0236917)"
|
||||
font-size="13"
|
||||
id="text6412">20</text>
|
||||
<text
|
||||
y="461.79126"
|
||||
x="376.04211"
|
||||
style="font-size:13.30799103px;fill:#ffffff;font-family:CenturyGothic"
|
||||
transform="scale(0.97685665,1.0236917)"
|
||||
font-size="13"
|
||||
id="text6414">20</text>
|
||||
<line
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.04738331"
|
||||
x1="258.02176"
|
||||
y1="460.84964"
|
||||
x2="221.47374"
|
||||
y2="460.84964"
|
||||
id="line6416" />
|
||||
<line
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.04738331"
|
||||
x1="357.53674"
|
||||
y1="460.84964"
|
||||
x2="323.52075"
|
||||
y2="460.84964"
|
||||
id="line6418" />
|
||||
<line
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.04738331"
|
||||
x1="221.47374"
|
||||
y1="460.84964"
|
||||
x2="221.47374"
|
||||
y2="472.7323"
|
||||
id="line6420" />
|
||||
<line
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.04738331"
|
||||
x1="357.53674"
|
||||
y1="460.84964"
|
||||
x2="357.53674"
|
||||
y2="472.7323"
|
||||
id="line6422" />
|
||||
<text
|
||||
y="664.91711"
|
||||
x="199.72525"
|
||||
style="font-size:13.30799103px;fill:#ffffff;font-family:CenturyGothic"
|
||||
transform="scale(0.97685665,1.0236917)"
|
||||
font-size="13"
|
||||
id="text6424">-10</text>
|
||||
<text
|
||||
y="664.91711"
|
||||
x="373.83279"
|
||||
style="font-size:13.30799103px;fill:#ffffff;font-family:CenturyGothic"
|
||||
transform="scale(0.97685665,1.0236917)"
|
||||
font-size="13"
|
||||
id="text6426">-10</text>
|
||||
<line
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.04738331"
|
||||
x1="227.14275"
|
||||
y1="680.66962"
|
||||
x2="221.47374"
|
||||
y2="680.66962"
|
||||
id="line6428" />
|
||||
<line
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.04738331"
|
||||
x1="238.48073"
|
||||
y1="680.66962"
|
||||
x2="232.81174"
|
||||
y2="680.66962"
|
||||
id="line6430" />
|
||||
<line
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.04738331"
|
||||
x1="249.81975"
|
||||
y1="680.66962"
|
||||
x2="244.15074"
|
||||
y2="680.66962"
|
||||
id="line6432" />
|
||||
<line
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.04738331"
|
||||
x1="261.15875"
|
||||
y1="680.66962"
|
||||
x2="255.48973"
|
||||
y2="680.66962"
|
||||
id="line6434" />
|
||||
<line
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.04738331"
|
||||
x1="323.52075"
|
||||
y1="680.66962"
|
||||
x2="317.85077"
|
||||
y2="680.66962"
|
||||
id="line6436" />
|
||||
<line
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.04738331"
|
||||
x1="334.85876"
|
||||
y1="680.66962"
|
||||
x2="329.18976"
|
||||
y2="680.66962"
|
||||
id="line6438" />
|
||||
<line
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.04738331"
|
||||
x1="346.19775"
|
||||
y1="680.66962"
|
||||
x2="340.52875"
|
||||
y2="680.66962"
|
||||
id="line6440" />
|
||||
<line
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.04738331"
|
||||
x1="357.53674"
|
||||
y1="680.66962"
|
||||
x2="351.86777"
|
||||
y2="680.66962"
|
||||
id="line6442" />
|
||||
<line
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.04738331"
|
||||
x1="323.52075"
|
||||
y1="757.90527"
|
||||
x2="317.85077"
|
||||
y2="757.90527"
|
||||
id="line6444" />
|
||||
<line
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.04738331"
|
||||
x1="334.85876"
|
||||
y1="757.90527"
|
||||
x2="329.18976"
|
||||
y2="757.90527"
|
||||
id="line6446" />
|
||||
<line
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.04738331"
|
||||
x1="346.19775"
|
||||
y1="757.90527"
|
||||
x2="340.52875"
|
||||
y2="757.90527"
|
||||
id="line6448" />
|
||||
<line
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.04738331"
|
||||
x1="357.53674"
|
||||
y1="757.90527"
|
||||
x2="351.86777"
|
||||
y2="757.90527"
|
||||
id="line6450" />
|
||||
<line
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.04738331"
|
||||
x1="227.14275"
|
||||
y1="757.90527"
|
||||
x2="221.47275"
|
||||
y2="757.90527"
|
||||
id="line6452" />
|
||||
<line
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.04738331"
|
||||
x1="238.48073"
|
||||
y1="757.90527"
|
||||
x2="232.81174"
|
||||
y2="757.90527"
|
||||
id="line6454" />
|
||||
<line
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.04738331"
|
||||
x1="249.81975"
|
||||
y1="757.90527"
|
||||
x2="244.15074"
|
||||
y2="757.90527"
|
||||
id="line6456" />
|
||||
<line
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.04738331"
|
||||
x1="261.15875"
|
||||
y1="757.90527"
|
||||
x2="255.48973"
|
||||
y2="757.90527"
|
||||
id="line6458" />
|
||||
<line
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.04738331"
|
||||
x1="221.47374"
|
||||
y1="680.66962"
|
||||
x2="221.47374"
|
||||
y2="668.78809"
|
||||
id="line6460" />
|
||||
<line
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.04738331"
|
||||
x1="357.53674"
|
||||
y1="680.67072"
|
||||
x2="357.53674"
|
||||
y2="668.78809"
|
||||
id="line6462" />
|
||||
<text
|
||||
y="740.36438"
|
||||
x="199.72525"
|
||||
style="font-size:13.30799103px;fill:#ffffff;font-family:CenturyGothic"
|
||||
transform="scale(0.97685665,1.0236917)"
|
||||
font-size="13"
|
||||
id="text6464">-20</text>
|
||||
<text
|
||||
y="740.36438"
|
||||
x="373.83279"
|
||||
style="font-size:13.30799103px;fill:#ffffff;font-family:CenturyGothic"
|
||||
transform="scale(0.97685665,1.0236917)"
|
||||
font-size="13"
|
||||
id="text6466">-20</text>
|
||||
<line
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.04738331"
|
||||
x1="221.47374"
|
||||
y1="757.90424"
|
||||
x2="221.47374"
|
||||
y2="746.02264"
|
||||
id="line6468" />
|
||||
<line
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.04738331"
|
||||
x1="357.53674"
|
||||
y1="757.90527"
|
||||
x2="357.53674"
|
||||
y2="746.02264"
|
||||
id="line6470" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
@ -1859,172 +2006,6 @@
|
||||
inkscape:label="Foreground"
|
||||
style="display:inline"
|
||||
transform="translate(230.4171,-2.5493479)">
|
||||
<g
|
||||
id="foreground"
|
||||
inkscape:label="#g3392">
|
||||
<g
|
||||
transform="translate(4.1134971,-1.5931792)"
|
||||
id="g6859"
|
||||
style="display:inline">
|
||||
<path
|
||||
id="path6311"
|
||||
style="fill:#f17f07;fill-opacity:1;stroke:#f17f07;stroke-width:5.35583735;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 385.70404,414.78075 -32.91384,0 -68.78149,-55.27579 101.69533,55.27579 z m -201.57618,0 32.91384,0 68.78149,-55.27579 -101.69533,55.27579 z" />
|
||||
<path
|
||||
id="path6846"
|
||||
style="fill:#f17f07;fill-opacity:1;stroke:#f17f07;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 3.3266852,357.04811 0,6.42857 58.7499998,0 6.428574,-6.42857 m -65.1785738,0.42857 0,-6.42857 58.7499998,0 6.428574,6.42857" />
|
||||
<path
|
||||
d="m 566.50525,357.04811 0,6.42857 -58.75,0 -6.42858,-6.42857 m 65.17857,0.42857 0,-6.42857 -58.74999,0 -6.42858,6.42857"
|
||||
style="fill:#f17f07;fill-opacity:1;stroke:#f17f07;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
id="path6853" />
|
||||
</g>
|
||||
<rect
|
||||
style="fill:none;stroke:#ffffff;stroke-width:5.05291367;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline"
|
||||
id="rect6866"
|
||||
width="1033.8402"
|
||||
height="702.51031"
|
||||
x="-227.89064"
|
||||
y="5.0758047"
|
||||
inkscape:label="#rect6231" />
|
||||
<path
|
||||
style="fill:#ff251b;fill-opacity:1;stroke:#ff251b;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
|
||||
d="m 279.13165,125.4054 20.29336,-0.0329 -10.36931,-19.46879 -9.92405,19.50168 z"
|
||||
id="path3779" />
|
||||
<g
|
||||
transform="translate(16.458613,-9.5367432e-7)"
|
||||
style="display:inline"
|
||||
id="speed-bg"
|
||||
inkscape:label="#g3820">
|
||||
<rect
|
||||
y="131.33096"
|
||||
x="-163.69627"
|
||||
height="450"
|
||||
width="110.05586"
|
||||
id="rect6300"
|
||||
style="fill:#ffffff;fill-opacity:0.14285715;stroke:#ffffff;stroke-opacity:1;display:inline" />
|
||||
<path
|
||||
sodipodi:nodetypes="cccccccc"
|
||||
id="speed-window"
|
||||
d="m -162.85715,337.78541 78.912165,0 0,9.3094 10.606602,9.3094 -10.606602,9.3094 0.08512,9.3094 -78.997285,0 0,-37.2376 z"
|
||||
style="fill:#000000;fill-opacity:1;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline"
|
||||
inkscape:label="#rect6927" />
|
||||
</g>
|
||||
<g
|
||||
inkscape:label="#g3820"
|
||||
id="altitude-bg"
|
||||
style="display:inline"
|
||||
transform="matrix(-1,0,0,1,562.96105,-9.5367432e-7)">
|
||||
<rect
|
||||
style="fill:#ffffff;fill-opacity:0.14117647;stroke:#ffffff;stroke-opacity:1;display:inline"
|
||||
id="rect5640"
|
||||
width="110.05586"
|
||||
height="450"
|
||||
x="-163.69627"
|
||||
y="131.33096" />
|
||||
</g>
|
||||
<rect
|
||||
style="opacity:0.5;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:2.42740273;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline"
|
||||
id="vario-bg"
|
||||
width="41.465546"
|
||||
height="339.4606"
|
||||
x="727.99298"
|
||||
y="186.60066"
|
||||
inkscape:label="#rect5038" />
|
||||
<path
|
||||
style="fill:#000000;fill-opacity:0.49350652;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
|
||||
d="m -15.423661,592.19188 0,96.40626 88.90625,0 0.50508,0.007 430.628851,0 0.17857,0 88.6875,0 0,-96.41369 -65.125,0 -23.78125,23.78125 0.23331,-0.70982 -432.045811,0 0,0 -23.0625,-23.071 -65.125,0 z"
|
||||
id="path6922"
|
||||
sodipodi:nodetypes="ccccccccccccccc" />
|
||||
<g
|
||||
style="display:inline"
|
||||
id="g2928"
|
||||
transform="matrix(0.53532208,0,0,0.53532208,250.40617,503.97463)">
|
||||
<path
|
||||
transform="translate(0.08444214,0)"
|
||||
d="m 589.99999,195.93361 c 0,11.44018 -9.2741,20.71428 -20.71428,20.71428 -11.44019,0 -20.71429,-9.2741 -20.71429,-20.71428 0,-11.44018 9.2741,-20.71429 20.71429,-20.71429 11.44018,0 20.71428,9.27411 20.71428,20.71429 z"
|
||||
sodipodi:ry="20.714285"
|
||||
sodipodi:rx="20.714285"
|
||||
sodipodi:cy="195.93361"
|
||||
sodipodi:cx="569.28571"
|
||||
id="path2930"
|
||||
style="fill:#f1b907;fill-opacity:1;stroke:#6f5404;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
sodipodi:type="arc" />
|
||||
<rect
|
||||
ry="2.2728431"
|
||||
y="173.52946"
|
||||
x="590.45447"
|
||||
height="45.456863"
|
||||
width="4.5456862"
|
||||
id="rect2932"
|
||||
style="fill:#f1b907;fill-opacity:1;stroke:#6f5404;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
|
||||
<rect
|
||||
style="fill:#f1b907;fill-opacity:1;stroke:#6f5404;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
id="rect2934"
|
||||
width="4.5456862"
|
||||
height="45.456863"
|
||||
x="543.74017"
|
||||
y="173.52946"
|
||||
ry="2.2728431" />
|
||||
</g>
|
||||
<path
|
||||
inkscape:export-ydpi="103.61"
|
||||
inkscape:export-xdpi="103.61"
|
||||
inkscape:export-filename="H:\Documents\Hobbies\W433\g9905.png"
|
||||
sodipodi:nodetypes="cccccccccccccccccccc"
|
||||
d="m 223.25403,625.21586 c 2.8525,4.69928 3.65097,9.98089 3.78605,15.72533 l 17.43165,16.61392 0.51269,6.31009 -18.25985,-9.82008 -0.63103,15.7358 6.90167,6.70448 -0.11829,5.36359 -7.72987,-4.41707 -1.73701,2.29337 -0.32549,3.2e-4 -1.73529,-2.2874 -7.72987,4.41706 -0.11829,-5.36359 6.90167,-6.70447 -0.63102,-15.73581 -18.25985,9.82009 0.51269,-6.3101 17.43165,-16.61392 c 0.13507,-5.74443 0.93354,-11.02605 3.78604,-15.72532"
|
||||
style="fill:none;stroke:#f1b907;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
|
||||
id="path34138-1-7" />
|
||||
<g
|
||||
id="g12081"
|
||||
transform="matrix(-0.37832244,0,0,0.37832244,560.4425,481.00671)">
|
||||
<path
|
||||
sodipodi:nodetypes="ccc"
|
||||
id="path10497"
|
||||
d="m 503.05597,382.63105 79.22184,137.21626 C 508.75434,514.35363 449.16817,496.95519 503.05597,382.63105 z"
|
||||
style="fill:none;stroke:#f1b907;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
<path
|
||||
id="path11011"
|
||||
d="m 488.92858,483.79075 -48.57143,48.57143 76.42857,0 -27.48454,-47.60462"
|
||||
style="fill:none;stroke:#f1b907;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
<path
|
||||
sodipodi:nodetypes="ccc"
|
||||
id="path11013"
|
||||
d="m 502.8774,380.31224 81.19998,46.06174 0.35972,94.77314"
|
||||
style="fill:none;stroke:#f1b907;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
<path
|
||||
sodipodi:nodetypes="cc"
|
||||
id="path11015"
|
||||
d="M 584.05445,426.5424 542.4818,450.47261"
|
||||
style="fill:none;stroke:#f1b907;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
<path
|
||||
transform="translate(-2.6785714,0.71428572)"
|
||||
d="m 591.60716,426.20148 c 0,3.20522 -2.59835,5.80357 -5.80357,5.80357 -3.20523,0 -5.80357,-2.59835 -5.80357,-5.80357 0,-3.20523 2.59834,-5.80357 5.80357,-5.80357 3.20522,0 5.80357,2.59834 5.80357,5.80357 z"
|
||||
sodipodi:ry="5.8035712"
|
||||
sodipodi:rx="5.8035712"
|
||||
sodipodi:cy="426.20148"
|
||||
sodipodi:cx="585.80359"
|
||||
id="path12062"
|
||||
style="fill:#f1b907;fill-opacity:1;stroke:#f1b907;stroke-width:2;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
sodipodi:type="arc" />
|
||||
</g>
|
||||
<path
|
||||
style="fill:none;stroke:#f1b907;stroke-width:2.79651642;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 0.92772957,600.0101 0,6.18925 -2.88853597,0 0,0.72973 0,5.43249 0,0.75676 2.88853597,0 0,6.16222 40.53369843,0 0,-6.91898 0,-5.43249 0,-6.91898 -40.53369843,0 z"
|
||||
id="path12125" />
|
||||
<path
|
||||
sodipodi:nodetypes="cccccccccc"
|
||||
id="path5384"
|
||||
d="m 304.06475,677.71861 0,2.67964 -9.06747,0 0,1.41651 0,0.0271 0,1.41651 9.06747,0 0,2.67964 4.11419,-4.11419 -4.11419,-4.10518 z"
|
||||
style="fill:#525652;fill-opacity:1;stroke:#262020;stroke-width:0.28871548px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
|
||||
inkscape:label="#path7548" />
|
||||
<path
|
||||
inkscape:label="#path7548"
|
||||
style="fill:#525652;fill-opacity:1;stroke:#262020;stroke-width:0.28871548px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
|
||||
d="m 272.8475,677.71861 0,2.67964 9.06747,0 0,1.41651 0,0.0271 0,1.41651 -9.06747,0 0,2.67964 -4.11419,-4.11419 4.11419,-4.10518 z"
|
||||
id="path5386"
|
||||
sodipodi:nodetypes="cccccccccc" />
|
||||
</g>
|
||||
<g
|
||||
id="g4306"
|
||||
transform="translate(101.68019,0)">
|
||||
@ -2094,141 +2075,585 @@
|
||||
id="tspan4328"
|
||||
sodipodi:role="line">GPS</tspan></text>
|
||||
</g>
|
||||
<path
|
||||
inkscape:label="#rect6927"
|
||||
style="fill:#000000;fill-opacity:1;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline"
|
||||
d="m 725.81867,337.78498 -78.91217,0 0,9.3094 -10.6066,9.3094 10.6066,9.3094 -0.0851,9.3094 78.99729,0 0,-37.2376 z"
|
||||
id="altitude-window"
|
||||
sodipodi:nodetypes="cccccccc" />
|
||||
<g
|
||||
id="foreground"
|
||||
inkscape:label="#g4670">
|
||||
<rect
|
||||
style="fill:none;stroke:#4c4141;stroke-width:5.05291367;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline"
|
||||
id="rect6866"
|
||||
width="1033.8402"
|
||||
height="702.51031"
|
||||
x="-227.89064"
|
||||
y="5.0758047"
|
||||
inkscape:label="#rect6231" />
|
||||
<path
|
||||
style="fill:#00ff00;fill-opacity:1;stroke:#00ff00;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
|
||||
d="m 279.13165,125.4054 20.29336,-0.0329 -10.36931,-19.46879 -9.92405,19.50168 z"
|
||||
id="path3779"
|
||||
inkscape:connector-curvature="0" />
|
||||
<rect
|
||||
inkscape:label="#rect6300"
|
||||
style="fill:#000000;fill-opacity:0.15686275;stroke:#ffffff;stroke-opacity:1;display:inline"
|
||||
id="speed-bg"
|
||||
width="110.05586"
|
||||
height="450"
|
||||
x="-147.23766"
|
||||
y="131.33096" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
inkscape:label="#rect6927"
|
||||
style="fill:#000000;fill-opacity:0.78431373;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline"
|
||||
d="m -146.39854,337.78541 78.912168,0 0,9.3094 10.606602,9.3094 -10.606602,9.3094 0.08512,9.3094 -78.997288,0 0,-37.2376 z"
|
||||
id="speed-window"
|
||||
sodipodi:nodetypes="cccccccc" />
|
||||
<g
|
||||
inkscape:label="#g3820"
|
||||
id="altitude-bg"
|
||||
style="fill:#000000;fill-opacity:0.15686275;stroke:#ffffff;stroke-opacity:1;display:inline"
|
||||
transform="matrix(-1,0,0,1,562.96105,-9.5367432e-7)">
|
||||
<rect
|
||||
style="fill:#000000;fill-opacity:0.15686275;stroke:#ffffff;stroke-opacity:1;display:inline"
|
||||
id="rect5640"
|
||||
width="110.05586"
|
||||
height="450"
|
||||
x="-163.69627"
|
||||
y="131.33096" />
|
||||
</g>
|
||||
<path
|
||||
style="fill:#000000;fill-opacity:0.15686275;stroke:#ffffff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
|
||||
d="m -15.423661,592.19188 0,96.40626 88.90625,0 0.50508,0.007 430.628851,0 0.17857,0 88.6875,0 0,-96.41369 -65.125,0 -23.78125,23.78125 0.23331,-0.70982 -432.045811,0 0,0 -23.0625,-23.071 -65.125,0 z"
|
||||
id="path6922"
|
||||
sodipodi:nodetypes="ccccccccccccccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
style="display:inline"
|
||||
id="g2928"
|
||||
transform="matrix(0.53532208,0,0,0.53532208,250.40617,503.97463)">
|
||||
<path
|
||||
transform="translate(0.08444214,0)"
|
||||
d="m 589.99999,195.93361 c 0,11.44018 -9.2741,20.71428 -20.71428,20.71428 -11.44019,0 -20.71429,-9.2741 -20.71429,-20.71428 0,-11.44018 9.2741,-20.71429 20.71429,-20.71429 11.44018,0 20.71428,9.27411 20.71428,20.71429 z"
|
||||
sodipodi:ry="20.714285"
|
||||
sodipodi:rx="20.714285"
|
||||
sodipodi:cy="195.93361"
|
||||
sodipodi:cx="569.28571"
|
||||
id="path2930"
|
||||
style="fill:#f1b907;fill-opacity:1;stroke:#6f5404;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
sodipodi:type="arc" />
|
||||
<rect
|
||||
ry="2.2728431"
|
||||
y="173.52946"
|
||||
x="590.45447"
|
||||
height="45.456863"
|
||||
width="4.5456862"
|
||||
id="rect2932"
|
||||
style="fill:#f1b907;fill-opacity:1;stroke:#6f5404;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
|
||||
<rect
|
||||
style="fill:#f1b907;fill-opacity:1;stroke:#6f5404;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
id="rect2934"
|
||||
width="4.5456862"
|
||||
height="45.456863"
|
||||
x="543.74017"
|
||||
y="173.52946"
|
||||
ry="2.2728431" />
|
||||
</g>
|
||||
<path
|
||||
inkscape:export-ydpi="103.61"
|
||||
inkscape:export-xdpi="103.61"
|
||||
inkscape:export-filename="H:\Documents\Hobbies\W433\g9905.png"
|
||||
sodipodi:nodetypes="cccccccccccccccccccc"
|
||||
d="m 223.25403,625.21586 c 2.8525,4.69928 3.65097,9.98089 3.78605,15.72533 l 17.43165,16.61392 0.51269,6.31009 -18.25985,-9.82008 -0.63103,15.7358 6.90167,6.70448 -0.11829,5.36359 -7.72987,-4.41707 -1.73701,2.29337 -0.32549,3.2e-4 -1.73529,-2.2874 -7.72987,4.41706 -0.11829,-5.36359 6.90167,-6.70447 -0.63102,-15.73581 -18.25985,9.82009 0.51269,-6.3101 17.43165,-16.61392 c 0.13507,-5.74443 0.93354,-11.02605 3.78604,-15.72532"
|
||||
style="fill:none;stroke:#f1b907;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
|
||||
id="path34138-1-7"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
id="g12081"
|
||||
transform="matrix(-0.37832244,0,0,0.37832244,560.4425,481.00671)">
|
||||
<path
|
||||
sodipodi:nodetypes="ccc"
|
||||
id="path10497"
|
||||
d="m 503.05597,382.63105 79.22184,137.21626 C 508.75434,514.35363 449.16817,496.95519 503.05597,382.63105 z"
|
||||
style="fill:none;stroke:#f1b907;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path11011"
|
||||
d="m 488.92858,483.79075 -48.57143,48.57143 76.42857,0 -27.48454,-47.60462"
|
||||
style="fill:none;stroke:#f1b907;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
sodipodi:nodetypes="ccc"
|
||||
id="path11013"
|
||||
d="m 502.8774,380.31224 81.19998,46.06174 0.35972,94.77314"
|
||||
style="fill:none;stroke:#f1b907;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
sodipodi:nodetypes="cc"
|
||||
id="path11015"
|
||||
d="M 584.05445,426.5424 542.4818,450.47261"
|
||||
style="fill:none;stroke:#f1b907;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
transform="translate(-2.6785714,0.71428572)"
|
||||
d="m 591.60716,426.20148 c 0,3.20522 -2.59835,5.80357 -5.80357,5.80357 -3.20523,0 -5.80357,-2.59835 -5.80357,-5.80357 0,-3.20523 2.59834,-5.80357 5.80357,-5.80357 3.20522,0 5.80357,2.59834 5.80357,5.80357 z"
|
||||
sodipodi:ry="5.8035712"
|
||||
sodipodi:rx="5.8035712"
|
||||
sodipodi:cy="426.20148"
|
||||
sodipodi:cx="585.80359"
|
||||
id="path12062"
|
||||
style="fill:#f1b907;fill-opacity:1;stroke:#f1b907;stroke-width:2;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
sodipodi:type="arc" />
|
||||
</g>
|
||||
<path
|
||||
style="fill:none;stroke:#f1b907;stroke-width:2.79651642;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 0.92772957,600.0101 0,6.18925 -2.88853597,0 0,0.72973 0,5.43249 0,0.75676 2.88853597,0 0,6.16222 40.53369843,0 0,-6.91898 0,-5.43249 0,-6.91898 -40.53369843,0 z"
|
||||
id="path12125"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
sodipodi:nodetypes="cccccccccc"
|
||||
id="path5384"
|
||||
d="m 304.06475,677.71861 0,2.67964 -9.06747,0 0,1.41651 0,0.0271 0,1.41651 9.06747,0 0,2.67964 4.11419,-4.11419 -4.11419,-4.10518 z"
|
||||
style="fill:#525652;fill-opacity:1;stroke:#262020;stroke-width:0.28871548px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
|
||||
inkscape:label="#path7548"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
inkscape:label="#path7548"
|
||||
style="fill:#525652;fill-opacity:1;stroke:#262020;stroke-width:0.28871548px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
|
||||
d="m 272.8475,677.71861 0,2.67964 9.06747,0 0,1.41651 0,0.0271 0,1.41651 -9.06747,0 0,2.67964 -4.11419,-4.11419 4.11419,-4.10518 z"
|
||||
id="path5386"
|
||||
sodipodi:nodetypes="cccccccccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cccccccc"
|
||||
id="altitude-window"
|
||||
d="m 725.81867,337.78498 -78.91217,0 0,9.3094 -10.6066,9.3094 10.6066,9.3094 -0.0851,9.3094 78.99729,0 0,-37.2376 z"
|
||||
style="fill:#000000;fill-opacity:0.78431373;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline"
|
||||
inkscape:label="#rect6927" />
|
||||
<g
|
||||
id="g5266">
|
||||
<circle
|
||||
id="circle6392"
|
||||
r="5.6680002"
|
||||
cy="255.12"
|
||||
cx="311.81"
|
||||
d="m 317.478,255.12 c 0,3.13035 -2.53765,5.668 -5.668,5.668 -3.13035,0 -5.668,-2.53765 -5.668,-5.668 0,-3.13035 2.53765,-5.66801 5.668,-5.66801 3.13035,0 5.668,2.53766 5.668,5.66801 z"
|
||||
sodipodi:cx="311.81"
|
||||
sodipodi:cy="255.12"
|
||||
sodipodi:rx="5.6680002"
|
||||
sodipodi:ry="5.6680002"
|
||||
style="fill:#39b54a;stroke:#ffffff;stroke-width:2;display:inline"
|
||||
transform="matrix(1.2807481,0,0,1.3392766,-110.2996,14.543853)" />
|
||||
<line
|
||||
id="line6394"
|
||||
y2="356.21884"
|
||||
x2="310.83472"
|
||||
y1="356.21884"
|
||||
x1="296.31235"
|
||||
style="fill:#39b54a;stroke:#ffffff;stroke-width:2.61937094;display:inline" />
|
||||
<line
|
||||
id="line6396"
|
||||
y2="356.21884"
|
||||
x2="267.27008"
|
||||
y1="356.21884"
|
||||
x1="281.79123"
|
||||
style="fill:#39b54a;stroke:#ffffff;stroke-width:2.61937094;display:inline" />
|
||||
<line
|
||||
id="line6398"
|
||||
y2="333.44037"
|
||||
x2="289.05307"
|
||||
y1="348.6265"
|
||||
x1="289.05307"
|
||||
style="fill:#39b54a;stroke:#ffffff;stroke-width:2.61937094;display:inline" />
|
||||
<line
|
||||
id="line6400"
|
||||
y2="356.21884"
|
||||
x2="118.25632"
|
||||
y1="356.21884"
|
||||
x1="248.72997"
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.61937094;display:inline" />
|
||||
<line
|
||||
id="line6402"
|
||||
y2="356.21884"
|
||||
x2="330.2829"
|
||||
y1="356.21884"
|
||||
x1="460.75775"
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.61937094;display:inline" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer4"
|
||||
inkscape:label="red needle"
|
||||
style="display:inline"
|
||||
style="display:none"
|
||||
transform="translate(230.4171,-2.5493479)"
|
||||
sodipodi:insensitive="true">
|
||||
<rect
|
||||
inkscape:label="#rect6231"
|
||||
y="5.0807486"
|
||||
x="-227.85889"
|
||||
height="702.50043"
|
||||
width="1033.8469"
|
||||
id="rect6290"
|
||||
style="fill:none;stroke:#ffffff;stroke-width:5.05289459;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:0;stroke-dasharray:none;stroke-dashoffset:0;display:inline" />
|
||||
<g
|
||||
transform="matrix(1.0078864,0,0,1,-0.06058227,-278.08002)"
|
||||
style="display:inline"
|
||||
id="angle"
|
||||
inkscape:label="#g6257" />
|
||||
<rect
|
||||
style="fill:none;stroke:none"
|
||||
id="rect8572"
|
||||
width="1044.2374"
|
||||
height="708.93182"
|
||||
x="-232.47"
|
||||
y="18.972483" />
|
||||
<g
|
||||
id="rollscale"
|
||||
inkscape:label="#g4355"
|
||||
transform="matrix(0.99612266,0,0,1,1.1557355,2.0091557e-7)">
|
||||
<rect
|
||||
style="fill:none;stroke:#ffffff;stroke-width:5.06271887;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:0;stroke-dasharray:none;stroke-dashoffset:0;display:inline"
|
||||
id="rect6290"
|
||||
width="1037.8711"
|
||||
height="702.50043"
|
||||
x="-229.90605"
|
||||
y="5.0807486"
|
||||
inkscape:label="#rect6231" />
|
||||
inkscape:label="#g5089">
|
||||
<g
|
||||
transform="matrix(1.0800826,0,0,1.0794632,-23.934953,-31.741915)"
|
||||
inkscape:label="#g6257"
|
||||
id="angle"
|
||||
style="display:inline"
|
||||
transform="matrix(1.0118095,0,0,1,-1.2210522,-278.08002)">
|
||||
id="angle-3">
|
||||
<line
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.50891328"
|
||||
id="line6291"
|
||||
y2="190.85513"
|
||||
x2="120.73093"
|
||||
y1="170.57494"
|
||||
x1="100.77813" />
|
||||
<line
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.50891328"
|
||||
id="line6293"
|
||||
y2="152.11588"
|
||||
x2="170.40582"
|
||||
y1="127.27781"
|
||||
x1="156.29759" />
|
||||
<line
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.50891328"
|
||||
id="line6295"
|
||||
y2="127.76344"
|
||||
x2="228.25465"
|
||||
y1="100.05842"
|
||||
x1="220.95166" />
|
||||
<line
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.50891328"
|
||||
id="line6297"
|
||||
y2="119.45585"
|
||||
x2="290.33307"
|
||||
y1="90.775726"
|
||||
x1="290.33307" />
|
||||
<line
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.50891328"
|
||||
id="line6299"
|
||||
y2="127.76344"
|
||||
x2="352.41013"
|
||||
y1="100.05842"
|
||||
x1="359.71555" />
|
||||
<line
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.50891328"
|
||||
id="line6301"
|
||||
y2="152.11588"
|
||||
x2="410.25769"
|
||||
y1="127.27781"
|
||||
x1="424.36963" />
|
||||
<line
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.50891328"
|
||||
id="line6303"
|
||||
y2="190.85513"
|
||||
x2="459.93256"
|
||||
y1="170.5762"
|
||||
x1="479.8891" />
|
||||
<line
|
||||
style="opacity:0.2;fill:none;stroke:#ffffff;stroke-width:1.25445664"
|
||||
id="line6305"
|
||||
y2="226.55669"
|
||||
x2="83.257965"
|
||||
y1="218.74611"
|
||||
x1="71.425682" />
|
||||
<line
|
||||
style="opacity:0.4;fill:none;stroke:#ffffff;stroke-width:1.25445664"
|
||||
id="line6307"
|
||||
y2="215.72861"
|
||||
x2="90.579643"
|
||||
y1="207.29958"
|
||||
x1="79.164169" />
|
||||
<line
|
||||
style="opacity:0.6;fill:none;stroke:#ffffff;stroke-width:1.25445664"
|
||||
id="line6309"
|
||||
y2="205.30521"
|
||||
x2="98.447525"
|
||||
y1="196.28056"
|
||||
x1="87.482475" />
|
||||
<line
|
||||
style="opacity:0.8;fill:none;stroke:#ffffff;stroke-width:1.25445664"
|
||||
id="line6311"
|
||||
y2="195.31563"
|
||||
x2="106.84303"
|
||||
y1="185.71931"
|
||||
x1="96.357063" />
|
||||
<line
|
||||
style="fill:none;stroke:#ffffff;stroke-width:1.25445664"
|
||||
id="line6313"
|
||||
y2="185.78508"
|
||||
x2="115.73994"
|
||||
y1="175.64375"
|
||||
x1="105.76289" />
|
||||
<line
|
||||
style="fill:none;stroke:#ffffff;stroke-width:1.25445664"
|
||||
id="line6315"
|
||||
y2="176.74019"
|
||||
x2="125.11599"
|
||||
y1="166.08287"
|
||||
x1="115.67522" />
|
||||
<line
|
||||
style="fill:none;stroke:#ffffff;stroke-width:1.25445664"
|
||||
id="line6317"
|
||||
y2="168.2075"
|
||||
x2="134.94495"
|
||||
y1="157.06325"
|
||||
x1="126.06542" />
|
||||
<line
|
||||
style="fill:none;stroke:#ffffff;stroke-width:1.25445664"
|
||||
id="line6319"
|
||||
y2="160.20975"
|
||||
x2="145.19942"
|
||||
y1="148.60768"
|
||||
x1="136.9072" />
|
||||
<line
|
||||
style="fill:none;stroke:#ffffff;stroke-width:1.25445664"
|
||||
id="line6321"
|
||||
y2="152.76717"
|
||||
x2="155.85214"
|
||||
y1="140.7402"
|
||||
x1="148.16843" />
|
||||
<line
|
||||
style="fill:none;stroke:#ffffff;stroke-width:1.25445664"
|
||||
id="line6323"
|
||||
y2="145.90256"
|
||||
x2="166.87439"
|
||||
y1="133.48355"
|
||||
x1="159.81906" />
|
||||
<line
|
||||
style="fill:none;stroke:#ffffff;stroke-width:1.25445664"
|
||||
id="line6325"
|
||||
y2="139.63362"
|
||||
x2="178.2339"
|
||||
y1="126.85543"
|
||||
x1="171.82808" />
|
||||
<line
|
||||
style="fill:none;stroke:#ffffff;stroke-width:1.25445664"
|
||||
id="line6327"
|
||||
y2="133.97801"
|
||||
x2="189.90071"
|
||||
y1="120.87482"
|
||||
x1="184.16185" />
|
||||
<line
|
||||
style="fill:none;stroke:#ffffff;stroke-width:1.25445664"
|
||||
id="line6329"
|
||||
y2="128.94846"
|
||||
x2="201.84259"
|
||||
y1="115.55942"
|
||||
x1="196.7868" />
|
||||
<line
|
||||
style="fill:none;stroke:#ffffff;stroke-width:1.25445664"
|
||||
id="line6331"
|
||||
y2="124.56133"
|
||||
x2="214.02826"
|
||||
y1="110.92317"
|
||||
x1="209.66689" />
|
||||
<line
|
||||
style="fill:none;stroke:none"
|
||||
id="line6333"
|
||||
y2="120.82927"
|
||||
x2="226.42181"
|
||||
y1="106.97737"
|
||||
x1="222.7697" />
|
||||
<line
|
||||
style="fill:none;stroke:#ffffff;stroke-width:1.25445664"
|
||||
id="line6335"
|
||||
y2="117.7612"
|
||||
x2="238.992"
|
||||
y1="103.73477"
|
||||
x1="236.05664" />
|
||||
<line
|
||||
style="fill:none;stroke:#ffffff;stroke-width:1.25445664"
|
||||
id="line6337"
|
||||
y2="115.36717"
|
||||
x2="251.70279"
|
||||
y1="101.20294"
|
||||
x1="249.49286" />
|
||||
<line
|
||||
style="fill:none;stroke:#ffffff;stroke-width:1.25445664"
|
||||
id="line6339"
|
||||
y2="113.65104"
|
||||
x2="264.51694"
|
||||
y1="99.389381"
|
||||
x1="263.04242" />
|
||||
<line
|
||||
style="fill:none;stroke:#ffffff;stroke-width:1.25445664"
|
||||
id="line6341"
|
||||
y2="112.62032"
|
||||
x2="277.40442"
|
||||
y1="98.299232"
|
||||
x1="276.66403" />
|
||||
<line
|
||||
style="fill:none;stroke:#ffffff;stroke-width:1.25445664"
|
||||
id="line6343"
|
||||
y2="112.27632"
|
||||
x2="290.32684"
|
||||
y1="97.93502"
|
||||
x1="290.32553" />
|
||||
<line
|
||||
style="fill:none;stroke:#ffffff;stroke-width:1.25445664"
|
||||
id="line6345"
|
||||
y2="112.61906"
|
||||
x2="303.24908"
|
||||
y1="98.297997"
|
||||
x1="303.98581" />
|
||||
<g
|
||||
style="display:inline"
|
||||
id="slider1"
|
||||
transform="translate(-10.552094,234.36218)"
|
||||
inkscape:label="#g6169">
|
||||
<path
|
||||
sodipodi:open="true"
|
||||
sodipodi:end="5.8049311"
|
||||
sodipodi:start="3.6237905"
|
||||
transform="matrix(1.04245,0,0,1.04245,-39.343346,-14.403881)"
|
||||
d="m 116.63233,278.11506 c 59.81989,-114.28932 200.9633,-158.44551 315.25261,-98.62561 42.43119,22.2088 77.00986,56.9241 99.05115,99.44254"
|
||||
sodipodi:ry="233.57143"
|
||||
sodipodi:rx="233.57143"
|
||||
sodipodi:cy="386.42856"
|
||||
sodipodi:cx="323.57144"
|
||||
id="path5939"
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.87783599;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
sodipodi:type="arc" />
|
||||
<path
|
||||
inkscape:transform-center-x="1.9963604"
|
||||
sodipodi:nodetypes="cc"
|
||||
inkscape:transform-center-y="-264.10817"
|
||||
id="path6139"
|
||||
d="m 298.57144,144.4675 0,-20.65945"
|
||||
style="fill:none;stroke:#ffffff;stroke-width:4.49700022;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
<path
|
||||
sodipodi:nodetypes="cc"
|
||||
inkscape:transform-center-x="69.19694"
|
||||
style="fill:none;stroke:#ffffff;stroke-width:4.49700022;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="M 172.25161,179.81073 161.17392,160.6236"
|
||||
id="path6141"
|
||||
inkscape:transform-center-y="-119.85262" />
|
||||
<path
|
||||
sodipodi:nodetypes="cc"
|
||||
inkscape:transform-center-y="-69.19694"
|
||||
id="path6143"
|
||||
d="M 83.717038,274.55684 60.591955,261.20557"
|
||||
style="fill:none;stroke:#ffffff;stroke-width:4.49700022;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:transform-center-x="119.85262" />
|
||||
<path
|
||||
sodipodi:nodetypes="cc"
|
||||
inkscape:transform-center-x="-69.19694"
|
||||
style="fill:none;stroke:#ffffff;stroke-width:4.49700022;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 424.28893,180.854 11.68003,-20.2304"
|
||||
id="path6145"
|
||||
inkscape:transform-center-y="-119.85262" />
|
||||
<path
|
||||
sodipodi:nodetypes="cc"
|
||||
inkscape:transform-center-y="-69.19694"
|
||||
id="path6147"
|
||||
d="m 512.54237,275.06692 24.00856,-13.86135"
|
||||
style="fill:none;stroke:#ffffff;stroke-width:4.49700022;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:transform-center-x="-119.85262" />
|
||||
<path
|
||||
sodipodi:nodetypes="cc"
|
||||
inkscape:transform-center-x="-24.031845"
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 342.82539,147.62649 2.73081,-11.19792"
|
||||
id="path6149"
|
||||
inkscape:transform-center-y="-136.29137" />
|
||||
<path
|
||||
sodipodi:nodetypes="cc"
|
||||
inkscape:transform-center-y="-130.04771"
|
||||
id="path6151"
|
||||
d="m 384.74896,161.83228 5.26158,-14.68942"
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:transform-center-x="-47.333495" />
|
||||
<path
|
||||
sodipodi:nodetypes="cc"
|
||||
inkscape:transform-center-x="24.031845"
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 254.46088,148.43969 -2.3856,-12.01112"
|
||||
id="path6157"
|
||||
inkscape:transform-center-y="-136.29137" />
|
||||
<path
|
||||
sodipodi:nodetypes="cc"
|
||||
inkscape:transform-center-y="-130.04771"
|
||||
id="path6159"
|
||||
d="m 211.939,160.5824 -5.80849,-13.43954"
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:transform-center-x="47.333495" />
|
||||
<path
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="M 120.46531,220.96674 105.09926,205.60069"
|
||||
id="path6165"
|
||||
inkscape:transform-center-y="-185.34103"
|
||||
sodipodi:nodetypes="cc"
|
||||
inkscape:transform-center-x="188.16432" />
|
||||
<path
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 475.74748,220.24299 14.96558,-14.96558"
|
||||
id="path6167"
|
||||
inkscape:transform-center-y="-188.16431"
|
||||
sodipodi:nodetypes="cc"
|
||||
inkscape:transform-center-x="-185.34104" />
|
||||
id="g7953">
|
||||
<line
|
||||
x1="317.60739"
|
||||
y1="99.385597"
|
||||
x2="316.13669"
|
||||
y2="113.64977"
|
||||
id="line6347"
|
||||
style="fill:none;stroke:#ffffff;stroke-width:1.25445664" />
|
||||
</g>
|
||||
<line
|
||||
style="fill:none;stroke:#ffffff;stroke-width:1.25445664"
|
||||
id="line6349"
|
||||
y2="115.36339"
|
||||
x2="328.95325"
|
||||
y1="101.19788"
|
||||
x1="331.15695" />
|
||||
<line
|
||||
style="fill:none;stroke:#ffffff;stroke-width:1.25445664"
|
||||
id="line6351"
|
||||
y2="117.75741"
|
||||
x2="341.66284"
|
||||
y1="103.72845"
|
||||
x1="344.59451" />
|
||||
<line
|
||||
style="fill:none;stroke:#ffffff;stroke-width:1.25445664"
|
||||
id="line6353"
|
||||
y2="120.82294"
|
||||
x2="354.23303"
|
||||
y1="106.96854"
|
||||
x1="357.88144" />
|
||||
<line
|
||||
style="fill:none;stroke:#ffffff;stroke-width:1.25445664"
|
||||
id="line6355"
|
||||
y2="124.55501"
|
||||
x2="366.62778"
|
||||
y1="110.91179"
|
||||
x1="370.98422" />
|
||||
<line
|
||||
style="fill:none;stroke:#ffffff;stroke-width:1.25445664"
|
||||
id="line6357"
|
||||
y2="128.93834"
|
||||
x2="378.81357"
|
||||
y1="115.54676"
|
||||
x1="383.86551" />
|
||||
<line
|
||||
style="fill:none;stroke:#ffffff;stroke-width:1.25445664"
|
||||
id="line6359"
|
||||
y2="133.96536"
|
||||
x2="390.75656"
|
||||
y1="120.86217"
|
||||
x1="396.4917" />
|
||||
<line
|
||||
style="fill:none;stroke:#ffffff;stroke-width:1.25445664"
|
||||
id="line6361"
|
||||
y2="139.62096"
|
||||
x2="402.42346"
|
||||
y1="126.84023"
|
||||
x1="408.82547" />
|
||||
<line
|
||||
style="fill:none;stroke:#ffffff;stroke-width:1.25445664"
|
||||
id="line6363"
|
||||
y2="145.88991"
|
||||
x2="413.78287"
|
||||
y1="133.46582"
|
||||
x1="420.83447" />
|
||||
<line
|
||||
style="fill:none;stroke:#ffffff;stroke-width:1.25445664"
|
||||
id="line6365"
|
||||
y2="152.75328"
|
||||
x2="424.80521"
|
||||
y1="140.7225"
|
||||
x1="432.48764" />
|
||||
<line
|
||||
style="fill:none;stroke:#ffffff;stroke-width:1.25445664"
|
||||
id="line6367"
|
||||
y2="160.19456"
|
||||
x2="435.45786"
|
||||
y1="148.58746"
|
||||
x1="443.74878" />
|
||||
<line
|
||||
style="fill:none;stroke:#ffffff;stroke-width:1.25445664"
|
||||
id="line6369"
|
||||
y2="168.19107"
|
||||
x2="445.71484"
|
||||
y1="157.04175"
|
||||
x1="454.59061" />
|
||||
<line
|
||||
style="fill:none;stroke:#ffffff;stroke-width:1.25445664"
|
||||
id="line6371"
|
||||
y2="176.72374"
|
||||
x2="455.54376"
|
||||
y1="166.06134"
|
||||
x1="464.98325" />
|
||||
<line
|
||||
style="fill:none;stroke:#ffffff;stroke-width:1.25445664"
|
||||
id="line6373"
|
||||
y2="185.76614"
|
||||
x2="464.91986"
|
||||
y1="175.61971"
|
||||
x1="474.89688" />
|
||||
<line
|
||||
style="opacity:0.8;fill:none;stroke:#ffffff;stroke-width:1.25445664"
|
||||
id="line6375"
|
||||
y2="195.29539"
|
||||
x2="473.81931"
|
||||
y1="185.69405"
|
||||
x1="484.30408" />
|
||||
<line
|
||||
style="opacity:0.6;fill:none;stroke:#ffffff;stroke-width:1.25445664"
|
||||
id="line6377"
|
||||
y2="205.28499"
|
||||
x2="482.21475"
|
||||
y1="196.25528"
|
||||
x1="493.17978" />
|
||||
<line
|
||||
style="opacity:0.4;fill:none;stroke:#ffffff;stroke-width:1.25445664"
|
||||
id="line6379"
|
||||
y2="215.70833"
|
||||
x2="490.08386"
|
||||
y1="207.27303"
|
||||
x1="501.49942" />
|
||||
<line
|
||||
style="opacity:0.2;fill:none;stroke:#ffffff;stroke-width:1.25445664"
|
||||
id="line6381"
|
||||
y2="226.53519"
|
||||
x2="497.40677"
|
||||
y1="218.71956"
|
||||
x1="509.24033" />
|
||||
</g>
|
||||
<rect
|
||||
y="3.9179461"
|
||||
x="-229.04851"
|
||||
height="703.45746"
|
||||
width="1034.6571"
|
||||
id="rect4313"
|
||||
style="fill:none;stroke:none" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer8"
|
||||
inkscape:label="Heading"
|
||||
style="display:inline"
|
||||
style="display:none"
|
||||
transform="translate(230.4171,-2.5493479)"
|
||||
sodipodi:insensitive="true">
|
||||
<text
|
||||
@ -2245,31 +2670,30 @@
|
||||
style="fill:#1c870b;fill-opacity:1;stroke:#1c870b;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
|
||||
d="m 182.79245,22.132226 20.29336,0.0329 -10.36931,19.468794 -9.92405,-19.501684 z"
|
||||
id="homewaypoint-bearing"
|
||||
inkscape:label="#path3779-1" />
|
||||
inkscape:label="#path3779-1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:#ff251b;fill-opacity:1;stroke:#ff251b;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
|
||||
d="m 347.56915,22.472311 20.29336,0.0329 -10.36931,19.46879 -9.92405,-19.50168 z"
|
||||
id="nextwaypoint-bearing"
|
||||
inkscape:label="#path3779-7" />
|
||||
inkscape:label="#path3779-7"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
id="compass"
|
||||
inkscape:label="#g6260"
|
||||
transform="translate(2.6512146,0)">
|
||||
<g
|
||||
id="g6264">
|
||||
<rect
|
||||
style="fill:#000000;fill-opacity:0.49411765;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline"
|
||||
id="rect6951"
|
||||
width="431.33514"
|
||||
height="38.57143"
|
||||
x="70.710678"
|
||||
y="20.906822"
|
||||
inkscape:label="#rect6951" />
|
||||
<path
|
||||
style="fill:none;stroke:#ff251b;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 286.37825,57.692538 0,-34.999999"
|
||||
id="path4216" />
|
||||
</g>
|
||||
inkscape:label="#g4577">
|
||||
<rect
|
||||
inkscape:label="#rect6951"
|
||||
y="20.906822"
|
||||
x="73.361893"
|
||||
height="38.57143"
|
||||
width="431.33514"
|
||||
id="rect6951"
|
||||
style="fill:#000000;fill-opacity:0.19607843;stroke:#ffffff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path4216"
|
||||
d="m 289.02946,57.692538 0,-34.999999"
|
||||
style="fill:#000000;fill-opacity:0.2745098;stroke:#e60000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
</g>
|
||||
<rect
|
||||
y="-77.806404"
|
||||
@ -2286,7 +2710,8 @@
|
||||
inkscape:label="#path6953"
|
||||
id="compass-scale"
|
||||
d="m -456.82877,-24.24489 1493.98137,0"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:3.06858087;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:3.06858087;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
transform="translate(0.0719,-83.494924)"
|
||||
id="g4993"
|
||||
@ -2298,12 +2723,14 @@
|
||||
<path
|
||||
id="path3636"
|
||||
style="font-size:28px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
d="m 280.28409,30.123177 5.7832,0 7.54688,11.08789 0,-11.08789 5.83789,0 0,20.042968 -5.83789,0 -7.50586,-11.005859 0,11.005859 -5.82422,0 z" />
|
||||
d="m 280.28409,30.123177 5.7832,0 7.54688,11.08789 0,-11.08789 5.83789,0 0,20.042968 -5.83789,0 -7.50586,-11.005859 0,11.005859 -5.82422,0 z"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<path
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 289.86807,59.285714 0,-8.571429"
|
||||
id="path6986" />
|
||||
id="path6986"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<g
|
||||
transform="translate(0.11242867,-84)"
|
||||
@ -2316,13 +2743,15 @@
|
||||
<path
|
||||
id="path3642"
|
||||
style="font-size:28px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
d="m -217.0715,43.535286 5.89258,-0.369141 c 0.12759,0.957038 0.38736,1.686204 0.77929,2.1875 0.63801,0.811202 1.54947,1.216801 2.73438,1.216797 0.8841,4e-6 1.56542,-0.207353 2.04394,-0.62207 0.47851,-0.414709 0.71776,-0.895503 0.71778,-1.442383 -2e-5,-0.519525 -0.22788,-0.984368 -0.6836,-1.394531 -0.45574,-0.410149 -1.51303,-0.797518 -3.17187,-1.16211 -2.71616,-0.610668 -4.653,-1.421865 -5.81055,-2.433593 -1.16667,-1.011707 -1.75,-2.30142 -1.75,-3.869141 0,-1.029932 0.2985,-2.002913 0.89551,-2.918945 0.597,-0.915998 1.49479,-1.636049 2.69336,-2.160156 1.19856,-0.524069 2.84146,-0.786113 4.92871,-0.786133 2.56118,2e-5 4.51398,0.476257 5.8584,1.428711 1.34438,0.952492 2.14418,2.46779 2.39941,4.545898 l -5.83789,0.341797 c -0.15496,-0.902329 -0.48081,-1.558578 -0.97754,-1.96875 -0.49675,-0.41014 -1.18263,-0.615218 -2.05762,-0.615234 -0.72006,1.6e-5 -1.26237,0.152685 -1.62695,0.458007 -0.36459,0.305355 -0.54688,0.676774 -0.54687,1.114258 -1e-5,0.319025 0.15038,0.606134 0.45117,0.861328 0.29166,0.264337 0.98436,0.510431 2.07812,0.738282 2.70702,0.583346 4.64615,1.173514 5.81739,1.770507 1.1712,0.597017 2.02342,1.337576 2.55664,2.22168 0.53318,0.884123 0.79978,1.873055 0.7998,2.966797 -2e-5,1.285161 -0.35549,2.470056 -1.06641,3.554687 -0.71095,1.084638 -1.70444,1.907228 -2.98046,2.467774 -1.27606,0.560547 -2.88478,0.84082 -4.82618,0.84082 -3.40886,0 -5.76953,-0.656249 -7.08203,-1.96875 -1.3125,-1.312497 -2.05534,-2.980464 -2.22851,-5.003906 z" />
|
||||
d="m -217.0715,43.535286 5.89258,-0.369141 c 0.12759,0.957038 0.38736,1.686204 0.77929,2.1875 0.63801,0.811202 1.54947,1.216801 2.73438,1.216797 0.8841,4e-6 1.56542,-0.207353 2.04394,-0.62207 0.47851,-0.414709 0.71776,-0.895503 0.71778,-1.442383 -2e-5,-0.519525 -0.22788,-0.984368 -0.6836,-1.394531 -0.45574,-0.410149 -1.51303,-0.797518 -3.17187,-1.16211 -2.71616,-0.610668 -4.653,-1.421865 -5.81055,-2.433593 -1.16667,-1.011707 -1.75,-2.30142 -1.75,-3.869141 0,-1.029932 0.2985,-2.002913 0.89551,-2.918945 0.597,-0.915998 1.49479,-1.636049 2.69336,-2.160156 1.19856,-0.524069 2.84146,-0.786113 4.92871,-0.786133 2.56118,2e-5 4.51398,0.476257 5.8584,1.428711 1.34438,0.952492 2.14418,2.46779 2.39941,4.545898 l -5.83789,0.341797 c -0.15496,-0.902329 -0.48081,-1.558578 -0.97754,-1.96875 -0.49675,-0.41014 -1.18263,-0.615218 -2.05762,-0.615234 -0.72006,1.6e-5 -1.26237,0.152685 -1.62695,0.458007 -0.36459,0.305355 -0.54688,0.676774 -0.54687,1.114258 -1e-5,0.319025 0.15038,0.606134 0.45117,0.861328 0.29166,0.264337 0.98436,0.510431 2.07812,0.738282 2.70702,0.583346 4.64615,1.173514 5.81739,1.770507 1.1712,0.597017 2.02342,1.337576 2.55664,2.22168 0.53318,0.884123 0.79978,1.873055 0.7998,2.966797 -2e-5,1.285161 -0.35549,2.470056 -1.06641,3.554687 -0.71095,1.084638 -1.70444,1.907228 -2.98046,2.467774 -1.27606,0.560547 -2.88478,0.84082 -4.82618,0.84082 -3.40886,0 -5.76953,-0.656249 -7.08203,-1.96875 -1.3125,-1.312497 -2.05534,-2.980464 -2.22851,-5.003906 z"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<path
|
||||
id="path6988"
|
||||
d="m -207.97971,59.79079 0,-9.076505"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
sodipodi:nodetypes="cc" />
|
||||
sodipodi:nodetypes="cc"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<g
|
||||
transform="translate(0.05301285,-83.494924)"
|
||||
@ -2335,12 +2764,14 @@
|
||||
<path
|
||||
id="path3639"
|
||||
style="font-size:28px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
d="m 778.62402,43.535286 5.89258,-0.369141 c 0.1276,0.957038 0.38736,1.686204 0.7793,2.1875 0.63801,0.811202 1.54947,1.216801 2.73437,1.216797 0.88411,4e-6 1.56542,-0.207353 2.04395,-0.62207 0.4785,-0.414709 0.71776,-0.895503 0.71777,-1.442383 -1e-5,-0.519525 -0.22788,-0.984368 -0.68359,-1.394531 -0.45574,-0.410149 -1.51303,-0.797518 -3.17188,-1.16211 -2.71615,-0.610668 -4.653,-1.421865 -5.81054,-2.433593 -1.16667,-1.011707 -1.75001,-2.30142 -1.75,-3.869141 -10e-6,-1.029932 0.2985,-2.002913 0.8955,-2.918945 0.59701,-0.915998 1.49479,-1.636049 2.69336,-2.160156 1.19856,-0.524069 2.84147,-0.786113 4.92871,-0.786133 2.56119,2e-5 4.51399,0.476257 5.8584,1.428711 1.34439,0.952492 2.14419,2.46779 2.39942,4.545898 l -5.83789,0.341797 c -0.15496,-0.902329 -0.48081,-1.558578 -0.97754,-1.96875 -0.49676,-0.41014 -1.18263,-0.615218 -2.05762,-0.615234 -0.72006,1.6e-5 -1.26238,0.152685 -1.62695,0.458007 -0.36459,0.305355 -0.54689,0.676774 -0.54688,1.114258 -1e-5,0.319025 0.15039,0.606134 0.45117,0.861328 0.29166,0.264337 0.98437,0.510431 2.07813,0.738282 2.70702,0.583346 4.64614,1.173514 5.81738,1.770507 1.17121,0.597017 2.02342,1.337576 2.55664,2.22168 0.53319,0.884123 0.79979,1.873055 0.79981,2.966797 -2e-5,1.285161 -0.35549,2.470056 -1.06641,3.554687 -0.71095,1.084638 -1.70444,1.907228 -2.98047,2.467774 -1.27605,0.560547 -2.88478,0.84082 -4.82617,0.84082 -3.40886,0 -5.76954,-0.656249 -7.08203,-1.96875 -1.3125,-1.312497 -2.05534,-2.980464 -2.22852,-5.003906 z" />
|
||||
d="m 778.62402,43.535286 5.89258,-0.369141 c 0.1276,0.957038 0.38736,1.686204 0.7793,2.1875 0.63801,0.811202 1.54947,1.216801 2.73437,1.216797 0.88411,4e-6 1.56542,-0.207353 2.04395,-0.62207 0.4785,-0.414709 0.71776,-0.895503 0.71777,-1.442383 -1e-5,-0.519525 -0.22788,-0.984368 -0.68359,-1.394531 -0.45574,-0.410149 -1.51303,-0.797518 -3.17188,-1.16211 -2.71615,-0.610668 -4.653,-1.421865 -5.81054,-2.433593 -1.16667,-1.011707 -1.75001,-2.30142 -1.75,-3.869141 -10e-6,-1.029932 0.2985,-2.002913 0.8955,-2.918945 0.59701,-0.915998 1.49479,-1.636049 2.69336,-2.160156 1.19856,-0.524069 2.84147,-0.786113 4.92871,-0.786133 2.56119,2e-5 4.51399,0.476257 5.8584,1.428711 1.34439,0.952492 2.14419,2.46779 2.39942,4.545898 l -5.83789,0.341797 c -0.15496,-0.902329 -0.48081,-1.558578 -0.97754,-1.96875 -0.49676,-0.41014 -1.18263,-0.615218 -2.05762,-0.615234 -0.72006,1.6e-5 -1.26238,0.152685 -1.62695,0.458007 -0.36459,0.305355 -0.54689,0.676774 -0.54688,1.114258 -1e-5,0.319025 0.15039,0.606134 0.45117,0.861328 0.29166,0.264337 0.98437,0.510431 2.07813,0.738282 2.70702,0.583346 4.64614,1.173514 5.81738,1.770507 1.17121,0.597017 2.02342,1.337576 2.55664,2.22168 0.53319,0.884123 0.79979,1.873055 0.79981,2.966797 -2e-5,1.285161 -0.35549,2.470056 -1.06641,3.554687 -0.71095,1.084638 -1.70444,1.907228 -2.98047,2.467774 -1.27605,0.560547 -2.88478,0.84082 -4.82617,0.84082 -3.40886,0 -5.76954,-0.656249 -7.08203,-1.96875 -1.3125,-1.312497 -2.05534,-2.980464 -2.22852,-5.003906 z"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<path
|
||||
id="path6990"
|
||||
d="m 787.71582,59.285714 0,-8.571429"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<g
|
||||
transform="translate(0.09755707,-83.494924)"
|
||||
@ -2353,12 +2784,14 @@
|
||||
<path
|
||||
id="path3645"
|
||||
style="font-size:28px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
d="m 26.930511,30.123177 5.878907,0 2.11914,11.197265 3.089844,-11.197265 5.865234,0 3.103516,11.197265 2.119141,-11.197265 5.851562,0 -4.416015,20.042968 -6.070313,0 -3.513672,-12.61914 -3.5,12.61914 -6.070312,0 z" />
|
||||
d="m 26.930511,30.123177 5.878907,0 2.11914,11.197265 3.089844,-11.197265 5.865234,0 3.103516,11.197265 2.119141,-11.197265 5.851562,0 -4.416015,20.042968 -6.070313,0 -3.513672,-12.61914 -3.5,12.61914 -6.070312,0 z"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<path
|
||||
id="path6992"
|
||||
d="m 40.944183,59.285714 0,-8.571429"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<g
|
||||
transform="translate(0.06781006,-83.494924)"
|
||||
@ -2371,12 +2804,14 @@
|
||||
<path
|
||||
id="path3648"
|
||||
style="font-size:28px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
d="m 530.34277,30.123177 16.59766,0 0,4.279296 -10.39063,0 0,3.185547 9.63868,0 0,4.087891 -9.63868,0 0,3.951172 10.69141,0 0,4.539062 -16.89844,0 z" />
|
||||
d="m 530.34277,30.123177 16.59766,0 0,4.279296 -10.39063,0 0,3.185547 9.63868,0 0,4.087891 -9.63868,0 0,3.951172 10.69141,0 0,4.539062 -16.89844,0 z"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<path
|
||||
id="path6994"
|
||||
d="m 538.79199,59.285714 0,-8.571429"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<g
|
||||
transform="translate(-0.76619339,-83.494924)"
|
||||
@ -2385,18 +2820,21 @@
|
||||
<path
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 346.03012,59.285714 0,-8.571429"
|
||||
id="path3048" />
|
||||
id="path3048"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
|
||||
id="text3062">
|
||||
<path
|
||||
d="m 345.65903,49.571434 -5.9668,0 c 0.0684,-0.589192 0.27588,-1.143391 0.62256,-1.662598 0.34668,-0.519203 0.9969,-1.131996 1.95068,-1.838379 0.58268,-0.432938 0.9554,-0.761714 1.11817,-0.986328 0.16275,-0.224604 0.24413,-0.43782 0.24414,-0.639648 -10e-6,-0.218094 -0.0806,-0.404454 -0.2417,-0.559082 -0.16114,-0.154617 -0.36378,-0.231928 -0.60791,-0.231934 -0.25391,6e-6 -0.46143,0.07976 -0.62256,0.239258 -0.16114,0.159511 -0.26937,0.441086 -0.32471,0.844727 l -1.99219,-0.161133 c 0.0781,-0.55989 0.22136,-0.996902 0.42969,-1.311035 0.20833,-0.314121 0.50212,-0.555006 0.88135,-0.722657 0.37923,-0.167636 0.90413,-0.251457 1.57471,-0.251464 0.69986,7e-6 1.2443,0.07976 1.6333,0.239257 0.38899,0.159512 0.69498,0.404467 0.91797,0.734864 0.22297,0.330409 0.33446,0.700689 0.33447,1.11084 -1e-5,0.436202 -0.12777,0.852868 -0.3833,1.25 -0.25554,0.397138 -0.72022,0.833336 -1.39404,1.308593 -0.4004,0.276695 -0.66814,0.47038 -0.80323,0.581055 -0.13509,0.110679 -0.29378,0.255536 -0.47607,0.43457 l 3.10547,0 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3651" />
|
||||
id="path3651"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 346.5184,45.963036 c 0,-1.360673 0.24496,-2.31282 0.73487,-2.856446 0.4899,-0.543613 1.23616,-0.815422 2.23876,-0.815429 0.48177,7e-6 0.87728,0.05941 1.18653,0.178222 0.30924,0.118822 0.56152,0.273445 0.75683,0.463867 0.19531,0.190437 0.34912,0.390632 0.46143,0.600586 0.1123,0.209967 0.20263,0.454921 0.271,0.734864 0.13345,0.533859 0.20019,1.090499 0.20019,1.669922 0,1.29883 -0.21973,2.24935 -0.65918,2.851562 -0.43946,0.602214 -1.19629,0.90332 -2.27051,0.90332 -0.60221,0 -1.08887,-0.09603 -1.45996,-0.288086 -0.37109,-0.192057 -0.67545,-0.473632 -0.91308,-0.844726 -0.17253,-0.263671 -0.30681,-0.624185 -0.40283,-1.081543 -0.096,-0.457354 -0.14405,-0.962725 -0.14405,-1.516113 z m 1.97266,0.0049 c 0,0.911461 0.0806,1.534019 0.2417,1.867676 0.16113,0.33366 0.39469,0.50049 0.70068,0.500488 0.20182,2e-6 0.37679,-0.0708 0.5249,-0.212402 0.14811,-0.1416 0.25716,-0.365395 0.32715,-0.671387 0.07,-0.305987 0.10498,-0.782874 0.10498,-1.430664 0,-0.950516 -0.0806,-1.58935 -0.2417,-1.916504 -0.16113,-0.327142 -0.40283,-0.490716 -0.72509,-0.490722 -0.32878,6e-6 -0.56641,0.166835 -0.7129,0.500488 -0.14648,0.333664 -0.21972,0.951339 -0.21972,1.853027 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3653" />
|
||||
id="path3653"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
@ -2406,18 +2844,21 @@
|
||||
<path
|
||||
id="path3046"
|
||||
d="m 316.306,59.285714 0,-8.571429"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
|
||||
id="text3860">
|
||||
<path
|
||||
d="m 314.34555,42.291161 0,7.280273 -2.01172,0 0,-4.770508 c -0.32552,0.247401 -0.64046,0.447596 -0.94482,0.600586 -0.30437,0.152999 -0.68604,0.299483 -1.14502,0.439453 l 0,-1.630859 c 0.67708,-0.218093 1.2028,-0.480137 1.57715,-0.786133 0.37434,-0.305983 0.66731,-0.683587 0.8789,-1.132812 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3656" />
|
||||
id="path3656"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 316.5184,45.963036 c 0,-1.360673 0.24496,-2.31282 0.73487,-2.856446 0.4899,-0.543613 1.23616,-0.815422 2.23876,-0.815429 0.48177,7e-6 0.87728,0.05941 1.18653,0.178222 0.30924,0.118822 0.56152,0.273445 0.75683,0.463867 0.19531,0.190437 0.34912,0.390632 0.46143,0.600586 0.1123,0.209967 0.20263,0.454921 0.271,0.734864 0.13345,0.533859 0.20019,1.090499 0.20019,1.669922 0,1.29883 -0.21973,2.24935 -0.65918,2.851562 -0.43946,0.602214 -1.19629,0.90332 -2.27051,0.90332 -0.60221,0 -1.08887,-0.09603 -1.45996,-0.288086 -0.37109,-0.192057 -0.67545,-0.473632 -0.91308,-0.844726 -0.17253,-0.263671 -0.30681,-0.624185 -0.40283,-1.081543 -0.096,-0.457354 -0.14405,-0.962725 -0.14405,-1.516113 z m 1.97266,0.0049 c 0,0.911461 0.0806,1.534019 0.2417,1.867676 0.16113,0.33366 0.39469,0.50049 0.70068,0.500488 0.20182,2e-6 0.37679,-0.0708 0.5249,-0.212402 0.14811,-0.1416 0.25716,-0.365395 0.32715,-0.671387 0.07,-0.305987 0.10498,-0.782874 0.10498,-1.430664 0,-0.950516 -0.0806,-1.58935 -0.2417,-1.916504 -0.16113,-0.327142 -0.40283,-0.490716 -0.72509,-0.490722 -0.32878,6e-6 -0.56641,0.166835 -0.7129,0.500488 -0.14648,0.333664 -0.21972,0.951339 -0.21972,1.853027 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3658" />
|
||||
id="path3658"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
@ -2427,18 +2868,21 @@
|
||||
<path
|
||||
id="path3050"
|
||||
d="m 372.07407,59.285714 0,-8.571429"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
|
||||
id="text3864">
|
||||
<path
|
||||
d="m 367.76743,44.483543 -1.87989,-0.336914 c 0.15625,-0.598952 0.45654,-1.057936 0.90088,-1.376953 0.44434,-0.319003 1.0734,-0.478508 1.88721,-0.478515 0.93424,7e-6 1.60969,0.17416 2.02637,0.522461 0.41666,0.348313 0.62499,0.786138 0.625,1.313476 -10e-6,0.30925 -0.0847,0.589198 -0.25391,0.839844 -0.16928,0.250655 -0.42481,0.470382 -0.7666,0.65918 0.27669,0.06836 0.48827,0.148115 0.63476,0.239257 0.23763,0.146488 0.42236,0.339359 0.5542,0.578614 0.13183,0.23926 0.19775,0.524905 0.19776,0.856933 -1e-5,0.416669 -0.10906,0.816245 -0.32715,1.198731 -0.21811,0.382487 -0.53223,0.677083 -0.94238,0.883789 -0.41017,0.206705 -0.9489,0.310058 -1.61622,0.310058 -0.65104,0 -1.16455,-0.0765 -1.54052,-0.229492 -0.37598,-0.152994 -0.68523,-0.37679 -0.92774,-0.671387 -0.24251,-0.294595 -0.42887,-0.664874 -0.55908,-1.110839 l 1.98731,-0.263672 c 0.0781,0.400392 0.19937,0.677898 0.36377,0.832519 0.16438,0.154624 0.37353,0.231935 0.62744,0.231934 0.26692,10e-7 0.48909,-0.09766 0.6665,-0.292969 0.17741,-0.195311 0.26611,-0.455727 0.26611,-0.78125 0,-0.332029 -0.0855,-0.58919 -0.25634,-0.771484 -0.17091,-0.182289 -0.40284,-0.273435 -0.6958,-0.273438 -0.15626,3e-6 -0.3711,0.03907 -0.64454,0.117188 l 0.10254,-1.420899 c 0.11068,0.01628 0.19694,0.02442 0.25879,0.02441 0.26042,5e-6 0.4777,-0.083 0.65186,-0.249023 0.17415,-0.166011 0.26122,-0.362951 0.26123,-0.59082 -10e-6,-0.218094 -0.0651,-0.392247 -0.19531,-0.522461 -0.13022,-0.130203 -0.30925,-0.195307 -0.53711,-0.195313 -0.23438,6e-6 -0.42481,0.07081 -0.57129,0.212402 -0.14649,0.141608 -0.24577,0.389817 -0.29785,0.744629 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3661" />
|
||||
id="path3661"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 372.5184,45.963036 c 0,-1.360673 0.24496,-2.31282 0.73487,-2.856446 0.4899,-0.543613 1.23616,-0.815422 2.23876,-0.815429 0.48177,7e-6 0.87728,0.05941 1.18653,0.178222 0.30924,0.118822 0.56152,0.273445 0.75683,0.463867 0.19531,0.190437 0.34912,0.390632 0.46143,0.600586 0.1123,0.209967 0.20263,0.454921 0.271,0.734864 0.13345,0.533859 0.20019,1.090499 0.20019,1.669922 0,1.29883 -0.21973,2.24935 -0.65918,2.851562 -0.43946,0.602214 -1.19629,0.90332 -2.27051,0.90332 -0.60221,0 -1.08887,-0.09603 -1.45996,-0.288086 -0.37109,-0.192057 -0.67545,-0.473632 -0.91308,-0.844726 -0.17253,-0.263671 -0.30681,-0.624185 -0.40283,-1.081543 -0.096,-0.457354 -0.14405,-0.962725 -0.14405,-1.516113 z m 1.97266,0.0049 c 0,0.911461 0.0806,1.534019 0.2417,1.867676 0.16113,0.33366 0.39469,0.50049 0.70068,0.500488 0.20182,2e-6 0.37679,-0.0708 0.5249,-0.212402 0.14811,-0.1416 0.25716,-0.365395 0.32715,-0.671387 0.07,-0.305987 0.10498,-0.782874 0.10498,-1.430664 0,-0.950516 -0.0806,-1.58935 -0.2417,-1.916504 -0.16113,-0.327142 -0.40283,-0.490716 -0.72509,-0.490722 -0.32878,6e-6 -0.56641,0.166835 -0.7129,0.500488 -0.14648,0.333664 -0.21972,0.951339 -0.21972,1.853027 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3663" />
|
||||
id="path3663"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
@ -2448,18 +2892,21 @@
|
||||
<path
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 454.10825,59.285714 0,-8.571429"
|
||||
id="path3056" />
|
||||
id="path3056"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
|
||||
id="text3872">
|
||||
<path
|
||||
d="m 453.59555,44.024559 -1.97754,0.244141 c -0.0521,-0.276687 -0.13916,-0.472 -0.26123,-0.585938 -0.12207,-0.113926 -0.27263,-0.170892 -0.45166,-0.170898 -0.32227,6e-6 -0.57292,0.162766 -0.75195,0.488281 -0.13021,0.23438 -0.22624,0.735682 -0.28809,1.503906 0.23763,-0.240881 0.48177,-0.419103 0.73242,-0.534668 0.25065,-0.115555 0.54036,-0.173335 0.86914,-0.17334 0.63802,5e-6 1.17757,0.22787 1.61866,0.683594 0.44107,0.455733 0.66161,1.033532 0.66162,1.733399 -10e-6,0.472007 -0.1115,0.903321 -0.33447,1.293945 -0.22299,0.390626 -0.53224,0.686035 -0.92774,0.88623 -0.39551,0.200196 -0.89112,0.300293 -1.48682,0.300293 -0.71614,0 -1.29069,-0.12207 -1.72363,-0.366211 -0.43294,-0.24414 -0.77881,-0.633951 -1.0376,-1.169433 -0.25879,-0.53548 -0.38818,-1.244301 -0.38818,-2.126465 0,-1.292313 0.27181,-2.238764 0.81543,-2.839356 0.54362,-0.600578 1.2972,-0.900871 2.26074,-0.900878 0.56966,7e-6 1.01969,0.06593 1.3501,0.197753 0.3304,0.131843 0.60465,0.324714 0.82275,0.578614 0.2181,0.253912 0.38411,0.572922 0.49805,0.957031 z m -3.66211,3.188477 c 0,0.387371 0.0976,0.690919 0.29297,0.910644 0.19531,0.219728 0.43457,0.329591 0.71777,0.32959 0.26042,10e-7 0.47851,-0.09928 0.6543,-0.297852 0.17578,-0.198566 0.26367,-0.494789 0.26367,-0.888671 0,-0.403644 -0.0911,-0.71126 -0.27344,-0.922852 -0.18229,-0.211585 -0.40853,-0.317379 -0.67871,-0.317383 -0.27669,4e-6 -0.50863,0.102543 -0.6958,0.307617 -0.18717,0.205081 -0.28076,0.49805 -0.28076,0.878907 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3666" />
|
||||
id="path3666"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 454.5184,45.963036 c 0,-1.360673 0.24496,-2.31282 0.73487,-2.856446 0.4899,-0.543613 1.23616,-0.815422 2.23876,-0.815429 0.48177,7e-6 0.87728,0.05941 1.18653,0.178222 0.30924,0.118822 0.56152,0.273445 0.75683,0.463867 0.19531,0.190437 0.34912,0.390632 0.46143,0.600586 0.1123,0.209967 0.20263,0.454921 0.271,0.734864 0.13345,0.533859 0.20019,1.090499 0.20019,1.669922 0,1.29883 -0.21973,2.24935 -0.65918,2.851562 -0.43946,0.602214 -1.19629,0.90332 -2.27051,0.90332 -0.60221,0 -1.08887,-0.09603 -1.45996,-0.288086 -0.37109,-0.192057 -0.67545,-0.473632 -0.91308,-0.844726 -0.17253,-0.263671 -0.30681,-0.624185 -0.40283,-1.081543 -0.096,-0.457354 -0.14405,-0.962725 -0.14405,-1.516113 z m 1.97266,0.0049 c 0,0.911461 0.0806,1.534019 0.2417,1.867676 0.16113,0.33366 0.39469,0.50049 0.70068,0.500488 0.20182,2e-6 0.37679,-0.0708 0.5249,-0.212402 0.14811,-0.1416 0.25716,-0.365395 0.32715,-0.671387 0.07,-0.305987 0.10498,-0.782874 0.10498,-1.430664 0,-0.950516 -0.0806,-1.58935 -0.2417,-1.916504 -0.16113,-0.327142 -0.40283,-0.490716 -0.72509,-0.490722 -0.32878,6e-6 -0.56641,0.166835 -0.7129,0.500488 -0.14648,0.333664 -0.21972,0.951339 -0.21972,1.853027 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3668" />
|
||||
id="path3668"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
@ -2469,18 +2916,21 @@
|
||||
<path
|
||||
id="path3058"
|
||||
d="m 484.12045,59.285714 0,-8.571429"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
|
||||
id="text3876">
|
||||
<path
|
||||
d="m 477.87289,42.413231 5.80567,0 0,1.342773 c -0.50456,0.455735 -0.92611,0.948898 -1.26465,1.479493 -0.41016,0.644534 -0.73405,1.362307 -0.97168,2.15332 -0.18881,0.615236 -0.31576,1.342774 -0.38086,2.182617 l -1.98242,0 c 0.15625,-1.168619 0.40202,-2.148435 0.7373,-2.939453 0.33529,-0.791012 0.86589,-1.637365 1.5918,-2.539063 l -3.53516,0 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3671" />
|
||||
id="path3671"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 484.5184,45.963036 c 0,-1.360673 0.24496,-2.31282 0.73487,-2.856446 0.4899,-0.543613 1.23616,-0.815422 2.23876,-0.815429 0.48177,7e-6 0.87728,0.05941 1.18653,0.178222 0.30924,0.118822 0.56152,0.273445 0.75683,0.463867 0.19531,0.190437 0.34912,0.390632 0.46143,0.600586 0.1123,0.209967 0.20263,0.454921 0.271,0.734864 0.13345,0.533859 0.20019,1.090499 0.20019,1.669922 0,1.29883 -0.21973,2.24935 -0.65918,2.851562 -0.43946,0.602214 -1.19629,0.90332 -2.27051,0.90332 -0.60221,0 -1.08887,-0.09603 -1.45996,-0.288086 -0.37109,-0.192057 -0.67545,-0.473632 -0.91308,-0.844726 -0.17253,-0.263671 -0.30681,-0.624185 -0.40283,-1.081543 -0.096,-0.457354 -0.14405,-0.962725 -0.14405,-1.516113 z m 1.97266,0.0049 c 0,0.911461 0.0806,1.534019 0.2417,1.867676 0.16113,0.33366 0.39469,0.50049 0.70068,0.500488 0.20182,2e-6 0.37679,-0.0708 0.5249,-0.212402 0.14811,-0.1416 0.25716,-0.365395 0.32715,-0.671387 0.07,-0.305987 0.10498,-0.782874 0.10498,-1.430664 0,-0.950516 -0.0806,-1.58935 -0.2417,-1.916504 -0.16113,-0.327142 -0.40283,-0.490716 -0.72509,-0.490722 -0.32878,6e-6 -0.56641,0.166835 -0.7129,0.500488 -0.14648,0.333664 -0.21972,0.951339 -0.21972,1.853027 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3673" />
|
||||
id="path3673"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
@ -2490,18 +2940,21 @@
|
||||
<path
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 512.10336,59.285714 0,-8.571429"
|
||||
id="path3060" />
|
||||
id="path3060"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
|
||||
id="text3880">
|
||||
<path
|
||||
d="m 507.035,45.723778 c -0.3125,-0.166012 -0.54036,-0.351559 -0.68359,-0.556641 -0.19531,-0.279943 -0.29297,-0.602208 -0.29297,-0.966797 0,-0.598952 0.28158,-1.08886 0.84473,-1.469726 0.43945,-0.292962 1.0205,-0.439446 1.74316,-0.439453 0.95703,7e-6 1.66422,0.182298 2.12158,0.546875 0.45735,0.364589 0.68603,0.823573 0.68604,1.376953 -1e-5,0.32227 -0.0912,0.623377 -0.27344,0.90332 -0.13672,0.208338 -0.35157,0.41016 -0.64453,0.605469 0.38736,0.18555 0.67626,0.431318 0.8667,0.737304 0.19042,0.305993 0.28564,0.644534 0.28564,1.015625 0,0.358075 -0.0822,0.692547 -0.24658,1.003418 -0.16439,0.310874 -0.36621,0.550945 -0.60547,0.720215 -0.23926,0.169271 -0.53711,0.293783 -0.89355,0.373535 -0.35645,0.07975 -0.7365,0.119629 -1.14014,0.119629 -0.75846,0 -1.33789,-0.08952 -1.73828,-0.268554 -0.40039,-0.179036 -0.70475,-0.442708 -0.91309,-0.791016 -0.20833,-0.348306 -0.3125,-0.737303 -0.3125,-1.166992 0,-0.41992 0.0977,-0.775551 0.29297,-1.066895 0.19531,-0.291337 0.49642,-0.51676 0.90332,-0.676269 z m 0.89356,-1.40625 c 0,0.247401 0.0773,0.446782 0.23193,0.598144 0.15462,0.151372 0.36051,0.227056 0.61768,0.227051 0.22786,5e-6 0.41503,-0.07486 0.56152,-0.224609 0.14648,-0.149735 0.21972,-0.34342 0.21973,-0.581055 -10e-6,-0.24739 -0.0765,-0.448399 -0.22949,-0.603027 -0.153,-0.154617 -0.34832,-0.231928 -0.58594,-0.231934 -0.24089,6e-6 -0.43702,0.07569 -0.58838,0.227051 -0.15137,0.151373 -0.22705,0.347499 -0.22705,0.588379 z m -0.10742,3.081054 c -1e-5,0.315758 0.096,0.573733 0.28808,0.773926 0.19206,0.200197 0.41178,0.300294 0.65918,0.300293 0.23763,1e-6 0.45084,-0.101724 0.63965,-0.305176 0.1888,-0.203448 0.2832,-0.461423 0.2832,-0.773925 0,-0.315753 -0.0952,-0.574542 -0.28564,-0.776368 -0.19043,-0.201819 -0.41097,-0.302731 -0.66162,-0.302734 -0.2474,3e-6 -0.46306,0.09766 -0.64697,0.292969 -0.18393,0.195315 -0.27589,0.458987 -0.27588,0.791015 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3676" />
|
||||
id="path3676"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 512.5184,45.963036 c 0,-1.360673 0.24496,-2.31282 0.73487,-2.856446 0.4899,-0.543613 1.23616,-0.815422 2.23876,-0.815429 0.48177,7e-6 0.87728,0.05941 1.18653,0.178222 0.30924,0.118822 0.56152,0.273445 0.75683,0.463867 0.19531,0.190437 0.34912,0.390632 0.46143,0.600586 0.1123,0.209967 0.20263,0.454921 0.271,0.734864 0.13345,0.533859 0.20019,1.090499 0.20019,1.669922 0,1.29883 -0.21973,2.24935 -0.65918,2.851562 -0.43946,0.602214 -1.19629,0.90332 -2.27051,0.90332 -0.60221,0 -1.08887,-0.09603 -1.45996,-0.288086 -0.37109,-0.192057 -0.67545,-0.473632 -0.91308,-0.844726 -0.17253,-0.263671 -0.30681,-0.624185 -0.40283,-1.081543 -0.096,-0.457354 -0.14405,-0.962725 -0.14405,-1.516113 z m 1.97266,0.0049 c 0,0.911461 0.0806,1.534019 0.2417,1.867676 0.16113,0.33366 0.39469,0.50049 0.70068,0.500488 0.20182,2e-6 0.37679,-0.0708 0.5249,-0.212402 0.14811,-0.1416 0.25716,-0.365395 0.32715,-0.671387 0.07,-0.305987 0.10498,-0.782874 0.10498,-1.430664 0,-0.950516 -0.0806,-1.58935 -0.2417,-1.916504 -0.16113,-0.327142 -0.40283,-0.490716 -0.72509,-0.490722 -0.32878,6e-6 -0.56641,0.166835 -0.7129,0.500488 -0.14648,0.333664 -0.21972,0.951339 -0.21972,1.853027 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3678" />
|
||||
id="path3678"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
@ -2511,22 +2964,26 @@
|
||||
<path
|
||||
id="path3916"
|
||||
d="m 568.45258,59.285714 0,-8.571429"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
|
||||
id="text3918">
|
||||
<path
|
||||
d="m 563.15228,42.291161 0,7.280273 -2.01172,0 0,-4.770508 c -0.32552,0.247401 -0.64046,0.447596 -0.94482,0.600586 -0.30436,0.152999 -0.68604,0.299483 -1.14502,0.439453 l 0,-1.630859 c 0.67708,-0.218093 1.2028,-0.480137 1.57715,-0.786133 0.37434,-0.305983 0.66731,-0.683587 0.8789,-1.132812 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3681" />
|
||||
id="path3681"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 565.32513,45.963036 c 0,-1.360673 0.24496,-2.31282 0.73487,-2.856446 0.4899,-0.543613 1.23616,-0.815422 2.23877,-0.815429 0.48176,7e-6 0.87727,0.05941 1.18652,0.178222 0.30924,0.118822 0.56152,0.273445 0.75684,0.463867 0.1953,0.190437 0.34911,0.390632 0.46142,0.600586 0.1123,0.209967 0.20263,0.454921 0.271,0.734864 0.13346,0.533859 0.20019,1.090499 0.20019,1.669922 0,1.29883 -0.21973,2.24935 -0.65918,2.851562 -0.43945,0.602214 -1.19629,0.90332 -2.2705,0.90332 -0.60222,0 -1.08887,-0.09603 -1.45996,-0.288086 -0.3711,-0.192057 -0.67546,-0.473632 -0.91309,-0.844726 -0.17253,-0.263671 -0.3068,-0.624185 -0.40283,-1.081543 -0.096,-0.457354 -0.14405,-0.962725 -0.14405,-1.516113 z m 1.97266,0.0049 c 0,0.911461 0.0806,1.534019 0.2417,1.867676 0.16113,0.33366 0.39469,0.50049 0.70068,0.500488 0.20182,2e-6 0.37679,-0.0708 0.52491,-0.212402 0.1481,-0.1416 0.25715,-0.365395 0.32714,-0.671387 0.07,-0.305987 0.10498,-0.782874 0.10498,-1.430664 0,-0.950516 -0.0806,-1.58935 -0.24169,-1.916504 -0.16114,-0.327142 -0.40284,-0.490716 -0.7251,-0.490722 -0.32878,6e-6 -0.56641,0.166835 -0.71289,0.500488 -0.14649,0.333664 -0.21973,0.951339 -0.21973,1.853027 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3683" />
|
||||
id="path3683"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 572.00482,45.963036 c 0,-1.360673 0.24496,-2.31282 0.73487,-2.856446 0.4899,-0.543613 1.23616,-0.815422 2.23876,-0.815429 0.48177,7e-6 0.87728,0.05941 1.18653,0.178222 0.30924,0.118822 0.56152,0.273445 0.75683,0.463867 0.19531,0.190437 0.34912,0.390632 0.46143,0.600586 0.1123,0.209967 0.20263,0.454921 0.271,0.734864 0.13345,0.533859 0.20018,1.090499 0.20019,1.669922 -10e-6,1.29883 -0.21973,2.24935 -0.65918,2.851562 -0.43946,0.602214 -1.19629,0.90332 -2.27051,0.90332 -0.60221,0 -1.08887,-0.09603 -1.45996,-0.288086 -0.37109,-0.192057 -0.67545,-0.473632 -0.91308,-0.844726 -0.17253,-0.263671 -0.30681,-0.624185 -0.40284,-1.081543 -0.096,-0.457354 -0.14404,-0.962725 -0.14404,-1.516113 z m 1.97266,0.0049 c 0,0.911461 0.0806,1.534019 0.2417,1.867676 0.16113,0.33366 0.39469,0.50049 0.70068,0.500488 0.20182,2e-6 0.37679,-0.0708 0.5249,-0.212402 0.14811,-0.1416 0.25716,-0.365395 0.32715,-0.671387 0.07,-0.305987 0.10498,-0.782874 0.10498,-1.430664 0,-0.950516 -0.0806,-1.58935 -0.2417,-1.916504 -0.16113,-0.327142 -0.40283,-0.490716 -0.72509,-0.490722 -0.32878,6e-6 -0.56641,0.166835 -0.7129,0.500488 -0.14648,0.333664 -0.21972,0.951339 -0.21972,1.853027 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3685" />
|
||||
id="path3685"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
@ -2536,22 +2993,26 @@
|
||||
<path
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 600.45258,59.285714 0,-8.571429"
|
||||
id="path3924" />
|
||||
id="path3924"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
|
||||
id="text3926">
|
||||
<path
|
||||
d="m 595.15228,42.291161 0,7.280273 -2.01172,0 0,-4.770508 c -0.32552,0.247401 -0.64046,0.447596 -0.94482,0.600586 -0.30436,0.152999 -0.68604,0.299483 -1.14502,0.439453 l 0,-1.630859 c 0.67708,-0.218093 1.2028,-0.480137 1.57715,-0.786133 0.37434,-0.305983 0.66731,-0.683587 0.8789,-1.132812 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3688" />
|
||||
id="path3688"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 601.83197,42.291161 0,7.280273 -2.01172,0 0,-4.770508 c -0.32552,0.247401 -0.64046,0.447596 -0.94482,0.600586 -0.30437,0.152999 -0.68604,0.299483 -1.14502,0.439453 l 0,-1.630859 c 0.67708,-0.218093 1.2028,-0.480137 1.57715,-0.786133 0.37434,-0.305983 0.66731,-0.683587 0.8789,-1.132812 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3690" />
|
||||
id="path3690"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 604.00482,45.963036 c 0,-1.360673 0.24496,-2.31282 0.73487,-2.856446 0.4899,-0.543613 1.23616,-0.815422 2.23876,-0.815429 0.48177,7e-6 0.87728,0.05941 1.18653,0.178222 0.30924,0.118822 0.56152,0.273445 0.75683,0.463867 0.19531,0.190437 0.34912,0.390632 0.46143,0.600586 0.1123,0.209967 0.20263,0.454921 0.271,0.734864 0.13345,0.533859 0.20018,1.090499 0.20019,1.669922 -10e-6,1.29883 -0.21973,2.24935 -0.65918,2.851562 -0.43946,0.602214 -1.19629,0.90332 -2.27051,0.90332 -0.60221,0 -1.08887,-0.09603 -1.45996,-0.288086 -0.37109,-0.192057 -0.67545,-0.473632 -0.91308,-0.844726 -0.17253,-0.263671 -0.30681,-0.624185 -0.40284,-1.081543 -0.096,-0.457354 -0.14404,-0.962725 -0.14404,-1.516113 z m 1.97266,0.0049 c 0,0.911461 0.0806,1.534019 0.2417,1.867676 0.16113,0.33366 0.39469,0.50049 0.70068,0.500488 0.20182,2e-6 0.37679,-0.0708 0.5249,-0.212402 0.14811,-0.1416 0.25716,-0.365395 0.32715,-0.671387 0.07,-0.305987 0.10498,-0.782874 0.10498,-1.430664 0,-0.950516 -0.0806,-1.58935 -0.2417,-1.916504 -0.16113,-0.327142 -0.40283,-0.490716 -0.72509,-0.490722 -0.32878,6e-6 -0.56641,0.166835 -0.7129,0.500488 -0.14648,0.333664 -0.21972,0.951339 -0.21972,1.853027 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3692" />
|
||||
id="path3692"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
@ -2561,22 +3022,26 @@
|
||||
<path
|
||||
id="path3932"
|
||||
d="m 632.45258,59.285714 0,-8.571429"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
|
||||
id="text3934">
|
||||
<path
|
||||
d="m 627.15228,42.291161 0,7.280273 -2.01172,0 0,-4.770508 c -0.32552,0.247401 -0.64046,0.447596 -0.94482,0.600586 -0.30436,0.152999 -0.68604,0.299483 -1.14502,0.439453 l 0,-1.630859 c 0.67708,-0.218093 1.2028,-0.480137 1.57715,-0.786133 0.37434,-0.305983 0.66731,-0.683587 0.8789,-1.132812 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3695" />
|
||||
id="path3695"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 635.14545,49.571434 -5.9668,0 c 0.0684,-0.589192 0.27588,-1.143391 0.62256,-1.662598 0.34668,-0.519203 0.9969,-1.131996 1.95068,-1.838379 0.58268,-0.432938 0.9554,-0.761714 1.11817,-0.986328 0.16275,-0.224604 0.24413,-0.43782 0.24414,-0.639648 -10e-6,-0.218094 -0.0806,-0.404454 -0.2417,-0.559082 -0.16114,-0.154617 -0.36378,-0.231928 -0.60791,-0.231934 -0.25391,6e-6 -0.46143,0.07976 -0.62256,0.239258 -0.16114,0.159511 -0.26937,0.441086 -0.32471,0.844727 l -1.99219,-0.161133 c 0.0781,-0.55989 0.22136,-0.996902 0.42969,-1.311035 0.20833,-0.314121 0.50212,-0.555006 0.88135,-0.722657 0.37923,-0.167636 0.90413,-0.251457 1.57471,-0.251464 0.69986,7e-6 1.2443,0.07976 1.6333,0.239257 0.38899,0.159512 0.69498,0.404467 0.91797,0.734864 0.22297,0.330409 0.33446,0.700689 0.33447,1.11084 -10e-6,0.436202 -0.12777,0.852868 -0.3833,1.25 -0.25554,0.397138 -0.72022,0.833336 -1.39405,1.308593 -0.40039,0.276695 -0.66813,0.47038 -0.80322,0.581055 -0.13509,0.110679 -0.29378,0.255536 -0.47607,0.43457 l 3.10547,0 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3697" />
|
||||
id="path3697"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 636.00482,45.963036 c 0,-1.360673 0.24496,-2.31282 0.73487,-2.856446 0.4899,-0.543613 1.23616,-0.815422 2.23876,-0.815429 0.48177,7e-6 0.87728,0.05941 1.18653,0.178222 0.30924,0.118822 0.56152,0.273445 0.75683,0.463867 0.19531,0.190437 0.34912,0.390632 0.46143,0.600586 0.1123,0.209967 0.20263,0.454921 0.271,0.734864 0.13345,0.533859 0.20018,1.090499 0.20019,1.669922 -10e-6,1.29883 -0.21973,2.24935 -0.65918,2.851562 -0.43946,0.602214 -1.19629,0.90332 -2.27051,0.90332 -0.60221,0 -1.08887,-0.09603 -1.45996,-0.288086 -0.37109,-0.192057 -0.67545,-0.473632 -0.91308,-0.844726 -0.17253,-0.263671 -0.30681,-0.624185 -0.40284,-1.081543 -0.096,-0.457354 -0.14404,-0.962725 -0.14404,-1.516113 z m 1.97266,0.0049 c 0,0.911461 0.0806,1.534019 0.2417,1.867676 0.16113,0.33366 0.39469,0.50049 0.70068,0.500488 0.20182,2e-6 0.37679,-0.0708 0.5249,-0.212402 0.14811,-0.1416 0.25716,-0.365395 0.32715,-0.671387 0.07,-0.305987 0.10498,-0.782874 0.10498,-1.430664 0,-0.950516 -0.0806,-1.58935 -0.2417,-1.916504 -0.16113,-0.327142 -0.40283,-0.490716 -0.72509,-0.490722 -0.32878,6e-6 -0.56641,0.166835 -0.7129,0.500488 -0.14648,0.333664 -0.21972,0.951339 -0.21972,1.853027 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3699" />
|
||||
id="path3699"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
@ -2586,22 +3051,26 @@
|
||||
<path
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 664.45258,59.285714 0,-8.571429"
|
||||
id="path3940" />
|
||||
id="path3940"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
|
||||
id="text3942">
|
||||
<path
|
||||
d="m 659.15228,42.291161 0,7.280273 -2.01172,0 0,-4.770508 c -0.32552,0.247401 -0.64046,0.447596 -0.94482,0.600586 -0.30436,0.152999 -0.68604,0.299483 -1.14502,0.439453 l 0,-1.630859 c 0.67708,-0.218093 1.2028,-0.480137 1.57715,-0.786133 0.37434,-0.305983 0.66731,-0.683587 0.8789,-1.132812 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3702" />
|
||||
id="path3702"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 663.25385,44.483543 -1.87989,-0.336914 c 0.15625,-0.598952 0.45654,-1.057936 0.90088,-1.376953 0.44434,-0.319003 1.0734,-0.478508 1.88721,-0.478515 0.93424,7e-6 1.60969,0.17416 2.02637,0.522461 0.41666,0.348313 0.62499,0.786138 0.625,1.313476 -10e-6,0.30925 -0.0846,0.589198 -0.25391,0.839844 -0.16928,0.250655 -0.42481,0.470382 -0.7666,0.65918 0.27669,0.06836 0.48827,0.148115 0.63476,0.239257 0.23763,0.146488 0.42236,0.339359 0.5542,0.578614 0.13183,0.23926 0.19775,0.524905 0.19776,0.856933 -10e-6,0.416669 -0.10906,0.816245 -0.32715,1.198731 -0.21811,0.382487 -0.53223,0.677083 -0.94238,0.883789 -0.41017,0.206705 -0.9489,0.310058 -1.61622,0.310058 -0.65104,0 -1.16455,-0.0765 -1.54052,-0.229492 -0.37598,-0.152994 -0.68523,-0.37679 -0.92774,-0.671387 -0.24251,-0.294595 -0.42887,-0.664874 -0.55908,-1.110839 l 1.98731,-0.263672 c 0.0781,0.400392 0.19937,0.677898 0.36376,0.832519 0.16439,0.154624 0.37354,0.231935 0.62745,0.231934 0.26692,10e-7 0.48909,-0.09766 0.6665,-0.292969 0.1774,-0.195311 0.26611,-0.455727 0.26611,-0.78125 0,-0.332029 -0.0855,-0.58919 -0.25634,-0.771484 -0.17091,-0.182289 -0.40284,-0.273435 -0.69581,-0.273438 -0.15625,3e-6 -0.37109,0.03907 -0.64453,0.117188 l 0.10254,-1.420899 c 0.11068,0.01628 0.19694,0.02442 0.25879,0.02441 0.26042,5e-6 0.4777,-0.083 0.65186,-0.249023 0.17415,-0.166011 0.26122,-0.362951 0.26123,-0.59082 -10e-6,-0.218094 -0.0651,-0.392247 -0.19531,-0.522461 -0.13022,-0.130203 -0.30925,-0.195307 -0.53711,-0.195313 -0.23438,6e-6 -0.42481,0.07081 -0.57129,0.212402 -0.14649,0.141608 -0.24577,0.389817 -0.29785,0.744629 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3704" />
|
||||
id="path3704"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 668.00482,45.963036 c 0,-1.360673 0.24496,-2.31282 0.73487,-2.856446 0.4899,-0.543613 1.23616,-0.815422 2.23876,-0.815429 0.48177,7e-6 0.87728,0.05941 1.18653,0.178222 0.30924,0.118822 0.56152,0.273445 0.75683,0.463867 0.19531,0.190437 0.34912,0.390632 0.46143,0.600586 0.1123,0.209967 0.20263,0.454921 0.271,0.734864 0.13345,0.533859 0.20018,1.090499 0.20019,1.669922 -10e-6,1.29883 -0.21973,2.24935 -0.65918,2.851562 -0.43946,0.602214 -1.19629,0.90332 -2.27051,0.90332 -0.60221,0 -1.08887,-0.09603 -1.45996,-0.288086 -0.37109,-0.192057 -0.67545,-0.473632 -0.91308,-0.844726 -0.17253,-0.263671 -0.30681,-0.624185 -0.40284,-1.081543 -0.096,-0.457354 -0.14404,-0.962725 -0.14404,-1.516113 z m 1.97266,0.0049 c 0,0.911461 0.0806,1.534019 0.2417,1.867676 0.16113,0.33366 0.39469,0.50049 0.70068,0.500488 0.20182,2e-6 0.37679,-0.0708 0.5249,-0.212402 0.14811,-0.1416 0.25716,-0.365395 0.32715,-0.671387 0.07,-0.305987 0.10498,-0.782874 0.10498,-1.430664 0,-0.950516 -0.0806,-1.58935 -0.2417,-1.916504 -0.16113,-0.327142 -0.40283,-0.490716 -0.72509,-0.490722 -0.32878,6e-6 -0.56641,0.166835 -0.7129,0.500488 -0.14648,0.333664 -0.21972,0.951339 -0.21972,1.853027 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3706" />
|
||||
id="path3706"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
@ -2611,22 +3080,26 @@
|
||||
<path
|
||||
id="path3948"
|
||||
d="m 696.45258,59.285714 0,-8.571429"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
|
||||
id="text3950">
|
||||
<path
|
||||
d="m 691.15228,42.291161 0,7.280273 -2.01172,0 0,-4.770508 c -0.32552,0.247401 -0.64046,0.447596 -0.94482,0.600586 -0.30436,0.152999 -0.68604,0.299483 -1.14502,0.439453 l 0,-1.630859 c 0.67708,-0.218093 1.2028,-0.480137 1.57715,-0.786133 0.37434,-0.305983 0.66731,-0.683587 0.8789,-1.132812 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3709" />
|
||||
id="path3709"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 696.7431,48.233543 -3.62304,0 0,-1.635742 3.62304,-4.30664 1.7334,0 0,4.399414 0.89844,0 0,1.542968 -0.89844,0 0,1.337891 -1.7334,0 z m 0,-1.542968 0,-2.250977 -1.91406,2.250977 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3711" />
|
||||
id="path3711"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 700.00482,45.963036 c 0,-1.360673 0.24496,-2.31282 0.73487,-2.856446 0.4899,-0.543613 1.23616,-0.815422 2.23876,-0.815429 0.48177,7e-6 0.87728,0.05941 1.18653,0.178222 0.30924,0.118822 0.56152,0.273445 0.75683,0.463867 0.19531,0.190437 0.34912,0.390632 0.46143,0.600586 0.1123,0.209967 0.20263,0.454921 0.271,0.734864 0.13345,0.533859 0.20018,1.090499 0.20019,1.669922 -10e-6,1.29883 -0.21973,2.24935 -0.65918,2.851562 -0.43946,0.602214 -1.19629,0.90332 -2.27051,0.90332 -0.60221,0 -1.08887,-0.09603 -1.45996,-0.288086 -0.37109,-0.192057 -0.67545,-0.473632 -0.91308,-0.844726 -0.17253,-0.263671 -0.30681,-0.624185 -0.40284,-1.081543 -0.096,-0.457354 -0.14404,-0.962725 -0.14404,-1.516113 z m 1.97266,0.0049 c 0,0.911461 0.0806,1.534019 0.2417,1.867676 0.16113,0.33366 0.39469,0.50049 0.70068,0.500488 0.20182,2e-6 0.37679,-0.0708 0.5249,-0.212402 0.14811,-0.1416 0.25716,-0.365395 0.32715,-0.671387 0.07,-0.305987 0.10498,-0.782874 0.10498,-1.430664 0,-0.950516 -0.0806,-1.58935 -0.2417,-1.916504 -0.16113,-0.327142 -0.40283,-0.490716 -0.72509,-0.490722 -0.32878,6e-6 -0.56641,0.166835 -0.7129,0.500488 -0.14648,0.333664 -0.21972,0.951339 -0.21972,1.853027 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3713" />
|
||||
id="path3713"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
@ -2636,22 +3109,26 @@
|
||||
<path
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 722.45258,59.285714 0,-8.571429"
|
||||
id="path3956" />
|
||||
id="path3956"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
|
||||
id="text3958">
|
||||
<path
|
||||
d="m 717.15228,42.291161 0,7.280273 -2.01172,0 0,-4.770508 c -0.32552,0.247401 -0.64046,0.447596 -0.94482,0.600586 -0.30436,0.152999 -0.68604,0.299483 -1.14502,0.439453 l 0,-1.630859 c 0.67708,-0.218093 1.2028,-0.480137 1.57715,-0.786133 0.37434,-0.305983 0.66731,-0.683587 0.8789,-1.132812 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3716" />
|
||||
id="path3716"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 720.1308,42.413231 4.72168,0 0,1.586914 -3.19824,0 -0.1709,1.074219 c 0.22135,-0.104162 0.44026,-0.182287 0.65674,-0.234375 0.21646,-0.05208 0.43049,-0.07812 0.64209,-0.07813 0.71614,5e-6 1.29719,0.216476 1.74316,0.649414 0.44596,0.432946 0.66894,0.978193 0.66894,1.635742 0,0.462242 -0.11475,0.906577 -0.34423,1.333008 -0.2295,0.426433 -0.55502,0.751953 -0.97657,0.976562 -0.42155,0.22461 -0.9611,0.336914 -1.61865,0.336914 -0.47201,0 -0.87647,-0.04476 -1.21338,-0.134277 -0.33691,-0.08952 -0.62337,-0.222982 -0.85937,-0.400391 -0.23601,-0.177408 -0.42725,-0.378417 -0.57373,-0.603027 -0.14649,-0.224608 -0.26856,-0.504556 -0.36621,-0.839844 l 2.01172,-0.219726 c 0.0488,0.322267 0.16275,0.567221 0.34179,0.734863 0.17904,0.167644 0.39225,0.251466 0.63965,0.251465 0.27669,10e-7 0.50537,-0.104979 0.68604,-0.314942 0.18066,-0.209959 0.27099,-0.523272 0.27099,-0.939941 0,-0.42643 -0.0911,-0.738929 -0.27344,-0.9375 -0.18229,-0.198564 -0.4248,-0.297848 -0.72753,-0.297852 -0.19207,4e-6 -0.37761,0.04721 -0.55665,0.141602 -0.13346,0.06836 -0.27995,0.192061 -0.43945,0.371094 l -1.69433,-0.244141 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3718" />
|
||||
id="path3718"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 726.00482,45.963036 c 0,-1.360673 0.24496,-2.31282 0.73487,-2.856446 0.4899,-0.543613 1.23616,-0.815422 2.23876,-0.815429 0.48177,7e-6 0.87728,0.05941 1.18653,0.178222 0.30924,0.118822 0.56152,0.273445 0.75683,0.463867 0.19531,0.190437 0.34912,0.390632 0.46143,0.600586 0.1123,0.209967 0.20263,0.454921 0.271,0.734864 0.13345,0.533859 0.20018,1.090499 0.20019,1.669922 -10e-6,1.29883 -0.21973,2.24935 -0.65918,2.851562 -0.43946,0.602214 -1.19629,0.90332 -2.27051,0.90332 -0.60221,0 -1.08887,-0.09603 -1.45996,-0.288086 -0.37109,-0.192057 -0.67545,-0.473632 -0.91308,-0.844726 -0.17253,-0.263671 -0.30681,-0.624185 -0.40284,-1.081543 -0.096,-0.457354 -0.14404,-0.962725 -0.14404,-1.516113 z m 1.97266,0.0049 c 0,0.911461 0.0806,1.534019 0.2417,1.867676 0.16113,0.33366 0.39469,0.50049 0.70068,0.500488 0.20182,2e-6 0.37679,-0.0708 0.5249,-0.212402 0.14811,-0.1416 0.25716,-0.365395 0.32715,-0.671387 0.07,-0.305987 0.10498,-0.782874 0.10498,-1.430664 0,-0.950516 -0.0806,-1.58935 -0.2417,-1.916504 -0.16113,-0.327142 -0.40283,-0.490716 -0.72509,-0.490722 -0.32878,6e-6 -0.56641,0.166835 -0.7129,0.500488 -0.14648,0.333664 -0.21972,0.951339 -0.21972,1.853027 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3720" />
|
||||
id="path3720"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
@ -2661,22 +3138,26 @@
|
||||
<path
|
||||
id="path3964"
|
||||
d="m 750.45258,59.285714 0,-8.571429"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
|
||||
id="text3966">
|
||||
<path
|
||||
d="m 745.15228,42.291161 0,7.280273 -2.01172,0 0,-4.770508 c -0.32552,0.247401 -0.64046,0.447596 -0.94482,0.600586 -0.30436,0.152999 -0.68604,0.299483 -1.14502,0.439453 l 0,-1.630859 c 0.67708,-0.218093 1.2028,-0.480137 1.57715,-0.786133 0.37434,-0.305983 0.66731,-0.683587 0.8789,-1.132812 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3723" />
|
||||
id="path3723"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 753.08197,44.024559 -1.97754,0.244141 c -0.0521,-0.276687 -0.13916,-0.472 -0.26123,-0.585938 -0.12207,-0.113926 -0.27263,-0.170892 -0.45166,-0.170898 -0.32227,6e-6 -0.57292,0.162766 -0.75195,0.488281 -0.13021,0.23438 -0.22624,0.735682 -0.28809,1.503906 0.23763,-0.240881 0.48177,-0.419103 0.73242,-0.534668 0.25065,-0.115555 0.54036,-0.173335 0.86914,-0.17334 0.63802,5e-6 1.17757,0.22787 1.61866,0.683594 0.44107,0.455733 0.66161,1.033532 0.66162,1.733399 -10e-6,0.472007 -0.1115,0.903321 -0.33448,1.293945 -0.22298,0.390626 -0.53223,0.686035 -0.92773,0.88623 -0.39551,0.200196 -0.89112,0.300293 -1.48682,0.300293 -0.71614,0 -1.29069,-0.12207 -1.72363,-0.366211 -0.43294,-0.24414 -0.77881,-0.633951 -1.0376,-1.169433 -0.25879,-0.53548 -0.38818,-1.244301 -0.38818,-2.126465 0,-1.292313 0.27181,-2.238764 0.81543,-2.839356 0.54362,-0.600578 1.2972,-0.900871 2.26074,-0.900878 0.56966,7e-6 1.01969,0.06593 1.3501,0.197753 0.3304,0.131843 0.60465,0.324714 0.82275,0.578614 0.2181,0.253912 0.38411,0.572922 0.49805,0.957031 z m -3.66211,3.188477 c 0,0.387371 0.0977,0.690919 0.29297,0.910644 0.19531,0.219728 0.43457,0.329591 0.71777,0.32959 0.26042,10e-7 0.47851,-0.09928 0.6543,-0.297852 0.17578,-0.198566 0.26367,-0.494789 0.26367,-0.888671 0,-0.403644 -0.0911,-0.71126 -0.27344,-0.922852 -0.18229,-0.211585 -0.40853,-0.317379 -0.67871,-0.317383 -0.27669,4e-6 -0.50863,0.102543 -0.6958,0.307617 -0.18717,0.205081 -0.28076,0.49805 -0.28076,0.878907 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3725" />
|
||||
id="path3725"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 754.00482,45.963036 c 0,-1.360673 0.24496,-2.31282 0.73487,-2.856446 0.4899,-0.543613 1.23616,-0.815422 2.23876,-0.815429 0.48177,7e-6 0.87728,0.05941 1.18653,0.178222 0.30924,0.118822 0.56152,0.273445 0.75683,0.463867 0.19531,0.190437 0.34912,0.390632 0.46143,0.600586 0.1123,0.209967 0.20263,0.454921 0.271,0.734864 0.13345,0.533859 0.20018,1.090499 0.20019,1.669922 -10e-6,1.29883 -0.21973,2.24935 -0.65918,2.851562 -0.43946,0.602214 -1.19629,0.90332 -2.27051,0.90332 -0.60221,0 -1.08887,-0.09603 -1.45996,-0.288086 -0.37109,-0.192057 -0.67545,-0.473632 -0.91308,-0.844726 -0.17253,-0.263671 -0.30681,-0.624185 -0.40284,-1.081543 -0.096,-0.457354 -0.14404,-0.962725 -0.14404,-1.516113 z m 1.97266,0.0049 c 0,0.911461 0.0806,1.534019 0.2417,1.867676 0.16113,0.33366 0.39469,0.50049 0.70068,0.500488 0.20182,2e-6 0.37679,-0.0708 0.5249,-0.212402 0.14811,-0.1416 0.25716,-0.365395 0.32715,-0.671387 0.07,-0.305987 0.10498,-0.782874 0.10498,-1.430664 0,-0.950516 -0.0806,-1.58935 -0.2417,-1.916504 -0.16113,-0.327142 -0.40283,-0.490716 -0.72509,-0.490722 -0.32878,6e-6 -0.56641,0.166835 -0.7129,0.500488 -0.14648,0.333664 -0.21972,0.951339 -0.21972,1.853027 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3727" />
|
||||
id="path3727"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
@ -2686,22 +3167,26 @@
|
||||
<path
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 774.45258,59.285714 0,-8.571429"
|
||||
id="path3972" />
|
||||
id="path3972"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
|
||||
id="text3974">
|
||||
<path
|
||||
d="m 769.15228,42.291161 0,7.280273 -2.01172,0 0,-4.770508 c -0.32552,0.247401 -0.64046,0.447596 -0.94482,0.600586 -0.30436,0.152999 -0.68604,0.299483 -1.14502,0.439453 l 0,-1.630859 c 0.67708,-0.218093 1.2028,-0.480137 1.57715,-0.786133 0.37434,-0.305983 0.66731,-0.683587 0.8789,-1.132812 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3730" />
|
||||
id="path3730"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 771.35931,42.413231 5.80567,0 0,1.342773 c -0.50457,0.455735 -0.92611,0.948898 -1.26465,1.479493 -0.41016,0.644534 -0.73405,1.362307 -0.97168,2.15332 -0.18881,0.615236 -0.31576,1.342774 -0.38086,2.182617 l -1.98242,0 c 0.15625,-1.168619 0.40201,-2.148435 0.7373,-2.939453 0.33529,-0.791012 0.86589,-1.637365 1.5918,-2.539063 l -3.53516,0 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3732" />
|
||||
id="path3732"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 778.00482,45.963036 c 0,-1.360673 0.24496,-2.31282 0.73487,-2.856446 0.4899,-0.543613 1.23616,-0.815422 2.23876,-0.815429 0.48177,7e-6 0.87728,0.05941 1.18653,0.178222 0.30924,0.118822 0.56152,0.273445 0.75683,0.463867 0.19531,0.190437 0.34912,0.390632 0.46143,0.600586 0.1123,0.209967 0.20263,0.454921 0.271,0.734864 0.13345,0.533859 0.20018,1.090499 0.20019,1.669922 -10e-6,1.29883 -0.21973,2.24935 -0.65918,2.851562 -0.43946,0.602214 -1.19629,0.90332 -2.27051,0.90332 -0.60221,0 -1.08887,-0.09603 -1.45996,-0.288086 -0.37109,-0.192057 -0.67545,-0.473632 -0.91308,-0.844726 -0.17253,-0.263671 -0.30681,-0.624185 -0.40284,-1.081543 -0.096,-0.457354 -0.14404,-0.962725 -0.14404,-1.516113 z m 1.97266,0.0049 c 0,0.911461 0.0806,1.534019 0.2417,1.867676 0.16113,0.33366 0.39469,0.50049 0.70068,0.500488 0.20182,2e-6 0.37679,-0.0708 0.5249,-0.212402 0.14811,-0.1416 0.25716,-0.365395 0.32715,-0.671387 0.07,-0.305987 0.10498,-0.782874 0.10498,-1.430664 0,-0.950516 -0.0806,-1.58935 -0.2417,-1.916504 -0.16113,-0.327142 -0.40283,-0.490716 -0.72509,-0.490722 -0.32878,6e-6 -0.56641,0.166835 -0.7129,0.500488 -0.14648,0.333664 -0.21972,0.951339 -0.21972,1.853027 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3734" />
|
||||
id="path3734"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
@ -2711,22 +3196,26 @@
|
||||
<path
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 72.562294,59.285714 0,-8.571429"
|
||||
id="path4052" />
|
||||
id="path4052"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
|
||||
id="text4054">
|
||||
<path
|
||||
d="m 68.851357,49.571434 -5.966797,0 c 0.06836,-0.589192 0.275878,-1.143391 0.622558,-1.662598 0.346679,-0.519203 0.996906,-1.131996 1.950684,-1.838379 0.582679,-0.432938 0.9554,-0.761714 1.118164,-0.986328 0.162756,-0.224604 0.244136,-0.43782 0.244141,-0.639648 -5e-6,-0.218094 -0.08057,-0.404454 -0.2417,-0.559082 -0.161136,-0.154617 -0.363773,-0.231928 -0.60791,-0.231934 -0.253909,6e-6 -0.461429,0.07976 -0.622558,0.239258 -0.161136,0.159511 -0.269371,0.441086 -0.324707,0.844727 l -1.992188,-0.161133 c 0.07813,-0.55989 0.221354,-0.996902 0.429688,-1.311035 0.208332,-0.314121 0.502114,-0.555006 0.881347,-0.722657 0.37923,-0.167636 0.904132,-0.251457 1.574707,-0.251464 0.699866,7e-6 1.244299,0.07976 1.633301,0.239257 0.388992,0.159512 0.694981,0.404467 0.917969,0.734864 0.222975,0.330409 0.334466,0.700689 0.334472,1.11084 -6e-6,0.436202 -0.127773,0.852868 -0.3833,1.25 -0.25554,0.397138 -0.72022,0.833336 -1.394043,1.308593 -0.400395,0.276695 -0.668136,0.47038 -0.803223,0.581055 -0.135095,0.110679 -0.293786,0.255536 -0.476074,0.43457 l 3.105469,0 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3737" />
|
||||
id="path3737"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 70.907021,45.723778 c -0.312502,-0.166012 -0.540366,-0.351559 -0.683594,-0.556641 -0.195313,-0.279943 -0.29297,-0.602208 -0.292969,-0.966797 -10e-7,-0.598952 0.281575,-1.08886 0.844727,-1.469726 0.439451,-0.292962 1.020505,-0.439446 1.743164,-0.439453 0.957027,7e-6 1.66422,0.182298 2.121582,0.546875 0.457351,0.364589 0.686029,0.823573 0.686035,1.376953 -6e-6,0.32227 -0.09115,0.623377 -0.273438,0.90332 -0.136724,0.208338 -0.351568,0.41016 -0.644531,0.605469 0.387364,0.18555 0.676264,0.431318 0.866699,0.737304 0.190424,0.305993 0.285639,0.644534 0.285645,1.015625 -6e-6,0.358075 -0.0822,0.692547 -0.246582,1.003418 -0.164394,0.310874 -0.366217,0.550945 -0.605469,0.720215 -0.239263,0.169271 -0.537114,0.293783 -0.893555,0.373535 -0.356449,0.07975 -0.736494,0.119629 -1.140136,0.119629 -0.758466,0 -1.337893,-0.08952 -1.738282,-0.268554 -0.400391,-0.179036 -0.704753,-0.442708 -0.913085,-0.791016 -0.208334,-0.348306 -0.312501,-0.737303 -0.3125,-1.166992 -10e-7,-0.41992 0.09766,-0.775551 0.292968,-1.066895 0.195312,-0.291337 0.496418,-0.51676 0.903321,-0.676269 z m 0.893554,-1.40625 c -2e-6,0.247401 0.07731,0.446782 0.231934,0.598144 0.154619,0.151372 0.360511,0.227056 0.617676,0.227051 0.227861,5e-6 0.415035,-0.07486 0.561523,-0.224609 0.14648,-0.149735 0.219723,-0.34342 0.219727,-0.581055 -4e-6,-0.24739 -0.0765,-0.448399 -0.229493,-0.603027 -0.152998,-0.154617 -0.34831,-0.231928 -0.585937,-0.231934 -0.240889,6e-6 -0.437015,0.07569 -0.588379,0.227051 -0.15137,0.151373 -0.227053,0.347499 -0.227051,0.588379 z m -0.107422,3.081054 c -2e-6,0.315758 0.09603,0.573733 0.288086,0.773926 0.192055,0.200197 0.411781,0.300294 0.65918,0.300293 0.237627,1e-6 0.450843,-0.101724 0.639648,-0.305176 0.188798,-0.203448 0.283199,-0.461423 0.283204,-0.773925 -5e-6,-0.315753 -0.09522,-0.574542 -0.285645,-0.776368 -0.190433,-0.201819 -0.410974,-0.302731 -0.661621,-0.302734 -0.247399,3e-6 -0.463056,0.09766 -0.646973,0.292969 -0.183921,0.195315 -0.275881,0.458987 -0.275879,0.791015 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3739" />
|
||||
id="path3739"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 76.390419,45.963036 c 0,-1.360673 0.244954,-2.31282 0.734863,-2.856446 0.489908,-0.543613 1.236163,-0.815422 2.23877,-0.815429 0.481767,7e-6 0.877274,0.05941 1.186523,0.178222 0.30924,0.118822 0.561519,0.273445 0.756836,0.463867 0.195307,0.190437 0.349116,0.390632 0.461426,0.600586 0.112299,0.209967 0.202631,0.454921 0.270996,0.734864 0.133457,0.533859 0.200189,1.090499 0.200195,1.669922 -6e-6,1.29883 -0.219732,2.24935 -0.659179,2.851562 -0.439459,0.602214 -1.196294,0.90332 -2.270508,0.90332 -0.602216,0 -1.08887,-0.09603 -1.459961,-0.288086 -0.371095,-0.192057 -0.675457,-0.473632 -0.913086,-0.844726 -0.172527,-0.263671 -0.306804,-0.624185 -0.402832,-1.081543 -0.09603,-0.457354 -0.144043,-0.962725 -0.144043,-1.516113 z m 1.972656,0.0049 c -2e-6,0.911461 0.08056,1.534019 0.241699,1.867676 0.161131,0.33366 0.394691,0.50049 0.700684,0.500488 0.201819,2e-6 0.376787,-0.0708 0.524902,-0.212402 0.148108,-0.1416 0.257158,-0.365395 0.327149,-0.671387 0.06998,-0.305987 0.104976,-0.782874 0.10498,-1.430664 -4e-6,-0.950516 -0.08057,-1.58935 -0.241699,-1.916504 -0.161137,-0.327142 -0.402836,-0.490716 -0.725098,-0.490722 -0.328779,6e-6 -0.566409,0.166835 -0.71289,0.500488 -0.146487,0.333664 -0.219729,0.951339 -0.219727,1.853027 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3741" />
|
||||
id="path3741"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
@ -2736,22 +3225,26 @@
|
||||
<path
|
||||
id="path4060"
|
||||
d="m 96.562294,59.285714 0,-8.571429"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
|
||||
id="text4062">
|
||||
<path
|
||||
d="m 92.851357,49.571434 -5.966797,0 c 0.06836,-0.589192 0.275878,-1.143391 0.622558,-1.662598 0.346679,-0.519203 0.996906,-1.131996 1.950684,-1.838379 0.582679,-0.432938 0.9554,-0.761714 1.118164,-0.986328 0.162756,-0.224604 0.244136,-0.43782 0.244141,-0.639648 -5e-6,-0.218094 -0.08057,-0.404454 -0.2417,-0.559082 -0.161136,-0.154617 -0.363773,-0.231928 -0.60791,-0.231934 -0.253909,6e-6 -0.461429,0.07976 -0.622558,0.239258 -0.161136,0.159511 -0.269371,0.441086 -0.324707,0.844727 l -1.992188,-0.161133 c 0.07813,-0.55989 0.221354,-0.996902 0.429688,-1.311035 0.208332,-0.314121 0.502114,-0.555006 0.881347,-0.722657 0.37923,-0.167636 0.904132,-0.251457 1.574707,-0.251464 0.699866,7e-6 1.244299,0.07976 1.633301,0.239257 0.388992,0.159512 0.694981,0.404467 0.917969,0.734864 0.222975,0.330409 0.334466,0.700689 0.334472,1.11084 -6e-6,0.436202 -0.127773,0.852868 -0.3833,1.25 -0.25554,0.397138 -0.72022,0.833336 -1.394043,1.308593 -0.400395,0.276695 -0.668136,0.47038 -0.803223,0.581055 -0.135095,0.110679 -0.293786,0.255536 -0.476074,0.43457 l 3.105469,0 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3744" />
|
||||
id="path3744"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 93.798622,47.964989 1.977539,-0.249024 c 0.05208,0.276695 0.139972,0.472007 0.263672,0.585938 0.123695,0.113933 0.275062,0.170899 0.454102,0.170898 0.319007,1e-6 0.56803,-0.161131 0.74707,-0.483398 0.130204,-0.237629 0.22786,-0.740558 0.292969,-1.508789 -0.237635,0.244143 -0.481775,0.423179 -0.732422,0.537109 -0.250654,0.113935 -0.540368,0.170901 -0.869141,0.170899 -0.641278,2e-6 -1.182456,-0.227862 -1.623535,-0.683594 -0.441081,-0.455726 -0.661621,-1.031897 -0.661621,-1.728516 0,-0.475255 0.112304,-0.908197 0.336914,-1.298828 0.224608,-0.390618 0.533853,-0.686028 0.927734,-0.88623 0.393879,-0.200189 0.88867,-0.300286 1.484375,-0.300293 0.716142,7e-6 1.290686,0.122891 1.723633,0.368652 0.432938,0.245775 0.778803,0.636399 1.037598,1.171875 0.258783,0.535487 0.388177,1.24268 0.388183,2.121582 -6e-6,1.29232 -0.271815,2.238771 -0.815429,2.839355 -0.543625,0.600587 -1.297205,0.900879 -2.260742,0.900879 -0.569664,0 -1.018883,-0.06592 -1.347657,-0.197754 -0.328777,-0.131835 -0.602214,-0.324706 -0.820312,-0.578613 -0.2181,-0.253905 -0.385743,-0.571288 -0.50293,-0.952148 z m 3.66211,-3.19336 c -5e-6,-0.387364 -0.09766,-0.690912 -0.292969,-0.910644 -0.195316,-0.219721 -0.432946,-0.329584 -0.712891,-0.32959 -0.263675,6e-6 -0.482587,0.09929 -0.656738,0.297852 -0.174156,0.198573 -0.261233,0.496424 -0.261231,0.893554 -2e-6,0.400395 0.09033,0.706385 0.270996,0.917969 0.180662,0.211592 0.406085,0.317386 0.67627,0.317383 0.279944,3e-6 0.512692,-0.102536 0.698242,-0.307617 0.185543,-0.205074 0.278316,-0.498043 0.278321,-0.878907 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3746" />
|
||||
id="path3746"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 100.39042,45.963036 c 0,-1.360673 0.24495,-2.31282 0.73486,-2.856446 0.48991,-0.543613 1.23617,-0.815422 2.23877,-0.815429 0.48177,7e-6 0.87728,0.05941 1.18653,0.178222 0.30924,0.118822 0.56151,0.273445 0.75683,0.463867 0.19531,0.190437 0.34912,0.390632 0.46143,0.600586 0.1123,0.209967 0.20263,0.454921 0.27099,0.734864 0.13346,0.533859 0.20019,1.090499 0.2002,1.669922 -1e-5,1.29883 -0.21973,2.24935 -0.65918,2.851562 -0.43946,0.602214 -1.19629,0.90332 -2.27051,0.90332 -0.60222,0 -1.08887,-0.09603 -1.45996,-0.288086 -0.3711,-0.192057 -0.67546,-0.473632 -0.91309,-0.844726 -0.17252,-0.263671 -0.3068,-0.624185 -0.40283,-1.081543 -0.096,-0.457354 -0.14404,-0.962725 -0.14404,-1.516113 z m 1.97266,0.0049 c -1e-5,0.911461 0.0806,1.534019 0.24169,1.867676 0.16113,0.33366 0.3947,0.50049 0.70069,0.500488 0.20182,2e-6 0.37678,-0.0708 0.5249,-0.212402 0.14811,-0.1416 0.25716,-0.365395 0.32715,-0.671387 0.07,-0.305987 0.10498,-0.782874 0.10498,-1.430664 0,-0.950516 -0.0806,-1.58935 -0.2417,-1.916504 -0.16114,-0.327142 -0.40284,-0.490716 -0.7251,-0.490722 -0.32878,6e-6 -0.56641,0.166835 -0.71289,0.500488 -0.14649,0.333664 -0.21973,0.951339 -0.21972,1.853027 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3748" />
|
||||
id="path3748"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
@ -2761,22 +3254,26 @@
|
||||
<path
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 122.60624,59.285714 0,-8.571429"
|
||||
id="path4068" />
|
||||
id="path4068"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
|
||||
id="text4070">
|
||||
<path
|
||||
d="m 114.95975,44.483543 -1.87988,-0.336914 c 0.15625,-0.598952 0.45654,-1.057936 0.90088,-1.376953 0.44434,-0.319003 1.0734,-0.478508 1.88721,-0.478515 0.93424,7e-6 1.60969,0.17416 2.02637,0.522461 0.41666,0.348313 0.62499,0.786138 0.625,1.313476 -1e-5,0.30925 -0.0846,0.589198 -0.25391,0.839844 -0.16928,0.250655 -0.42481,0.470382 -0.7666,0.65918 0.27668,0.06836 0.48827,0.148115 0.63476,0.239257 0.23763,0.146488 0.42236,0.339359 0.5542,0.578614 0.13183,0.23926 0.19775,0.524905 0.19776,0.856933 -1e-5,0.416669 -0.10906,0.816245 -0.32715,1.198731 -0.21811,0.382487 -0.53223,0.677083 -0.94239,0.883789 -0.41016,0.206705 -0.94889,0.310058 -1.61621,0.310058 -0.65104,0 -1.16455,-0.0765 -1.54052,-0.229492 -0.37598,-0.152994 -0.68523,-0.37679 -0.92774,-0.671387 -0.24251,-0.294595 -0.42887,-0.664874 -0.55908,-1.110839 l 1.9873,-0.263672 c 0.0781,0.400392 0.19938,0.677898 0.36377,0.832519 0.16439,0.154624 0.37354,0.231935 0.62745,0.231934 0.26692,10e-7 0.48909,-0.09766 0.6665,-0.292969 0.1774,-0.195311 0.26611,-0.455727 0.26611,-0.78125 0,-0.332029 -0.0854,-0.58919 -0.25634,-0.771484 -0.17091,-0.182289 -0.40284,-0.273435 -0.69581,-0.273438 -0.15625,3e-6 -0.37109,0.03907 -0.64453,0.117188 l 0.10254,-1.420899 c 0.11068,0.01628 0.19694,0.02442 0.25879,0.02441 0.26041,5e-6 0.4777,-0.083 0.65186,-0.249023 0.17415,-0.166011 0.26122,-0.362951 0.26123,-0.59082 -10e-6,-0.218094 -0.0651,-0.392247 -0.19532,-0.522461 -0.13021,-0.130203 -0.30924,-0.195307 -0.5371,-0.195313 -0.23438,6e-6 -0.42481,0.07081 -0.57129,0.212402 -0.14649,0.141608 -0.24577,0.389817 -0.29786,0.744629 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3751" />
|
||||
id="path3751"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 119.71073,45.963036 c 0,-1.360673 0.24496,-2.31282 0.73486,-2.856446 0.48991,-0.543613 1.23617,-0.815422 2.23877,-0.815429 0.48177,7e-6 0.87728,0.05941 1.18653,0.178222 0.30924,0.118822 0.56152,0.273445 0.75683,0.463867 0.19531,0.190437 0.34912,0.390632 0.46143,0.600586 0.1123,0.209967 0.20263,0.454921 0.271,0.734864 0.13345,0.533859 0.20018,1.090499 0.20019,1.669922 -1e-5,1.29883 -0.21973,2.24935 -0.65918,2.851562 -0.43946,0.602214 -1.19629,0.90332 -2.27051,0.90332 -0.60221,0 -1.08887,-0.09603 -1.45996,-0.288086 -0.37109,-0.192057 -0.67545,-0.473632 -0.91308,-0.844726 -0.17253,-0.263671 -0.30681,-0.624185 -0.40284,-1.081543 -0.096,-0.457354 -0.14404,-0.962725 -0.14404,-1.516113 z m 1.97266,0.0049 c 0,0.911461 0.0806,1.534019 0.2417,1.867676 0.16113,0.33366 0.39469,0.50049 0.70068,0.500488 0.20182,2e-6 0.37679,-0.0708 0.5249,-0.212402 0.14811,-0.1416 0.25716,-0.365395 0.32715,-0.671387 0.07,-0.305987 0.10498,-0.782874 0.10498,-1.430664 0,-0.950516 -0.0806,-1.58935 -0.2417,-1.916504 -0.16113,-0.327142 -0.40283,-0.490716 -0.7251,-0.490722 -0.32877,6e-6 -0.5664,0.166835 -0.71289,0.500488 -0.14648,0.333664 -0.21972,0.951339 -0.21972,1.853027 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3753" />
|
||||
id="path3753"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 126.39042,45.963036 c 0,-1.360673 0.24495,-2.31282 0.73486,-2.856446 0.48991,-0.543613 1.23617,-0.815422 2.23877,-0.815429 0.48177,7e-6 0.87728,0.05941 1.18653,0.178222 0.30924,0.118822 0.56151,0.273445 0.75683,0.463867 0.19531,0.190437 0.34912,0.390632 0.46143,0.600586 0.1123,0.209967 0.20263,0.454921 0.27099,0.734864 0.13346,0.533859 0.20019,1.090499 0.2002,1.669922 -1e-5,1.29883 -0.21973,2.24935 -0.65918,2.851562 -0.43946,0.602214 -1.19629,0.90332 -2.27051,0.90332 -0.60222,0 -1.08887,-0.09603 -1.45996,-0.288086 -0.3711,-0.192057 -0.67546,-0.473632 -0.91309,-0.844726 -0.17252,-0.263671 -0.3068,-0.624185 -0.40283,-1.081543 -0.096,-0.457354 -0.14404,-0.962725 -0.14404,-1.516113 z m 1.97266,0.0049 c -1e-5,0.911461 0.0806,1.534019 0.24169,1.867676 0.16113,0.33366 0.3947,0.50049 0.70069,0.500488 0.20182,2e-6 0.37678,-0.0708 0.5249,-0.212402 0.14811,-0.1416 0.25716,-0.365395 0.32715,-0.671387 0.07,-0.305987 0.10498,-0.782874 0.10498,-1.430664 0,-0.950516 -0.0806,-1.58935 -0.2417,-1.916504 -0.16114,-0.327142 -0.40284,-0.490716 -0.7251,-0.490722 -0.32878,6e-6 -0.56641,0.166835 -0.71289,0.500488 -0.14649,0.333664 -0.21973,0.951339 -0.21972,1.853027 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3755" />
|
||||
id="path3755"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
@ -2786,22 +3283,26 @@
|
||||
<path
|
||||
id="path4076"
|
||||
d="m 146.60625,59.285714 0,-8.571429"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
|
||||
id="text4078">
|
||||
<path
|
||||
d="m 138.95976,44.483543 -1.87988,-0.336914 c 0.15625,-0.598952 0.45654,-1.057936 0.90088,-1.376953 0.44433,-0.319003 1.0734,-0.478508 1.88721,-0.478515 0.93424,7e-6 1.60969,0.17416 2.02636,0.522461 0.41666,0.348313 0.625,0.786138 0.625,1.313476 0,0.30925 -0.0846,0.589198 -0.2539,0.839844 -0.16928,0.250655 -0.42481,0.470382 -0.7666,0.65918 0.27668,0.06836 0.48827,0.148115 0.63476,0.239257 0.23763,0.146488 0.42236,0.339359 0.5542,0.578614 0.13183,0.23926 0.19775,0.524905 0.19775,0.856933 0,0.416669 -0.10905,0.816245 -0.32714,1.198731 -0.21811,0.382487 -0.53224,0.677083 -0.94239,0.883789 -0.41016,0.206705 -0.94889,0.310058 -1.61621,0.310058 -0.65104,0 -1.16455,-0.0765 -1.54053,-0.229492 -0.37597,-0.152994 -0.68522,-0.37679 -0.92773,-0.671387 -0.24251,-0.294595 -0.42887,-0.664874 -0.55908,-1.110839 l 1.9873,-0.263672 c 0.0781,0.400392 0.19938,0.677898 0.36377,0.832519 0.16439,0.154624 0.37353,0.231935 0.62744,0.231934 0.26693,10e-7 0.48909,-0.09766 0.66651,-0.292969 0.1774,-0.195311 0.26611,-0.455727 0.26611,-0.78125 0,-0.332029 -0.0855,-0.58919 -0.25635,-0.771484 -0.1709,-0.182289 -0.40283,-0.273435 -0.6958,-0.273438 -0.15625,3e-6 -0.37109,0.03907 -0.64453,0.117188 l 0.10254,-1.420899 c 0.11067,0.01628 0.19694,0.02442 0.25879,0.02441 0.26041,5e-6 0.4777,-0.083 0.65185,-0.249023 0.17415,-0.166011 0.26123,-0.362951 0.26124,-0.59082 -1e-5,-0.218094 -0.0651,-0.392247 -0.19532,-0.522461 -0.13021,-0.130203 -0.30925,-0.195307 -0.53711,-0.195313 -0.23437,6e-6 -0.4248,0.07081 -0.57129,0.212402 -0.14648,0.141608 -0.24577,0.389817 -0.29785,0.744629 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3758" />
|
||||
id="path3758"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 148.21758,42.291161 0,7.280273 -2.01172,0 0,-4.770508 c -0.32553,0.247401 -0.64047,0.447596 -0.94483,0.600586 -0.30436,0.152999 -0.68603,0.299483 -1.14502,0.439453 l 0,-1.630859 c 0.67708,-0.218093 1.2028,-0.480137 1.57715,-0.786133 0.37435,-0.305983 0.66732,-0.683587 0.87891,-1.132812 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3760" />
|
||||
id="path3760"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 150.39043,45.963036 c 0,-1.360673 0.24495,-2.31282 0.73486,-2.856446 0.48991,-0.543613 1.23616,-0.815422 2.23877,-0.815429 0.48177,7e-6 0.87727,0.05941 1.18652,0.178222 0.30924,0.118822 0.56152,0.273445 0.75684,0.463867 0.19531,0.190437 0.34911,0.390632 0.46142,0.600586 0.1123,0.209967 0.20264,0.454921 0.271,0.734864 0.13346,0.533859 0.20019,1.090499 0.2002,1.669922 -1e-5,1.29883 -0.21974,2.24935 -0.65918,2.851562 -0.43946,0.602214 -1.1963,0.90332 -2.27051,0.90332 -0.60222,0 -1.08887,-0.09603 -1.45996,-0.288086 -0.3711,-0.192057 -0.67546,-0.473632 -0.91309,-0.844726 -0.17253,-0.263671 -0.3068,-0.624185 -0.40283,-1.081543 -0.096,-0.457354 -0.14404,-0.962725 -0.14404,-1.516113 z m 1.97265,0.0049 c 0,0.911461 0.0806,1.534019 0.2417,1.867676 0.16113,0.33366 0.39469,0.50049 0.70069,0.500488 0.20182,2e-6 0.37678,-0.0708 0.5249,-0.212402 0.14811,-0.1416 0.25716,-0.365395 0.32715,-0.671387 0.07,-0.305987 0.10497,-0.782874 0.10498,-1.430664 -10e-6,-0.950516 -0.0806,-1.58935 -0.2417,-1.916504 -0.16114,-0.327142 -0.40284,-0.490716 -0.7251,-0.490722 -0.32878,6e-6 -0.56641,0.166835 -0.71289,0.500488 -0.14649,0.333664 -0.21973,0.951339 -0.21973,1.853027 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3762" />
|
||||
id="path3762"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
@ -2811,22 +3312,26 @@
|
||||
<path
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 174.60625,59.285714 0,-8.571429"
|
||||
id="path4084" />
|
||||
id="path4084"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
|
||||
id="text4086">
|
||||
<path
|
||||
d="m 166.95976,44.483543 -1.87988,-0.336914 c 0.15625,-0.598952 0.45654,-1.057936 0.90088,-1.376953 0.44433,-0.319003 1.0734,-0.478508 1.88721,-0.478515 0.93424,7e-6 1.60969,0.17416 2.02636,0.522461 0.41666,0.348313 0.625,0.786138 0.625,1.313476 0,0.30925 -0.0846,0.589198 -0.2539,0.839844 -0.16928,0.250655 -0.42481,0.470382 -0.7666,0.65918 0.27668,0.06836 0.48827,0.148115 0.63476,0.239257 0.23763,0.146488 0.42236,0.339359 0.5542,0.578614 0.13183,0.23926 0.19775,0.524905 0.19775,0.856933 0,0.416669 -0.10905,0.816245 -0.32714,1.198731 -0.21811,0.382487 -0.53224,0.677083 -0.94239,0.883789 -0.41016,0.206705 -0.94889,0.310058 -1.61621,0.310058 -0.65104,0 -1.16455,-0.0765 -1.54053,-0.229492 -0.37597,-0.152994 -0.68522,-0.37679 -0.92773,-0.671387 -0.24251,-0.294595 -0.42887,-0.664874 -0.55908,-1.110839 l 1.9873,-0.263672 c 0.0781,0.400392 0.19938,0.677898 0.36377,0.832519 0.16439,0.154624 0.37353,0.231935 0.62744,0.231934 0.26693,10e-7 0.48909,-0.09766 0.66651,-0.292969 0.1774,-0.195311 0.26611,-0.455727 0.26611,-0.78125 0,-0.332029 -0.0855,-0.58919 -0.25635,-0.771484 -0.1709,-0.182289 -0.40283,-0.273435 -0.6958,-0.273438 -0.15625,3e-6 -0.37109,0.03907 -0.64453,0.117188 l 0.10254,-1.420899 c 0.11067,0.01628 0.19694,0.02442 0.25879,0.02441 0.26041,5e-6 0.4777,-0.083 0.65185,-0.249023 0.17415,-0.166011 0.26123,-0.362951 0.26124,-0.59082 -1e-5,-0.218094 -0.0651,-0.392247 -0.19532,-0.522461 -0.13021,-0.130203 -0.30925,-0.195307 -0.53711,-0.195313 -0.23437,6e-6 -0.4248,0.07081 -0.57129,0.212402 -0.14648,0.141608 -0.24577,0.389817 -0.29785,0.744629 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3765" />
|
||||
id="path3765"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 177.53105,49.571434 -5.9668,0 c 0.0684,-0.589192 0.27588,-1.143391 0.62256,-1.662598 0.34668,-0.519203 0.99691,-1.131996 1.95069,-1.838379 0.58268,-0.432938 0.9554,-0.761714 1.11816,-0.986328 0.16276,-0.224604 0.24414,-0.43782 0.24414,-0.639648 0,-0.218094 -0.0806,-0.404454 -0.2417,-0.559082 -0.16113,-0.154617 -0.36377,-0.231928 -0.60791,-0.231934 -0.25391,6e-6 -0.46143,0.07976 -0.62256,0.239258 -0.16113,0.159511 -0.26937,0.441086 -0.3247,0.844727 l -1.99219,-0.161133 c 0.0781,-0.55989 0.22135,-0.996902 0.42969,-1.311035 0.20833,-0.314121 0.50211,-0.555006 0.88134,-0.722657 0.37923,-0.167636 0.90414,-0.251457 1.57471,-0.251464 0.69987,7e-6 1.2443,0.07976 1.6333,0.239257 0.38899,0.159512 0.69498,0.404467 0.91797,0.734864 0.22298,0.330409 0.33447,0.700689 0.33447,1.11084 0,0.436202 -0.12777,0.852868 -0.3833,1.25 -0.25554,0.397138 -0.72022,0.833336 -1.39404,1.308593 -0.40039,0.276695 -0.66814,0.47038 -0.80322,0.581055 -0.1351,0.110679 -0.29379,0.255536 -0.47608,0.43457 l 3.10547,0 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3767" />
|
||||
id="path3767"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 178.39043,45.963036 c 0,-1.360673 0.24495,-2.31282 0.73486,-2.856446 0.48991,-0.543613 1.23616,-0.815422 2.23877,-0.815429 0.48177,7e-6 0.87727,0.05941 1.18652,0.178222 0.30924,0.118822 0.56152,0.273445 0.75684,0.463867 0.19531,0.190437 0.34911,0.390632 0.46142,0.600586 0.1123,0.209967 0.20264,0.454921 0.271,0.734864 0.13346,0.533859 0.20019,1.090499 0.2002,1.669922 -1e-5,1.29883 -0.21974,2.24935 -0.65918,2.851562 -0.43946,0.602214 -1.1963,0.90332 -2.27051,0.90332 -0.60222,0 -1.08887,-0.09603 -1.45996,-0.288086 -0.3711,-0.192057 -0.67546,-0.473632 -0.91309,-0.844726 -0.17253,-0.263671 -0.3068,-0.624185 -0.40283,-1.081543 -0.096,-0.457354 -0.14404,-0.962725 -0.14404,-1.516113 z m 1.97265,0.0049 c 0,0.911461 0.0806,1.534019 0.2417,1.867676 0.16113,0.33366 0.39469,0.50049 0.70069,0.500488 0.20182,2e-6 0.37678,-0.0708 0.5249,-0.212402 0.14811,-0.1416 0.25716,-0.365395 0.32715,-0.671387 0.07,-0.305987 0.10497,-0.782874 0.10498,-1.430664 -10e-6,-0.950516 -0.0806,-1.58935 -0.2417,-1.916504 -0.16114,-0.327142 -0.40284,-0.490716 -0.7251,-0.490722 -0.32878,6e-6 -0.56641,0.166835 -0.71289,0.500488 -0.14649,0.333664 -0.21973,0.951339 -0.21973,1.853027 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3769" />
|
||||
id="path3769"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
@ -2836,22 +3341,26 @@
|
||||
<path
|
||||
id="path4092"
|
||||
d="m 200.60625,59.285714 0,-8.571429"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
|
||||
id="text4094">
|
||||
<path
|
||||
d="m 192.95976,44.483543 -1.87988,-0.336914 c 0.15625,-0.598952 0.45654,-1.057936 0.90088,-1.376953 0.44433,-0.319003 1.0734,-0.478508 1.88721,-0.478515 0.93424,7e-6 1.60969,0.17416 2.02636,0.522461 0.41666,0.348313 0.625,0.786138 0.625,1.313476 0,0.30925 -0.0846,0.589198 -0.2539,0.839844 -0.16928,0.250655 -0.42481,0.470382 -0.7666,0.65918 0.27668,0.06836 0.48827,0.148115 0.63476,0.239257 0.23763,0.146488 0.42236,0.339359 0.5542,0.578614 0.13183,0.23926 0.19775,0.524905 0.19775,0.856933 0,0.416669 -0.10905,0.816245 -0.32714,1.198731 -0.21811,0.382487 -0.53224,0.677083 -0.94239,0.883789 -0.41016,0.206705 -0.94889,0.310058 -1.61621,0.310058 -0.65104,0 -1.16455,-0.0765 -1.54053,-0.229492 -0.37597,-0.152994 -0.68522,-0.37679 -0.92773,-0.671387 -0.24251,-0.294595 -0.42887,-0.664874 -0.55908,-1.110839 l 1.9873,-0.263672 c 0.0781,0.400392 0.19938,0.677898 0.36377,0.832519 0.16439,0.154624 0.37353,0.231935 0.62744,0.231934 0.26693,10e-7 0.48909,-0.09766 0.66651,-0.292969 0.1774,-0.195311 0.26611,-0.455727 0.26611,-0.78125 0,-0.332029 -0.0855,-0.58919 -0.25635,-0.771484 -0.1709,-0.182289 -0.40283,-0.273435 -0.6958,-0.273438 -0.15625,3e-6 -0.37109,0.03907 -0.64453,0.117188 l 0.10254,-1.420899 c 0.11067,0.01628 0.19694,0.02442 0.25879,0.02441 0.26041,5e-6 0.4777,-0.083 0.65185,-0.249023 0.17415,-0.166011 0.26123,-0.362951 0.26124,-0.59082 -1e-5,-0.218094 -0.0651,-0.392247 -0.19532,-0.522461 -0.13021,-0.130203 -0.30925,-0.195307 -0.53711,-0.195313 -0.23437,6e-6 -0.4248,0.07081 -0.57129,0.212402 -0.14648,0.141608 -0.24577,0.389817 -0.29785,0.744629 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3772" />
|
||||
id="path3772"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 199.63945,44.483543 -1.87988,-0.336914 c 0.15625,-0.598952 0.45654,-1.057936 0.90088,-1.376953 0.44433,-0.319003 1.0734,-0.478508 1.8872,-0.478515 0.93424,7e-6 1.6097,0.17416 2.02637,0.522461 0.41666,0.348313 0.62499,0.786138 0.625,1.313476 -1e-5,0.30925 -0.0846,0.589198 -0.25391,0.839844 -0.16927,0.250655 -0.42481,0.470382 -0.7666,0.65918 0.27669,0.06836 0.48828,0.148115 0.63477,0.239257 0.23762,0.146488 0.42236,0.339359 0.5542,0.578614 0.13183,0.23926 0.19775,0.524905 0.19775,0.856933 0,0.416669 -0.10905,0.816245 -0.32715,1.198731 -0.2181,0.382487 -0.53223,0.677083 -0.94238,0.883789 -0.41016,0.206705 -0.9489,0.310058 -1.61621,0.310058 -0.65105,0 -1.16455,-0.0765 -1.54053,-0.229492 -0.37598,-0.152994 -0.68522,-0.37679 -0.92773,-0.671387 -0.24252,-0.294595 -0.42888,-0.664874 -0.55908,-1.110839 l 1.9873,-0.263672 c 0.0781,0.400392 0.19938,0.677898 0.36377,0.832519 0.16438,0.154624 0.37353,0.231935 0.62744,0.231934 0.26692,10e-7 0.48909,-0.09766 0.6665,-0.292969 0.17741,-0.195311 0.26611,-0.455727 0.26612,-0.78125 -1e-5,-0.332029 -0.0855,-0.58919 -0.25635,-0.771484 -0.1709,-0.182289 -0.40284,-0.273435 -0.6958,-0.273438 -0.15625,3e-6 -0.3711,0.03907 -0.64453,0.117188 l 0.10254,-1.420899 c 0.11067,0.01628 0.19693,0.02442 0.25879,0.02441 0.26041,5e-6 0.47769,-0.083 0.65185,-0.249023 0.17415,-0.166011 0.26123,-0.362951 0.26123,-0.59082 0,-0.218094 -0.0651,-0.392247 -0.19531,-0.522461 -0.13021,-0.130203 -0.30925,-0.195307 -0.53711,-0.195313 -0.23438,6e-6 -0.42481,0.07081 -0.57129,0.212402 -0.14649,0.141608 -0.24577,0.389817 -0.29785,0.744629 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3774" />
|
||||
id="path3774"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 204.39043,45.963036 c 0,-1.360673 0.24495,-2.31282 0.73486,-2.856446 0.48991,-0.543613 1.23616,-0.815422 2.23877,-0.815429 0.48177,7e-6 0.87727,0.05941 1.18652,0.178222 0.30924,0.118822 0.56152,0.273445 0.75684,0.463867 0.19531,0.190437 0.34911,0.390632 0.46142,0.600586 0.1123,0.209967 0.20264,0.454921 0.271,0.734864 0.13346,0.533859 0.20019,1.090499 0.2002,1.669922 -1e-5,1.29883 -0.21974,2.24935 -0.65918,2.851562 -0.43946,0.602214 -1.1963,0.90332 -2.27051,0.90332 -0.60222,0 -1.08887,-0.09603 -1.45996,-0.288086 -0.3711,-0.192057 -0.67546,-0.473632 -0.91309,-0.844726 -0.17253,-0.263671 -0.3068,-0.624185 -0.40283,-1.081543 -0.096,-0.457354 -0.14404,-0.962725 -0.14404,-1.516113 z m 1.97265,0.0049 c 0,0.911461 0.0806,1.534019 0.2417,1.867676 0.16113,0.33366 0.39469,0.50049 0.70069,0.500488 0.20182,2e-6 0.37678,-0.0708 0.5249,-0.212402 0.14811,-0.1416 0.25716,-0.365395 0.32715,-0.671387 0.07,-0.305987 0.10497,-0.782874 0.10498,-1.430664 -10e-6,-0.950516 -0.0806,-1.58935 -0.2417,-1.916504 -0.16114,-0.327142 -0.40284,-0.490716 -0.7251,-0.490722 -0.32878,6e-6 -0.56641,0.166835 -0.71289,0.500488 -0.14649,0.333664 -0.21973,0.951339 -0.21973,1.853027 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3776" />
|
||||
id="path3776"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
@ -2861,22 +3370,26 @@
|
||||
<path
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 226.60625,59.285714 0,-8.571429"
|
||||
id="path4100" />
|
||||
id="path4100"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
|
||||
id="text4102">
|
||||
<path
|
||||
d="m 218.95976,44.483543 -1.87988,-0.336914 c 0.15625,-0.598952 0.45654,-1.057936 0.90088,-1.376953 0.44433,-0.319003 1.0734,-0.478508 1.88721,-0.478515 0.93424,7e-6 1.60969,0.17416 2.02636,0.522461 0.41666,0.348313 0.625,0.786138 0.625,1.313476 0,0.30925 -0.0846,0.589198 -0.2539,0.839844 -0.16928,0.250655 -0.42481,0.470382 -0.7666,0.65918 0.27668,0.06836 0.48827,0.148115 0.63476,0.239257 0.23763,0.146488 0.42236,0.339359 0.5542,0.578614 0.13183,0.23926 0.19775,0.524905 0.19775,0.856933 0,0.416669 -0.10905,0.816245 -0.32714,1.198731 -0.21811,0.382487 -0.53224,0.677083 -0.94239,0.883789 -0.41016,0.206705 -0.94889,0.310058 -1.61621,0.310058 -0.65104,0 -1.16455,-0.0765 -1.54053,-0.229492 -0.37597,-0.152994 -0.68522,-0.37679 -0.92773,-0.671387 -0.24251,-0.294595 -0.42887,-0.664874 -0.55908,-1.110839 l 1.9873,-0.263672 c 0.0781,0.400392 0.19938,0.677898 0.36377,0.832519 0.16439,0.154624 0.37353,0.231935 0.62744,0.231934 0.26693,10e-7 0.48909,-0.09766 0.66651,-0.292969 0.1774,-0.195311 0.26611,-0.455727 0.26611,-0.78125 0,-0.332029 -0.0855,-0.58919 -0.25635,-0.771484 -0.1709,-0.182289 -0.40283,-0.273435 -0.6958,-0.273438 -0.15625,3e-6 -0.37109,0.03907 -0.64453,0.117188 l 0.10254,-1.420899 c 0.11067,0.01628 0.19694,0.02442 0.25879,0.02441 0.26041,5e-6 0.4777,-0.083 0.65185,-0.249023 0.17415,-0.166011 0.26123,-0.362951 0.26124,-0.59082 -1e-5,-0.218094 -0.0651,-0.392247 -0.19532,-0.522461 -0.13021,-0.130203 -0.30925,-0.195307 -0.53711,-0.195313 -0.23437,6e-6 -0.4248,0.07081 -0.57129,0.212402 -0.14648,0.141608 -0.24577,0.389817 -0.29785,0.744629 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3780" />
|
||||
id="path3780"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 227.12871,48.233543 -3.62305,0 0,-1.635742 3.62305,-4.30664 1.7334,0 0,4.399414 0.89843,0 0,1.542968 -0.89843,0 0,1.337891 -1.7334,0 z m 0,-1.542968 0,-2.250977 -1.91406,2.250977 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3782" />
|
||||
id="path3782"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 230.39043,45.963036 c 0,-1.360673 0.24495,-2.31282 0.73486,-2.856446 0.48991,-0.543613 1.23616,-0.815422 2.23877,-0.815429 0.48177,7e-6 0.87727,0.05941 1.18652,0.178222 0.30924,0.118822 0.56152,0.273445 0.75684,0.463867 0.19531,0.190437 0.34911,0.390632 0.46142,0.600586 0.1123,0.209967 0.20264,0.454921 0.271,0.734864 0.13346,0.533859 0.20019,1.090499 0.2002,1.669922 -1e-5,1.29883 -0.21974,2.24935 -0.65918,2.851562 -0.43946,0.602214 -1.1963,0.90332 -2.27051,0.90332 -0.60222,0 -1.08887,-0.09603 -1.45996,-0.288086 -0.3711,-0.192057 -0.67546,-0.473632 -0.91309,-0.844726 -0.17253,-0.263671 -0.3068,-0.624185 -0.40283,-1.081543 -0.096,-0.457354 -0.14404,-0.962725 -0.14404,-1.516113 z m 1.97265,0.0049 c 0,0.911461 0.0806,1.534019 0.2417,1.867676 0.16113,0.33366 0.39469,0.50049 0.70069,0.500488 0.20182,2e-6 0.37678,-0.0708 0.5249,-0.212402 0.14811,-0.1416 0.25716,-0.365395 0.32715,-0.671387 0.07,-0.305987 0.10497,-0.782874 0.10498,-1.430664 -10e-6,-0.950516 -0.0806,-1.58935 -0.2417,-1.916504 -0.16114,-0.327142 -0.40284,-0.490716 -0.7251,-0.490722 -0.32878,6e-6 -0.56641,0.166835 -0.71289,0.500488 -0.14649,0.333664 -0.21973,0.951339 -0.21973,1.853027 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3784" />
|
||||
id="path3784"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
@ -2886,22 +3399,26 @@
|
||||
<path
|
||||
id="path4108"
|
||||
d="m 250.60625,59.285714 0,-8.571429"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
|
||||
id="text4110">
|
||||
<path
|
||||
d="m 242.95976,44.483543 -1.87988,-0.336914 c 0.15625,-0.598952 0.45654,-1.057936 0.90088,-1.376953 0.44433,-0.319003 1.0734,-0.478508 1.88721,-0.478515 0.93424,7e-6 1.60969,0.17416 2.02636,0.522461 0.41666,0.348313 0.625,0.786138 0.625,1.313476 0,0.30925 -0.0846,0.589198 -0.2539,0.839844 -0.16928,0.250655 -0.42481,0.470382 -0.7666,0.65918 0.27668,0.06836 0.48827,0.148115 0.63476,0.239257 0.23763,0.146488 0.42236,0.339359 0.5542,0.578614 0.13183,0.23926 0.19775,0.524905 0.19775,0.856933 0,0.416669 -0.10905,0.816245 -0.32714,1.198731 -0.21811,0.382487 -0.53224,0.677083 -0.94239,0.883789 -0.41016,0.206705 -0.94889,0.310058 -1.61621,0.310058 -0.65104,0 -1.16455,-0.0765 -1.54053,-0.229492 -0.37597,-0.152994 -0.68522,-0.37679 -0.92773,-0.671387 -0.24251,-0.294595 -0.42887,-0.664874 -0.55908,-1.110839 l 1.9873,-0.263672 c 0.0781,0.400392 0.19938,0.677898 0.36377,0.832519 0.16439,0.154624 0.37353,0.231935 0.62744,0.231934 0.26693,10e-7 0.48909,-0.09766 0.66651,-0.292969 0.1774,-0.195311 0.26611,-0.455727 0.26611,-0.78125 0,-0.332029 -0.0855,-0.58919 -0.25635,-0.771484 -0.1709,-0.182289 -0.40283,-0.273435 -0.6958,-0.273438 -0.15625,3e-6 -0.37109,0.03907 -0.64453,0.117188 l 0.10254,-1.420899 c 0.11067,0.01628 0.19694,0.02442 0.25879,0.02441 0.26041,5e-6 0.4777,-0.083 0.65185,-0.249023 0.17415,-0.166011 0.26123,-0.362951 0.26124,-0.59082 -1e-5,-0.218094 -0.0651,-0.392247 -0.19532,-0.522461 -0.13021,-0.130203 -0.30925,-0.195307 -0.53711,-0.195313 -0.23437,6e-6 -0.4248,0.07081 -0.57129,0.212402 -0.14648,0.141608 -0.24577,0.389817 -0.29785,0.744629 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3787" />
|
||||
id="path3787"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 248.5164,42.413231 4.72168,0 0,1.586914 -3.19824,0 -0.1709,1.074219 c 0.22135,-0.104162 0.44027,-0.182287 0.65674,-0.234375 0.21647,-0.05208 0.4305,-0.07812 0.64209,-0.07813 0.71614,5e-6 1.2972,0.216476 1.74316,0.649414 0.44596,0.432946 0.66894,0.978193 0.66895,1.635742 -1e-5,0.462242 -0.11475,0.906577 -0.34424,1.333008 -0.2295,0.426433 -0.55502,0.751953 -0.97656,0.976562 -0.42156,0.22461 -0.96111,0.336914 -1.61865,0.336914 -0.47201,0 -0.87647,-0.04476 -1.21338,-0.134277 -0.33692,-0.08952 -0.62338,-0.222982 -0.85938,-0.400391 -0.236,-0.177408 -0.42724,-0.378417 -0.57373,-0.603027 -0.14648,-0.224608 -0.26855,-0.504556 -0.36621,-0.839844 l 2.01172,-0.219726 c 0.0488,0.322267 0.16276,0.567221 0.3418,0.734863 0.17903,0.167644 0.39225,0.251466 0.63965,0.251465 0.27668,10e-7 0.50536,-0.104979 0.68603,-0.314942 0.18066,-0.209959 0.27099,-0.523272 0.271,-0.939941 -1e-5,-0.42643 -0.0911,-0.738929 -0.27344,-0.9375 -0.1823,-0.198564 -0.42481,-0.297848 -0.72754,-0.297852 -0.19206,4e-6 -0.37761,0.04721 -0.55664,0.141602 -0.13347,0.06836 -0.27995,0.192061 -0.43945,0.371094 l -1.69434,-0.244141 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3789" />
|
||||
id="path3789"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 254.39043,45.963036 c 0,-1.360673 0.24495,-2.31282 0.73486,-2.856446 0.48991,-0.543613 1.23616,-0.815422 2.23877,-0.815429 0.48177,7e-6 0.87727,0.05941 1.18652,0.178222 0.30924,0.118822 0.56152,0.273445 0.75684,0.463867 0.19531,0.190437 0.34911,0.390632 0.46142,0.600586 0.1123,0.209967 0.20264,0.454921 0.271,0.734864 0.13346,0.533859 0.20019,1.090499 0.2002,1.669922 -1e-5,1.29883 -0.21974,2.24935 -0.65918,2.851562 -0.43946,0.602214 -1.1963,0.90332 -2.27051,0.90332 -0.60222,0 -1.08887,-0.09603 -1.45996,-0.288086 -0.3711,-0.192057 -0.67546,-0.473632 -0.91309,-0.844726 -0.17253,-0.263671 -0.3068,-0.624185 -0.40283,-1.081543 -0.096,-0.457354 -0.14404,-0.962725 -0.14404,-1.516113 z m 1.97265,0.0049 c 0,0.911461 0.0806,1.534019 0.2417,1.867676 0.16113,0.33366 0.39469,0.50049 0.70069,0.500488 0.20182,2e-6 0.37678,-0.0708 0.5249,-0.212402 0.14811,-0.1416 0.25716,-0.365395 0.32715,-0.671387 0.07,-0.305987 0.10497,-0.782874 0.10498,-1.430664 -10e-6,-0.950516 -0.0806,-1.58935 -0.2417,-1.916504 -0.16114,-0.327142 -0.40284,-0.490716 -0.7251,-0.490722 -0.32878,6e-6 -0.56641,0.166835 -0.71289,0.500488 -0.14649,0.333664 -0.21973,0.951339 -0.21973,1.853027 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3791" />
|
||||
id="path3791"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
@ -2911,22 +3428,26 @@
|
||||
<path
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 6.5622945,59.285714 0,-8.571429"
|
||||
id="path4116" />
|
||||
id="path4116"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
|
||||
id="text4118">
|
||||
<path
|
||||
d="m 2.851357,49.571434 -5.9667969,0 c 0.068359,-0.589192 0.2758784,-1.143391 0.6225586,-1.662598 0.3466785,-0.519203 0.9969057,-1.131996 1.9506836,-1.838379 0.58267887,-0.432938 0.95539985,-0.761714 1.11816406,-0.986328 0.1627563,-0.224604 0.24413642,-0.43782 0.24414062,-0.639648 -4.2e-6,-0.218094 -0.0805705,-0.404454 -0.24169922,-0.559082 -0.1611366,-0.154617 -0.36377312,-0.231928 -0.60791015,-0.231934 -0.25390935,6e-6 -0.46142867,0.07976 -0.6225586,0.239258 -0.16113537,0.159511 -0.26937094,0.441086 -0.32470703,0.844727 L -2.9689555,44.576317 c 0.078124,-0.55989 0.2213535,-0.996902 0.4296875,-1.311035 0.2083323,-0.314121 0.5021145,-0.555006 0.8813476,-0.722657 0.3792297,-0.167636 0.90413153,-0.251457 1.57470707,-0.251464 0.6998658,7e-6 1.24429883,0.07976 1.63330083,0.239257 0.388992,0.159512 0.6949813,0.404467 0.9179687,0.734864 0.2229757,0.330409 0.3344665,0.700689 0.3344727,1.11084 -6.2e-6,0.436202 -0.127773,0.852868 -0.3833008,1.25 -0.2555394,0.397138 -0.7202199,0.833336 -1.394043,1.308593 -0.40039462,0.276695 -0.66813524,0.47038 -0.80322265,0.581055 -0.13509461,0.110679 -0.29378586,0.255536 -0.47607422,0.43457 l 3.10546877,0 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3794" />
|
||||
id="path3794"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="M 9.4675679,44.024559 7.4900289,44.2687 C 7.4379414,43.992013 7.3508647,43.7967 7.2287984,43.682762 7.1067243,43.568836 6.956171,43.51187 6.7771382,43.511864 c -0.3222687,6e-6 -0.5729195,0.162766 -0.7519531,0.488281 -0.1302109,0.23438 -0.2262395,0.735682 -0.2880859,1.503906 0.2376275,-0.240881 0.4817679,-0.419103 0.7324218,-0.534668 0.2506477,-0.115555 0.5403609,-0.173335 0.8691407,-0.17334 0.6380161,5e-6 1.1775664,0.22787 1.6186523,0.683594 0.4410746,0.455733 0.6616148,1.033532 0.6616211,1.733399 -6.3e-6,0.472007 -0.1114971,0.903321 -0.3344726,1.293945 -0.2229876,0.390626 -0.5322321,0.686035 -0.9277344,0.88623 -0.3955125,0.200196 -0.8911175,0.300293 -1.4868164,0.300293 -0.7161487,0 -1.2906924,-0.12207 -1.7236328,-0.366211 C 4.7133347,49.083153 4.3674692,48.693342 4.1086812,48.15786 3.8498916,47.62238 3.7204972,46.913559 3.7204976,46.031395 c -4e-7,-1.292313 0.2718092,-2.238764 0.8154297,-2.839356 0.543618,-0.600578 1.297198,-0.900871 2.2607422,-0.900878 0.5696574,7e-6 1.0196895,0.06593 1.3500976,0.197753 0.3303985,0.131843 0.6046495,0.324714 0.8227539,0.578614 0.2180931,0.253912 0.3841086,0.572922 0.4980469,0.957031 z m -3.6621094,3.188477 c -2.5e-6,0.387371 0.097654,0.690919 0.2929688,0.910644 0.1953095,0.219728 0.4345671,0.329591 0.7177734,0.32959 0.2604129,10e-7 0.4785117,-0.09928 0.6542969,-0.297852 0.1757769,-0.198566 0.2636674,-0.494789 0.2636719,-0.888671 -4.5e-6,-0.403644 -0.09115,-0.71126 -0.2734375,-0.922852 -0.1822957,-0.211585 -0.4085324,-0.317379 -0.678711,-0.317383 -0.2766959,4e-6 -0.5086292,0.102543 -0.6958007,0.307617 -0.1871771,0.205081 -0.2807643,0.49805 -0.2807618,0.878907 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3796" />
|
||||
id="path3796"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 10.390419,45.963036 c 0,-1.360673 0.244954,-2.31282 0.734864,-2.856446 0.489907,-0.543613 1.236163,-0.815422 2.238769,-0.815429 0.481767,7e-6 0.877275,0.05941 1.186524,0.178222 0.30924,0.118822 0.561518,0.273445 0.756836,0.463867 0.195307,0.190437 0.349115,0.390632 0.461425,0.600586 0.112299,0.209967 0.202631,0.454921 0.270997,0.734864 0.133457,0.533859 0.200189,1.090499 0.200195,1.669922 -6e-6,1.29883 -0.219733,2.24935 -0.65918,2.851562 -0.439458,0.602214 -1.196293,0.90332 -2.270508,0.90332 -0.602216,0 -1.088869,-0.09603 -1.459961,-0.288086 -0.371095,-0.192057 -0.675457,-0.473632 -0.913086,-0.844726 -0.172526,-0.263671 -0.306804,-0.624185 -0.402832,-1.081543 -0.09603,-0.457354 -0.144043,-0.962725 -0.144043,-1.516113 z m 1.972657,0.0049 c -3e-6,0.911461 0.08056,1.534019 0.241699,1.867676 0.16113,0.33366 0.394691,0.50049 0.700684,0.500488 0.201819,2e-6 0.376786,-0.0708 0.524902,-0.212402 0.148108,-0.1416 0.257157,-0.365395 0.327148,-0.671387 0.06998,-0.305987 0.104977,-0.782874 0.104981,-1.430664 -4e-6,-0.950516 -0.08057,-1.58935 -0.241699,-1.916504 -0.161137,-0.327142 -0.402836,-0.490716 -0.725098,-0.490722 -0.328779,6e-6 -0.566409,0.166835 -0.712891,0.500488 -0.146487,0.333664 -0.219729,0.951339 -0.219726,1.853027 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3798" />
|
||||
id="path3798"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
@ -2936,22 +3457,26 @@
|
||||
<path
|
||||
id="path4220"
|
||||
d="m -27.437706,59.285714 0,-8.571429"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
|
||||
id="text4222">
|
||||
<path
|
||||
d="m -31.148643,49.571434 -5.966797,0 c 0.06836,-0.589192 0.275878,-1.143391 0.622558,-1.662598 0.346679,-0.519203 0.996906,-1.131996 1.950684,-1.838379 0.582679,-0.432938 0.9554,-0.761714 1.118164,-0.986328 0.162756,-0.224604 0.244136,-0.43782 0.244141,-0.639648 -5e-6,-0.218094 -0.08057,-0.404454 -0.2417,-0.559082 -0.161136,-0.154617 -0.363773,-0.231928 -0.60791,-0.231934 -0.253909,6e-6 -0.461429,0.07976 -0.622558,0.239258 -0.161136,0.159511 -0.269371,0.441086 -0.324707,0.844727 l -1.992188,-0.161133 c 0.07813,-0.55989 0.221354,-0.996902 0.429688,-1.311035 0.208332,-0.314121 0.502114,-0.555006 0.881347,-0.722657 0.37923,-0.167636 0.904132,-0.251457 1.574707,-0.251464 0.699866,7e-6 1.244299,0.07976 1.633301,0.239257 0.388992,0.159512 0.694981,0.404467 0.917969,0.734864 0.222975,0.330409 0.334466,0.700689 0.334472,1.11084 -6e-6,0.436202 -0.127773,0.852868 -0.3833,1.25 -0.25554,0.397138 -0.72022,0.833336 -1.394043,1.308593 -0.400395,0.276695 -0.668136,0.47038 -0.803223,0.581055 -0.135095,0.110679 -0.293786,0.255536 -0.476074,0.43457 l 3.105469,0 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3801" />
|
||||
id="path3801"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m -29.483604,42.413231 4.721679,0 0,1.586914 -3.198242,0 -0.170898,1.074219 c 0.221351,-0.104162 0.440264,-0.182287 0.656738,-0.234375 0.216468,-0.05208 0.430498,-0.07812 0.64209,-0.07813 0.716141,5e-6 1.297195,0.216476 1.743164,0.649414 0.445957,0.432946 0.668939,0.978193 0.668945,1.635742 -6e-6,0.462242 -0.114752,0.906577 -0.344238,1.333008 -0.229498,0.426433 -0.555019,0.751953 -0.976563,0.976562 -0.421554,0.22461 -0.961104,0.336914 -1.618652,0.336914 -0.472008,0 -0.876467,-0.04476 -1.213379,-0.134277 -0.336916,-0.08952 -0.623374,-0.222982 -0.859375,-0.400391 -0.236004,-0.177408 -0.427247,-0.378417 -0.57373,-0.603027 -0.146485,-0.224608 -0.268555,-0.504556 -0.366211,-0.839844 l 2.011718,-0.219726 c 0.04883,0.322267 0.162758,0.567221 0.341797,0.734863 0.179034,0.167644 0.39225,0.251466 0.639649,0.251465 0.276689,10e-7 0.505367,-0.104979 0.686035,-0.314942 0.18066,-0.209959 0.270992,-0.523272 0.270996,-0.939941 -4e-6,-0.42643 -0.09115,-0.738929 -0.273437,-0.9375 -0.182296,-0.198564 -0.424809,-0.297848 -0.72754,-0.297852 -0.19206,4e-6 -0.377607,0.04721 -0.55664,0.141602 -0.133466,0.06836 -0.279951,0.192061 -0.439453,0.371094 l -1.694336,-0.244141 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3803" />
|
||||
id="path3803"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m -23.609581,45.963036 c 0,-1.360673 0.244954,-2.31282 0.734863,-2.856446 0.489908,-0.543613 1.236163,-0.815422 2.23877,-0.815429 0.481767,7e-6 0.877274,0.05941 1.186523,0.178222 0.30924,0.118822 0.561519,0.273445 0.756836,0.463867 0.195307,0.190437 0.349116,0.390632 0.461426,0.600586 0.112299,0.209967 0.202631,0.454921 0.270996,0.734864 0.133457,0.533859 0.200189,1.090499 0.200195,1.669922 -6e-6,1.29883 -0.219732,2.24935 -0.659179,2.851562 -0.439459,0.602214 -1.196294,0.90332 -2.270508,0.90332 -0.602216,0 -1.08887,-0.09603 -1.459961,-0.288086 -0.371095,-0.192057 -0.675457,-0.473632 -0.913086,-0.844726 -0.172527,-0.263671 -0.306804,-0.624185 -0.402832,-1.081543 -0.09603,-0.457354 -0.144043,-0.962725 -0.144043,-1.516113 z m 1.972656,0.0049 c -2e-6,0.911461 0.08056,1.534019 0.241699,1.867676 0.161131,0.33366 0.394691,0.50049 0.700684,0.500488 0.201819,2e-6 0.376787,-0.0708 0.524902,-0.212402 0.148108,-0.1416 0.257158,-0.365395 0.327149,-0.671387 0.06998,-0.305987 0.104976,-0.782874 0.10498,-1.430664 -4e-6,-0.950516 -0.08057,-1.58935 -0.241699,-1.916504 -0.161137,-0.327142 -0.402836,-0.490716 -0.725098,-0.490722 -0.328779,6e-6 -0.566409,0.166835 -0.71289,0.500488 -0.146487,0.333664 -0.219729,0.951339 -0.219727,1.853027 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3805" />
|
||||
id="path3805"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
@ -2961,22 +3486,26 @@
|
||||
<path
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m -61.437706,59.285714 0,-8.571429"
|
||||
id="path4228" />
|
||||
id="path4228"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
|
||||
id="text4230">
|
||||
<path
|
||||
d="m -65.148643,49.571434 -5.966797,0 c 0.06836,-0.589192 0.275878,-1.143391 0.622558,-1.662598 0.346679,-0.519203 0.996906,-1.131996 1.950684,-1.838379 0.582679,-0.432938 0.9554,-0.761714 1.118164,-0.986328 0.162756,-0.224604 0.244136,-0.43782 0.244141,-0.639648 -5e-6,-0.218094 -0.08057,-0.404454 -0.2417,-0.559082 -0.161136,-0.154617 -0.363773,-0.231928 -0.60791,-0.231934 -0.253909,6e-6 -0.461429,0.07976 -0.622558,0.239258 -0.161136,0.159511 -0.269371,0.441086 -0.324707,0.844727 l -1.992188,-0.161133 c 0.07813,-0.55989 0.221354,-0.996902 0.429688,-1.311035 0.208332,-0.314121 0.502114,-0.555006 0.881347,-0.722657 0.37923,-0.167636 0.904132,-0.251457 1.574707,-0.251464 0.699866,7e-6 1.244299,0.07976 1.633301,0.239257 0.388992,0.159512 0.694981,0.404467 0.917969,0.734864 0.222975,0.330409 0.334466,0.700689 0.334472,1.11084 -6e-6,0.436202 -0.127773,0.852868 -0.3833,1.25 -0.25554,0.397138 -0.72022,0.833336 -1.394043,1.308593 -0.400395,0.276695 -0.668136,0.47038 -0.803223,0.581055 -0.135095,0.110679 -0.293786,0.255536 -0.476074,0.43457 l 3.105469,0 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3809" />
|
||||
id="path3809"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m -60.8713,48.233543 -3.623047,0 0,-1.635742 3.623047,-4.30664 1.733399,0 0,4.399414 0.898437,0 0,1.542968 -0.898437,0 0,1.337891 -1.733399,0 z m 0,-1.542968 0,-2.250977 -1.914062,2.250977 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3811" />
|
||||
id="path3811"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m -57.609581,45.963036 c 0,-1.360673 0.244954,-2.31282 0.734863,-2.856446 0.489908,-0.543613 1.236163,-0.815422 2.23877,-0.815429 0.481767,7e-6 0.877274,0.05941 1.186523,0.178222 0.30924,0.118822 0.561519,0.273445 0.756836,0.463867 0.195307,0.190437 0.349116,0.390632 0.461426,0.600586 0.112299,0.209967 0.202631,0.454921 0.270996,0.734864 0.133457,0.533859 0.200189,1.090499 0.200195,1.669922 -6e-6,1.29883 -0.219732,2.24935 -0.659179,2.851562 -0.439459,0.602214 -1.196294,0.90332 -2.270508,0.90332 -0.602216,0 -1.08887,-0.09603 -1.459961,-0.288086 -0.371095,-0.192057 -0.675457,-0.473632 -0.913086,-0.844726 -0.172527,-0.263671 -0.306804,-0.624185 -0.402832,-1.081543 -0.09603,-0.457354 -0.144043,-0.962725 -0.144043,-1.516113 z m 1.972656,0.0049 c -2e-6,0.911461 0.08056,1.534019 0.241699,1.867676 0.161131,0.33366 0.394691,0.50049 0.700684,0.500488 0.201819,2e-6 0.376787,-0.0708 0.524902,-0.212402 0.148108,-0.1416 0.257158,-0.365395 0.327149,-0.671387 0.06998,-0.305987 0.104976,-0.782874 0.10498,-1.430664 -4e-6,-0.950516 -0.08057,-1.58935 -0.241699,-1.916504 -0.161137,-0.327142 -0.402836,-0.490716 -0.725098,-0.490722 -0.328779,6e-6 -0.566409,0.166835 -0.71289,0.500488 -0.146487,0.333664 -0.219729,0.951339 -0.219727,1.853027 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3813" />
|
||||
id="path3813"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
@ -2986,22 +3515,26 @@
|
||||
<path
|
||||
id="path4236"
|
||||
d="m -85.437706,59.285714 0,-8.571429"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
|
||||
id="text4238">
|
||||
<path
|
||||
d="m -89.148643,49.571434 -5.966797,0 c 0.06836,-0.589192 0.275878,-1.143391 0.622558,-1.662598 0.346679,-0.519203 0.996906,-1.131996 1.950684,-1.838379 0.582679,-0.432938 0.9554,-0.761714 1.118164,-0.986328 0.162756,-0.224604 0.244136,-0.43782 0.244141,-0.639648 -5e-6,-0.218094 -0.08057,-0.404454 -0.2417,-0.559082 -0.161136,-0.154617 -0.363773,-0.231928 -0.60791,-0.231934 -0.253909,6e-6 -0.461429,0.07976 -0.622558,0.239258 -0.161136,0.159511 -0.269371,0.441086 -0.324707,0.844727 l -1.992188,-0.161133 c 0.07813,-0.55989 0.221354,-0.996902 0.429688,-1.311035 0.208332,-0.314121 0.502114,-0.555006 0.881347,-0.722657 0.37923,-0.167636 0.904132,-0.251457 1.574707,-0.251464 0.699866,7e-6 1.244299,0.07976 1.633301,0.239257 0.388992,0.159512 0.694981,0.404467 0.917969,0.734864 0.222975,0.330409 0.334466,0.700689 0.334472,1.11084 -6e-6,0.436202 -0.127773,0.852868 -0.3833,1.25 -0.25554,0.397138 -0.72022,0.833336 -1.394043,1.308593 -0.400395,0.276695 -0.668136,0.47038 -0.803223,0.581055 -0.135095,0.110679 -0.293786,0.255536 -0.476074,0.43457 l 3.105469,0 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3816" />
|
||||
id="path3816"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m -86.360558,44.483543 -1.879882,-0.336914 c 0.156249,-0.598952 0.456542,-1.057936 0.900879,-1.376953 0.444334,-0.319003 1.073402,-0.478508 1.887207,-0.478515 0.93424,7e-6 1.609695,0.17416 2.026367,0.522461 0.416661,0.348313 0.624994,0.786138 0.625,1.313476 -6e-6,0.30925 -0.08464,0.589198 -0.253906,0.839844 -0.169277,0.250655 -0.42481,0.470382 -0.766602,0.65918 0.276687,0.06836 0.488276,0.148115 0.634766,0.239257 0.237624,0.146488 0.422357,0.339359 0.554199,0.578614 0.13183,0.23926 0.197747,0.524905 0.197754,0.856933 -7e-6,0.416669 -0.109056,0.816245 -0.327149,1.198731 -0.218104,0.382487 -0.532232,0.677083 -0.942383,0.883789 -0.41016,0.206705 -0.948897,0.310058 -1.61621,0.310058 -0.651045,0 -1.164553,-0.0765 -1.540528,-0.229492 -0.375978,-0.152994 -0.685222,-0.37679 -0.927734,-0.671387 -0.242514,-0.294595 -0.428874,-0.664874 -0.559082,-1.110839 l 1.987304,-0.263672 c 0.07812,0.400392 0.199379,0.677898 0.36377,0.832519 0.164385,0.154624 0.373532,0.231935 0.627441,0.231934 0.266924,10e-7 0.489092,-0.09766 0.666504,-0.292969 0.177405,-0.195311 0.266109,-0.455727 0.266114,-0.78125 -5e-6,-0.332029 -0.08545,-0.58919 -0.256348,-0.771484 -0.170902,-0.182289 -0.402836,-0.273435 -0.695801,-0.273438 -0.156253,3e-6 -0.371097,0.03907 -0.644531,0.117188 l 0.102539,-1.420899 c 0.110674,0.01628 0.196937,0.02442 0.258789,0.02441 0.260413,5e-6 0.477698,-0.083 0.651855,-0.249023 0.17415,-0.166011 0.261227,-0.362951 0.261231,-0.59082 -4e-6,-0.218094 -0.06511,-0.392247 -0.195313,-0.522461 -0.130212,-0.130203 -0.309248,-0.195307 -0.537109,-0.195313 -0.234378,6e-6 -0.424807,0.07081 -0.571289,0.212402 -0.146487,0.141608 -0.245771,0.389817 -0.297852,0.744629 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3818" />
|
||||
id="path3818"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m -81.609581,45.963036 c 0,-1.360673 0.244954,-2.31282 0.734863,-2.856446 0.489908,-0.543613 1.236163,-0.815422 2.23877,-0.815429 0.481767,7e-6 0.877274,0.05941 1.186523,0.178222 0.30924,0.118822 0.561519,0.273445 0.756836,0.463867 0.195307,0.190437 0.349116,0.390632 0.461426,0.600586 0.112299,0.209967 0.202631,0.454921 0.270996,0.734864 0.133457,0.533859 0.200189,1.090499 0.200195,1.669922 -6e-6,1.29883 -0.219732,2.24935 -0.659179,2.851562 -0.439459,0.602214 -1.196294,0.90332 -2.270508,0.90332 -0.602216,0 -1.08887,-0.09603 -1.459961,-0.288086 -0.371095,-0.192057 -0.675457,-0.473632 -0.913086,-0.844726 -0.172527,-0.263671 -0.306804,-0.624185 -0.402832,-1.081543 -0.09603,-0.457354 -0.144043,-0.962725 -0.144043,-1.516113 z m 1.972656,0.0049 c -2e-6,0.911461 0.08056,1.534019 0.241699,1.867676 0.161131,0.33366 0.394691,0.50049 0.700684,0.500488 0.201819,2e-6 0.376787,-0.0708 0.524902,-0.212402 0.148108,-0.1416 0.257158,-0.365395 0.327149,-0.671387 0.06998,-0.305987 0.104976,-0.782874 0.10498,-1.430664 -4e-6,-0.950516 -0.08057,-1.58935 -0.241699,-1.916504 -0.161137,-0.327142 -0.402836,-0.490716 -0.725098,-0.490722 -0.328779,6e-6 -0.566409,0.166835 -0.71289,0.500488 -0.146487,0.333664 -0.219729,0.951339 -0.219727,1.853027 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3820" />
|
||||
id="path3820"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
@ -3011,22 +3544,26 @@
|
||||
<path
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m -111.43771,59.285714 0,-8.571429"
|
||||
id="path4244" />
|
||||
id="path4244"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
|
||||
id="text4246">
|
||||
<path
|
||||
d="m -115.14864,49.571434 -5.9668,0 c 0.0684,-0.589192 0.27588,-1.143391 0.62256,-1.662598 0.34668,-0.519203 0.9969,-1.131996 1.95068,-1.838379 0.58268,-0.432938 0.9554,-0.761714 1.11817,-0.986328 0.16275,-0.224604 0.24413,-0.43782 0.24414,-0.639648 -1e-5,-0.218094 -0.0806,-0.404454 -0.2417,-0.559082 -0.16114,-0.154617 -0.36378,-0.231928 -0.60791,-0.231934 -0.25391,6e-6 -0.46143,0.07976 -0.62256,0.239258 -0.16114,0.159511 -0.26937,0.441086 -0.32471,0.844727 l -1.99219,-0.161133 c 0.0781,-0.55989 0.22136,-0.996902 0.42969,-1.311035 0.20833,-0.314121 0.50212,-0.555006 0.88135,-0.722657 0.37923,-0.167636 0.90413,-0.251457 1.57471,-0.251464 0.69986,7e-6 1.2443,0.07976 1.6333,0.239257 0.38899,0.159512 0.69498,0.404467 0.91797,0.734864 0.22297,0.330409 0.33446,0.700689 0.33447,1.11084 -1e-5,0.436202 -0.12777,0.852868 -0.3833,1.25 -0.25554,0.397138 -0.72022,0.833336 -1.39405,1.308593 -0.40039,0.276695 -0.66813,0.47038 -0.80322,0.581055 -0.13509,0.110679 -0.29378,0.255536 -0.47607,0.43457 l 3.10547,0 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3823" />
|
||||
id="path3823"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m -108.46896,49.571434 -5.96679,0 c 0.0684,-0.589192 0.27588,-1.143391 0.62256,-1.662598 0.34667,-0.519203 0.9969,-1.131996 1.95068,-1.838379 0.58268,-0.432938 0.9554,-0.761714 1.11816,-0.986328 0.16276,-0.224604 0.24414,-0.43782 0.24414,-0.639648 0,-0.218094 -0.0806,-0.404454 -0.2417,-0.559082 -0.16113,-0.154617 -0.36377,-0.231928 -0.60791,-0.231934 -0.2539,6e-6 -0.46142,0.07976 -0.62255,0.239258 -0.16114,0.159511 -0.26937,0.441086 -0.32471,0.844727 l -1.99219,-0.161133 c 0.0781,-0.55989 0.22136,-0.996902 0.42969,-1.311035 0.20833,-0.314121 0.50211,-0.555006 0.88135,-0.722657 0.37923,-0.167636 0.90413,-0.251457 1.5747,-0.251464 0.69987,7e-6 1.2443,0.07976 1.6333,0.239257 0.389,0.159512 0.69499,0.404467 0.91797,0.734864 0.22298,0.330409 0.33447,0.700689 0.33448,1.11084 -1e-5,0.436202 -0.12778,0.852868 -0.3833,1.25 -0.25554,0.397138 -0.72022,0.833336 -1.39405,1.308593 -0.40039,0.276695 -0.66813,0.47038 -0.80322,0.581055 -0.1351,0.110679 -0.29379,0.255536 -0.47607,0.43457 l 3.10546,0 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3825" />
|
||||
id="path3825"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m -107.60958,45.963036 c 0,-1.360673 0.24495,-2.31282 0.73486,-2.856446 0.48991,-0.543613 1.23617,-0.815422 2.23877,-0.815429 0.48177,7e-6 0.87728,0.05941 1.18653,0.178222 0.30924,0.118822 0.56151,0.273445 0.75683,0.463867 0.19531,0.190437 0.34912,0.390632 0.46143,0.600586 0.1123,0.209967 0.20263,0.454921 0.27099,0.734864 0.13346,0.533859 0.20019,1.090499 0.2002,1.669922 -1e-5,1.29883 -0.21973,2.24935 -0.65918,2.851562 -0.43946,0.602214 -1.19629,0.90332 -2.27051,0.90332 -0.60222,0 -1.08887,-0.09603 -1.45996,-0.288086 -0.3711,-0.192057 -0.67546,-0.473632 -0.91309,-0.844726 -0.17252,-0.263671 -0.3068,-0.624185 -0.40283,-1.081543 -0.096,-0.457354 -0.14404,-0.962725 -0.14404,-1.516113 z m 1.97266,0.0049 c -1e-5,0.911461 0.0806,1.534019 0.24169,1.867676 0.16113,0.33366 0.3947,0.50049 0.70069,0.500488 0.20182,2e-6 0.37678,-0.0708 0.5249,-0.212402 0.14811,-0.1416 0.25716,-0.365395 0.32715,-0.671387 0.07,-0.305987 0.10498,-0.782874 0.10498,-1.430664 0,-0.950516 -0.0806,-1.58935 -0.2417,-1.916504 -0.16114,-0.327142 -0.40284,-0.490716 -0.7251,-0.490722 -0.32878,6e-6 -0.56641,0.166835 -0.71289,0.500488 -0.14649,0.333664 -0.21973,0.951339 -0.21972,1.853027 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3827" />
|
||||
id="path3827"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
@ -3036,22 +3573,26 @@
|
||||
<path
|
||||
id="path4252"
|
||||
d="m -135.4377,59.285714 0,-8.571429"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
|
||||
id="text4254">
|
||||
<path
|
||||
d="m -139.14864,49.571434 -5.96679,0 c 0.0684,-0.589192 0.27588,-1.143391 0.62256,-1.662598 0.34667,-0.519203 0.9969,-1.131996 1.95068,-1.838379 0.58268,-0.432938 0.9554,-0.761714 1.11816,-0.986328 0.16276,-0.224604 0.24414,-0.43782 0.24414,-0.639648 0,-0.218094 -0.0806,-0.404454 -0.2417,-0.559082 -0.16113,-0.154617 -0.36377,-0.231928 -0.60791,-0.231934 -0.2539,6e-6 -0.46142,0.07976 -0.62255,0.239258 -0.16114,0.159511 -0.26937,0.441086 -0.32471,0.844727 l -1.99219,-0.161133 c 0.0781,-0.55989 0.22136,-0.996902 0.42969,-1.311035 0.20833,-0.314121 0.50211,-0.555006 0.88135,-0.722657 0.37923,-0.167636 0.90413,-0.251457 1.5747,-0.251464 0.69987,7e-6 1.2443,0.07976 1.6333,0.239257 0.389,0.159512 0.69499,0.404467 0.91797,0.734864 0.22298,0.330409 0.33447,0.700689 0.33448,1.11084 -1e-5,0.436202 -0.12778,0.852868 -0.3833,1.25 -0.25554,0.397138 -0.72022,0.833336 -1.39405,1.308593 -0.40039,0.276695 -0.66813,0.47038 -0.80322,0.581055 -0.1351,0.110679 -0.29379,0.255536 -0.47607,0.43457 l 3.10546,0 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3830" />
|
||||
id="path3830"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m -133.78242,42.291161 0,7.280273 -2.01172,0 0,-4.770508 c -0.32553,0.247401 -0.64047,0.447596 -0.94483,0.600586 -0.30436,0.152999 -0.68603,0.299483 -1.14502,0.439453 l 0,-1.630859 c 0.67708,-0.218093 1.2028,-0.480137 1.57715,-0.786133 0.37435,-0.305983 0.66732,-0.683587 0.87891,-1.132812 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3832" />
|
||||
id="path3832"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m -131.60957,45.963036 c 0,-1.360673 0.24495,-2.31282 0.73486,-2.856446 0.48991,-0.543613 1.23616,-0.815422 2.23877,-0.815429 0.48177,7e-6 0.87727,0.05941 1.18652,0.178222 0.30924,0.118822 0.56152,0.273445 0.75684,0.463867 0.19531,0.190437 0.34911,0.390632 0.46142,0.600586 0.1123,0.209967 0.20264,0.454921 0.271,0.734864 0.13346,0.533859 0.20019,1.090499 0.2002,1.669922 -10e-6,1.29883 -0.21974,2.24935 -0.65918,2.851562 -0.43946,0.602214 -1.1963,0.90332 -2.27051,0.90332 -0.60222,0 -1.08887,-0.09603 -1.45996,-0.288086 -0.3711,-0.192057 -0.67546,-0.473632 -0.91309,-0.844726 -0.17253,-0.263671 -0.3068,-0.624185 -0.40283,-1.081543 -0.096,-0.457354 -0.14404,-0.962725 -0.14404,-1.516113 z m 1.97265,0.0049 c 0,0.911461 0.0806,1.534019 0.2417,1.867676 0.16113,0.33366 0.39469,0.50049 0.70069,0.500488 0.20182,2e-6 0.37678,-0.0708 0.5249,-0.212402 0.14811,-0.1416 0.25716,-0.365395 0.32715,-0.671387 0.07,-0.305987 0.10497,-0.782874 0.10498,-1.430664 -1e-5,-0.950516 -0.0806,-1.58935 -0.2417,-1.916504 -0.16114,-0.327142 -0.40284,-0.490716 -0.7251,-0.490722 -0.32878,6e-6 -0.56641,0.166835 -0.71289,0.500488 -0.14649,0.333664 -0.21973,0.951339 -0.21973,1.853027 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3834" />
|
||||
id="path3834"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
@ -3061,22 +3602,26 @@
|
||||
<path
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m -159.4377,59.285714 0,-8.571429"
|
||||
id="path4260" />
|
||||
id="path4260"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
|
||||
id="text4262">
|
||||
<path
|
||||
d="m -163.14864,49.571434 -5.96679,0 c 0.0684,-0.589192 0.27588,-1.143391 0.62256,-1.662598 0.34667,-0.519203 0.9969,-1.131996 1.95068,-1.838379 0.58268,-0.432938 0.9554,-0.761714 1.11816,-0.986328 0.16276,-0.224604 0.24414,-0.43782 0.24414,-0.639648 0,-0.218094 -0.0806,-0.404454 -0.2417,-0.559082 -0.16113,-0.154617 -0.36377,-0.231928 -0.60791,-0.231934 -0.2539,6e-6 -0.46142,0.07976 -0.62255,0.239258 -0.16114,0.159511 -0.26937,0.441086 -0.32471,0.844727 l -1.99219,-0.161133 c 0.0781,-0.55989 0.22136,-0.996902 0.42969,-1.311035 0.20833,-0.314121 0.50211,-0.555006 0.88135,-0.722657 0.37923,-0.167636 0.90413,-0.251457 1.5747,-0.251464 0.69987,7e-6 1.2443,0.07976 1.6333,0.239257 0.389,0.159512 0.69499,0.404467 0.91797,0.734864 0.22298,0.330409 0.33447,0.700689 0.33448,1.11084 -1e-5,0.436202 -0.12778,0.852868 -0.3833,1.25 -0.25554,0.397138 -0.72022,0.833336 -1.39405,1.308593 -0.40039,0.276695 -0.66813,0.47038 -0.80322,0.581055 -0.1351,0.110679 -0.29379,0.255536 -0.47607,0.43457 l 3.10546,0 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3837" />
|
||||
id="path3837"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m -162.28926,45.963036 c 0,-1.360673 0.24495,-2.31282 0.73486,-2.856446 0.48991,-0.543613 1.23617,-0.815422 2.23877,-0.815429 0.48177,7e-6 0.87728,0.05941 1.18653,0.178222 0.30924,0.118822 0.56151,0.273445 0.75683,0.463867 0.19531,0.190437 0.34912,0.390632 0.46143,0.600586 0.1123,0.209967 0.20263,0.454921 0.27099,0.734864 0.13346,0.533859 0.20019,1.090499 0.2002,1.669922 -1e-5,1.29883 -0.21973,2.24935 -0.65918,2.851562 -0.43946,0.602214 -1.19629,0.90332 -2.27051,0.90332 -0.60222,0 -1.08887,-0.09603 -1.45996,-0.288086 -0.3711,-0.192057 -0.67546,-0.473632 -0.91309,-0.844726 -0.17252,-0.263671 -0.3068,-0.624185 -0.40283,-1.081543 -0.096,-0.457354 -0.14404,-0.962725 -0.14404,-1.516113 z m 1.97266,0.0049 c -1e-5,0.911461 0.0806,1.534019 0.24169,1.867676 0.16113,0.33366 0.3947,0.50049 0.70069,0.500488 0.20182,2e-6 0.37678,-0.0708 0.5249,-0.212402 0.14811,-0.1416 0.25716,-0.365395 0.32715,-0.671387 0.07,-0.305987 0.10498,-0.782874 0.10498,-1.430664 0,-0.950516 -0.0806,-1.58935 -0.2417,-1.916504 -0.16114,-0.327142 -0.40284,-0.490716 -0.7251,-0.490722 -0.32878,6e-6 -0.56641,0.166835 -0.71289,0.500488 -0.14648,0.333664 -0.21973,0.951339 -0.21972,1.853027 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3839" />
|
||||
id="path3839"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m -155.60957,45.963036 c 0,-1.360673 0.24495,-2.31282 0.73486,-2.856446 0.48991,-0.543613 1.23616,-0.815422 2.23877,-0.815429 0.48177,7e-6 0.87727,0.05941 1.18652,0.178222 0.30924,0.118822 0.56152,0.273445 0.75684,0.463867 0.19531,0.190437 0.34911,0.390632 0.46142,0.600586 0.1123,0.209967 0.20264,0.454921 0.271,0.734864 0.13346,0.533859 0.20019,1.090499 0.2002,1.669922 -1e-5,1.29883 -0.21974,2.24935 -0.65918,2.851562 -0.43946,0.602214 -1.1963,0.90332 -2.27051,0.90332 -0.60222,0 -1.08887,-0.09603 -1.45996,-0.288086 -0.3711,-0.192057 -0.67546,-0.473632 -0.91309,-0.844726 -0.17253,-0.263671 -0.3068,-0.624185 -0.40283,-1.081543 -0.096,-0.457354 -0.14404,-0.962725 -0.14404,-1.516113 z m 1.97265,0.0049 c 0,0.911461 0.0806,1.534019 0.2417,1.867676 0.16113,0.33366 0.39469,0.50049 0.70069,0.500488 0.20182,2e-6 0.37678,-0.0708 0.5249,-0.212402 0.14811,-0.1416 0.25716,-0.365395 0.32715,-0.671387 0.07,-0.305987 0.10497,-0.782874 0.10498,-1.430664 -10e-6,-0.950516 -0.0806,-1.58935 -0.2417,-1.916504 -0.16114,-0.327142 -0.40284,-0.490716 -0.7251,-0.490722 -0.32878,6e-6 -0.56641,0.166835 -0.71289,0.500488 -0.14649,0.333664 -0.21973,0.951339 -0.21973,1.853027 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3841" />
|
||||
id="path3841"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
@ -3086,22 +3631,26 @@
|
||||
<path
|
||||
id="path4268"
|
||||
d="m -181.16182,59.285714 0,-8.571429"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
|
||||
id="text4270">
|
||||
<path
|
||||
d="m -186.46211,42.291161 0,7.280273 -2.01172,0 0,-4.770508 c -0.32552,0.247401 -0.64047,0.447596 -0.94483,0.600586 -0.30436,0.152999 -0.68603,0.299483 -1.14501,0.439453 l 0,-1.630859 c 0.67708,-0.218093 1.20279,-0.480137 1.57714,-0.786133 0.37435,-0.305983 0.66732,-0.683587 0.87891,-1.132812 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3844" />
|
||||
id="path3844"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m -184.20137,47.964989 1.97754,-0.249024 c 0.0521,0.276695 0.13997,0.472007 0.26367,0.585938 0.1237,0.113933 0.27506,0.170899 0.4541,0.170898 0.31901,1e-6 0.56803,-0.161131 0.74707,-0.483398 0.13021,-0.237629 0.22786,-0.740558 0.29297,-1.508789 -0.23763,0.244143 -0.48177,0.423179 -0.73242,0.537109 -0.25065,0.113935 -0.54037,0.170901 -0.86914,0.170899 -0.64128,2e-6 -1.18246,-0.227862 -1.62354,-0.683594 -0.44108,-0.455726 -0.66162,-1.031897 -0.66162,-1.728516 0,-0.475255 0.11231,-0.908197 0.33692,-1.298828 0.22461,-0.390618 0.53385,-0.686028 0.92773,-0.88623 0.39388,-0.200189 0.88867,-0.300286 1.48438,-0.300293 0.71614,7e-6 1.29068,0.122891 1.72363,0.368652 0.43294,0.245775 0.7788,0.636399 1.0376,1.171875 0.25878,0.535487 0.38817,1.24268 0.38818,2.121582 -1e-5,1.29232 -0.27182,2.238771 -0.81543,2.839355 -0.54362,0.600587 -1.2972,0.900879 -2.26074,0.900879 -0.56967,0 -1.01888,-0.06592 -1.34766,-0.197754 -0.32878,-0.131835 -0.60221,-0.324706 -0.82031,-0.578613 -0.2181,-0.253905 -0.38574,-0.571288 -0.50293,-0.952148 z m 3.66211,-3.19336 c -10e-6,-0.387364 -0.0977,-0.690912 -0.29297,-0.910644 -0.19532,-0.219721 -0.43295,-0.329584 -0.71289,-0.32959 -0.26368,6e-6 -0.48259,0.09929 -0.65674,0.297852 -0.17415,0.198573 -0.26123,0.496424 -0.26123,0.893554 0,0.400395 0.0903,0.706385 0.271,0.917969 0.18066,0.211592 0.40608,0.317386 0.67627,0.317383 0.27994,3e-6 0.51269,-0.102536 0.69824,-0.307617 0.18554,-0.205074 0.27831,-0.498043 0.27832,-0.878907 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3846" />
|
||||
id="path3846"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m -177.60957,45.963036 c 0,-1.360673 0.24495,-2.31282 0.73486,-2.856446 0.48991,-0.543613 1.23616,-0.815422 2.23877,-0.815429 0.48177,7e-6 0.87727,0.05941 1.18652,0.178222 0.30924,0.118822 0.56152,0.273445 0.75684,0.463867 0.19531,0.190437 0.34911,0.390632 0.46142,0.600586 0.1123,0.209967 0.20264,0.454921 0.271,0.734864 0.13346,0.533859 0.20019,1.090499 0.2002,1.669922 -1e-5,1.29883 -0.21974,2.24935 -0.65918,2.851562 -0.43946,0.602214 -1.1963,0.90332 -2.27051,0.90332 -0.60222,0 -1.08887,-0.09603 -1.45996,-0.288086 -0.3711,-0.192057 -0.67546,-0.473632 -0.91309,-0.844726 -0.17253,-0.263671 -0.3068,-0.624185 -0.40283,-1.081543 -0.096,-0.457354 -0.14404,-0.962725 -0.14404,-1.516113 z m 1.97265,0.0049 c 0,0.911461 0.0806,1.534019 0.2417,1.867676 0.16113,0.33366 0.39469,0.50049 0.70069,0.500488 0.20182,2e-6 0.37678,-0.0708 0.5249,-0.212402 0.14811,-0.1416 0.25716,-0.365395 0.32715,-0.671387 0.07,-0.305987 0.10497,-0.782874 0.10498,-1.430664 -10e-6,-0.950516 -0.0806,-1.58935 -0.2417,-1.916504 -0.16114,-0.327142 -0.40284,-0.490716 -0.7251,-0.490722 -0.32878,6e-6 -0.56641,0.166835 -0.71289,0.500488 -0.14649,0.333664 -0.21973,0.951339 -0.21973,1.853027 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3848" />
|
||||
id="path3848"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
@ -3111,18 +3660,21 @@
|
||||
<path
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 372.07407,59.285714 0,-8.571429"
|
||||
id="path3306" />
|
||||
id="path3306"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
|
||||
id="text3308">
|
||||
<path
|
||||
d="m 369.25668,48.233543 -3.62304,0 0,-1.635742 3.62304,-4.30664 1.7334,0 0,4.399414 0.89844,0 0,1.542968 -0.89844,0 0,1.337891 -1.7334,0 z m 0,-1.542968 0,-2.250977 -1.91406,2.250977 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3851" />
|
||||
id="path3851"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 372.5184,45.963036 c 0,-1.360673 0.24496,-2.31282 0.73487,-2.856446 0.4899,-0.543613 1.23616,-0.815422 2.23876,-0.815429 0.48177,7e-6 0.87728,0.05941 1.18653,0.178222 0.30924,0.118822 0.56152,0.273445 0.75683,0.463867 0.19531,0.190437 0.34912,0.390632 0.46143,0.600586 0.1123,0.209967 0.20263,0.454921 0.271,0.734864 0.13345,0.533859 0.20019,1.090499 0.20019,1.669922 0,1.29883 -0.21973,2.24935 -0.65918,2.851562 -0.43946,0.602214 -1.19629,0.90332 -2.27051,0.90332 -0.60221,0 -1.08887,-0.09603 -1.45996,-0.288086 -0.37109,-0.192057 -0.67545,-0.473632 -0.91308,-0.844726 -0.17253,-0.263671 -0.30681,-0.624185 -0.40283,-1.081543 -0.096,-0.457354 -0.14405,-0.962725 -0.14405,-1.516113 z m 1.97266,0.0049 c 0,0.911461 0.0806,1.534019 0.2417,1.867676 0.16113,0.33366 0.39469,0.50049 0.70068,0.500488 0.20182,2e-6 0.37679,-0.0708 0.5249,-0.212402 0.14811,-0.1416 0.25716,-0.365395 0.32715,-0.671387 0.07,-0.305987 0.10498,-0.782874 0.10498,-1.430664 0,-0.950516 -0.0806,-1.58935 -0.2417,-1.916504 -0.16113,-0.327142 -0.40283,-0.490716 -0.72509,-0.490722 -0.32878,6e-6 -0.56641,0.166835 -0.7129,0.500488 -0.14648,0.333664 -0.21972,0.951339 -0.21972,1.853027 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3853" />
|
||||
id="path3853"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
@ -3132,18 +3684,21 @@
|
||||
<path
|
||||
id="path3314"
|
||||
d="m 372.07407,59.285714 0,-8.571429"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
|
||||
id="text3316">
|
||||
<path
|
||||
d="m 366.64438,42.413231 4.72168,0 0,1.586914 -3.19824,0 -0.1709,1.074219 c 0.22135,-0.104162 0.44026,-0.182287 0.65674,-0.234375 0.21646,-0.05208 0.43049,-0.07812 0.64209,-0.07813 0.71614,5e-6 1.29719,0.216476 1.74316,0.649414 0.44596,0.432946 0.66894,0.978193 0.66895,1.635742 -10e-6,0.462242 -0.11476,0.906577 -0.34424,1.333008 -0.2295,0.426433 -0.55502,0.751953 -0.97657,0.976562 -0.42155,0.22461 -0.9611,0.336914 -1.61865,0.336914 -0.47201,0 -0.87647,-0.04476 -1.21338,-0.134277 -0.33691,-0.08952 -0.62337,-0.222982 -0.85937,-0.400391 -0.23601,-0.177408 -0.42725,-0.378417 -0.57373,-0.603027 -0.14649,-0.224608 -0.26856,-0.504556 -0.36621,-0.839844 l 2.01172,-0.219726 c 0.0488,0.322267 0.16275,0.567221 0.34179,0.734863 0.17904,0.167644 0.39225,0.251466 0.63965,0.251465 0.27669,10e-7 0.50537,-0.104979 0.68604,-0.314942 0.18066,-0.209959 0.27099,-0.523272 0.27099,-0.939941 0,-0.42643 -0.0911,-0.738929 -0.27344,-0.9375 -0.18229,-0.198564 -0.4248,-0.297848 -0.72753,-0.297852 -0.19206,4e-6 -0.37761,0.04721 -0.55665,0.141602 -0.13346,0.06836 -0.27995,0.192061 -0.43945,0.371094 l -1.69433,-0.244141 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3856" />
|
||||
id="path3856"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 372.5184,45.963036 c 0,-1.360673 0.24496,-2.31282 0.73487,-2.856446 0.4899,-0.543613 1.23616,-0.815422 2.23876,-0.815429 0.48177,7e-6 0.87728,0.05941 1.18653,0.178222 0.30924,0.118822 0.56152,0.273445 0.75683,0.463867 0.19531,0.190437 0.34912,0.390632 0.46143,0.600586 0.1123,0.209967 0.20263,0.454921 0.271,0.734864 0.13345,0.533859 0.20019,1.090499 0.20019,1.669922 0,1.29883 -0.21973,2.24935 -0.65918,2.851562 -0.43946,0.602214 -1.19629,0.90332 -2.27051,0.90332 -0.60221,0 -1.08887,-0.09603 -1.45996,-0.288086 -0.37109,-0.192057 -0.67545,-0.473632 -0.91308,-0.844726 -0.17253,-0.263671 -0.30681,-0.624185 -0.40283,-1.081543 -0.096,-0.457354 -0.14405,-0.962725 -0.14405,-1.516113 z m 1.97266,0.0049 c 0,0.911461 0.0806,1.534019 0.2417,1.867676 0.16113,0.33366 0.39469,0.50049 0.70068,0.500488 0.20182,2e-6 0.37679,-0.0708 0.5249,-0.212402 0.14811,-0.1416 0.25716,-0.365395 0.32715,-0.671387 0.07,-0.305987 0.10498,-0.782874 0.10498,-1.430664 0,-0.950516 -0.0806,-1.58935 -0.2417,-1.916504 -0.16113,-0.327142 -0.40283,-0.490716 -0.72509,-0.490722 -0.32878,6e-6 -0.56641,0.166835 -0.7129,0.500488 -0.14648,0.333664 -0.21972,0.951339 -0.21972,1.853027 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3858" />
|
||||
id="path3858"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
@ -3153,7 +3708,8 @@
|
||||
<path
|
||||
id="path6992-4"
|
||||
d="m 1036.6779,58.30913 0,-8.57142"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<g
|
||||
transform="translate(1002.459,-83.494924)"
|
||||
@ -3162,22 +3718,26 @@
|
||||
<path
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 6.5622945,59.285714 0,-8.571429"
|
||||
id="path4116-9" />
|
||||
id="path4116-9"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
|
||||
id="text4118-4">
|
||||
<path
|
||||
d="m 2.851357,49.571434 -5.9667969,0 c 0.068359,-0.589192 0.2758784,-1.143391 0.6225586,-1.662598 0.3466785,-0.519203 0.9969057,-1.131996 1.9506836,-1.838379 0.58267887,-0.432938 0.95539985,-0.761714 1.11816406,-0.986328 0.1627563,-0.224604 0.24413642,-0.43782 0.24414062,-0.639648 -4.2e-6,-0.218094 -0.0805705,-0.404454 -0.24169922,-0.559082 -0.1611366,-0.154617 -0.36377312,-0.231928 -0.60791015,-0.231934 -0.25390935,6e-6 -0.46142867,0.07976 -0.6225586,0.239258 -0.16113537,0.159511 -0.26937094,0.441086 -0.32470703,0.844727 L -2.9689555,44.576317 c 0.078124,-0.55989 0.2213535,-0.996902 0.4296875,-1.311035 0.2083323,-0.314121 0.5021145,-0.555006 0.8813476,-0.722657 0.3792297,-0.167636 0.90413153,-0.251457 1.57470707,-0.251464 0.6998658,7e-6 1.24429883,0.07976 1.63330083,0.239257 0.388992,0.159512 0.6949813,0.404467 0.9179687,0.734864 0.2229757,0.330409 0.3344665,0.700689 0.3344727,1.11084 -6.2e-6,0.436202 -0.127773,0.852868 -0.3833008,1.25 -0.2555394,0.397138 -0.7202199,0.833336 -1.394043,1.308593 -0.40039462,0.276695 -0.66813524,0.47038 -0.80322265,0.581055 -0.13509461,0.110679 -0.29378586,0.255536 -0.47607422,0.43457 l 3.10546877,0 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3794-8" />
|
||||
id="path3794-8"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="M 9.4675679,44.024559 7.4900289,44.2687 C 7.4379414,43.992013 7.3508647,43.7967 7.2287984,43.682762 7.1067243,43.568836 6.956171,43.51187 6.7771382,43.511864 c -0.3222687,6e-6 -0.5729195,0.162766 -0.7519531,0.488281 -0.1302109,0.23438 -0.2262395,0.735682 -0.2880859,1.503906 0.2376275,-0.240881 0.4817679,-0.419103 0.7324218,-0.534668 0.2506477,-0.115555 0.5403609,-0.173335 0.8691407,-0.17334 0.6380161,5e-6 1.1775664,0.22787 1.6186523,0.683594 0.4410746,0.455733 0.6616148,1.033532 0.6616211,1.733399 -6.3e-6,0.472007 -0.1114971,0.903321 -0.3344726,1.293945 -0.2229876,0.390626 -0.5322321,0.686035 -0.9277344,0.88623 -0.3955125,0.200196 -0.8911175,0.300293 -1.4868164,0.300293 -0.7161487,0 -1.2906924,-0.12207 -1.7236328,-0.366211 C 4.7133347,49.083153 4.3674692,48.693342 4.1086812,48.15786 3.8498916,47.62238 3.7204972,46.913559 3.7204976,46.031395 c -4e-7,-1.292313 0.2718092,-2.238764 0.8154297,-2.839356 0.543618,-0.600578 1.297198,-0.900871 2.2607422,-0.900878 0.5696574,7e-6 1.0196895,0.06593 1.3500976,0.197753 0.3303985,0.131843 0.6046495,0.324714 0.8227539,0.578614 0.2180931,0.253912 0.3841086,0.572922 0.4980469,0.957031 z m -3.6621094,3.188477 c -2.5e-6,0.387371 0.097654,0.690919 0.2929688,0.910644 0.1953095,0.219728 0.4345671,0.329591 0.7177734,0.32959 0.2604129,10e-7 0.4785117,-0.09928 0.6542969,-0.297852 0.1757769,-0.198566 0.2636674,-0.494789 0.2636719,-0.888671 -4.5e-6,-0.403644 -0.09115,-0.71126 -0.2734375,-0.922852 -0.1822957,-0.211585 -0.4085324,-0.317379 -0.678711,-0.317383 -0.2766959,4e-6 -0.5086292,0.102543 -0.6958007,0.307617 -0.1871771,0.205081 -0.2807643,0.49805 -0.2807618,0.878907 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3796-8" />
|
||||
id="path3796-8"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 10.390419,45.963036 c 0,-1.360673 0.244954,-2.31282 0.734864,-2.856446 0.489907,-0.543613 1.236163,-0.815422 2.238769,-0.815429 0.481767,7e-6 0.877275,0.05941 1.186524,0.178222 0.30924,0.118822 0.561518,0.273445 0.756836,0.463867 0.195307,0.190437 0.349115,0.390632 0.461425,0.600586 0.112299,0.209967 0.202631,0.454921 0.270997,0.734864 0.133457,0.533859 0.200189,1.090499 0.200195,1.669922 -6e-6,1.29883 -0.219733,2.24935 -0.65918,2.851562 -0.439458,0.602214 -1.196293,0.90332 -2.270508,0.90332 -0.602216,0 -1.088869,-0.09603 -1.459961,-0.288086 -0.371095,-0.192057 -0.675457,-0.473632 -0.913086,-0.844726 -0.172526,-0.263671 -0.306804,-0.624185 -0.402832,-1.081543 -0.09603,-0.457354 -0.144043,-0.962725 -0.144043,-1.516113 z m 1.972657,0.0049 c -3e-6,0.911461 0.08056,1.534019 0.241699,1.867676 0.16113,0.33366 0.394691,0.50049 0.700684,0.500488 0.201819,2e-6 0.376786,-0.0708 0.524902,-0.212402 0.148108,-0.1416 0.257157,-0.365395 0.327148,-0.671387 0.06998,-0.305987 0.104977,-0.782874 0.104981,-1.430664 -4e-6,-0.950516 -0.08057,-1.58935 -0.241699,-1.916504 -0.161137,-0.327142 -0.402836,-0.490716 -0.725098,-0.490722 -0.328779,6e-6 -0.566409,0.166835 -0.712891,0.500488 -0.146487,0.333664 -0.219729,0.951339 -0.219726,1.853027 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3798-2" />
|
||||
id="path3798-2"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
@ -3187,22 +3747,26 @@
|
||||
<path
|
||||
id="path4220-5"
|
||||
d="m -27.437706,59.285714 0,-8.571429"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
|
||||
id="text4222-5">
|
||||
<path
|
||||
d="m -31.148643,49.571434 -5.966797,0 c 0.06836,-0.589192 0.275878,-1.143391 0.622558,-1.662598 0.346679,-0.519203 0.996906,-1.131996 1.950684,-1.838379 0.582679,-0.432938 0.9554,-0.761714 1.118164,-0.986328 0.162756,-0.224604 0.244136,-0.43782 0.244141,-0.639648 -5e-6,-0.218094 -0.08057,-0.404454 -0.2417,-0.559082 -0.161136,-0.154617 -0.363773,-0.231928 -0.60791,-0.231934 -0.253909,6e-6 -0.461429,0.07976 -0.622558,0.239258 -0.161136,0.159511 -0.269371,0.441086 -0.324707,0.844727 l -1.992188,-0.161133 c 0.07813,-0.55989 0.221354,-0.996902 0.429688,-1.311035 0.208332,-0.314121 0.502114,-0.555006 0.881347,-0.722657 0.37923,-0.167636 0.904132,-0.251457 1.574707,-0.251464 0.699866,7e-6 1.244299,0.07976 1.633301,0.239257 0.388992,0.159512 0.694981,0.404467 0.917969,0.734864 0.222975,0.330409 0.334466,0.700689 0.334472,1.11084 -6e-6,0.436202 -0.127773,0.852868 -0.3833,1.25 -0.25554,0.397138 -0.72022,0.833336 -1.394043,1.308593 -0.400395,0.276695 -0.668136,0.47038 -0.803223,0.581055 -0.135095,0.110679 -0.293786,0.255536 -0.476074,0.43457 l 3.105469,0 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3801-1" />
|
||||
id="path3801-1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m -29.483604,42.413231 4.721679,0 0,1.586914 -3.198242,0 -0.170898,1.074219 c 0.221351,-0.104162 0.440264,-0.182287 0.656738,-0.234375 0.216468,-0.05208 0.430498,-0.07812 0.64209,-0.07813 0.716141,5e-6 1.297195,0.216476 1.743164,0.649414 0.445957,0.432946 0.668939,0.978193 0.668945,1.635742 -6e-6,0.462242 -0.114752,0.906577 -0.344238,1.333008 -0.229498,0.426433 -0.555019,0.751953 -0.976563,0.976562 -0.421554,0.22461 -0.961104,0.336914 -1.618652,0.336914 -0.472008,0 -0.876467,-0.04476 -1.213379,-0.134277 -0.336916,-0.08952 -0.623374,-0.222982 -0.859375,-0.400391 -0.236004,-0.177408 -0.427247,-0.378417 -0.57373,-0.603027 -0.146485,-0.224608 -0.268555,-0.504556 -0.366211,-0.839844 l 2.011718,-0.219726 c 0.04883,0.322267 0.162758,0.567221 0.341797,0.734863 0.179034,0.167644 0.39225,0.251466 0.639649,0.251465 0.276689,10e-7 0.505367,-0.104979 0.686035,-0.314942 0.18066,-0.209959 0.270992,-0.523272 0.270996,-0.939941 -4e-6,-0.42643 -0.09115,-0.738929 -0.273437,-0.9375 -0.182296,-0.198564 -0.424809,-0.297848 -0.72754,-0.297852 -0.19206,4e-6 -0.377607,0.04721 -0.55664,0.141602 -0.133466,0.06836 -0.279951,0.192061 -0.439453,0.371094 l -1.694336,-0.244141 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3803-7" />
|
||||
id="path3803-7"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m -23.609581,45.963036 c 0,-1.360673 0.244954,-2.31282 0.734863,-2.856446 0.489908,-0.543613 1.236163,-0.815422 2.23877,-0.815429 0.481767,7e-6 0.877274,0.05941 1.186523,0.178222 0.30924,0.118822 0.561519,0.273445 0.756836,0.463867 0.195307,0.190437 0.349116,0.390632 0.461426,0.600586 0.112299,0.209967 0.202631,0.454921 0.270996,0.734864 0.133457,0.533859 0.200189,1.090499 0.200195,1.669922 -6e-6,1.29883 -0.219732,2.24935 -0.659179,2.851562 -0.439459,0.602214 -1.196294,0.90332 -2.270508,0.90332 -0.602216,0 -1.08887,-0.09603 -1.459961,-0.288086 -0.371095,-0.192057 -0.675457,-0.473632 -0.913086,-0.844726 -0.172527,-0.263671 -0.306804,-0.624185 -0.402832,-1.081543 -0.09603,-0.457354 -0.144043,-0.962725 -0.144043,-1.516113 z m 1.972656,0.0049 c -2e-6,0.911461 0.08056,1.534019 0.241699,1.867676 0.161131,0.33366 0.394691,0.50049 0.700684,0.500488 0.201819,2e-6 0.376787,-0.0708 0.524902,-0.212402 0.148108,-0.1416 0.257158,-0.365395 0.327149,-0.671387 0.06998,-0.305987 0.104976,-0.782874 0.10498,-1.430664 -4e-6,-0.950516 -0.08057,-1.58935 -0.241699,-1.916504 -0.161137,-0.327142 -0.402836,-0.490716 -0.725098,-0.490722 -0.328779,6e-6 -0.566409,0.166835 -0.71289,0.500488 -0.146487,0.333664 -0.219729,0.951339 -0.219727,1.853027 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3805-1" />
|
||||
id="path3805-1"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
@ -3212,22 +3776,26 @@
|
||||
<path
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m -61.437706,59.285714 0,-8.571429"
|
||||
id="path4228-5" />
|
||||
id="path4228-5"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
|
||||
id="text4230-2">
|
||||
<path
|
||||
d="m -65.148643,49.571434 -5.966797,0 c 0.06836,-0.589192 0.275878,-1.143391 0.622558,-1.662598 0.346679,-0.519203 0.996906,-1.131996 1.950684,-1.838379 0.582679,-0.432938 0.9554,-0.761714 1.118164,-0.986328 0.162756,-0.224604 0.244136,-0.43782 0.244141,-0.639648 -5e-6,-0.218094 -0.08057,-0.404454 -0.2417,-0.559082 -0.161136,-0.154617 -0.363773,-0.231928 -0.60791,-0.231934 -0.253909,6e-6 -0.461429,0.07976 -0.622558,0.239258 -0.161136,0.159511 -0.269371,0.441086 -0.324707,0.844727 l -1.992188,-0.161133 c 0.07813,-0.55989 0.221354,-0.996902 0.429688,-1.311035 0.208332,-0.314121 0.502114,-0.555006 0.881347,-0.722657 0.37923,-0.167636 0.904132,-0.251457 1.574707,-0.251464 0.699866,7e-6 1.244299,0.07976 1.633301,0.239257 0.388992,0.159512 0.694981,0.404467 0.917969,0.734864 0.222975,0.330409 0.334466,0.700689 0.334472,1.11084 -6e-6,0.436202 -0.127773,0.852868 -0.3833,1.25 -0.25554,0.397138 -0.72022,0.833336 -1.394043,1.308593 -0.400395,0.276695 -0.668136,0.47038 -0.803223,0.581055 -0.135095,0.110679 -0.293786,0.255536 -0.476074,0.43457 l 3.105469,0 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3809-7" />
|
||||
id="path3809-7"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m -60.8713,48.233543 -3.623047,0 0,-1.635742 3.623047,-4.30664 1.733399,0 0,4.399414 0.898437,0 0,1.542968 -0.898437,0 0,1.337891 -1.733399,0 z m 0,-1.542968 0,-2.250977 -1.914062,2.250977 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3811-6" />
|
||||
id="path3811-6"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m -57.609581,45.963036 c 0,-1.360673 0.244954,-2.31282 0.734863,-2.856446 0.489908,-0.543613 1.236163,-0.815422 2.23877,-0.815429 0.481767,7e-6 0.877274,0.05941 1.186523,0.178222 0.30924,0.118822 0.561519,0.273445 0.756836,0.463867 0.195307,0.190437 0.349116,0.390632 0.461426,0.600586 0.112299,0.209967 0.202631,0.454921 0.270996,0.734864 0.133457,0.533859 0.200189,1.090499 0.200195,1.669922 -6e-6,1.29883 -0.219732,2.24935 -0.659179,2.851562 -0.439459,0.602214 -1.196294,0.90332 -2.270508,0.90332 -0.602216,0 -1.08887,-0.09603 -1.459961,-0.288086 -0.371095,-0.192057 -0.675457,-0.473632 -0.913086,-0.844726 -0.172527,-0.263671 -0.306804,-0.624185 -0.402832,-1.081543 -0.09603,-0.457354 -0.144043,-0.962725 -0.144043,-1.516113 z m 1.972656,0.0049 c -2e-6,0.911461 0.08056,1.534019 0.241699,1.867676 0.161131,0.33366 0.394691,0.50049 0.700684,0.500488 0.201819,2e-6 0.376787,-0.0708 0.524902,-0.212402 0.148108,-0.1416 0.257158,-0.365395 0.327149,-0.671387 0.06998,-0.305987 0.104976,-0.782874 0.10498,-1.430664 -4e-6,-0.950516 -0.08057,-1.58935 -0.241699,-1.916504 -0.161137,-0.327142 -0.402836,-0.490716 -0.725098,-0.490722 -0.328779,6e-6 -0.566409,0.166835 -0.71289,0.500488 -0.146487,0.333664 -0.219729,0.951339 -0.219727,1.853027 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3813-1" />
|
||||
id="path3813-1"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
@ -3237,22 +3805,26 @@
|
||||
<path
|
||||
id="path4236-2"
|
||||
d="m -85.437706,59.285714 0,-8.571429"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
|
||||
id="text4238-3">
|
||||
<path
|
||||
d="m -89.148643,49.571434 -5.966797,0 c 0.06836,-0.589192 0.275878,-1.143391 0.622558,-1.662598 0.346679,-0.519203 0.996906,-1.131996 1.950684,-1.838379 0.582679,-0.432938 0.9554,-0.761714 1.118164,-0.986328 0.162756,-0.224604 0.244136,-0.43782 0.244141,-0.639648 -5e-6,-0.218094 -0.08057,-0.404454 -0.2417,-0.559082 -0.161136,-0.154617 -0.363773,-0.231928 -0.60791,-0.231934 -0.253909,6e-6 -0.461429,0.07976 -0.622558,0.239258 -0.161136,0.159511 -0.269371,0.441086 -0.324707,0.844727 l -1.992188,-0.161133 c 0.07813,-0.55989 0.221354,-0.996902 0.429688,-1.311035 0.208332,-0.314121 0.502114,-0.555006 0.881347,-0.722657 0.37923,-0.167636 0.904132,-0.251457 1.574707,-0.251464 0.699866,7e-6 1.244299,0.07976 1.633301,0.239257 0.388992,0.159512 0.694981,0.404467 0.917969,0.734864 0.222975,0.330409 0.334466,0.700689 0.334472,1.11084 -6e-6,0.436202 -0.127773,0.852868 -0.3833,1.25 -0.25554,0.397138 -0.72022,0.833336 -1.394043,1.308593 -0.400395,0.276695 -0.668136,0.47038 -0.803223,0.581055 -0.135095,0.110679 -0.293786,0.255536 -0.476074,0.43457 l 3.105469,0 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3816-2" />
|
||||
id="path3816-2"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m -86.360558,44.483543 -1.879882,-0.336914 c 0.156249,-0.598952 0.456542,-1.057936 0.900879,-1.376953 0.444334,-0.319003 1.073402,-0.478508 1.887207,-0.478515 0.93424,7e-6 1.609695,0.17416 2.026367,0.522461 0.416661,0.348313 0.624994,0.786138 0.625,1.313476 -6e-6,0.30925 -0.08464,0.589198 -0.253906,0.839844 -0.169277,0.250655 -0.42481,0.470382 -0.766602,0.65918 0.276687,0.06836 0.488276,0.148115 0.634766,0.239257 0.237624,0.146488 0.422357,0.339359 0.554199,0.578614 0.13183,0.23926 0.197747,0.524905 0.197754,0.856933 -7e-6,0.416669 -0.109056,0.816245 -0.327149,1.198731 -0.218104,0.382487 -0.532232,0.677083 -0.942383,0.883789 -0.41016,0.206705 -0.948897,0.310058 -1.61621,0.310058 -0.651045,0 -1.164553,-0.0765 -1.540528,-0.229492 -0.375978,-0.152994 -0.685222,-0.37679 -0.927734,-0.671387 -0.242514,-0.294595 -0.428874,-0.664874 -0.559082,-1.110839 l 1.987304,-0.263672 c 0.07812,0.400392 0.199379,0.677898 0.36377,0.832519 0.164385,0.154624 0.373532,0.231935 0.627441,0.231934 0.266924,10e-7 0.489092,-0.09766 0.666504,-0.292969 0.177405,-0.195311 0.266109,-0.455727 0.266114,-0.78125 -5e-6,-0.332029 -0.08545,-0.58919 -0.256348,-0.771484 -0.170902,-0.182289 -0.402836,-0.273435 -0.695801,-0.273438 -0.156253,3e-6 -0.371097,0.03907 -0.644531,0.117188 l 0.102539,-1.420899 c 0.110674,0.01628 0.196937,0.02442 0.258789,0.02441 0.260413,5e-6 0.477698,-0.083 0.651855,-0.249023 0.17415,-0.166011 0.261227,-0.362951 0.261231,-0.59082 -4e-6,-0.218094 -0.06511,-0.392247 -0.195313,-0.522461 -0.130212,-0.130203 -0.309248,-0.195307 -0.537109,-0.195313 -0.234378,6e-6 -0.424807,0.07081 -0.571289,0.212402 -0.146487,0.141608 -0.245771,0.389817 -0.297852,0.744629 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3818-2" />
|
||||
id="path3818-2"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m -81.609581,45.963036 c 0,-1.360673 0.244954,-2.31282 0.734863,-2.856446 0.489908,-0.543613 1.236163,-0.815422 2.23877,-0.815429 0.481767,7e-6 0.877274,0.05941 1.186523,0.178222 0.30924,0.118822 0.561519,0.273445 0.756836,0.463867 0.195307,0.190437 0.349116,0.390632 0.461426,0.600586 0.112299,0.209967 0.202631,0.454921 0.270996,0.734864 0.133457,0.533859 0.200189,1.090499 0.200195,1.669922 -6e-6,1.29883 -0.219732,2.24935 -0.659179,2.851562 -0.439459,0.602214 -1.196294,0.90332 -2.270508,0.90332 -0.602216,0 -1.08887,-0.09603 -1.459961,-0.288086 -0.371095,-0.192057 -0.675457,-0.473632 -0.913086,-0.844726 -0.172527,-0.263671 -0.306804,-0.624185 -0.402832,-1.081543 -0.09603,-0.457354 -0.144043,-0.962725 -0.144043,-1.516113 z m 1.972656,0.0049 c -2e-6,0.911461 0.08056,1.534019 0.241699,1.867676 0.161131,0.33366 0.394691,0.50049 0.700684,0.500488 0.201819,2e-6 0.376787,-0.0708 0.524902,-0.212402 0.148108,-0.1416 0.257158,-0.365395 0.327149,-0.671387 0.06998,-0.305987 0.104976,-0.782874 0.10498,-1.430664 -4e-6,-0.950516 -0.08057,-1.58935 -0.241699,-1.916504 -0.161137,-0.327142 -0.402836,-0.490716 -0.725098,-0.490722 -0.328779,6e-6 -0.566409,0.166835 -0.71289,0.500488 -0.146487,0.333664 -0.219729,0.951339 -0.219727,1.853027 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3820-1" />
|
||||
id="path3820-1"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
@ -3262,22 +3834,26 @@
|
||||
<path
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m -111.43771,59.285714 0,-8.571429"
|
||||
id="path4244-8" />
|
||||
id="path4244-8"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
|
||||
id="text4246-5">
|
||||
<path
|
||||
d="m -115.14864,49.571434 -5.9668,0 c 0.0684,-0.589192 0.27588,-1.143391 0.62256,-1.662598 0.34668,-0.519203 0.9969,-1.131996 1.95068,-1.838379 0.58268,-0.432938 0.9554,-0.761714 1.11817,-0.986328 0.16275,-0.224604 0.24413,-0.43782 0.24414,-0.639648 -1e-5,-0.218094 -0.0806,-0.404454 -0.2417,-0.559082 -0.16114,-0.154617 -0.36378,-0.231928 -0.60791,-0.231934 -0.25391,6e-6 -0.46143,0.07976 -0.62256,0.239258 -0.16114,0.159511 -0.26937,0.441086 -0.32471,0.844727 l -1.99219,-0.161133 c 0.0781,-0.55989 0.22136,-0.996902 0.42969,-1.311035 0.20833,-0.314121 0.50212,-0.555006 0.88135,-0.722657 0.37923,-0.167636 0.90413,-0.251457 1.57471,-0.251464 0.69986,7e-6 1.2443,0.07976 1.6333,0.239257 0.38899,0.159512 0.69498,0.404467 0.91797,0.734864 0.22297,0.330409 0.33446,0.700689 0.33447,1.11084 -1e-5,0.436202 -0.12777,0.852868 -0.3833,1.25 -0.25554,0.397138 -0.72022,0.833336 -1.39405,1.308593 -0.40039,0.276695 -0.66813,0.47038 -0.80322,0.581055 -0.13509,0.110679 -0.29378,0.255536 -0.47607,0.43457 l 3.10547,0 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3823-7" />
|
||||
id="path3823-7"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m -108.46896,49.571434 -5.96679,0 c 0.0684,-0.589192 0.27588,-1.143391 0.62256,-1.662598 0.34667,-0.519203 0.9969,-1.131996 1.95068,-1.838379 0.58268,-0.432938 0.9554,-0.761714 1.11816,-0.986328 0.16276,-0.224604 0.24414,-0.43782 0.24414,-0.639648 0,-0.218094 -0.0806,-0.404454 -0.2417,-0.559082 -0.16113,-0.154617 -0.36377,-0.231928 -0.60791,-0.231934 -0.2539,6e-6 -0.46142,0.07976 -0.62255,0.239258 -0.16114,0.159511 -0.26937,0.441086 -0.32471,0.844727 l -1.99219,-0.161133 c 0.0781,-0.55989 0.22136,-0.996902 0.42969,-1.311035 0.20833,-0.314121 0.50211,-0.555006 0.88135,-0.722657 0.37923,-0.167636 0.90413,-0.251457 1.5747,-0.251464 0.69987,7e-6 1.2443,0.07976 1.6333,0.239257 0.389,0.159512 0.69499,0.404467 0.91797,0.734864 0.22298,0.330409 0.33447,0.700689 0.33448,1.11084 -1e-5,0.436202 -0.12778,0.852868 -0.3833,1.25 -0.25554,0.397138 -0.72022,0.833336 -1.39405,1.308593 -0.40039,0.276695 -0.66813,0.47038 -0.80322,0.581055 -0.1351,0.110679 -0.29379,0.255536 -0.47607,0.43457 l 3.10546,0 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3825-6" />
|
||||
id="path3825-6"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m -107.60958,45.963036 c 0,-1.360673 0.24495,-2.31282 0.73486,-2.856446 0.48991,-0.543613 1.23617,-0.815422 2.23877,-0.815429 0.48177,7e-6 0.87728,0.05941 1.18653,0.178222 0.30924,0.118822 0.56151,0.273445 0.75683,0.463867 0.19531,0.190437 0.34912,0.390632 0.46143,0.600586 0.1123,0.209967 0.20263,0.454921 0.27099,0.734864 0.13346,0.533859 0.20019,1.090499 0.2002,1.669922 -1e-5,1.29883 -0.21973,2.24935 -0.65918,2.851562 -0.43946,0.602214 -1.19629,0.90332 -2.27051,0.90332 -0.60222,0 -1.08887,-0.09603 -1.45996,-0.288086 -0.3711,-0.192057 -0.67546,-0.473632 -0.91309,-0.844726 -0.17252,-0.263671 -0.3068,-0.624185 -0.40283,-1.081543 -0.096,-0.457354 -0.14404,-0.962725 -0.14404,-1.516113 z m 1.97266,0.0049 c -1e-5,0.911461 0.0806,1.534019 0.24169,1.867676 0.16113,0.33366 0.3947,0.50049 0.70069,0.500488 0.20182,2e-6 0.37678,-0.0708 0.5249,-0.212402 0.14811,-0.1416 0.25716,-0.365395 0.32715,-0.671387 0.07,-0.305987 0.10498,-0.782874 0.10498,-1.430664 0,-0.950516 -0.0806,-1.58935 -0.2417,-1.916504 -0.16114,-0.327142 -0.40284,-0.490716 -0.7251,-0.490722 -0.32878,6e-6 -0.56641,0.166835 -0.71289,0.500488 -0.14649,0.333664 -0.21973,0.951339 -0.21972,1.853027 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3827-1" />
|
||||
id="path3827-1"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
@ -3287,22 +3863,26 @@
|
||||
<path
|
||||
id="path4252-9"
|
||||
d="m -135.4377,59.285714 0,-8.571429"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
|
||||
id="text4254-2">
|
||||
<path
|
||||
d="m -139.14864,49.571434 -5.96679,0 c 0.0684,-0.589192 0.27588,-1.143391 0.62256,-1.662598 0.34667,-0.519203 0.9969,-1.131996 1.95068,-1.838379 0.58268,-0.432938 0.9554,-0.761714 1.11816,-0.986328 0.16276,-0.224604 0.24414,-0.43782 0.24414,-0.639648 0,-0.218094 -0.0806,-0.404454 -0.2417,-0.559082 -0.16113,-0.154617 -0.36377,-0.231928 -0.60791,-0.231934 -0.2539,6e-6 -0.46142,0.07976 -0.62255,0.239258 -0.16114,0.159511 -0.26937,0.441086 -0.32471,0.844727 l -1.99219,-0.161133 c 0.0781,-0.55989 0.22136,-0.996902 0.42969,-1.311035 0.20833,-0.314121 0.50211,-0.555006 0.88135,-0.722657 0.37923,-0.167636 0.90413,-0.251457 1.5747,-0.251464 0.69987,7e-6 1.2443,0.07976 1.6333,0.239257 0.389,0.159512 0.69499,0.404467 0.91797,0.734864 0.22298,0.330409 0.33447,0.700689 0.33448,1.11084 -1e-5,0.436202 -0.12778,0.852868 -0.3833,1.25 -0.25554,0.397138 -0.72022,0.833336 -1.39405,1.308593 -0.40039,0.276695 -0.66813,0.47038 -0.80322,0.581055 -0.1351,0.110679 -0.29379,0.255536 -0.47607,0.43457 l 3.10546,0 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3830-7" />
|
||||
id="path3830-7"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m -133.78242,42.291161 0,7.280273 -2.01172,0 0,-4.770508 c -0.32553,0.247401 -0.64047,0.447596 -0.94483,0.600586 -0.30436,0.152999 -0.68603,0.299483 -1.14502,0.439453 l 0,-1.630859 c 0.67708,-0.218093 1.2028,-0.480137 1.57715,-0.786133 0.37435,-0.305983 0.66732,-0.683587 0.87891,-1.132812 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3832-9" />
|
||||
id="path3832-9"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m -131.60957,45.963036 c 0,-1.360673 0.24495,-2.31282 0.73486,-2.856446 0.48991,-0.543613 1.23616,-0.815422 2.23877,-0.815429 0.48177,7e-6 0.87727,0.05941 1.18652,0.178222 0.30924,0.118822 0.56152,0.273445 0.75684,0.463867 0.19531,0.190437 0.34911,0.390632 0.46142,0.600586 0.1123,0.209967 0.20264,0.454921 0.271,0.734864 0.13346,0.533859 0.20019,1.090499 0.2002,1.669922 -10e-6,1.29883 -0.21974,2.24935 -0.65918,2.851562 -0.43946,0.602214 -1.1963,0.90332 -2.27051,0.90332 -0.60222,0 -1.08887,-0.09603 -1.45996,-0.288086 -0.3711,-0.192057 -0.67546,-0.473632 -0.91309,-0.844726 -0.17253,-0.263671 -0.3068,-0.624185 -0.40283,-1.081543 -0.096,-0.457354 -0.14404,-0.962725 -0.14404,-1.516113 z m 1.97265,0.0049 c 0,0.911461 0.0806,1.534019 0.2417,1.867676 0.16113,0.33366 0.39469,0.50049 0.70069,0.500488 0.20182,2e-6 0.37678,-0.0708 0.5249,-0.212402 0.14811,-0.1416 0.25716,-0.365395 0.32715,-0.671387 0.07,-0.305987 0.10497,-0.782874 0.10498,-1.430664 -1e-5,-0.950516 -0.0806,-1.58935 -0.2417,-1.916504 -0.16114,-0.327142 -0.40284,-0.490716 -0.7251,-0.490722 -0.32878,6e-6 -0.56641,0.166835 -0.71289,0.500488 -0.14649,0.333664 -0.21973,0.951339 -0.21973,1.853027 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3834-5" />
|
||||
id="path3834-5"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
@ -3312,22 +3892,26 @@
|
||||
<path
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m -159.4377,59.285714 0,-8.571429"
|
||||
id="path4260-3" />
|
||||
id="path4260-3"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
|
||||
id="text4262-1">
|
||||
<path
|
||||
d="m -163.14864,49.571434 -5.96679,0 c 0.0684,-0.589192 0.27588,-1.143391 0.62256,-1.662598 0.34667,-0.519203 0.9969,-1.131996 1.95068,-1.838379 0.58268,-0.432938 0.9554,-0.761714 1.11816,-0.986328 0.16276,-0.224604 0.24414,-0.43782 0.24414,-0.639648 0,-0.218094 -0.0806,-0.404454 -0.2417,-0.559082 -0.16113,-0.154617 -0.36377,-0.231928 -0.60791,-0.231934 -0.2539,6e-6 -0.46142,0.07976 -0.62255,0.239258 -0.16114,0.159511 -0.26937,0.441086 -0.32471,0.844727 l -1.99219,-0.161133 c 0.0781,-0.55989 0.22136,-0.996902 0.42969,-1.311035 0.20833,-0.314121 0.50211,-0.555006 0.88135,-0.722657 0.37923,-0.167636 0.90413,-0.251457 1.5747,-0.251464 0.69987,7e-6 1.2443,0.07976 1.6333,0.239257 0.389,0.159512 0.69499,0.404467 0.91797,0.734864 0.22298,0.330409 0.33447,0.700689 0.33448,1.11084 -1e-5,0.436202 -0.12778,0.852868 -0.3833,1.25 -0.25554,0.397138 -0.72022,0.833336 -1.39405,1.308593 -0.40039,0.276695 -0.66813,0.47038 -0.80322,0.581055 -0.1351,0.110679 -0.29379,0.255536 -0.47607,0.43457 l 3.10546,0 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3837-2" />
|
||||
id="path3837-2"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m -162.28926,45.963036 c 0,-1.360673 0.24495,-2.31282 0.73486,-2.856446 0.48991,-0.543613 1.23617,-0.815422 2.23877,-0.815429 0.48177,7e-6 0.87728,0.05941 1.18653,0.178222 0.30924,0.118822 0.56151,0.273445 0.75683,0.463867 0.19531,0.190437 0.34912,0.390632 0.46143,0.600586 0.1123,0.209967 0.20263,0.454921 0.27099,0.734864 0.13346,0.533859 0.20019,1.090499 0.2002,1.669922 -1e-5,1.29883 -0.21973,2.24935 -0.65918,2.851562 -0.43946,0.602214 -1.19629,0.90332 -2.27051,0.90332 -0.60222,0 -1.08887,-0.09603 -1.45996,-0.288086 -0.3711,-0.192057 -0.67546,-0.473632 -0.91309,-0.844726 -0.17252,-0.263671 -0.3068,-0.624185 -0.40283,-1.081543 -0.096,-0.457354 -0.14404,-0.962725 -0.14404,-1.516113 z m 1.97266,0.0049 c -1e-5,0.911461 0.0806,1.534019 0.24169,1.867676 0.16113,0.33366 0.3947,0.50049 0.70069,0.500488 0.20182,2e-6 0.37678,-0.0708 0.5249,-0.212402 0.14811,-0.1416 0.25716,-0.365395 0.32715,-0.671387 0.07,-0.305987 0.10498,-0.782874 0.10498,-1.430664 0,-0.950516 -0.0806,-1.58935 -0.2417,-1.916504 -0.16114,-0.327142 -0.40284,-0.490716 -0.7251,-0.490722 -0.32878,6e-6 -0.56641,0.166835 -0.71289,0.500488 -0.14648,0.333664 -0.21973,0.951339 -0.21972,1.853027 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3839-3" />
|
||||
id="path3839-3"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m -155.60957,45.963036 c 0,-1.360673 0.24495,-2.31282 0.73486,-2.856446 0.48991,-0.543613 1.23616,-0.815422 2.23877,-0.815429 0.48177,7e-6 0.87727,0.05941 1.18652,0.178222 0.30924,0.118822 0.56152,0.273445 0.75684,0.463867 0.19531,0.190437 0.34911,0.390632 0.46142,0.600586 0.1123,0.209967 0.20264,0.454921 0.271,0.734864 0.13346,0.533859 0.20019,1.090499 0.2002,1.669922 -1e-5,1.29883 -0.21974,2.24935 -0.65918,2.851562 -0.43946,0.602214 -1.1963,0.90332 -2.27051,0.90332 -0.60222,0 -1.08887,-0.09603 -1.45996,-0.288086 -0.3711,-0.192057 -0.67546,-0.473632 -0.91309,-0.844726 -0.17253,-0.263671 -0.3068,-0.624185 -0.40283,-1.081543 -0.096,-0.457354 -0.14404,-0.962725 -0.14404,-1.516113 z m 1.97265,0.0049 c 0,0.911461 0.0806,1.534019 0.2417,1.867676 0.16113,0.33366 0.39469,0.50049 0.70069,0.500488 0.20182,2e-6 0.37678,-0.0708 0.5249,-0.212402 0.14811,-0.1416 0.25716,-0.365395 0.32715,-0.671387 0.07,-0.305987 0.10497,-0.782874 0.10498,-1.430664 -10e-6,-0.950516 -0.0806,-1.58935 -0.2417,-1.916504 -0.16114,-0.327142 -0.40284,-0.490716 -0.7251,-0.490722 -0.32878,6e-6 -0.56641,0.166835 -0.71289,0.500488 -0.14649,0.333664 -0.21973,0.951339 -0.21973,1.853027 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3841-3" />
|
||||
id="path3841-3"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
@ -3337,22 +3921,26 @@
|
||||
<path
|
||||
id="path4268-1"
|
||||
d="m -181.16182,59.285714 0,-8.571429"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
|
||||
id="text4270-1">
|
||||
<path
|
||||
d="m -186.46211,42.291161 0,7.280273 -2.01172,0 0,-4.770508 c -0.32552,0.247401 -0.64047,0.447596 -0.94483,0.600586 -0.30436,0.152999 -0.68603,0.299483 -1.14501,0.439453 l 0,-1.630859 c 0.67708,-0.218093 1.20279,-0.480137 1.57714,-0.786133 0.37435,-0.305983 0.66732,-0.683587 0.87891,-1.132812 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3844-3" />
|
||||
id="path3844-3"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m -184.20137,47.964989 1.97754,-0.249024 c 0.0521,0.276695 0.13997,0.472007 0.26367,0.585938 0.1237,0.113933 0.27506,0.170899 0.4541,0.170898 0.31901,1e-6 0.56803,-0.161131 0.74707,-0.483398 0.13021,-0.237629 0.22786,-0.740558 0.29297,-1.508789 -0.23763,0.244143 -0.48177,0.423179 -0.73242,0.537109 -0.25065,0.113935 -0.54037,0.170901 -0.86914,0.170899 -0.64128,2e-6 -1.18246,-0.227862 -1.62354,-0.683594 -0.44108,-0.455726 -0.66162,-1.031897 -0.66162,-1.728516 0,-0.475255 0.11231,-0.908197 0.33692,-1.298828 0.22461,-0.390618 0.53385,-0.686028 0.92773,-0.88623 0.39388,-0.200189 0.88867,-0.300286 1.48438,-0.300293 0.71614,7e-6 1.29068,0.122891 1.72363,0.368652 0.43294,0.245775 0.7788,0.636399 1.0376,1.171875 0.25878,0.535487 0.38817,1.24268 0.38818,2.121582 -1e-5,1.29232 -0.27182,2.238771 -0.81543,2.839355 -0.54362,0.600587 -1.2972,0.900879 -2.26074,0.900879 -0.56967,0 -1.01888,-0.06592 -1.34766,-0.197754 -0.32878,-0.131835 -0.60221,-0.324706 -0.82031,-0.578613 -0.2181,-0.253905 -0.38574,-0.571288 -0.50293,-0.952148 z m 3.66211,-3.19336 c -10e-6,-0.387364 -0.0977,-0.690912 -0.29297,-0.910644 -0.19532,-0.219721 -0.43295,-0.329584 -0.71289,-0.32959 -0.26368,6e-6 -0.48259,0.09929 -0.65674,0.297852 -0.17415,0.198573 -0.26123,0.496424 -0.26123,0.893554 0,0.400395 0.0903,0.706385 0.271,0.917969 0.18066,0.211592 0.40608,0.317386 0.67627,0.317383 0.27994,3e-6 0.51269,-0.102536 0.69824,-0.307617 0.18554,-0.205074 0.27831,-0.498043 0.27832,-0.878907 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3846-8" />
|
||||
id="path3846-8"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m -177.60957,45.963036 c 0,-1.360673 0.24495,-2.31282 0.73486,-2.856446 0.48991,-0.543613 1.23616,-0.815422 2.23877,-0.815429 0.48177,7e-6 0.87727,0.05941 1.18652,0.178222 0.30924,0.118822 0.56152,0.273445 0.75684,0.463867 0.19531,0.190437 0.34911,0.390632 0.46142,0.600586 0.1123,0.209967 0.20264,0.454921 0.271,0.734864 0.13346,0.533859 0.20019,1.090499 0.2002,1.669922 -1e-5,1.29883 -0.21974,2.24935 -0.65918,2.851562 -0.43946,0.602214 -1.1963,0.90332 -2.27051,0.90332 -0.60222,0 -1.08887,-0.09603 -1.45996,-0.288086 -0.3711,-0.192057 -0.67546,-0.473632 -0.91309,-0.844726 -0.17253,-0.263671 -0.3068,-0.624185 -0.40283,-1.081543 -0.096,-0.457354 -0.14404,-0.962725 -0.14404,-1.516113 z m 1.97265,0.0049 c 0,0.911461 0.0806,1.534019 0.2417,1.867676 0.16113,0.33366 0.39469,0.50049 0.70069,0.500488 0.20182,2e-6 0.37678,-0.0708 0.5249,-0.212402 0.14811,-0.1416 0.25716,-0.365395 0.32715,-0.671387 0.07,-0.305987 0.10497,-0.782874 0.10498,-1.430664 -10e-6,-0.950516 -0.0806,-1.58935 -0.2417,-1.916504 -0.16114,-0.327142 -0.40284,-0.490716 -0.7251,-0.490722 -0.32878,6e-6 -0.56641,0.166835 -0.71289,0.500488 -0.14649,0.333664 -0.21973,0.951339 -0.21973,1.853027 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3848-7" />
|
||||
id="path3848-7"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
@ -3362,7 +3950,8 @@
|
||||
<path
|
||||
id="path6994-7"
|
||||
d="m -456.77631,58.288825 0,-8.57142"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<g
|
||||
transform="translate(-997.57233,-83.494924)"
|
||||
@ -3371,22 +3960,26 @@
|
||||
<path
|
||||
id="path3916-9"
|
||||
d="m 568.45258,59.285714 0,-8.571429"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
|
||||
id="text3918-3">
|
||||
<path
|
||||
d="m 563.15228,42.291161 0,7.280273 -2.01172,0 0,-4.770508 c -0.32552,0.247401 -0.64046,0.447596 -0.94482,0.600586 -0.30436,0.152999 -0.68604,0.299483 -1.14502,0.439453 l 0,-1.630859 c 0.67708,-0.218093 1.2028,-0.480137 1.57715,-0.786133 0.37434,-0.305983 0.66731,-0.683587 0.8789,-1.132812 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3681-1" />
|
||||
id="path3681-1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 565.32513,45.963036 c 0,-1.360673 0.24496,-2.31282 0.73487,-2.856446 0.4899,-0.543613 1.23616,-0.815422 2.23877,-0.815429 0.48176,7e-6 0.87727,0.05941 1.18652,0.178222 0.30924,0.118822 0.56152,0.273445 0.75684,0.463867 0.1953,0.190437 0.34911,0.390632 0.46142,0.600586 0.1123,0.209967 0.20263,0.454921 0.271,0.734864 0.13346,0.533859 0.20019,1.090499 0.20019,1.669922 0,1.29883 -0.21973,2.24935 -0.65918,2.851562 -0.43945,0.602214 -1.19629,0.90332 -2.2705,0.90332 -0.60222,0 -1.08887,-0.09603 -1.45996,-0.288086 -0.3711,-0.192057 -0.67546,-0.473632 -0.91309,-0.844726 -0.17253,-0.263671 -0.3068,-0.624185 -0.40283,-1.081543 -0.096,-0.457354 -0.14405,-0.962725 -0.14405,-1.516113 z m 1.97266,0.0049 c 0,0.911461 0.0806,1.534019 0.2417,1.867676 0.16113,0.33366 0.39469,0.50049 0.70068,0.500488 0.20182,2e-6 0.37679,-0.0708 0.52491,-0.212402 0.1481,-0.1416 0.25715,-0.365395 0.32714,-0.671387 0.07,-0.305987 0.10498,-0.782874 0.10498,-1.430664 0,-0.950516 -0.0806,-1.58935 -0.24169,-1.916504 -0.16114,-0.327142 -0.40284,-0.490716 -0.7251,-0.490722 -0.32878,6e-6 -0.56641,0.166835 -0.71289,0.500488 -0.14649,0.333664 -0.21973,0.951339 -0.21973,1.853027 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3683-9" />
|
||||
id="path3683-9"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 572.00482,45.963036 c 0,-1.360673 0.24496,-2.31282 0.73487,-2.856446 0.4899,-0.543613 1.23616,-0.815422 2.23876,-0.815429 0.48177,7e-6 0.87728,0.05941 1.18653,0.178222 0.30924,0.118822 0.56152,0.273445 0.75683,0.463867 0.19531,0.190437 0.34912,0.390632 0.46143,0.600586 0.1123,0.209967 0.20263,0.454921 0.271,0.734864 0.13345,0.533859 0.20018,1.090499 0.20019,1.669922 -10e-6,1.29883 -0.21973,2.24935 -0.65918,2.851562 -0.43946,0.602214 -1.19629,0.90332 -2.27051,0.90332 -0.60221,0 -1.08887,-0.09603 -1.45996,-0.288086 -0.37109,-0.192057 -0.67545,-0.473632 -0.91308,-0.844726 -0.17253,-0.263671 -0.30681,-0.624185 -0.40284,-1.081543 -0.096,-0.457354 -0.14404,-0.962725 -0.14404,-1.516113 z m 1.97266,0.0049 c 0,0.911461 0.0806,1.534019 0.2417,1.867676 0.16113,0.33366 0.39469,0.50049 0.70068,0.500488 0.20182,2e-6 0.37679,-0.0708 0.5249,-0.212402 0.14811,-0.1416 0.25716,-0.365395 0.32715,-0.671387 0.07,-0.305987 0.10498,-0.782874 0.10498,-1.430664 0,-0.950516 -0.0806,-1.58935 -0.2417,-1.916504 -0.16113,-0.327142 -0.40283,-0.490716 -0.72509,-0.490722 -0.32878,6e-6 -0.56641,0.166835 -0.7129,0.500488 -0.14648,0.333664 -0.21972,0.951339 -0.21972,1.853027 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3685-8" />
|
||||
id="path3685-8"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
@ -3396,22 +3989,26 @@
|
||||
<path
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 600.45258,59.285714 0,-8.571429"
|
||||
id="path3924-5" />
|
||||
id="path3924-5"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
|
||||
id="text3926-0">
|
||||
<path
|
||||
d="m 595.15228,42.291161 0,7.280273 -2.01172,0 0,-4.770508 c -0.32552,0.247401 -0.64046,0.447596 -0.94482,0.600586 -0.30436,0.152999 -0.68604,0.299483 -1.14502,0.439453 l 0,-1.630859 c 0.67708,-0.218093 1.2028,-0.480137 1.57715,-0.786133 0.37434,-0.305983 0.66731,-0.683587 0.8789,-1.132812 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3688-2" />
|
||||
id="path3688-2"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 601.83197,42.291161 0,7.280273 -2.01172,0 0,-4.770508 c -0.32552,0.247401 -0.64046,0.447596 -0.94482,0.600586 -0.30437,0.152999 -0.68604,0.299483 -1.14502,0.439453 l 0,-1.630859 c 0.67708,-0.218093 1.2028,-0.480137 1.57715,-0.786133 0.37434,-0.305983 0.66731,-0.683587 0.8789,-1.132812 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3690-8" />
|
||||
id="path3690-8"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 604.00482,45.963036 c 0,-1.360673 0.24496,-2.31282 0.73487,-2.856446 0.4899,-0.543613 1.23616,-0.815422 2.23876,-0.815429 0.48177,7e-6 0.87728,0.05941 1.18653,0.178222 0.30924,0.118822 0.56152,0.273445 0.75683,0.463867 0.19531,0.190437 0.34912,0.390632 0.46143,0.600586 0.1123,0.209967 0.20263,0.454921 0.271,0.734864 0.13345,0.533859 0.20018,1.090499 0.20019,1.669922 -10e-6,1.29883 -0.21973,2.24935 -0.65918,2.851562 -0.43946,0.602214 -1.19629,0.90332 -2.27051,0.90332 -0.60221,0 -1.08887,-0.09603 -1.45996,-0.288086 -0.37109,-0.192057 -0.67545,-0.473632 -0.91308,-0.844726 -0.17253,-0.263671 -0.30681,-0.624185 -0.40284,-1.081543 -0.096,-0.457354 -0.14404,-0.962725 -0.14404,-1.516113 z m 1.97266,0.0049 c 0,0.911461 0.0806,1.534019 0.2417,1.867676 0.16113,0.33366 0.39469,0.50049 0.70068,0.500488 0.20182,2e-6 0.37679,-0.0708 0.5249,-0.212402 0.14811,-0.1416 0.25716,-0.365395 0.32715,-0.671387 0.07,-0.305987 0.10498,-0.782874 0.10498,-1.430664 0,-0.950516 -0.0806,-1.58935 -0.2417,-1.916504 -0.16113,-0.327142 -0.40283,-0.490716 -0.72509,-0.490722 -0.32878,6e-6 -0.56641,0.166835 -0.7129,0.500488 -0.14648,0.333664 -0.21972,0.951339 -0.21972,1.853027 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3692-6" />
|
||||
id="path3692-6"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
@ -3421,22 +4018,26 @@
|
||||
<path
|
||||
id="path3932-2"
|
||||
d="m 632.45258,59.285714 0,-8.571429"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
|
||||
id="text3934-4">
|
||||
<path
|
||||
d="m 627.15228,42.291161 0,7.280273 -2.01172,0 0,-4.770508 c -0.32552,0.247401 -0.64046,0.447596 -0.94482,0.600586 -0.30436,0.152999 -0.68604,0.299483 -1.14502,0.439453 l 0,-1.630859 c 0.67708,-0.218093 1.2028,-0.480137 1.57715,-0.786133 0.37434,-0.305983 0.66731,-0.683587 0.8789,-1.132812 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3695-8" />
|
||||
id="path3695-8"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 635.14545,49.571434 -5.9668,0 c 0.0684,-0.589192 0.27588,-1.143391 0.62256,-1.662598 0.34668,-0.519203 0.9969,-1.131996 1.95068,-1.838379 0.58268,-0.432938 0.9554,-0.761714 1.11817,-0.986328 0.16275,-0.224604 0.24413,-0.43782 0.24414,-0.639648 -10e-6,-0.218094 -0.0806,-0.404454 -0.2417,-0.559082 -0.16114,-0.154617 -0.36378,-0.231928 -0.60791,-0.231934 -0.25391,6e-6 -0.46143,0.07976 -0.62256,0.239258 -0.16114,0.159511 -0.26937,0.441086 -0.32471,0.844727 l -1.99219,-0.161133 c 0.0781,-0.55989 0.22136,-0.996902 0.42969,-1.311035 0.20833,-0.314121 0.50212,-0.555006 0.88135,-0.722657 0.37923,-0.167636 0.90413,-0.251457 1.57471,-0.251464 0.69986,7e-6 1.2443,0.07976 1.6333,0.239257 0.38899,0.159512 0.69498,0.404467 0.91797,0.734864 0.22297,0.330409 0.33446,0.700689 0.33447,1.11084 -10e-6,0.436202 -0.12777,0.852868 -0.3833,1.25 -0.25554,0.397138 -0.72022,0.833336 -1.39405,1.308593 -0.40039,0.276695 -0.66813,0.47038 -0.80322,0.581055 -0.13509,0.110679 -0.29378,0.255536 -0.47607,0.43457 l 3.10547,0 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3697-6" />
|
||||
id="path3697-6"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 636.00482,45.963036 c 0,-1.360673 0.24496,-2.31282 0.73487,-2.856446 0.4899,-0.543613 1.23616,-0.815422 2.23876,-0.815429 0.48177,7e-6 0.87728,0.05941 1.18653,0.178222 0.30924,0.118822 0.56152,0.273445 0.75683,0.463867 0.19531,0.190437 0.34912,0.390632 0.46143,0.600586 0.1123,0.209967 0.20263,0.454921 0.271,0.734864 0.13345,0.533859 0.20018,1.090499 0.20019,1.669922 -10e-6,1.29883 -0.21973,2.24935 -0.65918,2.851562 -0.43946,0.602214 -1.19629,0.90332 -2.27051,0.90332 -0.60221,0 -1.08887,-0.09603 -1.45996,-0.288086 -0.37109,-0.192057 -0.67545,-0.473632 -0.91308,-0.844726 -0.17253,-0.263671 -0.30681,-0.624185 -0.40284,-1.081543 -0.096,-0.457354 -0.14404,-0.962725 -0.14404,-1.516113 z m 1.97266,0.0049 c 0,0.911461 0.0806,1.534019 0.2417,1.867676 0.16113,0.33366 0.39469,0.50049 0.70068,0.500488 0.20182,2e-6 0.37679,-0.0708 0.5249,-0.212402 0.14811,-0.1416 0.25716,-0.365395 0.32715,-0.671387 0.07,-0.305987 0.10498,-0.782874 0.10498,-1.430664 0,-0.950516 -0.0806,-1.58935 -0.2417,-1.916504 -0.16113,-0.327142 -0.40283,-0.490716 -0.72509,-0.490722 -0.32878,6e-6 -0.56641,0.166835 -0.7129,0.500488 -0.14648,0.333664 -0.21972,0.951339 -0.21972,1.853027 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3699-5" />
|
||||
id="path3699-5"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
@ -3446,22 +4047,26 @@
|
||||
<path
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 664.45258,59.285714 0,-8.571429"
|
||||
id="path3940-9" />
|
||||
id="path3940-9"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
|
||||
id="text3942-0">
|
||||
<path
|
||||
d="m 659.15228,42.291161 0,7.280273 -2.01172,0 0,-4.770508 c -0.32552,0.247401 -0.64046,0.447596 -0.94482,0.600586 -0.30436,0.152999 -0.68604,0.299483 -1.14502,0.439453 l 0,-1.630859 c 0.67708,-0.218093 1.2028,-0.480137 1.57715,-0.786133 0.37434,-0.305983 0.66731,-0.683587 0.8789,-1.132812 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3702-0" />
|
||||
id="path3702-0"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 663.25385,44.483543 -1.87989,-0.336914 c 0.15625,-0.598952 0.45654,-1.057936 0.90088,-1.376953 0.44434,-0.319003 1.0734,-0.478508 1.88721,-0.478515 0.93424,7e-6 1.60969,0.17416 2.02637,0.522461 0.41666,0.348313 0.62499,0.786138 0.625,1.313476 -10e-6,0.30925 -0.0846,0.589198 -0.25391,0.839844 -0.16928,0.250655 -0.42481,0.470382 -0.7666,0.65918 0.27669,0.06836 0.48827,0.148115 0.63476,0.239257 0.23763,0.146488 0.42236,0.339359 0.5542,0.578614 0.13183,0.23926 0.19775,0.524905 0.19776,0.856933 -10e-6,0.416669 -0.10906,0.816245 -0.32715,1.198731 -0.21811,0.382487 -0.53223,0.677083 -0.94238,0.883789 -0.41017,0.206705 -0.9489,0.310058 -1.61622,0.310058 -0.65104,0 -1.16455,-0.0765 -1.54052,-0.229492 -0.37598,-0.152994 -0.68523,-0.37679 -0.92774,-0.671387 -0.24251,-0.294595 -0.42887,-0.664874 -0.55908,-1.110839 l 1.98731,-0.263672 c 0.0781,0.400392 0.19937,0.677898 0.36376,0.832519 0.16439,0.154624 0.37354,0.231935 0.62745,0.231934 0.26692,10e-7 0.48909,-0.09766 0.6665,-0.292969 0.1774,-0.195311 0.26611,-0.455727 0.26611,-0.78125 0,-0.332029 -0.0855,-0.58919 -0.25634,-0.771484 -0.17091,-0.182289 -0.40284,-0.273435 -0.69581,-0.273438 -0.15625,3e-6 -0.37109,0.03907 -0.64453,0.117188 l 0.10254,-1.420899 c 0.11068,0.01628 0.19694,0.02442 0.25879,0.02441 0.26042,5e-6 0.4777,-0.083 0.65186,-0.249023 0.17415,-0.166011 0.26122,-0.362951 0.26123,-0.59082 -10e-6,-0.218094 -0.0651,-0.392247 -0.19531,-0.522461 -0.13022,-0.130203 -0.30925,-0.195307 -0.53711,-0.195313 -0.23438,6e-6 -0.42481,0.07081 -0.57129,0.212402 -0.14649,0.141608 -0.24577,0.389817 -0.29785,0.744629 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3704-6" />
|
||||
id="path3704-6"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 668.00482,45.963036 c 0,-1.360673 0.24496,-2.31282 0.73487,-2.856446 0.4899,-0.543613 1.23616,-0.815422 2.23876,-0.815429 0.48177,7e-6 0.87728,0.05941 1.18653,0.178222 0.30924,0.118822 0.56152,0.273445 0.75683,0.463867 0.19531,0.190437 0.34912,0.390632 0.46143,0.600586 0.1123,0.209967 0.20263,0.454921 0.271,0.734864 0.13345,0.533859 0.20018,1.090499 0.20019,1.669922 -10e-6,1.29883 -0.21973,2.24935 -0.65918,2.851562 -0.43946,0.602214 -1.19629,0.90332 -2.27051,0.90332 -0.60221,0 -1.08887,-0.09603 -1.45996,-0.288086 -0.37109,-0.192057 -0.67545,-0.473632 -0.91308,-0.844726 -0.17253,-0.263671 -0.30681,-0.624185 -0.40284,-1.081543 -0.096,-0.457354 -0.14404,-0.962725 -0.14404,-1.516113 z m 1.97266,0.0049 c 0,0.911461 0.0806,1.534019 0.2417,1.867676 0.16113,0.33366 0.39469,0.50049 0.70068,0.500488 0.20182,2e-6 0.37679,-0.0708 0.5249,-0.212402 0.14811,-0.1416 0.25716,-0.365395 0.32715,-0.671387 0.07,-0.305987 0.10498,-0.782874 0.10498,-1.430664 0,-0.950516 -0.0806,-1.58935 -0.2417,-1.916504 -0.16113,-0.327142 -0.40283,-0.490716 -0.72509,-0.490722 -0.32878,6e-6 -0.56641,0.166835 -0.7129,0.500488 -0.14648,0.333664 -0.21972,0.951339 -0.21972,1.853027 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3706-1" />
|
||||
id="path3706-1"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
@ -3471,22 +4076,26 @@
|
||||
<path
|
||||
id="path3948-8"
|
||||
d="m 696.45258,59.285714 0,-8.571429"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
|
||||
id="text3950-9">
|
||||
<path
|
||||
d="m 691.15228,42.291161 0,7.280273 -2.01172,0 0,-4.770508 c -0.32552,0.247401 -0.64046,0.447596 -0.94482,0.600586 -0.30436,0.152999 -0.68604,0.299483 -1.14502,0.439453 l 0,-1.630859 c 0.67708,-0.218093 1.2028,-0.480137 1.57715,-0.786133 0.37434,-0.305983 0.66731,-0.683587 0.8789,-1.132812 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3709-3" />
|
||||
id="path3709-3"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 696.7431,48.233543 -3.62304,0 0,-1.635742 3.62304,-4.30664 1.7334,0 0,4.399414 0.89844,0 0,1.542968 -0.89844,0 0,1.337891 -1.7334,0 z m 0,-1.542968 0,-2.250977 -1.91406,2.250977 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3711-4" />
|
||||
id="path3711-4"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 700.00482,45.963036 c 0,-1.360673 0.24496,-2.31282 0.73487,-2.856446 0.4899,-0.543613 1.23616,-0.815422 2.23876,-0.815429 0.48177,7e-6 0.87728,0.05941 1.18653,0.178222 0.30924,0.118822 0.56152,0.273445 0.75683,0.463867 0.19531,0.190437 0.34912,0.390632 0.46143,0.600586 0.1123,0.209967 0.20263,0.454921 0.271,0.734864 0.13345,0.533859 0.20018,1.090499 0.20019,1.669922 -10e-6,1.29883 -0.21973,2.24935 -0.65918,2.851562 -0.43946,0.602214 -1.19629,0.90332 -2.27051,0.90332 -0.60221,0 -1.08887,-0.09603 -1.45996,-0.288086 -0.37109,-0.192057 -0.67545,-0.473632 -0.91308,-0.844726 -0.17253,-0.263671 -0.30681,-0.624185 -0.40284,-1.081543 -0.096,-0.457354 -0.14404,-0.962725 -0.14404,-1.516113 z m 1.97266,0.0049 c 0,0.911461 0.0806,1.534019 0.2417,1.867676 0.16113,0.33366 0.39469,0.50049 0.70068,0.500488 0.20182,2e-6 0.37679,-0.0708 0.5249,-0.212402 0.14811,-0.1416 0.25716,-0.365395 0.32715,-0.671387 0.07,-0.305987 0.10498,-0.782874 0.10498,-1.430664 0,-0.950516 -0.0806,-1.58935 -0.2417,-1.916504 -0.16113,-0.327142 -0.40283,-0.490716 -0.72509,-0.490722 -0.32878,6e-6 -0.56641,0.166835 -0.7129,0.500488 -0.14648,0.333664 -0.21972,0.951339 -0.21972,1.853027 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3713-4" />
|
||||
id="path3713-4"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
@ -3496,22 +4105,26 @@
|
||||
<path
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 722.45258,59.285714 0,-8.571429"
|
||||
id="path3956-0" />
|
||||
id="path3956-0"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
|
||||
id="text3958-6">
|
||||
<path
|
||||
d="m 717.15228,42.291161 0,7.280273 -2.01172,0 0,-4.770508 c -0.32552,0.247401 -0.64046,0.447596 -0.94482,0.600586 -0.30436,0.152999 -0.68604,0.299483 -1.14502,0.439453 l 0,-1.630859 c 0.67708,-0.218093 1.2028,-0.480137 1.57715,-0.786133 0.37434,-0.305983 0.66731,-0.683587 0.8789,-1.132812 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3716-6" />
|
||||
id="path3716-6"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 720.1308,42.413231 4.72168,0 0,1.586914 -3.19824,0 -0.1709,1.074219 c 0.22135,-0.104162 0.44026,-0.182287 0.65674,-0.234375 0.21646,-0.05208 0.43049,-0.07812 0.64209,-0.07813 0.71614,5e-6 1.29719,0.216476 1.74316,0.649414 0.44596,0.432946 0.66894,0.978193 0.66894,1.635742 0,0.462242 -0.11475,0.906577 -0.34423,1.333008 -0.2295,0.426433 -0.55502,0.751953 -0.97657,0.976562 -0.42155,0.22461 -0.9611,0.336914 -1.61865,0.336914 -0.47201,0 -0.87647,-0.04476 -1.21338,-0.134277 -0.33691,-0.08952 -0.62337,-0.222982 -0.85937,-0.400391 -0.23601,-0.177408 -0.42725,-0.378417 -0.57373,-0.603027 -0.14649,-0.224608 -0.26856,-0.504556 -0.36621,-0.839844 l 2.01172,-0.219726 c 0.0488,0.322267 0.16275,0.567221 0.34179,0.734863 0.17904,0.167644 0.39225,0.251466 0.63965,0.251465 0.27669,10e-7 0.50537,-0.104979 0.68604,-0.314942 0.18066,-0.209959 0.27099,-0.523272 0.27099,-0.939941 0,-0.42643 -0.0911,-0.738929 -0.27344,-0.9375 -0.18229,-0.198564 -0.4248,-0.297848 -0.72753,-0.297852 -0.19207,4e-6 -0.37761,0.04721 -0.55665,0.141602 -0.13346,0.06836 -0.27995,0.192061 -0.43945,0.371094 l -1.69433,-0.244141 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3718-1" />
|
||||
id="path3718-1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 726.00482,45.963036 c 0,-1.360673 0.24496,-2.31282 0.73487,-2.856446 0.4899,-0.543613 1.23616,-0.815422 2.23876,-0.815429 0.48177,7e-6 0.87728,0.05941 1.18653,0.178222 0.30924,0.118822 0.56152,0.273445 0.75683,0.463867 0.19531,0.190437 0.34912,0.390632 0.46143,0.600586 0.1123,0.209967 0.20263,0.454921 0.271,0.734864 0.13345,0.533859 0.20018,1.090499 0.20019,1.669922 -10e-6,1.29883 -0.21973,2.24935 -0.65918,2.851562 -0.43946,0.602214 -1.19629,0.90332 -2.27051,0.90332 -0.60221,0 -1.08887,-0.09603 -1.45996,-0.288086 -0.37109,-0.192057 -0.67545,-0.473632 -0.91308,-0.844726 -0.17253,-0.263671 -0.30681,-0.624185 -0.40284,-1.081543 -0.096,-0.457354 -0.14404,-0.962725 -0.14404,-1.516113 z m 1.97266,0.0049 c 0,0.911461 0.0806,1.534019 0.2417,1.867676 0.16113,0.33366 0.39469,0.50049 0.70068,0.500488 0.20182,2e-6 0.37679,-0.0708 0.5249,-0.212402 0.14811,-0.1416 0.25716,-0.365395 0.32715,-0.671387 0.07,-0.305987 0.10498,-0.782874 0.10498,-1.430664 0,-0.950516 -0.0806,-1.58935 -0.2417,-1.916504 -0.16113,-0.327142 -0.40283,-0.490716 -0.72509,-0.490722 -0.32878,6e-6 -0.56641,0.166835 -0.7129,0.500488 -0.14648,0.333664 -0.21972,0.951339 -0.21972,1.853027 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3720-8" />
|
||||
id="path3720-8"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
@ -3521,22 +4134,26 @@
|
||||
<path
|
||||
id="path3964-9"
|
||||
d="m 750.45258,59.285714 0,-8.571429"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
|
||||
id="text3966-6">
|
||||
<path
|
||||
d="m 745.15228,42.291161 0,7.280273 -2.01172,0 0,-4.770508 c -0.32552,0.247401 -0.64046,0.447596 -0.94482,0.600586 -0.30436,0.152999 -0.68604,0.299483 -1.14502,0.439453 l 0,-1.630859 c 0.67708,-0.218093 1.2028,-0.480137 1.57715,-0.786133 0.37434,-0.305983 0.66731,-0.683587 0.8789,-1.132812 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3723-3" />
|
||||
id="path3723-3"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 753.08197,44.024559 -1.97754,0.244141 c -0.0521,-0.276687 -0.13916,-0.472 -0.26123,-0.585938 -0.12207,-0.113926 -0.27263,-0.170892 -0.45166,-0.170898 -0.32227,6e-6 -0.57292,0.162766 -0.75195,0.488281 -0.13021,0.23438 -0.22624,0.735682 -0.28809,1.503906 0.23763,-0.240881 0.48177,-0.419103 0.73242,-0.534668 0.25065,-0.115555 0.54036,-0.173335 0.86914,-0.17334 0.63802,5e-6 1.17757,0.22787 1.61866,0.683594 0.44107,0.455733 0.66161,1.033532 0.66162,1.733399 -10e-6,0.472007 -0.1115,0.903321 -0.33448,1.293945 -0.22298,0.390626 -0.53223,0.686035 -0.92773,0.88623 -0.39551,0.200196 -0.89112,0.300293 -1.48682,0.300293 -0.71614,0 -1.29069,-0.12207 -1.72363,-0.366211 -0.43294,-0.24414 -0.77881,-0.633951 -1.0376,-1.169433 -0.25879,-0.53548 -0.38818,-1.244301 -0.38818,-2.126465 0,-1.292313 0.27181,-2.238764 0.81543,-2.839356 0.54362,-0.600578 1.2972,-0.900871 2.26074,-0.900878 0.56966,7e-6 1.01969,0.06593 1.3501,0.197753 0.3304,0.131843 0.60465,0.324714 0.82275,0.578614 0.2181,0.253912 0.38411,0.572922 0.49805,0.957031 z m -3.66211,3.188477 c 0,0.387371 0.0977,0.690919 0.29297,0.910644 0.19531,0.219728 0.43457,0.329591 0.71777,0.32959 0.26042,10e-7 0.47851,-0.09928 0.6543,-0.297852 0.17578,-0.198566 0.26367,-0.494789 0.26367,-0.888671 0,-0.403644 -0.0911,-0.71126 -0.27344,-0.922852 -0.18229,-0.211585 -0.40853,-0.317379 -0.67871,-0.317383 -0.27669,4e-6 -0.50863,0.102543 -0.6958,0.307617 -0.18717,0.205081 -0.28076,0.49805 -0.28076,0.878907 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3725-7" />
|
||||
id="path3725-7"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 754.00482,45.963036 c 0,-1.360673 0.24496,-2.31282 0.73487,-2.856446 0.4899,-0.543613 1.23616,-0.815422 2.23876,-0.815429 0.48177,7e-6 0.87728,0.05941 1.18653,0.178222 0.30924,0.118822 0.56152,0.273445 0.75683,0.463867 0.19531,0.190437 0.34912,0.390632 0.46143,0.600586 0.1123,0.209967 0.20263,0.454921 0.271,0.734864 0.13345,0.533859 0.20018,1.090499 0.20019,1.669922 -10e-6,1.29883 -0.21973,2.24935 -0.65918,2.851562 -0.43946,0.602214 -1.19629,0.90332 -2.27051,0.90332 -0.60221,0 -1.08887,-0.09603 -1.45996,-0.288086 -0.37109,-0.192057 -0.67545,-0.473632 -0.91308,-0.844726 -0.17253,-0.263671 -0.30681,-0.624185 -0.40284,-1.081543 -0.096,-0.457354 -0.14404,-0.962725 -0.14404,-1.516113 z m 1.97266,0.0049 c 0,0.911461 0.0806,1.534019 0.2417,1.867676 0.16113,0.33366 0.39469,0.50049 0.70068,0.500488 0.20182,2e-6 0.37679,-0.0708 0.5249,-0.212402 0.14811,-0.1416 0.25716,-0.365395 0.32715,-0.671387 0.07,-0.305987 0.10498,-0.782874 0.10498,-1.430664 0,-0.950516 -0.0806,-1.58935 -0.2417,-1.916504 -0.16113,-0.327142 -0.40283,-0.490716 -0.72509,-0.490722 -0.32878,6e-6 -0.56641,0.166835 -0.7129,0.500488 -0.14648,0.333664 -0.21972,0.951339 -0.21972,1.853027 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3727-8" />
|
||||
id="path3727-8"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
@ -3546,22 +4163,26 @@
|
||||
<path
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#fff8f8;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 774.45258,59.285714 0,-8.571429"
|
||||
id="path3972-2" />
|
||||
id="path3972-2"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
|
||||
id="text3974-9">
|
||||
<path
|
||||
d="m 769.15228,42.291161 0,7.280273 -2.01172,0 0,-4.770508 c -0.32552,0.247401 -0.64046,0.447596 -0.94482,0.600586 -0.30436,0.152999 -0.68604,0.299483 -1.14502,0.439453 l 0,-1.630859 c 0.67708,-0.218093 1.2028,-0.480137 1.57715,-0.786133 0.37434,-0.305983 0.66731,-0.683587 0.8789,-1.132812 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3730-1" />
|
||||
id="path3730-1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 771.35931,42.413231 5.80567,0 0,1.342773 c -0.50457,0.455735 -0.92611,0.948898 -1.26465,1.479493 -0.41016,0.644534 -0.73405,1.362307 -0.97168,2.15332 -0.18881,0.615236 -0.31576,1.342774 -0.38086,2.182617 l -1.98242,0 c 0.15625,-1.168619 0.40201,-2.148435 0.7373,-2.939453 0.33529,-0.791012 0.86589,-1.637365 1.5918,-2.539063 l -3.53516,0 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3732-3" />
|
||||
id="path3732-3"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 778.00482,45.963036 c 0,-1.360673 0.24496,-2.31282 0.73487,-2.856446 0.4899,-0.543613 1.23616,-0.815422 2.23876,-0.815429 0.48177,7e-6 0.87728,0.05941 1.18653,0.178222 0.30924,0.118822 0.56152,0.273445 0.75683,0.463867 0.19531,0.190437 0.34912,0.390632 0.46143,0.600586 0.1123,0.209967 0.20263,0.454921 0.271,0.734864 0.13345,0.533859 0.20018,1.090499 0.20019,1.669922 -10e-6,1.29883 -0.21973,2.24935 -0.65918,2.851562 -0.43946,0.602214 -1.19629,0.90332 -2.27051,0.90332 -0.60221,0 -1.08887,-0.09603 -1.45996,-0.288086 -0.37109,-0.192057 -0.67545,-0.473632 -0.91308,-0.844726 -0.17253,-0.263671 -0.30681,-0.624185 -0.40284,-1.081543 -0.096,-0.457354 -0.14404,-0.962725 -0.14404,-1.516113 z m 1.97266,0.0049 c 0,0.911461 0.0806,1.534019 0.2417,1.867676 0.16113,0.33366 0.39469,0.50049 0.70068,0.500488 0.20182,2e-6 0.37679,-0.0708 0.5249,-0.212402 0.14811,-0.1416 0.25716,-0.365395 0.32715,-0.671387 0.07,-0.305987 0.10498,-0.782874 0.10498,-1.430664 0,-0.950516 -0.0806,-1.58935 -0.2417,-1.916504 -0.16113,-0.327142 -0.40283,-0.490716 -0.72509,-0.490722 -0.32878,6e-6 -0.56641,0.166835 -0.7129,0.500488 -0.14648,0.333664 -0.21972,0.951339 -0.21972,1.853027 z"
|
||||
style="font-size:10px;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:Arial Black"
|
||||
id="path3734-5" />
|
||||
id="path3734-5"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
@ -3570,7 +4191,8 @@
|
||||
inkscape:groupmode="layer"
|
||||
id="layer6"
|
||||
inkscape:label="Bottom area"
|
||||
style="display:inline">
|
||||
style="display:none"
|
||||
sodipodi:insensitive="true">
|
||||
<g
|
||||
style="display:inline"
|
||||
transform="translate(395.4171,-213.55826)"
|
||||
@ -3589,11 +4211,13 @@
|
||||
<path
|
||||
style="fill:none;stroke:#1c5313;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 408.10162,299.09061 0,13.8896"
|
||||
id="path10183" />
|
||||
id="path10183"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;stroke:#1c5313;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 401.40937,306.03541 13.51079,0"
|
||||
id="path10185" />
|
||||
id="path10185"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<g
|
||||
id="g10197">
|
||||
@ -3630,19 +4254,22 @@
|
||||
id="gcstelemetry-Connected"
|
||||
d="m -109.55949,412.40842 0,9.28125 -31.40625,0 0,4.90625 0,0.0937 0,4.90625 31.40625,0 0,9.28125 14.250003,-14.25 -14.250003,-14.21875 z"
|
||||
style="fill:#1c870b;fill-opacity:1;stroke:#113b05;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
inkscape:label="#path7548" />
|
||||
inkscape:label="#path7548"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
inkscape:label="#path7548"
|
||||
style="fill:#ff251b;fill-opacity:1;stroke:#6f100c;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m -109.81202,372.75993 0,9.28125 -10.62948,0 6.29058,7.3236 -15.93279,-7.3236 -11.13456,0 0,4.90625 0,0.0937 0,4.90625 10.88202,0 -4.27027,-6.81853 13.4074,6.81853 11.3871,0 0,9.28125 14.249996,-14.25 -14.249996,-14.21875 0,5e-5 z"
|
||||
id="gcstelemetry-HandshakeReq"
|
||||
sodipodi:nodetypes="ccccccccccccccccc" />
|
||||
sodipodi:nodetypes="ccccccccccccccccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
inkscape:label="#path7548"
|
||||
style="fill:#525652;fill-opacity:1;stroke:#262020;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 530.35185,620.93513 0,9.28125 -31.40625,0 0,4.90625 0,0.0937 0,4.90625 31.40625,0 0,9.28125 14.25,-14.25 -14.25,-14.21875 z"
|
||||
id="gcstelemetry-Disconnected"
|
||||
sodipodi:nodetypes="cccccccccc" />
|
||||
sodipodi:nodetypes="cccccccccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
<rect
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:2.6691606;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
id="linkrate"
|
||||
@ -3675,7 +4302,7 @@
|
||||
inkscape:groupmode="layer"
|
||||
id="layer9"
|
||||
inkscape:label="Radar"
|
||||
style="display:inline"
|
||||
style="display:none"
|
||||
transform="translate(230.4171,-2.5493479)"
|
||||
sodipodi:insensitive="true">
|
||||
<g
|
||||
@ -3695,11 +4322,13 @@
|
||||
<path
|
||||
id="path5029"
|
||||
d="m 408.10162,299.09061 0,13.8896"
|
||||
style="fill:none;stroke:#1c5313;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
style="fill:none;stroke:#1c5313;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path5031"
|
||||
d="m 401.40937,306.03541 13.51079,0"
|
||||
style="fill:none;stroke:#1c5313;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
style="fill:none;stroke:#1c5313;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<g
|
||||
id="nextwaypoint"
|
||||
@ -3718,18 +4347,20 @@
|
||||
<path
|
||||
style="fill:none;stroke:#ff251b;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 408.10162,299.09061 0,13.8896"
|
||||
id="path5044" />
|
||||
id="path5044"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;stroke:#ff251b;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 401.40937,306.03541 13.51079,0"
|
||||
id="path5046" />
|
||||
id="path5046"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer5"
|
||||
inkscape:label="Speed"
|
||||
style="display:inline"
|
||||
style="display:none"
|
||||
transform="translate(230.4171,-2.5493479)"
|
||||
sodipodi:insensitive="true">
|
||||
<text
|
||||
@ -3752,127 +4383,158 @@
|
||||
<path
|
||||
style="fill:none;stroke:#ffffff;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m -54.926844,77.693138 -17.403477,0"
|
||||
id="path4035" />
|
||||
id="path4035"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path4037"
|
||||
d="m -54.476965,95.92649 -8.529662,0"
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m -54.476965,114.15979 -8.529662,0"
|
||||
id="path4039" />
|
||||
id="path4039"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path4041"
|
||||
d="m -54.476965,132.39316 -8.529662,0"
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m -54.476965,150.62647 -8.529662,0"
|
||||
id="path4043" />
|
||||
id="path4043"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path4058"
|
||||
d="m -54.926844,168.8598 -17.403477,0"
|
||||
style="fill:none;stroke:#ffffff;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
style="fill:none;stroke:#ffffff;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m -54.476965,187.09311 -8.529662,0"
|
||||
id="path4061" />
|
||||
id="path4061"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path4063"
|
||||
d="m -54.476965,205.32648 -8.529662,0"
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m -54.476965,223.55979 -8.529662,0"
|
||||
id="path4065" />
|
||||
id="path4065"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path4067"
|
||||
d="m -54.476965,241.79313 -8.529662,0"
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;stroke:#ffffff;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m -54.926844,260.02648 -17.403477,0"
|
||||
id="path4071" />
|
||||
id="path4071"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path4073"
|
||||
d="m -54.476965,278.25979 -8.529662,0"
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m -54.476965,296.49313 -8.529662,0"
|
||||
id="path4075" />
|
||||
id="path4075"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path4077"
|
||||
d="m -54.476965,314.72647 -8.529662,0"
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m -54.476965,332.95981 -8.529662,0"
|
||||
id="path4079" />
|
||||
id="path4079"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path4083"
|
||||
d="m -54.926844,351.19313 -17.403477,0"
|
||||
style="fill:none;stroke:#ffffff;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
style="fill:none;stroke:#ffffff;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m -54.476965,369.42647 -8.529662,0"
|
||||
id="path4085" />
|
||||
id="path4085"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path4087"
|
||||
d="m -54.476965,387.65981 -8.529662,0"
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m -54.476965,405.89316 -8.529662,0"
|
||||
id="path4089" />
|
||||
id="path4089"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path4091"
|
||||
d="m -54.476965,424.12646 -8.529662,0"
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;stroke:#ffffff;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m -54.926844,442.35983 -17.403477,0"
|
||||
id="path4095" />
|
||||
id="path4095"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path4097"
|
||||
d="m -54.476965,460.59313 -8.529662,0"
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m -54.476965,478.82647 -8.529662,0"
|
||||
id="path4099" />
|
||||
id="path4099"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path4101"
|
||||
d="m -54.476965,497.05982 -8.529662,0"
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m -54.476965,515.29316 -8.529662,0"
|
||||
id="path4103" />
|
||||
id="path4103"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path4107"
|
||||
d="m -54.926844,533.52649 -17.403477,0"
|
||||
style="fill:none;stroke:#ffffff;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
style="fill:none;stroke:#ffffff;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m -54.476965,551.75981 -8.529662,0"
|
||||
id="path4109" />
|
||||
id="path4109"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path4111"
|
||||
d="m -54.476965,569.99314 -8.529662,0"
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m -54.476965,588.22648 -8.529662,0"
|
||||
id="path4113" />
|
||||
id="path4113"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path4115"
|
||||
d="m -54.476965,606.45981 -8.529662,0"
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;stroke:#ffffff;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m -54.926844,624.69315 -17.403477,0"
|
||||
id="path4119" />
|
||||
id="path4119"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
@ -3885,127 +4547,158 @@
|
||||
<path
|
||||
id="path5648"
|
||||
d="m -54.926844,77.693138 -17.403477,0"
|
||||
style="fill:none;stroke:#ffffff;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
style="fill:none;stroke:#ffffff;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m -54.476965,95.92649 -8.529662,0"
|
||||
id="path5650" />
|
||||
id="path5650"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path5652"
|
||||
d="m -54.476965,114.15979 -8.529662,0"
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m -54.476965,132.39316 -8.529662,0"
|
||||
id="path5654" />
|
||||
id="path5654"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path5656"
|
||||
d="m -54.476965,150.62647 -8.529662,0"
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;stroke:#ffffff;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m -54.926844,168.8598 -17.403477,0"
|
||||
id="path5658" />
|
||||
id="path5658"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path5660"
|
||||
d="m -54.476965,187.09311 -8.529662,0"
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m -54.476965,205.32648 -8.529662,0"
|
||||
id="path5662" />
|
||||
id="path5662"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path5664"
|
||||
d="m -54.476965,223.55979 -8.529662,0"
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m -54.476965,241.79313 -8.529662,0"
|
||||
id="path5666" />
|
||||
id="path5666"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path5668"
|
||||
d="m -54.926844,260.02648 -17.403477,0"
|
||||
style="fill:none;stroke:#ffffff;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
style="fill:none;stroke:#ffffff;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m -54.476965,278.25979 -8.529662,0"
|
||||
id="path5670" />
|
||||
id="path5670"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path5672"
|
||||
d="m -54.476965,296.49313 -8.529662,0"
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m -54.476965,314.72647 -8.529662,0"
|
||||
id="path5674" />
|
||||
id="path5674"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path5676"
|
||||
d="m -54.476965,332.95981 -8.529662,0"
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;stroke:#ffffff;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m -54.926844,351.19313 -17.403477,0"
|
||||
id="path5678" />
|
||||
id="path5678"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path5680"
|
||||
d="m -54.476965,369.42647 -8.529662,0"
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m -54.476965,387.65981 -8.529662,0"
|
||||
id="path5682" />
|
||||
id="path5682"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path5684"
|
||||
d="m -54.476965,405.89316 -8.529662,0"
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m -54.476965,424.12646 -8.529662,0"
|
||||
id="path5686" />
|
||||
id="path5686"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path5688"
|
||||
d="m -54.926844,442.35983 -17.403477,0"
|
||||
style="fill:none;stroke:#ffffff;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
style="fill:none;stroke:#ffffff;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m -54.476965,460.59313 -8.529662,0"
|
||||
id="path5690" />
|
||||
id="path5690"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path5692"
|
||||
d="m -54.476965,478.82647 -8.529662,0"
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m -54.476965,497.05982 -8.529662,0"
|
||||
id="path5694" />
|
||||
id="path5694"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path5696"
|
||||
d="m -54.476965,515.29316 -8.529662,0"
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;stroke:#ffffff;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m -54.926844,533.52649 -17.403477,0"
|
||||
id="path5698" />
|
||||
id="path5698"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path5700"
|
||||
d="m -54.476965,551.75981 -8.529662,0"
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m -54.476965,569.99314 -8.529662,0"
|
||||
id="path5702" />
|
||||
id="path5702"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path5704"
|
||||
d="m -54.476965,588.22648 -8.529662,0"
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.10024118;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m -54.476965,606.45981 -8.529662,0"
|
||||
id="path5706" />
|
||||
id="path5706"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path5708"
|
||||
d="m -54.926844,624.69315 -17.403477,0"
|
||||
style="fill:none;stroke:#ffffff;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
style="fill:none;stroke:#ffffff;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
@ -4020,6 +4713,7 @@
|
||||
style="fill:#453e3e;fill-opacity:1;stroke:#000000;stroke-width:4.08031273;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m -115.54603,-47.690059 c -2.50791,0 -4.54785,1.99743 -4.54785,4.50534 l 0,807.009359 c 0,2.5079 2.03994,4.54785 4.54785,4.54785 l 807.00936,0 c 2.5079,0 4.50534,-2.03995 4.50534,-4.54785 l 0,-807.009359 c 0,-2.50791 -1.99744,-4.50534 -4.50534,-4.50534 l -807.00936,0 z M 289.34,11.395534 c 150.15374,0 271.88009,59.618647 272.02085,133.162706 l 0.21252,48.57516 -0.38253,374.99409 C 556.30557,639.62843 436.47945,673.69951 289.34,673.69951 c -147.13944,0 -266.965544,-34.07108 -271.850832,-105.57202 l -0.212516,0 0,-374.99409 0.0425,-48.58122 C 17.459912,71.008115 139.18627,11.395534 289.34,11.395534 z"
|
||||
id="rect2816"
|
||||
sodipodi:nodetypes="cccccccccccccsccccc" />
|
||||
sodipodi:nodetypes="cccccccccccccsccccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 301 KiB After Width: | Height: | Size: 320 KiB |
@ -25,6 +25,13 @@
|
||||
WHEREAMI := $(dir $(lastword $(MAKEFILE_LIST)))
|
||||
TOP := $(realpath $(WHEREAMI)/../../)
|
||||
include $(TOP)/make/firmware-defs.mk
|
||||
include $(TOP)/make/boards/$(BOARD_NAME)/board-info.mk
|
||||
|
||||
# Target file name (without extension).
|
||||
TARGET := fw_$(BOARD_NAME)
|
||||
|
||||
# Directory for output files (lst, obj, dep, elf, sym, map, hex, bin etc.)
|
||||
OUTDIR := $(TOP)/build/$(TARGET)
|
||||
|
||||
# Set developer code and compile options
|
||||
# Set to YES for debugging
|
||||
@ -41,21 +48,6 @@ endif
|
||||
|
||||
FLASH_TOOL = OPENOCD
|
||||
|
||||
# MCU name, submodel and board
|
||||
# - MCU used for compiler-option (-mcpu)
|
||||
# - MODEL used for linker-script name (-T) and passed as define
|
||||
# - BOARD just passed as define (optional)
|
||||
MCU = cortex-m3
|
||||
CHIP = STM32F103CBT
|
||||
BOARD = STM32103CB_AHRS
|
||||
MODEL = MD
|
||||
|
||||
# Directory for output files (lst, obj, dep, elf, sym, map, hex, bin etc.)
|
||||
OUTDIR = $(TOP)/build/ahrs
|
||||
|
||||
# Target file name (without extension).
|
||||
TARGET = AHRS
|
||||
|
||||
# Paths
|
||||
AHRS = ./
|
||||
AHRSINC = $(AHRS)/inc
|
||||
@ -160,7 +152,7 @@ CPPSRCARM =
|
||||
# Even though the DOS/Win* filesystem matches both .s and .S the same,
|
||||
# it will preserve the spelling of the filenames, and gcc itself does
|
||||
# care about how the name is spelled on its command-line.
|
||||
ASRC = $(PIOSSTM32F10X)/startup_stm32f10x_$(MODEL).S
|
||||
ASRC = $(PIOSSTM32F10X)/startup_stm32f10x_$(MODEL)$(MODEL_SUFFIX).S
|
||||
|
||||
# List Assembler source files here which must be assembled in ARM-Mode..
|
||||
ASRCARM =
|
||||
@ -223,7 +215,6 @@ CDEFS = -DSTM32F10X_$(MODEL)
|
||||
CDEFS += -DUSE_STDPERIPH_DRIVER
|
||||
CDEFS += -DUSE_$(BOARD)
|
||||
CDEFS += -DIN_AHRS
|
||||
CDEFS += -DUSE_BOOTLOADER
|
||||
|
||||
# Place project-specific -D and/or -U options for
|
||||
# Assembler with preprocessor here.
|
||||
@ -299,21 +290,8 @@ LDFLAGS += -lc -lgcc
|
||||
LDFLAGS += -T$(LINKERSCRIPTPATH)/link_$(BOARD)_memory.ld
|
||||
LDFLAGS += -T$(LINKERSCRIPTPATH)/link_$(BOARD)_sections.ld
|
||||
|
||||
OOCD_LOADFILE+=$(OUTDIR)/$(TARGET).bin
|
||||
# Program
|
||||
OOCD_CL+=-c "flash write_image erase $(OOCD_LOADFILE) 0x08002000 bin"
|
||||
# Verify
|
||||
OOCD_CL+=-c "verify_image $(OOCD_LOADFILE) 0x08002000 bin"
|
||||
# reset target
|
||||
OOCD_CL+=-c "reset run"
|
||||
# terminate OOCD after programming
|
||||
OOCD_CL+=-c shutdown
|
||||
|
||||
|
||||
# Define programs and commands.
|
||||
REMOVE = $(REMOVE_CMD) -f
|
||||
###SHELL = sh
|
||||
###COPY = cp
|
||||
|
||||
# List of all source files.
|
||||
ALLSRC = $(ASRCARM) $(ASRC) $(SRCARM) $(SRC) $(CPPSRCARM) $(CPPSRC)
|
||||
@ -345,14 +323,6 @@ endif
|
||||
endif
|
||||
endif
|
||||
|
||||
# Program the device.
|
||||
ifeq ($(FLASH_TOOL),OPENOCD)
|
||||
# Program the device with Dominic Rath's OPENOCD in "batch-mode", needs cfg and "reset-script".
|
||||
program: $(OUTDIR)/$(TARGET).bin
|
||||
@echo ${quote}Programming with OPENOCD${quote}
|
||||
$(OOCD_EXE) $(OOCD_CL)
|
||||
endif
|
||||
|
||||
# Link: create ELF output file from object files.
|
||||
$(eval $(call LINK_TEMPLATE, $(OUTDIR)/$(TARGET).elf, $(ALLOBJ)))
|
||||
|
||||
@ -382,23 +352,37 @@ $(eval $(call PARTIAL_COMPILE_ARM_TEMPLATE, SRCARM))
|
||||
|
||||
$(OUTDIR)/$(TARGET).bin.o: $(OUTDIR)/$(TARGET).bin
|
||||
|
||||
.PHONY: elf lss sym hex bin bino
|
||||
$(eval $(call OPFW_TEMPLATE,$(OUTDIR)/$(TARGET).bin,$(BOARD_TYPE),$(BOARD_REVISION)))
|
||||
|
||||
# Add jtag targets (program and wipe)
|
||||
$(eval $(call JTAG_TEMPLATE,$(OUTDIR)/$(TARGET).bin,$(FW_BANK_BASE),$(FW_BANK_SIZE)))
|
||||
|
||||
.PHONY: elf lss sym hex bin bino opfw
|
||||
elf: $(OUTDIR)/$(TARGET).elf
|
||||
lss: $(OUTDIR)/$(TARGET).lss
|
||||
sym: $(OUTDIR)/$(TARGET).sym
|
||||
hex: $(OUTDIR)/$(TARGET).hex
|
||||
bin: $(OUTDIR)/$(TARGET).bin
|
||||
bino: $(OUTDIR)/$(TARGET).bin.o
|
||||
opfw: $(OUTDIR)/$(TARGET).opfw
|
||||
|
||||
# Display sizes of sections.
|
||||
$(eval $(call SIZE_TEMPLATE, $(OUTDIR)/$(TARGET).elf))
|
||||
.PHONY: size
|
||||
size: $(OUTDIR)/$(TARGET).elf_size
|
||||
|
||||
# Generate Doxygen documents
|
||||
docs:
|
||||
doxygen $(DOXYGENDIR)/doxygen.cfg
|
||||
|
||||
# Install: install binary file with prefix/suffix into install directory
|
||||
install: $(OUTDIR)/$(TARGET).opfw
|
||||
ifneq ($(INSTALL_DIR),)
|
||||
@echo $(MSG_INSTALLING) $(call toprel, $<)
|
||||
$(V1) mkdir -p $(INSTALL_DIR)
|
||||
$(V1) $(INSTALL) $< $(INSTALL_DIR)/$(INSTALL_PFX)$(TARGET)$(INSTALL_SFX).opfw
|
||||
else
|
||||
$(error INSTALL_DIR must be specified for $@)
|
||||
endif
|
||||
|
||||
# Target: clean project.
|
||||
clean: clean_list
|
||||
|
||||
@ -434,6 +418,5 @@ else
|
||||
-include $(shell mkdir $(OUTDIR) 2>/dev/null) $(shell mkdir $(OUTDIR)/dep 2>/dev/null) $(wildcard $(OUTDIR)/dep/*)
|
||||
endif
|
||||
|
||||
|
||||
# Listing of phony targets.
|
||||
.PHONY : all build clean clean_list program
|
||||
.PHONY : all build clean clean_list install
|
||||
|
@ -33,6 +33,7 @@
|
||||
|
||||
/* OpenPilot Includes */
|
||||
#include "ahrs.h"
|
||||
#include <pios_board_info.h>
|
||||
#include "pios.h"
|
||||
#include "ahrs_timer.h"
|
||||
#include "ahrs_spi_comm.h"
|
||||
@ -1228,6 +1229,8 @@ void homelocation_callback(AhrsObjHandle obj)
|
||||
|
||||
void firmwareiapobj_callback(AhrsObjHandle obj)
|
||||
{
|
||||
const struct pios_board_info * bdinfo = &pios_board_info_blob;
|
||||
|
||||
FirmwareIAPObjData firmwareIAPObj;
|
||||
FirmwareIAPObjGet(&firmwareIAPObj);
|
||||
if(firmwareIAPObj.ArmReset==0)
|
||||
@ -1235,7 +1238,7 @@ void firmwareiapobj_callback(AhrsObjHandle obj)
|
||||
if(firmwareIAPObj.ArmReset==1)
|
||||
{
|
||||
|
||||
if((firmwareIAPObj.BoardType==BOARD_TYPE) || (firmwareIAPObj.BoardType==0xFF))
|
||||
if((firmwareIAPObj.BoardType==bdinfo->board_type) || (firmwareIAPObj.BoardType==0xFF))
|
||||
{
|
||||
|
||||
++reset_count;
|
||||
@ -1247,11 +1250,11 @@ void firmwareiapobj_callback(AhrsObjHandle obj)
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(firmwareIAPObj.BoardType==BOARD_TYPE && firmwareIAPObj.crc!=PIOS_BL_HELPER_CRC_Memory_Calc())
|
||||
else if(firmwareIAPObj.BoardType==bdinfo->board_type && firmwareIAPObj.crc!=PIOS_BL_HELPER_CRC_Memory_Calc())
|
||||
{
|
||||
PIOS_BL_HELPER_FLASH_Read_Description(firmwareIAPObj.Description,SIZE_OF_DESCRIPTION);
|
||||
PIOS_BL_HELPER_FLASH_Read_Description(firmwareIAPObj.Description,bdinfo->desc_size);
|
||||
firmwareIAPObj.crc=PIOS_BL_HELPER_CRC_Memory_Calc();
|
||||
firmwareIAPObj.BoardRevision=BOARD_REVISION;
|
||||
firmwareIAPObj.BoardRevision=bdinfo->board_rev;
|
||||
FirmwareIAPObjSet(&firmwareIAPObj);
|
||||
}
|
||||
}
|
||||
|
@ -54,7 +54,6 @@ static const struct pios_spi_cfg pios_spi_op_cfg = {
|
||||
.ahb_clk = RCC_AHBPeriph_DMA1,
|
||||
|
||||
.irq = {
|
||||
.handler = PIOS_SPI_op_irq_handler,
|
||||
.flags =
|
||||
(DMA1_FLAG_TC4 | DMA1_FLAG_TE4 | DMA1_FLAG_HT4 |
|
||||
DMA1_FLAG_GL4),
|
||||
@ -153,11 +152,10 @@ void PIOS_SPI_op_irq_handler(void)
|
||||
extern void PIOS_ADC_handler(void);
|
||||
void DMA1_Channel1_IRQHandler() __attribute__ ((alias("PIOS_ADC_handler")));
|
||||
// Remap the ADC DMA handler to this one
|
||||
const struct pios_adc_cfg pios_adc_cfg = {
|
||||
static const struct pios_adc_cfg pios_adc_cfg = {
|
||||
.dma = {
|
||||
.ahb_clk = RCC_AHBPeriph_DMA1,
|
||||
.irq = {
|
||||
.handler = PIOS_ADC_DMA_Handler,
|
||||
.flags = (DMA1_FLAG_TC1 | DMA1_FLAG_TE1 | DMA1_FLAG_HT1 | DMA1_FLAG_GL1),
|
||||
.init = {
|
||||
.NVIC_IRQChannel = DMA1_Channel1_IRQn,
|
||||
@ -205,17 +203,10 @@ void PIOS_ADC_handler() {
|
||||
/*
|
||||
* AUX USART
|
||||
*/
|
||||
void PIOS_USART_aux_irq_handler(void);
|
||||
void USART3_IRQHandler()
|
||||
__attribute__ ((alias("PIOS_USART_aux_irq_handler")));
|
||||
const struct pios_usart_cfg pios_usart_aux_cfg = {
|
||||
static const struct pios_usart_cfg pios_usart_aux_cfg = {
|
||||
.regs = USART3,
|
||||
.init = {
|
||||
#if defined (PIOS_USART_BAUDRATE)
|
||||
.USART_BaudRate = PIOS_USART_BAUDRATE,
|
||||
#else
|
||||
.USART_BaudRate = 57600,
|
||||
#endif
|
||||
.USART_BaudRate = 230400,
|
||||
.USART_WordLength = USART_WordLength_8b,
|
||||
.USART_Parity = USART_Parity_No,
|
||||
.USART_StopBits = USART_StopBits_1,
|
||||
@ -224,7 +215,6 @@ const struct pios_usart_cfg pios_usart_aux_cfg = {
|
||||
.USART_Mode = USART_Mode_Rx | USART_Mode_Tx,
|
||||
},
|
||||
.irq = {
|
||||
.handler = PIOS_USART_aux_irq_handler,
|
||||
.init = {
|
||||
.NVIC_IRQChannel = USART3_IRQn,
|
||||
.NVIC_IRQChannelPreemptionPriority = PIOS_IRQ_PRIO_HIGH,
|
||||
@ -250,18 +240,15 @@ const struct pios_usart_cfg pios_usart_aux_cfg = {
|
||||
},
|
||||
};
|
||||
|
||||
static uint32_t pios_usart_aux_id;
|
||||
void PIOS_USART_aux_irq_handler(void)
|
||||
{
|
||||
PIOS_USART_IRQ_Handler(pios_usart_aux_id);
|
||||
}
|
||||
|
||||
#endif /* PIOS_INCLUDE_USART */
|
||||
|
||||
#if defined(PIOS_INCLUDE_COM)
|
||||
|
||||
#include <pios_com_priv.h>
|
||||
|
||||
#define PIOS_COM_AUX_TX_BUF_LEN 192
|
||||
static uint8_t pios_com_aux_tx_buffer[PIOS_COM_AUX_TX_BUF_LEN];
|
||||
|
||||
#endif /* PIOS_INCLUDE_COM */
|
||||
|
||||
#if defined(PIOS_INCLUDE_I2C)
|
||||
@ -279,7 +266,7 @@ void I2C1_EV_IRQHandler()
|
||||
void I2C1_ER_IRQHandler()
|
||||
__attribute__ ((alias("PIOS_I2C_main_adapter_er_irq_handler")));
|
||||
|
||||
const struct pios_i2c_adapter_cfg pios_i2c_main_adapter_cfg = {
|
||||
static const struct pios_i2c_adapter_cfg pios_i2c_main_adapter_cfg = {
|
||||
.regs = I2C1,
|
||||
.init = {
|
||||
.I2C_Mode = I2C_Mode_I2C,
|
||||
@ -307,7 +294,6 @@ const struct pios_i2c_adapter_cfg pios_i2c_main_adapter_cfg = {
|
||||
},
|
||||
},
|
||||
.event = {
|
||||
.handler = PIOS_I2C_main_adapter_ev_irq_handler,
|
||||
.flags = 0, /* FIXME: check this */
|
||||
.init = {
|
||||
.NVIC_IRQChannel = I2C1_EV_IRQn,
|
||||
@ -317,7 +303,6 @@ const struct pios_i2c_adapter_cfg pios_i2c_main_adapter_cfg = {
|
||||
},
|
||||
},
|
||||
.error = {
|
||||
.handler = PIOS_I2C_main_adapter_er_irq_handler,
|
||||
.flags = 0, /* FIXME: check this */
|
||||
.init = {
|
||||
.NVIC_IRQChannel = I2C1_ER_IRQn,
|
||||
@ -388,11 +373,16 @@ void PIOS_Board_Init(void) {
|
||||
/* Communication system */
|
||||
#if !defined(PIOS_ENABLE_DEBUG_PINS)
|
||||
#if defined(PIOS_INCLUDE_COM)
|
||||
if (PIOS_USART_Init(&pios_usart_aux_id, &pios_usart_aux_cfg)) {
|
||||
PIOS_DEBUG_Assert(0);
|
||||
}
|
||||
if (PIOS_COM_Init(&pios_com_aux_id, &pios_usart_com_driver, pios_usart_aux_id)) {
|
||||
PIOS_DEBUG_Assert(0);
|
||||
{
|
||||
uint32_t pios_usart_aux_id;
|
||||
if (PIOS_USART_Init(&pios_usart_aux_id, &pios_usart_aux_cfg)) {
|
||||
PIOS_DEBUG_Assert(0);
|
||||
}
|
||||
if (PIOS_COM_Init(&pios_com_aux_id, &pios_usart_com_driver, pios_usart_aux_id,
|
||||
NULL, 0,
|
||||
pios_com_aux_tx_buffer, sizeof(pios_com_aux_tx_buffer))) {
|
||||
PIOS_DEBUG_Assert(0);
|
||||
}
|
||||
}
|
||||
#endif /* PIOS_INCLUDE_COM */
|
||||
#endif
|
||||
|
@ -25,6 +25,13 @@
|
||||
WHEREAMI := $(dir $(lastword $(MAKEFILE_LIST)))
|
||||
TOP := $(realpath $(WHEREAMI)/../../../)
|
||||
include $(TOP)/make/firmware-defs.mk
|
||||
include $(TOP)/make/boards/$(BOARD_NAME)/board-info.mk
|
||||
|
||||
# Target file name (without extension).
|
||||
TARGET := bl_$(BOARD_NAME)
|
||||
|
||||
# Directory for output files (lst, obj, dep, elf, sym, map, hex, bin etc.)
|
||||
OUTDIR := $(TOP)/build/$(TARGET)
|
||||
|
||||
# Set developer code and compile options
|
||||
# Set to YES for debugging
|
||||
@ -41,23 +48,6 @@ endif
|
||||
|
||||
FLASH_TOOL = OPENOCD
|
||||
|
||||
# MCU name, submodel and board
|
||||
# - MCU used for compiler-option (-mcpu)
|
||||
# - MODEL used for linker-script name (-T) and passed as define
|
||||
# - BOARD just passed as define (optional)
|
||||
MCU = cortex-m3
|
||||
CHIP = STM32F103CBT
|
||||
BOARD = STM32103CB_AHRS
|
||||
MODEL = MD
|
||||
|
||||
|
||||
|
||||
# Directory for output files (lst, obj, dep, elf, sym, map, hex, bin etc.)
|
||||
OUTDIR = $(TOP)/build/bl_ahrs
|
||||
|
||||
# Target file name (without extension).
|
||||
TARGET = AHRS_BL
|
||||
|
||||
# Paths
|
||||
AHRS_BL = ./
|
||||
AHRS_BLINC = $(AHRS_BL)/inc
|
||||
@ -100,6 +90,7 @@ SRC += $(PIOSSTM32F10X)/pios_spi.c
|
||||
## PIOS Hardware (Common)
|
||||
#SRC += $(PIOSCOMMON)/pios_com.c
|
||||
#SRC += $(PIOSCOMMON)/pios_hmc5843.c
|
||||
SRC += $(PIOSCOMMON)/pios_board_info.c
|
||||
SRC += $(PIOSCOMMON)/pios_opahrs_proto.c
|
||||
SRC += $(PIOSCOMMON)/printf-stdarg.c
|
||||
SRC += $(PIOSCOMMON)/pios_bl_helper.c
|
||||
@ -148,7 +139,7 @@ CPPSRCARM =
|
||||
# Even though the DOS/Win* filesystem matches both .s and .S the same,
|
||||
# it will preserve the spelling of the filenames, and gcc itself does
|
||||
# care about how the name is spelled on its command-line.
|
||||
ASRC = $(PIOSSTM32F10X)/startup_stm32f10x_$(MODEL).S
|
||||
ASRC = $(PIOSSTM32F10X)/startup_stm32f10x_$(MODEL)$(MODEL_SUFFIX).S
|
||||
|
||||
# List Assembler source files here which must be assembled in ARM-Mode..
|
||||
ASRCARM =
|
||||
@ -208,6 +199,15 @@ CDEFS = -DSTM32F10X_$(MODEL)
|
||||
CDEFS += -DUSE_STDPERIPH_DRIVER
|
||||
CDEFS += -DUSE_$(BOARD)
|
||||
|
||||
# Provide (only) the bootloader with board-specific defines
|
||||
BLONLY_CDEFS += -DBOARD_TYPE=$(BOARD_TYPE)
|
||||
BLONLY_CDEFS += -DBOARD_REVISION=$(BOARD_REVISION)
|
||||
BLONLY_CDEFS += -DHW_TYPE=$(HW_TYPE)
|
||||
BLONLY_CDEFS += -DBOOTLOADER_VERSION=$(BOOTLOADER_VERSION)
|
||||
BLONLY_CDEFS += -DFW_BANK_BASE=$(FW_BANK_BASE)
|
||||
BLONLY_CDEFS += -DFW_BANK_SIZE=$(FW_BANK_SIZE)
|
||||
BLONLY_CDEFS += -DFW_DESC_SIZE=$(FW_DESC_SIZE)
|
||||
|
||||
# Place project-specific -D and/or -U options for
|
||||
# Assembler with preprocessor here.
|
||||
#ADEFS = -DUSE_IRQ_ASM_WRAPPER
|
||||
@ -242,8 +242,9 @@ CFLAGS += -O$(OPT)
|
||||
ifeq ($(DEBUG),NO)
|
||||
CFLAGS += -fdata-sections -ffunction-sections
|
||||
endif
|
||||
CFLAGS += -mcpu=$(MCU) -mthumb
|
||||
CFLAGS += -mcpu=$(MCU)
|
||||
CFLAGS += $(CDEFS)
|
||||
CFLAGS += $(BLONLY_CDEFS)
|
||||
CFLAGS += $(patsubst %,-I%,$(EXTRAINCDIRS)) -I.
|
||||
|
||||
CFLAGS += -mapcs-frame
|
||||
@ -265,7 +266,7 @@ CONLYFLAGS += $(CSTANDARD)
|
||||
# Assembler flags.
|
||||
# -Wa,...: tell GCC to pass this to the assembler.
|
||||
# -ahlns: create listing
|
||||
ASFLAGS = -mcpu=$(MCU) -mthumb -I. -x assembler-with-cpp
|
||||
ASFLAGS = -mcpu=$(MCU) -I. -x assembler-with-cpp
|
||||
ASFLAGS += $(ADEFS)
|
||||
ASFLAGS += -Wa,-adhlns=$(addprefix $(OUTDIR)/, $(notdir $(addsuffix .lst, $(basename $<))))
|
||||
ASFLAGS += $(patsubst %,-I%,$(EXTRAINCDIRS))
|
||||
@ -290,20 +291,8 @@ LDFLAGS += -lc -lgcc
|
||||
LDFLAGS += -T$(LINKERSCRIPTPATH)/link_$(BOARD)_memory.ld
|
||||
LDFLAGS += -T$(LINKERSCRIPTPATH)/link_$(BOARD)_BL_sections.ld
|
||||
|
||||
OOCD_LOADFILE+=$(OUTDIR)/$(TARGET).bin
|
||||
# Program
|
||||
OOCD_CL+=-c "flash write_image erase $(OOCD_LOADFILE) 0x08000000 bin"
|
||||
# Verify
|
||||
OOCD_CL+=-c "verify_image $(OOCD_LOADFILE) 0x08000000 bin"
|
||||
# reset target
|
||||
OOCD_CL+=-c "reset run"
|
||||
# terminate OOCD after programming
|
||||
OOCD_CL+=-c shutdown
|
||||
|
||||
# Define programs and commands.
|
||||
REMOVE = $(REMOVE_CMD) -f
|
||||
###SHELL = sh
|
||||
###COPY = cp
|
||||
|
||||
# List of all source files.
|
||||
ALLSRC = $(ASRCARM) $(ASRC) $(SRCARM) $(SRC) $(CPPSRCARM) $(CPPSRC)
|
||||
@ -335,14 +324,6 @@ endif
|
||||
endif
|
||||
endif
|
||||
|
||||
# Program the device.
|
||||
ifeq ($(FLASH_TOOL),OPENOCD)
|
||||
# Program the device with Dominic Rath's OPENOCD in "batch-mode", needs cfg and "reset-script".
|
||||
program: $(OUTDIR)/$(TARGET).bin
|
||||
@echo "Programming with OPENOCD"
|
||||
$(OOCD_EXE) $(OOCD_CL)
|
||||
endif
|
||||
|
||||
# Link: create ELF output file from object files.
|
||||
$(eval $(call LINK_TEMPLATE, $(OUTDIR)/$(TARGET).elf, $(ALLOBJ)))
|
||||
|
||||
@ -372,6 +353,9 @@ $(eval $(call PARTIAL_COMPILE_ARM_TEMPLATE, SRCARM))
|
||||
|
||||
$(OUTDIR)/$(TARGET).bin.o: $(OUTDIR)/$(TARGET).bin
|
||||
|
||||
# Add jtag targets (program and wipe)
|
||||
$(eval $(call JTAG_TEMPLATE,$(OUTDIR)/$(TARGET).bin,$(BL_BANK_BASE),$(BL_BANK_SIZE)))
|
||||
|
||||
.PHONY: elf lss sym hex bin bino
|
||||
elf: $(OUTDIR)/$(TARGET).elf
|
||||
lss: $(OUTDIR)/$(TARGET).lss
|
||||
@ -382,13 +366,21 @@ bino: $(OUTDIR)/$(TARGET).bin.o
|
||||
|
||||
# Display sizes of sections.
|
||||
$(eval $(call SIZE_TEMPLATE, $(OUTDIR)/$(TARGET).elf))
|
||||
.PHONY: size
|
||||
size: $(OUTDIR)/$(TARGET).elf_size
|
||||
|
||||
# Generate Doxygen documents
|
||||
docs:
|
||||
doxygen $(DOXYGENDIR)/doxygen.cfg
|
||||
|
||||
# Install: install binary file with prefix/suffix into install directory
|
||||
install: $(OUTDIR)/$(TARGET).bin
|
||||
ifneq ($(INSTALL_DIR),)
|
||||
@echo $(MSG_INSTALLING) $(call toprel, $<)
|
||||
$(V1) mkdir -p $(INSTALL_DIR)
|
||||
$(V1) $(INSTALL) $< $(INSTALL_DIR)/$(INSTALL_PFX)$(TARGET)$(INSTALL_SFX).bin
|
||||
else
|
||||
$(error INSTALL_DIR must be specified for $@)
|
||||
endif
|
||||
|
||||
# Target: clean project.
|
||||
clean: clean_list
|
||||
|
||||
@ -426,4 +418,4 @@ else
|
||||
endif
|
||||
|
||||
# Listing of phony targets.
|
||||
.PHONY : all build clean clean_list program
|
||||
.PHONY : all build clean clean_list install
|
||||
|
@ -33,6 +33,7 @@
|
||||
|
||||
/* OpenPilot Includes */
|
||||
#include "ahrs_bl.h"
|
||||
#include <pios_board_info.h>
|
||||
#include "pios_opahrs_proto.h"
|
||||
#include "bl_fsm.h" /* lfsm_state */
|
||||
#include "stm32f10x_flash.h"
|
||||
@ -108,6 +109,7 @@ static struct opahrs_msg_v0 link_rx_v0;
|
||||
static struct opahrs_msg_v0 user_tx_v0;
|
||||
static struct opahrs_msg_v0 user_rx_v0;
|
||||
void process_spi_request(void) {
|
||||
const struct pios_board_info * bdinfo = &pios_board_info_blob;
|
||||
bool msg_to_process = FALSE;
|
||||
|
||||
PIOS_IRQ_Disable();
|
||||
@ -166,15 +168,15 @@ void process_spi_request(void) {
|
||||
break;
|
||||
case OPAHRS_MSG_V0_REQ_MEM_MAP:
|
||||
opahrs_msg_v0_init_user_tx(&user_tx_v0, OPAHRS_MSG_V0_RSP_MEM_MAP);
|
||||
user_tx_v0.payload.user.v.rsp.mem_map.density = HW_TYPE;
|
||||
user_tx_v0.payload.user.v.rsp.mem_map.density = bdinfo->hw_type;
|
||||
user_tx_v0.payload.user.v.rsp.mem_map.rw_flags = (BOARD_READABLE
|
||||
| (BOARD_WRITABLA << 1));
|
||||
| (BOARD_WRITABLE << 1));
|
||||
user_tx_v0.payload.user.v.rsp.mem_map.size_of_code_memory
|
||||
= SIZE_OF_CODE;
|
||||
= bdinfo->fw_size;
|
||||
user_tx_v0.payload.user.v.rsp.mem_map.size_of_description
|
||||
= SIZE_OF_DESCRIPTION;
|
||||
= bdinfo->desc_size;
|
||||
user_tx_v0.payload.user.v.rsp.mem_map.start_of_user_code
|
||||
= START_OF_USER_CODE;
|
||||
= bdinfo->fw_base;
|
||||
lfsm_user_set_tx_v0(&user_tx_v0);
|
||||
break;
|
||||
case OPAHRS_MSG_V0_REQ_SERIAL:
|
||||
@ -192,7 +194,7 @@ void process_spi_request(void) {
|
||||
PIOS_LED_On(LED1);
|
||||
opahrs_msg_v0_init_user_tx(&user_tx_v0, OPAHRS_MSG_V0_RSP_FWUP_STATUS);
|
||||
if (!(user_rx_v0.payload.user.v.req.fwup_data.adress
|
||||
< START_OF_USER_CODE)) {
|
||||
< bdinfo->fw_base)) {
|
||||
for (uint8_t x = 0; x
|
||||
< user_rx_v0.payload.user.v.req.fwup_data.size; ++x) {
|
||||
if (FLASH_ProgramWord(
|
||||
@ -250,13 +252,10 @@ void process_spi_request(void) {
|
||||
return;
|
||||
}
|
||||
void jump_to_app() {
|
||||
//while(TRUE)
|
||||
//{
|
||||
// PIOS_LED_Toggle(LED1);
|
||||
// PIOS_DELAY_WaitmS(1000);
|
||||
//}
|
||||
const struct pios_board_info * bdinfo = &pios_board_info_blob;
|
||||
|
||||
PIOS_LED_On(LED1);
|
||||
if (((*(__IO uint32_t*) START_OF_USER_CODE) & 0x2FFE0000) == 0x20000000) { /* Jump to user application */
|
||||
if (((*(__IO uint32_t*) bdinfo->fw_base) & 0x2FFE0000) == 0x20000000) { /* Jump to user application */
|
||||
FLASH_Lock();
|
||||
RCC_APB2PeriphResetCmd(0xffffffff, ENABLE);
|
||||
RCC_APB1PeriphResetCmd(0xffffffff, ENABLE);
|
||||
@ -265,10 +264,10 @@ void jump_to_app() {
|
||||
//_SetCNTR(0); // clear interrupt mask
|
||||
//_SetISTR(0); // clear all requests
|
||||
|
||||
JumpAddress = *(__IO uint32_t*) (START_OF_USER_CODE + 4);
|
||||
JumpAddress = *(__IO uint32_t*) (bdinfo->fw_base + 4);
|
||||
Jump_To_Application = (pFunction) JumpAddress;
|
||||
/* Initialize user application's Stack Pointer */
|
||||
__set_MSP(*(__IO uint32_t*) START_OF_USER_CODE);
|
||||
__set_MSP(*(__IO uint32_t*) bdinfo->fw_base);
|
||||
Jump_To_Application();
|
||||
} else {
|
||||
boot_status = jump_failed;
|
||||
|
@ -55,7 +55,6 @@ static const struct pios_spi_cfg
|
||||
.ahb_clk = RCC_AHBPeriph_DMA1,
|
||||
|
||||
.irq = {
|
||||
.handler = PIOS_SPI_op_irq_handler,
|
||||
.flags = (DMA1_FLAG_TC4 | DMA1_FLAG_TE4 | DMA1_FLAG_HT4 | DMA1_FLAG_GL4),
|
||||
.init = {
|
||||
.NVIC_IRQChannel = DMA1_Channel4_IRQn,
|
||||
@ -133,11 +132,18 @@ void PIOS_SPI_op_irq_handler(void) {
|
||||
|
||||
#include "bl_fsm.h" /* lfsm_* */
|
||||
|
||||
static bool board_init_complete = false;
|
||||
void PIOS_Board_Init() {
|
||||
if (board_init_complete) {
|
||||
return;
|
||||
}
|
||||
|
||||
/* Set up the SPI interface to the OP board */
|
||||
if (PIOS_SPI_Init(&pios_spi_op_id, &pios_spi_op_cfg)) {
|
||||
PIOS_DEBUG_Assert(0);
|
||||
}
|
||||
lfsm_attach(pios_spi_op_id);
|
||||
lfsm_init();
|
||||
|
||||
board_init_complete = true;
|
||||
}
|
||||
|
@ -25,6 +25,13 @@
|
||||
WHEREAMI := $(dir $(lastword $(MAKEFILE_LIST)))
|
||||
TOP := $(realpath $(WHEREAMI)/../../../)
|
||||
include $(TOP)/make/firmware-defs.mk
|
||||
include $(TOP)/make/boards/$(BOARD_NAME)/board-info.mk
|
||||
|
||||
# Target file name (without extension).
|
||||
TARGET = bu_$(BOARD_NAME)
|
||||
|
||||
# Directory for output files (lst, obj, dep, elf, sym, map, hex, bin etc.)
|
||||
OUTDIR := $(TOP)/build/$(TARGET)
|
||||
|
||||
# Set developer code and compile options
|
||||
# Set to YES to compile for debugging
|
||||
@ -51,21 +58,6 @@ endif
|
||||
|
||||
FLASH_TOOL = OPENOCD
|
||||
|
||||
# MCU name, submodel and board
|
||||
# - MCU used for compiler-option (-mcpu)
|
||||
# - MODEL used for linker-script name (-T) and passed as define
|
||||
# - BOARD just passed as define (optional)
|
||||
MCU = cortex-m3
|
||||
CHIP = STM32F103CBT
|
||||
BOARD ?= NULL
|
||||
MODEL ?= NULL
|
||||
|
||||
# Directory for output files (lst, obj, dep, elf, sym, map, hex, bin etc.)
|
||||
OUTDIR = ../../../build/bootloaders/BootloaderUpdater
|
||||
|
||||
# Target file name (without extension).
|
||||
TARGET = BL_Updater
|
||||
|
||||
# Paths
|
||||
OPSYSTEM = .
|
||||
OPSYSTEMINC = $(OPSYSTEM)/inc
|
||||
@ -224,7 +216,6 @@ endif
|
||||
ifeq ($(ENABLE_AUX_UART), YES)
|
||||
CDEFS += -DPIOS_ENABLE_AUX_UART
|
||||
endif
|
||||
CDEFS += -DUSE_BOOTLOADER
|
||||
|
||||
# Place project-specific -D and/or -U options for
|
||||
# Assembler with preprocessor here.
|
||||
@ -309,9 +300,9 @@ LDFLAGS += -T$(LINKERSCRIPTPATH)/link_$(BOARD)_sections.ld
|
||||
|
||||
OOCD_LOADFILE+=$(OUTDIR)/$(TARGET).bin
|
||||
# Program
|
||||
OOCD_CL+=-c "flash write_image erase $(OOCD_LOADFILE) 0x08003000 bin"
|
||||
OOCD_CL+=-c "flash write_image erase $(OOCD_LOADFILE) $(START_OF_FW_CODE) bin"
|
||||
# Verify
|
||||
OOCD_CL+=-c "verify_image $(OOCD_LOADFILE) 0x08003000 bin"
|
||||
OOCD_CL+=-c "verify_image $(OOCD_LOADFILE) $(START_OF_FW_CODE) bin"
|
||||
# reset target
|
||||
OOCD_CL+=-c "reset run"
|
||||
# terminate OOCD after programming
|
||||
@ -364,6 +355,7 @@ program: $(OUTDIR)/$(TARGET).bin
|
||||
endif
|
||||
|
||||
# Link: create ELF output file from object files.
|
||||
BLOBJ := $(TOP)/build/bl_$(BOARD_NAME)/bl_$(BOARD_NAME).bin.o
|
||||
$(eval $(call LINK_TEMPLATE, $(OUTDIR)/$(TARGET).elf, $(ALLOBJ) $(BLOBJ)))
|
||||
|
||||
# Assemble: create object files from assembler source files.
|
||||
@ -392,14 +384,16 @@ $(eval $(call PARTIAL_COMPILE_ARM_TEMPLATE, SRCARM))
|
||||
|
||||
$(OUTDIR)/$(TARGET).bin.o: $(OUTDIR)/$(TARGET).bin
|
||||
|
||||
.PHONY: elf lss sym hex bin bino
|
||||
$(eval $(call OPFW_TEMPLATE,$(OUTDIR)/$(TARGET).bin,$(BOARD_TYPE),$(BOARD_REVISION)))
|
||||
|
||||
.PHONY: elf lss sym hex bin bino opfw
|
||||
elf: $(OUTDIR)/$(TARGET).elf
|
||||
elf.stripped: $(OUTDIR)/$(TARGET).elf.stripped
|
||||
lss: $(OUTDIR)/$(TARGET).lss
|
||||
sym: $(OUTDIR)/$(TARGET).sym
|
||||
hex: $(OUTDIR)/$(TARGET).hex
|
||||
bin: $(OUTDIR)/$(TARGET).bin
|
||||
bino: $(OUTDIR)/$(TARGET).bin.o
|
||||
opfw: $(OUTDIR)/$(TARGET).opfw
|
||||
|
||||
# Display sizes of sections.
|
||||
$(eval $(call SIZE_TEMPLATE, $(OUTDIR)/$(TARGET).elf))
|
||||
@ -410,6 +404,16 @@ size: $(OUTDIR)/$(TARGET).elf_size
|
||||
docs:
|
||||
doxygen $(DOXYGENDIR)/doxygen.cfg
|
||||
|
||||
# Install: install binary file with prefix/suffix into install directory
|
||||
install: $(OUTDIR)/$(TARGET).opfw
|
||||
ifneq ($(INSTALL_DIR),)
|
||||
@echo $(MSG_INSTALLING) $(call toprel, $<)
|
||||
$(V1) mkdir -p $(INSTALL_DIR)
|
||||
$(V1) $(INSTALL) $< $(INSTALL_DIR)/$(INSTALL_PFX)$(TARGET)$(INSTALL_SFX).opfw
|
||||
else
|
||||
$(error INSTALL_DIR must be specified for $@)
|
||||
endif
|
||||
|
||||
# Target: clean project.
|
||||
clean: begin clean_list finished end
|
||||
|
||||
@ -430,7 +434,6 @@ clean_list :
|
||||
$(V1) $(REMOVE) $(CPPSRC:.cpp=.s)
|
||||
$(V1) $(REMOVE) $(CPPSRCARM:.cpp=.s)
|
||||
|
||||
|
||||
# Create output files directory
|
||||
# all known MS Windows OS define the ComSpec environment variable
|
||||
ifdef ComSpec
|
||||
@ -447,4 +450,4 @@ else
|
||||
endif
|
||||
|
||||
# Listing of phony targets.
|
||||
.PHONY : all build clean clean_list program
|
||||
.PHONY : all build clean clean_list program install
|
||||
|
@ -25,6 +25,13 @@
|
||||
WHEREAMI := $(dir $(lastword $(MAKEFILE_LIST)))
|
||||
TOP := $(realpath $(WHEREAMI)/../../../)
|
||||
include $(TOP)/make/firmware-defs.mk
|
||||
include $(TOP)/make/boards/$(BOARD_NAME)/board-info.mk
|
||||
|
||||
# Target file name (without extension).
|
||||
TARGET := bl_$(BOARD_NAME)
|
||||
|
||||
# Directory for output files (lst, obj, dep, elf, sym, map, hex, bin etc.)
|
||||
OUTDIR := $(TOP)/build/$(TARGET)
|
||||
|
||||
# Set developer code and compile options
|
||||
# Set to YES to compile for debugging
|
||||
@ -48,21 +55,6 @@ endif
|
||||
|
||||
FLASH_TOOL = OPENOCD
|
||||
|
||||
# MCU name, submodel and board
|
||||
# - MCU used for compiler-option (-mcpu)
|
||||
# - MODEL used for linker-script name (-T) and passed as define
|
||||
# - BOARD just passed as define (optional)
|
||||
MCU = cortex-m3
|
||||
CHIP = STM32F103CBT
|
||||
BOARD = STM32103CB_CC_Rev1
|
||||
MODEL = MD
|
||||
|
||||
# Directory for output files (lst, obj, dep, elf, sym, map, hex, bin etc.)
|
||||
OUTDIR = $(TOP)/build/bl_coptercontrol
|
||||
|
||||
# Target file name (without extension).
|
||||
TARGET = CopterControl_BL
|
||||
|
||||
# Paths
|
||||
OPSYSTEM = .
|
||||
OPSYSTEMINC = $(OPSYSTEM)/inc
|
||||
@ -102,8 +94,6 @@ DOXYGENDIR = ../Doc/Doxygen
|
||||
SRC += $(OPSYSTEM)/main.c
|
||||
SRC += $(OPSYSTEM)/pios_board.c
|
||||
SRC += $(OPSYSTEM)/op_dfu.c
|
||||
SRC += $(FLIGHTLIB)/stopwatch.c
|
||||
|
||||
|
||||
## PIOS Hardware (STM32F10x)
|
||||
SRC += $(PIOSSTM32F10X)/pios_sys.c
|
||||
@ -123,6 +113,7 @@ SRC += $(PIOSSTM32F10X)/pios_usb_hid_prop.c
|
||||
SRC += $(PIOSSTM32F10X)/pios_usb_hid_pwr.c
|
||||
|
||||
## PIOS Hardware (Common)
|
||||
SRC += $(PIOSCOMMON)/pios_board_info.c
|
||||
SRC += $(PIOSCOMMON)/pios_com.c
|
||||
SRC += $(PIOSCOMMON)/pios_bl_helper.c
|
||||
SRC += $(PIOSCOMMON)/pios_iap.c
|
||||
@ -146,7 +137,6 @@ SRC += $(STMSPDSRCDIR)/stm32f10x_pwr.c
|
||||
SRC += $(STMSPDSRCDIR)/stm32f10x_rcc.c
|
||||
SRC += $(STMSPDSRCDIR)/stm32f10x_rtc.c
|
||||
SRC += $(STMSPDSRCDIR)/stm32f10x_spi.c
|
||||
SRC += $(STMSPDSRCDIR)/stm32f10x_tim.c
|
||||
SRC += $(STMSPDSRCDIR)/stm32f10x_usart.c
|
||||
SRC += $(STMSPDSRCDIR)/stm32f10x_dbgmcu.c
|
||||
SRC += $(STMSPDSRCDIR)/misc.c
|
||||
@ -180,7 +170,7 @@ CPPSRCARM =
|
||||
# Even though the DOS/Win* filesystem matches both .s and .S the same,
|
||||
# it will preserve the spelling of the filenames, and gcc itself does
|
||||
# care about how the name is spelled on its command-line.
|
||||
ASRC = $(PIOSSTM32F10X)/startup_stm32f10x_$(MODEL).S
|
||||
ASRC = $(PIOSSTM32F10X)/startup_stm32f10x_$(MODEL)$(MODEL_SUFFIX).S
|
||||
|
||||
# List Assembler source files here which must be assembled in ARM-Mode..
|
||||
ASRCARM =
|
||||
@ -259,6 +249,15 @@ ifeq ($(ENABLE_AUX_UART), YES)
|
||||
CDEFS += -DPIOS_ENABLE_AUX_UART
|
||||
endif
|
||||
|
||||
# Provide (only) the bootloader with board-specific defines
|
||||
BLONLY_CDEFS += -DBOARD_TYPE=$(BOARD_TYPE)
|
||||
BLONLY_CDEFS += -DBOARD_REVISION=$(BOARD_REVISION)
|
||||
BLONLY_CDEFS += -DHW_TYPE=$(HW_TYPE)
|
||||
BLONLY_CDEFS += -DBOOTLOADER_VERSION=$(BOOTLOADER_VERSION)
|
||||
BLONLY_CDEFS += -DFW_BANK_BASE=$(FW_BANK_BASE)
|
||||
BLONLY_CDEFS += -DFW_BANK_SIZE=$(FW_BANK_SIZE)
|
||||
BLONLY_CDEFS += -DFW_DESC_SIZE=$(FW_DESC_SIZE)
|
||||
|
||||
# Place project-specific -D and/or -U options for
|
||||
# Assembler with preprocessor here.
|
||||
#ADEFS = -DUSE_IRQ_ASM_WRAPPER
|
||||
@ -294,8 +293,9 @@ ifeq ($(DEBUG),NO)
|
||||
CFLAGS += -ffunction-sections
|
||||
endif
|
||||
|
||||
CFLAGS += -mcpu=$(MCU) -mthumb
|
||||
CFLAGS += -mcpu=$(MCU)
|
||||
CFLAGS += $(CDEFS)
|
||||
CFLAGS += $(BLONLY_CDEFS)
|
||||
CFLAGS += $(patsubst %,-I%,$(EXTRAINCDIRS)) -I.
|
||||
|
||||
CFLAGS += -mapcs-frame
|
||||
@ -315,7 +315,7 @@ CONLYFLAGS += $(CSTANDARD)
|
||||
# Assembler flags.
|
||||
# -Wa,...: tell GCC to pass this to the assembler.
|
||||
# -ahlns: create listing
|
||||
ASFLAGS = -mcpu=$(MCU) -mthumb -I. -x assembler-with-cpp
|
||||
ASFLAGS = -mcpu=$(MCU) -I. -x assembler-with-cpp
|
||||
ASFLAGS += $(ADEFS)
|
||||
ASFLAGS += -Wa,-adhlns=$(addprefix $(OUTDIR)/, $(notdir $(addsuffix .lst, $(basename $<))))
|
||||
ASFLAGS += $(patsubst %,-I%,$(EXTRAINCDIRS))
|
||||
@ -340,20 +340,8 @@ LDFLAGS += -lc -lgcc
|
||||
LDFLAGS += -T$(LINKERSCRIPTPATH)/link_$(BOARD)_memory.ld
|
||||
LDFLAGS += -T$(LINKERSCRIPTPATH)/link_$(BOARD)_BL_sections.ld
|
||||
|
||||
OOCD_LOADFILE+=$(OUTDIR)/$(TARGET).bin
|
||||
# Program
|
||||
OOCD_CL+=-c "flash write_image erase $(OOCD_LOADFILE) 0x08000000 bin"
|
||||
# Verify
|
||||
OOCD_CL+=-c "verify_image $(OOCD_LOADFILE) 0x08000000 bin"
|
||||
# reset target
|
||||
OOCD_CL+=-c "reset run"
|
||||
# terminate OOCD after programming
|
||||
OOCD_CL+=-c shutdown
|
||||
|
||||
# Define programs and commands.
|
||||
REMOVE = $(REMOVE_CMD) -f
|
||||
###SHELL = sh
|
||||
###COPY = cp
|
||||
|
||||
# List of all source files.
|
||||
ALLSRC = $(ASRCARM) $(ASRC) $(SRCARM) $(SRC) $(CPPSRCARM) $(CPPSRC)
|
||||
@ -393,14 +381,6 @@ ${OUTDIR}/InitMods.c: Makefile
|
||||
@echo ${quote}${foreach MOD, ${MODNAMES}, ${MOD}Initialize();}${quote} >> ${OUTDIR}/InitMods.c
|
||||
@echo ${quote}}${quote} >> ${OUTDIR}/InitMods.c
|
||||
|
||||
# Program the device.
|
||||
ifeq ($(FLASH_TOOL),OPENOCD)
|
||||
# Program the device with Dominic Rath's OPENOCD in "batch-mode", needs cfg and "reset-script".
|
||||
program: $(OUTDIR)/$(TARGET).bin
|
||||
@echo ${quote}Programming with OPENOCD${quote}
|
||||
$(OOCD_EXE) $(OOCD_CL)
|
||||
endif
|
||||
|
||||
# Link: create ELF output file from object files.
|
||||
$(eval $(call LINK_TEMPLATE, $(OUTDIR)/$(TARGET).elf, $(ALLOBJ)))
|
||||
|
||||
@ -428,12 +408,11 @@ $(eval $(call PARTIAL_COMPILE_TEMPLATE, SRC))
|
||||
# Compile: create assembler files from C source files. ARM only
|
||||
$(eval $(call PARTIAL_COMPILE_ARM_TEMPLATE, SRCARM))
|
||||
|
||||
# Generate Doxygen documents
|
||||
docs:
|
||||
doxygen $(DOXYGENDIR)/doxygen.cfg
|
||||
|
||||
$(OUTDIR)/$(TARGET).bin.o: $(OUTDIR)/$(TARGET).bin
|
||||
|
||||
# Add jtag targets (program and wipe)
|
||||
$(eval $(call JTAG_TEMPLATE,$(OUTDIR)/$(TARGET).bin,$(BL_BANK_BASE),$(BL_BANK_SIZE)))
|
||||
|
||||
.PHONY: elf lss sym hex bin bino
|
||||
elf: $(OUTDIR)/$(TARGET).elf
|
||||
lss: $(OUTDIR)/$(TARGET).lss
|
||||
@ -444,8 +423,20 @@ bino: $(OUTDIR)/$(TARGET).bin.o
|
||||
|
||||
# Display sizes of sections.
|
||||
$(eval $(call SIZE_TEMPLATE, $(OUTDIR)/$(TARGET).elf))
|
||||
.PHONY: size
|
||||
size: $(OUTDIR)/$(TARGET).elf_size
|
||||
|
||||
# Generate Doxygen documents
|
||||
docs:
|
||||
doxygen $(DOXYGENDIR)/doxygen.cfg
|
||||
|
||||
# Install: install binary file with prefix/suffix into install directory
|
||||
install: $(OUTDIR)/$(TARGET).bin
|
||||
ifneq ($(INSTALL_DIR),)
|
||||
@echo $(MSG_INSTALLING) $(call toprel, $<)
|
||||
$(V1) mkdir -p $(INSTALL_DIR)
|
||||
$(V1) $(INSTALL) $< $(INSTALL_DIR)/$(INSTALL_PFX)$(TARGET)$(INSTALL_SFX).bin
|
||||
else
|
||||
$(error INSTALL_DIR must be specified for $@)
|
||||
endif
|
||||
|
||||
# Target: clean project.
|
||||
clean: clean_list
|
||||
@ -484,4 +475,4 @@ else
|
||||
endif
|
||||
|
||||
# Listing of phony targets.
|
||||
.PHONY : all build clean clean_list program
|
||||
.PHONY : all build clean clean_list install
|
||||
|
@ -27,7 +27,7 @@
|
||||
*/
|
||||
/* Bootloader Includes */
|
||||
#include <pios.h>
|
||||
#include "stopwatch.h"
|
||||
#include <pios_board_info.h>
|
||||
#include "op_dfu.h"
|
||||
#include "usb_lib.h"
|
||||
#include "pios_iap.h"
|
||||
@ -46,9 +46,9 @@ pFunction Jump_To_Application;
|
||||
uint32_t JumpAddress;
|
||||
|
||||
/// LEDs PWM
|
||||
uint32_t period1 = 50; // *100 uS -> 5 mS
|
||||
uint32_t period1 = 5000; // 5 mS
|
||||
uint32_t sweep_steps1 = 100; // * 5 mS -> 500 mS
|
||||
uint32_t period2 = 50; // *100 uS -> 5 mS
|
||||
uint32_t period2 = 5000; // 5 mS
|
||||
uint32_t sweep_steps2 = 100; // * 5 mS -> 500 mS
|
||||
|
||||
|
||||
@ -69,7 +69,6 @@ uint8_t processRX();
|
||||
void jump_to_app();
|
||||
|
||||
#define BLUE LED1
|
||||
#define LED_PWM_TIMER TIM1
|
||||
int main() {
|
||||
PIOS_SYS_Init();
|
||||
if (BSL_HOLD_STATE == 0)
|
||||
@ -92,13 +91,17 @@ int main() {
|
||||
DeviceState = DFUidle;
|
||||
else
|
||||
DeviceState = BLidle;
|
||||
STOPWATCH_Init(100, LED_PWM_TIMER);
|
||||
} else
|
||||
JumpToApp = TRUE;
|
||||
|
||||
STOPWATCH_Reset(LED_PWM_TIMER);
|
||||
|
||||
uint32_t stopwatch = 0;
|
||||
uint32_t prev_ticks = PIOS_DELAY_GetuS();
|
||||
while (TRUE) {
|
||||
/* Update the stopwatch */
|
||||
uint32_t elapsed_ticks = PIOS_DELAY_GetuSSince(prev_ticks);
|
||||
prev_ticks += elapsed_ticks;
|
||||
stopwatch += elapsed_ticks;
|
||||
|
||||
if (JumpToApp == TRUE)
|
||||
jump_to_app();
|
||||
|
||||
@ -106,19 +109,19 @@ int main() {
|
||||
case Last_operation_Success:
|
||||
case uploadingStarting:
|
||||
case DFUidle:
|
||||
period1 = 50;
|
||||
period1 = 5000;
|
||||
sweep_steps1 = 100;
|
||||
PIOS_LED_Off(BLUE);
|
||||
period2 = 0;
|
||||
break;
|
||||
case uploading:
|
||||
period1 = 50;
|
||||
period1 = 5000;
|
||||
sweep_steps1 = 100;
|
||||
period2 = 25;
|
||||
period2 = 2500;
|
||||
sweep_steps2 = 50;
|
||||
break;
|
||||
case downloading:
|
||||
period1 = 25;
|
||||
period1 = 2500;
|
||||
sweep_steps1 = 50;
|
||||
PIOS_LED_Off(BLUE);
|
||||
period2 = 0;
|
||||
@ -129,14 +132,14 @@ int main() {
|
||||
period2 = 0;
|
||||
break;
|
||||
default://error
|
||||
period1 = 50;
|
||||
period1 = 5000;
|
||||
sweep_steps1 = 100;
|
||||
period2 = 50;
|
||||
period2 = 5000;
|
||||
sweep_steps2 = 100;
|
||||
}
|
||||
|
||||
if (period1 != 0) {
|
||||
if (LedPWM(period1, sweep_steps1, STOPWATCH_ValueGet(LED_PWM_TIMER)))
|
||||
if (LedPWM(period1, sweep_steps1, stopwatch))
|
||||
PIOS_LED_On(BLUE);
|
||||
else
|
||||
PIOS_LED_Off(BLUE);
|
||||
@ -144,16 +147,16 @@ int main() {
|
||||
PIOS_LED_On(BLUE);
|
||||
|
||||
if (period2 != 0) {
|
||||
if (LedPWM(period2, sweep_steps2, STOPWATCH_ValueGet(LED_PWM_TIMER)))
|
||||
if (LedPWM(period2, sweep_steps2, stopwatch))
|
||||
PIOS_LED_On(BLUE);
|
||||
else
|
||||
PIOS_LED_Off(BLUE);
|
||||
} else
|
||||
PIOS_LED_Off(BLUE);
|
||||
|
||||
if (STOPWATCH_ValueGet(LED_PWM_TIMER) > 100 * 50 * 100)
|
||||
STOPWATCH_Reset(LED_PWM_TIMER);
|
||||
if ((STOPWATCH_ValueGet(LED_PWM_TIMER) > 60000) && (DeviceState
|
||||
if (stopwatch > 50 * 1000 * 1000)
|
||||
stopwatch = 0;
|
||||
if ((stopwatch > 6 * 1000 * 1000) && (DeviceState
|
||||
== BLidle))
|
||||
JumpToApp = TRUE;
|
||||
|
||||
@ -163,7 +166,9 @@ int main() {
|
||||
}
|
||||
|
||||
void jump_to_app() {
|
||||
if (((*(__IO uint32_t*) START_OF_USER_CODE) & 0x2FFE0000) == 0x20000000) { /* Jump to user application */
|
||||
const struct pios_board_info * bdinfo = &pios_board_info_blob;
|
||||
|
||||
if (((*(__IO uint32_t*) bdinfo->fw_base) & 0x2FFE0000) == 0x20000000) { /* Jump to user application */
|
||||
FLASH_Lock();
|
||||
RCC_APB2PeriphResetCmd(0xffffffff, ENABLE);
|
||||
RCC_APB1PeriphResetCmd(0xffffffff, ENABLE);
|
||||
@ -171,10 +176,10 @@ void jump_to_app() {
|
||||
RCC_APB1PeriphResetCmd(0xffffffff, DISABLE);
|
||||
_SetCNTR(0); // clear interrupt mask
|
||||
_SetISTR(0); // clear all requests
|
||||
JumpAddress = *(__IO uint32_t*) (START_OF_USER_CODE + 4);
|
||||
JumpAddress = *(__IO uint32_t*) (bdinfo->fw_base + 4);
|
||||
Jump_To_Application = (pFunction) JumpAddress;
|
||||
/* Initialize user application's Stack Pointer */
|
||||
__set_MSP(*(__IO uint32_t*) START_OF_USER_CODE);
|
||||
__set_MSP(*(__IO uint32_t*) bdinfo->fw_base);
|
||||
Jump_To_Application();
|
||||
} else {
|
||||
DeviceState = failed_jump;
|
||||
@ -182,20 +187,21 @@ void jump_to_app() {
|
||||
}
|
||||
}
|
||||
uint32_t LedPWM(uint32_t pwm_period, uint32_t pwm_sweep_steps, uint32_t count) {
|
||||
uint32_t pwm_duty = ((count / pwm_period) % pwm_sweep_steps)
|
||||
/ (pwm_sweep_steps / pwm_period);
|
||||
if ((count % (2 * pwm_period * pwm_sweep_steps)) > pwm_period
|
||||
* pwm_sweep_steps)
|
||||
pwm_duty = pwm_period - pwm_duty; // negative direction each 50*100 ticks
|
||||
uint32_t curr_step = (count / pwm_period) % pwm_sweep_steps; /* 0 - pwm_sweep_steps */
|
||||
uint32_t pwm_duty = pwm_period * curr_step / pwm_sweep_steps; /* fraction of pwm_period */
|
||||
|
||||
uint32_t curr_sweep = (count / (pwm_period * pwm_sweep_steps)); /* ticks once per full sweep */
|
||||
if (curr_sweep & 1) {
|
||||
pwm_duty = pwm_period - pwm_duty; /* reverse direction in odd sweeps */
|
||||
}
|
||||
return ((count % pwm_period) > pwm_duty) ? 1 : 0;
|
||||
}
|
||||
|
||||
uint8_t processRX() {
|
||||
while (PIOS_COM_ReceiveBufferUsed(PIOS_COM_TELEM_USB) >= 63) {
|
||||
for (int32_t x = 0; x < 63; ++x) {
|
||||
mReceive_Buffer[x] = PIOS_COM_ReceiveBuffer(PIOS_COM_TELEM_USB);
|
||||
if (PIOS_COM_ReceiveBuffer(PIOS_COM_TELEM_USB, mReceive_Buffer, 63, 0) == 63) {
|
||||
processComand(mReceive_Buffer);
|
||||
}
|
||||
processComand(mReceive_Buffer);
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
@ -30,6 +30,7 @@
|
||||
#include "pios.h"
|
||||
#include "op_dfu.h"
|
||||
#include "pios_bl_helper.h"
|
||||
#include <pios_board_info.h>
|
||||
//programmable devices
|
||||
Device devicesTable[10];
|
||||
uint8_t numberOfDevices = 0;
|
||||
@ -382,16 +383,18 @@ void processComand(uint8_t *xReceive_Buffer) {
|
||||
return;
|
||||
}
|
||||
void OPDfuIni(uint8_t discover) {
|
||||
const struct pios_board_info * bdinfo = &pios_board_info_blob;
|
||||
Device dev;
|
||||
|
||||
dev.programmingType = Self_flash;
|
||||
dev.readWriteFlags = (BOARD_READABLE | (BOARD_WRITABLA << 1));
|
||||
dev.startOfUserCode = START_OF_USER_CODE;
|
||||
dev.sizeOfCode = SIZE_OF_CODE;
|
||||
dev.sizeOfDescription = SIZE_OF_DESCRIPTION;
|
||||
dev.BL_Version = BOOTLOADER_VERSION;
|
||||
dev.readWriteFlags = (BOARD_READABLE | (BOARD_WRITABLE << 1));
|
||||
dev.startOfUserCode = bdinfo->fw_base;
|
||||
dev.sizeOfCode = bdinfo->fw_size;
|
||||
dev.sizeOfDescription = bdinfo->desc_size;
|
||||
dev.BL_Version = bdinfo->bl_rev;
|
||||
dev.FW_Crc = CalcFirmCRC();
|
||||
dev.devID = (BOARD_TYPE << 8) | BOARD_REVISION;
|
||||
dev.devType = HW_TYPE;
|
||||
dev.devID = (bdinfo->board_type << 8) | (bdinfo->board_rev);
|
||||
dev.devType = bdinfo->hw_type;
|
||||
numberOfDevices = 1;
|
||||
devicesTable[0] = dev;
|
||||
if (discover) {
|
||||
|
@ -31,10 +31,31 @@
|
||||
|
||||
#include <pios_com_priv.h>
|
||||
|
||||
#define PIOS_COM_TELEM_USB_RX_BUF_LEN 192
|
||||
#define PIOS_COM_TELEM_USB_TX_BUF_LEN 192
|
||||
|
||||
static uint8_t pios_com_telem_usb_rx_buffer[PIOS_COM_TELEM_USB_RX_BUF_LEN];
|
||||
static uint8_t pios_com_telem_usb_tx_buffer[PIOS_COM_TELEM_USB_TX_BUF_LEN];
|
||||
|
||||
#endif /* PIOS_INCLUDE_COM */
|
||||
|
||||
// ***********************************************************************************
|
||||
|
||||
#if defined(PIOS_INCLUDE_USB_HID)
|
||||
#include "pios_usb_hid_priv.h"
|
||||
|
||||
static const struct pios_usb_hid_cfg pios_usb_hid_main_cfg = {
|
||||
.irq = {
|
||||
.init = {
|
||||
.NVIC_IRQChannel = USB_LP_CAN1_RX0_IRQn,
|
||||
.NVIC_IRQChannelPreemptionPriority = PIOS_IRQ_PRIO_LOW,
|
||||
.NVIC_IRQChannelSubPriority = 0,
|
||||
.NVIC_IRQChannelCmd = ENABLE,
|
||||
},
|
||||
},
|
||||
};
|
||||
#endif /* PIOS_INCLUDE_USB_HID */
|
||||
|
||||
extern const struct pios_com_driver pios_usb_com_driver;
|
||||
|
||||
uint32_t pios_com_telem_usb_id;
|
||||
@ -44,7 +65,12 @@ uint32_t pios_com_telem_usb_id;
|
||||
* initializes all the core subsystems on this specific hardware
|
||||
* called from System/openpilot.c
|
||||
*/
|
||||
static bool board_init_complete = false;
|
||||
void PIOS_Board_Init(void) {
|
||||
if (board_init_complete) {
|
||||
return;
|
||||
}
|
||||
|
||||
/* Enable Prefetch Buffer */
|
||||
FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
|
||||
|
||||
@ -58,13 +84,20 @@ void PIOS_Board_Init(void) {
|
||||
PIOS_GPIO_Init();
|
||||
|
||||
#if defined(PIOS_INCLUDE_USB_HID)
|
||||
PIOS_USB_HID_Init(0);
|
||||
uint32_t pios_usb_hid_id;
|
||||
if (PIOS_USB_HID_Init(&pios_usb_hid_id, &pios_usb_hid_main_cfg)) {
|
||||
PIOS_Assert(0);
|
||||
}
|
||||
#if defined(PIOS_INCLUDE_COM)
|
||||
if (PIOS_COM_Init(&pios_com_telem_usb_id, &pios_usb_com_driver, 0)) {
|
||||
PIOS_DEBUG_Assert(0);
|
||||
if (PIOS_COM_Init(&pios_com_telem_usb_id, &pios_usb_com_driver, pios_usb_hid_id,
|
||||
pios_com_telem_usb_rx_buffer, sizeof(pios_com_telem_usb_rx_buffer),
|
||||
pios_com_telem_usb_tx_buffer, sizeof(pios_com_telem_usb_tx_buffer))) {
|
||||
PIOS_Assert(0);
|
||||
}
|
||||
#endif /* PIOS_INCLUDE_COM */
|
||||
#endif /* PIOS_INCLUDE_USB_HID */
|
||||
#endif /* PIOS_INCLUDE_USB_HID */
|
||||
|
||||
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_CRC, ENABLE);//TODO Tirar
|
||||
|
||||
board_init_complete = true;
|
||||
}
|
||||
|
@ -25,6 +25,13 @@
|
||||
WHEREAMI := $(dir $(lastword $(MAKEFILE_LIST)))
|
||||
TOP := $(realpath $(WHEREAMI)/../../../)
|
||||
include $(TOP)/make/firmware-defs.mk
|
||||
include $(TOP)/make/boards/$(BOARD_NAME)/board-info.mk
|
||||
|
||||
# Target file name (without extension).
|
||||
TARGET := bl_$(BOARD_NAME)
|
||||
|
||||
# Directory for output files (lst, obj, dep, elf, sym, map, hex, bin etc.)
|
||||
OUTDIR := $(TOP)/build/$(TARGET)
|
||||
|
||||
# Set developer code and compile options
|
||||
# Set to YES to compile for debugging
|
||||
@ -48,21 +55,6 @@ endif
|
||||
|
||||
FLASH_TOOL = OPENOCD
|
||||
|
||||
# MCU name, submodel and board
|
||||
# - MCU used for compiler-option (-mcpu)
|
||||
# - MODEL used for linker-script name (-T) and passed as define
|
||||
# - BOARD just passed as define (optional)
|
||||
MCU = cortex-m3
|
||||
CHIP = STM32F103RET
|
||||
BOARD = STM3210E_OP
|
||||
MODEL = HD
|
||||
|
||||
# Directory for output files (lst, obj, dep, elf, sym, map, hex, bin etc.)
|
||||
OUTDIR = $(TOP)/build/bl_openpilot
|
||||
|
||||
# Target file name (without extension).
|
||||
TARGET = OpenPilot_BL
|
||||
|
||||
# Paths
|
||||
OPSYSTEM = .
|
||||
OPSYSTEMINC = $(OPSYSTEM)/inc
|
||||
@ -124,6 +116,7 @@ SRC += $(PIOSSTM32F10X)/pios_usb_hid_prop.c
|
||||
SRC += $(PIOSSTM32F10X)/pios_usb_hid_pwr.c
|
||||
|
||||
## PIOS Hardware (Common)
|
||||
SRC += $(PIOSCOMMON)/pios_board_info.c
|
||||
SRC += $(PIOSCOMMON)/pios_com.c
|
||||
SRC += $(PIOSCOMMON)/pios_opahrs_v0.c
|
||||
SRC += $(PIOSCOMMON)/pios_bl_helper.c
|
||||
@ -183,7 +176,7 @@ CPPSRCARM =
|
||||
# Even though the DOS/Win* filesystem matches both .s and .S the same,
|
||||
# it will preserve the spelling of the filenames, and gcc itself does
|
||||
# care about how the name is spelled on its command-line.
|
||||
ASRC = $(PIOSSTM32F10X)/startup_stm32f10x_$(MODEL)_OP.S
|
||||
ASRC = $(PIOSSTM32F10X)/startup_stm32f10x_$(MODEL)$(MODEL_SUFFIX).S
|
||||
|
||||
# List Assembler source files here which must be assembled in ARM-Mode..
|
||||
ASRCARM =
|
||||
@ -262,6 +255,15 @@ ifeq ($(ENABLE_AUX_UART), YES)
|
||||
CDEFS += -DPIOS_ENABLE_AUX_UART
|
||||
endif
|
||||
|
||||
# Provide (only) the bootloader with board-specific defines
|
||||
BLONLY_CDEFS += -DBOARD_TYPE=$(BOARD_TYPE)
|
||||
BLONLY_CDEFS += -DBOARD_REVISION=$(BOARD_REVISION)
|
||||
BLONLY_CDEFS += -DHW_TYPE=$(HW_TYPE)
|
||||
BLONLY_CDEFS += -DBOOTLOADER_VERSION=$(BOOTLOADER_VERSION)
|
||||
BLONLY_CDEFS += -DFW_BANK_BASE=$(FW_BANK_BASE)
|
||||
BLONLY_CDEFS += -DFW_BANK_SIZE=$(FW_BANK_SIZE)
|
||||
BLONLY_CDEFS += -DFW_DESC_SIZE=$(FW_DESC_SIZE)
|
||||
|
||||
# Place project-specific -D and/or -U options for
|
||||
# Assembler with preprocessor here.
|
||||
#ADEFS = -DUSE_IRQ_ASM_WRAPPER
|
||||
@ -299,6 +301,7 @@ endif
|
||||
|
||||
CFLAGS += -mcpu=$(MCU)
|
||||
CFLAGS += $(CDEFS)
|
||||
CFLAGS += $(BLONLY_CDEFS)
|
||||
CFLAGS += $(patsubst %,-I%,$(EXTRAINCDIRS)) -I.
|
||||
|
||||
CFLAGS += -mapcs-frame
|
||||
@ -343,20 +346,8 @@ LDFLAGS += -lc -lgcc
|
||||
LDFLAGS += -T$(LINKERSCRIPTPATH)/link_$(BOARD)_memory.ld
|
||||
LDFLAGS += -T$(LINKERSCRIPTPATH)/link_$(BOARD)_BL_sections.ld
|
||||
|
||||
OOCD_LOADFILE+=$(OUTDIR)/$(TARGET).bin
|
||||
# Program
|
||||
OOCD_CL+=-c "flash write_image erase $(OOCD_LOADFILE) 0x08000000 bin"
|
||||
# Verify
|
||||
OOCD_CL+=-c "verify_image $(OOCD_LOADFILE) 0x08000000 bin"
|
||||
# reset target
|
||||
OOCD_CL+=-c "reset run"
|
||||
# terminate OOCD after programming
|
||||
OOCD_CL+=-c shutdown
|
||||
|
||||
# Define programs and commands.
|
||||
REMOVE = $(REMOVE_CMD) -f
|
||||
###SHELL = sh
|
||||
###COPY = cp
|
||||
|
||||
# List of all source files.
|
||||
ALLSRC = $(ASRCARM) $(ASRC) $(SRCARM) $(SRC) $(CPPSRCARM) $(CPPSRC)
|
||||
@ -396,14 +387,6 @@ ${OUTDIR}/InitMods.c: Makefile
|
||||
@echo ${quote}${foreach MOD, ${MODNAMES}, ${MOD}Initialize();}${quote} >> ${OUTDIR}/InitMods.c
|
||||
@echo ${quote}}${quote} >> ${OUTDIR}/InitMods.c
|
||||
|
||||
# Program the device.
|
||||
ifeq ($(FLASH_TOOL),OPENOCD)
|
||||
# Program the device with Dominic Rath's OPENOCD in "batch-mode", needs cfg and "reset-script".
|
||||
program: $(OUTDIR)/$(TARGET).bin
|
||||
@echo ${quote}Programming with OPENOCD${quote}
|
||||
$(OOCD_EXE) $(OOCD_CL)
|
||||
endif
|
||||
|
||||
# Link: create ELF output file from object files.
|
||||
$(eval $(call LINK_TEMPLATE, $(OUTDIR)/$(TARGET).elf, $(ALLOBJ)))
|
||||
|
||||
@ -433,6 +416,9 @@ $(eval $(call PARTIAL_COMPILE_ARM_TEMPLATE, SRCARM))
|
||||
|
||||
$(OUTDIR)/$(TARGET).bin.o: $(OUTDIR)/$(TARGET).bin
|
||||
|
||||
# Add jtag targets (program and wipe)
|
||||
$(eval $(call JTAG_TEMPLATE,$(OUTDIR)/$(TARGET).bin,$(BL_BANK_BASE),$(BL_BANK_SIZE)))
|
||||
|
||||
.PHONY: elf lss sym hex bin bino
|
||||
elf: $(OUTDIR)/$(TARGET).elf
|
||||
lss: $(OUTDIR)/$(TARGET).lss
|
||||
@ -443,13 +429,21 @@ bino: $(OUTDIR)/$(TARGET).bin.o
|
||||
|
||||
# Display sizes of sections.
|
||||
$(eval $(call SIZE_TEMPLATE, $(OUTDIR)/$(TARGET).elf))
|
||||
.PHONY: size
|
||||
size: $(OUTDIR)/$(TARGET).elf_size
|
||||
|
||||
# Generate Doxygen documents
|
||||
docs:
|
||||
doxygen $(DOXYGENDIR)/doxygen.cfg
|
||||
|
||||
# Install: install binary file with prefix/suffix into install directory
|
||||
install: $(OUTDIR)/$(TARGET).bin
|
||||
ifneq ($(INSTALL_DIR),)
|
||||
@echo $(MSG_INSTALLING) $(call toprel, $<)
|
||||
$(V1) mkdir -p $(INSTALL_DIR)
|
||||
$(V1) $(INSTALL) $< $(INSTALL_DIR)/$(INSTALL_PFX)$(TARGET)$(INSTALL_SFX).bin
|
||||
else
|
||||
$(error INSTALL_DIR must be specified for $@)
|
||||
endif
|
||||
|
||||
# Target: clean project.
|
||||
clean: clean_list
|
||||
|
||||
@ -487,4 +481,4 @@ else
|
||||
endif
|
||||
|
||||
# Listing of phony targets.
|
||||
.PHONY : all build clean clean_list program
|
||||
.PHONY : all build clean clean_list install
|
||||
|
@ -27,6 +27,7 @@
|
||||
*/
|
||||
/* Bootloader Includes */
|
||||
#include <pios.h>
|
||||
#include <pios_board_info.h>
|
||||
#include "pios_opahrs.h"
|
||||
#include "stopwatch.h"
|
||||
#include "op_dfu.h"
|
||||
@ -216,7 +217,9 @@ int main() {
|
||||
}
|
||||
|
||||
void jump_to_app() {
|
||||
if (((*(__IO uint32_t*) START_OF_USER_CODE) & 0x2FFE0000) == 0x20000000) { /* Jump to user application */
|
||||
const struct pios_board_info * bdinfo = &pios_board_info_blob;
|
||||
|
||||
if (((*(__IO uint32_t*) bdinfo->fw_base) & 0x2FFE0000) == 0x20000000) { /* Jump to user application */
|
||||
FLASH_Lock();
|
||||
RCC_APB2PeriphResetCmd(0xffffffff, ENABLE);
|
||||
RCC_APB1PeriphResetCmd(0xffffffff, ENABLE);
|
||||
@ -225,10 +228,10 @@ void jump_to_app() {
|
||||
_SetCNTR(0); // clear interrupt mask
|
||||
_SetISTR(0); // clear all requests
|
||||
|
||||
JumpAddress = *(__IO uint32_t*) (START_OF_USER_CODE + 4);
|
||||
JumpAddress = *(__IO uint32_t*) (bdinfo->fw_base + 4);
|
||||
Jump_To_Application = (pFunction) JumpAddress;
|
||||
/* Initialize user application's Stack Pointer */
|
||||
__set_MSP(*(__IO uint32_t*) START_OF_USER_CODE);
|
||||
__set_MSP(*(__IO uint32_t*) bdinfo->fw_base);
|
||||
Jump_To_Application();
|
||||
} else {
|
||||
DeviceState = failed_jump;
|
||||
@ -247,10 +250,9 @@ uint32_t LedPWM(uint32_t pwm_period, uint32_t pwm_sweep_steps, uint32_t count) {
|
||||
uint8_t processRX() {
|
||||
if (ProgPort == Usb) {
|
||||
while (PIOS_COM_ReceiveBufferUsed(PIOS_COM_TELEM_USB) >= 63) {
|
||||
for (int32_t x = 0; x < 63; ++x) {
|
||||
mReceive_Buffer[x] = PIOS_COM_ReceiveBuffer(PIOS_COM_TELEM_USB);
|
||||
if (PIOS_COM_ReceiveBuffer(PIOS_COM_TELEM_USB, mReceive_Buffer, 63, 0) == 63) {
|
||||
processComand(mReceive_Buffer);
|
||||
}
|
||||
processComand(mReceive_Buffer);
|
||||
}
|
||||
} else if (ProgPort == Serial) {
|
||||
|
||||
@ -276,7 +278,12 @@ void SSP_CallBack(uint8_t *buf, uint16_t len) {
|
||||
}
|
||||
int16_t SSP_SerialRead(void) {
|
||||
if (PIOS_COM_ReceiveBufferUsed(PIOS_COM_TELEM_RF) > 0) {
|
||||
return PIOS_COM_ReceiveBuffer(PIOS_COM_TELEM_RF);
|
||||
uint8_t byte;
|
||||
if (PIOS_COM_ReceiveBuffer(PIOS_COM_TELEM_RF, &byte, 1, 0) == 1) {
|
||||
return byte;
|
||||
} else {
|
||||
return -1;
|
||||
}
|
||||
} else
|
||||
return -1;
|
||||
}
|
||||
|
@ -30,6 +30,7 @@
|
||||
#include "pios.h"
|
||||
#include "op_dfu.h"
|
||||
#include "pios_bl_helper.h"
|
||||
#include <pios_board_info.h>
|
||||
#include "pios_opahrs.h"
|
||||
#include "ssp.h"
|
||||
/* Private typedef -----------------------------------------------------------*/
|
||||
@ -447,16 +448,18 @@ void processComand(uint8_t *xReceive_Buffer) {
|
||||
return;
|
||||
}
|
||||
void OPDfuIni(uint8_t discover) {
|
||||
const struct pios_board_info * bdinfo = &pios_board_info_blob;
|
||||
Device dev;
|
||||
|
||||
dev.programmingType = Self_flash;
|
||||
dev.readWriteFlags = (BOARD_READABLE | (BOARD_WRITABLA << 1));
|
||||
dev.startOfUserCode = START_OF_USER_CODE;
|
||||
dev.sizeOfCode = SIZE_OF_CODE;
|
||||
dev.sizeOfDescription = SIZE_OF_DESCRIPTION;
|
||||
dev.BL_Version = BOOTLOADER_VERSION;
|
||||
dev.readWriteFlags = (BOARD_READABLE | (BOARD_WRITABLE << 1));
|
||||
dev.startOfUserCode = bdinfo->fw_base;
|
||||
dev.sizeOfCode = bdinfo->fw_size;
|
||||
dev.sizeOfDescription = bdinfo->desc_size;
|
||||
dev.BL_Version = bdinfo->bl_rev;
|
||||
dev.FW_Crc = CalcFirmCRC();
|
||||
dev.devID = (BOARD_TYPE << 8) | BOARD_REVISION;
|
||||
dev.devType = HW_TYPE;
|
||||
dev.devID = (bdinfo->board_type << 8) | (bdinfo->board_rev);
|
||||
dev.devType = bdinfo->hw_type;
|
||||
numberOfDevices = 1;
|
||||
devicesTable[0] = dev;
|
||||
if (discover) {
|
||||
|
@ -60,7 +60,6 @@ const struct pios_spi_cfg
|
||||
.ahb_clk = RCC_AHBPeriph_DMA1,
|
||||
|
||||
.irq = {
|
||||
.handler = PIOS_SPI_ahrs_irq_handler,
|
||||
.flags = (DMA1_FLAG_TC4 | DMA1_FLAG_TE4 | DMA1_FLAG_HT4 | DMA1_FLAG_GL4),
|
||||
.init = {
|
||||
.NVIC_IRQChannel = DMA1_Channel4_IRQn,
|
||||
@ -143,9 +142,9 @@ void PIOS_SPI_ahrs_irq_handler(void) {
|
||||
/*
|
||||
* Telemetry USART
|
||||
*/
|
||||
void PIOS_USART_telem_irq_handler(void);
|
||||
void USART2_IRQHandler() __attribute__ ((alias ("PIOS_USART_telem_irq_handler")));
|
||||
const struct pios_usart_cfg pios_usart_telem_cfg = { .regs = USART2, .init = {
|
||||
const struct pios_usart_cfg pios_usart_telem_cfg = {
|
||||
.regs = USART2,
|
||||
.init = {
|
||||
#if defined (PIOS_COM_TELEM_BAUDRATE)
|
||||
.USART_BaudRate = PIOS_COM_TELEM_BAUDRATE,
|
||||
#else
|
||||
@ -157,7 +156,6 @@ const struct pios_usart_cfg pios_usart_telem_cfg = { .regs = USART2, .init = {
|
||||
.USART_HardwareFlowControl = USART_HardwareFlowControl_None,
|
||||
.USART_Mode = USART_Mode_Rx | USART_Mode_Tx,
|
||||
}, .irq = {
|
||||
.handler = PIOS_USART_telem_irq_handler,
|
||||
.init = {
|
||||
.NVIC_IRQChannel = USART2_IRQn,
|
||||
.NVIC_IRQChannelPreemptionPriority = PIOS_IRQ_PRIO_HIGH,
|
||||
@ -180,19 +178,41 @@ const struct pios_usart_cfg pios_usart_telem_cfg = { .regs = USART2, .init = {
|
||||
},
|
||||
}, };
|
||||
|
||||
static uint32_t pios_usart_telem_rf_id;
|
||||
void PIOS_USART_telem_irq_handler(void) {
|
||||
PIOS_USART_IRQ_Handler(pios_usart_telem_rf_id);
|
||||
}
|
||||
|
||||
#endif /* PIOS_INCLUDE_USART */
|
||||
|
||||
#if defined(PIOS_INCLUDE_COM)
|
||||
|
||||
#include "pios_com_priv.h"
|
||||
|
||||
#define PIOS_COM_TELEM_USB_RX_BUF_LEN 192
|
||||
#define PIOS_COM_TELEM_USB_TX_BUF_LEN 192
|
||||
|
||||
static uint8_t pios_com_telem_usb_rx_buffer[PIOS_COM_TELEM_USB_RX_BUF_LEN];
|
||||
static uint8_t pios_com_telem_usb_tx_buffer[PIOS_COM_TELEM_USB_TX_BUF_LEN];
|
||||
|
||||
#define PIOS_COM_TELEM_RF_RX_BUF_LEN 192
|
||||
#define PIOS_COM_TELEM_RF_TX_BUF_LEN 192
|
||||
|
||||
static uint8_t pios_com_telem_rf_rx_buffer[PIOS_COM_TELEM_RF_RX_BUF_LEN];
|
||||
static uint8_t pios_com_telem_rf_tx_buffer[PIOS_COM_TELEM_RF_TX_BUF_LEN];
|
||||
|
||||
#endif /* PIOS_INCLUDE_COM */
|
||||
|
||||
#if defined(PIOS_INCLUDE_USB_HID)
|
||||
#include "pios_usb_hid_priv.h"
|
||||
|
||||
static const struct pios_usb_hid_cfg pios_usb_hid_main_cfg = {
|
||||
.irq = {
|
||||
.init = {
|
||||
.NVIC_IRQChannel = USB_LP_CAN1_RX0_IRQn,
|
||||
.NVIC_IRQChannelPreemptionPriority = PIOS_IRQ_PRIO_LOW,
|
||||
.NVIC_IRQChannelSubPriority = 0,
|
||||
.NVIC_IRQChannelCmd = ENABLE,
|
||||
},
|
||||
},
|
||||
};
|
||||
#endif /* PIOS_INCLUDE_USB_HID */
|
||||
|
||||
extern const struct pios_com_driver pios_usb_com_driver;
|
||||
|
||||
uint32_t pios_com_telem_rf_id;
|
||||
@ -205,7 +225,11 @@ uint32_t pios_com_telem_usb_id;
|
||||
* initializes all the core subsystems on this specific hardware
|
||||
* called from System/openpilot.c
|
||||
*/
|
||||
static bool board_init_complete = false;
|
||||
void PIOS_Board_Init(void) {
|
||||
if (board_init_complete) {
|
||||
return;
|
||||
}
|
||||
|
||||
/* Enable Prefetch Buffer */
|
||||
FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
|
||||
@ -218,11 +242,14 @@ void PIOS_Board_Init(void) {
|
||||
|
||||
/* Initialize the PiOS library */
|
||||
#if defined(PIOS_INCLUDE_COM)
|
||||
uint32_t pios_usart_telem_rf_id;
|
||||
if (PIOS_USART_Init(&pios_usart_telem_rf_id, &pios_usart_telem_cfg)) {
|
||||
PIOS_DEBUG_Assert(0);
|
||||
}
|
||||
if (PIOS_COM_Init(&pios_com_telem_rf_id, &pios_usart_com_driver,
|
||||
pios_usart_telem_rf_id)) {
|
||||
pios_usart_telem_rf_id,
|
||||
pios_com_telem_rf_rx_buffer, sizeof(pios_com_telem_rf_rx_buffer),
|
||||
pios_com_telem_rf_tx_buffer, sizeof(pios_com_telem_rf_tx_buffer))) {
|
||||
PIOS_DEBUG_Assert(0);
|
||||
}
|
||||
#endif /* PIOS_INCLUDE_COM */
|
||||
@ -230,13 +257,16 @@ void PIOS_Board_Init(void) {
|
||||
PIOS_GPIO_Init();
|
||||
|
||||
#if defined(PIOS_INCLUDE_USB_HID)
|
||||
PIOS_USB_HID_Init(0);
|
||||
uint32_t pios_usb_hid_id;
|
||||
PIOS_USB_HID_Init(&pios_usb_hid_id, &pios_usb_hid_main_cfg);
|
||||
#if defined(PIOS_INCLUDE_COM)
|
||||
if (PIOS_COM_Init(&pios_com_telem_usb_id, &pios_usb_com_driver, 0)) {
|
||||
PIOS_DEBUG_Assert(0);
|
||||
if (PIOS_COM_Init(&pios_com_telem_usb_id, &pios_usb_com_driver, pios_usb_hid_id,
|
||||
pios_com_telem_usb_rx_buffer, sizeof(pios_com_telem_usb_rx_buffer),
|
||||
pios_com_telem_usb_tx_buffer, sizeof(pios_com_telem_usb_tx_buffer))) {
|
||||
PIOS_Assert(0);
|
||||
}
|
||||
#endif /* PIOS_INCLUDE_COM */
|
||||
#endif /* PIOS_INCLUDE_USB_HID */
|
||||
#endif /* PIOS_INCLUDE_USB_HID */
|
||||
|
||||
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_CRC, ENABLE);//TODO Tirar
|
||||
|
||||
@ -247,6 +277,8 @@ void PIOS_Board_Init(void) {
|
||||
|
||||
/* Bind the AHRS comms layer to the AHRS SPI link */
|
||||
PIOS_OPAHRS_Attach(pios_spi_ahrs_id);
|
||||
|
||||
board_init_complete = true;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -25,6 +25,13 @@
|
||||
WHEREAMI := $(dir $(lastword $(MAKEFILE_LIST)))
|
||||
TOP := $(realpath $(WHEREAMI)/../../../)
|
||||
include $(TOP)/make/firmware-defs.mk
|
||||
include $(TOP)/make/boards/$(BOARD_NAME)/board-info.mk
|
||||
|
||||
# Target file name (without extension).
|
||||
TARGET := bl_$(BOARD_NAME)
|
||||
|
||||
# Directory for output files (lst, obj, dep, elf, sym, map, hex, bin etc.)
|
||||
OUTDIR := $(TOP)/build/$(TARGET)
|
||||
|
||||
# Set developer code and compile options
|
||||
# Set to YES to compile for debugging
|
||||
@ -48,21 +55,6 @@ endif
|
||||
|
||||
FLASH_TOOL = OPENOCD
|
||||
|
||||
# MCU name, submodel and board
|
||||
# - MCU used for compiler-option (-mcpu)
|
||||
# - MODEL used for linker-script name (-T) and passed as define
|
||||
# - BOARD just passed as define (optional)
|
||||
MCU = cortex-m3
|
||||
CHIP = STM32F103CBT
|
||||
BOARD = STM32103CB_PIPXTREME
|
||||
MODEL = MD
|
||||
|
||||
# Directory for output files (lst, obj, dep, elf, sym, map, hex, bin etc.)
|
||||
OUTDIR = $(TOP)/build/bl_pipxtreme
|
||||
|
||||
# Target file name (without extension).
|
||||
TARGET = PipXtreme_BL
|
||||
|
||||
# Paths
|
||||
OPSYSTEM = .
|
||||
OPSYSTEMINC = $(OPSYSTEM)/inc
|
||||
@ -102,8 +94,6 @@ DOXYGENDIR = ../Doc/Doxygen
|
||||
SRC += $(OPSYSTEM)/main.c
|
||||
SRC += $(OPSYSTEM)/pios_board.c
|
||||
SRC += $(OPSYSTEM)/op_dfu.c
|
||||
SRC += $(FLIGHTLIB)/stopwatch.c
|
||||
|
||||
|
||||
## PIOS Hardware (STM32F10x)
|
||||
SRC += $(PIOSSTM32F10X)/pios_sys.c
|
||||
@ -122,6 +112,7 @@ SRC += $(PIOSSTM32F10X)/pios_usb_hid_prop.c
|
||||
SRC += $(PIOSSTM32F10X)/pios_usb_hid_pwr.c
|
||||
|
||||
## PIOS Hardware (Common)
|
||||
SRC += $(PIOSCOMMON)/pios_board_info.c
|
||||
SRC += $(PIOSCOMMON)/pios_com.c
|
||||
SRC += $(PIOSCOMMON)/pios_bl_helper.c
|
||||
SRC += $(PIOSCOMMON)/pios_iap.c
|
||||
@ -145,7 +136,6 @@ SRC += $(STMSPDSRCDIR)/stm32f10x_pwr.c
|
||||
SRC += $(STMSPDSRCDIR)/stm32f10x_rcc.c
|
||||
SRC += $(STMSPDSRCDIR)/stm32f10x_rtc.c
|
||||
SRC += $(STMSPDSRCDIR)/stm32f10x_spi.c
|
||||
SRC += $(STMSPDSRCDIR)/stm32f10x_tim.c
|
||||
SRC += $(STMSPDSRCDIR)/stm32f10x_usart.c
|
||||
SRC += $(STMSPDSRCDIR)/stm32f10x_dbgmcu.c
|
||||
SRC += $(STMSPDSRCDIR)/misc.c
|
||||
@ -179,7 +169,7 @@ CPPSRCARM =
|
||||
# Even though the DOS/Win* filesystem matches both .s and .S the same,
|
||||
# it will preserve the spelling of the filenames, and gcc itself does
|
||||
# care about how the name is spelled on its command-line.
|
||||
ASRC = $(PIOSSTM32F10X)/startup_stm32f10x_$(MODEL).S
|
||||
ASRC = $(PIOSSTM32F10X)/startup_stm32f10x_$(MODEL)$(MODEL_SUFFIX).S
|
||||
|
||||
# List Assembler source files here which must be assembled in ARM-Mode..
|
||||
ASRCARM =
|
||||
@ -258,6 +248,17 @@ ifeq ($(ENABLE_AUX_UART), YES)
|
||||
CDEFS += -DPIOS_ENABLE_AUX_UART
|
||||
endif
|
||||
|
||||
# Provide (only) the bootloader with board-specific defines
|
||||
BLONLY_CDEFS += -DBOARD_TYPE=$(BOARD_TYPE)
|
||||
BLONLY_CDEFS += -DBOARD_REVISION=$(BOARD_REVISION)
|
||||
BLONLY_CDEFS += -DHW_TYPE=$(HW_TYPE)
|
||||
BLONLY_CDEFS += -DBOOTLOADER_VERSION=$(BOOTLOADER_VERSION)
|
||||
BLONLY_CDEFS += -DFW_BANK_BASE=$(FW_BANK_BASE)
|
||||
BLONLY_CDEFS += -DFW_BANK_SIZE=$(FW_BANK_SIZE)
|
||||
BLONLY_CDEFS += -DFW_DESC_SIZE=$(FW_DESC_SIZE)
|
||||
BLONLY_CDEFS += -DEE_BANK_BASE=$(EE_BANK_BASE)
|
||||
BLONLY_CDEFS += -DEE_BANK_SIZE=$(EE_BANK_SIZE)
|
||||
|
||||
# Place project-specific -D and/or -U options for
|
||||
# Assembler with preprocessor here.
|
||||
#ADEFS = -DUSE_IRQ_ASM_WRAPPER
|
||||
@ -293,8 +294,9 @@ ifeq ($(DEBUG),NO)
|
||||
CFLAGS += -ffunction-sections
|
||||
endif
|
||||
|
||||
CFLAGS += -mcpu=$(MCU) -mthumb
|
||||
CFLAGS += -mcpu=$(MCU)
|
||||
CFLAGS += $(CDEFS)
|
||||
CFLAGS += $(BLONLY_CDEFS)
|
||||
CFLAGS += $(patsubst %,-I%,$(EXTRAINCDIRS)) -I.
|
||||
|
||||
CFLAGS += -mapcs-frame
|
||||
@ -314,7 +316,7 @@ CONLYFLAGS += $(CSTANDARD)
|
||||
# Assembler flags.
|
||||
# -Wa,...: tell GCC to pass this to the assembler.
|
||||
# -ahlns: create listing
|
||||
ASFLAGS = -mcpu=$(MCU) -mthumb -I. -x assembler-with-cpp
|
||||
ASFLAGS = -mcpu=$(MCU) -I. -x assembler-with-cpp
|
||||
ASFLAGS += $(ADEFS)
|
||||
ASFLAGS += -Wa,-adhlns=$(addprefix $(OUTDIR)/, $(notdir $(addsuffix .lst, $(basename $<))))
|
||||
ASFLAGS += $(patsubst %,-I%,$(EXTRAINCDIRS))
|
||||
@ -339,20 +341,8 @@ LDFLAGS += -lc -lgcc
|
||||
LDFLAGS += -T$(LINKERSCRIPTPATH)/link_$(BOARD)_memory.ld
|
||||
LDFLAGS += -T$(LINKERSCRIPTPATH)/link_$(BOARD)_BL_sections.ld
|
||||
|
||||
OOCD_LOADFILE+=$(OUTDIR)/$(TARGET).bin
|
||||
# Program
|
||||
OOCD_CL+=-c "flash write_image erase $(OOCD_LOADFILE) 0x08000000 bin"
|
||||
# Verify
|
||||
OOCD_CL+=-c "verify_image $(OOCD_LOADFILE) 0x08000000 bin"
|
||||
# reset target
|
||||
OOCD_CL+=-c "reset run"
|
||||
# terminate OOCD after programming
|
||||
OOCD_CL+=-c shutdown
|
||||
|
||||
# Define programs and commands.
|
||||
REMOVE = $(REMOVE_CMD) -f
|
||||
###SHELL = sh
|
||||
###COPY = cp
|
||||
|
||||
# List of all source files.
|
||||
ALLSRC = $(ASRCARM) $(ASRC) $(SRCARM) $(SRC) $(CPPSRCARM) $(CPPSRC)
|
||||
@ -392,14 +382,6 @@ ${OUTDIR}/InitMods.c: Makefile
|
||||
@echo ${quote}${foreach MOD, ${MODNAMES}, ${MOD}Initialize();}${quote} >> ${OUTDIR}/InitMods.c
|
||||
@echo ${quote}}${quote} >> ${OUTDIR}/InitMods.c
|
||||
|
||||
# Program the device.
|
||||
ifeq ($(FLASH_TOOL),OPENOCD)
|
||||
# Program the device with Dominic Rath's OPENOCD in "batch-mode", needs cfg and "reset-script".
|
||||
program: $(OUTDIR)/$(TARGET).bin
|
||||
@echo ${quote}Programming with OPENOCD${quote}
|
||||
$(OOCD_EXE) $(OOCD_CL)
|
||||
endif
|
||||
|
||||
# Link: create ELF output file from object files.
|
||||
$(eval $(call LINK_TEMPLATE, $(OUTDIR)/$(TARGET).elf, $(ALLOBJ)))
|
||||
|
||||
@ -429,6 +411,9 @@ $(eval $(call PARTIAL_COMPILE_ARM_TEMPLATE, SRCARM))
|
||||
|
||||
$(OUTDIR)/$(TARGET).bin.o: $(OUTDIR)/$(TARGET).bin
|
||||
|
||||
# Add jtag targets (program and wipe)
|
||||
$(eval $(call JTAG_TEMPLATE,$(OUTDIR)/$(TARGET).bin,$(BL_BANK_BASE),$(BL_BANK_SIZE)))
|
||||
|
||||
.PHONY: elf lss sym hex bin bino
|
||||
elf: $(OUTDIR)/$(TARGET).elf
|
||||
lss: $(OUTDIR)/$(TARGET).lss
|
||||
@ -439,13 +424,21 @@ bino: $(OUTDIR)/$(TARGET).bin.o
|
||||
|
||||
# Display sizes of sections.
|
||||
$(eval $(call SIZE_TEMPLATE, $(OUTDIR)/$(TARGET).elf))
|
||||
.PHONY: size
|
||||
size: $(OUTDIR)/$(TARGET).elf_size
|
||||
|
||||
# Generate Doxygen documents
|
||||
docs:
|
||||
doxygen $(DOXYGENDIR)/doxygen.cfg
|
||||
|
||||
# Install: install binary file with prefix/suffix into install directory
|
||||
install: $(OUTDIR)/$(TARGET).bin
|
||||
ifneq ($(INSTALL_DIR),)
|
||||
@echo $(MSG_INSTALLING) $(call toprel, $<)
|
||||
$(V1) mkdir -p $(INSTALL_DIR)
|
||||
$(V1) $(INSTALL) $< $(INSTALL_DIR)/$(INSTALL_PFX)$(TARGET)$(INSTALL_SFX).bin
|
||||
else
|
||||
$(error INSTALL_DIR must be specified for $@)
|
||||
endif
|
||||
|
||||
# Target: clean project.
|
||||
clean: clean_list
|
||||
|
||||
@ -483,5 +476,4 @@ else
|
||||
endif
|
||||
|
||||
# Listing of phony targets.
|
||||
.PHONY : all build clean clean_list program
|
||||
|
||||
.PHONY : all build clean clean_list install
|
||||
|
@ -27,7 +27,7 @@
|
||||
*/
|
||||
/* Bootloader Includes */
|
||||
#include <pios.h>
|
||||
#include "stopwatch.h"
|
||||
#include <pios_board_info.h>
|
||||
#include "op_dfu.h"
|
||||
#include "usb_lib.h"
|
||||
#include "pios_iap.h"
|
||||
@ -46,9 +46,9 @@ pFunction Jump_To_Application;
|
||||
uint32_t JumpAddress;
|
||||
|
||||
/// LEDs PWM
|
||||
uint32_t period1 = 50; // *100 uS -> 5 mS
|
||||
uint32_t period1 = 5000; // 5 mS
|
||||
uint32_t sweep_steps1 = 100; // * 5 mS -> 500 mS
|
||||
uint32_t period2 = 50; // *100 uS -> 5 mS
|
||||
uint32_t period2 = 5000; // 5 mS
|
||||
uint32_t sweep_steps2 = 100; // * 5 mS -> 500 mS
|
||||
|
||||
|
||||
@ -70,7 +70,6 @@ void jump_to_app();
|
||||
|
||||
#define BLUE LED1
|
||||
#define RED LED4
|
||||
#define LED_PWM_TIMER TIM3
|
||||
int main() {
|
||||
/* NOTE: Do NOT modify the following start-up sequence */
|
||||
/* Any new initialization functions should be added in OpenPilotInit() */
|
||||
@ -97,35 +96,37 @@ int main() {
|
||||
DeviceState = DFUidle;
|
||||
else
|
||||
DeviceState = BLidle;
|
||||
STOPWATCH_Init(100, LED_PWM_TIMER);
|
||||
} else
|
||||
JumpToApp = TRUE;
|
||||
|
||||
STOPWATCH_Reset(LED_PWM_TIMER);
|
||||
|
||||
uint32_t stopwatch = 0;
|
||||
uint32_t prev_ticks = PIOS_DELAY_GetuS();
|
||||
while (TRUE) {
|
||||
/* Update the stopwatch */
|
||||
uint32_t elapsed_ticks = PIOS_DELAY_GetuSSince(prev_ticks);
|
||||
prev_ticks += elapsed_ticks;
|
||||
stopwatch += elapsed_ticks;
|
||||
|
||||
if (JumpToApp == TRUE)
|
||||
jump_to_app();
|
||||
//pwm_period = 50; // *100 uS -> 5 mS
|
||||
//pwm_sweep_steps =100; // * 5 mS -> 500 mS
|
||||
|
||||
switch (DeviceState) {
|
||||
case Last_operation_Success:
|
||||
case uploadingStarting:
|
||||
case DFUidle:
|
||||
period1 = 50;
|
||||
period1 = 5000;
|
||||
sweep_steps1 = 100;
|
||||
PIOS_LED_Off(RED);
|
||||
period2 = 0;
|
||||
break;
|
||||
case uploading:
|
||||
period1 = 50;
|
||||
period1 = 5000;
|
||||
sweep_steps1 = 100;
|
||||
period2 = 25;
|
||||
period2 = 2500;
|
||||
sweep_steps2 = 50;
|
||||
break;
|
||||
case downloading:
|
||||
period1 = 25;
|
||||
period1 = 2500;
|
||||
sweep_steps1 = 50;
|
||||
PIOS_LED_Off(RED);
|
||||
period2 = 0;
|
||||
@ -136,14 +137,14 @@ int main() {
|
||||
period2 = 0;
|
||||
break;
|
||||
default://error
|
||||
period1 = 50;
|
||||
period1 = 5000;
|
||||
sweep_steps1 = 100;
|
||||
period2 = 50;
|
||||
period2 = 5000;
|
||||
sweep_steps2 = 100;
|
||||
}
|
||||
|
||||
if (period1 != 0) {
|
||||
if (LedPWM(period1, sweep_steps1, STOPWATCH_ValueGet(LED_PWM_TIMER)))
|
||||
if (LedPWM(period1, sweep_steps1, stopwatch))
|
||||
PIOS_LED_On(BLUE);
|
||||
else
|
||||
PIOS_LED_Off(BLUE);
|
||||
@ -151,16 +152,16 @@ int main() {
|
||||
PIOS_LED_On(BLUE);
|
||||
|
||||
if (period2 != 0) {
|
||||
if (LedPWM(period2, sweep_steps2, STOPWATCH_ValueGet(LED_PWM_TIMER)))
|
||||
if (LedPWM(period2, sweep_steps2, stopwatch))
|
||||
PIOS_LED_On(RED);
|
||||
else
|
||||
PIOS_LED_Off(RED);
|
||||
} else
|
||||
PIOS_LED_Off(RED);
|
||||
|
||||
if (STOPWATCH_ValueGet(LED_PWM_TIMER) > 100 * 50 * 100)
|
||||
STOPWATCH_Reset(LED_PWM_TIMER);
|
||||
if ((STOPWATCH_ValueGet(LED_PWM_TIMER) > 60000) && (DeviceState
|
||||
if (stopwatch > 50 * 1000 * 1000)
|
||||
stopwatch = 0;
|
||||
if ((stopwatch > 6 * 1000 * 1000) && (DeviceState
|
||||
== BLidle))
|
||||
JumpToApp = TRUE;
|
||||
|
||||
@ -170,7 +171,9 @@ int main() {
|
||||
}
|
||||
|
||||
void jump_to_app() {
|
||||
if (((*(__IO uint32_t*) START_OF_USER_CODE) & 0x2FFE0000) == 0x20000000) { /* Jump to user application */
|
||||
const struct pios_board_info * bdinfo = &pios_board_info_blob;
|
||||
|
||||
if (((*(__IO uint32_t*) bdinfo->fw_base) & 0x2FFE0000) == 0x20000000) { /* Jump to user application */
|
||||
FLASH_Lock();
|
||||
RCC_APB2PeriphResetCmd(0xffffffff, ENABLE);
|
||||
RCC_APB1PeriphResetCmd(0xffffffff, ENABLE);
|
||||
@ -179,10 +182,10 @@ void jump_to_app() {
|
||||
_SetCNTR(0); // clear interrupt mask
|
||||
_SetISTR(0); // clear all requests
|
||||
|
||||
JumpAddress = *(__IO uint32_t*) (START_OF_USER_CODE + 4);
|
||||
JumpAddress = *(__IO uint32_t*) (bdinfo->fw_base + 4);
|
||||
Jump_To_Application = (pFunction) JumpAddress;
|
||||
/* Initialize user application's Stack Pointer */
|
||||
__set_MSP(*(__IO uint32_t*) START_OF_USER_CODE);
|
||||
__set_MSP(*(__IO uint32_t*) bdinfo->fw_base);
|
||||
Jump_To_Application();
|
||||
} else {
|
||||
DeviceState = failed_jump;
|
||||
@ -190,20 +193,21 @@ void jump_to_app() {
|
||||
}
|
||||
}
|
||||
uint32_t LedPWM(uint32_t pwm_period, uint32_t pwm_sweep_steps, uint32_t count) {
|
||||
uint32_t pwm_duty = ((count / pwm_period) % pwm_sweep_steps)
|
||||
/ (pwm_sweep_steps / pwm_period);
|
||||
if ((count % (2 * pwm_period * pwm_sweep_steps)) > pwm_period
|
||||
* pwm_sweep_steps)
|
||||
pwm_duty = pwm_period - pwm_duty; // negative direction each 50*100 ticks
|
||||
uint32_t curr_step = (count / pwm_period) % pwm_sweep_steps; /* 0 - pwm_sweep_steps */
|
||||
uint32_t pwm_duty = pwm_period * curr_step / pwm_sweep_steps; /* fraction of pwm_period */
|
||||
|
||||
uint32_t curr_sweep = (count / (pwm_period * pwm_sweep_steps)); /* ticks once per full sweep */
|
||||
if (curr_sweep & 1) {
|
||||
pwm_duty = pwm_period - pwm_duty; /* reverse direction in odd sweeps */
|
||||
}
|
||||
return ((count % pwm_period) > pwm_duty) ? 1 : 0;
|
||||
}
|
||||
|
||||
uint8_t processRX() {
|
||||
while (PIOS_COM_ReceiveBufferUsed(PIOS_COM_TELEM_USB) >= 63) {
|
||||
for (int32_t x = 0; x < 63; ++x) {
|
||||
mReceive_Buffer[x] = PIOS_COM_ReceiveBuffer(PIOS_COM_TELEM_USB);
|
||||
if (PIOS_COM_ReceiveBuffer(PIOS_COM_TELEM_USB, mReceive_Buffer, 63, 0) == 63) {
|
||||
processComand(mReceive_Buffer);
|
||||
}
|
||||
processComand(mReceive_Buffer);
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
@ -30,6 +30,7 @@
|
||||
#include "pios.h"
|
||||
#include "op_dfu.h"
|
||||
#include "pios_bl_helper.h"
|
||||
#include <pios_board_info.h>
|
||||
/* Private typedef -----------------------------------------------------------*/
|
||||
/* Private define ------------------------------------------------------------*/
|
||||
/* Private macro -------------------------------------------------------------*/
|
||||
@ -414,16 +415,18 @@ void processComand(uint8_t *xReceive_Buffer) {
|
||||
return;
|
||||
}
|
||||
void OPDfuIni(uint8_t discover) {
|
||||
const struct pios_board_info * bdinfo = &pios_board_info_blob;
|
||||
Device dev;
|
||||
|
||||
dev.programmingType = Self_flash;
|
||||
dev.readWriteFlags = (BOARD_READABLE | (BOARD_WRITABLA << 1));
|
||||
dev.startOfUserCode = START_OF_USER_CODE;
|
||||
dev.sizeOfCode = SIZE_OF_CODE;
|
||||
dev.sizeOfDescription = SIZE_OF_DESCRIPTION;
|
||||
dev.BL_Version = BOOTLOADER_VERSION;
|
||||
dev.readWriteFlags = (BOARD_READABLE | (BOARD_WRITABLE << 1));
|
||||
dev.startOfUserCode = bdinfo->fw_base;
|
||||
dev.sizeOfCode = bdinfo->fw_size;
|
||||
dev.sizeOfDescription = bdinfo->desc_size;
|
||||
dev.BL_Version = bdinfo->bl_rev;
|
||||
dev.FW_Crc = CalcFirmCRC();
|
||||
dev.devID = (BOARD_TYPE << 8) | BOARD_REVISION;
|
||||
dev.devType = HW_TYPE;
|
||||
dev.devID = (bdinfo->board_type << 8) | (bdinfo->board_rev);
|
||||
dev.devType = bdinfo->hw_type;
|
||||
numberOfDevices = 1;
|
||||
devicesTable[0] = dev;
|
||||
if (discover) {
|
||||
|
@ -31,10 +31,31 @@
|
||||
|
||||
#include <pios_com_priv.h>
|
||||
|
||||
#define PIOS_COM_TELEM_USB_RX_BUF_LEN 192
|
||||
#define PIOS_COM_TELEM_USB_TX_BUF_LEN 192
|
||||
|
||||
static uint8_t pios_com_telem_usb_rx_buffer[PIOS_COM_TELEM_USB_RX_BUF_LEN];
|
||||
static uint8_t pios_com_telem_usb_tx_buffer[PIOS_COM_TELEM_USB_TX_BUF_LEN];
|
||||
|
||||
#endif /* PIOS_INCLUDE_COM */
|
||||
|
||||
// ***********************************************************************************
|
||||
|
||||
#if defined(PIOS_INCLUDE_USB_HID)
|
||||
#include "pios_usb_hid_priv.h"
|
||||
|
||||
static const struct pios_usb_hid_cfg pios_usb_hid_main_cfg = {
|
||||
.irq = {
|
||||
.init = {
|
||||
.NVIC_IRQChannel = USB_LP_CAN1_RX0_IRQn,
|
||||
.NVIC_IRQChannelPreemptionPriority = PIOS_IRQ_PRIO_LOW,
|
||||
.NVIC_IRQChannelSubPriority = 0,
|
||||
.NVIC_IRQChannelCmd = ENABLE,
|
||||
},
|
||||
},
|
||||
};
|
||||
#endif /* PIOS_INCLUDE_USB_HID */
|
||||
|
||||
extern const struct pios_com_driver pios_usb_com_driver;
|
||||
|
||||
uint32_t pios_com_telem_usb_id;
|
||||
@ -44,7 +65,12 @@ uint32_t pios_com_telem_usb_id;
|
||||
* initializes all the core subsystems on this specific hardware
|
||||
* called from System/openpilot.c
|
||||
*/
|
||||
static bool board_init_complete = false;
|
||||
void PIOS_Board_Init(void) {
|
||||
if (board_init_complete) {
|
||||
return;
|
||||
}
|
||||
|
||||
/* Enable Prefetch Buffer */
|
||||
FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
|
||||
|
||||
@ -58,13 +84,18 @@ void PIOS_Board_Init(void) {
|
||||
PIOS_GPIO_Init();
|
||||
|
||||
#if defined(PIOS_INCLUDE_USB_HID)
|
||||
PIOS_USB_HID_Init(0);
|
||||
uint32_t pios_usb_hid_id;
|
||||
PIOS_USB_HID_Init(&pios_usb_hid_id, &pios_usb_hid_main_cfg);
|
||||
#if defined(PIOS_INCLUDE_COM)
|
||||
if (PIOS_COM_Init(&pios_com_telem_usb_id, &pios_usb_com_driver, 0)) {
|
||||
PIOS_DEBUG_Assert(0);
|
||||
if (PIOS_COM_Init(&pios_com_telem_usb_id, &pios_usb_com_driver, pios_usb_hid_id,
|
||||
pios_com_telem_usb_rx_buffer, sizeof(pios_com_telem_usb_rx_buffer),
|
||||
pios_com_telem_usb_tx_buffer, sizeof(pios_com_telem_usb_tx_buffer))) {
|
||||
PIOS_Assert(0);
|
||||
}
|
||||
#endif /* PIOS_INCLUDE_COM */
|
||||
#endif /* PIOS_INCLUDE_USB_HID */
|
||||
#endif /* PIOS_INCLUDE_USB_HID */
|
||||
|
||||
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_CRC, ENABLE);//TODO Tirar
|
||||
|
||||
board_init_complete = true;
|
||||
}
|
||||
|
@ -25,11 +25,21 @@
|
||||
WHEREAMI := $(dir $(lastword $(MAKEFILE_LIST)))
|
||||
TOP := $(realpath $(WHEREAMI)/../../)
|
||||
include $(TOP)/make/firmware-defs.mk
|
||||
include $(TOP)/make/boards/$(BOARD_NAME)/board-info.mk
|
||||
|
||||
# Target file name (without extension).
|
||||
TARGET := fw_$(BOARD_NAME)
|
||||
|
||||
# Directory for output files (lst, obj, dep, elf, sym, map, hex, bin etc.)
|
||||
OUTDIR := $(TOP)/build/$(TARGET)
|
||||
|
||||
# Set developer code and compile options
|
||||
# Set to YES to compile for debugging
|
||||
DEBUG ?= NO
|
||||
|
||||
# Include objects that are just nice information to show
|
||||
DIAGNOSTICS ?= NO
|
||||
|
||||
# Set to YES to build a FW version that will erase all flash memory
|
||||
ERASE_FLASH ?= NO
|
||||
# Set to YES to use the Servo output pins for debugging via scope or logic analyser
|
||||
@ -38,7 +48,7 @@ ENABLE_DEBUG_PINS ?= NO
|
||||
# Set to Yes to enable the AUX UART which is mapped on the S1 (Tx) and S2 (Rx) servo outputs
|
||||
ENABLE_AUX_UART ?= NO
|
||||
|
||||
USE_SPEKTRUM ?= NO
|
||||
USE_GPS ?= NO
|
||||
|
||||
USE_I2C ?= NO
|
||||
|
||||
@ -55,22 +65,9 @@ endif
|
||||
FLASH_TOOL = OPENOCD
|
||||
|
||||
# List of modules to include
|
||||
MODULES = Telemetry Attitude Stabilization Actuator ManualControl FirmwareIAP
|
||||
|
||||
# MCU name, submodel and board
|
||||
# - MCU used for compiler-option (-mcpu)
|
||||
# - MODEL used for linker-script name (-T) and passed as define
|
||||
# - BOARD just passed as define (optional)
|
||||
MCU = cortex-m3
|
||||
CHIP = STM32F103CBT
|
||||
BOARD = STM32103CB_CC_Rev1
|
||||
MODEL = MD
|
||||
|
||||
# Directory for output files (lst, obj, dep, elf, sym, map, hex, bin etc.)
|
||||
OUTDIR = $(TOP)/build/coptercontrol
|
||||
|
||||
# Target file name (without extension).
|
||||
TARGET = CopterControl
|
||||
MODULES = Attitude Stabilization Actuator ManualControl FirmwareIAP CameraStab
|
||||
# Telemetry must be last to grab the optional modules
|
||||
MODULES += Telemetry
|
||||
|
||||
# Paths
|
||||
OPSYSTEM = ./System
|
||||
@ -121,12 +118,9 @@ OPUAVSYNTHDIR = $(OUTDIR)/../uavobject-synthetics/flight
|
||||
# List C source files here. (C dependencies are automatically generated.)
|
||||
# use file-extension c for "c-only"-files
|
||||
|
||||
MODNAMES = $(notdir ${MODULES})
|
||||
|
||||
ifndef TESTAPP
|
||||
## MODULES
|
||||
SRC += ${foreach MOD, ${MODULES}, ${wildcard ${OPMODULEDIR}/${MOD}/*.c}}
|
||||
SRC += ${OUTDIR}/InitMods.c
|
||||
## OPENPILOT CORE:
|
||||
SRC += ${OPMODULEDIR}/System/systemmod.c
|
||||
SRC += $(OPSYSTEM)/coptercontrol.c
|
||||
@ -136,7 +130,6 @@ SRC += $(OPSYSTEM)/taskmonitor.c
|
||||
SRC += $(OPUAVTALK)/uavtalk.c
|
||||
SRC += $(OPUAVOBJ)/uavobjectmanager.c
|
||||
SRC += $(OPUAVOBJ)/eventdispatcher.c
|
||||
SRC += $(OPUAVOBJ)/uavobjectsinit_linker.c
|
||||
SRC += $(OPSYSTEM)/pios_usb_hid_desc.c
|
||||
else
|
||||
## TESTCODE
|
||||
@ -148,6 +141,7 @@ endif
|
||||
|
||||
## UAVOBJECTS
|
||||
ifndef TESTAPP
|
||||
SRC += $(OPUAVSYNTHDIR)/accessorydesired.c
|
||||
SRC += $(OPUAVSYNTHDIR)/objectpersistence.c
|
||||
SRC += $(OPUAVSYNTHDIR)/gcstelemetrystats.c
|
||||
SRC += $(OPUAVSYNTHDIR)/flighttelemetrystats.c
|
||||
@ -163,20 +157,21 @@ SRC += $(OPUAVSYNTHDIR)/actuatorsettings.c
|
||||
SRC += $(OPUAVSYNTHDIR)/attituderaw.c
|
||||
SRC += $(OPUAVSYNTHDIR)/attitudeactual.c
|
||||
SRC += $(OPUAVSYNTHDIR)/manualcontrolcommand.c
|
||||
SRC += $(OPUAVSYNTHDIR)/taskinfo.c
|
||||
SRC += $(OPUAVSYNTHDIR)/i2cstats.c
|
||||
SRC += $(OPUAVSYNTHDIR)/watchdogstatus.c
|
||||
SRC += $(OPUAVSYNTHDIR)/telemetrysettings.c
|
||||
SRC += $(OPUAVSYNTHDIR)/ratedesired.c
|
||||
SRC += $(OPUAVSYNTHDIR)/manualcontrolsettings.c
|
||||
SRC += $(OPUAVSYNTHDIR)/mixersettings.c
|
||||
SRC += $(OPUAVSYNTHDIR)/mixerstatus.c
|
||||
SRC += $(OPUAVSYNTHDIR)/firmwareiapobj.c
|
||||
SRC += $(OPUAVSYNTHDIR)/attitudesettings.c
|
||||
#${wildcard ${OBJ}/$(shell echo $(VAR) | tr A-Z a-z)/*.c}
|
||||
#SRC += ${foreach OBJ, ${UAVOBJECTS}, $(UAVOBJECTS)/$(OBJ).c}
|
||||
# Cant use until i can automatically generate list of UAVObjects
|
||||
#SRC += ${OUTDIR}/InitObjects.c
|
||||
SRC += $(OPUAVSYNTHDIR)/camerastabsettings.c
|
||||
SRC += $(OPUAVSYNTHDIR)/cameradesired.c
|
||||
SRC += $(OPUAVSYNTHDIR)/hwsettings.c
|
||||
|
||||
SRC += $(OPUAVSYNTHDIR)/taskinfo.c
|
||||
SRC += $(OPUAVSYNTHDIR)/mixerstatus.c
|
||||
SRC += $(OPUAVSYNTHDIR)/ratedesired.c
|
||||
|
||||
endif
|
||||
|
||||
## PIOS Hardware (STM32F10x)
|
||||
@ -192,9 +187,11 @@ SRC += $(PIOSSTM32F10X)/pios_spi.c
|
||||
SRC += $(PIOSSTM32F10X)/pios_ppm.c
|
||||
SRC += $(PIOSSTM32F10X)/pios_pwm.c
|
||||
SRC += $(PIOSSTM32F10X)/pios_spektrum.c
|
||||
SRC += $(PIOSSTM32F10X)/pios_sbus.c
|
||||
SRC += $(PIOSSTM32F10X)/pios_debug.c
|
||||
SRC += $(PIOSSTM32F10X)/pios_gpio.c
|
||||
SRC += $(PIOSSTM32F10X)/pios_exti.c
|
||||
SRC += $(PIOSSTM32F10X)/pios_rtc.c
|
||||
SRC += $(PIOSSTM32F10X)/pios_wdg.c
|
||||
|
||||
|
||||
@ -205,12 +202,15 @@ SRC += $(PIOSSTM32F10X)/pios_usb_hid_prop.c
|
||||
SRC += $(PIOSSTM32F10X)/pios_usb_hid_pwr.c
|
||||
|
||||
## PIOS Hardware (Common)
|
||||
SRC += $(PIOSCOMMON)/pios_crc.c
|
||||
SRC += $(PIOSCOMMON)/pios_flashfs_objlist.c
|
||||
SRC += $(PIOSCOMMON)/pios_flash_w25x.c
|
||||
SRC += $(PIOSCOMMON)/pios_adxl345.c
|
||||
SRC += $(PIOSCOMMON)/pios_com.c
|
||||
SRC += $(PIOSCOMMON)/pios_i2c_esc.c
|
||||
SRC += $(PIOSCOMMON)/pios_iap.c
|
||||
SRC += $(PIOSCOMMON)/pios_bl_helper.c
|
||||
SRC += $(PIOSCOMMON)/pios_rcvr.c
|
||||
SRC += $(PIOSCOMMON)/printf-stdarg.c
|
||||
## Libraries for flight calculations
|
||||
SRC += $(FLIGHTLIB)/fifo_buffer.c
|
||||
@ -298,7 +298,7 @@ CPPSRCARM =
|
||||
# Even though the DOS/Win* filesystem matches both .s and .S the same,
|
||||
# it will preserve the spelling of the filenames, and gcc itself does
|
||||
# care about how the name is spelled on its command-line.
|
||||
ASRC = $(PIOSSTM32F10X)/startup_stm32f10x_$(MODEL)_CC.S
|
||||
ASRC = $(PIOSSTM32F10X)/startup_stm32f10x_$(MODEL)$(MODEL_SUFFIX).S
|
||||
|
||||
# List Assembler source files here which must be assembled in ARM-Mode..
|
||||
ASRCARM =
|
||||
@ -380,19 +380,18 @@ endif
|
||||
ifeq ($(ENABLE_AUX_UART), YES)
|
||||
CDEFS += -DPIOS_ENABLE_AUX_UART
|
||||
endif
|
||||
CDEFS += -DUSE_BOOTLOADER
|
||||
ifeq ($(ERASE_FLASH), YES)
|
||||
CDEFS += -DERASE_FLASH
|
||||
endif
|
||||
ifeq ($(USE_SPEKTRUM), YES)
|
||||
CDEFS += -DUSE_SPEKTRUM
|
||||
|
||||
ifneq ($(USE_GPS), NO)
|
||||
CDEFS += -DUSE_GPS
|
||||
endif
|
||||
|
||||
ifeq ($(USE_I2C), YES)
|
||||
CDEFS += -DUSE_I2C
|
||||
endif
|
||||
|
||||
|
||||
# Place project-specific -D and/or -U options for
|
||||
# Assembler with preprocessor here.
|
||||
#ADEFS = -DUSE_IRQ_ASM_WRAPPER
|
||||
@ -419,9 +418,14 @@ CSTANDARD = -std=gnu99
|
||||
# Flags for C and C++ (arm-elf-gcc/arm-elf-g++)
|
||||
|
||||
ifeq ($(DEBUG),YES)
|
||||
CFLAGS = -g$(DEBUGF) -DDEBUG
|
||||
CFLAGS = -DDEBUG
|
||||
endif
|
||||
|
||||
ifeq ($(DIAGNOSTICS),YES)
|
||||
CFLAGS = -DDIAGNOSTICS
|
||||
endif
|
||||
|
||||
CFLAGS += -g$(DEBUGF)
|
||||
CFLAGS += -O$(OPT)
|
||||
CFLAGS += -mcpu=$(MCU)
|
||||
CFLAGS += $(CDEFS)
|
||||
@ -473,21 +477,9 @@ LDFLAGS += -lc -lgcc
|
||||
LDFLAGS += -T$(LINKERSCRIPTPATH)/link_$(BOARD)_memory.ld
|
||||
LDFLAGS += -T$(LINKERSCRIPTPATH)/link_$(BOARD)_sections.ld
|
||||
|
||||
OOCD_LOADFILE+=$(OUTDIR)/$(TARGET).bin
|
||||
# Program
|
||||
OOCD_CL+=-c "flash write_image erase $(OOCD_LOADFILE) 0x08003000 bin"
|
||||
# Verify
|
||||
OOCD_CL+=-c "verify_image $(OOCD_LOADFILE) 0x08003000 bin"
|
||||
# reset target
|
||||
OOCD_CL+=-c "reset run"
|
||||
# terminate OOCD after programming
|
||||
OOCD_CL+=-c shutdown
|
||||
|
||||
# Define programs and commands.
|
||||
REMOVE = $(REMOVE_CMD) -f
|
||||
PYTHON = python
|
||||
###SHELL = sh
|
||||
###COPY = cp
|
||||
|
||||
# List of all source files.
|
||||
ALLSRC = $(ASRCARM) $(ASRC) $(SRCARM) $(SRC) $(CPPSRCARM) $(CPPSRC)
|
||||
@ -503,7 +495,7 @@ LSTFILES = $(addprefix $(OUTDIR)/, $(addsuffix .lst, $(ALLSRCBASE)))
|
||||
DEPFILES = $(addprefix $(OUTDIR)/dep/, $(addsuffix .o.d, $(ALLSRCBASE)))
|
||||
|
||||
# Default target.
|
||||
all: gencode build
|
||||
all: build
|
||||
|
||||
ifeq ($(LOADFORMAT),ihex)
|
||||
build: elf hex lss sym
|
||||
@ -519,18 +511,6 @@ endif
|
||||
endif
|
||||
endif
|
||||
|
||||
# Generate intermediate code for objects
|
||||
gencode: ${OUTDIR}/InitMods.c
|
||||
|
||||
# Generate code for module initialization
|
||||
${OUTDIR}/InitMods.c: Makefile
|
||||
@echo $(MSG_MODINIT) $(call toprel, $@)
|
||||
@echo ${quote}// Autogenerated file${quote} > ${OUTDIR}/InitMods.c
|
||||
@echo ${quote}${foreach MOD, ${MODNAMES}, extern unsigned int ${MOD}Initialize(void);}${quote} >> ${OUTDIR}/InitMods.c
|
||||
@echo ${quote}void InitModules() {${quote} >> ${OUTDIR}/InitMods.c
|
||||
@echo ${quote}${foreach MOD, ${MODNAMES}, ${MOD}Initialize();}${quote} >> ${OUTDIR}/InitMods.c
|
||||
@echo ${quote}}${quote} >> ${OUTDIR}/InitMods.c
|
||||
|
||||
# Generate code for PyMite
|
||||
#$(OUTDIR)/pmlib_img.c $(OUTDIR)/pmlib_nat.c $(OUTDIR)/pmlibusr_img.c $(OUTDIR)/pmlibusr_nat.c $(OUTDIR)/pmfeatures.h: $(wildcard $(PYMITELIB)/*.py) $(wildcard $(PYMITEPLAT)/*.py) $(wildcard $(FLIGHTPLANLIB)/*.py) $(wildcard $(FLIGHTPLANS)/*.py)
|
||||
# @echo $(MSG_PYMITEINIT) $(call toprel, $@)
|
||||
@ -538,13 +518,6 @@ ${OUTDIR}/InitMods.c: Makefile
|
||||
# @$(PYTHON) $(PYMITETOOLS)/pmGenPmFeatures.py $(PYMITEPLAT)/pmfeatures.py > $(OUTDIR)/pmfeatures.h
|
||||
# @$(PYTHON) $(PYMITETOOLS)/pmImgCreator.py -f $(PYMITEPLAT)/pmfeatures.py -c -u -o $(OUTDIR)/pmlibusr_img.c --native-file=$(OUTDIR)/pmlibusr_nat.c $(FLIGHTPLANS)/test.py
|
||||
|
||||
ifeq ($(FLASH_TOOL),OPENOCD)
|
||||
# Program the device with Dominic Rath's OPENOCD in "batch-mode", needs cfg and "reset-script".
|
||||
program: $(OUTDIR)/$(TARGET).bin
|
||||
@echo ${quote}Programming with OPENOCD${quote}
|
||||
$(OOCD_EXE) $(OOCD_CL)
|
||||
endif
|
||||
|
||||
# Link: create ELF output file from object files.
|
||||
$(eval $(call LINK_TEMPLATE, $(OUTDIR)/$(TARGET).elf, $(ALLOBJ)))
|
||||
|
||||
@ -574,23 +547,37 @@ $(eval $(call PARTIAL_COMPILE_ARM_TEMPLATE, SRCARM))
|
||||
|
||||
$(OUTDIR)/$(TARGET).bin.o: $(OUTDIR)/$(TARGET).bin
|
||||
|
||||
.PHONY: elf lss sym hex bin bino
|
||||
$(eval $(call OPFW_TEMPLATE,$(OUTDIR)/$(TARGET).bin,$(BOARD_TYPE),$(BOARD_REVISION)))
|
||||
|
||||
# Add jtag targets (program and wipe)
|
||||
$(eval $(call JTAG_TEMPLATE,$(OUTDIR)/$(TARGET).bin,$(FW_BANK_BASE),$(FW_BANK_SIZE)))
|
||||
|
||||
.PHONY: elf lss sym hex bin bino opfw
|
||||
elf: $(OUTDIR)/$(TARGET).elf
|
||||
lss: $(OUTDIR)/$(TARGET).lss
|
||||
sym: $(OUTDIR)/$(TARGET).sym
|
||||
hex: $(OUTDIR)/$(TARGET).hex
|
||||
bin: $(OUTDIR)/$(TARGET).bin
|
||||
bino: $(OUTDIR)/$(TARGET).bin.o
|
||||
opfw: $(OUTDIR)/$(TARGET).opfw
|
||||
|
||||
# Display sizes of sections.
|
||||
$(eval $(call SIZE_TEMPLATE, $(OUTDIR)/$(TARGET).elf))
|
||||
.PHONY: size
|
||||
size: $(OUTDIR)/$(TARGET).elf_size
|
||||
|
||||
# Generate Doxygen documents
|
||||
docs:
|
||||
doxygen $(DOXYGENDIR)/doxygen.cfg
|
||||
|
||||
# Install: install binary file with prefix/suffix into install directory
|
||||
install: $(OUTDIR)/$(TARGET).opfw
|
||||
ifneq ($(INSTALL_DIR),)
|
||||
@echo $(MSG_INSTALLING) $(call toprel, $<)
|
||||
$(V1) mkdir -p $(INSTALL_DIR)
|
||||
$(V1) $(INSTALL) $< $(INSTALL_DIR)/$(INSTALL_PFX)$(TARGET)$(INSTALL_SFX).opfw
|
||||
else
|
||||
$(error INSTALL_DIR must be specified for $@)
|
||||
endif
|
||||
|
||||
# Target: clean project.
|
||||
clean: clean_list
|
||||
|
||||
@ -630,5 +617,4 @@ else
|
||||
endif
|
||||
|
||||
# Listing of phony targets.
|
||||
.PHONY : all build clean clean_list program gencode
|
||||
|
||||
.PHONY : all build clean clean_list install
|
||||
|
@ -45,6 +45,8 @@ static int32_t hasSeverity(SystemAlarmsAlarmOptions severity);
|
||||
*/
|
||||
int32_t AlarmsInitialize(void)
|
||||
{
|
||||
SystemAlarmsInitialize();
|
||||
|
||||
lock = xSemaphoreCreateRecursiveMutex();
|
||||
//do not change the default states of the alarms, let the init code generated by the uavobjectgenerator handle that
|
||||
//AlarmsClearAll();
|
||||
|
@ -35,6 +35,8 @@
|
||||
/* OpenPilot Includes */
|
||||
#include "openpilot.h"
|
||||
#include "uavobjectsinit.h"
|
||||
#include "hwsettings.h"
|
||||
#include "camerastab.h"
|
||||
#include "systemmod.h"
|
||||
|
||||
/* Task Priorities */
|
||||
@ -42,18 +44,16 @@
|
||||
|
||||
/* Global Variables */
|
||||
|
||||
/* Prototype of generated InitModules() function */
|
||||
extern void InitModules(void);
|
||||
|
||||
/* Prototype of PIOS_Board_Init() function */
|
||||
extern void PIOS_Board_Init(void);
|
||||
extern void Stack_Change(void);
|
||||
|
||||
/**
|
||||
* OpenPilot Main function:
|
||||
*
|
||||
* Initialize PiOS<BR>
|
||||
* Create the "System" task (SystemModInitializein Modules/System/systemmod.c) <BR>
|
||||
* Start FreeRTOS Scheduler (vTaskStartScheduler)<BR>
|
||||
* Start FreeRTOS Scheduler (vTaskStartScheduler) (Now handled by caller)
|
||||
* If something goes wrong, blink LED1 and LED2 every 100ms
|
||||
*
|
||||
*/
|
||||
@ -65,39 +65,40 @@ int main()
|
||||
/* Brings up System using CMSIS functions, enables the LEDs. */
|
||||
PIOS_SYS_Init();
|
||||
|
||||
/* Initialize the system thread */
|
||||
SystemModInitialize();
|
||||
|
||||
/* Start the FreeRTOS scheduler */
|
||||
vTaskStartScheduler();
|
||||
|
||||
/* If all is well we will never reach here as the scheduler will now be running. */
|
||||
/* If we do get here, it will most likely be because we ran out of heap space. */
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialize the hardware, libraries and modules (called by the System thread in systemmod.c)
|
||||
*/
|
||||
void OpenPilotInit()
|
||||
{
|
||||
|
||||
/* Architecture dependant Hardware and
|
||||
* core subsystem initialisation
|
||||
* (see pios_board.c for your arch)
|
||||
* */
|
||||
|
||||
PIOS_Board_Init();
|
||||
|
||||
#ifdef ERASE_FLASH
|
||||
PIOS_Flash_W25X_EraseChip();
|
||||
#endif
|
||||
|
||||
/* Initialize modules */
|
||||
InitModules();
|
||||
}
|
||||
MODULE_INITIALISE_ALL
|
||||
|
||||
/* Optional module initialization. This code might want to go somewhere else as
|
||||
* it grows */
|
||||
uint8_t optionalModules[HWSETTINGS_OPTIONALMODULES_NUMELEM];
|
||||
HwSettingsOptionalModulesGet(optionalModules);
|
||||
if(optionalModules[HWSETTINGS_OPTIONALMODULES_CAMERASTABILIZATION] == HWSETTINGS_OPTIONALMODULES_ENABLED) {
|
||||
CameraStabInitialize();
|
||||
}
|
||||
|
||||
/* swap the stack to use the IRQ stack */
|
||||
Stack_Change();
|
||||
|
||||
/* Start the FreeRTOS scheduler which should never returns.*/
|
||||
vTaskStartScheduler();
|
||||
|
||||
/* If all is well we will never reach here as the scheduler will now be running. */
|
||||
|
||||
/* Do some indication to user that something bad just happened */
|
||||
PIOS_LED_Off(LED1); \
|
||||
for(;;) { \
|
||||
PIOS_LED_Toggle(LED1); \
|
||||
PIOS_DELAY_WaitmS(100); \
|
||||
};
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* @}
|
||||
|
@ -29,8 +29,8 @@
|
||||
#define configCPU_CLOCK_HZ ( ( unsigned long ) 72000000 )
|
||||
#define configTICK_RATE_HZ ( ( portTickType ) 1000 )
|
||||
#define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 5 )
|
||||
#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 128 )
|
||||
#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 14 * 1024 ) )
|
||||
#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 48 )
|
||||
#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 54 * 256) )
|
||||
#define configMAX_TASK_NAME_LEN ( 16 )
|
||||
#define configUSE_TRACE_FACILITY 0
|
||||
#define configUSE_16_BIT_TICKS 0
|
||||
@ -39,7 +39,6 @@
|
||||
#define configUSE_RECURSIVE_MUTEXES 1
|
||||
#define configUSE_COUNTING_SEMAPHORES 0
|
||||
#define configUSE_ALTERNATIVE_API 0
|
||||
#define configCHECK_FOR_STACK_OVERFLOW 2
|
||||
#define configQUEUE_REGISTRY_SIZE 10
|
||||
|
||||
/* Co-routine definitions. */
|
||||
@ -71,6 +70,27 @@ configKERNEL_INTERRUPT_PRIORITY setting. Here 15 corresponds to the lowest
|
||||
NVIC value of 255. */
|
||||
#define configLIBRARY_KERNEL_INTERRUPT_PRIORITY 15
|
||||
|
||||
#if !defined(ARCH_POSIX) && !defined(ARCH_WIN32)
|
||||
#define CHECK_IRQ_STACK
|
||||
#endif
|
||||
|
||||
/* Enable run time stats collection */
|
||||
#if defined(DIAGNOSTICS)
|
||||
#define configCHECK_FOR_STACK_OVERFLOW 2
|
||||
|
||||
#define configGENERATE_RUN_TIME_STATS 1
|
||||
#define INCLUDE_uxTaskGetRunTime 1
|
||||
#define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS()\
|
||||
do {\
|
||||
(*(unsigned long *)0xe000edfc) |= (1<<24);/* DEMCR |= DEMCR_TRCENA */\
|
||||
(*(unsigned long *)0xe0001000) |= 1; /* DWT_CTRL |= DWT_CYCCNT_ENA */\
|
||||
} while(0)
|
||||
#define portGET_RUN_TIME_COUNTER_VALUE() (*(unsigned long *)0xe0001004)/* DWT_CYCCNT */
|
||||
#else
|
||||
#define configCHECK_FOR_STACK_OVERFLOW 1
|
||||
#endif
|
||||
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
@ -30,11 +30,9 @@
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
|
||||
#ifndef PIOS_CONFIG_H
|
||||
#define PIOS_CONFIG_H
|
||||
|
||||
|
||||
/* Enable/Disable PiOS Modules */
|
||||
#define PIOS_INCLUDE_ADC
|
||||
#define PIOS_INCLUDE_DELAY
|
||||
@ -45,14 +43,17 @@
|
||||
#define PIOS_INCLUDE_IRQ
|
||||
#define PIOS_INCLUDE_LED
|
||||
|
||||
#if defined(USE_SPEKTRUM)
|
||||
#define PIOS_INCLUDE_RCVR
|
||||
|
||||
/* Supported receiver interfaces */
|
||||
#define PIOS_INCLUDE_SPEKTRUM
|
||||
#else
|
||||
#define PIOS_INCLUDE_GPS
|
||||
#define PIOS_INCLUDE_SBUS
|
||||
//#define PIOS_INCLUDE_PPM
|
||||
#define PIOS_INCLUDE_PWM
|
||||
#endif
|
||||
|
||||
/* Supported USART-based PIOS modules */
|
||||
#define PIOS_INCLUDE_TELEMETRY_RF
|
||||
//#define PIOS_INCLUDE_GPS
|
||||
|
||||
#define PIOS_INCLUDE_SERVO
|
||||
#define PIOS_INCLUDE_SPI
|
||||
@ -64,6 +65,7 @@
|
||||
#define PIOS_INCLUDE_FREERTOS
|
||||
#define PIOS_INCLUDE_GPIO
|
||||
#define PIOS_INCLUDE_EXTI
|
||||
#define PIOS_INCLUDE_RTC
|
||||
#define PIOS_INCLUDE_WDG
|
||||
#define PIOS_INCLUDE_BL_HELPER
|
||||
|
||||
@ -84,21 +86,26 @@
|
||||
#define AUXUART_BAUDRATE 19200
|
||||
|
||||
/* Alarm Thresholds */
|
||||
#define HEAP_LIMIT_WARNING 350
|
||||
#define HEAP_LIMIT_CRITICAL 250
|
||||
#define CPULOAD_LIMIT_WARNING 80
|
||||
#define HEAP_LIMIT_WARNING 220
|
||||
#define HEAP_LIMIT_CRITICAL 40
|
||||
#define IRQSTACK_LIMIT_WARNING 100
|
||||
#define IRQSTACK_LIMIT_CRITICAL 60
|
||||
#define CPULOAD_LIMIT_WARNING 85
|
||||
#define CPULOAD_LIMIT_CRITICAL 95
|
||||
|
||||
/* Task stack sizes */
|
||||
#define PIOS_ACTUATOR_STACK_SIZE 1020
|
||||
#define PIOS_MANUAL_STACK_SIZE 724
|
||||
#define PIOS_SYSTEM_STACK_SIZE 504
|
||||
#define PIOS_SYSTEM_STACK_SIZE 460
|
||||
#define PIOS_STABILIZATION_STACK_SIZE 524
|
||||
#define PIOS_TELEM_STACK_SIZE 500
|
||||
|
||||
#define PIOS_EVENTDISPATCHER_STACK_SIZE 130
|
||||
#define IDLE_COUNTS_PER_SEC_AT_NO_LOAD 1995998
|
||||
//#define PIOS_QUATERNION_STABILIZATION
|
||||
|
||||
// This can't be too high to stop eventdispatcher thread overflowing
|
||||
#define PIOS_EVENTDISAPTCHER_QUEUE 10
|
||||
|
||||
#endif /* PIOS_CONFIG_H */
|
||||
/**
|
||||
* @}
|
||||
|
@ -30,10 +30,11 @@
|
||||
#include <pios.h>
|
||||
#include <openpilot.h>
|
||||
#include <uavobjectsinit.h>
|
||||
#include <hwsettings.h>
|
||||
#include <manualcontrolsettings.h>
|
||||
|
||||
#if defined(PIOS_INCLUDE_SPI)
|
||||
|
||||
|
||||
#include <pios_spi_priv.h>
|
||||
|
||||
/* Flash/Accel Interface
|
||||
@ -44,7 +45,7 @@
|
||||
void PIOS_SPI_flash_accel_irq_handler(void);
|
||||
void DMA1_Channel4_IRQHandler() __attribute__ ((alias ("PIOS_SPI_flash_accel_irq_handler")));
|
||||
void DMA1_Channel5_IRQHandler() __attribute__ ((alias ("PIOS_SPI_flash_accel_irq_handler")));
|
||||
const struct pios_spi_cfg pios_spi_flash_accel_cfg = {
|
||||
static const struct pios_spi_cfg pios_spi_flash_accel_cfg = {
|
||||
.regs = SPI2,
|
||||
.init = {
|
||||
.SPI_Mode = SPI_Mode_Master,
|
||||
@ -62,7 +63,6 @@ const struct pios_spi_cfg pios_spi_flash_accel_cfg = {
|
||||
.ahb_clk = RCC_AHBPeriph_DMA1,
|
||||
|
||||
.irq = {
|
||||
.handler = PIOS_SPI_flash_accel_irq_handler,
|
||||
.flags = (DMA1_FLAG_TC4 | DMA1_FLAG_TE4 | DMA1_FLAG_HT4 | DMA1_FLAG_GL4),
|
||||
.init = {
|
||||
.NVIC_IRQChannel = DMA1_Channel4_IRQn,
|
||||
@ -151,11 +151,10 @@ void PIOS_SPI_flash_accel_irq_handler(void)
|
||||
extern void PIOS_ADC_handler(void);
|
||||
void DMA1_Channel1_IRQHandler() __attribute__ ((alias("PIOS_ADC_handler")));
|
||||
// Remap the ADC DMA handler to this one
|
||||
const struct pios_adc_cfg pios_adc_cfg = {
|
||||
static const struct pios_adc_cfg pios_adc_cfg = {
|
||||
.dma = {
|
||||
.ahb_clk = RCC_AHBPeriph_DMA1,
|
||||
.irq = {
|
||||
.handler = PIOS_ADC_DMA_Handler,
|
||||
.flags = (DMA1_FLAG_TC1 | DMA1_FLAG_TE1 | DMA1_FLAG_HT1 | DMA1_FLAG_GL1),
|
||||
.init = {
|
||||
.NVIC_IRQChannel = DMA1_Channel1_IRQn,
|
||||
@ -200,19 +199,14 @@ void PIOS_ADC_handler() {
|
||||
|
||||
#include "pios_usart_priv.h"
|
||||
|
||||
#if defined(PIOS_INCLUDE_TELEMETRY_RF)
|
||||
/*
|
||||
* Telemetry USART
|
||||
*/
|
||||
void PIOS_USART_telem_irq_handler(void);
|
||||
void USART1_IRQHandler() __attribute__ ((alias ("PIOS_USART_telem_irq_handler")));
|
||||
const struct pios_usart_cfg pios_usart_telem_cfg = {
|
||||
static const struct pios_usart_cfg pios_usart_telem_main_cfg = {
|
||||
.regs = USART1,
|
||||
.init = {
|
||||
#if defined (PIOS_COM_TELEM_BAUDRATE)
|
||||
.USART_BaudRate = PIOS_COM_TELEM_BAUDRATE,
|
||||
#else
|
||||
.USART_BaudRate = 57600,
|
||||
#endif
|
||||
.USART_BaudRate = 57600,
|
||||
.USART_WordLength = USART_WordLength_8b,
|
||||
.USART_Parity = USART_Parity_No,
|
||||
.USART_StopBits = USART_StopBits_1,
|
||||
@ -220,7 +214,6 @@ const struct pios_usart_cfg pios_usart_telem_cfg = {
|
||||
.USART_Mode = USART_Mode_Rx | USART_Mode_Tx,
|
||||
},
|
||||
.irq = {
|
||||
.handler = PIOS_USART_telem_irq_handler,
|
||||
.init = {
|
||||
.NVIC_IRQChannel = USART1_IRQn,
|
||||
.NVIC_IRQChannelPreemptionPriority = PIOS_IRQ_PRIO_MID,
|
||||
@ -246,20 +239,10 @@ const struct pios_usart_cfg pios_usart_telem_cfg = {
|
||||
},
|
||||
};
|
||||
|
||||
#if defined(PIOS_INCLUDE_GPS)
|
||||
/*
|
||||
* GPS USART
|
||||
*/
|
||||
void PIOS_USART_gps_irq_handler(void);
|
||||
void USART3_IRQHandler() __attribute__ ((alias ("PIOS_USART_gps_irq_handler")));
|
||||
const struct pios_usart_cfg pios_usart_gps_cfg = {
|
||||
.regs = USART3,
|
||||
static const struct pios_usart_cfg pios_usart_telem_flexi_cfg = {
|
||||
.regs = USART3,
|
||||
.init = {
|
||||
#if defined (PIOS_COM_GPS_BAUDRATE)
|
||||
.USART_BaudRate = PIOS_COM_GPS_BAUDRATE,
|
||||
#else
|
||||
.USART_BaudRate = 57600,
|
||||
#endif
|
||||
.USART_BaudRate = 57600,
|
||||
.USART_WordLength = USART_WordLength_8b,
|
||||
.USART_Parity = USART_Parity_No,
|
||||
.USART_StopBits = USART_StopBits_1,
|
||||
@ -267,7 +250,6 @@ const struct pios_usart_cfg pios_usart_gps_cfg = {
|
||||
.USART_Mode = USART_Mode_Rx | USART_Mode_Tx,
|
||||
},
|
||||
.irq = {
|
||||
.handler = PIOS_USART_gps_irq_handler,
|
||||
.init = {
|
||||
.NVIC_IRQChannel = USART3_IRQn,
|
||||
.NVIC_IRQChannelPreemptionPriority = PIOS_IRQ_PRIO_MID,
|
||||
@ -292,22 +274,143 @@ const struct pios_usart_cfg pios_usart_gps_cfg = {
|
||||
},
|
||||
},
|
||||
};
|
||||
#endif
|
||||
#endif /* PIOS_INCLUDE_TELEMETRY_RF */
|
||||
|
||||
#if defined(PIOS_INCLUDE_GPS)
|
||||
/*
|
||||
* GPS USART
|
||||
*/
|
||||
static const struct pios_usart_cfg pios_usart_gps_main_cfg = {
|
||||
.regs = USART1,
|
||||
.init = {
|
||||
.USART_BaudRate = 57600,
|
||||
.USART_WordLength = USART_WordLength_8b,
|
||||
.USART_Parity = USART_Parity_No,
|
||||
.USART_StopBits = USART_StopBits_1,
|
||||
.USART_HardwareFlowControl = USART_HardwareFlowControl_None,
|
||||
.USART_Mode = USART_Mode_Rx | USART_Mode_Tx,
|
||||
},
|
||||
.irq = {
|
||||
.init = {
|
||||
.NVIC_IRQChannel = USART1_IRQn,
|
||||
.NVIC_IRQChannelPreemptionPriority = PIOS_IRQ_PRIO_MID,
|
||||
.NVIC_IRQChannelSubPriority = 0,
|
||||
.NVIC_IRQChannelCmd = ENABLE,
|
||||
},
|
||||
},
|
||||
.rx = {
|
||||
.gpio = GPIOA,
|
||||
.init = {
|
||||
.GPIO_Pin = GPIO_Pin_10,
|
||||
.GPIO_Speed = GPIO_Speed_2MHz,
|
||||
.GPIO_Mode = GPIO_Mode_IPU,
|
||||
},
|
||||
},
|
||||
.tx = {
|
||||
.gpio = GPIOA,
|
||||
.init = {
|
||||
.GPIO_Pin = GPIO_Pin_9,
|
||||
.GPIO_Speed = GPIO_Speed_2MHz,
|
||||
.GPIO_Mode = GPIO_Mode_AF_PP,
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
static const struct pios_usart_cfg pios_usart_gps_flexi_cfg = {
|
||||
.regs = USART3,
|
||||
.init = {
|
||||
.USART_BaudRate = 57600,
|
||||
.USART_WordLength = USART_WordLength_8b,
|
||||
.USART_Parity = USART_Parity_No,
|
||||
.USART_StopBits = USART_StopBits_1,
|
||||
.USART_HardwareFlowControl = USART_HardwareFlowControl_None,
|
||||
.USART_Mode = USART_Mode_Rx | USART_Mode_Tx,
|
||||
},
|
||||
.irq = {
|
||||
.init = {
|
||||
.NVIC_IRQChannel = USART3_IRQn,
|
||||
.NVIC_IRQChannelPreemptionPriority = PIOS_IRQ_PRIO_MID,
|
||||
.NVIC_IRQChannelSubPriority = 0,
|
||||
.NVIC_IRQChannelCmd = ENABLE,
|
||||
},
|
||||
},
|
||||
.rx = {
|
||||
.gpio = GPIOB,
|
||||
.init = {
|
||||
.GPIO_Pin = GPIO_Pin_11,
|
||||
.GPIO_Speed = GPIO_Speed_2MHz,
|
||||
.GPIO_Mode = GPIO_Mode_IPU,
|
||||
},
|
||||
},
|
||||
.tx = {
|
||||
.gpio = GPIOB,
|
||||
.init = {
|
||||
.GPIO_Pin = GPIO_Pin_10,
|
||||
.GPIO_Speed = GPIO_Speed_2MHz,
|
||||
.GPIO_Mode = GPIO_Mode_AF_PP,
|
||||
},
|
||||
},
|
||||
};
|
||||
#endif /* PIOS_INCLUDE_GPS */
|
||||
|
||||
#if defined(PIOS_INCLUDE_SPEKTRUM)
|
||||
/*
|
||||
* SPEKTRUM USART
|
||||
*/
|
||||
void PIOS_USART_spektrum_irq_handler(void);
|
||||
void USART3_IRQHandler() __attribute__ ((alias ("PIOS_USART_spektrum_irq_handler")));
|
||||
const struct pios_usart_cfg pios_usart_spektrum_cfg = {
|
||||
.regs = USART3,
|
||||
#include <pios_spektrum_priv.h>
|
||||
|
||||
static const struct pios_usart_cfg pios_usart_spektrum_main_cfg = {
|
||||
.regs = USART1,
|
||||
.init = {
|
||||
#if defined (PIOS_COM_SPEKTRUM_BAUDRATE)
|
||||
.USART_BaudRate = PIOS_COM_SPEKTRUM_BAUDRATE,
|
||||
#else
|
||||
.USART_BaudRate = 115200,
|
||||
#endif
|
||||
.USART_BaudRate = 115200,
|
||||
.USART_WordLength = USART_WordLength_8b,
|
||||
.USART_Parity = USART_Parity_No,
|
||||
.USART_StopBits = USART_StopBits_1,
|
||||
.USART_HardwareFlowControl = USART_HardwareFlowControl_None,
|
||||
.USART_Mode = USART_Mode_Rx,
|
||||
},
|
||||
.irq = {
|
||||
.init = {
|
||||
.NVIC_IRQChannel = USART1_IRQn,
|
||||
.NVIC_IRQChannelPreemptionPriority = PIOS_IRQ_PRIO_HIGH,
|
||||
.NVIC_IRQChannelSubPriority = 0,
|
||||
.NVIC_IRQChannelCmd = ENABLE,
|
||||
},
|
||||
},
|
||||
.rx = {
|
||||
.gpio = GPIOA,
|
||||
.init = {
|
||||
.GPIO_Pin = GPIO_Pin_10,
|
||||
.GPIO_Speed = GPIO_Speed_2MHz,
|
||||
.GPIO_Mode = GPIO_Mode_IPU,
|
||||
},
|
||||
},
|
||||
.tx = {
|
||||
.gpio = GPIOA,
|
||||
.init = {
|
||||
.GPIO_Pin = GPIO_Pin_9,
|
||||
.GPIO_Speed = GPIO_Speed_2MHz,
|
||||
.GPIO_Mode = GPIO_Mode_IN_FLOATING,
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
static const struct pios_spektrum_cfg pios_spektrum_main_cfg = {
|
||||
.bind = {
|
||||
.gpio = GPIOA,
|
||||
.init = {
|
||||
.GPIO_Pin = GPIO_Pin_10,
|
||||
.GPIO_Speed = GPIO_Speed_2MHz,
|
||||
.GPIO_Mode = GPIO_Mode_Out_PP,
|
||||
},
|
||||
},
|
||||
.remap = 0,
|
||||
};
|
||||
|
||||
static const struct pios_usart_cfg pios_usart_spektrum_flexi_cfg = {
|
||||
.regs = USART3,
|
||||
.init = {
|
||||
.USART_BaudRate = 115200,
|
||||
.USART_WordLength = USART_WordLength_8b,
|
||||
.USART_Parity = USART_Parity_No,
|
||||
.USART_StopBits = USART_StopBits_1,
|
||||
@ -315,7 +418,6 @@ const struct pios_usart_cfg pios_usart_spektrum_cfg = {
|
||||
.USART_Mode = USART_Mode_Rx,
|
||||
},
|
||||
.irq = {
|
||||
.handler = PIOS_USART_spektrum_irq_handler,
|
||||
.init = {
|
||||
.NVIC_IRQChannel = USART3_IRQn,
|
||||
.NVIC_IRQChannelPreemptionPriority = PIOS_IRQ_PRIO_HIGH,
|
||||
@ -341,76 +443,128 @@ const struct pios_usart_cfg pios_usart_spektrum_cfg = {
|
||||
},
|
||||
};
|
||||
|
||||
static uint32_t pios_usart_spektrum_id;
|
||||
void PIOS_USART_spektrum_irq_handler(void)
|
||||
{
|
||||
SPEKTRUM_IRQHandler(pios_usart_spektrum_id);
|
||||
}
|
||||
|
||||
#include <pios_spektrum_priv.h>
|
||||
void TIM2_IRQHandler();
|
||||
void TIM2_IRQHandler() __attribute__ ((alias ("PIOS_TIM2_irq_handler")));
|
||||
const struct pios_spektrum_cfg pios_spektrum_cfg = {
|
||||
.pios_usart_spektrum_cfg = &pios_usart_spektrum_cfg,
|
||||
.tim_base_init = {
|
||||
.TIM_Prescaler = (PIOS_MASTER_CLOCK / 1000000) - 1, /* For 1 uS accuracy */
|
||||
.TIM_ClockDivision = TIM_CKD_DIV1,
|
||||
.TIM_CounterMode = TIM_CounterMode_Up,
|
||||
.TIM_Period = ((1000000 / 120) - 1), //11ms-10*16b/115200bps atleast one interrupt between frames
|
||||
.TIM_RepetitionCounter = 0x0000,
|
||||
},
|
||||
.gpio_init = { //used for bind feature
|
||||
.GPIO_Mode = GPIO_Mode_Out_PP,
|
||||
.GPIO_Speed = GPIO_Speed_2MHz,
|
||||
},
|
||||
.remap = 0,
|
||||
.irq = {
|
||||
.handler = TIM2_IRQHandler,
|
||||
.init = {
|
||||
.NVIC_IRQChannelPreemptionPriority = PIOS_IRQ_PRIO_MID,
|
||||
.NVIC_IRQChannelSubPriority = 0,
|
||||
.NVIC_IRQChannelCmd = ENABLE,
|
||||
static const struct pios_spektrum_cfg pios_spektrum_flexi_cfg = {
|
||||
.bind = {
|
||||
.gpio = GPIOB,
|
||||
.init = {
|
||||
.GPIO_Pin = GPIO_Pin_11,
|
||||
.GPIO_Speed = GPIO_Speed_2MHz,
|
||||
.GPIO_Mode = GPIO_Mode_Out_PP,
|
||||
},
|
||||
},
|
||||
.timer = TIM2,
|
||||
.port = GPIOB,
|
||||
.ccr = TIM_IT_Update,
|
||||
.pin = GPIO_Pin_11,
|
||||
.remap = 0,
|
||||
};
|
||||
|
||||
void PIOS_TIM2_irq_handler()
|
||||
{
|
||||
PIOS_SPEKTRUM_irq_handler(pios_usart_spektrum_id);
|
||||
}
|
||||
#endif /* PIOS_INCLUDE_SPEKTRUM */
|
||||
|
||||
static uint32_t pios_usart_telem_rf_id;
|
||||
void PIOS_USART_telem_irq_handler(void)
|
||||
{
|
||||
PIOS_USART_IRQ_Handler(pios_usart_telem_rf_id);
|
||||
}
|
||||
#if defined(PIOS_INCLUDE_SBUS)
|
||||
/*
|
||||
* SBUS USART
|
||||
*/
|
||||
#include <pios_sbus_priv.h>
|
||||
|
||||
#if defined(PIOS_INCLUDE_GPS)
|
||||
static uint32_t pios_usart_gps_id;
|
||||
void PIOS_USART_gps_irq_handler(void)
|
||||
{
|
||||
PIOS_USART_IRQ_Handler(pios_usart_gps_id);
|
||||
}
|
||||
#endif /* PIOS_INCLUDE_GPS */
|
||||
static const struct pios_usart_cfg pios_usart_sbus_main_cfg = {
|
||||
.regs = USART1,
|
||||
.init = {
|
||||
.USART_BaudRate = 100000,
|
||||
.USART_WordLength = USART_WordLength_8b,
|
||||
.USART_Parity = USART_Parity_Even,
|
||||
.USART_StopBits = USART_StopBits_2,
|
||||
.USART_HardwareFlowControl = USART_HardwareFlowControl_None,
|
||||
.USART_Mode = USART_Mode_Rx,
|
||||
},
|
||||
.irq = {
|
||||
.init = {
|
||||
.NVIC_IRQChannel = USART1_IRQn,
|
||||
.NVIC_IRQChannelPreemptionPriority = PIOS_IRQ_PRIO_HIGH,
|
||||
.NVIC_IRQChannelSubPriority = 0,
|
||||
.NVIC_IRQChannelCmd = ENABLE,
|
||||
},
|
||||
},
|
||||
.rx = {
|
||||
.gpio = GPIOA,
|
||||
.init = {
|
||||
.GPIO_Pin = GPIO_Pin_10,
|
||||
.GPIO_Speed = GPIO_Speed_2MHz,
|
||||
.GPIO_Mode = GPIO_Mode_IPU,
|
||||
},
|
||||
},
|
||||
.tx = {
|
||||
.gpio = GPIOA,
|
||||
.init = {
|
||||
.GPIO_Pin = GPIO_Pin_9,
|
||||
.GPIO_Speed = GPIO_Speed_2MHz,
|
||||
.GPIO_Mode = GPIO_Mode_IN_FLOATING,
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
#endif /* PIOS_INCLUDE_USART */
|
||||
static const struct pios_sbus_cfg pios_sbus_cfg = {
|
||||
/* Inverter configuration */
|
||||
.inv = {
|
||||
.gpio = GPIOB,
|
||||
.init = {
|
||||
.GPIO_Pin = GPIO_Pin_2,
|
||||
.GPIO_Mode = GPIO_Mode_Out_PP,
|
||||
.GPIO_Speed = GPIO_Speed_2MHz,
|
||||
},
|
||||
},
|
||||
.gpio_clk_func = RCC_APB2PeriphClockCmd,
|
||||
.gpio_clk_periph = RCC_APB2Periph_GPIOB,
|
||||
.gpio_inv_enable = Bit_SET,
|
||||
};
|
||||
|
||||
#endif /* PIOS_INCLUDE_SBUS */
|
||||
|
||||
#endif /* PIOS_INCLUDE_USART */
|
||||
|
||||
#if defined(PIOS_INCLUDE_COM)
|
||||
|
||||
#include "pios_com_priv.h"
|
||||
|
||||
#define PIOS_COM_TELEM_RF_RX_BUF_LEN 192
|
||||
#define PIOS_COM_TELEM_RF_TX_BUF_LEN 192
|
||||
|
||||
#define PIOS_COM_GPS_RX_BUF_LEN 96
|
||||
|
||||
#define PIOS_COM_TELEM_USB_RX_BUF_LEN 192
|
||||
#define PIOS_COM_TELEM_USB_TX_BUF_LEN 192
|
||||
|
||||
#endif /* PIOS_INCLUDE_COM */
|
||||
|
||||
#if defined(PIOS_INCLUDE_RTC)
|
||||
/*
|
||||
* Realtime Clock (RTC)
|
||||
*/
|
||||
#include <pios_rtc_priv.h>
|
||||
|
||||
void PIOS_RTC_IRQ_Handler (void);
|
||||
void RTC_IRQHandler() __attribute__ ((alias ("PIOS_RTC_IRQ_Handler")));
|
||||
static const struct pios_rtc_cfg pios_rtc_main_cfg = {
|
||||
.clksrc = RCC_RTCCLKSource_HSE_Div128,
|
||||
.prescaler = 100,
|
||||
.irq = {
|
||||
.init = {
|
||||
.NVIC_IRQChannel = RTC_IRQn,
|
||||
.NVIC_IRQChannelPreemptionPriority = PIOS_IRQ_PRIO_MID,
|
||||
.NVIC_IRQChannelSubPriority = 0,
|
||||
.NVIC_IRQChannelCmd = ENABLE,
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
void PIOS_RTC_IRQ_Handler (void)
|
||||
{
|
||||
PIOS_RTC_irq_handler ();
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Servo outputs
|
||||
*/
|
||||
#include <pios_servo_priv.h>
|
||||
const struct pios_servo_channel pios_servo_channels[] = {
|
||||
static const struct pios_servo_channel pios_servo_channels[] = {
|
||||
{
|
||||
.timer = TIM4,
|
||||
.port = GPIOB,
|
||||
@ -441,14 +595,12 @@ const struct pios_servo_channel pios_servo_channels[] = {
|
||||
.channel = TIM_Channel_1,
|
||||
.pin = GPIO_Pin_4,
|
||||
},
|
||||
#ifndef PIOS_INCLUDE_SPEKTRUM
|
||||
{
|
||||
.timer = TIM2,
|
||||
.port = GPIOA,
|
||||
.channel = TIM_Channel_3,
|
||||
.pin = GPIO_Pin_2,
|
||||
},
|
||||
#endif
|
||||
};
|
||||
|
||||
const struct pios_servo_cfg pios_servo_cfg = {
|
||||
@ -478,13 +630,64 @@ const struct pios_servo_cfg pios_servo_cfg = {
|
||||
.num_channels = NELEMENTS(pios_servo_channels),
|
||||
};
|
||||
|
||||
#if defined(PIOS_INCLUDE_PWM) && defined(PIOS_INCLUDE_PPM)
|
||||
#error Cannot define both PIOS_INCLUDE_PWM and PIOS_INCLUDE_PPM at the same time (yet)
|
||||
#endif
|
||||
|
||||
/*
|
||||
* PPM Inputs
|
||||
*/
|
||||
#if defined(PIOS_INCLUDE_PPM)
|
||||
#include <pios_ppm_priv.h>
|
||||
|
||||
void TIM4_IRQHandler();
|
||||
void TIM4_IRQHandler() __attribute__ ((alias ("PIOS_TIM4_irq_handler")));
|
||||
const struct pios_ppm_cfg pios_ppm_cfg = {
|
||||
.tim_base_init = {
|
||||
.TIM_Prescaler = (PIOS_MASTER_CLOCK / 1000000) - 1, /* For 1 uS accuracy */
|
||||
.TIM_ClockDivision = TIM_CKD_DIV1,
|
||||
.TIM_CounterMode = TIM_CounterMode_Up,
|
||||
.TIM_Period = 0xFFFF, /* shared timer, make sure init correctly in outputs */
|
||||
.TIM_RepetitionCounter = 0x0000,
|
||||
},
|
||||
.tim_ic_init = {
|
||||
.TIM_Channel = TIM_Channel_1,
|
||||
.TIM_ICPolarity = TIM_ICPolarity_Rising,
|
||||
.TIM_ICSelection = TIM_ICSelection_DirectTI,
|
||||
.TIM_ICPrescaler = TIM_ICPSC_DIV1,
|
||||
.TIM_ICFilter = 0x0,
|
||||
},
|
||||
.gpio_init = {
|
||||
.GPIO_Pin = GPIO_Pin_6,
|
||||
.GPIO_Mode = GPIO_Mode_IPD,
|
||||
.GPIO_Speed = GPIO_Speed_2MHz,
|
||||
},
|
||||
.remap = 0,
|
||||
.irq = {
|
||||
.init = {
|
||||
.NVIC_IRQChannelPreemptionPriority = PIOS_IRQ_PRIO_MID,
|
||||
.NVIC_IRQChannelSubPriority = 0,
|
||||
.NVIC_IRQChannelCmd = ENABLE,
|
||||
},
|
||||
},
|
||||
.timer = TIM4,
|
||||
.port = GPIOB,
|
||||
.ccr = TIM_IT_CC1,
|
||||
};
|
||||
|
||||
void PIOS_TIM4_irq_handler()
|
||||
{
|
||||
PIOS_PPM_irq_handler();
|
||||
}
|
||||
#endif /* PIOS_INCLUDE_PPM */
|
||||
|
||||
/*
|
||||
* PWM Inputs
|
||||
*/
|
||||
#if defined(PIOS_INCLUDE_PWM)
|
||||
#include <pios_pwm_priv.h>
|
||||
const struct pios_pwm_channel pios_pwm_channels[] = {
|
||||
|
||||
static const struct pios_pwm_channel pios_pwm_channels[] = {
|
||||
{
|
||||
.timer = TIM4,
|
||||
.port = GPIOB,
|
||||
@ -555,7 +758,6 @@ const struct pios_pwm_cfg pios_pwm_cfg = {
|
||||
},
|
||||
.remap = 0,
|
||||
.irq = {
|
||||
.handler = TIM2_IRQHandler,
|
||||
.init = {
|
||||
.NVIC_IRQChannelPreemptionPriority = PIOS_IRQ_PRIO_MID,
|
||||
.NVIC_IRQChannelSubPriority = 0,
|
||||
@ -592,7 +794,7 @@ void PIOS_I2C_main_adapter_er_irq_handler(void);
|
||||
void I2C2_EV_IRQHandler() __attribute__ ((alias ("PIOS_I2C_main_adapter_ev_irq_handler")));
|
||||
void I2C2_ER_IRQHandler() __attribute__ ((alias ("PIOS_I2C_main_adapter_er_irq_handler")));
|
||||
|
||||
const struct pios_i2c_adapter_cfg pios_i2c_main_adapter_cfg = {
|
||||
static const struct pios_i2c_adapter_cfg pios_i2c_main_adapter_cfg = {
|
||||
.regs = I2C2,
|
||||
.init = {
|
||||
.I2C_Mode = I2C_Mode_I2C,
|
||||
@ -620,7 +822,6 @@ const struct pios_i2c_adapter_cfg pios_i2c_main_adapter_cfg = {
|
||||
},
|
||||
},
|
||||
.event = {
|
||||
.handler = PIOS_I2C_main_adapter_ev_irq_handler,
|
||||
.flags = 0, /* FIXME: check this */
|
||||
.init = {
|
||||
.NVIC_IRQChannel = I2C2_EV_IRQn,
|
||||
@ -630,7 +831,6 @@ const struct pios_i2c_adapter_cfg pios_i2c_main_adapter_cfg = {
|
||||
},
|
||||
},
|
||||
.error = {
|
||||
.handler = PIOS_I2C_main_adapter_er_irq_handler,
|
||||
.flags = 0, /* FIXME: check this */
|
||||
.init = {
|
||||
.NVIC_IRQChannel = I2C2_ER_IRQn,
|
||||
@ -656,12 +856,33 @@ void PIOS_I2C_main_adapter_er_irq_handler(void)
|
||||
|
||||
#endif /* PIOS_INCLUDE_I2C */
|
||||
|
||||
#if defined(PIOS_INCLUDE_RCVR)
|
||||
#include "pios_rcvr_priv.h"
|
||||
|
||||
struct pios_rcvr_channel_map pios_rcvr_channel_to_id_map[PIOS_RCVR_MAX_CHANNELS];
|
||||
uint32_t pios_rcvr_max_channel;
|
||||
#endif /* PIOS_INCLUDE_RCVR */
|
||||
|
||||
#if defined(PIOS_INCLUDE_USB_HID)
|
||||
#include "pios_usb_hid_priv.h"
|
||||
|
||||
static const struct pios_usb_hid_cfg pios_usb_hid_main_cfg = {
|
||||
.irq = {
|
||||
.init = {
|
||||
.NVIC_IRQChannel = USB_LP_CAN1_RX0_IRQn,
|
||||
.NVIC_IRQChannelPreemptionPriority = PIOS_IRQ_PRIO_LOW,
|
||||
.NVIC_IRQChannelSubPriority = 0,
|
||||
.NVIC_IRQChannelCmd = ENABLE,
|
||||
},
|
||||
},
|
||||
};
|
||||
#endif /* PIOS_INCLUDE_USB_HID */
|
||||
|
||||
extern const struct pios_com_driver pios_usb_com_driver;
|
||||
|
||||
uint32_t pios_com_telem_rf_id;
|
||||
uint32_t pios_com_telem_usb_id;
|
||||
uint32_t pios_com_gps_id;
|
||||
uint32_t pios_com_spektrum_id;
|
||||
|
||||
/**
|
||||
* PIOS_Board_Init()
|
||||
@ -675,27 +896,25 @@ void PIOS_Board_Init(void) {
|
||||
|
||||
/* Set up the SPI interface to the serial flash */
|
||||
if (PIOS_SPI_Init(&pios_spi_flash_accel_id, &pios_spi_flash_accel_cfg)) {
|
||||
PIOS_DEBUG_Assert(0);
|
||||
PIOS_Assert(0);
|
||||
}
|
||||
|
||||
PIOS_Flash_W25X_Init(pios_spi_flash_accel_id);
|
||||
PIOS_ADXL345_Attach(pios_spi_flash_accel_id);
|
||||
|
||||
#if defined(PIOS_INCLUDE_SPEKTRUM)
|
||||
/* SPEKTRUM init must come before comms */
|
||||
PIOS_SPEKTRUM_Init();
|
||||
PIOS_FLASHFS_Init();
|
||||
|
||||
if (PIOS_USART_Init(&pios_usart_spektrum_id, &pios_usart_spektrum_cfg)) {
|
||||
PIOS_DEBUG_Assert(0);
|
||||
}
|
||||
if (PIOS_COM_Init(&pios_com_spektrum_id, &pios_usart_com_driver, pios_usart_spektrum_id)) {
|
||||
PIOS_DEBUG_Assert(0);
|
||||
}
|
||||
#endif
|
||||
/* Initialize UAVObject libraries */
|
||||
EventDispatcherInitialize();
|
||||
UAVObjInitialize();
|
||||
UAVObjectsInitializeAll();
|
||||
|
||||
HwSettingsInitialize();
|
||||
ManualControlSettingsInitialize();
|
||||
|
||||
#if defined(PIOS_INCLUDE_RTC)
|
||||
/* Initialize the real-time clock and its associated tick */
|
||||
PIOS_RTC_Init(&pios_rtc_main_cfg);
|
||||
#endif
|
||||
|
||||
/* Initialize the alarms library */
|
||||
AlarmsInitialize();
|
||||
@ -703,23 +922,229 @@ void PIOS_Board_Init(void) {
|
||||
/* Initialize the task monitor library */
|
||||
TaskMonitorInitialize();
|
||||
|
||||
/* Initialize the PiOS library */
|
||||
#if defined(PIOS_INCLUDE_COM)
|
||||
if (PIOS_USART_Init(&pios_usart_telem_rf_id, &pios_usart_telem_cfg)) {
|
||||
PIOS_DEBUG_Assert(0);
|
||||
}
|
||||
if (PIOS_COM_Init(&pios_com_telem_rf_id, &pios_usart_com_driver, pios_usart_telem_rf_id)) {
|
||||
PIOS_DEBUG_Assert(0);
|
||||
}
|
||||
/* Configure the main IO port */
|
||||
uint8_t hwsettings_cc_mainport;
|
||||
HwSettingsCC_MainPortGet(&hwsettings_cc_mainport);
|
||||
|
||||
switch (hwsettings_cc_mainport) {
|
||||
case HWSETTINGS_CC_MAINPORT_DISABLED:
|
||||
break;
|
||||
case HWSETTINGS_CC_MAINPORT_TELEMETRY:
|
||||
#if defined(PIOS_INCLUDE_TELEMETRY_RF)
|
||||
{
|
||||
uint32_t pios_usart_telem_rf_id;
|
||||
if (PIOS_USART_Init(&pios_usart_telem_rf_id, &pios_usart_telem_main_cfg)) {
|
||||
PIOS_Assert(0);
|
||||
}
|
||||
|
||||
uint8_t * rx_buffer = (uint8_t *) pvPortMalloc(PIOS_COM_TELEM_RF_RX_BUF_LEN);
|
||||
uint8_t * tx_buffer = (uint8_t *) pvPortMalloc(PIOS_COM_TELEM_RF_TX_BUF_LEN);
|
||||
PIOS_Assert(rx_buffer);
|
||||
PIOS_Assert(tx_buffer);
|
||||
if (PIOS_COM_Init(&pios_com_telem_rf_id, &pios_usart_com_driver, pios_usart_telem_rf_id,
|
||||
rx_buffer, PIOS_COM_TELEM_RF_RX_BUF_LEN,
|
||||
tx_buffer, PIOS_COM_TELEM_RF_TX_BUF_LEN)) {
|
||||
PIOS_Assert(0);
|
||||
}
|
||||
}
|
||||
#endif /* PIOS_INCLUDE_TELEMETRY_RF */
|
||||
break;
|
||||
case HWSETTINGS_CC_MAINPORT_SBUS:
|
||||
#if defined(PIOS_INCLUDE_SBUS)
|
||||
{
|
||||
uint32_t pios_usart_sbus_id;
|
||||
if (PIOS_USART_Init(&pios_usart_sbus_id, &pios_usart_sbus_main_cfg)) {
|
||||
PIOS_Assert(0);
|
||||
}
|
||||
|
||||
uint32_t pios_sbus_id;
|
||||
if (PIOS_SBUS_Init(&pios_sbus_id, &pios_sbus_cfg, &pios_usart_com_driver, pios_usart_sbus_id)) {
|
||||
PIOS_Assert(0);
|
||||
}
|
||||
}
|
||||
#endif /* PIOS_INCLUDE_SBUS */
|
||||
break;
|
||||
case HWSETTINGS_CC_MAINPORT_GPS:
|
||||
#if defined(PIOS_INCLUDE_GPS)
|
||||
if (PIOS_USART_Init(&pios_usart_gps_id, &pios_usart_gps_cfg)) {
|
||||
PIOS_DEBUG_Assert(0);
|
||||
}
|
||||
if (PIOS_COM_Init(&pios_com_gps_id, &pios_usart_com_driver, pios_usart_gps_id)) {
|
||||
PIOS_DEBUG_Assert(0);
|
||||
}
|
||||
{
|
||||
uint32_t pios_usart_gps_id;
|
||||
if (PIOS_USART_Init(&pios_usart_gps_id, &pios_usart_gps_main_cfg)) {
|
||||
PIOS_Assert(0);
|
||||
}
|
||||
|
||||
uint8_t * rx_buffer = (uint8_t *) pvPortMalloc(PIOS_COM_GPS_RX_BUF_LEN);
|
||||
PIOS_Assert(rx_buffer);
|
||||
if (PIOS_COM_Init(&pios_com_gps_id, &pios_usart_com_driver, pios_usart_gps_id,
|
||||
rx_buffer, PIOS_COM_GPS_RX_BUF_LEN,
|
||||
NULL, 0)) {
|
||||
PIOS_Assert(0);
|
||||
}
|
||||
}
|
||||
#endif /* PIOS_INCLUDE_GPS */
|
||||
#endif /* PIOS_INCLUDE_COM */
|
||||
break;
|
||||
case HWSETTINGS_CC_MAINPORT_SPEKTRUM:
|
||||
#if defined(PIOS_INCLUDE_SPEKTRUM)
|
||||
{
|
||||
uint32_t pios_usart_spektrum_id;
|
||||
if (PIOS_USART_Init(&pios_usart_spektrum_id, &pios_usart_spektrum_main_cfg)) {
|
||||
PIOS_Assert(0);
|
||||
}
|
||||
|
||||
uint32_t pios_spektrum_id;
|
||||
if (PIOS_SPEKTRUM_Init(&pios_spektrum_id, &pios_spektrum_main_cfg, &pios_usart_com_driver, pios_usart_spektrum_id, false)) {
|
||||
PIOS_Assert(0);
|
||||
}
|
||||
}
|
||||
#endif /* PIOS_INCLUDE_SPEKTRUM */
|
||||
break;
|
||||
case HWSETTINGS_CC_MAINPORT_COMAUX:
|
||||
break;
|
||||
}
|
||||
|
||||
/* Configure the flexi port */
|
||||
uint8_t hwsettings_cc_flexiport;
|
||||
HwSettingsCC_FlexiPortGet(&hwsettings_cc_flexiport);
|
||||
|
||||
switch (hwsettings_cc_flexiport) {
|
||||
case HWSETTINGS_CC_FLEXIPORT_DISABLED:
|
||||
break;
|
||||
case HWSETTINGS_CC_FLEXIPORT_TELEMETRY:
|
||||
#if defined(PIOS_INCLUDE_TELEMETRY_RF)
|
||||
{
|
||||
uint32_t pios_usart_telem_rf_id;
|
||||
if (PIOS_USART_Init(&pios_usart_telem_rf_id, &pios_usart_telem_flexi_cfg)) {
|
||||
PIOS_Assert(0);
|
||||
}
|
||||
uint8_t * rx_buffer = (uint8_t *) pvPortMalloc(PIOS_COM_TELEM_RF_RX_BUF_LEN);
|
||||
uint8_t * tx_buffer = (uint8_t *) pvPortMalloc(PIOS_COM_TELEM_RF_TX_BUF_LEN);
|
||||
PIOS_Assert(rx_buffer);
|
||||
PIOS_Assert(tx_buffer);
|
||||
if (PIOS_COM_Init(&pios_com_telem_rf_id, &pios_usart_com_driver, pios_usart_telem_rf_id,
|
||||
rx_buffer, PIOS_COM_TELEM_RF_RX_BUF_LEN,
|
||||
tx_buffer, PIOS_COM_TELEM_RF_TX_BUF_LEN)) {
|
||||
PIOS_Assert(0);
|
||||
}
|
||||
}
|
||||
#endif /* PIOS_INCLUDE_TELEMETRY_RF */
|
||||
break;
|
||||
case HWSETTINGS_CC_FLEXIPORT_GPS:
|
||||
#if defined(PIOS_INCLUDE_GPS)
|
||||
{
|
||||
uint32_t pios_usart_gps_id;
|
||||
if (PIOS_USART_Init(&pios_usart_gps_id, &pios_usart_gps_flexi_cfg)) {
|
||||
PIOS_Assert(0);
|
||||
}
|
||||
uint8_t * rx_buffer = (uint8_t *) pvPortMalloc(PIOS_COM_GPS_RX_BUF_LEN);
|
||||
PIOS_Assert(rx_buffer);
|
||||
if (PIOS_COM_Init(&pios_com_gps_id, &pios_usart_com_driver, pios_usart_gps_id,
|
||||
rx_buffer, PIOS_COM_GPS_RX_BUF_LEN,
|
||||
NULL, 0)) {
|
||||
PIOS_Assert(0);
|
||||
}
|
||||
}
|
||||
#endif /* PIOS_INCLUDE_GPS */
|
||||
break;
|
||||
case HWSETTINGS_CC_FLEXIPORT_SPEKTRUM:
|
||||
#if defined(PIOS_INCLUDE_SPEKTRUM)
|
||||
{
|
||||
uint32_t pios_usart_spektrum_id;
|
||||
if (PIOS_USART_Init(&pios_usart_spektrum_id, &pios_usart_spektrum_flexi_cfg)) {
|
||||
PIOS_Assert(0);
|
||||
}
|
||||
|
||||
uint32_t pios_spektrum_id;
|
||||
if (PIOS_SPEKTRUM_Init(&pios_spektrum_id, &pios_spektrum_flexi_cfg, &pios_usart_com_driver, pios_usart_spektrum_id, false)) {
|
||||
PIOS_Assert(0);
|
||||
}
|
||||
}
|
||||
#endif /* PIOS_INCLUDE_SPEKTRUM */
|
||||
break;
|
||||
case HWSETTINGS_CC_FLEXIPORT_COMAUX:
|
||||
break;
|
||||
case HWSETTINGS_CC_FLEXIPORT_I2C:
|
||||
#if defined(PIOS_INCLUDE_I2C)
|
||||
{
|
||||
if (PIOS_I2C_Init(&pios_i2c_main_adapter_id, &pios_i2c_main_adapter_cfg)) {
|
||||
PIOS_Assert(0);
|
||||
}
|
||||
}
|
||||
#endif /* PIOS_INCLUDE_I2C */
|
||||
break;
|
||||
}
|
||||
|
||||
/* Configure the selected receiver */
|
||||
uint8_t manualcontrolsettings_inputmode;
|
||||
ManualControlSettingsInputModeGet(&manualcontrolsettings_inputmode);
|
||||
|
||||
switch (manualcontrolsettings_inputmode) {
|
||||
case MANUALCONTROLSETTINGS_INPUTMODE_PWM:
|
||||
#if defined(PIOS_INCLUDE_PWM)
|
||||
PIOS_PWM_Init();
|
||||
uint32_t pios_pwm_rcvr_id;
|
||||
if (PIOS_RCVR_Init(&pios_pwm_rcvr_id, &pios_pwm_rcvr_driver, 0)) {
|
||||
PIOS_Assert(0);
|
||||
}
|
||||
for (uint8_t i = 0;
|
||||
i < PIOS_PWM_NUM_INPUTS && pios_rcvr_max_channel < NELEMENTS(pios_rcvr_channel_to_id_map);
|
||||
i++) {
|
||||
pios_rcvr_channel_to_id_map[pios_rcvr_max_channel].id = pios_pwm_rcvr_id;
|
||||
pios_rcvr_channel_to_id_map[pios_rcvr_max_channel].channel = i;
|
||||
pios_rcvr_max_channel++;
|
||||
}
|
||||
#endif /* PIOS_INCLUDE_PWM */
|
||||
break;
|
||||
case MANUALCONTROLSETTINGS_INPUTMODE_PPM:
|
||||
#if defined(PIOS_INCLUDE_PPM)
|
||||
PIOS_PPM_Init();
|
||||
uint32_t pios_ppm_rcvr_id;
|
||||
if (PIOS_RCVR_Init(&pios_ppm_rcvr_id, &pios_ppm_rcvr_driver, 0)) {
|
||||
PIOS_Assert(0);
|
||||
}
|
||||
for (uint8_t i = 0;
|
||||
i < PIOS_PPM_NUM_INPUTS && pios_rcvr_max_channel < NELEMENTS(pios_rcvr_channel_to_id_map);
|
||||
i++) {
|
||||
pios_rcvr_channel_to_id_map[pios_rcvr_max_channel].id = pios_ppm_rcvr_id;
|
||||
pios_rcvr_channel_to_id_map[pios_rcvr_max_channel].channel = i;
|
||||
pios_rcvr_max_channel++;
|
||||
}
|
||||
#endif /* PIOS_INCLUDE_PPM */
|
||||
break;
|
||||
case MANUALCONTROLSETTINGS_INPUTMODE_SPEKTRUM:
|
||||
#if defined(PIOS_INCLUDE_SPEKTRUM)
|
||||
if (hwsettings_cc_mainport == HWSETTINGS_CC_MAINPORT_SPEKTRUM ||
|
||||
hwsettings_cc_flexiport == HWSETTINGS_CC_FLEXIPORT_SPEKTRUM) {
|
||||
uint32_t pios_spektrum_rcvr_id;
|
||||
if (PIOS_RCVR_Init(&pios_spektrum_rcvr_id, &pios_spektrum_rcvr_driver, 0)) {
|
||||
PIOS_Assert(0);
|
||||
}
|
||||
for (uint8_t i = 0;
|
||||
i < PIOS_SPEKTRUM_NUM_INPUTS && pios_rcvr_max_channel < NELEMENTS(pios_rcvr_channel_to_id_map);
|
||||
i++) {
|
||||
pios_rcvr_channel_to_id_map[pios_rcvr_max_channel].id = pios_spektrum_rcvr_id;
|
||||
pios_rcvr_channel_to_id_map[pios_rcvr_max_channel].channel = i;
|
||||
pios_rcvr_max_channel++;
|
||||
}
|
||||
}
|
||||
#endif /* PIOS_INCLUDE_SPEKTRUM */
|
||||
break;
|
||||
case MANUALCONTROLSETTINGS_INPUTMODE_SBUS:
|
||||
#if defined(PIOS_INCLUDE_SBUS)
|
||||
if (hwsettings_cc_mainport == HWSETTINGS_CC_MAINPORT_SBUS) {
|
||||
uint32_t pios_sbus_rcvr_id;
|
||||
if (PIOS_RCVR_Init(&pios_sbus_rcvr_id, &pios_sbus_rcvr_driver, 0)) {
|
||||
PIOS_Assert(0);
|
||||
}
|
||||
for (uint8_t i = 0;
|
||||
i < SBUS_NUMBER_OF_CHANNELS && pios_rcvr_max_channel < NELEMENTS(pios_rcvr_channel_to_id_map);
|
||||
i++) {
|
||||
pios_rcvr_channel_to_id_map[pios_rcvr_max_channel].id = pios_sbus_rcvr_id;
|
||||
pios_rcvr_channel_to_id_map[pios_rcvr_max_channel].channel = i;
|
||||
pios_rcvr_max_channel++;
|
||||
}
|
||||
}
|
||||
#endif /* PIOS_INCLUDE_SBUS */
|
||||
break;
|
||||
}
|
||||
|
||||
/* Remap AFIO pin */
|
||||
GPIO_PinRemapConfig( GPIO_Remap_SWJ_NoJTRST, ENABLE);
|
||||
@ -728,26 +1153,22 @@ void PIOS_Board_Init(void) {
|
||||
PIOS_ADC_Init();
|
||||
PIOS_GPIO_Init();
|
||||
|
||||
#if defined(PIOS_INCLUDE_PWM)
|
||||
PIOS_PWM_Init();
|
||||
#endif
|
||||
#if defined(PIOS_INCLUDE_PPM)
|
||||
PIOS_PPM_Init();
|
||||
#endif
|
||||
#if defined(PIOS_INCLUDE_USB_HID)
|
||||
PIOS_USB_HID_Init(0);
|
||||
uint32_t pios_usb_hid_id;
|
||||
PIOS_USB_HID_Init(&pios_usb_hid_id, &pios_usb_hid_main_cfg);
|
||||
#if defined(PIOS_INCLUDE_COM)
|
||||
if (PIOS_COM_Init(&pios_com_telem_usb_id, &pios_usb_com_driver, 0)) {
|
||||
PIOS_DEBUG_Assert(0);
|
||||
uint8_t * rx_buffer = (uint8_t *) pvPortMalloc(PIOS_COM_TELEM_USB_RX_BUF_LEN);
|
||||
uint8_t * tx_buffer = (uint8_t *) pvPortMalloc(PIOS_COM_TELEM_USB_TX_BUF_LEN);
|
||||
PIOS_Assert(rx_buffer);
|
||||
PIOS_Assert(tx_buffer);
|
||||
if (PIOS_COM_Init(&pios_com_telem_usb_id, &pios_usb_com_driver, pios_usb_hid_id,
|
||||
rx_buffer, PIOS_COM_TELEM_USB_RX_BUF_LEN,
|
||||
tx_buffer, PIOS_COM_TELEM_USB_TX_BUF_LEN)) {
|
||||
PIOS_Assert(0);
|
||||
}
|
||||
#endif /* PIOS_INCLUDE_COM */
|
||||
#endif
|
||||
#endif /* PIOS_INCLUDE_USB_HID */
|
||||
|
||||
#if defined(PIOS_INCLUDE_I2C)
|
||||
if (PIOS_I2C_Init(&pios_i2c_main_adapter_id, &pios_i2c_main_adapter_cfg)) {
|
||||
PIOS_DEBUG_Assert(0);
|
||||
}
|
||||
#endif /* PIOS_INCLUDE_I2C */
|
||||
PIOS_IAP_Init();
|
||||
PIOS_WDG_Init();
|
||||
}
|
||||
|
@ -42,7 +42,6 @@ void PIOS_Board_Init(void) {
|
||||
/* Initialize UAVObject libraries */
|
||||
EventDispatcherInitialize();
|
||||
UAVObjInitialize();
|
||||
UAVObjectsInitializeAll();
|
||||
|
||||
/* Initialize the alarms library */
|
||||
AlarmsInitialize();
|
||||
|
@ -35,6 +35,7 @@
|
||||
// Private variables
|
||||
static xSemaphoreHandle lock;
|
||||
static xTaskHandle handles[TASKINFO_RUNNING_NUMELEM];
|
||||
static uint32_t lastMonitorTime;
|
||||
|
||||
// Private functions
|
||||
|
||||
@ -45,6 +46,10 @@ int32_t TaskMonitorInitialize(void)
|
||||
{
|
||||
lock = xSemaphoreCreateRecursiveMutex();
|
||||
memset(handles, 0, sizeof(xTaskHandle)*TASKINFO_RUNNING_NUMELEM);
|
||||
lastMonitorTime = 0;
|
||||
#if defined(DIAGNOSTICS)
|
||||
lastMonitorTime = portGET_RUN_TIME_COUNTER_VALUE();
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -71,12 +76,27 @@ int32_t TaskMonitorAdd(TaskInfoRunningElem task, xTaskHandle handle)
|
||||
*/
|
||||
void TaskMonitorUpdateAll(void)
|
||||
{
|
||||
#if defined(DIAGNOSTICS)
|
||||
TaskInfoData data;
|
||||
int n;
|
||||
|
||||
// Lock
|
||||
xSemaphoreTakeRecursive(lock, portMAX_DELAY);
|
||||
|
||||
#if ( configGENERATE_RUN_TIME_STATS == 1 )
|
||||
uint32_t currentTime;
|
||||
uint32_t deltaTime;
|
||||
|
||||
/*
|
||||
* Calculate the amount of elapsed run time between the last time we
|
||||
* measured and now. Scale so that we can convert task run times
|
||||
* directly to percentages.
|
||||
*/
|
||||
currentTime = portGET_RUN_TIME_COUNTER_VALUE();
|
||||
deltaTime = ((currentTime - lastMonitorTime) / 100) ? : 1; /* avoid divide-by-zero if the interval is too small */
|
||||
lastMonitorTime = currentTime;
|
||||
#endif
|
||||
|
||||
// Update all task information
|
||||
for (n = 0; n < TASKINFO_RUNNING_NUMELEM; ++n)
|
||||
{
|
||||
@ -87,12 +107,18 @@ void TaskMonitorUpdateAll(void)
|
||||
data.StackRemaining[n] = 10000;
|
||||
#else
|
||||
data.StackRemaining[n] = uxTaskGetStackHighWaterMark(handles[n]) * 4;
|
||||
#if ( configGENERATE_RUN_TIME_STATS == 1 )
|
||||
/* Generate run time stats */
|
||||
data.RunningTime[n] = uxTaskGetRunTime(handles[n]) / deltaTime;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
data.Running[n] = TASKINFO_RUNNING_FALSE;
|
||||
data.StackRemaining[n] = 0;
|
||||
data.RunningTime[n] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@ -101,4 +127,5 @@ void TaskMonitorUpdateAll(void)
|
||||
|
||||
// Done
|
||||
xSemaphoreGiveRecursive(lock);
|
||||
#endif
|
||||
}
|
||||
|
@ -25,11 +25,17 @@
|
||||
WHEREAMI := $(dir $(lastword $(MAKEFILE_LIST)))
|
||||
TOP := $(realpath $(WHEREAMI)/../../)
|
||||
include $(TOP)/make/firmware-defs.mk
|
||||
include $(TOP)/make/boards/$(BOARD_NAME)/board-info.mk
|
||||
|
||||
# Target file name (without extension).
|
||||
TARGET := fw_$(BOARD_NAME)
|
||||
|
||||
# Directory for output files (lst, obj, dep, elf, sym, map, hex, bin etc.)
|
||||
OUTDIR := $(TOP)/build/$(TARGET)
|
||||
|
||||
# Set developer code and compile options
|
||||
# Set to YES for debugging
|
||||
DEBUG ?= YES
|
||||
USE_BOOTLOADER ?= NO
|
||||
|
||||
# Set to YES when using Code Sourcery toolchain
|
||||
CODE_SOURCERY ?= YES
|
||||
@ -42,26 +48,6 @@ endif
|
||||
|
||||
FLASH_TOOL = OPENOCD
|
||||
|
||||
# MCU name, submodel and board
|
||||
# - MCU used for compiler-option (-mcpu)
|
||||
# - MODEL used for linker-script name (-T) and passed as define
|
||||
# - BOARD just passed as define (optional)
|
||||
MCU = cortex-m3
|
||||
CHIP = STM32F103RET
|
||||
BOARD = STM3210E_INS
|
||||
MODEL = HD
|
||||
ifeq ($(USE_BOOTLOADER), YES)
|
||||
BOOT_MODEL = $(MODEL)_BL
|
||||
else
|
||||
BOOT_MODEL = $(MODEL)_NB
|
||||
endif
|
||||
|
||||
# Directory for output files (lst, obj, dep, elf, sym, map, hex, bin etc.)
|
||||
OUTDIR = $(TOP)/build/ins
|
||||
|
||||
# Target file name (without extension).
|
||||
TARGET = INS
|
||||
|
||||
# Paths
|
||||
INS = ./
|
||||
INSINC = $(INS)/inc
|
||||
@ -168,7 +154,7 @@ CPPSRCARM =
|
||||
# Even though the DOS/Win* filesystem matches both .s and .S the same,
|
||||
# it will preserve the spelling of the filenames, and gcc itself does
|
||||
# care about how the name is spelled on its command-line.
|
||||
ASRC = $(PIOSSTM32F10X)/startup_stm32f10x_$(MODEL).S
|
||||
ASRC = $(PIOSSTM32F10X)/startup_stm32f10x_$(MODEL)$(MODEL_SUFFIX).S
|
||||
|
||||
# List Assembler source files here which must be assembled in ARM-Mode..
|
||||
ASRCARM =
|
||||
@ -231,9 +217,7 @@ CDEFS = -DSTM32F10X_$(MODEL)
|
||||
CDEFS += -DUSE_STDPERIPH_DRIVER
|
||||
CDEFS += -DUSE_$(BOARD)
|
||||
CDEFS += -DIN_INS
|
||||
ifeq ($(USE_BOOTLOADER), YES)
|
||||
CDEFS += -DUSE_BOOTLOADER
|
||||
endif
|
||||
|
||||
# Place project-specific -D and/or -U options for
|
||||
# Assembler with preprocessor here.
|
||||
#ADEFS = -DUSE_IRQ_ASM_WRAPPER
|
||||
@ -311,22 +295,11 @@ LDFLAGS += $(MATH_LIB)
|
||||
LDFLAGS += -lc -lgcc
|
||||
|
||||
# Set linker-script name depending on selected submodel name
|
||||
LDFLAGS +=-T$(LINKERSCRIPTPATH)/link_$(BOARD)_$(BOOT_MODEL).ld
|
||||
|
||||
OOCD_LOADFILE+=$(OUTDIR)/$(TARGET).elf
|
||||
# Program
|
||||
OOCD_CL+=-c "flash write_image $(OOCD_LOADFILE)"
|
||||
# Verify
|
||||
OOCD_CL+=-c "verify_image $(OOCD_LOADFILE)"
|
||||
# reset target
|
||||
OOCD_CL+=-c "reset run"
|
||||
# # terminate OOCD after programming
|
||||
OOCD_CL+=-c shutdown
|
||||
LDFLAGS += -T$(LINKERSCRIPTPATH)/link_$(BOARD)_memory.ld
|
||||
LDFLAGS += -T$(LINKERSCRIPTPATH)/link_$(BOARD)_sections.ld
|
||||
|
||||
# Define programs and commands.
|
||||
REMOVE = $(REMOVE_CMD) -f
|
||||
###SHELL = sh
|
||||
###COPY = cp
|
||||
|
||||
# List of all source files.
|
||||
ALLSRC = $(ASRCARM) $(ASRC) $(SRCARM) $(SRC) $(CPPSRCARM) $(CPPSRC)
|
||||
@ -358,21 +331,6 @@ endif
|
||||
endif
|
||||
endif
|
||||
|
||||
# Program the device.
|
||||
ifeq ($(USE_BOOTLOADER), YES)
|
||||
# Program the device with OP Upload Tool".
|
||||
program: $(OUTDIR)/$(TARGET).bin
|
||||
@echo ${quote}Programming with OP Upload Tool${quote}
|
||||
../../ground/src/experimental/upload-build-desktop/debug/OPUploadTool -d 1 -p $(OUTDIR)/$(TARGET).bin
|
||||
else
|
||||
ifeq ($(FLASH_TOOL),OPENOCD)
|
||||
# Program the device with Dominic Rath's OPENOCD in "batch-mode", needs cfg and "reset-script".
|
||||
program: $(OUTDIR)/$(TARGET).elf
|
||||
@echo ${quote}Programming with OPENOCD${quote}
|
||||
$(OOCD_EXE) $(OOCD_CL)
|
||||
endif
|
||||
endif
|
||||
|
||||
# Link: create ELF output file from object files.
|
||||
$(eval $(call LINK_TEMPLATE, $(OUTDIR)/$(TARGET).elf, $(ALLOBJ)))
|
||||
|
||||
@ -400,22 +358,39 @@ $(eval $(call PARTIAL_COMPILE_TEMPLATE, SRC))
|
||||
# Compile: create assembler files from C source files. ARM only
|
||||
$(eval $(call PARTIAL_COMPILE_ARM_TEMPLATE, SRCARM))
|
||||
|
||||
.PHONY: elf lss sym hex bin
|
||||
$(OUTDIR)/$(TARGET).bin.o: $(OUTDIR)/$(TARGET).bin
|
||||
|
||||
$(eval $(call OPFW_TEMPLATE,$(OUTDIR)/$(TARGET).bin,$(BOARD_TYPE),$(BOARD_REVISION)))
|
||||
|
||||
# Add jtag targets (program and wipe)
|
||||
$(eval $(call JTAG_TEMPLATE,$(OUTDIR)/$(TARGET).bin,$(FW_BANK_BASE),$(FW_BANK_SIZE)))
|
||||
|
||||
.PHONY: elf lss sym hex bin bino opfw
|
||||
elf: $(OUTDIR)/$(TARGET).elf
|
||||
lss: $(OUTDIR)/$(TARGET).lss
|
||||
sym: $(OUTDIR)/$(TARGET).sym
|
||||
hex: $(OUTDIR)/$(TARGET).hex
|
||||
bin: $(OUTDIR)/$(TARGET).bin
|
||||
bino: $(OUTDIR)/$(TARGET).bin.o
|
||||
opfw: $(OUTDIR)/$(TARGET).opfw
|
||||
|
||||
# Display sizes of sections.
|
||||
$(eval $(call SIZE_TEMPLATE, $(OUTDIR)/$(TARGET).elf))
|
||||
.PHONY: size
|
||||
size: $(OUTDIR)/$(TARGET).elf_size
|
||||
|
||||
# Generate Doxygen documents
|
||||
docs:
|
||||
doxygen $(DOXYGENDIR)/doxygen.cfg
|
||||
|
||||
# Install: install binary file with prefix/suffix into install directory
|
||||
install: $(OUTDIR)/$(TARGET).opfw
|
||||
ifneq ($(INSTALL_DIR),)
|
||||
@echo $(MSG_INSTALLING) $(call toprel, $<)
|
||||
$(V1) mkdir -p $(INSTALL_DIR)
|
||||
$(V1) $(INSTALL) $< $(INSTALL_DIR)/$(INSTALL_PFX)$(TARGET)$(INSTALL_SFX).opfw
|
||||
else
|
||||
$(error INSTALL_DIR must be specified for $@)
|
||||
endif
|
||||
|
||||
# Target: clean project.
|
||||
clean: clean_list
|
||||
|
||||
@ -450,6 +425,5 @@ else
|
||||
-include $(shell mkdir $(OUTDIR) 2>/dev/null) $(shell mkdir $(OUTDIR)/dep 2>/dev/null) $(wildcard $(OUTDIR)/dep/*)
|
||||
endif
|
||||
|
||||
|
||||
# Listing of phony targets.
|
||||
.PHONY : all build clean clean_list program
|
||||
.PHONY : all build clean clean_list install
|
||||
|
@ -61,7 +61,6 @@ static const struct pios_spi_cfg pios_spi_op_mag_cfg = {
|
||||
.ahb_clk = RCC_AHBPeriph_DMA1,
|
||||
|
||||
.irq = {
|
||||
.handler = PIOS_SPI_op_mag_irq_handler,
|
||||
.flags =
|
||||
(DMA1_FLAG_TC4 | DMA1_FLAG_TE4 | DMA1_FLAG_HT4 |
|
||||
DMA1_FLAG_GL4),
|
||||
@ -175,7 +174,6 @@ static const struct pios_spi_cfg pios_spi_accel_cfg = {
|
||||
.ahb_clk = RCC_AHBPeriph_DMA1,
|
||||
|
||||
.irq = {
|
||||
.handler = PIOS_SPI_accel_irq_handler,
|
||||
.flags = (DMA1_FLAG_TC2 | DMA1_FLAG_TE2 | DMA1_FLAG_HT2 | DMA1_FLAG_GL2),
|
||||
.init = {
|
||||
.NVIC_IRQChannel = DMA1_Channel2_IRQn,
|
||||
@ -265,17 +263,10 @@ void PIOS_SPI_accel_irq_handler(void)
|
||||
/*
|
||||
* GPS USART
|
||||
*/
|
||||
void PIOS_USART_gps_irq_handler(void);
|
||||
void USART1_IRQHandler()
|
||||
__attribute__ ((alias("PIOS_USART_gps_irq_handler")));
|
||||
const struct pios_usart_cfg pios_usart_gps_cfg = {
|
||||
static const struct pios_usart_cfg pios_usart_gps_cfg = {
|
||||
.regs = USART1,
|
||||
.init = {
|
||||
#if defined (PIOS_USART_BAUDRATE)
|
||||
.USART_BaudRate = PIOS_USART_BAUDRATE,
|
||||
#else
|
||||
.USART_BaudRate = 57600,
|
||||
#endif
|
||||
.USART_WordLength = USART_WordLength_8b,
|
||||
.USART_Parity = USART_Parity_No,
|
||||
.USART_StopBits = USART_StopBits_1,
|
||||
@ -284,7 +275,6 @@ const struct pios_usart_cfg pios_usart_gps_cfg = {
|
||||
.USART_Mode = USART_Mode_Rx | USART_Mode_Tx,
|
||||
},
|
||||
.irq = {
|
||||
.handler = PIOS_USART_gps_irq_handler,
|
||||
.init = {
|
||||
.NVIC_IRQChannel = USART1_IRQn,
|
||||
.NVIC_IRQChannelPreemptionPriority = PIOS_IRQ_PRIO_MID,
|
||||
@ -310,29 +300,16 @@ const struct pios_usart_cfg pios_usart_gps_cfg = {
|
||||
},
|
||||
};
|
||||
|
||||
static uint32_t pios_usart_gps_id;
|
||||
void PIOS_USART_gps_irq_handler(void)
|
||||
{
|
||||
PIOS_USART_IRQ_Handler(pios_usart_gps_id);
|
||||
}
|
||||
|
||||
#endif /* PIOS_INCLUDE_GPS */
|
||||
|
||||
#ifdef PIOS_COM_AUX
|
||||
/*
|
||||
* AUX USART
|
||||
*/
|
||||
void PIOS_USART_aux_irq_handler(void);
|
||||
void USART4_IRQHandler()
|
||||
__attribute__ ((alias("PIOS_USART_aux_irq_handler")));
|
||||
const struct pios_usart_cfg pios_usart_aux_cfg = {
|
||||
static const struct pios_usart_cfg pios_usart_aux_cfg = {
|
||||
.regs = USART4,
|
||||
.init = {
|
||||
#if defined (PIOS_USART_BAUDRATE)
|
||||
.USART_BaudRate = PIOS_USART_BAUDRATE,
|
||||
#else
|
||||
.USART_BaudRate = 57600,
|
||||
#endif
|
||||
.USART_WordLength = USART_WordLength_8b,
|
||||
.USART_Parity = USART_Parity_No,
|
||||
.USART_StopBits = USART_StopBits_1,
|
||||
@ -341,7 +318,6 @@ const struct pios_usart_cfg pios_usart_aux_cfg = {
|
||||
.USART_Mode = USART_Mode_Rx | USART_Mode_Tx,
|
||||
},
|
||||
.irq = {
|
||||
.handler = PIOS_USART_aux_irq_handler,
|
||||
.init = {
|
||||
.NVIC_IRQChannel = USART4_IRQn,
|
||||
.NVIC_IRQChannelPreemptionPriority = PIOS_IRQ_PRIO_HIGH,
|
||||
@ -367,15 +343,24 @@ const struct pios_usart_cfg pios_usart_aux_cfg = {
|
||||
},
|
||||
};
|
||||
|
||||
static uint32_t pios_usart_aux_id;
|
||||
void PIOS_USART_aux_irq_handler(void)
|
||||
{
|
||||
PIOS_USART_IRQ_Handler(pios_usart_aux_id);
|
||||
}
|
||||
|
||||
#endif /* PIOS_COM_AUX */
|
||||
|
||||
|
||||
#if defined(PIOS_INCLUDE_COM)
|
||||
|
||||
#include <pios_com_priv.h>
|
||||
|
||||
#if 0
|
||||
#define PIOS_COM_AUX_TX_BUF_LEN 192
|
||||
static uint8_t pios_com_aux_tx_buffer[PIOS_COM_AUX_TX_BUF_LEN];
|
||||
#endif
|
||||
|
||||
#define PIOS_COM_GPS_RX_BUF_LEN 96
|
||||
static uint8_t pios_com_gps_rx_buffer[PIOS_COM_GPS_RX_BUF_LEN];
|
||||
|
||||
|
||||
#endif /* PIOS_INCLUDE_COM */
|
||||
|
||||
#if defined(PIOS_INCLUDE_I2C)
|
||||
|
||||
#include <pios_i2c_priv.h>
|
||||
@ -391,7 +376,7 @@ void I2C1_EV_IRQHandler()
|
||||
void I2C1_ER_IRQHandler()
|
||||
__attribute__ ((alias("PIOS_I2C_pres_mag_adapter_er_irq_handler")));
|
||||
|
||||
const struct pios_i2c_adapter_cfg pios_i2c_pres_mag_adapter_cfg = {
|
||||
static const struct pios_i2c_adapter_cfg pios_i2c_pres_mag_adapter_cfg = {
|
||||
.regs = I2C1,
|
||||
.init = {
|
||||
.I2C_Mode = I2C_Mode_I2C,
|
||||
@ -419,7 +404,6 @@ const struct pios_i2c_adapter_cfg pios_i2c_pres_mag_adapter_cfg = {
|
||||
},
|
||||
},
|
||||
.event = {
|
||||
.handler = PIOS_I2C_pres_mag_adapter_ev_irq_handler,
|
||||
.flags = 0, /* FIXME: check this */
|
||||
.init = {
|
||||
.NVIC_IRQChannel = I2C1_EV_IRQn,
|
||||
@ -429,7 +413,6 @@ const struct pios_i2c_adapter_cfg pios_i2c_pres_mag_adapter_cfg = {
|
||||
},
|
||||
},
|
||||
.error = {
|
||||
.handler = PIOS_I2C_pres_mag_adapter_er_irq_handler,
|
||||
.flags = 0, /* FIXME: check this */
|
||||
.init = {
|
||||
.NVIC_IRQChannel = I2C1_ER_IRQn,
|
||||
@ -459,7 +442,7 @@ void PIOS_I2C_gyro_adapter_er_irq_handler(void);
|
||||
void I2C2_EV_IRQHandler() __attribute__ ((alias ("PIOS_I2C_gyro_adapter_ev_irq_handler")));
|
||||
void I2C2_ER_IRQHandler() __attribute__ ((alias ("PIOS_I2C_gyro_adapter_er_irq_handler")));
|
||||
|
||||
const struct pios_i2c_adapter_cfg pios_i2c_gyro_adapter_cfg = {
|
||||
static const struct pios_i2c_adapter_cfg pios_i2c_gyro_adapter_cfg = {
|
||||
.regs = I2C2,
|
||||
.init = {
|
||||
.I2C_Mode = I2C_Mode_I2C,
|
||||
@ -487,7 +470,6 @@ const struct pios_i2c_adapter_cfg pios_i2c_gyro_adapter_cfg = {
|
||||
},
|
||||
},
|
||||
.event = {
|
||||
.handler = PIOS_I2C_gyro_adapter_ev_irq_handler,
|
||||
.flags = 0, /* FIXME: check this */
|
||||
.init = {
|
||||
.NVIC_IRQChannel = I2C2_EV_IRQn,
|
||||
@ -497,7 +479,6 @@ const struct pios_i2c_adapter_cfg pios_i2c_gyro_adapter_cfg = {
|
||||
},
|
||||
},
|
||||
.error = {
|
||||
.handler = PIOS_I2C_gyro_adapter_er_irq_handler,
|
||||
.flags = 0, /* FIXME: check this */
|
||||
.init = {
|
||||
.NVIC_IRQChannel = I2C2_ER_IRQn,
|
||||
@ -547,10 +528,13 @@ void PIOS_Board_Init(void) {
|
||||
|
||||
#if defined(PIOS_INCLUDE_COM)
|
||||
#if defined(PIOS_INCLUDE_GPS)
|
||||
uint32_t pios_usart_gps_id;
|
||||
if (PIOS_USART_Init(&pios_usart_gps_id, &pios_usart_gps_cfg)) {
|
||||
PIOS_DEBUG_Assert(0);
|
||||
}
|
||||
if (PIOS_COM_Init(&pios_com_gps_id, &pios_usart_com_driver, pios_usart_gps_id)) {
|
||||
if (PIOS_COM_Init(&pios_com_gps_id, &pios_usart_com_driver, pios_usart_gps_id,
|
||||
pios_com_gps_rx_buffer, sizeof(pios_com_gps_rx_buffer),
|
||||
NULL, 0)) {
|
||||
PIOS_DEBUG_Assert(0);
|
||||
}
|
||||
#endif /* PIOS_INCLUDE_GPS */
|
||||
|
@ -79,6 +79,7 @@ CREATEHANDLE(10, FirmwareIAPObj);
|
||||
static void ObjectUpdatedCb(UAVObjEvent * ev);
|
||||
|
||||
#define ADDHANDLE(idx,obj) {\
|
||||
obj##Initialize();\
|
||||
int n = idx;\
|
||||
objectHandles[n].data = &obj;\
|
||||
objectHandles[n].uavHandle = obj##Handle();\
|
||||
|
@ -26,7 +26,7 @@
|
||||
#ifndef _FIFO_BUFFER_H_
|
||||
#define _FIFO_BUFFER_H_
|
||||
|
||||
#include "stm32f10x.h"
|
||||
#include <stdint.h>
|
||||
|
||||
// *********************
|
||||
|
||||
|
@ -52,6 +52,8 @@
|
||||
|
||||
#include "ahrs_comms.h"
|
||||
#include "ahrs_spi_comm.h"
|
||||
#include "ahrsstatus.h"
|
||||
#include "ahrscalibration.h"
|
||||
|
||||
// Private constants
|
||||
#define STACK_SIZE configMINIMAL_STACK_SIZE-128
|
||||
@ -69,7 +71,7 @@ static void ahrscommsTask(void *parameters);
|
||||
* Initialise the module, called on startup
|
||||
* \returns 0 on success or -1 if initialisation failed
|
||||
*/
|
||||
int32_t AHRSCommsInitialize(void)
|
||||
int32_t AHRSCommsStart(void)
|
||||
{
|
||||
// Start main task
|
||||
xTaskCreate(ahrscommsTask, (signed char *)"AHRSComms", STACK_SIZE, NULL, TASK_PRIORITY, &taskHandle);
|
||||
@ -79,6 +81,22 @@ int32_t AHRSCommsInitialize(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialise the module, called on startup
|
||||
* \returns 0 on success or -1 if initialisation failed
|
||||
*/
|
||||
int32_t AHRSCommsInitialize(void)
|
||||
{
|
||||
AhrsStatusInitialize();
|
||||
AHRSCalibrationInitialize();
|
||||
AttitudeRawInitialize();
|
||||
VelocityActualInitialize();
|
||||
PositionActualInitialize();
|
||||
|
||||
return 0;
|
||||
}
|
||||
MODULE_INITCALL(AHRSCommsInitialize, AHRSCommsStart)
|
||||
|
||||
/**
|
||||
* Module thread, should not return.
|
||||
*/
|
||||
|
@ -32,6 +32,7 @@
|
||||
|
||||
|
||||
#include "openpilot.h"
|
||||
#include "accessorydesired.h"
|
||||
#include "actuator.h"
|
||||
#include "actuatorsettings.h"
|
||||
#include "systemsettings.h"
|
||||
@ -40,6 +41,7 @@
|
||||
#include "flightstatus.h"
|
||||
#include "mixersettings.h"
|
||||
#include "mixerstatus.h"
|
||||
#include "cameradesired.h"
|
||||
|
||||
|
||||
// Private constants
|
||||
@ -74,7 +76,6 @@ static int16_t scaleChannel(float value, int16_t max, int16_t min, int16_t neutr
|
||||
static void setFailsafe();
|
||||
static float MixerCurve(const float throttle, const float* curve);
|
||||
static bool set_channel(uint8_t mixer_channel, uint16_t value);
|
||||
|
||||
float ProcessMixer(const int index, const float curve1, const float curve2,
|
||||
MixerSettingsData* mixerSettings, ActuatorDesiredData* desired,
|
||||
const float period);
|
||||
@ -85,6 +86,19 @@ typedef struct {
|
||||
int8_t matrix[5];
|
||||
} __attribute__((packed)) Mixer_t;
|
||||
|
||||
/**
|
||||
* @brief Module initialization
|
||||
* @return 0
|
||||
*/
|
||||
int32_t ActuatorStart()
|
||||
{
|
||||
// Start main task
|
||||
xTaskCreate(actuatorTask, (signed char*)"Actuator", STACK_SIZE_BYTES/4, NULL, TASK_PRIORITY, &taskHandle);
|
||||
TaskMonitorAdd(TASKINFO_RUNNING_ACTUATOR, taskHandle);
|
||||
PIOS_WDG_RegisterFlag(PIOS_WDG_ACTUATOR);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Module initialization
|
||||
@ -95,19 +109,23 @@ int32_t ActuatorInitialize()
|
||||
// Create object queue
|
||||
queue = xQueueCreate(MAX_QUEUE_SIZE, sizeof(UAVObjEvent));
|
||||
|
||||
ActuatorSettingsInitialize();
|
||||
ActuatorDesiredInitialize();
|
||||
MixerSettingsInitialize();
|
||||
ActuatorCommandInitialize();
|
||||
#if defined(DIAGNOSTICS)
|
||||
MixerStatusInitialize();
|
||||
#endif
|
||||
|
||||
// Listen for ExampleObject1 updates
|
||||
ActuatorDesiredConnectQueue(queue);
|
||||
|
||||
// If settings change, update the output rate
|
||||
ActuatorSettingsConnectCallback(actuator_update_rate);
|
||||
|
||||
// Start main task
|
||||
xTaskCreate(actuatorTask, (signed char*)"Actuator", STACK_SIZE_BYTES/4, NULL, TASK_PRIORITY, &taskHandle);
|
||||
TaskMonitorAdd(TASKINFO_RUNNING_ACTUATOR, taskHandle);
|
||||
PIOS_WDG_RegisterFlag(PIOS_WDG_ACTUATOR);
|
||||
|
||||
return 0;
|
||||
}
|
||||
MODULE_INITCALL(ActuatorInitialize, ActuatorStart)
|
||||
|
||||
/**
|
||||
* @brief Main Actuator module task
|
||||
@ -128,17 +146,20 @@ static void actuatorTask(void* parameters)
|
||||
portTickType lastSysTime;
|
||||
portTickType thisSysTime;
|
||||
float dT = 0.0f;
|
||||
ActuatorCommandData command;
|
||||
ActuatorSettingsData settings;
|
||||
|
||||
SystemSettingsData sysSettings;
|
||||
ActuatorCommandData command;
|
||||
MixerSettingsData mixerSettings;
|
||||
ActuatorDesiredData desired;
|
||||
MixerStatusData mixerStatus;
|
||||
FlightStatusData flightStatus;
|
||||
|
||||
ActuatorSettingsGet(&settings);
|
||||
PIOS_Servo_SetHz(&settings.ChannelUpdateFreq[0], ACTUATORSETTINGS_CHANNELUPDATEFREQ_NUMELEM);
|
||||
uint8_t MotorsSpinWhileArmed;
|
||||
int16_t ChannelMax[ACTUATORCOMMAND_CHANNEL_NUMELEM];
|
||||
int16_t ChannelMin[ACTUATORCOMMAND_CHANNEL_NUMELEM];
|
||||
int16_t ChannelNeutral[ACTUATORCOMMAND_CHANNEL_NUMELEM];
|
||||
uint16_t ChannelUpdateFreq[ACTUATORSETTINGS_CHANNELUPDATEFREQ_NUMELEM];
|
||||
ActuatorSettingsChannelUpdateFreqGet(ChannelUpdateFreq);
|
||||
PIOS_Servo_SetHz(&ChannelUpdateFreq[0], ACTUATORSETTINGS_CHANNELUPDATEFREQ_NUMELEM);
|
||||
|
||||
float * status = (float *)&mixerStatus; //access status objects as an array of floats
|
||||
|
||||
@ -164,14 +185,18 @@ static void actuatorTask(void* parameters)
|
||||
dT = (thisSysTime - lastSysTime) / portTICK_RATE_MS / 1000.0f;
|
||||
lastSysTime = thisSysTime;
|
||||
|
||||
|
||||
FlightStatusGet(&flightStatus);
|
||||
SystemSettingsGet(&sysSettings);
|
||||
MixerStatusGet(&mixerStatus);
|
||||
MixerSettingsGet (&mixerSettings);
|
||||
ActuatorDesiredGet(&desired);
|
||||
ActuatorCommandGet(&command);
|
||||
ActuatorSettingsGet(&settings);
|
||||
|
||||
#if defined(DIAGNOSTICS)
|
||||
MixerStatusGet(&mixerStatus);
|
||||
#endif
|
||||
ActuatorSettingsMotorsSpinWhileArmedGet(&MotorsSpinWhileArmed);
|
||||
ActuatorSettingsChannelMaxGet(ChannelMax);
|
||||
ActuatorSettingsChannelMinGet(ChannelMin);
|
||||
ActuatorSettingsChannelNeutralGet(ChannelNeutral);
|
||||
|
||||
int nMixers = 0;
|
||||
Mixer_t * mixers = (Mixer_t *)&mixerSettings.Mixer1Type;
|
||||
@ -192,10 +217,38 @@ static void actuatorTask(void* parameters)
|
||||
|
||||
bool armed = flightStatus.Armed == FLIGHTSTATUS_ARMED_ARMED;
|
||||
bool positiveThrottle = desired.Throttle >= 0.00;
|
||||
bool spinWhileArmed = settings.MotorsSpinWhileArmed == ACTUATORSETTINGS_MOTORSSPINWHILEARMED_TRUE;
|
||||
bool spinWhileArmed = MotorsSpinWhileArmed == ACTUATORSETTINGS_MOTORSSPINWHILEARMED_TRUE;
|
||||
|
||||
float curve1 = MixerCurve(desired.Throttle,mixerSettings.ThrottleCurve1);
|
||||
float curve2 = MixerCurve(desired.Throttle,mixerSettings.ThrottleCurve2);
|
||||
//The source for the secondary curve is selectable
|
||||
float curve2 = 0;
|
||||
AccessoryDesiredData accessory;
|
||||
switch(mixerSettings.Curve2Source) {
|
||||
case MIXERSETTINGS_CURVE2SOURCE_THROTTLE:
|
||||
curve2 = MixerCurve(desired.Throttle,mixerSettings.ThrottleCurve2);
|
||||
break;
|
||||
case MIXERSETTINGS_CURVE2SOURCE_ROLL:
|
||||
curve2 = MixerCurve(desired.Roll,mixerSettings.ThrottleCurve2);
|
||||
break;
|
||||
case MIXERSETTINGS_CURVE2SOURCE_PITCH:
|
||||
curve2 = MixerCurve(desired.Pitch,mixerSettings.ThrottleCurve2);
|
||||
break;
|
||||
case MIXERSETTINGS_CURVE2SOURCE_YAW:
|
||||
curve2 = MixerCurve(desired.Yaw,mixerSettings.ThrottleCurve2);
|
||||
break;
|
||||
case MIXERSETTINGS_CURVE2SOURCE_ACCESSORY0:
|
||||
case MIXERSETTINGS_CURVE2SOURCE_ACCESSORY1:
|
||||
case MIXERSETTINGS_CURVE2SOURCE_ACCESSORY2:
|
||||
case MIXERSETTINGS_CURVE2SOURCE_ACCESSORY3:
|
||||
case MIXERSETTINGS_CURVE2SOURCE_ACCESSORY4:
|
||||
case MIXERSETTINGS_CURVE2SOURCE_ACCESSORY5:
|
||||
if(AccessoryDesiredInstGet(mixerSettings.Curve2Source - MIXERSETTINGS_CURVE2SOURCE_ACCESSORY0,&accessory) == 0)
|
||||
curve2 = MixerCurve(accessory.AccessoryVal,mixerSettings.ThrottleCurve2);
|
||||
else
|
||||
curve2 = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
for(int ct=0; ct < MAX_MIX_ACTUATORS; ct++)
|
||||
{
|
||||
if(mixers[ct].type == MIXERSETTINGS_MIXER1TYPE_DISABLED) {
|
||||
@ -205,7 +258,12 @@ static void actuatorTask(void* parameters)
|
||||
continue;
|
||||
}
|
||||
|
||||
status[ct] = ProcessMixer(ct, curve1, curve2, &mixerSettings, &desired, dT);
|
||||
if((mixers[ct].type == MIXERSETTINGS_MIXER1TYPE_MOTOR) || (mixers[ct].type == MIXERSETTINGS_MIXER1TYPE_SERVO))
|
||||
status[ct] = ProcessMixer(ct, curve1, curve2, &mixerSettings, &desired, dT);
|
||||
else
|
||||
status[ct] = -1;
|
||||
|
||||
|
||||
|
||||
// Motors have additional protection for when to be on
|
||||
if(mixers[ct].type == MIXERSETTINGS_MIXER1TYPE_MOTOR) {
|
||||
@ -224,12 +282,51 @@ static void actuatorTask(void* parameters)
|
||||
status[ct] = 0;
|
||||
}
|
||||
|
||||
// If an accessory channel is selected for direct bypass mode
|
||||
// In this configuration the accessory channel is scaled and mapped
|
||||
// directly to output. Note: THERE IS NO SAFETY CHECK HERE FOR ARMING
|
||||
// these also will not be updated in failsafe mode. I'm not sure what
|
||||
// the correct behavior is since it seems domain specific. I don't love
|
||||
// this code
|
||||
if( (mixers[ct].type >= MIXERSETTINGS_MIXER1TYPE_ACCESSORY0) &&
|
||||
(mixers[ct].type <= MIXERSETTINGS_MIXER1TYPE_ACCESSORY5))
|
||||
{
|
||||
if(AccessoryDesiredInstGet(mixers[ct].type - MIXERSETTINGS_MIXER1TYPE_ACCESSORY0,&accessory) == 0)
|
||||
status[ct] = accessory.AccessoryVal;
|
||||
else
|
||||
status[ct] = -1;
|
||||
}
|
||||
if( (mixers[ct].type >= MIXERSETTINGS_MIXER1TYPE_CAMERAROLL) &&
|
||||
(mixers[ct].type <= MIXERSETTINGS_MIXER1TYPE_CAMERAYAW))
|
||||
{
|
||||
CameraDesiredData cameraDesired;
|
||||
if( CameraDesiredGet(&cameraDesired) == 0 ) {
|
||||
switch(mixers[ct].type) {
|
||||
case MIXERSETTINGS_MIXER1TYPE_CAMERAROLL:
|
||||
status[ct] = cameraDesired.Roll;
|
||||
break;
|
||||
case MIXERSETTINGS_MIXER1TYPE_CAMERAPITCH:
|
||||
status[ct] = cameraDesired.Pitch;
|
||||
break;
|
||||
case MIXERSETTINGS_MIXER1TYPE_CAMERAYAW:
|
||||
status[ct] = cameraDesired.Yaw;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
status[ct] = -1;
|
||||
}
|
||||
|
||||
command.Channel[ct] = scaleChannel(status[ct],
|
||||
settings.ChannelMax[ct],
|
||||
settings.ChannelMin[ct],
|
||||
settings.ChannelNeutral[ct]);
|
||||
ChannelMax[ct],
|
||||
ChannelMin[ct],
|
||||
ChannelNeutral[ct]);
|
||||
}
|
||||
#if defined(DIAGNOSTICS)
|
||||
MixerStatusSet(&mixerStatus);
|
||||
#endif
|
||||
|
||||
// Store update time
|
||||
command.UpdateTime = 1000*dT;
|
||||
@ -391,11 +488,13 @@ static int16_t scaleChannel(float value, int16_t max, int16_t min, int16_t neutr
|
||||
*/
|
||||
static void setFailsafe()
|
||||
{
|
||||
ActuatorCommandData command;
|
||||
ActuatorSettingsData settings;
|
||||
|
||||
ActuatorCommandGet(&command);
|
||||
ActuatorSettingsGet(&settings);
|
||||
/* grab only the modules parts that we are going to use */
|
||||
int16_t ChannelMin[ACTUATORCOMMAND_CHANNEL_NUMELEM];
|
||||
ActuatorSettingsChannelMinGet(ChannelMin);
|
||||
int16_t ChannelNeutral[ACTUATORCOMMAND_CHANNEL_NUMELEM];
|
||||
ActuatorSettingsChannelNeutralGet(ChannelNeutral);
|
||||
int16_t Channel[ACTUATORCOMMAND_CHANNEL_NUMELEM];
|
||||
ActuatorCommandChannelGet(Channel);
|
||||
|
||||
MixerSettingsData mixerSettings;
|
||||
MixerSettingsGet (&mixerSettings);
|
||||
@ -407,15 +506,15 @@ static void setFailsafe()
|
||||
|
||||
if(mixers[n].type == MIXERSETTINGS_MIXER1TYPE_MOTOR)
|
||||
{
|
||||
command.Channel[n] = settings.ChannelMin[n];
|
||||
Channel[n] = ChannelMin[n];
|
||||
}
|
||||
else if(mixers[n].type == MIXERSETTINGS_MIXER1TYPE_SERVO)
|
||||
{
|
||||
command.Channel[n] = settings.ChannelNeutral[n];
|
||||
Channel[n] = ChannelNeutral[n];
|
||||
}
|
||||
else
|
||||
{
|
||||
command.Channel[n] = 0;
|
||||
Channel[n] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@ -425,11 +524,11 @@ static void setFailsafe()
|
||||
// Update servo outputs
|
||||
for (int n = 0; n < ACTUATORCOMMAND_CHANNEL_NUMELEM; ++n)
|
||||
{
|
||||
set_channel(n, command.Channel[n]);
|
||||
set_channel(n, Channel[n]);
|
||||
}
|
||||
|
||||
// Update output object
|
||||
ActuatorCommandSet(&command);
|
||||
// Update output object's parts that we changed
|
||||
ActuatorCommandChannelGet(Channel);
|
||||
}
|
||||
|
||||
|
||||
@ -438,15 +537,13 @@ static void setFailsafe()
|
||||
*/
|
||||
static void actuator_update_rate(UAVObjEvent * ev)
|
||||
{
|
||||
ActuatorSettingsData settings;
|
||||
uint16_t ChannelUpdateFreq[ACTUATORSETTINGS_CHANNELUPDATEFREQ_NUMELEM];
|
||||
if ( ev->obj == ActuatorSettingsHandle() ) {
|
||||
ActuatorSettingsGet(&settings);
|
||||
PIOS_Servo_SetHz(&settings.ChannelUpdateFreq[0], ACTUATORSETTINGS_CHANNELUPDATEFREQ_NUMELEM);
|
||||
ActuatorSettingsChannelUpdateFreqGet(ChannelUpdateFreq);
|
||||
PIOS_Servo_SetHz(&ChannelUpdateFreq[0], ACTUATORSETTINGS_CHANNELUPDATEFREQ_NUMELEM);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
#if defined(ARCH_POSIX) || defined(ARCH_WIN32)
|
||||
static bool set_channel(uint8_t mixer_channel, uint16_t value) {
|
||||
return true;
|
||||
|
@ -37,6 +37,7 @@
|
||||
*/
|
||||
|
||||
#include "openpilot.h"
|
||||
#include "altitude.h"
|
||||
#include "baroaltitude.h" // object that will be updated by the module
|
||||
#if defined(PIOS_INCLUDE_HCSR04)
|
||||
#include "sonaraltitude.h" // object that will be updated by the module
|
||||
@ -66,12 +67,28 @@ static void altitudeTask(void *parameters);
|
||||
* Initialise the module, called on startup
|
||||
* \returns 0 on success or -1 if initialisation failed
|
||||
*/
|
||||
int32_t AltitudeInitialize()
|
||||
int32_t AltitudeStart()
|
||||
{
|
||||
|
||||
BaroAltitudeInitialize();
|
||||
#if defined(PIOS_INCLUDE_HCSR04)
|
||||
SonarAltitudeInitialze();
|
||||
#endif
|
||||
|
||||
// Start main task
|
||||
xTaskCreate(altitudeTask, (signed char *)"Altitude", STACK_SIZE_BYTES/4, NULL, TASK_PRIORITY, &taskHandle);
|
||||
TaskMonitorAdd(TASKINFO_RUNNING_ALTITUDE, taskHandle);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialise the module, called on startup
|
||||
* \returns 0 on success or -1 if initialisation failed
|
||||
*/
|
||||
int32_t AltitudeInitialize()
|
||||
{
|
||||
|
||||
// init down-sampling data
|
||||
alt_ds_temp = 0;
|
||||
alt_ds_pres = 0;
|
||||
@ -79,7 +96,7 @@ int32_t AltitudeInitialize()
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
MODULE_INITCALL(AltitudeInitialize, AltitudeStart)
|
||||
/**
|
||||
* Module thread, should not return.
|
||||
*/
|
||||
|
@ -76,7 +76,7 @@ static void AttitudeTask(void *parameters);
|
||||
static float gyro_correct_int[3] = {0,0,0};
|
||||
static xQueueHandle gyro_queue;
|
||||
|
||||
static void updateSensors(AttitudeRawData *);
|
||||
static int8_t updateSensors(AttitudeRawData *);
|
||||
static void updateAttitude(AttitudeRawData *);
|
||||
static void settingsUpdatedCb(UAVObjEvent * objEv);
|
||||
|
||||
@ -89,6 +89,22 @@ static float q[4] = {1,0,0,0};
|
||||
static float R[3][3];
|
||||
static int8_t rotate = 0;
|
||||
static bool zero_during_arming = false;
|
||||
static bool bias_correct_gyro = true;
|
||||
|
||||
/**
|
||||
* Initialise the module, called on startup
|
||||
* \returns 0 on success or -1 if initialisation failed
|
||||
*/
|
||||
int32_t AttitudeStart(void)
|
||||
{
|
||||
|
||||
// Start main task
|
||||
xTaskCreate(AttitudeTask, (signed char *)"Attitude", STACK_SIZE_BYTES/4, NULL, TASK_PRIORITY, &taskHandle);
|
||||
TaskMonitorAdd(TASKINFO_RUNNING_ATTITUDE, taskHandle);
|
||||
PIOS_WDG_RegisterFlag(PIOS_WDG_ATTITUDE);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialise the module, called on startup
|
||||
@ -96,6 +112,10 @@ static bool zero_during_arming = false;
|
||||
*/
|
||||
int32_t AttitudeInitialize(void)
|
||||
{
|
||||
AttitudeActualInitialize();
|
||||
AttitudeRawInitialize();
|
||||
AttitudeSettingsInitialize();
|
||||
|
||||
// Initialize quaternion
|
||||
AttitudeActualData attitude;
|
||||
AttitudeActualGet(&attitude);
|
||||
@ -105,27 +125,39 @@ int32_t AttitudeInitialize(void)
|
||||
attitude.q4 = 0;
|
||||
AttitudeActualSet(&attitude);
|
||||
|
||||
// Cannot trust the values to init right above if BL runs
|
||||
gyro_correct_int[0] = 0;
|
||||
gyro_correct_int[1] = 0;
|
||||
gyro_correct_int[2] = 0;
|
||||
|
||||
q[0] = 1;
|
||||
q[1] = 0;
|
||||
q[2] = 0;
|
||||
q[3] = 0;
|
||||
for(uint8_t i = 0; i < 3; i++)
|
||||
for(uint8_t j = 0; j < 3; j++)
|
||||
R[i][j] = 0;
|
||||
|
||||
// Create queue for passing gyro data, allow 2 back samples in case
|
||||
gyro_queue = xQueueCreate(1, sizeof(float) * 4);
|
||||
if(gyro_queue == NULL)
|
||||
return -1;
|
||||
|
||||
|
||||
PIOS_ADC_SetQueue(gyro_queue);
|
||||
|
||||
AttitudeSettingsConnectCallback(&settingsUpdatedCb);
|
||||
|
||||
// Start main task
|
||||
xTaskCreate(AttitudeTask, (signed char *)"Attitude", STACK_SIZE_BYTES/4, NULL, TASK_PRIORITY, &taskHandle);
|
||||
TaskMonitorAdd(TASKINFO_RUNNING_ATTITUDE, taskHandle);
|
||||
PIOS_WDG_RegisterFlag(PIOS_WDG_ATTITUDE);
|
||||
return 0;
|
||||
}
|
||||
|
||||
MODULE_INITCALL(AttitudeInitialize, AttitudeStart)
|
||||
|
||||
/**
|
||||
* Module thread, should not return.
|
||||
*/
|
||||
static void AttitudeTask(void *parameters)
|
||||
{
|
||||
|
||||
uint8_t init = 0;
|
||||
AlarmsClear(SYSTEMALARMS_ALARM_ATTITUDE);
|
||||
|
||||
@ -135,27 +167,38 @@ static void AttitudeTask(void *parameters)
|
||||
PIOS_FLASH_DISABLE;
|
||||
PIOS_ADXL345_Init();
|
||||
|
||||
zero_during_arming = false;
|
||||
// Set critical error and wait until the accel is producing data
|
||||
while(PIOS_ADXL345_FifoElements() == 0) {
|
||||
AlarmsSet(SYSTEMALARMS_ALARM_ATTITUDE, SYSTEMALARMS_ALARM_CRITICAL);
|
||||
PIOS_WDG_UpdateFlag(PIOS_WDG_ATTITUDE);
|
||||
}
|
||||
|
||||
// Force settings update to make sure rotation loaded
|
||||
settingsUpdatedCb(AttitudeSettingsHandle());
|
||||
|
||||
// Main task loop
|
||||
while (1) {
|
||||
|
||||
FlightStatusData flightStatus;
|
||||
FlightStatusGet(&flightStatus);
|
||||
|
||||
if(xTaskGetTickCount() < 10000) {
|
||||
// For first 5 seconds use accels to get gyro bias
|
||||
if((xTaskGetTickCount() < 7000) && (xTaskGetTickCount() > 1000)) {
|
||||
// For first 7 seconds use accels to get gyro bias
|
||||
accelKp = 1;
|
||||
// Decrease the rate of gyro learning during init
|
||||
accelKi = .5 / (1 + xTaskGetTickCount() / 5000);
|
||||
yawBiasRate = 0.01 / (1 + xTaskGetTickCount() / 5000);
|
||||
accelKi = 0.9;
|
||||
yawBiasRate = 0.23;
|
||||
init = 0;
|
||||
}
|
||||
else if (zero_during_arming && (flightStatus.Armed == FLIGHTSTATUS_ARMED_ARMING)) {
|
||||
accelKi = .01;
|
||||
yawBiasRate = 0.1;
|
||||
accelKp = 1;
|
||||
accelKi = 0.9;
|
||||
yawBiasRate = 0.23;
|
||||
init = 0;
|
||||
} else if (init == 0) {
|
||||
settingsUpdatedCb(AttitudeSettingsHandle());
|
||||
// Reload settings (all the rates)
|
||||
AttitudeSettingsAccelKiGet(&accelKi);
|
||||
AttitudeSettingsAccelKpGet(&accelKp);
|
||||
AttitudeSettingsYawBiasRateGet(&yawBiasRate);
|
||||
init = 1;
|
||||
}
|
||||
|
||||
@ -163,14 +206,24 @@ static void AttitudeTask(void *parameters)
|
||||
|
||||
AttitudeRawData attitudeRaw;
|
||||
AttitudeRawGet(&attitudeRaw);
|
||||
updateSensors(&attitudeRaw);
|
||||
updateAttitude(&attitudeRaw);
|
||||
AttitudeRawSet(&attitudeRaw);
|
||||
if(updateSensors(&attitudeRaw) != 0)
|
||||
AlarmsSet(SYSTEMALARMS_ALARM_ATTITUDE, SYSTEMALARMS_ALARM_ERROR);
|
||||
else {
|
||||
// Only update attitude when sensor data is good
|
||||
updateAttitude(&attitudeRaw);
|
||||
AttitudeRawSet(&attitudeRaw);
|
||||
AlarmsClear(SYSTEMALARMS_ALARM_ATTITUDE);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
static void updateSensors(AttitudeRawData * attitudeRaw)
|
||||
/**
|
||||
* Get an update from the sensors
|
||||
* @param[in] attitudeRaw Populate the UAVO instead of saving right here
|
||||
* @return 0 if successfull, -1 if not
|
||||
*/
|
||||
static int8_t updateSensors(AttitudeRawData * attitudeRaw)
|
||||
{
|
||||
struct pios_adxl345_data accel_data;
|
||||
float gyro[4];
|
||||
@ -178,9 +231,12 @@ static void updateSensors(AttitudeRawData * attitudeRaw)
|
||||
// Only wait the time for two nominal updates before setting an alarm
|
||||
if(xQueueReceive(gyro_queue, (void * const) gyro, UPDATE_RATE * 2) == errQUEUE_EMPTY) {
|
||||
AlarmsSet(SYSTEMALARMS_ALARM_ATTITUDE, SYSTEMALARMS_ALARM_ERROR);
|
||||
return;
|
||||
return -1;
|
||||
}
|
||||
|
||||
// No accel data available
|
||||
if(PIOS_ADXL345_FifoElements() == 0)
|
||||
return -1;
|
||||
|
||||
// First sample is temperature
|
||||
attitudeRaw->gyros[ATTITUDERAW_GYROS_X] = -(gyro[1] - GYRO_NEUTRAL) * gyroGain;
|
||||
@ -226,25 +282,27 @@ static void updateSensors(AttitudeRawData * attitudeRaw)
|
||||
attitudeRaw->accels[ATTITUDERAW_ACCELS_Y] = (attitudeRaw->accels[ATTITUDERAW_ACCELS_Y] - accelbias[1]) * 0.004f * 9.81f;
|
||||
attitudeRaw->accels[ATTITUDERAW_ACCELS_Z] = (attitudeRaw->accels[ATTITUDERAW_ACCELS_Z] - accelbias[2]) * 0.004f * 9.81f;
|
||||
|
||||
// Applying integral component here so it can be seen on the gyros and correct bias
|
||||
attitudeRaw->gyros[ATTITUDERAW_GYROS_X] += gyro_correct_int[0];
|
||||
attitudeRaw->gyros[ATTITUDERAW_GYROS_Y] += gyro_correct_int[1];
|
||||
if(bias_correct_gyro) {
|
||||
// Applying integral component here so it can be seen on the gyros and correct bias
|
||||
attitudeRaw->gyros[ATTITUDERAW_GYROS_X] += gyro_correct_int[0];
|
||||
attitudeRaw->gyros[ATTITUDERAW_GYROS_Y] += gyro_correct_int[1];
|
||||
attitudeRaw->gyros[ATTITUDERAW_GYROS_Z] += gyro_correct_int[2];
|
||||
}
|
||||
|
||||
// Because most crafts wont get enough information from gravity to zero yaw gyro
|
||||
attitudeRaw->gyros[ATTITUDERAW_GYROS_Z] += gyro_correct_int[2];
|
||||
// Because most crafts wont get enough information from gravity to zero yaw gyro, we try
|
||||
// and make it average zero (weakly)
|
||||
gyro_correct_int[2] += - attitudeRaw->gyros[ATTITUDERAW_GYROS_Z] * yawBiasRate;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void updateAttitude(AttitudeRawData * attitudeRaw)
|
||||
{
|
||||
float dT;
|
||||
portTickType thisSysTime = xTaskGetTickCount();
|
||||
static portTickType lastSysTime = 0;
|
||||
static portTickType thisSysTime;
|
||||
|
||||
static float dT = 0;
|
||||
|
||||
thisSysTime = xTaskGetTickCount();
|
||||
if(thisSysTime > lastSysTime) // reuse dt in case of wraparound
|
||||
dT = (thisSysTime - lastSysTime) / portTICK_RATE_MS / 1000.0f;
|
||||
dT = (thisSysTime == lastSysTime) ? 0.001 : (portMAX_DELAY & (thisSysTime - lastSysTime)) / portTICK_RATE_MS / 1000.0f;
|
||||
lastSysTime = thisSysTime;
|
||||
|
||||
// Bad practice to assume structure order, but saves memory
|
||||
@ -270,9 +328,10 @@ static void updateAttitude(AttitudeRawData * attitudeRaw)
|
||||
accel_err[1] /= accel_mag;
|
||||
accel_err[2] /= accel_mag;
|
||||
|
||||
// Accumulate integral of error. Scale here so that units are (rad/s) but Ki has units of s
|
||||
// Accumulate integral of error. Scale here so that units are (deg/s) but Ki has units of s
|
||||
gyro_correct_int[0] += accel_err[0] * accelKi;
|
||||
gyro_correct_int[1] += accel_err[1] * accelKi;
|
||||
|
||||
//gyro_correct_int[2] += accel_err[2] * settings.AccelKI * dT;
|
||||
|
||||
// Correct rates based on error, integral component dealt with in updateSensors
|
||||
@ -295,6 +354,13 @@ static void updateAttitude(AttitudeRawData * attitudeRaw)
|
||||
q[1] = q[1] + qdot[1];
|
||||
q[2] = q[2] + qdot[2];
|
||||
q[3] = q[3] + qdot[3];
|
||||
|
||||
if(q[0] < 0) {
|
||||
q[0] = -q[0];
|
||||
q[1] = -q[1];
|
||||
q[2] = -q[2];
|
||||
q[3] = -q[3];
|
||||
}
|
||||
}
|
||||
|
||||
// Renomalize
|
||||
@ -304,6 +370,15 @@ static void updateAttitude(AttitudeRawData * attitudeRaw)
|
||||
q[2] = q[2] / qmag;
|
||||
q[3] = q[3] / qmag;
|
||||
|
||||
// If quaternion has become inappropriately short or is nan reinit.
|
||||
// THIS SHOULD NEVER ACTUALLY HAPPEN
|
||||
if((fabs(qmag) < 1e-3) || (qmag != qmag)) {
|
||||
q[0] = 1;
|
||||
q[1] = 0;
|
||||
q[2] = 0;
|
||||
q[3] = 0;
|
||||
}
|
||||
|
||||
AttitudeActualData attitudeActual;
|
||||
AttitudeActualGet(&attitudeActual);
|
||||
|
||||
@ -326,11 +401,16 @@ static void settingsUpdatedCb(UAVObjEvent * objEv) {
|
||||
gyroGain = attitudeSettings.GyroGain;
|
||||
|
||||
zero_during_arming = attitudeSettings.ZeroDuringArming == ATTITUDESETTINGS_ZERODURINGARMING_TRUE;
|
||||
bias_correct_gyro = attitudeSettings.BiasCorrectGyro == ATTITUDESETTINGS_BIASCORRECTGYRO_TRUE;
|
||||
|
||||
accelbias[0] = attitudeSettings.AccelBias[ATTITUDESETTINGS_ACCELBIAS_X];
|
||||
accelbias[1] = attitudeSettings.AccelBias[ATTITUDESETTINGS_ACCELBIAS_Y];
|
||||
accelbias[2] = attitudeSettings.AccelBias[ATTITUDESETTINGS_ACCELBIAS_Z];
|
||||
|
||||
gyro_correct_int[0] = attitudeSettings.GyroBias[ATTITUDESETTINGS_GYROBIAS_X] / 100.0f;
|
||||
gyro_correct_int[1] = attitudeSettings.GyroBias[ATTITUDESETTINGS_GYROBIAS_Y] / 100.0f;
|
||||
gyro_correct_int[2] = attitudeSettings.GyroBias[ATTITUDESETTINGS_GYROBIAS_Z] / 100.0f;
|
||||
|
||||
// Indicates not to expend cycles on rotation
|
||||
if(attitudeSettings.BoardRotation[0] == 0 && attitudeSettings.BoardRotation[1] == 0 &&
|
||||
attitudeSettings.BoardRotation[2] == 0) {
|
||||
|
@ -75,8 +75,13 @@ static void onTimer(UAVObjEvent* ev);
|
||||
* Initialise the module, called on startup
|
||||
* \returns 0 on success or -1 if initialisation failed
|
||||
*/
|
||||
MODULE_INITCALL(BatteryInitialize, 0)
|
||||
|
||||
int32_t BatteryInitialize(void)
|
||||
{
|
||||
BatteryStateInitialze();
|
||||
BatterySettingsInitialize();
|
||||
|
||||
static UAVObjEvent ev;
|
||||
|
||||
memset(&ev,0,sizeof(UAVObjEvent));
|
||||
|
141
flight/Modules/CameraStab/camerastab.c
Normal file
@ -0,0 +1,141 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @addtogroup OpenPilotModules OpenPilot Modules
|
||||
* @{
|
||||
* @addtogroup CameraStab Camera Stabilization Module
|
||||
* @brief Camera stabilization module
|
||||
* Updates accessory outputs with values appropriate for camera stabilization
|
||||
* @{
|
||||
*
|
||||
* @file camerastab.c
|
||||
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
|
||||
* @brief Stabilize camera against the roll pitch and yaw of aircraft
|
||||
*
|
||||
* @see The GNU Public License (GPL) Version 3
|
||||
*
|
||||
*****************************************************************************/
|
||||
/*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
/**
|
||||
* Output object: Accessory
|
||||
*
|
||||
* This module will periodically calculate the output values for stabilizing the camera
|
||||
*
|
||||
* UAVObjects are automatically generated by the UAVObjectGenerator from
|
||||
* the object definition XML file.
|
||||
*
|
||||
* Modules have no API, all communication to other modules is done through UAVObjects.
|
||||
* However modules may use the API exposed by shared libraries.
|
||||
* See the OpenPilot wiki for more details.
|
||||
* http://www.openpilot.org/OpenPilot_Application_Architecture
|
||||
*
|
||||
*/
|
||||
|
||||
#include "openpilot.h"
|
||||
|
||||
#include "accessorydesired.h"
|
||||
#include "attitudeactual.h"
|
||||
#include "camerastabsettings.h"
|
||||
#include "cameradesired.h"
|
||||
|
||||
//
|
||||
// Configuration
|
||||
//
|
||||
#define SAMPLE_PERIOD_MS 10
|
||||
|
||||
// Private types
|
||||
|
||||
// Private variables
|
||||
|
||||
// Private functions
|
||||
static void attitudeUpdated(UAVObjEvent* ev);
|
||||
static float bound(float val);
|
||||
|
||||
/**
|
||||
* Initialise the module, called on startup
|
||||
* \returns 0 on success or -1 if initialisation failed
|
||||
*/
|
||||
int32_t CameraStabInitialize(void)
|
||||
{
|
||||
static UAVObjEvent ev;
|
||||
ev.obj = AttitudeActualHandle();
|
||||
ev.instId = 0;
|
||||
ev.event = 0;
|
||||
|
||||
CameraStabSettingsInitialize();
|
||||
CameraDesiredInitialize();
|
||||
|
||||
EventPeriodicCallbackCreate(&ev, attitudeUpdated, SAMPLE_PERIOD_MS / portTICK_RATE_MS);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void attitudeUpdated(UAVObjEvent* ev)
|
||||
{
|
||||
if (ev->obj != AttitudeActualHandle())
|
||||
return;
|
||||
|
||||
float attitude;
|
||||
float output;
|
||||
AccessoryDesiredData accessory;
|
||||
|
||||
CameraStabSettingsData cameraStab;
|
||||
CameraStabSettingsGet(&cameraStab);
|
||||
|
||||
// Read any input channels
|
||||
float inputs[3] = {0,0,0};
|
||||
if(cameraStab.Inputs[CAMERASTABSETTINGS_INPUTS_ROLL] != CAMERASTABSETTINGS_INPUTS_NONE) {
|
||||
if(AccessoryDesiredInstGet(cameraStab.Inputs[CAMERASTABSETTINGS_INPUTS_ROLL] - CAMERASTABSETTINGS_INPUTS_ACCESSORY0, &accessory) == 0)
|
||||
inputs[0] = accessory.AccessoryVal * cameraStab.InputRange[CAMERASTABSETTINGS_INPUTRANGE_ROLL];
|
||||
}
|
||||
if(cameraStab.Inputs[CAMERASTABSETTINGS_INPUTS_PITCH] != CAMERASTABSETTINGS_INPUTS_NONE) {
|
||||
if(AccessoryDesiredInstGet(cameraStab.Inputs[CAMERASTABSETTINGS_INPUTS_PITCH] - CAMERASTABSETTINGS_INPUTS_ACCESSORY0, &accessory) == 0)
|
||||
inputs[1] = accessory.AccessoryVal * cameraStab.InputRange[CAMERASTABSETTINGS_INPUTRANGE_PITCH];
|
||||
}
|
||||
if(cameraStab.Inputs[CAMERASTABSETTINGS_INPUTS_YAW] != CAMERASTABSETTINGS_INPUTS_NONE) {
|
||||
if(AccessoryDesiredInstGet(cameraStab.Inputs[CAMERASTABSETTINGS_INPUTS_YAW] - CAMERASTABSETTINGS_INPUTS_ACCESSORY0, &accessory) == 0)
|
||||
inputs[2] = accessory.AccessoryVal * cameraStab.InputRange[CAMERASTABSETTINGS_INPUTRANGE_YAW];
|
||||
}
|
||||
|
||||
// Set output channels
|
||||
AttitudeActualRollGet(&attitude);
|
||||
output = bound((attitude + inputs[0]) / cameraStab.OutputRange[CAMERASTABSETTINGS_OUTPUTRANGE_ROLL]);
|
||||
CameraDesiredRollSet(&output);
|
||||
|
||||
AttitudeActualPitchGet(&attitude);
|
||||
output = bound((attitude + inputs[1]) / cameraStab.OutputRange[CAMERASTABSETTINGS_OUTPUTRANGE_PITCH]);
|
||||
CameraDesiredPitchSet(&output);
|
||||
|
||||
AttitudeActualYawGet(&attitude);
|
||||
output = bound((attitude + inputs[2]) / cameraStab.OutputRange[CAMERASTABSETTINGS_OUTPUTRANGE_YAW]);
|
||||
CameraDesiredYawSet(&output);
|
||||
|
||||
}
|
||||
|
||||
float bound(float val)
|
||||
{
|
||||
return (val > 1) ? 1 :
|
||||
(val < -1) ? -1 :
|
||||
val;
|
||||
}
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
@ -1,13 +1,14 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @addtogroup OpenPilotModules OpenPilot Modules
|
||||
* @{
|
||||
* @addtogroup BatteryModule Battery Module
|
||||
* @{
|
||||
*
|
||||
* @file uavobjectsinit.c
|
||||
* @file battery.h
|
||||
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
|
||||
* @brief Initialize all objects.
|
||||
* Automatically generated by the UAVObjectGenerator.
|
||||
* @brief Module to read the battery Voltage and Current periodically and set alarms appropriately.
|
||||
*
|
||||
* @note This is an automatically generated file.
|
||||
* DO NOT modify manually.
|
||||
* @see The GNU Public License (GPL) Version 3
|
||||
*
|
||||
*****************************************************************************/
|
||||
@ -26,20 +27,16 @@
|
||||
* with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
#ifndef BATTERY_H
|
||||
#define BATTERY_H
|
||||
|
||||
#include "openpilot.h"
|
||||
|
||||
int32_t CameraStabInitialize(void);
|
||||
|
||||
#endif // BATTERY_H
|
||||
|
||||
/**
|
||||
* Function used to initialize the first instance of each object.
|
||||
* This file is automatically updated by the UAVObjectGenerator.
|
||||
*/
|
||||
extern initcall_t __uavobj_initcall_start[], __uavobj_initcall_end[];
|
||||
|
||||
void UAVObjectsInitializeAll()
|
||||
{
|
||||
initcall_t *fn;
|
||||
int32_t ret;
|
||||
|
||||
for (fn = __uavobj_initcall_start; fn < __uavobj_initcall_end; fn++)
|
||||
ret = (*fn)();
|
||||
}
|
||||
* @}
|
||||
* @}
|
||||
*/
|
@ -49,9 +49,14 @@
|
||||
#include "examplemodperiodic.h"
|
||||
#include "examplemodthread.h"
|
||||
|
||||
void ExampleInitialize(void)
|
||||
void ExampleStart(void)
|
||||
{
|
||||
ExampleModEventInitialize();
|
||||
ExampleModPeriodicInitialize();
|
||||
ExampleModThreadInitialize();
|
||||
}
|
||||
|
||||
void ExampleInitialize(void)
|
||||
{
|
||||
ExampleModEventInitialize();
|
||||
}
|
||||
MODULE_INITCALL(ExampleInitialize, ExampleStart)
|
||||
|
@ -27,9 +27,11 @@
|
||||
#include <stdint.h>
|
||||
|
||||
#include "pios.h"
|
||||
#include <pios_board_info.h>
|
||||
#include "openpilot.h"
|
||||
#include "firmwareiap.h"
|
||||
#include "firmwareiapobj.h"
|
||||
#include "flightstatus.h"
|
||||
|
||||
// Private constants
|
||||
#define IAP_CMD_STEP_1 1122
|
||||
@ -86,17 +88,22 @@ static void resetTask(UAVObjEvent *);
|
||||
* \note
|
||||
*
|
||||
*/
|
||||
|
||||
MODULE_INITCALL(FirmwareIAPInitialize, 0)
|
||||
int32_t FirmwareIAPInitialize()
|
||||
{
|
||||
data.BoardType= BOARD_TYPE;
|
||||
|
||||
FirmwareIAPObjInitialize();
|
||||
|
||||
const struct pios_board_info * bdinfo = &pios_board_info_blob;
|
||||
|
||||
data.BoardType= bdinfo->board_type;
|
||||
PIOS_BL_HELPER_FLASH_Read_Description(data.Description,FIRMWAREIAPOBJ_DESCRIPTION_NUMELEM);
|
||||
PIOS_SYS_SerialNumberGetBinary(data.CPUSerial);
|
||||
data.BoardRevision= BOARD_REVISION;
|
||||
data.BoardRevision= bdinfo->board_rev;
|
||||
data.ArmReset=0;
|
||||
data.crc = 0;
|
||||
FirmwareIAPObjSet( &data );
|
||||
FirmwareIAPObjConnectCallback( &FirmwareIAPCallback );
|
||||
if(bdinfo->magic==PIOS_BOARD_INFO_BLOB_MAGIC) FirmwareIAPObjConnectCallback( &FirmwareIAPCallback );
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -111,6 +118,7 @@ int32_t FirmwareIAPInitialize()
|
||||
static uint8_t iap_state = IAP_STATE_READY;
|
||||
static void FirmwareIAPCallback(UAVObjEvent* ev)
|
||||
{
|
||||
const struct pios_board_info * bdinfo = &pios_board_info_blob;
|
||||
static uint32_t last_time = 0;
|
||||
uint32_t this_time;
|
||||
uint32_t delta;
|
||||
@ -124,11 +132,11 @@ static void FirmwareIAPCallback(UAVObjEvent* ev)
|
||||
this_time = get_time();
|
||||
delta = this_time - last_time;
|
||||
last_time = this_time;
|
||||
if((data.BoardType==BOARD_TYPE)&&(data.crc != PIOS_BL_HELPER_CRC_Memory_Calc()))
|
||||
if((data.BoardType==bdinfo->board_type)&&(data.crc != PIOS_BL_HELPER_CRC_Memory_Calc()))
|
||||
{
|
||||
PIOS_BL_HELPER_FLASH_Read_Description(data.Description,FIRMWAREIAPOBJ_DESCRIPTION_NUMELEM);
|
||||
PIOS_SYS_SerialNumberGetBinary(data.CPUSerial);
|
||||
data.BoardRevision=BOARD_REVISION;
|
||||
data.BoardRevision=bdinfo->board_rev;
|
||||
data.crc = PIOS_BL_HELPER_CRC_Memory_Calc();
|
||||
FirmwareIAPObjSet( &data );
|
||||
}
|
||||
@ -156,6 +164,16 @@ static void FirmwareIAPCallback(UAVObjEvent* ev)
|
||||
case IAP_STATE_STEP_2:
|
||||
if( data.Command == IAP_CMD_STEP_3 ) {
|
||||
if( delta > iap_time_3_low_end && delta < iap_time_3_high_end ) {
|
||||
|
||||
FlightStatusData flightStatus;
|
||||
FlightStatusGet(&flightStatus);
|
||||
|
||||
if(flightStatus.Armed != FLIGHTSTATUS_ARMED_DISARMED) {
|
||||
// Abort any attempts if not disarmed
|
||||
iap_state = IAP_STATE_READY;
|
||||
break;
|
||||
}
|
||||
|
||||
// we've met the three sequence of command numbers
|
||||
// we've met the time requirements.
|
||||
PIOS_IAP_SetRequest1();
|
||||
|
@ -31,6 +31,7 @@
|
||||
|
||||
#include "openpilot.h"
|
||||
#include "pm.h"
|
||||
#include "flightplan.h"
|
||||
#include "flightplanstatus.h"
|
||||
#include "flightplancontrol.h"
|
||||
#include "flightplansettings.h"
|
||||
@ -53,6 +54,20 @@ static void objectUpdatedCb(UAVObjEvent * ev);
|
||||
// External variables (temporary, TODO: this will be loaded from the SD card)
|
||||
extern unsigned char usrlib_img[];
|
||||
|
||||
/**
|
||||
* Module initialization
|
||||
*/
|
||||
int32_t FlightPlanStart()
|
||||
{
|
||||
taskHandle = NULL;
|
||||
|
||||
// Start VM thread
|
||||
xTaskCreate(flightPlanTask, (signed char *)"FlightPlan", STACK_SIZE_BYTES/4, NULL, TASK_PRIORITY, &taskHandle);
|
||||
TaskMonitorAdd(TASKINFO_RUNNING_FLIGHTPLAN, taskHandle);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Module initialization
|
||||
*/
|
||||
@ -60,6 +75,10 @@ int32_t FlightPlanInitialize()
|
||||
{
|
||||
taskHandle = NULL;
|
||||
|
||||
FlightPlanStatusInitialize();
|
||||
FlightPlanControlInitialize();
|
||||
FlightPlanSettingsInitialize();
|
||||
|
||||
// Listen for object updates
|
||||
FlightPlanControlConnectCallback(&objectUpdatedCb);
|
||||
|
||||
@ -69,13 +88,9 @@ int32_t FlightPlanInitialize()
|
||||
// Listen for FlightPlanControl updates
|
||||
FlightPlanControlConnectQueue(queue);
|
||||
|
||||
// Start VM thread
|
||||
xTaskCreate(flightPlanTask, (signed char *)"FlightPlan", STACK_SIZE_BYTES/4, NULL, TASK_PRIORITY, &taskHandle);
|
||||
TaskMonitorAdd(TASKINFO_RUNNING_FLIGHTPLAN, taskHandle);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
MODULE_INITCALL(FlightPlanInitialize, FlightPlanStart)
|
||||
/**
|
||||
* Module task
|
||||
*/
|
||||
|
@ -288,7 +288,7 @@ class UAVObject:
|
||||
uint32_t type;
|
||||
uint32_t numElements;
|
||||
uint8_t const *tmpStr;
|
||||
int8_t tmpInt8;
|
||||
int8_t tmpInt8 = 0;
|
||||
int16_t tmpInt16;
|
||||
int32_t tmpInt32;
|
||||
float tmpFloat;
|
||||
|
@ -63,7 +63,7 @@ static float GravityAccel(float latitude, float longitude, float altitude);
|
||||
// Private constants
|
||||
|
||||
//#define FULL_COLD_RESTART // uncomment this to tell the GPS to do a FULL COLD restart
|
||||
//#define DISABLE_GPS_TRESHOLD //
|
||||
//#define DISABLE_GPS_THRESHOLD //
|
||||
|
||||
#define GPS_TIMEOUT_MS 500
|
||||
#define GPS_COMMAND_RESEND_TIMEOUT_MS 2000
|
||||
@ -109,19 +109,31 @@ static uint32_t numParsingErrors;
|
||||
* \return 0 on success
|
||||
*/
|
||||
|
||||
int32_t GPSInitialize(void)
|
||||
int32_t GPSStart(void)
|
||||
{
|
||||
signed portBASE_TYPE xReturn;
|
||||
|
||||
// TODO: Get gps settings object
|
||||
gpsPort = PIOS_COM_GPS;
|
||||
|
||||
// Start gps task
|
||||
xReturn = xTaskCreate(gpsTask, (signed char *)"GPS", STACK_SIZE_BYTES/4, NULL, TASK_PRIORITY, &gpsTaskHandle);
|
||||
xTaskCreate(gpsTask, (signed char *)"GPS", STACK_SIZE_BYTES/4, NULL, TASK_PRIORITY, &gpsTaskHandle);
|
||||
TaskMonitorAdd(TASKINFO_RUNNING_GPS, gpsTaskHandle);
|
||||
|
||||
return 0;
|
||||
}
|
||||
/**
|
||||
* Initialise the gps module
|
||||
* \return -1 if initialisation failed
|
||||
* \return 0 on success
|
||||
*/
|
||||
int32_t GPSInitialize(void)
|
||||
{
|
||||
GPSPositionInitialize();
|
||||
GPSTimeInitialize();
|
||||
HomeLocationInitialize();
|
||||
|
||||
// TODO: Get gps settings object
|
||||
gpsPort = PIOS_COM_GPS;
|
||||
|
||||
return 0;
|
||||
}
|
||||
MODULE_INITCALL(GPSInitialize, GPSStart)
|
||||
|
||||
// ****************
|
||||
/**
|
||||
@ -154,7 +166,7 @@ static void gpsTask(void *parameters)
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef DISABLE_GPS_TRESHOLD
|
||||
#ifdef DISABLE_GPS_THRESHOLD
|
||||
PIOS_COM_SendStringNonBlocking(gpsPort, "$PMTK397,0*23\r\n");
|
||||
#endif
|
||||
|
||||
@ -188,8 +200,10 @@ static void gpsTask(void *parameters)
|
||||
|
||||
while (PIOS_COM_ReceiveBufferUsed(gpsPort) > 0)
|
||||
{
|
||||
int res = GTOP_BIN_update_position(PIOS_COM_ReceiveBuffer(gpsPort), &numChecksumErrors, &numParsingErrors);
|
||||
if (res >= 0)
|
||||
uint8_t c;
|
||||
PIOS_COM_ReceiveBuffer(gpsPort, &c, 1, 0);
|
||||
|
||||
if (GTOP_BIN_update_position(c, &numChecksumErrors, &numParsingErrors) >= 0)
|
||||
{
|
||||
numUpdates++;
|
||||
|
||||
@ -205,7 +219,8 @@ static void gpsTask(void *parameters)
|
||||
// This blocks the task until there is something on the buffer
|
||||
while (PIOS_COM_ReceiveBufferUsed(gpsPort) > 0)
|
||||
{
|
||||
char c = PIOS_COM_ReceiveBuffer(gpsPort);
|
||||
uint8_t c;
|
||||
PIOS_COM_ReceiveBuffer(gpsPort, &c, 1, 0);
|
||||
|
||||
// detect start while acquiring stream
|
||||
if (!start_flag && (c == '$'))
|
||||
|
@ -82,14 +82,8 @@ static void updateVtolDesiredAttitude();
|
||||
* Initialise the module, called on startup
|
||||
* \returns 0 on success or -1 if initialisation failed
|
||||
*/
|
||||
int32_t GuidanceInitialize()
|
||||
int32_t GuidanceStart()
|
||||
{
|
||||
// Create object queue
|
||||
queue = xQueueCreate(MAX_QUEUE_SIZE, sizeof(UAVObjEvent));
|
||||
|
||||
// Listen for updates.
|
||||
AttitudeRawConnectQueue(queue);
|
||||
|
||||
// Start main task
|
||||
xTaskCreate(guidanceTask, (signed char *)"Guidance", STACK_SIZE_BYTES/4, NULL, TASK_PRIORITY, &guidanceTaskHandle);
|
||||
TaskMonitorAdd(TASKINFO_RUNNING_GUIDANCE, guidanceTaskHandle);
|
||||
@ -97,6 +91,28 @@ int32_t GuidanceInitialize()
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialise the module, called on startup
|
||||
* \returns 0 on success or -1 if initialisation failed
|
||||
*/
|
||||
int32_t GuidanceInitialize()
|
||||
{
|
||||
|
||||
GuidanceSettingsInitialize();
|
||||
PositionDesiredInitialize();
|
||||
NedAccelInitialize();
|
||||
VelocityDesiredInitialize();
|
||||
|
||||
// Create object queue
|
||||
queue = xQueueCreate(MAX_QUEUE_SIZE, sizeof(UAVObjEvent));
|
||||
|
||||
// Listen for updates.
|
||||
AttitudeRawConnectQueue(queue);
|
||||
|
||||
return 0;
|
||||
}
|
||||
MODULE_INITCALL(GuidanceInitialize, GuidanceStart)
|
||||
|
||||
static float northVelIntegral = 0;
|
||||
static float eastVelIntegral = 0;
|
||||
static float downVelIntegral = 0;
|
||||
@ -236,7 +252,7 @@ void updateVtolDesiredVelocity()
|
||||
{
|
||||
static portTickType lastSysTime;
|
||||
portTickType thisSysTime = xTaskGetTickCount();;
|
||||
float dT;
|
||||
float dT = 0;
|
||||
|
||||
GuidanceSettingsData guidanceSettings;
|
||||
PositionActualData positionActual;
|
||||
@ -304,7 +320,7 @@ static void updateVtolDesiredAttitude()
|
||||
{
|
||||
static portTickType lastSysTime;
|
||||
portTickType thisSysTime = xTaskGetTickCount();;
|
||||
float dT;
|
||||
float dT = 0;
|
||||
|
||||
VelocityDesiredData velocityDesired;
|
||||
VelocityActualData velocityActual;
|
||||
|
@ -27,5 +27,5 @@
|
||||
#define EXAMPLEMODPERIODIC_H
|
||||
|
||||
int32_t ExampleModPeriodicInitialize();
|
||||
|
||||
int32_t GuidanceInitialize(void);
|
||||
#endif // EXAMPLEMODPERIODIC_H
|
||||
|
@ -45,4 +45,64 @@ typedef enum {FLIGHTMODE_UNDEFINED = 0, FLIGHTMODE_MANUAL = 1, FLIGHTMODE_STABIL
|
||||
|
||||
int32_t ManualControlInitialize();
|
||||
|
||||
|
||||
/*
|
||||
* These are assumptions we make in the flight code about the order of settings and their consistency between
|
||||
* objects. Please keep this synchronized to the UAVObjects
|
||||
*/
|
||||
#define assumptions1 ( \
|
||||
((int)MANUALCONTROLSETTINGS_STABILIZATION1SETTINGS_NONE == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_NONE) && \
|
||||
((int)MANUALCONTROLSETTINGS_STABILIZATION1SETTINGS_RATE == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_RATE) && \
|
||||
((int)MANUALCONTROLSETTINGS_STABILIZATION1SETTINGS_AXISLOCK == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_AXISLOCK) && \
|
||||
((int)MANUALCONTROLSETTINGS_STABILIZATION1SETTINGS_WEAKLEVELING == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_WEAKLEVELING) && \
|
||||
((int)MANUALCONTROLSETTINGS_STABILIZATION1SETTINGS_ATTITUDE == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_ATTITUDE) \
|
||||
)
|
||||
|
||||
#define assumptions3 ( \
|
||||
((int)MANUALCONTROLSETTINGS_STABILIZATION2SETTINGS_NONE == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_NONE) && \
|
||||
((int)MANUALCONTROLSETTINGS_STABILIZATION2SETTINGS_RATE == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_RATE) && \
|
||||
((int)MANUALCONTROLSETTINGS_STABILIZATION2SETTINGS_AXISLOCK == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_AXISLOCK) && \
|
||||
((int)MANUALCONTROLSETTINGS_STABILIZATION2SETTINGS_WEAKLEVELING == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_WEAKLEVELING) && \
|
||||
((int)MANUALCONTROLSETTINGS_STABILIZATION2SETTINGS_ATTITUDE == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_ATTITUDE) \
|
||||
)
|
||||
|
||||
#define assumptions5 ( \
|
||||
((int)MANUALCONTROLSETTINGS_STABILIZATION3SETTINGS_NONE == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_NONE) && \
|
||||
((int)MANUALCONTROLSETTINGS_STABILIZATION3SETTINGS_RATE == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_RATE) && \
|
||||
((int)MANUALCONTROLSETTINGS_STABILIZATION3SETTINGS_AXISLOCK == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_AXISLOCK) && \
|
||||
((int)MANUALCONTROLSETTINGS_STABILIZATION3SETTINGS_WEAKLEVELING == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_WEAKLEVELING) && \
|
||||
((int)MANUALCONTROLSETTINGS_STABILIZATION3SETTINGS_ATTITUDE == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_ATTITUDE) \
|
||||
)
|
||||
|
||||
#define ARMING_CHANNEL_ROLL 0
|
||||
#define ARMING_CHANNEL_PITCH 1
|
||||
#define ARMING_CHANNEL_YAW 2
|
||||
|
||||
#define assumptions7 ( \
|
||||
( ((int)MANUALCONTROLSETTINGS_ARMING_ROLLLEFT -(int)MANUALCONTROLSETTINGS_ARMING_ROLLLEFT)/2 == ARMING_CHANNEL_ROLL) && \
|
||||
( ((int)MANUALCONTROLSETTINGS_ARMING_ROLLRIGHT -(int)MANUALCONTROLSETTINGS_ARMING_ROLLLEFT)/2 == ARMING_CHANNEL_ROLL) && \
|
||||
( ((int)MANUALCONTROLSETTINGS_ARMING_PITCHFORWARD -(int)MANUALCONTROLSETTINGS_ARMING_ROLLLEFT)/2 == ARMING_CHANNEL_PITCH) && \
|
||||
( ((int)MANUALCONTROLSETTINGS_ARMING_PITCHAFT -(int)MANUALCONTROLSETTINGS_ARMING_ROLLLEFT)/2 == ARMING_CHANNEL_PITCH) && \
|
||||
( ((int)MANUALCONTROLSETTINGS_ARMING_YAWLEFT -(int)MANUALCONTROLSETTINGS_ARMING_ROLLLEFT)/2 == ARMING_CHANNEL_YAW) && \
|
||||
( ((int)MANUALCONTROLSETTINGS_ARMING_YAWRIGHT -(int)MANUALCONTROLSETTINGS_ARMING_ROLLLEFT)/2 == ARMING_CHANNEL_YAW) \
|
||||
)
|
||||
|
||||
#define assumptions8 ( \
|
||||
( ((int)MANUALCONTROLSETTINGS_ARMING_ROLLLEFT -(int)MANUALCONTROLSETTINGS_ARMING_ROLLLEFT)%2 == 0) && \
|
||||
( ((int)MANUALCONTROLSETTINGS_ARMING_ROLLRIGHT -(int)MANUALCONTROLSETTINGS_ARMING_ROLLLEFT)%2 != 0) && \
|
||||
( ((int)MANUALCONTROLSETTINGS_ARMING_PITCHFORWARD -(int)MANUALCONTROLSETTINGS_ARMING_ROLLLEFT)%2 == 0) && \
|
||||
( ((int)MANUALCONTROLSETTINGS_ARMING_PITCHAFT -(int)MANUALCONTROLSETTINGS_ARMING_ROLLLEFT)%2 != 0) && \
|
||||
( ((int)MANUALCONTROLSETTINGS_ARMING_YAWLEFT -(int)MANUALCONTROLSETTINGS_ARMING_ROLLLEFT)%2 == 0) && \
|
||||
( ((int)MANUALCONTROLSETTINGS_ARMING_YAWRIGHT -(int)MANUALCONTROLSETTINGS_ARMING_ROLLLEFT)%2 != 0) \
|
||||
)
|
||||
|
||||
#define assumptions_flightmode ( \
|
||||
( (int)MANUALCONTROLSETTINGS_FLIGHTMODEPOSITION_MANUAL == (int) FLIGHTSTATUS_FLIGHTMODE_MANUAL) && \
|
||||
( (int)MANUALCONTROLSETTINGS_FLIGHTMODEPOSITION_STABILIZED1 == (int) FLIGHTSTATUS_FLIGHTMODE_STABILIZED1) && \
|
||||
( (int)MANUALCONTROLSETTINGS_FLIGHTMODEPOSITION_STABILIZED2 == (int) FLIGHTSTATUS_FLIGHTMODE_STABILIZED2) && \
|
||||
( (int)MANUALCONTROLSETTINGS_FLIGHTMODEPOSITION_STABILIZED3 == (int) FLIGHTSTATUS_FLIGHTMODE_STABILIZED3) && \
|
||||
( (int)MANUALCONTROLSETTINGS_FLIGHTMODEPOSITION_VELOCITYCONTROL == (int) FLIGHTSTATUS_FLIGHTMODE_VELOCITYCONTROL) && \
|
||||
( (int)MANUALCONTROLSETTINGS_FLIGHTMODEPOSITION_POSITIONHOLD == (int) FLIGHTSTATUS_FLIGHTMODE_POSITIONHOLD) \
|
||||
)
|
||||
|
||||
#endif // MANUALCONTROL_H
|
||||
|
@ -42,6 +42,7 @@
|
||||
#include "stabilizationdesired.h"
|
||||
#include "flighttelemetrystats.h"
|
||||
#include "flightstatus.h"
|
||||
#include "accessorydesired.h"
|
||||
|
||||
// Private constants
|
||||
#if defined(PIOS_MANUAL_STACK_SIZE)
|
||||
@ -86,76 +87,41 @@ static uint32_t timeDifferenceMs(portTickType start_time, portTickType end_time)
|
||||
static bool okToArm(void);
|
||||
static bool validInputRange(int16_t min, int16_t max, uint16_t value);
|
||||
|
||||
#define assumptions1 ( \
|
||||
((int)MANUALCONTROLSETTINGS_STABILIZATION1SETTINGS_NONE == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_NONE) && \
|
||||
((int)MANUALCONTROLSETTINGS_STABILIZATION1SETTINGS_RATE == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_RATE) && \
|
||||
((int)MANUALCONTROLSETTINGS_STABILIZATION1SETTINGS_ATTITUDE == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_ATTITUDE) \
|
||||
)
|
||||
|
||||
#define assumptions3 ( \
|
||||
((int)MANUALCONTROLSETTINGS_STABILIZATION2SETTINGS_NONE == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_NONE) && \
|
||||
((int)MANUALCONTROLSETTINGS_STABILIZATION2SETTINGS_RATE == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_RATE) && \
|
||||
((int)MANUALCONTROLSETTINGS_STABILIZATION2SETTINGS_ATTITUDE == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_ATTITUDE) \
|
||||
)
|
||||
|
||||
#define assumptions5 ( \
|
||||
((int)MANUALCONTROLSETTINGS_STABILIZATION3SETTINGS_NONE == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_NONE) && \
|
||||
((int)MANUALCONTROLSETTINGS_STABILIZATION3SETTINGS_RATE == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_RATE) && \
|
||||
((int)MANUALCONTROLSETTINGS_STABILIZATION3SETTINGS_ATTITUDE == (int)STABILIZATIONDESIRED_STABILIZATIONMODE_ATTITUDE) \
|
||||
)
|
||||
|
||||
|
||||
|
||||
#define ARMING_CHANNEL_ROLL 0
|
||||
#define ARMING_CHANNEL_PITCH 1
|
||||
#define ARMING_CHANNEL_YAW 2
|
||||
|
||||
#define assumptions7 ( \
|
||||
( ((int)MANUALCONTROLSETTINGS_ARMING_ROLLLEFT -(int)MANUALCONTROLSETTINGS_ARMING_ROLLLEFT)/2 == ARMING_CHANNEL_ROLL) && \
|
||||
( ((int)MANUALCONTROLSETTINGS_ARMING_ROLLRIGHT -(int)MANUALCONTROLSETTINGS_ARMING_ROLLLEFT)/2 == ARMING_CHANNEL_ROLL) && \
|
||||
( ((int)MANUALCONTROLSETTINGS_ARMING_PITCHFORWARD -(int)MANUALCONTROLSETTINGS_ARMING_ROLLLEFT)/2 == ARMING_CHANNEL_PITCH) && \
|
||||
( ((int)MANUALCONTROLSETTINGS_ARMING_PITCHAFT -(int)MANUALCONTROLSETTINGS_ARMING_ROLLLEFT)/2 == ARMING_CHANNEL_PITCH) && \
|
||||
( ((int)MANUALCONTROLSETTINGS_ARMING_YAWLEFT -(int)MANUALCONTROLSETTINGS_ARMING_ROLLLEFT)/2 == ARMING_CHANNEL_YAW) && \
|
||||
( ((int)MANUALCONTROLSETTINGS_ARMING_YAWRIGHT -(int)MANUALCONTROLSETTINGS_ARMING_ROLLLEFT)/2 == ARMING_CHANNEL_YAW) \
|
||||
)
|
||||
|
||||
#define assumptions8 ( \
|
||||
( ((int)MANUALCONTROLSETTINGS_ARMING_ROLLLEFT -(int)MANUALCONTROLSETTINGS_ARMING_ROLLLEFT)%2 == 0) && \
|
||||
( ((int)MANUALCONTROLSETTINGS_ARMING_ROLLRIGHT -(int)MANUALCONTROLSETTINGS_ARMING_ROLLLEFT)%2 != 0) && \
|
||||
( ((int)MANUALCONTROLSETTINGS_ARMING_PITCHFORWARD -(int)MANUALCONTROLSETTINGS_ARMING_ROLLLEFT)%2 == 0) && \
|
||||
( ((int)MANUALCONTROLSETTINGS_ARMING_PITCHAFT -(int)MANUALCONTROLSETTINGS_ARMING_ROLLLEFT)%2 != 0) && \
|
||||
( ((int)MANUALCONTROLSETTINGS_ARMING_YAWLEFT -(int)MANUALCONTROLSETTINGS_ARMING_ROLLLEFT)%2 == 0) && \
|
||||
( ((int)MANUALCONTROLSETTINGS_ARMING_YAWRIGHT -(int)MANUALCONTROLSETTINGS_ARMING_ROLLLEFT)%2 != 0) \
|
||||
)
|
||||
|
||||
|
||||
#define assumptions_flightmode ( \
|
||||
( (int)MANUALCONTROLSETTINGS_FLIGHTMODEPOSITION_MANUAL == (int) FLIGHTSTATUS_FLIGHTMODE_MANUAL) && \
|
||||
( (int)MANUALCONTROLSETTINGS_FLIGHTMODEPOSITION_STABILIZED1 == (int) FLIGHTSTATUS_FLIGHTMODE_STABILIZED1) && \
|
||||
( (int)MANUALCONTROLSETTINGS_FLIGHTMODEPOSITION_STABILIZED2 == (int) FLIGHTSTATUS_FLIGHTMODE_STABILIZED2) && \
|
||||
( (int)MANUALCONTROLSETTINGS_FLIGHTMODEPOSITION_STABILIZED3 == (int) FLIGHTSTATUS_FLIGHTMODE_STABILIZED3) && \
|
||||
( (int)MANUALCONTROLSETTINGS_FLIGHTMODEPOSITION_VELOCITYCONTROL == (int) FLIGHTSTATUS_FLIGHTMODE_VELOCITYCONTROL) && \
|
||||
( (int)MANUALCONTROLSETTINGS_FLIGHTMODEPOSITION_POSITIONHOLD == (int) FLIGHTSTATUS_FLIGHTMODE_POSITIONHOLD) \
|
||||
)
|
||||
|
||||
#define assumptions (assumptions1 && assumptions3 && assumptions5 && assumptions7 && assumptions8 && assumptions_flightmode)
|
||||
|
||||
/**
|
||||
* Module starting
|
||||
*/
|
||||
int32_t ManualControlStart()
|
||||
{
|
||||
// Start main task
|
||||
xTaskCreate(manualControlTask, (signed char *)"ManualControl", STACK_SIZE_BYTES/4, NULL, TASK_PRIORITY, &taskHandle);
|
||||
TaskMonitorAdd(TASKINFO_RUNNING_MANUALCONTROL, taskHandle);
|
||||
PIOS_WDG_RegisterFlag(PIOS_WDG_MANUAL);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Module initialization
|
||||
*/
|
||||
int32_t ManualControlInitialize()
|
||||
{
|
||||
|
||||
/* Check the assumptions about uavobject enum's are correct */
|
||||
if(!assumptions)
|
||||
return -1;
|
||||
// Start main task
|
||||
xTaskCreate(manualControlTask, (signed char *)"ManualControl", STACK_SIZE_BYTES/4, NULL, TASK_PRIORITY, &taskHandle);
|
||||
TaskMonitorAdd(TASKINFO_RUNNING_MANUALCONTROL, taskHandle);
|
||||
PIOS_WDG_RegisterFlag(PIOS_WDG_MANUAL);
|
||||
|
||||
AccessoryDesiredInitialize();
|
||||
ManualControlCommandInitialize();
|
||||
FlightStatusInitialize();
|
||||
StabilizationDesiredInitialize();
|
||||
|
||||
ManualControlSettingsInitialize();
|
||||
|
||||
return 0;
|
||||
}
|
||||
MODULE_INITCALL(ManualControlInitialize, ManualControlStart)
|
||||
|
||||
/**
|
||||
* Module task
|
||||
@ -170,6 +136,11 @@ static void manualControlTask(void *parameters)
|
||||
uint8_t disconnected_count = 0;
|
||||
uint8_t connected_count = 0;
|
||||
|
||||
// For now manual instantiate extra instances of Accessory Desired. In future should be done dynamically
|
||||
// this includes not even registering it if not used
|
||||
AccessoryDesiredCreateInstance();
|
||||
AccessoryDesiredCreateInstance();
|
||||
|
||||
// Make sure unarmed on power up
|
||||
ManualControlCommandGet(&cmd);
|
||||
FlightStatusGet(&flightStatus);
|
||||
@ -203,17 +174,13 @@ static void manualControlTask(void *parameters)
|
||||
if (!ManualControlCommandReadOnly(&cmd)) {
|
||||
|
||||
// Read channel values in us
|
||||
// TODO: settings.InputMode is currently ignored because PIOS will not allow runtime
|
||||
// selection of PWM and PPM. The configuration is currently done at compile time in
|
||||
// the pios_config.h file.
|
||||
for (int n = 0; n < MANUALCONTROLCOMMAND_CHANNEL_NUMELEM; ++n) {
|
||||
#if defined(PIOS_INCLUDE_PWM)
|
||||
cmd.Channel[n] = PIOS_PWM_Get(n);
|
||||
#elif defined(PIOS_INCLUDE_PPM)
|
||||
cmd.Channel[n] = PIOS_PPM_Get(n);
|
||||
#elif defined(PIOS_INCLUDE_SPEKTRUM)
|
||||
cmd.Channel[n] = PIOS_SPEKTRUM_Get(n);
|
||||
#endif
|
||||
if (pios_rcvr_channel_to_id_map[n].id) {
|
||||
cmd.Channel[n] = PIOS_RCVR_Read(pios_rcvr_channel_to_id_map[n].id,
|
||||
pios_rcvr_channel_to_id_map[n].channel);
|
||||
} else {
|
||||
cmd.Channel[n] = -1;
|
||||
}
|
||||
scaledChannel[n] = scaleChannel(cmd.Channel[n], settings.ChannelMax[n], settings.ChannelMin[n], settings.ChannelNeutral[n]);
|
||||
}
|
||||
|
||||
@ -266,10 +233,26 @@ static void manualControlTask(void *parameters)
|
||||
cmd.Throttle = scaledChannel[settings.Throttle];
|
||||
flightMode = scaledChannel[settings.FlightMode];
|
||||
|
||||
// Set accessory channels
|
||||
cmd.Accessory1 = (settings.Accessory1 != MANUALCONTROLSETTINGS_ACCESSORY1_NONE) ? scaledChannel[settings.Accessory1] : 0;
|
||||
cmd.Accessory2 = (settings.Accessory1 != MANUALCONTROLSETTINGS_ACCESSORY2_NONE) ? scaledChannel[settings.Accessory2] : 0;
|
||||
cmd.Accessory3 = (settings.Accessory1 != MANUALCONTROLSETTINGS_ACCESSORY3_NONE) ? scaledChannel[settings.Accessory3] : 0;
|
||||
AccessoryDesiredData accessory;
|
||||
// Set Accessory 0
|
||||
if(settings.Accessory0 != MANUALCONTROLSETTINGS_ACCESSORY0_NONE) {
|
||||
accessory.AccessoryVal = scaledChannel[settings.Accessory0];
|
||||
if(AccessoryDesiredInstSet(0, &accessory) != 0)
|
||||
AlarmsSet(SYSTEMALARMS_ALARM_MANUALCONTROL, SYSTEMALARMS_ALARM_WARNING);
|
||||
}
|
||||
// Set Accessory 1
|
||||
if(settings.Accessory1 != MANUALCONTROLSETTINGS_ACCESSORY1_NONE) {
|
||||
accessory.AccessoryVal = scaledChannel[settings.Accessory1];
|
||||
if(AccessoryDesiredInstSet(1, &accessory) != 0)
|
||||
AlarmsSet(SYSTEMALARMS_ALARM_MANUALCONTROL, SYSTEMALARMS_ALARM_WARNING);
|
||||
}
|
||||
// Set Accsesory 2
|
||||
if(settings.Accessory2 != MANUALCONTROLSETTINGS_ACCESSORY2_NONE) {
|
||||
accessory.AccessoryVal = scaledChannel[settings.Accessory2];
|
||||
if(AccessoryDesiredInstSet(2, &accessory) != 0)
|
||||
AlarmsSet(SYSTEMALARMS_ALARM_MANUALCONTROL, SYSTEMALARMS_ALARM_WARNING);
|
||||
}
|
||||
|
||||
|
||||
processFlightMode(&settings, flightMode);
|
||||
processArm(&cmd, &settings);
|
||||
@ -350,17 +333,23 @@ static void updateStabilizationDesired(ManualControlCommandData * cmd, ManualCon
|
||||
|
||||
stabilization.Roll = (stab_settings[0] == STABILIZATIONDESIRED_STABILIZATIONMODE_NONE) ? cmd->Roll :
|
||||
(stab_settings[0] == STABILIZATIONDESIRED_STABILIZATIONMODE_RATE) ? cmd->Roll * stabSettings.ManualRate[STABILIZATIONSETTINGS_MANUALRATE_ROLL] :
|
||||
(stab_settings[0] == STABILIZATIONDESIRED_STABILIZATIONMODE_WEAKLEVELING) ? cmd->Roll * stabSettings.ManualRate[STABILIZATIONSETTINGS_MANUALRATE_ROLL] :
|
||||
(stab_settings[0] == STABILIZATIONDESIRED_STABILIZATIONMODE_ATTITUDE) ? cmd->Roll * stabSettings.RollMax :
|
||||
(stab_settings[0] == STABILIZATIONDESIRED_STABILIZATIONMODE_AXISLOCK) ? cmd->Roll * stabSettings.ManualRate[STABILIZATIONSETTINGS_MANUALRATE_ROLL] :
|
||||
0; // this is an invalid mode
|
||||
;
|
||||
stabilization.Pitch = (stab_settings[1] == STABILIZATIONDESIRED_STABILIZATIONMODE_NONE) ? cmd->Pitch :
|
||||
(stab_settings[1] == STABILIZATIONDESIRED_STABILIZATIONMODE_RATE) ? cmd->Pitch * stabSettings.ManualRate[STABILIZATIONSETTINGS_MANUALRATE_PITCH] :
|
||||
(stab_settings[1] == STABILIZATIONDESIRED_STABILIZATIONMODE_WEAKLEVELING) ? cmd->Pitch * stabSettings.ManualRate[STABILIZATIONSETTINGS_MANUALRATE_PITCH] :
|
||||
(stab_settings[1] == STABILIZATIONDESIRED_STABILIZATIONMODE_ATTITUDE) ? cmd->Pitch * stabSettings.PitchMax :
|
||||
(stab_settings[1] == STABILIZATIONDESIRED_STABILIZATIONMODE_AXISLOCK) ? cmd->Pitch * stabSettings.ManualRate[STABILIZATIONSETTINGS_MANUALRATE_PITCH] :
|
||||
0; // this is an invalid mode
|
||||
|
||||
stabilization.Yaw = (stab_settings[2] == STABILIZATIONDESIRED_STABILIZATIONMODE_NONE) ? cmd->Yaw :
|
||||
(stab_settings[2] == STABILIZATIONDESIRED_STABILIZATIONMODE_RATE) ? cmd->Yaw * stabSettings.ManualRate[STABILIZATIONSETTINGS_MANUALRATE_YAW] :
|
||||
(stab_settings[2] == STABILIZATIONDESIRED_STABILIZATIONMODE_ATTITUDE) ? fmod(cmd->Yaw * 180.0, 360) :
|
||||
(stab_settings[2] == STABILIZATIONDESIRED_STABILIZATIONMODE_WEAKLEVELING) ? cmd->Yaw * stabSettings.ManualRate[STABILIZATIONSETTINGS_MANUALRATE_YAW] :
|
||||
(stab_settings[2] == STABILIZATIONDESIRED_STABILIZATIONMODE_ATTITUDE) ? cmd->Yaw * stabSettings.YawMax :
|
||||
(stab_settings[2] == STABILIZATIONDESIRED_STABILIZATIONMODE_AXISLOCK) ? cmd->Yaw * stabSettings.ManualRate[STABILIZATIONSETTINGS_MANUALRATE_YAW] :
|
||||
0; // this is an invalid mode
|
||||
|
||||
stabilization.Throttle = (cmd->Throttle < 0) ? -1 : cmd->Throttle;
|
||||
|
@ -40,8 +40,6 @@
|
||||
#include "attitudeactual.h"
|
||||
#include "attituderaw.h"
|
||||
#include "flightstatus.h"
|
||||
#include "systemsettings.h"
|
||||
#include "ahrssettings.h"
|
||||
#include "manualcontrol.h" // Just to get a macro
|
||||
#include "CoordinateConversions.h"
|
||||
|
||||
@ -77,6 +75,15 @@ static xTaskHandle taskHandle;
|
||||
static StabilizationSettingsData settings;
|
||||
static xQueueHandle queue;
|
||||
float dT = 1;
|
||||
float gyro_alpha = 0;
|
||||
float gyro_filtered[3] = {0,0,0};
|
||||
float axis_lock_accum[3] = {0,0,0};
|
||||
uint8_t max_axis_lock = 0;
|
||||
uint8_t max_axislock_rate = 0;
|
||||
float weak_leveling_kp = 0;
|
||||
uint8_t weak_leveling_max = 0;
|
||||
bool lowThrottleZeroIntegral;
|
||||
|
||||
pid_type pids[PID_MAX];
|
||||
|
||||
// Private functions
|
||||
@ -86,12 +93,31 @@ static float bound(float val);
|
||||
static void ZeroPids(void);
|
||||
static void SettingsUpdatedCb(UAVObjEvent * ev);
|
||||
|
||||
/**
|
||||
* Module initialization
|
||||
*/
|
||||
int32_t StabilizationStart()
|
||||
{
|
||||
// Initialize variables
|
||||
|
||||
// Start main task
|
||||
xTaskCreate(stabilizationTask, (signed char*)"Stabilization", STACK_SIZE_BYTES/4, NULL, TASK_PRIORITY, &taskHandle);
|
||||
TaskMonitorAdd(TASKINFO_RUNNING_STABILIZATION, taskHandle);
|
||||
PIOS_WDG_RegisterFlag(PIOS_WDG_STABILIZATION);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Module initialization
|
||||
*/
|
||||
int32_t StabilizationInitialize()
|
||||
{
|
||||
// Initialize variables
|
||||
StabilizationSettingsInitialize();
|
||||
ActuatorDesiredInitialize();
|
||||
#if defined(DIAGNOSTICS)
|
||||
RateDesiredInitialize();
|
||||
#endif
|
||||
|
||||
// Create object queue
|
||||
queue = xQueueCreate(MAX_QUEUE_SIZE, sizeof(UAVObjEvent));
|
||||
@ -103,13 +129,12 @@ int32_t StabilizationInitialize()
|
||||
StabilizationSettingsConnectCallback(SettingsUpdatedCb);
|
||||
SettingsUpdatedCb(StabilizationSettingsHandle());
|
||||
// Start main task
|
||||
xTaskCreate(stabilizationTask, (signed char*)"Stabilization", STACK_SIZE_BYTES/4, NULL, TASK_PRIORITY, &taskHandle);
|
||||
TaskMonitorAdd(TASKINFO_RUNNING_STABILIZATION, taskHandle);
|
||||
PIOS_WDG_RegisterFlag(PIOS_WDG_STABILIZATION);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
MODULE_INITCALL(StabilizationInitialize, StabilizationStart)
|
||||
|
||||
/**
|
||||
* Module task
|
||||
*/
|
||||
@ -125,7 +150,6 @@ static void stabilizationTask(void* parameters)
|
||||
RateDesiredData rateDesired;
|
||||
AttitudeActualData attitudeActual;
|
||||
AttitudeRawData attitudeRaw;
|
||||
SystemSettingsData systemSettings;
|
||||
FlightStatusData flightStatus;
|
||||
|
||||
SettingsUpdatedCb((UAVObjEvent *) NULL);
|
||||
@ -153,8 +177,10 @@ static void stabilizationTask(void* parameters)
|
||||
StabilizationDesiredGet(&stabDesired);
|
||||
AttitudeActualGet(&attitudeActual);
|
||||
AttitudeRawGet(&attitudeRaw);
|
||||
|
||||
#if defined(DIAGNOSTICS)
|
||||
RateDesiredGet(&rateDesired);
|
||||
SystemSettingsGet(&systemSettings);
|
||||
#endif
|
||||
|
||||
#if defined(PIOS_QUATERNION_STABILIZATION)
|
||||
// Quaternion calculation of error in each axis. Uses more memory.
|
||||
@ -193,48 +219,84 @@ static void stabilizationTask(void* parameters)
|
||||
local_error[2] = fmod(local_error[2] + 180, 360) - 180;
|
||||
#endif
|
||||
|
||||
|
||||
for(uint8_t i = 0; i < MAX_AXES; i++) {
|
||||
gyro_filtered[i] = gyro_filtered[i] * gyro_alpha + attitudeRaw.gyros[i] * (1 - gyro_alpha);
|
||||
}
|
||||
|
||||
float *attitudeDesiredAxis = &stabDesired.Roll;
|
||||
float *actuatorDesiredAxis = &actuatorDesired.Roll;
|
||||
float *rateDesiredAxis = &rateDesired.Roll;
|
||||
|
||||
//Calculate desired rate
|
||||
for(int8_t ct=0; ct< MAX_AXES; ct++)
|
||||
for(uint8_t i=0; i< MAX_AXES; i++)
|
||||
{
|
||||
switch(stabDesired.StabilizationMode[ct])
|
||||
switch(stabDesired.StabilizationMode[i])
|
||||
{
|
||||
case STABILIZATIONDESIRED_STABILIZATIONMODE_RATE:
|
||||
rateDesiredAxis[ct] = attitudeDesiredAxis[ct];
|
||||
rateDesiredAxis[i] = attitudeDesiredAxis[i];
|
||||
axis_lock_accum[i] = 0;
|
||||
break;
|
||||
|
||||
case STABILIZATIONDESIRED_STABILIZATIONMODE_WEAKLEVELING:
|
||||
{
|
||||
float weak_leveling = local_error[i] * weak_leveling_kp;
|
||||
|
||||
if(weak_leveling > weak_leveling_max)
|
||||
weak_leveling = weak_leveling_max;
|
||||
if(weak_leveling < -weak_leveling_max)
|
||||
weak_leveling = -weak_leveling_max;
|
||||
|
||||
rateDesiredAxis[i] = attitudeDesiredAxis[i] + weak_leveling;
|
||||
|
||||
axis_lock_accum[i] = 0;
|
||||
break;
|
||||
}
|
||||
case STABILIZATIONDESIRED_STABILIZATIONMODE_ATTITUDE:
|
||||
rateDesiredAxis[ct] = ApplyPid(&pids[PID_ROLL + ct], local_error[ct]);
|
||||
rateDesiredAxis[i] = ApplyPid(&pids[PID_ROLL + i], local_error[i]);
|
||||
axis_lock_accum[i] = 0;
|
||||
break;
|
||||
|
||||
case STABILIZATIONDESIRED_STABILIZATIONMODE_AXISLOCK:
|
||||
if(fabs(attitudeDesiredAxis[i]) > max_axislock_rate) {
|
||||
// While getting strong commands act like rate mode
|
||||
rateDesiredAxis[i] = attitudeDesiredAxis[i];
|
||||
axis_lock_accum[i] = 0;
|
||||
} else {
|
||||
// For weaker commands or no command simply attitude lock (almost) on no gyro change
|
||||
axis_lock_accum[i] += (attitudeDesiredAxis[i] - gyro_filtered[i]) * dT;
|
||||
if(axis_lock_accum[i] > max_axis_lock)
|
||||
axis_lock_accum[i] = max_axis_lock;
|
||||
else if(axis_lock_accum[i] < -max_axis_lock)
|
||||
axis_lock_accum[i] = -max_axis_lock;
|
||||
|
||||
rateDesiredAxis[i] = ApplyPid(&pids[PID_ROLL + i], axis_lock_accum[i]);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
uint8_t shouldUpdate = 1;
|
||||
#if defined(DIAGNOSTICS)
|
||||
RateDesiredSet(&rateDesired);
|
||||
#endif
|
||||
ActuatorDesiredGet(&actuatorDesired);
|
||||
//Calculate desired command
|
||||
for(int8_t ct=0; ct< MAX_AXES; ct++)
|
||||
{
|
||||
if(fabs(rateDesiredAxis[ct]) > settings.MaximumRate[ct])
|
||||
{
|
||||
if(rateDesiredAxis[ct] > 0)
|
||||
{
|
||||
rateDesiredAxis[ct] = settings.MaximumRate[ct];
|
||||
}else
|
||||
{
|
||||
rateDesiredAxis[ct] = -settings.MaximumRate[ct];
|
||||
}
|
||||
if(rateDesiredAxis[ct] > settings.MaximumRate[ct])
|
||||
rateDesiredAxis[ct] = settings.MaximumRate[ct];
|
||||
else if(rateDesiredAxis[ct] < -settings.MaximumRate[ct])
|
||||
rateDesiredAxis[ct] = -settings.MaximumRate[ct];
|
||||
|
||||
}
|
||||
switch(stabDesired.StabilizationMode[ct])
|
||||
{
|
||||
case STABILIZATIONDESIRED_STABILIZATIONMODE_RATE:
|
||||
case STABILIZATIONDESIRED_STABILIZATIONMODE_ATTITUDE:
|
||||
case STABILIZATIONDESIRED_STABILIZATIONMODE_AXISLOCK:
|
||||
case STABILIZATIONDESIRED_STABILIZATIONMODE_WEAKLEVELING:
|
||||
{
|
||||
float command = ApplyPid(&pids[PID_RATE_ROLL + ct], rateDesiredAxis[ct]-attitudeRaw.gyros[ct]);
|
||||
float command = ApplyPid(&pids[PID_RATE_ROLL + ct], rateDesiredAxis[ct] - gyro_filtered[ct]);
|
||||
actuatorDesiredAxis[ct] = bound(command);
|
||||
break;
|
||||
}
|
||||
@ -274,7 +336,8 @@ static void stabilizationTask(void* parameters)
|
||||
}
|
||||
|
||||
if(flightStatus.Armed != FLIGHTSTATUS_ARMED_ARMED ||
|
||||
!shouldUpdate || (stabDesired.Throttle < 0))
|
||||
(lowThrottleZeroIntegral && stabDesired.Throttle < 0) ||
|
||||
!shouldUpdate)
|
||||
{
|
||||
ZeroPids();
|
||||
}
|
||||
@ -289,15 +352,15 @@ float ApplyPid(pid_type * pid, const float err)
|
||||
{
|
||||
float diff = (err - pid->lastErr);
|
||||
pid->lastErr = err;
|
||||
pid->iAccumulator += err * pid->i * dT;
|
||||
if(fabs(pid->iAccumulator) > pid->iLim) {
|
||||
if(pid->iAccumulator >0) {
|
||||
pid->iAccumulator = pid->iLim;
|
||||
} else {
|
||||
pid->iAccumulator = -pid->iLim;
|
||||
}
|
||||
|
||||
// Scale up accumulator by 1000 while computing to avoid losing precision
|
||||
pid->iAccumulator += err * (pid->i * dT * 1000);
|
||||
if(pid->iAccumulator > (pid->iLim * 1000)) {
|
||||
pid->iAccumulator = pid->iLim * 1000;
|
||||
} else if (pid->iAccumulator < -(pid->iLim * 1000)) {
|
||||
pid->iAccumulator = -pid->iLim * 1000;
|
||||
}
|
||||
return ((err * pid->p) + pid->iAccumulator + (diff * pid->d / dT));
|
||||
return ((err * pid->p) + pid->iAccumulator / 1000 + (diff * pid->d / dT));
|
||||
}
|
||||
|
||||
|
||||
@ -307,6 +370,8 @@ static void ZeroPids(void)
|
||||
pids[ct].iAccumulator = 0;
|
||||
pids[ct].lastErr = 0;
|
||||
}
|
||||
for(uint8_t i = 0; i < 3; i++)
|
||||
axis_lock_accum[i] = 0;
|
||||
}
|
||||
|
||||
|
||||
@ -329,13 +394,60 @@ static void SettingsUpdatedCb(UAVObjEvent * ev)
|
||||
memset(pids,0,sizeof (pid_type) * PID_MAX);
|
||||
StabilizationSettingsGet(&settings);
|
||||
|
||||
float * data = settings.RollRatePI;
|
||||
for(int8_t pid=0; pid < PID_MAX; pid++)
|
||||
{
|
||||
pids[pid].p = *data++;
|
||||
pids[pid].i = *data++;
|
||||
pids[pid].iLim = *data++;
|
||||
}
|
||||
// Set the roll rate PID constants
|
||||
pids[0].p = settings.RollRatePID[STABILIZATIONSETTINGS_ROLLRATEPID_KP];
|
||||
pids[0].i = settings.RollRatePID[STABILIZATIONSETTINGS_ROLLRATEPID_KI];
|
||||
pids[0].d = settings.RollRatePID[STABILIZATIONSETTINGS_ROLLRATEPID_KD];
|
||||
pids[0].iLim = settings.RollRatePID[STABILIZATIONSETTINGS_ROLLRATEPID_ILIMIT];
|
||||
|
||||
// Set the pitch rate PID constants
|
||||
pids[1].p = settings.PitchRatePID[STABILIZATIONSETTINGS_PITCHRATEPID_KP];
|
||||
pids[1].i = settings.PitchRatePID[STABILIZATIONSETTINGS_PITCHRATEPID_KI];
|
||||
pids[1].d = settings.PitchRatePID[STABILIZATIONSETTINGS_PITCHRATEPID_KD];
|
||||
pids[1].iLim = settings.PitchRatePID[STABILIZATIONSETTINGS_PITCHRATEPID_ILIMIT];
|
||||
|
||||
// Set the yaw rate PID constants
|
||||
pids[2].p = settings.YawRatePID[STABILIZATIONSETTINGS_YAWRATEPID_KP];
|
||||
pids[2].i = settings.YawRatePID[STABILIZATIONSETTINGS_YAWRATEPID_KI];
|
||||
pids[2].d = settings.YawRatePID[STABILIZATIONSETTINGS_YAWRATEPID_KD];
|
||||
pids[2].iLim = settings.YawRatePID[STABILIZATIONSETTINGS_YAWRATEPID_ILIMIT];
|
||||
|
||||
// Set the roll attitude PI constants
|
||||
pids[3].p = settings.RollPI[STABILIZATIONSETTINGS_ROLLPI_KP];
|
||||
pids[3].i = settings.RollPI[STABILIZATIONSETTINGS_ROLLPI_KI];
|
||||
pids[3].iLim = settings.RollPI[STABILIZATIONSETTINGS_ROLLPI_ILIMIT];
|
||||
|
||||
// Set the pitch attitude PI constants
|
||||
pids[4].p = settings.PitchPI[STABILIZATIONSETTINGS_PITCHPI_KP];
|
||||
pids[4].i = settings.PitchPI[STABILIZATIONSETTINGS_PITCHPI_KI];
|
||||
pids[4].iLim = settings.PitchPI[STABILIZATIONSETTINGS_PITCHPI_ILIMIT];
|
||||
|
||||
// Set the yaw attitude PI constants
|
||||
pids[5].p = settings.YawPI[STABILIZATIONSETTINGS_YAWPI_KP];
|
||||
pids[5].i = settings.YawPI[STABILIZATIONSETTINGS_YAWPI_KI];
|
||||
pids[5].iLim = settings.YawPI[STABILIZATIONSETTINGS_YAWPI_ILIMIT];
|
||||
|
||||
// Maximum deviation to accumulate for axis lock
|
||||
max_axis_lock = settings.MaxAxisLock;
|
||||
max_axislock_rate = settings.MaxAxisLockRate;
|
||||
|
||||
// Settings for weak leveling
|
||||
weak_leveling_kp = settings.WeakLevelingKp;
|
||||
weak_leveling_max = settings.MaxWeakLevelingRate;
|
||||
|
||||
// Whether to zero the PID integrals while throttle is low
|
||||
lowThrottleZeroIntegral = settings.LowThrottleZeroIntegral == STABILIZATIONSETTINGS_LOWTHROTTLEZEROINTEGRAL_TRUE;
|
||||
|
||||
// The dT has some jitter iteration to iteration that we don't want to
|
||||
// make thie result unpredictable. Still, it's nicer to specify the constant
|
||||
// based on a time (in ms) rather than a fixed multiplier. The error between
|
||||
// update rates on OP (~300 Hz) and CC (~475 Hz) is negligible for this
|
||||
// calculation
|
||||
const float fakeDt = 0.0025;
|
||||
if(settings.GyroTau < 0.0001)
|
||||
gyro_alpha = 0; // not trusting this to resolve to 0
|
||||
else
|
||||
gyro_alpha = exp(-fakeDt / settings.GyroTau);
|
||||
}
|
||||
|
||||
|
||||
|
@ -43,7 +43,9 @@
|
||||
#include "objectpersistence.h"
|
||||
#include "flightstatus.h"
|
||||
#include "systemstats.h"
|
||||
#include "systemsettings.h"
|
||||
#include "i2cstats.h"
|
||||
#include "taskinfo.h"
|
||||
#include "watchdogstatus.h"
|
||||
#include "taskmonitor.h"
|
||||
#include "pios_config.h"
|
||||
@ -78,24 +80,51 @@ static int32_t stackOverflow;
|
||||
// Private functions
|
||||
static void objectUpdatedCb(UAVObjEvent * ev);
|
||||
static void updateStats();
|
||||
static void updateI2Cstats();
|
||||
static void updateWDGstats();
|
||||
static void updateSystemAlarms();
|
||||
static void systemTask(void *parameters);
|
||||
|
||||
#if defined(DIAGNOSTICS)
|
||||
static void updateI2Cstats();
|
||||
static void updateWDGstats();
|
||||
#endif
|
||||
/**
|
||||
* Initialise the module, called on startup.
|
||||
* \returns 0 on success or -1 if initialisation failed
|
||||
* Create the module task.
|
||||
* \returns 0 on success or -1 if initialization failed
|
||||
*/
|
||||
int32_t SystemModInitialize(void)
|
||||
int32_t SystemModStart(void)
|
||||
{
|
||||
// Initialize vars
|
||||
stackOverflow = 0;
|
||||
// Create system task
|
||||
xTaskCreate(systemTask, (signed char *)"System", STACK_SIZE_BYTES/4, NULL, TASK_PRIORITY, &systemTaskHandle);
|
||||
// Register task
|
||||
TaskMonitorAdd(TASKINFO_RUNNING_SYSTEM, systemTaskHandle);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialize the module, called on startup.
|
||||
* \returns 0 on success or -1 if initialization failed
|
||||
*/
|
||||
int32_t SystemModInitialize(void)
|
||||
{
|
||||
|
||||
// Must registers objects here for system thread because ObjectManager started in OpenPilotInit
|
||||
SystemSettingsInitialize();
|
||||
SystemStatsInitialize();
|
||||
ObjectPersistenceInitialize();
|
||||
#if defined(DIAGNOSTICS)
|
||||
TaskInfoInitialize();
|
||||
I2CStatsInitialize();
|
||||
WatchdogStatusInitialize();
|
||||
#endif
|
||||
|
||||
SystemModStart();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
MODULE_INITCALL(SystemModInitialize, 0)
|
||||
/**
|
||||
* System task, periodically executes every SYSTEM_UPDATE_PERIOD_MS
|
||||
*/
|
||||
@ -103,11 +132,8 @@ static void systemTask(void *parameters)
|
||||
{
|
||||
portTickType lastSysTime;
|
||||
|
||||
// System initialization
|
||||
OpenPilotInit();
|
||||
|
||||
// Register task
|
||||
TaskMonitorAdd(TASKINFO_RUNNING_SYSTEM, systemTaskHandle);
|
||||
/* create all modules thread */
|
||||
MODULE_TASKCREATE_ALL
|
||||
|
||||
// Initialize vars
|
||||
idleCounter = 0;
|
||||
@ -124,9 +150,10 @@ static void systemTask(void *parameters)
|
||||
|
||||
// Update the system alarms
|
||||
updateSystemAlarms();
|
||||
#if defined(DIAGNOSTICS)
|
||||
updateI2Cstats();
|
||||
updateWDGstats();
|
||||
|
||||
#endif
|
||||
// Update the task status object
|
||||
TaskMonitorUpdateAll();
|
||||
|
||||
@ -228,9 +255,7 @@ static void objectUpdatedCb(UAVObjEvent * ev)
|
||||
/**
|
||||
* Called periodically to update the I2C statistics
|
||||
*/
|
||||
#if defined(ARCH_POSIX) || defined(ARCH_WIN32)
|
||||
static void updateI2Cstats() {} //Posix and win32 don't have I2C
|
||||
#else
|
||||
#if defined(DIAGNOSTICS)
|
||||
static void updateI2Cstats()
|
||||
{
|
||||
#if defined(PIOS_INCLUDE_I2C)
|
||||
@ -250,7 +275,6 @@ static void updateI2Cstats()
|
||||
I2CStatsSet(&i2cStats);
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
static void updateWDGstats()
|
||||
{
|
||||
@ -259,6 +283,50 @@ static void updateWDGstats()
|
||||
watchdogStatus.ActiveFlags = PIOS_WDG_GetActiveFlags();
|
||||
WatchdogStatusSet(&watchdogStatus);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
/**
|
||||
* Called periodically to update the system stats
|
||||
*/
|
||||
static uint16_t GetFreeIrqStackSize(void)
|
||||
{
|
||||
uint32_t i = 0x200;
|
||||
|
||||
#if !defined(ARCH_POSIX) && !defined(ARCH_WIN32) && defined(CHECK_IRQ_STACK)
|
||||
extern uint32_t _irq_stack_top;
|
||||
extern uint32_t _irq_stack_end;
|
||||
uint32_t pattern = 0x0000A5A5;
|
||||
uint32_t *ptr = &_irq_stack_end;
|
||||
|
||||
#if 1 /* the ugly way accurate but takes more time, useful for debugging */
|
||||
uint32_t stack_size = (((uint32_t)&_irq_stack_top - (uint32_t)&_irq_stack_end) & ~3 ) / 4;
|
||||
|
||||
for (i=0; i< stack_size; i++)
|
||||
{
|
||||
if (ptr[i] != pattern)
|
||||
{
|
||||
i=i*4;
|
||||
break;
|
||||
}
|
||||
}
|
||||
#else /* faster way but not accurate */
|
||||
if (*(volatile uint32_t *)((uint32_t)ptr + IRQSTACK_LIMIT_CRITICAL) != pattern)
|
||||
{
|
||||
i = IRQSTACK_LIMIT_CRITICAL - 1;
|
||||
}
|
||||
else if (*(volatile uint32_t *)((uint32_t)ptr + IRQSTACK_LIMIT_WARNING) != pattern)
|
||||
{
|
||||
i = IRQSTACK_LIMIT_WARNING - 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
i = IRQSTACK_LIMIT_WARNING;
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
return i;
|
||||
}
|
||||
|
||||
/**
|
||||
* Called periodically to update the system stats
|
||||
@ -278,6 +346,9 @@ static void updateStats()
|
||||
stats.HeapRemaining = xPortGetFreeHeapSize();
|
||||
#endif
|
||||
|
||||
// Get Irq stack status
|
||||
stats.IRQStackRemaining = GetFreeIrqStackSize();
|
||||
|
||||
// When idleCounterClear was not reset by the idle-task, it means the idle-task did not run
|
||||
if (idleCounterClear) {
|
||||
idleCounter = 0;
|
||||
@ -320,6 +391,17 @@ static void updateSystemAlarms()
|
||||
AlarmsClear(SYSTEMALARMS_ALARM_OUTOFMEMORY);
|
||||
}
|
||||
|
||||
#if !defined(ARCH_POSIX) && !defined(ARCH_WIN32) && defined(CHECK_IRQ_STACK)
|
||||
// Check IRQ stack
|
||||
if (stats.IRQStackRemaining < IRQSTACK_LIMIT_CRITICAL) {
|
||||
AlarmsSet(SYSTEMALARMS_ALARM_OUTOFMEMORY, SYSTEMALARMS_ALARM_CRITICAL);
|
||||
} else if (stats.IRQStackRemaining < IRQSTACK_LIMIT_WARNING) {
|
||||
AlarmsSet(SYSTEMALARMS_ALARM_OUTOFMEMORY, SYSTEMALARMS_ALARM_WARNING);
|
||||
} else {
|
||||
AlarmsClear(SYSTEMALARMS_ALARM_OUTOFMEMORY);
|
||||
}
|
||||
#endif
|
||||
|
||||
// Check CPU load
|
||||
if (stats.CPULoad > CPULOAD_LIMIT_CRITICAL) {
|
||||
AlarmsSet(SYSTEMALARMS_ALARM_CPUOVERLOAD, SYSTEMALARMS_ALARM_CRITICAL);
|
||||
|
@ -31,6 +31,7 @@
|
||||
*/
|
||||
|
||||
#include "openpilot.h"
|
||||
#include "telemetry.h"
|
||||
#include "flighttelemetrystats.h"
|
||||
#include "gcstelemetrystats.h"
|
||||
#include "telemetrysettings.h"
|
||||
@ -66,6 +67,7 @@ static uint32_t txErrors;
|
||||
static uint32_t txRetries;
|
||||
static TelemetrySettingsData settings;
|
||||
static uint32_t timeOfLastObjectUpdate;
|
||||
static UAVTalkConnection uavTalkCon;
|
||||
|
||||
// Private functions
|
||||
static void telemetryTxTask(void *parameters);
|
||||
@ -85,34 +87,11 @@ static void updateSettings();
|
||||
* \return -1 if initialisation failed
|
||||
* \return 0 on success
|
||||
*/
|
||||
int32_t TelemetryInitialize(void)
|
||||
int32_t TelemetryStart(void)
|
||||
{
|
||||
UAVObjEvent ev;
|
||||
|
||||
// Initialize vars
|
||||
timeOfLastObjectUpdate = 0;
|
||||
|
||||
// Create object queues
|
||||
queue = xQueueCreate(MAX_QUEUE_SIZE, sizeof(UAVObjEvent));
|
||||
#if defined(PIOS_TELEM_PRIORITY_QUEUE)
|
||||
priorityQueue = xQueueCreate(MAX_QUEUE_SIZE, sizeof(UAVObjEvent));
|
||||
#endif
|
||||
|
||||
// Get telemetry settings object
|
||||
updateSettings();
|
||||
|
||||
// Initialise UAVTalk
|
||||
UAVTalkInitialize(&transmitData);
|
||||
|
||||
// Process all registered objects and connect queue for updates
|
||||
UAVObjIterate(®isterObject);
|
||||
|
||||
// Create periodic event that will be used to update the telemetry stats
|
||||
txErrors = 0;
|
||||
txRetries = 0;
|
||||
memset(&ev, 0, sizeof(UAVObjEvent));
|
||||
EventPeriodicQueueCreate(&ev, priorityQueue, STATS_UPDATE_PERIOD_MS);
|
||||
|
||||
// Listen to objects of interest
|
||||
GCSTelemetryStatsConnectQueue(priorityQueue);
|
||||
TelemetrySettingsConnectQueue(priorityQueue);
|
||||
@ -131,6 +110,46 @@ int32_t TelemetryInitialize(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialise the telemetry module
|
||||
* \return -1 if initialisation failed
|
||||
* \return 0 on success
|
||||
*/
|
||||
int32_t TelemetryInitialize(void)
|
||||
{
|
||||
UAVObjEvent ev;
|
||||
|
||||
FlightTelemetryStatsInitialize();
|
||||
GCSTelemetryStatsInitialize();
|
||||
TelemetrySettingsInitialize();
|
||||
|
||||
// Initialize vars
|
||||
timeOfLastObjectUpdate = 0;
|
||||
|
||||
// Create object queues
|
||||
queue = xQueueCreate(MAX_QUEUE_SIZE, sizeof(UAVObjEvent));
|
||||
#if defined(PIOS_TELEM_PRIORITY_QUEUE)
|
||||
priorityQueue = xQueueCreate(MAX_QUEUE_SIZE, sizeof(UAVObjEvent));
|
||||
#endif
|
||||
|
||||
// Get telemetry settings object
|
||||
updateSettings();
|
||||
|
||||
// Initialise UAVTalk
|
||||
uavTalkCon = UAVTalkInitialize(&transmitData,256);
|
||||
|
||||
// Create periodic event that will be used to update the telemetry stats
|
||||
txErrors = 0;
|
||||
txRetries = 0;
|
||||
memset(&ev, 0, sizeof(UAVObjEvent));
|
||||
EventPeriodicQueueCreate(&ev, priorityQueue, STATS_UPDATE_PERIOD_MS);
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
MODULE_INITCALL(TelemetryInitialize, TelemetryStart)
|
||||
|
||||
/**
|
||||
* Register a new object, adds object to local list and connects the queue depending on the object's
|
||||
* telemetry settings.
|
||||
@ -221,7 +240,7 @@ static void processObjEvent(UAVObjEvent * ev)
|
||||
if (ev->event == EV_UPDATED || ev->event == EV_UPDATED_MANUAL) {
|
||||
// Send update to GCS (with retries)
|
||||
while (retries < MAX_RETRIES && success == -1) {
|
||||
success = UAVTalkSendObject(ev->obj, ev->instId, metadata.telemetryAcked, REQ_TIMEOUT_MS); // call blocks until ack is received or timeout
|
||||
success = UAVTalkSendObject(uavTalkCon, ev->obj, ev->instId, metadata.telemetryAcked, REQ_TIMEOUT_MS); // call blocks until ack is received or timeout
|
||||
++retries;
|
||||
}
|
||||
// Update stats
|
||||
@ -232,7 +251,7 @@ static void processObjEvent(UAVObjEvent * ev)
|
||||
} else if (ev->event == EV_UPDATE_REQ) {
|
||||
// Request object update from GCS (with retries)
|
||||
while (retries < MAX_RETRIES && success == -1) {
|
||||
success = UAVTalkSendObjectRequest(ev->obj, ev->instId, REQ_TIMEOUT_MS); // call blocks until update is received or timeout
|
||||
success = UAVTalkSendObjectRequest(uavTalkCon, ev->obj, ev->instId, REQ_TIMEOUT_MS); // call blocks until update is received or timeout
|
||||
++retries;
|
||||
}
|
||||
// Update stats
|
||||
@ -291,7 +310,6 @@ static void telemetryTxPriTask(void *parameters)
|
||||
static void telemetryRxTask(void *parameters)
|
||||
{
|
||||
uint32_t inputPort;
|
||||
int32_t len;
|
||||
|
||||
// Task loop
|
||||
while (1) {
|
||||
@ -305,14 +323,20 @@ static void telemetryRxTask(void *parameters)
|
||||
inputPort = telemetryPort;
|
||||
}
|
||||
|
||||
// Block until data are available
|
||||
// TODO: Currently we periodically check the buffer for data, update once the PIOS_COM is made blocking
|
||||
len = PIOS_COM_ReceiveBufferUsed(inputPort);
|
||||
for (int32_t n = 0; n < len; ++n) {
|
||||
UAVTalkProcessInputStream(PIOS_COM_ReceiveBuffer(inputPort));
|
||||
}
|
||||
vTaskDelay(5); // <- remove when blocking calls are implemented
|
||||
if (inputPort) {
|
||||
// Block until data are available
|
||||
uint8_t serial_data[1];
|
||||
uint16_t bytes_to_process;
|
||||
|
||||
bytes_to_process = PIOS_COM_ReceiveBuffer(inputPort, serial_data, sizeof(serial_data), 500);
|
||||
if (bytes_to_process > 0) {
|
||||
for (uint8_t i = 0; i < bytes_to_process; i++) {
|
||||
UAVTalkProcessInputStream(uavTalkCon,serial_data[i]);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
vTaskDelay(5);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -336,7 +360,11 @@ static int32_t transmitData(uint8_t * data, int32_t length)
|
||||
outputPort = telemetryPort;
|
||||
}
|
||||
|
||||
return PIOS_COM_SendBufferNonBlocking(outputPort, data, length);
|
||||
if (outputPort) {
|
||||
return PIOS_COM_SendBufferNonBlocking(outputPort, data, length);
|
||||
} else {
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@ -403,8 +431,8 @@ static void updateTelemetryStats()
|
||||
uint32_t timeNow;
|
||||
|
||||
// Get stats
|
||||
UAVTalkGetStats(&utalkStats);
|
||||
UAVTalkResetStats();
|
||||
UAVTalkGetStats(uavTalkCon, &utalkStats);
|
||||
UAVTalkResetStats(uavTalkCon);
|
||||
|
||||
// Get object data
|
||||
FlightTelemetryStatsGet(&flightStats);
|
||||
@ -492,20 +520,16 @@ static void updateSettings()
|
||||
// Retrieve settings
|
||||
TelemetrySettingsGet(&settings);
|
||||
|
||||
// Set port speed
|
||||
if (settings.Speed == TELEMETRYSETTINGS_SPEED_2400) PIOS_COM_ChangeBaud(telemetryPort, 2400);
|
||||
else
|
||||
if (settings.Speed == TELEMETRYSETTINGS_SPEED_4800) PIOS_COM_ChangeBaud(telemetryPort, 4800);
|
||||
else
|
||||
if (settings.Speed == TELEMETRYSETTINGS_SPEED_9600) PIOS_COM_ChangeBaud(telemetryPort, 9600);
|
||||
else
|
||||
if (settings.Speed == TELEMETRYSETTINGS_SPEED_19200) PIOS_COM_ChangeBaud(telemetryPort, 19200);
|
||||
else
|
||||
if (settings.Speed == TELEMETRYSETTINGS_SPEED_38400) PIOS_COM_ChangeBaud(telemetryPort, 38400);
|
||||
else
|
||||
if (settings.Speed == TELEMETRYSETTINGS_SPEED_57600) PIOS_COM_ChangeBaud(telemetryPort, 57600);
|
||||
else
|
||||
if (settings.Speed == TELEMETRYSETTINGS_SPEED_115200) PIOS_COM_ChangeBaud(telemetryPort, 115200);
|
||||
if (telemetryPort) {
|
||||
// Set port speed
|
||||
if (settings.Speed == TELEMETRYSETTINGS_SPEED_2400) PIOS_COM_ChangeBaud(telemetryPort, 2400);
|
||||
else if (settings.Speed == TELEMETRYSETTINGS_SPEED_4800) PIOS_COM_ChangeBaud(telemetryPort, 4800);
|
||||
else if (settings.Speed == TELEMETRYSETTINGS_SPEED_9600) PIOS_COM_ChangeBaud(telemetryPort, 9600);
|
||||
else if (settings.Speed == TELEMETRYSETTINGS_SPEED_19200) PIOS_COM_ChangeBaud(telemetryPort, 19200);
|
||||
else if (settings.Speed == TELEMETRYSETTINGS_SPEED_38400) PIOS_COM_ChangeBaud(telemetryPort, 38400);
|
||||
else if (settings.Speed == TELEMETRYSETTINGS_SPEED_57600) PIOS_COM_ChangeBaud(telemetryPort, 57600);
|
||||
else if (settings.Speed == TELEMETRYSETTINGS_SPEED_115200) PIOS_COM_ChangeBaud(telemetryPort, 115200);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -25,6 +25,13 @@
|
||||
WHEREAMI := $(dir $(lastword $(MAKEFILE_LIST)))
|
||||
TOP := $(realpath $(WHEREAMI)/../../)
|
||||
include $(TOP)/make/firmware-defs.mk
|
||||
include $(TOP)/make/boards/$(BOARD_NAME)/board-info.mk
|
||||
|
||||
# Target file name (without extension).
|
||||
TARGET := fw_$(BOARD_NAME)
|
||||
|
||||
# Directory for output files (lst, obj, dep, elf, sym, map, hex, bin etc.)
|
||||
OUTDIR := $(TOP)/build/$(TARGET)
|
||||
|
||||
# Set developer code and compile options
|
||||
# Set to YES to compile for debugging
|
||||
@ -36,9 +43,6 @@ ENABLE_DEBUG_PINS ?= NO
|
||||
# Set to Yes to enable the AUX UART which is mapped on the S1 (Tx) and S2 (Rx) servo outputs
|
||||
ENABLE_AUX_UART ?= NO
|
||||
|
||||
USE_SPEKTRUM ?= NO
|
||||
|
||||
|
||||
# Set to YES when using Code Sourcery toolchain
|
||||
CODE_SOURCERY ?= YES
|
||||
|
||||
@ -52,29 +56,13 @@ endif
|
||||
FLASH_TOOL = OPENOCD
|
||||
|
||||
# List of modules to include
|
||||
MODULES = Actuator Telemetry GPS ManualControl Altitude AHRSComms Stabilization Guidance FirmwareIAP FlightPlan
|
||||
|
||||
MODULES = Actuator Telemetry GPS ManualControl Altitude AHRSComms Stabilization Guidance FirmwareIAP
|
||||
PYMODULES = FlightPlan
|
||||
#MODULES = Telemetry Example
|
||||
#MODULES = Telemetry MK/MKSerial
|
||||
#MODULES = Telemetry
|
||||
#MODULES += Osd/OsdEtStd
|
||||
|
||||
|
||||
# MCU name, submodel and board
|
||||
# - MCU used for compiler-option (-mcpu)
|
||||
# - MODEL used for linker-script name (-T) and passed as define
|
||||
# - BOARD just passed as define (optional)
|
||||
MCU = cortex-m3
|
||||
CHIP = STM32F103RET
|
||||
BOARD = STM3210E_OP
|
||||
MODEL = HD
|
||||
|
||||
# Directory for output files (lst, obj, dep, elf, sym, map, hex, bin etc.)
|
||||
OUTDIR = $(TOP)/build/openpilot
|
||||
|
||||
# Target file name (without extension).
|
||||
TARGET = OpenPilot
|
||||
|
||||
# Paths
|
||||
OPSYSTEM = ./System
|
||||
OPSYSTEMINC = $(OPSYSTEM)/inc
|
||||
@ -124,21 +112,20 @@ UAVOBJSYNTHDIR = $(OUTDIR)/../uavobject-synthetics/flight
|
||||
# List C source files here. (C dependencies are automatically generated.)
|
||||
# use file-extension c for "c-only"-files
|
||||
|
||||
MODNAMES = $(notdir ${MODULES})
|
||||
|
||||
ifndef TESTAPP
|
||||
|
||||
## PyMite files
|
||||
## PyMite files and modules
|
||||
SRC += $(OUTDIR)/pmlib_img.c
|
||||
SRC += $(OUTDIR)/pmlib_nat.c
|
||||
SRC += $(OUTDIR)/pmlibusr_img.c
|
||||
SRC += $(OUTDIR)/pmlibusr_nat.c
|
||||
SRC += $(wildcard ${PYMITEVM}/*.c)
|
||||
SRC += $(wildcard ${PYMITEPLAT}/*.c)
|
||||
PYSRC += $(wildcard ${PYMITEVM}/*.c)
|
||||
PYSRC += $(wildcard ${PYMITEPLAT}/*.c)
|
||||
PYSRC += ${foreach MOD, ${PYMODULES}, ${wildcard ${OPMODULEDIR}/${MOD}/*.c}}
|
||||
SRC += $(PYSRC)
|
||||
|
||||
## MODULES
|
||||
SRC += ${foreach MOD, ${MODULES}, ${wildcard ${OPMODULEDIR}/${MOD}/*.c}}
|
||||
SRC += ${OUTDIR}/InitMods.c
|
||||
## OPENPILOT CORE:
|
||||
SRC += ${OPMODULEDIR}/System/systemmod.c
|
||||
SRC += $(OPSYSTEM)/openpilot.c
|
||||
@ -148,7 +135,6 @@ SRC += $(OPSYSTEM)/taskmonitor.c
|
||||
SRC += $(OPUAVTALK)/uavtalk.c
|
||||
SRC += $(OPUAVOBJ)/uavobjectmanager.c
|
||||
SRC += $(OPUAVOBJ)/eventdispatcher.c
|
||||
SRC += $(OPUAVOBJ)/uavobjectsinit_linker.c
|
||||
else
|
||||
## TESTCODE
|
||||
SRC += $(OPTESTS)/test_common.c
|
||||
@ -177,6 +163,7 @@ SRC += $(PIOSSTM32F10X)/pios_spi.c
|
||||
SRC += $(PIOSSTM32F10X)/pios_ppm.c
|
||||
SRC += $(PIOSSTM32F10X)/pios_pwm.c
|
||||
SRC += $(PIOSSTM32F10X)/pios_spektrum.c
|
||||
SRC += $(PIOSSTM32F10X)/pios_sbus.c
|
||||
SRC += $(PIOSSTM32F10X)/pios_debug.c
|
||||
SRC += $(PIOSSTM32F10X)/pios_gpio.c
|
||||
SRC += $(PIOSSTM32F10X)/pios_exti.c
|
||||
@ -193,6 +180,7 @@ SRC += $(PIOSSTM32F10X)/pios_usb_hid_prop.c
|
||||
SRC += $(PIOSSTM32F10X)/pios_usb_hid_pwr.c
|
||||
|
||||
## PIOS Hardware (Common)
|
||||
SRC += $(PIOSCOMMON)/pios_crc.c
|
||||
SRC += $(PIOSCOMMON)/pios_sdcard.c
|
||||
SRC += $(PIOSCOMMON)/pios_com.c
|
||||
SRC += $(PIOSCOMMON)/pios_bmp085.c
|
||||
@ -200,6 +188,7 @@ SRC += $(PIOSCOMMON)/pios_hcsr04.c
|
||||
SRC += $(PIOSCOMMON)/pios_i2c_esc.c
|
||||
SRC += $(PIOSCOMMON)/pios_iap.c
|
||||
SRC += $(PIOSCOMMON)/pios_bl_helper.c
|
||||
SRC += $(PIOSCOMMON)/pios_rcvr.c
|
||||
SRC += $(PIOSCOMMON)/printf-stdarg.c
|
||||
SRC += $(FLIGHTLIB)/ahrs_spi_comm.c
|
||||
SRC += $(FLIGHTLIB)/ahrs_comm_objects.c
|
||||
@ -286,7 +275,7 @@ CPPSRCARM =
|
||||
# Even though the DOS/Win* filesystem matches both .s and .S the same,
|
||||
# it will preserve the spelling of the filenames, and gcc itself does
|
||||
# care about how the name is spelled on its command-line.
|
||||
ASRC = $(PIOSSTM32F10X)/startup_stm32f10x_$(MODEL)_OP.S
|
||||
ASRC = $(PIOSSTM32F10X)/startup_stm32f10x_$(MODEL)$(MODEL_SUFFIX).S
|
||||
|
||||
# List Assembler source files here which must be assembled in ARM-Mode..
|
||||
ASRCARM =
|
||||
@ -317,7 +306,7 @@ EXTRAINCDIRS += $(RTOSSRCDIR)/portable/GCC/ARM_CM3
|
||||
EXTRAINCDIRS += $(AHRSBOOTLOADERINC)
|
||||
EXTRAINCDIRS += $(PYMITEINC)
|
||||
|
||||
EXTRAINCDIRS += ${foreach MOD, ${MODULES}, $(OPMODULEDIR)/${MOD}/inc} ${OPMODULEDIR}/System/inc
|
||||
EXTRAINCDIRS += ${foreach MOD, ${MODULES} ${PYMODULES}, $(OPMODULEDIR)/${MOD}/inc} ${OPMODULEDIR}/System/inc
|
||||
|
||||
|
||||
# List any extra directories to look for library files here.
|
||||
@ -368,12 +357,6 @@ endif
|
||||
ifeq ($(ENABLE_AUX_UART), YES)
|
||||
CDEFS += -DPIOS_ENABLE_AUX_UART
|
||||
endif
|
||||
CDEFS += -DUSE_BOOTLOADER
|
||||
|
||||
ifeq ($(USE_SPEKTRUM), YES)
|
||||
CDEFS += -DUSE_SPEKTRUM
|
||||
endif
|
||||
|
||||
|
||||
# Place project-specific -D and/or -U options for
|
||||
# Assembler with preprocessor here.
|
||||
@ -404,6 +387,9 @@ ifeq ($(DEBUG),YES)
|
||||
CFLAGS = -g$(DEBUGF) -DDEBUG
|
||||
endif
|
||||
|
||||
# OP has enough memory to always enable optional objects
|
||||
CFLAGS += -DDIAGNOSTICS
|
||||
|
||||
CFLAGS += -O$(OPT)
|
||||
CFLAGS += -mcpu=$(MCU)
|
||||
CFLAGS += $(CDEFS)
|
||||
@ -450,22 +436,9 @@ LDFLAGS += -lc -lgcc
|
||||
LDFLAGS += -T$(LINKERSCRIPTPATH)/link_$(BOARD)_memory.ld
|
||||
LDFLAGS += -T$(LINKERSCRIPTPATH)/link_$(BOARD)_sections.ld
|
||||
|
||||
OOCD_LOADFILE+=$(OUTDIR)/$(TARGET).bin
|
||||
# Program
|
||||
OOCD_CL+=-c "flash write_image erase $(OOCD_LOADFILE) 0x08005000 bin"
|
||||
# Verify
|
||||
OOCD_CL+=-c "verify_image $(OOCD_LOADFILE) 0x08005000 bin"
|
||||
# reset target
|
||||
OOCD_CL+=-c "reset run"
|
||||
# terminate OOCD after programming
|
||||
OOCD_CL+=-c shutdown
|
||||
|
||||
|
||||
# Define programs and commands.
|
||||
REMOVE = $(REMOVE_CMD) -f
|
||||
PYTHON = python
|
||||
###SHELL = sh
|
||||
###COPY = cp
|
||||
|
||||
# List of all source files.
|
||||
ALLSRC = $(ASRCARM) $(ASRC) $(SRCARM) $(SRC) $(CPPSRCARM) $(CPPSRC)
|
||||
@ -481,7 +454,7 @@ LSTFILES = $(addprefix $(OUTDIR)/, $(addsuffix .lst, $(ALLSRCBASE)))
|
||||
DEPFILES = $(addprefix $(OUTDIR)/dep/, $(addsuffix .o.d, $(ALLSRCBASE)))
|
||||
|
||||
# Default target.
|
||||
all: gencode gccversion build
|
||||
all: gccversion build
|
||||
|
||||
ifeq ($(LOADFORMAT),ihex)
|
||||
build: elf hex lss sym
|
||||
@ -498,16 +471,9 @@ endif
|
||||
endif
|
||||
|
||||
# Generate intermediate code
|
||||
gencode: ${OUTDIR}/InitMods.c ${OUTDIR}/pmlib_img.c ${OUTDIR}/pmlib_nat.c ${OUTDIR}/pmlibusr_img.c ${OUTDIR}/pmlibusr_nat.c ${OUTDIR}/pmfeatures.h
|
||||
gencode: ${OUTDIR}/pmlib_img.c ${OUTDIR}/pmlib_nat.c ${OUTDIR}/pmlibusr_img.c ${OUTDIR}/pmlibusr_nat.c ${OUTDIR}/pmfeatures.h
|
||||
|
||||
# Generate code for module initialization
|
||||
${OUTDIR}/InitMods.c: Makefile
|
||||
@echo $(MSG_MODINIT) $(call toprel, $@)
|
||||
@echo ${quote}// Autogenerated file${quote} > ${OUTDIR}/InitMods.c
|
||||
@echo ${quote}${foreach MOD, ${MODNAMES}, extern unsigned int ${MOD}Initialize(void);}${quote} >> ${OUTDIR}/InitMods.c
|
||||
@echo ${quote}void InitModules() {${quote} >> ${OUTDIR}/InitMods.c
|
||||
@echo ${quote}${foreach MOD, ${MODNAMES}, ${MOD}Initialize();}${quote} >> ${OUTDIR}/InitMods.c
|
||||
@echo ${quote}}${quote} >> ${OUTDIR}/InitMods.c
|
||||
$(PYSRC): gencode
|
||||
|
||||
# Generate code for PyMite
|
||||
${OUTDIR}/pmlib_img.c ${OUTDIR}/pmlib_nat.c ${OUTDIR}/pmlibusr_img.c ${OUTDIR}/pmlibusr_nat.c ${OUTDIR}/pmfeatures.h: $(wildcard ${PYMITELIB}/*.py) $(wildcard ${PYMITEPLAT}/*.py) $(wildcard ${FLIGHTPLANLIB}/*.py) $(wildcard ${FLIGHTPLANS}/*.py)
|
||||
@ -516,14 +482,6 @@ ${OUTDIR}/pmlib_img.c ${OUTDIR}/pmlib_nat.c ${OUTDIR}/pmlibusr_img.c ${OUTDIR}/p
|
||||
@$(PYTHON) $(PYMITETOOLS)/pmGenPmFeatures.py $(PYMITEPLAT)/pmfeatures.py > $(OUTDIR)/pmfeatures.h
|
||||
@$(PYTHON) $(PYMITETOOLS)/pmImgCreator.py -f $(PYMITEPLAT)/pmfeatures.py -c -u -o $(OUTDIR)/pmlibusr_img.c --native-file=$(OUTDIR)/pmlibusr_nat.c $(FLIGHTPLANS)/test.py
|
||||
|
||||
# Program the device.
|
||||
ifeq ($(FLASH_TOOL),OPENOCD)
|
||||
# Program the device with Dominic Rath's OPENOCD in "batch-mode", needs cfg and "reset-script".
|
||||
program: $(OUTDIR)/$(TARGET).bin
|
||||
@echo ${quote}Programming with OPENOCD${quote}
|
||||
$(OOCD_EXE) $(OOCD_CL)
|
||||
endif
|
||||
|
||||
# Link: create ELF output file from object files.
|
||||
$(eval $(call LINK_TEMPLATE, $(OUTDIR)/$(TARGET).elf, $(ALLOBJ)))
|
||||
|
||||
@ -553,23 +511,37 @@ $(eval $(call PARTIAL_COMPILE_ARM_TEMPLATE, SRCARM))
|
||||
|
||||
$(OUTDIR)/$(TARGET).bin.o: $(OUTDIR)/$(TARGET).bin
|
||||
|
||||
.PHONY: elf lss sym hex bin bino
|
||||
$(eval $(call OPFW_TEMPLATE,$(OUTDIR)/$(TARGET).bin,$(BOARD_TYPE),$(BOARD_REVISION)))
|
||||
|
||||
# Add jtag targets (program and wipe)
|
||||
$(eval $(call JTAG_TEMPLATE,$(OUTDIR)/$(TARGET).bin,$(FW_BANK_BASE),$(FW_BANK_SIZE)))
|
||||
|
||||
.PHONY: elf lss sym hex bin bino opfw
|
||||
elf: $(OUTDIR)/$(TARGET).elf
|
||||
lss: $(OUTDIR)/$(TARGET).lss
|
||||
sym: $(OUTDIR)/$(TARGET).sym
|
||||
hex: $(OUTDIR)/$(TARGET).hex
|
||||
bin: $(OUTDIR)/$(TARGET).bin
|
||||
bino: $(OUTDIR)/$(TARGET).bin.o
|
||||
opfw: $(OUTDIR)/$(TARGET).opfw
|
||||
|
||||
# Display sizes of sections.
|
||||
$(eval $(call SIZE_TEMPLATE, $(OUTDIR)/$(TARGET).elf))
|
||||
.PHONY: size
|
||||
size: $(OUTDIR)/$(TARGET).elf_size
|
||||
|
||||
# Generate Doxygen documents
|
||||
docs:
|
||||
doxygen $(DOXYGENDIR)/doxygen.cfg
|
||||
|
||||
# Install: install binary file with prefix/suffix into install directory
|
||||
install: $(OUTDIR)/$(TARGET).opfw
|
||||
ifneq ($(INSTALL_DIR),)
|
||||
@echo $(MSG_INSTALLING) $(call toprel, $<)
|
||||
$(V1) mkdir -p $(INSTALL_DIR)
|
||||
$(V1) $(INSTALL) $< $(INSTALL_DIR)/$(INSTALL_PFX)$(TARGET)$(INSTALL_SFX).opfw
|
||||
else
|
||||
$(error INSTALL_DIR must be specified for $@)
|
||||
endif
|
||||
|
||||
# Target: clean project.
|
||||
clean: clean_list
|
||||
|
||||
@ -609,5 +581,4 @@ else
|
||||
endif
|
||||
|
||||
# Listing of phony targets.
|
||||
.PHONY : all build clean clean_list program gencode
|
||||
|
||||
.PHONY : all build clean clean_list gencode install
|
||||
|
@ -162,8 +162,10 @@ CFLAGS_UAVOBJECTS = $(UAVOBJDEFINE)
|
||||
endif
|
||||
|
||||
## PIOS Hardware (posix)
|
||||
SRC += $(PIOSPOSIX)/pios_crc.c
|
||||
SRC += $(PIOSPOSIX)/pios_sys.c
|
||||
SRC += $(PIOSPOSIX)/pios_led.c
|
||||
SRC += $(PIOSPOSIX)/pios_irq.c
|
||||
SRC += $(PIOSPOSIX)/pios_delay.c
|
||||
SRC += $(PIOSPOSIX)/pios_sdcard.c
|
||||
SRC += $(PIOSPOSIX)/pios_udp.c
|
||||
@ -172,8 +174,10 @@ SRC += $(PIOSPOSIX)/pios_servo.c
|
||||
SRC += $(PIOSPOSIX)/pios_wdg.c
|
||||
SRC += $(PIOSPOSIX)/pios_debug.c
|
||||
|
||||
SRC += $(PIOSPOSIX)/pios_rcvr.c
|
||||
|
||||
## Libraries for flight calculations
|
||||
#SRC += $(FLIGHTLIB)/fifo_buffer.c
|
||||
SRC += $(FLIGHTLIB)/fifo_buffer.c
|
||||
SRC += $(FLIGHTLIB)/WorldMagModel.c
|
||||
SRC += $(FLIGHTLIB)/CoordinateConversions.c
|
||||
## RTOS and RTOS Portable
|
||||
@ -440,9 +444,13 @@ ${OUTDIR}/InitMods.c: Makefile.posix
|
||||
@echo ${MSG_MODINIT}
|
||||
@echo ${quote}// Autogenerated file${quote} > ${OUTDIR}/InitMods.c
|
||||
@echo ${quote}${foreach MOD, ${MODNAMES}, extern unsigned int ${MOD}Initialize(void);}${quote} >> ${OUTDIR}/InitMods.c
|
||||
@echo ${quote}${foreach MOD, ${MODNAMES}, extern unsigned int ${MOD}Start(void);}${quote} >> ${OUTDIR}/InitMods.c
|
||||
@echo ${quote}void InitModules() {${quote} >> ${OUTDIR}/InitMods.c
|
||||
@echo ${quote}${foreach MOD, ${MODNAMES}, ${MOD}Initialize();}${quote} >> ${OUTDIR}/InitMods.c
|
||||
@echo ${quote}}${quote} >> ${OUTDIR}/InitMods.c
|
||||
@echo ${quote}void StartModules() {${quote} >> ${OUTDIR}/InitMods.c
|
||||
@echo ${quote}${foreach MOD, ${MODNAMES}, ${MOD}Start();}${quote} >> ${OUTDIR}/InitMods.c
|
||||
@echo ${quote}}${quote} >> ${OUTDIR}/InitMods.c
|
||||
|
||||
# Generate code for PyMite
|
||||
${OUTDIR}/pmlib_img.c ${OUTDIR}/pmlib_nat.c ${OUTDIR}/pmlibusr_img.c ${OUTDIR}/pmlibusr_nat.c ${OUTDIR}/pmfeatures.h: $(wildcard ${PYMITELIB}/*.py) $(wildcard ${PYMITEPLAT}/*.py) $(wildcard ${FLIGHTPLANLIB}/*.py) $(wildcard ${FLIGHTPLANS}/*.py) $(wildcard $(UAVOBJPYTHONSYNTHDIR)/*.py)
|
||||
|
@ -166,6 +166,7 @@ SRC += $(PIOSWIN32)/pios_udp.c
|
||||
SRC += $(PIOSWIN32)/pios_com.c
|
||||
SRC += $(PIOSWIN32)/pios_servo.c
|
||||
SRC += $(PIOSWIN32)/pios_wdg.c
|
||||
SRC += $(PIOSWIN32)/pios_crc.c
|
||||
#
|
||||
## RTOS
|
||||
SRC += $(RTOSSRCDIR)/list.c
|
||||
|
@ -45,10 +45,8 @@ static int32_t hasSeverity(SystemAlarmsAlarmOptions severity);
|
||||
*/
|
||||
int32_t AlarmsInitialize(void)
|
||||
{
|
||||
SystemAlarmsInitialize();
|
||||
lock = xSemaphoreCreateRecursiveMutex();
|
||||
//do not change the default states of the alarms, let the init code generated by the uavobjectgenerator handle that
|
||||
//AlarmsClearAll();
|
||||
//AlarmsDefaultAll();
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -39,7 +39,7 @@
|
||||
#define configUSE_RECURSIVE_MUTEXES 1
|
||||
#define configUSE_COUNTING_SEMAPHORES 0
|
||||
#define configUSE_ALTERNATIVE_API 0
|
||||
#define configCHECK_FOR_STACK_OVERFLOW 2
|
||||
//#define configCHECK_FOR_STACK_OVERFLOW 2
|
||||
#define configQUEUE_REGISTRY_SIZE 10
|
||||
|
||||
/* Co-routine definitions. */
|
||||
@ -72,14 +72,24 @@ NVIC value of 255. */
|
||||
#define configLIBRARY_KERNEL_INTERRUPT_PRIORITY 15
|
||||
|
||||
/* Enable run time stats collection */
|
||||
#if defined(DEBUG)
|
||||
#if defined(DIAGNOSTICS)
|
||||
#define configCHECK_FOR_STACK_OVERFLOW 2
|
||||
|
||||
#define configGENERATE_RUN_TIME_STATS 1
|
||||
#define INCLUDE_uxTaskGetRunTime 1
|
||||
#define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() PIOS_RTC_Start()
|
||||
// Note: Using the tick count defeats the purpose here, need some timer on the scale of 10khz
|
||||
#define portGET_RUN_TIME_COUNTER_VALUE() PIOS_RTC_Counter()
|
||||
#define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS()\
|
||||
do {\
|
||||
(*(unsigned long *)0xe000edfc) |= (1<<24);/* DEMCR |= DEMCR_TRCENA */\
|
||||
(*(unsigned long *)0xe0001000) |= 1; /* DWT_CTRL |= DWT_CYCCNT_ENA */\
|
||||
} while(0)
|
||||
#define portGET_RUN_TIME_COUNTER_VALUE() (*(unsigned long *)0xe0001004)/* DWT_CYCCNT */
|
||||
#else
|
||||
#define configCHECK_FOR_STACK_OVERFLOW 1
|
||||
#endif
|
||||
|
||||
#if !defined(ARCH_POSIX) && !defined(ARCH_WIN32)
|
||||
#define CHECK_IRQ_STACK
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @}
|
||||
|
@ -52,15 +52,22 @@
|
||||
//-------------------------
|
||||
//#define PIOS_USART_TX_BUFFER_SIZE 256
|
||||
#define PIOS_COM_BUFFER_SIZE 1024
|
||||
#define PIOS_COM_MAX_DEVS 256
|
||||
#define PIOS_UDP_RX_BUFFER_SIZE PIOS_COM_BUFFER_SIZE
|
||||
|
||||
#define PIOS_COM_TELEM_RF 0
|
||||
#define PIOS_COM_GPS 1
|
||||
#define PIOS_COM_TELEM_USB 2
|
||||
extern uint32_t pios_com_telem_rf_id;
|
||||
extern uint32_t pios_com_telem_usb_id;
|
||||
extern uint32_t pios_com_gps_id;
|
||||
extern uint32_t pios_com_aux_id;
|
||||
extern uint32_t pios_com_spectrum_id;
|
||||
|
||||
#define PIOS_COM_TELEM_RF (pios_com_telem_rf_id)
|
||||
#define PIOS_COM_TELEM_USB (pios_com_telem_usb_id)
|
||||
#define PIOS_COM_GPS (pios_com_gps_id)
|
||||
|
||||
#ifdef PIOS_ENABLE_AUX_UART
|
||||
#define PIOS_COM_AUX 3
|
||||
#define PIOS_COM_DEBUG PIOS_COM_AUX
|
||||
#define PIOS_COM_AUX (pios_com_aux_id)
|
||||
#define PIOS_COM_DEBUG (PIOS_COM_AUX
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
@ -42,12 +42,14 @@
|
||||
#define PIOS_INCLUDE_IRQ
|
||||
#define PIOS_INCLUDE_LED
|
||||
|
||||
#if defined(USE_SPEKTRUM)
|
||||
#define PIOS_INCLUDE_RCVR
|
||||
|
||||
#define PIOS_INCLUDE_SPEKTRUM
|
||||
#else
|
||||
//#define PIOS_INCLUDE_PPM
|
||||
//#define PIOS_INCLUDE_SBUS
|
||||
#define PIOS_INCLUDE_PWM
|
||||
#endif
|
||||
//#define PIOS_INCLUDE_PPM
|
||||
|
||||
#define PIOS_INCLUDE_TELEMETRY_RF
|
||||
|
||||
#define PIOS_INCLUDE_SERVO
|
||||
#define PIOS_INCLUDE_SPI
|
||||
@ -58,6 +60,7 @@
|
||||
//#define PIOS_INCLUDE_HCSR04
|
||||
#define PIOS_INCLUDE_OPAHRS
|
||||
#define PIOS_INCLUDE_COM
|
||||
#define PIOS_INCLUDE_GPS
|
||||
#define PIOS_INCLUDE_SDCARD
|
||||
#define PIOS_INCLUDE_SETTINGS
|
||||
#define PIOS_INCLUDE_FREERTOS
|
||||
@ -84,6 +87,8 @@
|
||||
/* Alarm Thresholds */
|
||||
#define HEAP_LIMIT_WARNING 4000
|
||||
#define HEAP_LIMIT_CRITICAL 1000
|
||||
#define IRQSTACK_LIMIT_WARNING 150
|
||||
#define IRQSTACK_LIMIT_CRITICAL 80
|
||||
#define CPULOAD_LIMIT_WARNING 80
|
||||
#define CPULOAD_LIMIT_CRITICAL 95
|
||||
|
||||
|
@ -36,9 +36,15 @@
|
||||
#define PIOS_INCLUDE_SDCARD
|
||||
#define PIOS_INCLUDE_FREERTOS
|
||||
#define PIOS_INCLUDE_COM
|
||||
#define PIOS_INCLUDE_GPS
|
||||
#define PIOS_INCLUDE_IRQ
|
||||
#define PIOS_INCLUDE_TELEMETRY_RF
|
||||
#define PIOS_INCLUDE_UDP
|
||||
#define PIOS_INCLUDE_SERVO
|
||||
#define PIOS_INCLUDE_RCVR
|
||||
|
||||
#define PIOS_RCVR_MAX_CHANNELS 12
|
||||
#define PIOS_RCVR_MAX_DEVS 3
|
||||
|
||||
/* Defaults for Logging */
|
||||
#define LOG_FILENAME "PIOS.LOG"
|
||||
|
@ -62,11 +62,10 @@ static void TaskSDCard(void *pvParameters);
|
||||
int32_t CONSOLE_Parse(uint8_t port, char c);
|
||||
void OP_ADC_NotifyChange(uint32_t pin, uint32_t pin_value);
|
||||
|
||||
/* Prototype of generated InitModules() function */
|
||||
extern void InitModules(void);
|
||||
|
||||
/* Prototype of PIOS_Board_Init() function */
|
||||
extern void PIOS_Board_Init(void);
|
||||
extern void Stack_Change(void);
|
||||
static void Stack_Change_Weak () __attribute__ ((weakref ("Stack_Change")));
|
||||
|
||||
/**
|
||||
* OpenPilot Main function:
|
||||
@ -85,48 +84,42 @@ int main()
|
||||
/* Brings up System using CMSIS functions, enables the LEDs. */
|
||||
PIOS_SYS_Init();
|
||||
|
||||
/* Initialize the system thread */
|
||||
SystemModInitialize();
|
||||
|
||||
/* Start the FreeRTOS scheduler */
|
||||
vTaskStartScheduler();
|
||||
|
||||
/* If all is well we will never reach here as the scheduler will now be running. */
|
||||
/* If we do get here, it will most likely be because we ran out of heap space. */
|
||||
PIOS_LED_Off(LED1);
|
||||
PIOS_LED_Off(LED2);
|
||||
for(;;) {
|
||||
PIOS_LED_Toggle(LED1);
|
||||
PIOS_LED_Toggle(LED2);
|
||||
PIOS_DELAY_WaitmS(100);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialize the hardware, libraries and modules (called by the System thread in systemmod.c)
|
||||
*/
|
||||
void OpenPilotInit()
|
||||
{
|
||||
|
||||
/* Architecture dependant Hardware and
|
||||
* core subsystem initialisation
|
||||
* (see pios_board.c for your arch)
|
||||
* */
|
||||
|
||||
PIOS_Board_Init();
|
||||
|
||||
/* Initialize modules */
|
||||
InitModules();
|
||||
MODULE_INITIALISE_ALL
|
||||
|
||||
#if INCLUDE_TEST_TASKS
|
||||
/* Create test tasks */
|
||||
//xTaskCreate(TaskTesting, (signed portCHAR *)"Testing", configMINIMAL_STACK_SIZE , NULL, 4, NULL);
|
||||
//xTaskCreate(TaskHIDTest, (signed portCHAR *)"HIDTest", configMINIMAL_STACK_SIZE , NULL, 3, NULL);
|
||||
//xTaskCreate(TaskServos, (signed portCHAR *)"Servos", configMINIMAL_STACK_SIZE , NULL, 3, NULL);
|
||||
//xTaskCreate(TaskSDCard, (signed portCHAR *)"SDCard", configMINIMAL_STACK_SIZE, NULL, (tskIDLE_PRIORITY + 2), NULL);
|
||||
xTaskCreate(TaskTesting, (signed portCHAR *)"Testing", configMINIMAL_STACK_SIZE , NULL, 4, NULL);
|
||||
xTaskCreate(TaskHIDTest, (signed portCHAR *)"HIDTest", configMINIMAL_STACK_SIZE , NULL, 3, NULL);
|
||||
xTaskCreate(TaskServos, (signed portCHAR *)"Servos", configMINIMAL_STACK_SIZE , NULL, 3, NULL);
|
||||
xTaskCreate(TaskSDCard, (signed portCHAR *)"SDCard", configMINIMAL_STACK_SIZE, NULL, (tskIDLE_PRIORITY + 2), NULL);
|
||||
#endif
|
||||
|
||||
/* swap the stack to use the IRQ stack (does nothing in sim mode) */
|
||||
Stack_Change_Weak();
|
||||
|
||||
/* Start the FreeRTOS scheduler which should never returns.*/
|
||||
vTaskStartScheduler();
|
||||
|
||||
/* If all is well we will never reach here as the scheduler will now be running. */
|
||||
|
||||
/* Do some indication to user that something bad just happened */
|
||||
PIOS_LED_Off(LED1); \
|
||||
for(;;) { \
|
||||
PIOS_LED_Toggle(LED1); \
|
||||
PIOS_DELAY_WaitmS(100); \
|
||||
};
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
#if INCLUDE_TEST_TASKS
|
||||
static void TaskTesting(void *pvParameters)
|
||||
{
|
||||
@ -153,6 +146,9 @@ static void TaskTesting(void *pvParameters)
|
||||
#if defined(PIOS_INCLUDE_SPEKTRUM)
|
||||
PIOS_COM_SendFormattedStringNonBlocking(COM_DEBUG_USART, "%u,%u,%u,%u,%u,%u,%u,%u\r", PIOS_SPEKTRUM_Get(0), PIOS_SPEKTRUM_Get(1), PIOS_SPEKTRUM_Get(2), PIOS_SPEKTRUM_Get(3), PIOS_SPEKTRUM_Get(4), PIOS_SPEKTRUM_Get(5), PIOS_SPEKTRUM_Get(6), PIOS_SPEKTRUM_Get(7));
|
||||
#endif
|
||||
#if defined(PIOS_INCLUDE_SBUS)
|
||||
PIOS_COM_SendFormattedStringNonBlocking(COM_DEBUG_USART, "%u,%u,%u,%u,%u,%u,%u,%u\r", PIOS_SBUS_Get(0), PIOS_SBUS_Get(1), PIOS_SBUS_Get(2), PIOS_SBUS_Get(3), PIOS_SBUS_Get(4), PIOS_SBUS_Get(5), PIOS_SBUS_Get(6), PIOS_SBUS_Get(7));
|
||||
#endif
|
||||
#if defined(PIOS_INCLUDE_PWM)
|
||||
PIOS_COM_SendFormattedStringNonBlocking(COM_DEBUG_USART, "%u,%u,%u,%u,%u,%u,%u,%u uS\r", PIOS_PWM_Get(0), PIOS_PWM_Get(1), PIOS_PWM_Get(2), PIOS_PWM_Get(3), PIOS_PWM_Get(4), PIOS_PWM_Get(5), PIOS_PWM_Get(6), PIOS_PWM_Get(7));
|
||||
#endif
|
||||
|
@ -30,6 +30,7 @@
|
||||
#include <pios.h>
|
||||
#include <openpilot.h>
|
||||
#include <uavobjectsinit.h>
|
||||
#include "manualcontrolsettings.h"
|
||||
|
||||
//#define I2C_DEBUG_PIN 0
|
||||
//#define USART_GPS_DEBUG_PIN 1
|
||||
@ -46,7 +47,7 @@
|
||||
void PIOS_SPI_sdcard_irq_handler(void);
|
||||
void DMA1_Channel2_IRQHandler() __attribute__ ((alias ("PIOS_SPI_sdcard_irq_handler")));
|
||||
void DMA1_Channel3_IRQHandler() __attribute__ ((alias ("PIOS_SPI_sdcard_irq_handler")));
|
||||
const struct pios_spi_cfg pios_spi_sdcard_cfg = {
|
||||
static const struct pios_spi_cfg pios_spi_sdcard_cfg = {
|
||||
.regs = SPI1,
|
||||
.init = {
|
||||
.SPI_Mode = SPI_Mode_Master,
|
||||
@ -63,7 +64,6 @@ const struct pios_spi_cfg pios_spi_sdcard_cfg = {
|
||||
.ahb_clk = RCC_AHBPeriph_DMA1,
|
||||
|
||||
.irq = {
|
||||
.handler = PIOS_SPI_sdcard_irq_handler,
|
||||
.flags = (DMA1_FLAG_TC2 | DMA1_FLAG_TE2 | DMA1_FLAG_HT2 | DMA1_FLAG_GL2),
|
||||
.init = {
|
||||
.NVIC_IRQChannel = DMA1_Channel2_IRQn,
|
||||
@ -144,7 +144,7 @@ const struct pios_spi_cfg pios_spi_sdcard_cfg = {
|
||||
void PIOS_SPI_ahrs_irq_handler(void);
|
||||
void DMA1_Channel4_IRQHandler() __attribute__ ((alias ("PIOS_SPI_ahrs_irq_handler")));
|
||||
void DMA1_Channel5_IRQHandler() __attribute__ ((alias ("PIOS_SPI_ahrs_irq_handler")));
|
||||
const struct pios_spi_cfg pios_spi_ahrs_cfg = {
|
||||
static const struct pios_spi_cfg pios_spi_ahrs_cfg = {
|
||||
.regs = SPI2,
|
||||
.init = {
|
||||
.SPI_Mode = SPI_Mode_Master,
|
||||
@ -162,7 +162,6 @@ const struct pios_spi_cfg pios_spi_ahrs_cfg = {
|
||||
.ahb_clk = RCC_AHBPeriph_DMA1,
|
||||
|
||||
.irq = {
|
||||
.handler = PIOS_SPI_ahrs_irq_handler,
|
||||
.flags = (DMA1_FLAG_TC4 | DMA1_FLAG_TE4 | DMA1_FLAG_HT4 | DMA1_FLAG_GL4),
|
||||
.init = {
|
||||
.NVIC_IRQChannel = DMA1_Channel4_IRQn,
|
||||
@ -258,11 +257,10 @@ void PIOS_SPI_ahrs_irq_handler(void)
|
||||
extern void PIOS_ADC_handler(void);
|
||||
void DMA1_Channel1_IRQHandler() __attribute__ ((alias("PIOS_ADC_handler")));
|
||||
// Remap the ADC DMA handler to this one
|
||||
const struct pios_adc_cfg pios_adc_cfg = {
|
||||
static const struct pios_adc_cfg pios_adc_cfg = {
|
||||
.dma = {
|
||||
.ahb_clk = RCC_AHBPeriph_DMA1,
|
||||
.irq = {
|
||||
.handler = PIOS_ADC_DMA_Handler,
|
||||
.flags = (DMA1_FLAG_TC1 | DMA1_FLAG_TE1 | DMA1_FLAG_HT1 | DMA1_FLAG_GL1),
|
||||
.init = {
|
||||
.NVIC_IRQChannel = DMA1_Channel1_IRQn,
|
||||
@ -310,16 +308,10 @@ void PIOS_ADC_handler() {
|
||||
/*
|
||||
* Telemetry USART
|
||||
*/
|
||||
void PIOS_USART_telem_irq_handler(void);
|
||||
void USART2_IRQHandler() __attribute__ ((alias ("PIOS_USART_telem_irq_handler")));
|
||||
const struct pios_usart_cfg pios_usart_telem_cfg = {
|
||||
static const struct pios_usart_cfg pios_usart_telem_cfg = {
|
||||
.regs = USART2,
|
||||
.init = {
|
||||
#if defined (PIOS_COM_TELEM_BAUDRATE)
|
||||
.USART_BaudRate = PIOS_COM_TELEM_BAUDRATE,
|
||||
#else
|
||||
.USART_BaudRate = 57600,
|
||||
#endif
|
||||
.USART_BaudRate = 57600,
|
||||
.USART_WordLength = USART_WordLength_8b,
|
||||
.USART_Parity = USART_Parity_No,
|
||||
.USART_StopBits = USART_StopBits_1,
|
||||
@ -327,7 +319,6 @@ const struct pios_usart_cfg pios_usart_telem_cfg = {
|
||||
.USART_Mode = USART_Mode_Rx | USART_Mode_Tx,
|
||||
},
|
||||
.irq = {
|
||||
.handler = PIOS_USART_telem_irq_handler,
|
||||
.init = {
|
||||
.NVIC_IRQChannel = USART2_IRQn,
|
||||
.NVIC_IRQChannelPreemptionPriority = PIOS_IRQ_PRIO_MID,
|
||||
@ -356,17 +347,11 @@ const struct pios_usart_cfg pios_usart_telem_cfg = {
|
||||
/*
|
||||
* GPS USART
|
||||
*/
|
||||
void PIOS_USART_gps_irq_handler(void);
|
||||
void USART3_IRQHandler() __attribute__ ((alias ("PIOS_USART_gps_irq_handler")));
|
||||
const struct pios_usart_cfg pios_usart_gps_cfg = {
|
||||
static const struct pios_usart_cfg pios_usart_gps_cfg = {
|
||||
.regs = USART3,
|
||||
.remap = GPIO_PartialRemap_USART3,
|
||||
.init = {
|
||||
#if defined (PIOS_COM_GPS_BAUDRATE)
|
||||
.USART_BaudRate = PIOS_COM_GPS_BAUDRATE,
|
||||
#else
|
||||
.USART_BaudRate = 57600,
|
||||
#endif
|
||||
.USART_BaudRate = 57600,
|
||||
.USART_WordLength = USART_WordLength_8b,
|
||||
.USART_Parity = USART_Parity_No,
|
||||
.USART_StopBits = USART_StopBits_1,
|
||||
@ -374,7 +359,6 @@ const struct pios_usart_cfg pios_usart_gps_cfg = {
|
||||
.USART_Mode = USART_Mode_Rx | USART_Mode_Tx,
|
||||
},
|
||||
.irq = {
|
||||
.handler = PIOS_USART_gps_irq_handler,
|
||||
.init = {
|
||||
.NVIC_IRQChannel = USART3_IRQn,
|
||||
.NVIC_IRQChannelPreemptionPriority = PIOS_IRQ_PRIO_MID,
|
||||
@ -404,16 +388,9 @@ const struct pios_usart_cfg pios_usart_gps_cfg = {
|
||||
/*
|
||||
* AUX USART
|
||||
*/
|
||||
void PIOS_USART_aux_irq_handler(void);
|
||||
void USART1_IRQHandler() __attribute__ ((alias ("PIOS_USART_aux_irq_handler")));
|
||||
const struct pios_usart_cfg pios_usart_aux_cfg = {
|
||||
static const struct pios_usart_cfg pios_usart_aux_cfg = {
|
||||
.regs = USART1,
|
||||
.init = {
|
||||
#if defined (PIOS_COM_AUX_BAUDRATE)
|
||||
.USART_BaudRate = PIOS_COM_AUX_BAUDRATE,
|
||||
#else
|
||||
.USART_BaudRate = 57600,
|
||||
#endif
|
||||
.USART_BaudRate = 57600,
|
||||
.USART_WordLength = USART_WordLength_8b,
|
||||
.USART_Parity = USART_Parity_No,
|
||||
@ -422,7 +399,6 @@ const struct pios_usart_cfg pios_usart_aux_cfg = {
|
||||
.USART_Mode = USART_Mode_Rx | USART_Mode_Tx,
|
||||
},
|
||||
.irq = {
|
||||
.handler = PIOS_USART_aux_irq_handler,
|
||||
.init = {
|
||||
.NVIC_IRQChannel = USART1_IRQn,
|
||||
.NVIC_IRQChannelPreemptionPriority = PIOS_IRQ_PRIO_MID,
|
||||
@ -450,20 +426,44 @@ const struct pios_usart_cfg pios_usart_aux_cfg = {
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifdef PIOS_COM_SPEKTRUM
|
||||
#if defined(PIOS_INCLUDE_RTC)
|
||||
/*
|
||||
* Realtime Clock (RTC)
|
||||
*/
|
||||
#include <pios_rtc_priv.h>
|
||||
|
||||
void PIOS_RTC_IRQ_Handler (void);
|
||||
void RTC_IRQHandler() __attribute__ ((alias ("PIOS_RTC_IRQ_Handler")));
|
||||
static const struct pios_rtc_cfg pios_rtc_main_cfg = {
|
||||
.clksrc = RCC_RTCCLKSource_HSE_Div128,
|
||||
.prescaler = 100,
|
||||
.irq = {
|
||||
.init = {
|
||||
.NVIC_IRQChannel = RTC_IRQn,
|
||||
.NVIC_IRQChannelPreemptionPriority = PIOS_IRQ_PRIO_MID,
|
||||
.NVIC_IRQChannelSubPriority = 0,
|
||||
.NVIC_IRQChannelCmd = ENABLE,
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
void PIOS_RTC_IRQ_Handler (void)
|
||||
{
|
||||
PIOS_RTC_irq_handler ();
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#if defined(PIOS_INCLUDE_SPEKTRUM)
|
||||
/*
|
||||
* SPEKTRUM USART
|
||||
*/
|
||||
void PIOS_USART_spektrum_irq_handler(void);
|
||||
void USART1_IRQHandler() __attribute__ ((alias ("PIOS_USART_spektrum_irq_handler")));
|
||||
const struct pios_usart_cfg pios_usart_spektrum_cfg = {
|
||||
#include <pios_spektrum_priv.h>
|
||||
|
||||
static const struct pios_usart_cfg pios_usart_spektrum_cfg = {
|
||||
.regs = USART1,
|
||||
.init = {
|
||||
#if defined (PIOS_COM_SPEKTRUM_BAUDRATE)
|
||||
.USART_BaudRate = PIOS_COM_SPEKTRUM_BAUDRATE,
|
||||
#else
|
||||
.USART_BaudRate = 115200,
|
||||
#endif
|
||||
.USART_BaudRate = 115200,
|
||||
.USART_WordLength = USART_WordLength_8b,
|
||||
.USART_Parity = USART_Parity_No,
|
||||
.USART_StopBits = USART_StopBits_1,
|
||||
@ -471,7 +471,6 @@ const struct pios_usart_cfg pios_usart_spektrum_cfg = {
|
||||
.USART_Mode = USART_Mode_Rx,
|
||||
},
|
||||
.irq = {
|
||||
.handler = PIOS_USART_spektrum_irq_handler,
|
||||
.init = {
|
||||
.NVIC_IRQChannel = USART1_IRQn,
|
||||
.NVIC_IRQChannelPreemptionPriority = PIOS_IRQ_PRIO_HIGH,
|
||||
@ -497,75 +496,24 @@ const struct pios_usart_cfg pios_usart_spektrum_cfg = {
|
||||
},
|
||||
};
|
||||
|
||||
static uint32_t pios_usart_spektrum_id;
|
||||
void PIOS_USART_spektrum_irq_handler(void)
|
||||
{
|
||||
SPEKTRUM_IRQHandler(pios_usart_spektrum_id);
|
||||
}
|
||||
|
||||
#include <pios_spektrum_priv.h>
|
||||
void TIM6_IRQHandler();
|
||||
void TIM6_IRQHandler() __attribute__ ((alias ("PIOS_TIM6_irq_handler")));
|
||||
const struct pios_spektrum_cfg pios_spektrum_cfg = {
|
||||
.pios_usart_spektrum_cfg = &pios_usart_spektrum_cfg,
|
||||
.tim_base_init = {
|
||||
.TIM_Prescaler = (PIOS_MASTER_CLOCK / 1000000) - 1, /* For 1 uS accuracy */
|
||||
.TIM_ClockDivision = TIM_CKD_DIV1,
|
||||
.TIM_CounterMode = TIM_CounterMode_Up,
|
||||
.TIM_Period = ((1000000 / 120) - 1), //11ms-10*16b/115200bps, atleast one interrupt between frames
|
||||
.TIM_RepetitionCounter = 0x0000,
|
||||
},
|
||||
.gpio_init = { //used for bind feature
|
||||
.GPIO_Mode = GPIO_Mode_Out_PP,
|
||||
.GPIO_Speed = GPIO_Speed_2MHz,
|
||||
},
|
||||
.remap = 0,
|
||||
.irq = {
|
||||
.handler = TIM6_IRQHandler,
|
||||
.init = {
|
||||
.NVIC_IRQChannelPreemptionPriority = PIOS_IRQ_PRIO_MID,
|
||||
.NVIC_IRQChannelSubPriority = 0,
|
||||
.NVIC_IRQChannelCmd = ENABLE,
|
||||
static const struct pios_spektrum_cfg pios_spektrum_cfg = {
|
||||
.bind = {
|
||||
.gpio = GPIOA,
|
||||
.init = {
|
||||
.GPIO_Pin = GPIO_Pin_10,
|
||||
.GPIO_Speed = GPIO_Speed_2MHz,
|
||||
.GPIO_Mode = GPIO_Mode_Out_PP,
|
||||
},
|
||||
},
|
||||
.timer = TIM6,
|
||||
.port = GPIOA,
|
||||
.ccr = TIM_IT_Update,
|
||||
.pin = GPIO_Pin_10,
|
||||
.remap = 0,
|
||||
};
|
||||
|
||||
void PIOS_TIM6_irq_handler()
|
||||
{
|
||||
PIOS_SPEKTRUM_irq_handler();
|
||||
}
|
||||
#endif /* PIOS_COM_SPEKTRUM */
|
||||
|
||||
static uint32_t pios_usart_telem_rf_id;
|
||||
void PIOS_USART_telem_irq_handler(void)
|
||||
{
|
||||
PIOS_USART_IRQ_Handler(pios_usart_telem_rf_id);
|
||||
}
|
||||
|
||||
static uint32_t pios_usart_gps_id;
|
||||
void PIOS_USART_gps_irq_handler(void)
|
||||
{
|
||||
#ifdef USART_GPS_DEBUG_PIN
|
||||
PIOS_DEBUG_PinHigh(USART_GPS_DEBUG_PIN);
|
||||
#endif
|
||||
PIOS_USART_IRQ_Handler(pios_usart_gps_id);
|
||||
#ifdef USART_GPS_DEBUG_PIN
|
||||
PIOS_DEBUG_PinLow(USART_GPS_DEBUG_PIN);
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
#ifdef PIOS_COM_AUX
|
||||
static uint32_t pios_usart_aux_id;
|
||||
void PIOS_USART_aux_irq_handler(void)
|
||||
{
|
||||
PIOS_USART_IRQ_Handler(pios_usart_aux_id);
|
||||
}
|
||||
#endif
|
||||
#if defined(PIOS_INCLUDE_SBUS)
|
||||
#error PIOS_INCLUDE_SBUS not implemented
|
||||
#endif /* PIOS_INCLUDE_SBUS */
|
||||
|
||||
#endif /* PIOS_INCLUDE_USART */
|
||||
|
||||
@ -573,13 +521,22 @@ void PIOS_USART_aux_irq_handler(void)
|
||||
|
||||
#include "pios_com_priv.h"
|
||||
|
||||
#define PIOS_COM_TELEM_RF_RX_BUF_LEN 192
|
||||
#define PIOS_COM_TELEM_RF_TX_BUF_LEN 192
|
||||
|
||||
#define PIOS_COM_GPS_RX_BUF_LEN 96
|
||||
#define PIOS_COM_GPS_TX_BUF_LEN 96
|
||||
|
||||
#define PIOS_COM_TELEM_USB_RX_BUF_LEN 192
|
||||
#define PIOS_COM_TELEM_USB_TX_BUF_LEN 192
|
||||
|
||||
#endif /* PIOS_INCLUDE_COM */
|
||||
|
||||
/**
|
||||
* Pios servo configuration structures
|
||||
*/
|
||||
#include <pios_servo_priv.h>
|
||||
const struct pios_servo_channel pios_servo_channels[] = {
|
||||
static const struct pios_servo_channel pios_servo_channels[] = {
|
||||
{
|
||||
.timer = TIM4,
|
||||
.port = GPIOB,
|
||||
@ -663,7 +620,7 @@ const struct pios_servo_cfg pios_servo_cfg = {
|
||||
*/
|
||||
#if defined(PIOS_INCLUDE_PWM)
|
||||
#include <pios_pwm_priv.h>
|
||||
const struct pios_pwm_channel pios_pwm_channels[] = {
|
||||
static const struct pios_pwm_channel pios_pwm_channels[] = {
|
||||
{
|
||||
.timer = TIM1,
|
||||
.port = GPIOA,
|
||||
@ -748,7 +705,6 @@ const struct pios_pwm_cfg pios_pwm_cfg = {
|
||||
},
|
||||
.remap = GPIO_PartialRemap_TIM3,
|
||||
.irq = {
|
||||
.handler = TIM1_CC_IRQHandler,
|
||||
.init = {
|
||||
.NVIC_IRQChannelPreemptionPriority = PIOS_IRQ_PRIO_MID,
|
||||
.NVIC_IRQChannelSubPriority = 0,
|
||||
@ -779,7 +735,7 @@ void PIOS_TIM5_irq_handler()
|
||||
#include <pios_ppm_priv.h>
|
||||
void TIM6_IRQHandler();
|
||||
void TIM6_IRQHandler() __attribute__ ((alias ("PIOS_TIM6_irq_handler")));
|
||||
const struct pios_ppmsv_cfg pios_ppmsv_cfg = {
|
||||
static const struct pios_ppmsv_cfg pios_ppmsv_cfg = {
|
||||
.tim_base_init = {
|
||||
.TIM_Prescaler = (PIOS_MASTER_CLOCK / 1000000) - 1, /* For 1 uS accuracy */
|
||||
.TIM_ClockDivision = TIM_CKD_DIV1,
|
||||
@ -788,7 +744,6 @@ const struct pios_ppmsv_cfg pios_ppmsv_cfg = {
|
||||
.TIM_RepetitionCounter = 0x0000,
|
||||
},
|
||||
.irq = {
|
||||
.handler = TIM6_IRQHandler,
|
||||
.init = {
|
||||
.NVIC_IRQChannelPreemptionPriority = PIOS_IRQ_PRIO_MID,
|
||||
.NVIC_IRQChannelSubPriority = 0,
|
||||
@ -799,14 +754,14 @@ const struct pios_ppmsv_cfg pios_ppmsv_cfg = {
|
||||
.ccr = TIM_IT_Update,
|
||||
};
|
||||
|
||||
void PIOS_TIM6_irq_handler()
|
||||
void PIOS_TIM6_irq_handler(void)
|
||||
{
|
||||
PIOS_PPMSV_irq_handler();
|
||||
}
|
||||
|
||||
void TIM1_CC_IRQHandler();
|
||||
void TIM1_CC_IRQHandler() __attribute__ ((alias ("PIOS_TIM1_CC_irq_handler")));
|
||||
const struct pios_ppm_cfg pios_ppm_cfg = {
|
||||
static const struct pios_ppm_cfg pios_ppm_cfg = {
|
||||
.tim_base_init = {
|
||||
.TIM_Prescaler = (PIOS_MASTER_CLOCK / 1000000) - 1, /* For 1 uS accuracy */
|
||||
.TIM_ClockDivision = TIM_CKD_DIV1,
|
||||
@ -828,7 +783,6 @@ const struct pios_ppm_cfg pios_ppm_cfg = {
|
||||
},
|
||||
.remap = 0,
|
||||
.irq = {
|
||||
.handler = TIM1_CC_IRQHandler,
|
||||
.init = {
|
||||
.NVIC_IRQChannelPreemptionPriority = PIOS_IRQ_PRIO_MID,
|
||||
.NVIC_IRQChannelSubPriority = 0,
|
||||
@ -841,7 +795,7 @@ const struct pios_ppm_cfg pios_ppm_cfg = {
|
||||
.ccr = TIM_IT_CC2,
|
||||
};
|
||||
|
||||
void PIOS_TIM1_CC_irq_handler()
|
||||
void PIOS_TIM1_CC_irq_handler(void)
|
||||
{
|
||||
PIOS_PPM_irq_handler();
|
||||
}
|
||||
@ -861,7 +815,7 @@ void PIOS_I2C_main_adapter_er_irq_handler(void);
|
||||
void I2C2_EV_IRQHandler() __attribute__ ((alias ("PIOS_I2C_main_adapter_ev_irq_handler")));
|
||||
void I2C2_ER_IRQHandler() __attribute__ ((alias ("PIOS_I2C_main_adapter_er_irq_handler")));
|
||||
|
||||
const struct pios_i2c_adapter_cfg pios_i2c_main_adapter_cfg = {
|
||||
static const struct pios_i2c_adapter_cfg pios_i2c_main_adapter_cfg = {
|
||||
.regs = I2C2,
|
||||
.init = {
|
||||
.I2C_Mode = I2C_Mode_I2C,
|
||||
@ -889,7 +843,6 @@ const struct pios_i2c_adapter_cfg pios_i2c_main_adapter_cfg = {
|
||||
},
|
||||
},
|
||||
.event = {
|
||||
.handler = PIOS_I2C_main_adapter_ev_irq_handler,
|
||||
.flags = 0, /* FIXME: check this */
|
||||
.init = {
|
||||
.NVIC_IRQChannel = I2C2_EV_IRQn,
|
||||
@ -899,7 +852,6 @@ const struct pios_i2c_adapter_cfg pios_i2c_main_adapter_cfg = {
|
||||
},
|
||||
},
|
||||
.error = {
|
||||
.handler = PIOS_I2C_main_adapter_er_irq_handler,
|
||||
.flags = 0, /* FIXME: check this */
|
||||
.init = {
|
||||
.NVIC_IRQChannel = I2C2_ER_IRQn,
|
||||
@ -1010,6 +962,28 @@ static const struct stm32_gpio pios_debug_pins[] = {
|
||||
|
||||
#endif /* PIOS_ENABLE_DEBUG_PINS */
|
||||
|
||||
#if defined(PIOS_INCLUDE_RCVR)
|
||||
#include "pios_rcvr_priv.h"
|
||||
|
||||
struct pios_rcvr_channel_map pios_rcvr_channel_to_id_map[PIOS_RCVR_MAX_CHANNELS];
|
||||
uint32_t pios_rcvr_max_channel;
|
||||
#endif /* PIOS_INCLUDE_RCVR */
|
||||
|
||||
#if defined(PIOS_INCLUDE_USB_HID)
|
||||
#include "pios_usb_hid_priv.h"
|
||||
|
||||
static const struct pios_usb_hid_cfg pios_usb_hid_main_cfg = {
|
||||
.irq = {
|
||||
.init = {
|
||||
.NVIC_IRQChannel = USB_LP_CAN1_RX0_IRQn,
|
||||
.NVIC_IRQChannelPreemptionPriority = PIOS_IRQ_PRIO_LOW,
|
||||
.NVIC_IRQChannelSubPriority = 0,
|
||||
.NVIC_IRQChannelCmd = ENABLE,
|
||||
},
|
||||
},
|
||||
};
|
||||
#endif /* PIOS_INCLUDE_USB_HID */
|
||||
|
||||
extern const struct pios_com_driver pios_usb_com_driver;
|
||||
|
||||
uint32_t pios_com_telem_rf_id;
|
||||
@ -1039,7 +1013,7 @@ void PIOS_Board_Init(void) {
|
||||
#if defined(PIOS_INCLUDE_SPI)
|
||||
/* Set up the SPI interface to the SD card */
|
||||
if (PIOS_SPI_Init(&pios_spi_sdcard_id, &pios_spi_sdcard_cfg)) {
|
||||
PIOS_DEBUG_Assert(0);
|
||||
PIOS_Assert(0);
|
||||
}
|
||||
|
||||
/* Enable and mount the SDCard */
|
||||
@ -1047,21 +1021,14 @@ void PIOS_Board_Init(void) {
|
||||
PIOS_SDCARD_MountFS(0);
|
||||
#endif /* PIOS_INCLUDE_SPI */
|
||||
|
||||
#if defined(PIOS_INCLUDE_SPEKTRUM)
|
||||
/* SPEKTRUM init must come before comms */
|
||||
PIOS_SPEKTRUM_Init();
|
||||
|
||||
if (PIOS_USART_Init(&pios_usart_spektrum_id, &pios_usart_spektrum_cfg)) {
|
||||
PIOS_DEBUG_Assert(0);
|
||||
}
|
||||
if (PIOS_COM_Init(&pios_com_spektrum_id, &pios_usart_com_driver, pios_usart_spektrum_id)) {
|
||||
PIOS_DEBUG_Assert(0);
|
||||
}
|
||||
#endif
|
||||
/* Initialize UAVObject libraries */
|
||||
EventDispatcherInitialize();
|
||||
UAVObjInitialize();
|
||||
UAVObjectsInitializeAll();
|
||||
|
||||
#if defined(PIOS_INCLUDE_RTC)
|
||||
/* Initialize the real-time clock and its associated tick */
|
||||
PIOS_RTC_Init(&pios_rtc_main_cfg);
|
||||
#endif
|
||||
|
||||
/* Initialize the alarms library */
|
||||
AlarmsInitialize();
|
||||
@ -1074,7 +1041,7 @@ void PIOS_Board_Init(void) {
|
||||
|
||||
/* Set up the SPI interface to the AHRS */
|
||||
if (PIOS_SPI_Init(&pios_spi_ahrs_id, &pios_spi_ahrs_cfg)) {
|
||||
PIOS_DEBUG_Assert(0);
|
||||
PIOS_Assert(0);
|
||||
}
|
||||
|
||||
/* Bind the AHRS comms layer to the AHRS SPI link */
|
||||
@ -1082,43 +1049,147 @@ void PIOS_Board_Init(void) {
|
||||
|
||||
/* Initialize the PiOS library */
|
||||
#if defined(PIOS_INCLUDE_COM)
|
||||
if (PIOS_USART_Init(&pios_usart_telem_rf_id, &pios_usart_telem_cfg)) {
|
||||
PIOS_DEBUG_Assert(0);
|
||||
}
|
||||
if (PIOS_COM_Init(&pios_com_telem_rf_id, &pios_usart_com_driver, pios_usart_telem_rf_id)) {
|
||||
PIOS_DEBUG_Assert(0);
|
||||
}
|
||||
#if defined(PIOS_INCLUDE_TELEMETRY_RF)
|
||||
{
|
||||
uint32_t pios_usart_telem_rf_id;
|
||||
if (PIOS_USART_Init(&pios_usart_telem_rf_id, &pios_usart_telem_cfg)) {
|
||||
PIOS_Assert(0);
|
||||
}
|
||||
|
||||
if (PIOS_USART_Init(&pios_usart_gps_id, &pios_usart_gps_cfg)) {
|
||||
PIOS_DEBUG_Assert(0);
|
||||
uint8_t * rx_buffer = (uint8_t *) pvPortMalloc(PIOS_COM_TELEM_RF_RX_BUF_LEN);
|
||||
uint8_t * tx_buffer = (uint8_t *) pvPortMalloc(PIOS_COM_TELEM_RF_TX_BUF_LEN);
|
||||
PIOS_Assert(rx_buffer);
|
||||
PIOS_Assert(tx_buffer);
|
||||
if (PIOS_COM_Init(&pios_com_telem_rf_id, &pios_usart_com_driver, pios_usart_telem_rf_id,
|
||||
rx_buffer, PIOS_COM_TELEM_RF_RX_BUF_LEN,
|
||||
tx_buffer, PIOS_COM_TELEM_RF_TX_BUF_LEN)) {
|
||||
PIOS_Assert(0);
|
||||
}
|
||||
}
|
||||
if (PIOS_COM_Init(&pios_com_gps_id, &pios_usart_com_driver, pios_usart_gps_id)) {
|
||||
PIOS_DEBUG_Assert(0);
|
||||
#endif /* PIOS_INCLUDE_TELEMETRY_RF */
|
||||
|
||||
#if defined(PIOS_INCLUDE_GPS)
|
||||
{
|
||||
uint32_t pios_usart_gps_id;
|
||||
if (PIOS_USART_Init(&pios_usart_gps_id, &pios_usart_gps_cfg)) {
|
||||
PIOS_Assert(0);
|
||||
}
|
||||
uint8_t * rx_buffer = (uint8_t *) pvPortMalloc(PIOS_COM_GPS_RX_BUF_LEN);
|
||||
uint8_t * tx_buffer = (uint8_t *) pvPortMalloc(PIOS_COM_GPS_TX_BUF_LEN);
|
||||
PIOS_Assert(rx_buffer);
|
||||
PIOS_Assert(tx_buffer);
|
||||
if (PIOS_COM_Init(&pios_com_gps_id, &pios_usart_com_driver, pios_usart_gps_id,
|
||||
rx_buffer, PIOS_COM_GPS_RX_BUF_LEN,
|
||||
tx_buffer, PIOS_COM_GPS_TX_BUF_LEN)) {
|
||||
PIOS_Assert(0);
|
||||
}
|
||||
}
|
||||
#endif /* PIOS_INCLUDE_GPS */
|
||||
#endif
|
||||
|
||||
PIOS_Servo_Init();
|
||||
PIOS_ADC_Init();
|
||||
PIOS_GPIO_Init();
|
||||
|
||||
/* Configure the selected receiver */
|
||||
uint8_t manualcontrolsettings_inputmode;
|
||||
ManualControlSettingsInputModeGet(&manualcontrolsettings_inputmode);
|
||||
|
||||
switch (manualcontrolsettings_inputmode) {
|
||||
case MANUALCONTROLSETTINGS_INPUTMODE_PWM:
|
||||
#if defined(PIOS_INCLUDE_PWM)
|
||||
PIOS_PWM_Init();
|
||||
#if (PIOS_PWM_NUM_INPUTS > PIOS_RCVR_MAX_CHANNELS)
|
||||
#error More receiver inputs than available devices
|
||||
#endif
|
||||
PIOS_PWM_Init();
|
||||
uint32_t pios_pwm_rcvr_id;
|
||||
if (PIOS_RCVR_Init(&pios_pwm_rcvr_id, &pios_pwm_rcvr_driver, 0)) {
|
||||
PIOS_Assert(0);
|
||||
}
|
||||
for (uint8_t i = 0;
|
||||
i < PIOS_PWM_NUM_INPUTS && pios_rcvr_max_channel < NELEMENTS(pios_rcvr_channel_to_id_map);
|
||||
i++) {
|
||||
pios_rcvr_channel_to_id_map[pios_rcvr_max_channel].id = pios_pwm_rcvr_id;
|
||||
pios_rcvr_channel_to_id_map[pios_rcvr_max_channel].channel = i;
|
||||
pios_rcvr_max_channel++;
|
||||
}
|
||||
#endif /* PIOS_INCLUDE_PWM */
|
||||
break;
|
||||
case MANUALCONTROLSETTINGS_INPUTMODE_PPM:
|
||||
#if defined(PIOS_INCLUDE_PPM)
|
||||
PIOS_PPM_Init();
|
||||
#if (PIOS_PPM_NUM_INPUTS > PIOS_RCVR_MAX_CHANNELS)
|
||||
#error More receiver inputs than available devices
|
||||
#endif
|
||||
PIOS_PPM_Init();
|
||||
uint32_t pios_ppm_rcvr_id;
|
||||
if (PIOS_RCVR_Init(&pios_ppm_rcvr_id, &pios_ppm_rcvr_driver, 0)) {
|
||||
PIOS_Assert(0);
|
||||
}
|
||||
for (uint8_t i = 0;
|
||||
i < PIOS_PPM_NUM_INPUTS && pios_rcvr_max_channel < NELEMENTS(pios_rcvr_channel_to_id_map);
|
||||
i++) {
|
||||
pios_rcvr_channel_to_id_map[pios_rcvr_max_channel].id = pios_ppm_rcvr_id;
|
||||
pios_rcvr_channel_to_id_map[pios_rcvr_max_channel].channel = i;
|
||||
pios_rcvr_max_channel++;
|
||||
}
|
||||
#endif /* PIOS_INCLUDE_PPM */
|
||||
break;
|
||||
case MANUALCONTROLSETTINGS_INPUTMODE_SPEKTRUM:
|
||||
#if defined(PIOS_INCLUDE_SPEKTRUM)
|
||||
#if (PIOS_SPEKTRUM_NUM_INPUTS > PIOS_RCVR_MAX_CHANNELS)
|
||||
#error More receiver inputs than available devices
|
||||
#endif
|
||||
{
|
||||
uint32_t pios_usart_spektrum_id;
|
||||
if (PIOS_USART_Init(&pios_usart_spektrum_id, &pios_usart_spektrum_cfg)) {
|
||||
PIOS_Assert(0);
|
||||
}
|
||||
|
||||
uint32_t pios_spektrum_id;
|
||||
if (PIOS_SPEKTRUM_Init(&pios_spektrum_id, &pios_spektrum_cfg, &pios_usart_com_driver, pios_usart_spektrum_id, false)) {
|
||||
PIOS_Assert(0);
|
||||
}
|
||||
|
||||
uint32_t pios_spektrum_rcvr_id;
|
||||
if (PIOS_RCVR_Init(&pios_spektrum_rcvr_id, &pios_spektrum_rcvr_driver, 0)) {
|
||||
PIOS_Assert(0);
|
||||
}
|
||||
for (uint8_t i = 0;
|
||||
i < PIOS_SPEKTRUM_NUM_INPUTS && pios_rcvr_max_channel < NELEMENTS(pios_rcvr_channel_to_id_map);
|
||||
i++) {
|
||||
pios_rcvr_channel_to_id_map[pios_rcvr_max_channel].id = pios_spektrum_rcvr_id;
|
||||
pios_rcvr_channel_to_id_map[pios_rcvr_max_channel].channel = i;
|
||||
pios_rcvr_max_channel++;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
break;
|
||||
case MANUALCONTROLSETTINGS_INPUTMODE_SBUS:
|
||||
#if defined(PIOS_INCLUDE_SBUS)
|
||||
#error SBUS NOT ON OP YET
|
||||
#endif /* PIOS_INCLUDE_SBUS */
|
||||
break;
|
||||
}
|
||||
|
||||
#if defined(PIOS_INCLUDE_USB_HID)
|
||||
PIOS_USB_HID_Init(0);
|
||||
uint32_t pios_usb_hid_id;
|
||||
PIOS_USB_HID_Init(&pios_usb_hid_id, &pios_usb_hid_main_cfg);
|
||||
#if defined(PIOS_INCLUDE_COM)
|
||||
if (PIOS_COM_Init(&pios_com_telem_usb_id, &pios_usb_com_driver, 0)) {
|
||||
PIOS_DEBUG_Assert(0);
|
||||
uint8_t * rx_buffer = (uint8_t *) pvPortMalloc(PIOS_COM_TELEM_USB_RX_BUF_LEN);
|
||||
uint8_t * tx_buffer = (uint8_t *) pvPortMalloc(PIOS_COM_TELEM_USB_TX_BUF_LEN);
|
||||
PIOS_Assert(rx_buffer);
|
||||
PIOS_Assert(tx_buffer);
|
||||
if (PIOS_COM_Init(&pios_com_telem_usb_id, &pios_usb_com_driver, pios_usb_hid_id,
|
||||
rx_buffer, PIOS_COM_TELEM_USB_RX_BUF_LEN,
|
||||
tx_buffer, PIOS_COM_TELEM_USB_TX_BUF_LEN)) {
|
||||
PIOS_Assert(0);
|
||||
}
|
||||
#endif /* PIOS_INCLUDE_COM */
|
||||
#endif /* PIOS_INCLUDE_USB_HID */
|
||||
#endif /* PIOS_INCLUDE_USB_HID */
|
||||
|
||||
#if defined(PIOS_INCLUDE_I2C)
|
||||
if (PIOS_I2C_Init(&pios_i2c_main_adapter_id, &pios_i2c_main_adapter_cfg)) {
|
||||
PIOS_DEBUG_Assert(0);
|
||||
PIOS_Assert(0);
|
||||
}
|
||||
#endif /* PIOS_INCLUDE_I2C */
|
||||
PIOS_IAP_Init();
|
||||
|
@ -29,42 +29,32 @@
|
||||
#include <openpilot.h>
|
||||
#include <uavobjectsinit.h>
|
||||
|
||||
/**
|
||||
* PIOS_Board_Init()
|
||||
* initializes all the core systems on this specific hardware
|
||||
* called from System/openpilot.c
|
||||
*/
|
||||
void PIOS_Board_Init(void) {
|
||||
#include "attituderaw.h"
|
||||
#include "attitudeactual.h"
|
||||
#include "positionactual.h"
|
||||
#include "velocityactual.h"
|
||||
|
||||
/* Delay system */
|
||||
PIOS_DELAY_Init();
|
||||
#include "pios_rcvr_priv.h"
|
||||
|
||||
/* Initialize UAVObject libraries */
|
||||
EventDispatcherInitialize();
|
||||
UAVObjInitialize();
|
||||
UAVObjectsInitializeAll();
|
||||
struct pios_rcvr_channel_map pios_rcvr_channel_to_id_map[PIOS_RCVR_MAX_CHANNELS];
|
||||
uint32_t pios_rcvr_max_channel;
|
||||
|
||||
/* Initialize the alarms library */
|
||||
AlarmsInitialize();
|
||||
|
||||
/* Initialize the task monitor library */
|
||||
TaskMonitorInitialize();
|
||||
|
||||
/* Initialize the PiOS library */
|
||||
PIOS_COM_Init();
|
||||
void Stack_Change() {
|
||||
}
|
||||
|
||||
void Stack_Change_Weak() {
|
||||
}
|
||||
|
||||
|
||||
const struct pios_udp_cfg pios_udp0_cfg = {
|
||||
const struct pios_udp_cfg pios_udp_telem_cfg = {
|
||||
.ip = "0.0.0.0",
|
||||
.port = 9000,
|
||||
};
|
||||
const struct pios_udp_cfg pios_udp1_cfg = {
|
||||
const struct pios_udp_cfg pios_udp_gps_cfg = {
|
||||
.ip = "0.0.0.0",
|
||||
.port = 9001,
|
||||
};
|
||||
const struct pios_udp_cfg pios_udp2_cfg = {
|
||||
const struct pios_udp_cfg pios_udp_debug_cfg = {
|
||||
.ip = "0.0.0.0",
|
||||
.port = 9002,
|
||||
};
|
||||
@ -73,15 +63,20 @@ const struct pios_udp_cfg pios_udp2_cfg = {
|
||||
/*
|
||||
* AUX USART
|
||||
*/
|
||||
const struct pios_udp_cfg pios_udp3_cfg = {
|
||||
const struct pios_udp_cfg pios_udp_aux_cfg = {
|
||||
.ip = "0.0.0.0",
|
||||
.port = 9003,
|
||||
};
|
||||
#endif
|
||||
|
||||
#define PIOS_COM_TELEM_RF_RX_BUF_LEN 192
|
||||
#define PIOS_COM_TELEM_RF_TX_BUF_LEN 192
|
||||
#define PIOS_COM_GPS_RX_BUF_LEN 192
|
||||
|
||||
/*
|
||||
* Board specific number of devices.
|
||||
*/
|
||||
/*
|
||||
struct pios_udp_dev pios_udp_devs[] = {
|
||||
#define PIOS_UDP_TELEM 0
|
||||
{
|
||||
@ -104,7 +99,7 @@ struct pios_udp_dev pios_udp_devs[] = {
|
||||
};
|
||||
|
||||
uint8_t pios_udp_num_devices = NELEMENTS(pios_udp_devs);
|
||||
|
||||
*/
|
||||
/*
|
||||
* COM devices
|
||||
*/
|
||||
@ -115,28 +110,79 @@ uint8_t pios_udp_num_devices = NELEMENTS(pios_udp_devs);
|
||||
extern const struct pios_com_driver pios_serial_com_driver;
|
||||
extern const struct pios_com_driver pios_udp_com_driver;
|
||||
|
||||
struct pios_com_dev pios_com_devs[] = {
|
||||
{
|
||||
.id = PIOS_UDP_TELEM,
|
||||
.driver = &pios_udp_com_driver,
|
||||
},
|
||||
{
|
||||
.id = PIOS_UDP_GPS,
|
||||
.driver = &pios_udp_com_driver,
|
||||
},
|
||||
{
|
||||
.id = PIOS_UDP_LOCAL,
|
||||
.driver = &pios_udp_com_driver,
|
||||
},
|
||||
#ifdef PIOS_COM_AUX
|
||||
{
|
||||
.id = PIOS_UDP_AUX,
|
||||
.driver = &pios_udp_com_driver,
|
||||
},
|
||||
#endif
|
||||
};
|
||||
uint32_t pios_com_telem_rf_id;
|
||||
uint32_t pios_com_telem_usb_id;
|
||||
uint32_t pios_com_gps_id;
|
||||
uint32_t pios_com_aux_id;
|
||||
uint32_t pios_com_spectrum_id;
|
||||
|
||||
const uint8_t pios_com_num_devices = NELEMENTS(pios_com_devs);
|
||||
/**
|
||||
* PIOS_Board_Init()
|
||||
* initializes all the core systems on this specific hardware
|
||||
* called from System/openpilot.c
|
||||
*/
|
||||
void PIOS_Board_Init(void) {
|
||||
|
||||
/* Delay system */
|
||||
PIOS_DELAY_Init();
|
||||
|
||||
/* Initialize UAVObject libraries */
|
||||
EventDispatcherInitialize();
|
||||
UAVObjInitialize();
|
||||
UAVObjectsInitializeAll();
|
||||
|
||||
/* Initialize the alarms library */
|
||||
AlarmsInitialize();
|
||||
|
||||
/* Initialize the task monitor library */
|
||||
TaskMonitorInitialize();
|
||||
|
||||
#if defined(PIOS_INCLUDE_COM)
|
||||
#if defined(PIOS_INCLUDE_TELEMETRY_RF)
|
||||
{
|
||||
uint32_t pios_udp_telem_rf_id;
|
||||
if (PIOS_UDP_Init(&pios_udp_telem_rf_id, &pios_udp_telem_cfg)) {
|
||||
PIOS_Assert(0);
|
||||
}
|
||||
|
||||
uint8_t * rx_buffer = (uint8_t *) pvPortMalloc(PIOS_COM_TELEM_RF_RX_BUF_LEN);
|
||||
uint8_t * tx_buffer = (uint8_t *) pvPortMalloc(PIOS_COM_TELEM_RF_TX_BUF_LEN);
|
||||
PIOS_Assert(rx_buffer);
|
||||
PIOS_Assert(tx_buffer);
|
||||
if (PIOS_COM_Init(&pios_com_telem_rf_id, &pios_udp_com_driver, pios_udp_telem_rf_id,
|
||||
rx_buffer, PIOS_COM_TELEM_RF_RX_BUF_LEN,
|
||||
tx_buffer, PIOS_COM_TELEM_RF_TX_BUF_LEN)) {
|
||||
PIOS_Assert(0);
|
||||
}
|
||||
}
|
||||
#endif /* PIOS_INCLUDE_TELEMETRY_RF */
|
||||
|
||||
#if defined(PIOS_INCLUDE_GPS)
|
||||
{
|
||||
uint32_t pios_udp_gps_id;
|
||||
if (PIOS_UDP_Init(&pios_udp_gps_id, &pios_udp_gps_cfg)) {
|
||||
PIOS_Assert(0);
|
||||
}
|
||||
uint8_t * rx_buffer = (uint8_t *) pvPortMalloc(PIOS_COM_GPS_RX_BUF_LEN);
|
||||
uint8_t * tx_buffer = (uint8_t *) pvPortMalloc(PIOS_COM_GPS_RX_BUF_LEN);
|
||||
PIOS_Assert(rx_buffer);
|
||||
PIOS_Assert(tx_buffer);
|
||||
if (PIOS_COM_Init(&pios_com_gps_id, &pios_udp_com_driver, pios_udp_gps_id,
|
||||
rx_buffer, PIOS_COM_GPS_RX_BUF_LEN,
|
||||
tx_buffer, PIOS_COM_GPS_RX_BUF_LEN)) {
|
||||
PIOS_Assert(0);
|
||||
}
|
||||
}
|
||||
#endif /* PIOS_INCLUDE_GPS */
|
||||
#endif
|
||||
|
||||
// Initialize these here as posix has no AHRSComms
|
||||
AttitudeRawInitialize();
|
||||
AttitudeActualInitialize();
|
||||
VelocityActualInitialize();
|
||||
PositionActualInitialize();
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @}
|
||||
|
@ -35,6 +35,7 @@
|
||||
// Private variables
|
||||
static xSemaphoreHandle lock;
|
||||
static xTaskHandle handles[TASKINFO_RUNNING_NUMELEM];
|
||||
static uint32_t lastMonitorTime;
|
||||
|
||||
// Private functions
|
||||
|
||||
@ -45,6 +46,10 @@ int32_t TaskMonitorInitialize(void)
|
||||
{
|
||||
lock = xSemaphoreCreateRecursiveMutex();
|
||||
memset(handles, 0, sizeof(xTaskHandle)*TASKINFO_RUNNING_NUMELEM);
|
||||
lastMonitorTime = 0;
|
||||
#if defined(DIAGNOSTICS)
|
||||
lastMonitorTime = portGET_RUN_TIME_COUNTER_VALUE();
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -89,12 +94,27 @@ int32_t TaskMonitorRemove(TaskInfoRunningElem task)
|
||||
*/
|
||||
void TaskMonitorUpdateAll(void)
|
||||
{
|
||||
#if defined(DIAGNOSTICS)
|
||||
TaskInfoData data;
|
||||
int n;
|
||||
|
||||
// Lock
|
||||
xSemaphoreTakeRecursive(lock, portMAX_DELAY);
|
||||
|
||||
#if ( configGENERATE_RUN_TIME_STATS == 1 )
|
||||
uint32_t currentTime;
|
||||
uint32_t deltaTime;
|
||||
|
||||
/*
|
||||
* Calculate the amount of elapsed run time between the last time we
|
||||
* measured and now. Scale so that we can convert task run times
|
||||
* directly to percentages.
|
||||
*/
|
||||
currentTime = portGET_RUN_TIME_COUNTER_VALUE();
|
||||
deltaTime = ((currentTime - lastMonitorTime) / 100) ? : 1; /* avoid divide-by-zero if the interval is too small */
|
||||
lastMonitorTime = currentTime;
|
||||
#endif
|
||||
|
||||
// Update all task information
|
||||
for (n = 0; n < TASKINFO_RUNNING_NUMELEM; ++n)
|
||||
{
|
||||
@ -107,7 +127,8 @@ void TaskMonitorUpdateAll(void)
|
||||
data.StackRemaining[n] = uxTaskGetStackHighWaterMark(handles[n]) * 4;
|
||||
#if ( configGENERATE_RUN_TIME_STATS == 1 )
|
||||
/* Generate run time stats */
|
||||
data.RunningTime[n] = 100 * (float) uxTaskGetRunTime(handles[n]) / portGET_RUN_TIME_COUNTER_VALUE();
|
||||
data.RunningTime[n] = uxTaskGetRunTime(handles[n]) / deltaTime;
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@ -125,4 +146,5 @@ void TaskMonitorUpdateAll(void)
|
||||
|
||||
// Done
|
||||
xSemaphoreGiveRecursive(lock);
|
||||
#endif
|
||||
}
|
||||
|
@ -24,6 +24,7 @@
|
||||
# (all architectures)
|
||||
|
||||
UAVOBJSRCFILENAMES =
|
||||
UAVOBJSRCFILENAMES += accessorydesired
|
||||
UAVOBJSRCFILENAMES += actuatorcommand
|
||||
UAVOBJSRCFILENAMES += actuatordesired
|
||||
UAVOBJSRCFILENAMES += actuatorsettings
|
||||
@ -68,6 +69,8 @@ UAVOBJSRCFILENAMES += velocityactual
|
||||
UAVOBJSRCFILENAMES += velocitydesired
|
||||
UAVOBJSRCFILENAMES += watchdogstatus
|
||||
UAVOBJSRCFILENAMES += flightstatus
|
||||
UAVOBJSRCFILENAMES += cameradesired
|
||||
UAVOBJSRCFILENAMES += camerastabsettings
|
||||
|
||||
UAVOBJSRC = $(foreach UAVOBJSRCFILE,$(UAVOBJSRCFILENAMES),$(UAVOBJSYNTHDIR)/$(UAVOBJSRCFILE).c )
|
||||
UAVOBJDEFINE = $(foreach UAVOBJSRCFILE,$(UAVOBJSRCFILENAMES),-DUAVOBJ_INIT_$(UAVOBJSRCFILE) )
|
||||
|
@ -1,5 +1,10 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @addtogroup PIOS PIOS Core hardware abstraction layer
|
||||
* @{
|
||||
* @addtogroup PIOS_COM COM layer functions
|
||||
* @brief Hardware communication layer
|
||||
* @{
|
||||
*
|
||||
* @file pios_com.h
|
||||
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
|
||||
@ -27,29 +32,34 @@
|
||||
#ifndef PIOS_COM_H
|
||||
#define PIOS_COM_H
|
||||
|
||||
/* Public Functions */
|
||||
extern int32_t PIOS_COM_Init(void);
|
||||
extern int32_t PIOS_COM_ChangeBaud(uint8_t port, uint32_t baud);
|
||||
extern int32_t PIOS_COM_SendCharNonBlocking(uint8_t port, char c);
|
||||
extern int32_t PIOS_COM_SendChar(uint8_t port, char c);
|
||||
extern int32_t PIOS_COM_SendBufferNonBlocking(uint8_t port, uint8_t *buffer, uint16_t len);
|
||||
extern int32_t PIOS_COM_SendBuffer(uint8_t port, uint8_t *buffer, uint16_t len);
|
||||
extern int32_t PIOS_COM_SendStringNonBlocking(uint8_t port, char *str);
|
||||
extern int32_t PIOS_COM_SendString(uint8_t port, char *str);
|
||||
extern int32_t PIOS_COM_SendFormattedStringNonBlocking(uint8_t port, char *format, ...);
|
||||
extern int32_t PIOS_COM_SendFormattedString(uint8_t port, char *format, ...);
|
||||
extern uint8_t PIOS_COM_ReceiveBuffer(uint8_t port);
|
||||
extern int32_t PIOS_COM_ReceiveBufferUsed(uint8_t port);
|
||||
|
||||
extern int32_t PIOS_COM_ReceiveHandler(void);
|
||||
typedef uint16_t (*pios_com_callback)(uint32_t context, uint8_t * buf, uint16_t buf_len, uint16_t * headroom, bool * task_woken);
|
||||
|
||||
struct pios_com_driver {
|
||||
void (*init)(uint8_t id);
|
||||
void (*set_baud)(uint8_t id, uint32_t baud);
|
||||
int32_t (*tx_nb)(uint8_t id, uint8_t *buffer, uint16_t len);
|
||||
int32_t (*tx)(uint8_t id, uint8_t *buffer, uint16_t len);
|
||||
int32_t (*rx)(uint8_t id);
|
||||
int32_t (*rx_avail)(uint8_t id);
|
||||
void (*init)(uint32_t id);
|
||||
void (*set_baud)(uint32_t id, uint32_t baud);
|
||||
void (*tx_start)(uint32_t id, uint16_t tx_bytes_avail);
|
||||
void (*rx_start)(uint32_t id, uint16_t rx_bytes_avail);
|
||||
void (*bind_rx_cb)(uint32_t id, pios_com_callback rx_in_cb, uint32_t context);
|
||||
void (*bind_tx_cb)(uint32_t id, pios_com_callback tx_out_cb, uint32_t context);
|
||||
};
|
||||
|
||||
/* Public Functions */
|
||||
extern int32_t PIOS_COM_Init(uint32_t * com_id, const struct pios_com_driver * driver, uint32_t lower_id, uint8_t * rx_buffer, uint16_t rx_buffer_len, uint8_t * tx_buffer, uint16_t tx_buffer_len);
|
||||
extern int32_t PIOS_COM_ChangeBaud(uint32_t com_id, uint32_t baud);
|
||||
extern int32_t PIOS_COM_SendCharNonBlocking(uint32_t com_id, char c);
|
||||
extern int32_t PIOS_COM_SendChar(uint32_t com_id, char c);
|
||||
extern int32_t PIOS_COM_SendBufferNonBlocking(uint32_t com_id, const uint8_t *buffer, uint16_t len);
|
||||
extern int32_t PIOS_COM_SendBuffer(uint32_t com_id, const uint8_t *buffer, uint16_t len);
|
||||
extern int32_t PIOS_COM_SendStringNonBlocking(uint32_t com_id, const char *str);
|
||||
extern int32_t PIOS_COM_SendString(uint32_t com_id, const char *str);
|
||||
extern int32_t PIOS_COM_SendFormattedStringNonBlocking(uint32_t com_id, const char *format, ...);
|
||||
extern int32_t PIOS_COM_SendFormattedString(uint32_t com_id, const char *format, ...);
|
||||
extern uint16_t PIOS_COM_ReceiveBuffer(uint32_t com_id, uint8_t * buf, uint16_t buf_len, uint32_t timeout_ms);
|
||||
extern int32_t PIOS_COM_ReceiveBufferUsed(uint32_t com_id);
|
||||
|
||||
#endif /* PIOS_COM_H */
|
||||
|
||||
/**
|
||||
* @}
|
||||
* @}
|
||||
*/
|
||||
|