From fdd591b7000c96cd40ad197f0eb192e0c88b22b4 Mon Sep 17 00:00:00 2001 From: James Cotton Date: Tue, 10 May 2011 14:40:21 -0500 Subject: [PATCH 001/488] OP-488: If the FirmwareIAP receives a halt signal but system is not disarmed abort the halt. --- flight/Modules/FirmwareIAP/firmwareiap.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/flight/Modules/FirmwareIAP/firmwareiap.c b/flight/Modules/FirmwareIAP/firmwareiap.c index 71de8c390..11e8721fd 100644 --- a/flight/Modules/FirmwareIAP/firmwareiap.c +++ b/flight/Modules/FirmwareIAP/firmwareiap.c @@ -30,6 +30,7 @@ #include "openpilot.h" #include "firmwareiap.h" #include "firmwareiapobj.h" +#include "flightstatus.h" // Private constants #define IAP_CMD_STEP_1 1122 @@ -156,6 +157,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(); From 5bddbc4108aa90a7b25d75d9d471f2da4aa0dfed Mon Sep 17 00:00:00 2001 From: David Carlson Date: Thu, 12 May 2011 03:37:34 -0700 Subject: [PATCH 002/488] Add help buttons at relevant places within config gadget. This is only the UI change and the buttons have no effect currently. --- .../src/plugins/config/images/help2.png | Bin 0 -> 601 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 ground/openpilotgcs/src/plugins/config/images/help2.png diff --git a/ground/openpilotgcs/src/plugins/config/images/help2.png b/ground/openpilotgcs/src/plugins/config/images/help2.png new file mode 100644 index 0000000000000000000000000000000000000000..d161c045587064b99bbd7936357d6453ca3b935f GIT binary patch literal 601 zcmV-f0;c_mP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2ipY< z2N?*ak3lN{00G%aL_t(I%cYV(Xj5Sn#ed&>c}>#9wo0H=a5bQlOF%?~LPZA=bWtc6 z5JAL%D2NoqK^H}7E4UPupqt=e3l0tzD=J9AfQk<4s`QU0?|HF?I z=Wsdq!apK=apAA^)cQhhVFl;j;+Dep;*}tb_5f+iGTzv0?oHs;dcNxURiCh_Fj5xN zcxg91L7_l_){@C()PSPem@H2x8vvQfXA<~fyQS2uQtAunOMqorDHYT|<#>G3?eL9m z@!;9{@wnN<41BD>y&%`dPG~o{YI^P|!}C=9v%z3#>%MMHk3nqPua#q?JcnV4Zvb#> zKe*1g;X4?ChpeuBO$r~v_b&%HKyo7Nmip8fhl_-gqXfP~#x#8NkwGj5p$xLb(`E8d?t$dT#=fG{JAD3}68%9jtyfvIPZ#zg+)d!e$^gp#}JW#NAsk+a9ApR$xGY>`-y2 n<*v9o@&JkWBmNe*-~W$aZBxUaA{&x500000NkvXXu0mjfde;#5 literal 0 HcmV?d00001 From ab7fdfcc1fe105206b1ba0472c6f918287e2f3f1 Mon Sep 17 00:00:00 2001 From: elafargue Date: Thu, 12 May 2011 16:32:38 +0200 Subject: [PATCH 003/488] OPReview-40 : Disable min/max output channel range controls when doing a servo test, in order to avoid mistakes by careless users. --- .../src/plugins/config/configoutputwidget.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/ground/openpilotgcs/src/plugins/config/configoutputwidget.cpp b/ground/openpilotgcs/src/plugins/config/configoutputwidget.cpp index a762ce742..5ef3daf72 100644 --- a/ground/openpilotgcs/src/plugins/config/configoutputwidget.cpp +++ b/ground/openpilotgcs/src/plugins/config/configoutputwidget.cpp @@ -265,10 +265,27 @@ void ConfigOutputWidget::runChannelTests(bool state) mdata.gcsTelemetryAcked = false; mdata.gcsTelemetryUpdateMode = UAVObject::UPDATEMODE_ONCHANGE; mdata.gcsTelemetryUpdatePeriod = 100; + + // Prevent stupid users from touching the minimum & maximum ranges while + // moving the sliders. Thanks Ivan for the tip :) + foreach (QSpinBox* box, outMin) { + box->setEnabled(false); + } + foreach (QSpinBox* box, outMax) { + box->setEnabled(false); + } + } else { mdata = accInitialData; // Restore metadata + foreach (QSpinBox* box, outMin) { + box->setEnabled(true); + } + foreach (QSpinBox* box, outMax) { + box->setEnabled(true); + } + } obj->setMetadata(mdata); From dceae1a9b095b56a08096ffda347e0c83b1f3f67 Mon Sep 17 00:00:00 2001 From: elafargue Date: Fri, 13 May 2011 00:01:31 +0200 Subject: [PATCH 004/488] Make bargraph dials better (color and range for roll/pitch/yaw are now correct). Disable use of OpenGL by default on config to ensure max compatibility with all graphics cards. --- .../src/plugins/coreplugin/OpenPilotGCS.ini | 400 +++++++++--------- .../gcscontrol/gcscontrolgadgetwidget.cpp | 6 +- 2 files changed, 204 insertions(+), 202 deletions(-) diff --git a/ground/openpilotgcs/src/plugins/coreplugin/OpenPilotGCS.ini b/ground/openpilotgcs/src/plugins/coreplugin/OpenPilotGCS.ini index 37f9d42f5..c9a898c34 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/OpenPilotGCS.ini +++ b/ground/openpilotgcs/src/plugins/coreplugin/OpenPilotGCS.ini @@ -1,5 +1,5 @@ [General] -ViewGroup_Default=@ByteArray(\0\0\0\xff\0\0\0\0\xfd\0\0\0\0\0\0\x5\xa0\0\0\x3/\0\0\0\x4\0\0\0\x4\0\0\0\x1\0\0\0\b\xfc\0\0\0\0) +ViewGroup_Default=@ByteArray(\0\0\0\xff\0\0\0\0\xfd\0\0\0\0\0\0\x5V\0\0\x2\x9a\0\0\0\x4\0\0\0\x4\0\0\0\x1\0\0\0\b\xfc\0\0\0\0) [Workspace] NumberOfWorkspaces=6 @@ -42,19 +42,127 @@ Mode1\splitter\side0\side0\type=splitter Mode1\splitter\side0\side0\splitterOrientation=1 Mode1\splitter\side0\side0\splitterSizes=144, 608 Mode1\splitter\side0\side0\side0\type=splitter +Mode1\splitter\side0\side0\side0\splitterOrientation=2 +Mode1\splitter\side0\side0\side0\splitterSizes=215, 237 +Mode1\splitter\side0\side0\side0\side0\type=splitter +Mode1\splitter\side0\side0\side0\side0\splitterOrientation=2 +Mode1\splitter\side0\side0\side0\side0\splitterSizes=@Invalid() +Mode1\splitter\side0\side0\side0\side0\side0\type=uavGadget +Mode1\splitter\side0\side0\side0\side0\side0\classId=LineardialGadget +Mode1\splitter\side0\side0\side0\side0\side0\gadget\activeConfiguration=Flight Time +Mode1\splitter\side0\side0\side0\side0\side1\type=uavGadget +Mode1\splitter\side0\side0\side0\side0\side1\classId=LineardialGadget +Mode1\splitter\side0\side0\side0\side0\side1\gadget\activeConfiguration=GPS Sats +Mode1\splitter\side0\side0\side0\side1\type=splitter +Mode1\splitter\side0\side0\side0\side1\splitterOrientation=2 +Mode1\splitter\side0\side0\side0\side1\splitterSizes=@Invalid() +Mode1\splitter\side0\side0\side0\side1\side0\type=uavGadget +Mode1\splitter\side0\side0\side0\side1\side0\classId=LineardialGadget +Mode1\splitter\side0\side0\side0\side1\side0\gadget\activeConfiguration=Flight mode +Mode1\splitter\side0\side0\side0\side1\side1\type=uavGadget +Mode1\splitter\side0\side0\side0\side1\side1\classId=LineardialGadget +Mode1\splitter\side0\side0\side0\side1\side1\gadget\activeConfiguration=Arm Status Mode1\splitter\side0\side0\side1\type=uavGadget +Mode1\splitter\side0\side0\side1\classId=PFDGadget +Mode1\splitter\side0\side0\side1\gadget\activeConfiguration=raw Mode1\splitter\side0\side1\type=splitter +Mode1\splitter\side0\side1\splitterOrientation=1 +Mode1\splitter\side0\side1\splitterSizes=304, 433 +Mode1\splitter\side0\side1\side0\type=uavGadget +Mode1\splitter\side0\side1\side0\classId=ModelViewGadget +Mode1\splitter\side0\side1\side0\gadget\activeConfiguration=Test Quad X +Mode1\splitter\side0\side1\side1\type=splitter +Mode1\splitter\side0\side1\side1\splitterOrientation=2 +Mode1\splitter\side0\side1\side1\splitterSizes=293, 64 +Mode1\splitter\side0\side1\side1\side0\type=splitter +Mode1\splitter\side0\side1\side1\side0\splitterOrientation=1 +Mode1\splitter\side0\side1\side1\side0\splitterSizes=291, 141 +Mode1\splitter\side0\side1\side1\side0\side0\type=uavGadget +Mode1\splitter\side0\side1\side1\side0\side0\classId=SystemHealthGadget +Mode1\splitter\side0\side1\side1\side0\side0\gadget\activeConfiguration=default +Mode1\splitter\side0\side1\side1\side0\side1\type=splitter +Mode1\splitter\side0\side1\side1\side0\side1\splitterOrientation=1 +Mode1\splitter\side0\side1\side1\side0\side1\splitterSizes=64, 64 +Mode1\splitter\side0\side1\side1\side0\side1\side0\type=uavGadget +Mode1\splitter\side0\side1\side1\side0\side1\side0\classId=LineardialGadget +Mode1\splitter\side0\side1\side1\side0\side1\side0\gadget\activeConfiguration=Mainboard CPU +Mode1\splitter\side0\side1\side1\side0\side1\side1\type=uavGadget +Mode1\splitter\side0\side1\side1\side0\side1\side1\classId=LineardialGadget +Mode1\splitter\side0\side1\side1\side0\side1\side1\gadget\activeConfiguration=AHRS CPU +Mode1\splitter\side0\side1\side1\side1\type=splitter +Mode1\splitter\side0\side1\side1\side1\splitterOrientation=1 +Mode1\splitter\side0\side1\side1\side1\splitterSizes=@Invalid() +Mode1\splitter\side0\side1\side1\side1\side0\type=uavGadget +Mode1\splitter\side0\side1\side1\side1\side0\classId=LineardialGadget +Mode1\splitter\side0\side1\side1\side1\side0\gadget\activeConfiguration=Telemetry RX Rate Horizontal +Mode1\splitter\side0\side1\side1\side1\side1\type=uavGadget +Mode1\splitter\side0\side1\side1\side1\side1\classId=LineardialGadget +Mode1\splitter\side0\side1\side1\side1\side1\gadget\activeConfiguration=Telemetry TX Rate Horizontal Mode1\splitter\side1\type=splitter Mode1\splitter\side1\splitterOrientation=2 Mode1\splitter\side1\splitterSizes=492, 288 Mode1\splitter\side1\side0\type=uavGadget +Mode1\splitter\side1\side0\classId=OPMapGadget +Mode1\splitter\side1\side0\gadget\activeConfiguration=Google Sat Mode1\splitter\side1\side1\type=splitter Mode1\splitter\side1\side1\splitterOrientation=1 Mode1\splitter\side1\side1\splitterSizes=441, 259 Mode1\splitter\side1\side1\side0\type=splitter +Mode1\splitter\side1\side1\side0\splitterOrientation=1 +Mode1\splitter\side1\side1\side0\splitterSizes=277, 135 +Mode1\splitter\side1\side1\side0\side0\type=splitter +Mode1\splitter\side1\side1\side0\side0\splitterOrientation=1 +Mode1\splitter\side1\side1\side0\side0\splitterSizes=131, 138 +Mode1\splitter\side1\side1\side0\side0\side0\type=splitter +Mode1\splitter\side1\side1\side0\side0\side0\splitterOrientation=2 +Mode1\splitter\side1\side1\side0\side0\side0\splitterSizes=@Invalid() +Mode1\splitter\side1\side1\side0\side0\side0\side0\type=uavGadget +Mode1\splitter\side1\side1\side0\side0\side0\side0\classId=DialGadget +Mode1\splitter\side1\side1\side0\side0\side0\side0\gadget\activeConfiguration=Deluxe Groundspeed kph +Mode1\splitter\side1\side1\side0\side0\side0\side1\type=uavGadget +Mode1\splitter\side1\side1\side0\side0\side0\side1\classId=DialGadget +Mode1\splitter\side1\side1\side0\side0\side0\side1\gadget\activeConfiguration=Deluxe Barometer +Mode1\splitter\side1\side1\side0\side0\side1\type=splitter +Mode1\splitter\side1\side1\side0\side0\side1\splitterOrientation=2 +Mode1\splitter\side1\side1\side0\side0\side1\splitterSizes=@Invalid() +Mode1\splitter\side1\side1\side0\side0\side1\side0\type=uavGadget +Mode1\splitter\side1\side1\side0\side0\side1\side0\classId=DialGadget +Mode1\splitter\side1\side1\side0\side0\side1\side0\gadget\activeConfiguration=Deluxe Attitude +Mode1\splitter\side1\side1\side0\side0\side1\side1\type=uavGadget +Mode1\splitter\side1\side1\side0\side0\side1\side1\classId=DialGadget +Mode1\splitter\side1\side1\side0\side0\side1\side1\gadget\activeConfiguration=Deluxe Compass +Mode1\splitter\side1\side1\side0\side1\type=splitter +Mode1\splitter\side1\side1\side0\side1\splitterOrientation=2 +Mode1\splitter\side1\side1\side0\side1\splitterSizes=@Invalid() +Mode1\splitter\side1\side1\side0\side1\side0\type=uavGadget +Mode1\splitter\side1\side1\side0\side1\side0\classId=DialGadget +Mode1\splitter\side1\side1\side0\side1\side0\gadget\activeConfiguration=Deluxe Baro Altimeter +Mode1\splitter\side1\side1\side0\side1\side1\type=uavGadget +Mode1\splitter\side1\side1\side0\side1\side1\classId=DialGadget +Mode1\splitter\side1\side1\side0\side1\side1\gadget\activeConfiguration=Deluxe Climbrate Mode1\splitter\side1\side1\side1\type=splitter +Mode1\splitter\side1\side1\side1\splitterOrientation=1 +Mode1\splitter\side1\side1\side1\splitterSizes=64, 441 +Mode1\splitter\side1\side1\side1\side0\type=uavGadget +Mode1\splitter\side1\side1\side1\side0\classId=LineardialGadget +Mode1\splitter\side1\side1\side1\side0\gadget\activeConfiguration=Throttle +Mode1\splitter\side1\side1\side1\side1\type=splitter +Mode1\splitter\side1\side1\side1\side1\splitterOrientation=1 +Mode1\splitter\side1\side1\side1\side1\splitterSizes=64, 376 +Mode1\splitter\side1\side1\side1\side1\side0\type=uavGadget +Mode1\splitter\side1\side1\side1\side1\side0\classId=LineardialGadget +Mode1\splitter\side1\side1\side1\side1\side0\gadget\activeConfiguration=Roll +Mode1\splitter\side1\side1\side1\side1\side1\type=splitter +Mode1\splitter\side1\side1\side1\side1\side1\splitterOrientation=1 +Mode1\splitter\side1\side1\side1\side1\side1\splitterSizes=64, 311 +Mode1\splitter\side1\side1\side1\side1\side1\side0\type=uavGadget +Mode1\splitter\side1\side1\side1\side1\side1\side0\classId=LineardialGadget +Mode1\splitter\side1\side1\side1\side1\side1\side0\gadget\activeConfiguration=Pitch +Mode1\splitter\side1\side1\side1\side1\side1\side1\type=uavGadget +Mode1\splitter\side1\side1\side1\side1\side1\side1\classId=LineardialGadget +Mode1\splitter\side1\side1\side1\side1\side1\side1\gadget\activeConfiguration=Yaw Mode2\version=UAVGadgetManagerV1 -Mode2\showToolbars=false +Mode2\showToolbars=true Mode2\splitter\type=splitter Mode2\splitter\splitterOrientation=1 Mode2\splitter\splitterSizes=734, 631 @@ -111,11 +219,28 @@ Mode4\splitter\type=splitter Mode4\splitter\splitterOrientation=1 Mode4\splitter\splitterSizes=653, 660 Mode4\splitter\side0\type=splitter +Mode4\splitter\side0\splitterOrientation=2 +Mode4\splitter\side0\splitterSizes=@Invalid() +Mode4\splitter\side0\side0\type=uavGadget +Mode4\splitter\side0\side0\classId=ScopeGadget +Mode4\splitter\side0\side0\gadget\activeConfiguration=Accel +Mode4\splitter\side0\side1\type=uavGadget +Mode4\splitter\side0\side1\classId=ScopeGadget +Mode4\splitter\side0\side1\gadget\activeConfiguration=Raw Gyros Mode4\splitter\side1\type=splitter Mode4\splitter\side1\splitterOrientation=2 Mode4\splitter\side1\splitterSizes=661, 119 Mode4\splitter\side1\side0\type=splitter +Mode4\splitter\side1\side0\splitterOrientation=2 +Mode4\splitter\side1\side0\splitterSizes=390, 270 +Mode4\splitter\side1\side0\side0\type=uavGadget +Mode4\splitter\side1\side0\side0\classId=ScopeGadget +Mode4\splitter\side1\side0\side0\gadget\activeConfiguration=Attitude +Mode4\splitter\side1\side0\side1\type=uavGadget +Mode4\splitter\side1\side0\side1\classId=ScopeGadget +Mode4\splitter\side1\side0\side1\gadget\activeConfiguration=Uptimes Mode4\splitter\side1\side1\type=uavGadget +Mode4\splitter\side1\side1\classId=LoggingGadget Mode5\version=UAVGadgetManagerV1 Mode5\showToolbars=false Mode5\splitter\type=splitter @@ -147,138 +272,13 @@ Mode5\splitter\side0\side1\side1\side0\side1\classId=LineardialGadget Mode5\splitter\side0\side1\side1\side0\side1\gadget\activeConfiguration=PitchActual Mode5\splitter\side0\side1\side1\side1\type=uavGadget Mode5\splitter\side0\side1\side1\side1\classId=LineardialGadget -Mode5\splitter\side0\side1\side1\side1\gadget\activeConfiguration=PitchCommand +Mode5\splitter\side0\side1\side1\side1\gadget\activeConfiguration=Pitch Mode5\splitter\side1\type=uavGadget Mode5\splitter\side1\classId=UAVObjectBrowser Mode5\splitter\side1\gadget\activeConfiguration=default -Mode1\splitter\side0\side0\side0\splitterOrientation=2 -Mode1\splitter\side0\side0\side0\splitterSizes=215, 237 -Mode1\splitter\side0\side0\side0\side0\type=splitter -Mode1\splitter\side0\side0\side0\side1\type=splitter -Mode1\splitter\side0\side0\side0\side1\splitterOrientation=2 -Mode1\splitter\side0\side0\side0\side1\splitterSizes=@Invalid() -Mode1\splitter\side0\side0\side0\side1\side0\type=uavGadget -Mode1\splitter\side0\side0\side0\side1\side0\classId=LineardialGadget -Mode1\splitter\side0\side0\side0\side1\side0\gadget\activeConfiguration=Flight mode -Mode1\splitter\side0\side0\side0\side1\side1\type=uavGadget -Mode1\splitter\side0\side0\side0\side1\side1\classId=LineardialGadget -Mode1\splitter\side0\side0\side0\side1\side1\gadget\activeConfiguration=Arm Status -Mode1\splitter\side1\side0\classId=OPMapGadget -Mode1\splitter\side1\side0\gadget\activeConfiguration=Google Sat -Mode1\splitter\side1\side1\side0\splitterOrientation=1 -Mode1\splitter\side1\side1\side0\splitterSizes=277, 135 -Mode1\splitter\side1\side1\side0\side0\type=splitter -Mode1\splitter\side1\side1\side0\side1\type=splitter -Mode1\splitter\side0\side1\splitterOrientation=1 -Mode1\splitter\side0\side1\splitterSizes=304, 433 -Mode1\splitter\side0\side1\side0\type=uavGadget -Mode1\splitter\side0\side1\side1\type=splitter -Mode1\splitter\side0\side1\side1\splitterOrientation=2 -Mode1\splitter\side0\side1\side1\splitterSizes=293, 64 -Mode1\splitter\side0\side1\side1\side0\type=splitter -Mode1\splitter\side0\side1\side1\side1\type=splitter -Mode1\splitter\side1\side1\side0\side0\splitterOrientation=1 -Mode1\splitter\side1\side1\side0\side0\splitterSizes=131, 138 -Mode1\splitter\side1\side1\side0\side0\side0\type=splitter -Mode1\splitter\side1\side1\side0\side0\side1\type=splitter -Mode1\splitter\side0\side1\side0\classId=ModelViewGadget -Mode1\splitter\side0\side1\side0\gadget\activeConfiguration=Test Quad X -Mode1\splitter\side0\side1\side1\side0\splitterOrientation=1 -Mode1\splitter\side0\side1\side1\side0\splitterSizes=291, 141 -Mode1\splitter\side0\side1\side1\side0\side0\type=uavGadget -Mode1\splitter\side0\side1\side1\side0\side0\classId=SystemHealthGadget -Mode1\splitter\side0\side1\side1\side0\side0\gadget\activeConfiguration=default -Mode1\splitter\side0\side1\side1\side0\side1\type=splitter -Mode1\splitter\side0\side1\side1\side1\splitterOrientation=1 -Mode1\splitter\side0\side1\side1\side1\splitterSizes=@Invalid() -Mode1\splitter\side0\side1\side1\side1\side0\type=uavGadget -Mode1\splitter\side0\side1\side1\side1\side0\classId=LineardialGadget -Mode1\splitter\side0\side1\side1\side1\side0\gadget\activeConfiguration=Telemetry RX Rate Horizontal -Mode1\splitter\side0\side1\side1\side1\side1\type=uavGadget -Mode1\splitter\side0\side1\side1\side1\side1\classId=LineardialGadget -Mode1\splitter\side0\side1\side1\side1\side1\gadget\activeConfiguration=Telemetry TX Rate Horizontal -Mode1\splitter\side0\side1\side1\side0\side1\splitterOrientation=1 -Mode1\splitter\side0\side1\side1\side0\side1\splitterSizes=64, 64 -Mode1\splitter\side0\side1\side1\side0\side1\side0\type=uavGadget -Mode1\splitter\side0\side1\side1\side0\side1\side0\classId=LineardialGadget -Mode1\splitter\side0\side1\side1\side0\side1\side0\gadget\activeConfiguration=Mainboard CPU -Mode1\splitter\side0\side1\side1\side0\side1\side1\type=uavGadget -Mode1\splitter\side0\side1\side1\side0\side1\side1\classId=LineardialGadget -Mode1\splitter\side0\side1\side1\side0\side1\side1\gadget\activeConfiguration=AHRS CPU -Mode1\splitter\side1\side1\side0\side0\side0\splitterOrientation=2 -Mode1\splitter\side1\side1\side0\side0\side0\splitterSizes=@Invalid() -Mode1\splitter\side1\side1\side0\side0\side0\side0\type=uavGadget -Mode1\splitter\side1\side1\side0\side0\side0\side0\classId=DialGadget -Mode1\splitter\side1\side1\side0\side0\side0\side0\gadget\activeConfiguration=Deluxe Groundspeed kph -Mode1\splitter\side1\side1\side0\side0\side0\side1\type=uavGadget -Mode1\splitter\side1\side1\side0\side0\side0\side1\classId=DialGadget -Mode1\splitter\side1\side1\side0\side0\side0\side1\gadget\activeConfiguration=Deluxe Barometer -Mode1\splitter\side1\side1\side0\side0\side1\splitterOrientation=2 -Mode1\splitter\side1\side1\side0\side0\side1\splitterSizes=@Invalid() -Mode1\splitter\side1\side1\side0\side0\side1\side0\type=uavGadget -Mode1\splitter\side1\side1\side0\side0\side1\side0\classId=DialGadget -Mode1\splitter\side1\side1\side0\side0\side1\side0\gadget\activeConfiguration=Deluxe Attitude -Mode1\splitter\side1\side1\side0\side0\side1\side1\type=uavGadget -Mode1\splitter\side1\side1\side0\side0\side1\side1\classId=DialGadget -Mode1\splitter\side1\side1\side0\side0\side1\side1\gadget\activeConfiguration=Deluxe Compass -Mode1\splitter\side1\side1\side0\side1\splitterOrientation=2 -Mode1\splitter\side1\side1\side0\side1\splitterSizes=@Invalid() -Mode1\splitter\side1\side1\side0\side1\side0\type=uavGadget -Mode1\splitter\side1\side1\side0\side1\side0\classId=DialGadget -Mode1\splitter\side1\side1\side0\side1\side0\gadget\activeConfiguration=Deluxe Baro Altimeter -Mode1\splitter\side1\side1\side0\side1\side1\type=uavGadget -Mode1\splitter\side1\side1\side0\side1\side1\classId=DialGadget -Mode1\splitter\side1\side1\side0\side1\side1\gadget\activeConfiguration=Deluxe Climbrate -Mode1\splitter\side0\side0\side0\side0\splitterOrientation=2 -Mode1\splitter\side0\side0\side0\side0\splitterSizes=@Invalid() -Mode1\splitter\side0\side0\side0\side0\side0\type=uavGadget -Mode1\splitter\side0\side0\side0\side0\side0\classId=LineardialGadget -Mode1\splitter\side0\side0\side0\side0\side0\gadget\activeConfiguration=Flight Time -Mode1\splitter\side0\side0\side0\side0\side1\type=uavGadget -Mode1\splitter\side0\side0\side0\side0\side1\classId=LineardialGadget -Mode1\splitter\side0\side0\side0\side0\side1\gadget\activeConfiguration=GPS Sats -Mode1\splitter\side0\side0\side1\classId=PFDGadget -Mode1\splitter\side0\side0\side1\gadget\activeConfiguration=raw -Mode1\splitter\side1\side1\side1\splitterOrientation=1 -Mode1\splitter\side1\side1\side1\splitterSizes=64, 441 -Mode1\splitter\side1\side1\side1\side0\type=uavGadget -Mode1\splitter\side1\side1\side1\side0\classId=LineardialGadget -Mode1\splitter\side1\side1\side1\side0\gadget\activeConfiguration=Throttle -Mode1\splitter\side1\side1\side1\side1\type=splitter -Mode1\splitter\side1\side1\side1\side1\splitterOrientation=1 -Mode1\splitter\side1\side1\side1\side1\splitterSizes=64, 376 -Mode1\splitter\side1\side1\side1\side1\side0\type=uavGadget -Mode1\splitter\side1\side1\side1\side1\side0\classId=LineardialGadget -Mode1\splitter\side1\side1\side1\side1\side0\gadget\activeConfiguration=Roll -Mode1\splitter\side1\side1\side1\side1\side1\type=splitter -Mode1\splitter\side1\side1\side1\side1\side1\splitterOrientation=1 -Mode1\splitter\side1\side1\side1\side1\side1\splitterSizes=64, 311 -Mode1\splitter\side1\side1\side1\side1\side1\side0\type=uavGadget -Mode1\splitter\side1\side1\side1\side1\side1\side0\classId=LineardialGadget -Mode1\splitter\side1\side1\side1\side1\side1\side0\gadget\activeConfiguration=PitchActual -Mode1\splitter\side1\side1\side1\side1\side1\side1\type=uavGadget -Mode1\splitter\side1\side1\side1\side1\side1\side1\classId=LineardialGadget -Mode1\splitter\side1\side1\side1\side1\side1\side1\gadget\activeConfiguration=Yaw Mode6\version=UAVGadgetManagerV1 Mode6\showToolbars=false Mode6\splitter\type=splitter -Mode4\splitter\side0\splitterOrientation=2 -Mode4\splitter\side0\splitterSizes=@Invalid() -Mode4\splitter\side0\side0\type=uavGadget -Mode4\splitter\side0\side0\classId=ScopeGadget -Mode4\splitter\side0\side0\gadget\activeConfiguration=Accel -Mode4\splitter\side0\side1\type=uavGadget -Mode4\splitter\side0\side1\classId=ScopeGadget -Mode4\splitter\side0\side1\gadget\activeConfiguration=Raw Gyros -Mode4\splitter\side1\side0\splitterOrientation=2 -Mode4\splitter\side1\side0\splitterSizes=390, 270 -Mode4\splitter\side1\side0\side0\type=uavGadget -Mode4\splitter\side1\side0\side0\classId=ScopeGadget -Mode4\splitter\side1\side0\side0\gadget\activeConfiguration=Attitude -Mode4\splitter\side1\side0\side1\type=uavGadget -Mode4\splitter\side1\side0\side1\classId=ScopeGadget -Mode4\splitter\side1\side0\side1\gadget\activeConfiguration=Uptimes -Mode4\splitter\side1\side1\classId=LoggingGadget Mode6\splitter\splitterOrientation=1 Mode6\splitter\splitterSizes=@Invalid() Mode6\splitter\side0\type=uavGadget @@ -288,9 +288,6 @@ Mode6\splitter\side1\type=splitter Mode6\splitter\side1\splitterOrientation=2 Mode6\splitter\side1\splitterSizes=274, 506 Mode6\splitter\side1\side0\type=splitter -Mode6\splitter\side1\side1\type=uavGadget -Mode6\splitter\side1\side1\classId=ScopeGadget -Mode6\splitter\side1\side1\gadget\activeConfiguration=Uptimes Mode6\splitter\side1\side0\splitterOrientation=1 Mode6\splitter\side1\side0\splitterSizes=322, 396 Mode6\splitter\side1\side0\side0\type=uavGadget @@ -299,17 +296,20 @@ Mode6\splitter\side1\side0\side0\gadget\activeConfiguration=default Mode6\splitter\side1\side0\side1\type=uavGadget Mode6\splitter\side1\side0\side1\classId=PFDGadget Mode6\splitter\side1\side0\side1\gadget\activeConfiguration=raw +Mode6\splitter\side1\side1\type=uavGadget +Mode6\splitter\side1\side1\classId=ScopeGadget +Mode6\splitter\side1\side1\gadget\activeConfiguration=Uptimes [KeyBindings] size=0 [%General] SaveSettingsOnExit=true -LastPreferenceCategory=OPMapGadget -LastPreferencePage=default -SettingsWindowWidth=697 -SettingsWindowHeight=476 -OverrideLanguage=en_AU +TerminalEmulator=xterm -e +LastPreferenceCategory=LineardialGadget +LastPreferencePage=PitchCommand +SettingsWindowWidth=780 +SettingsWindowHeight=534 [UAVGadgetConfigurations] configInfo\version=1.2.0 @@ -340,7 +340,7 @@ DialGadget\Attitude\data\needle3Factor=-1 DialGadget\Attitude\data\needle1Move=Rotate DialGadget\Attitude\data\needle2Move=Vertical DialGadget\Attitude\data\needle3Move=Rotate -DialGadget\Attitude\data\font="MS Shell Dlg 2,8.25,-1,5,50,0,0,0,0,0" +DialGadget\Attitude\data\font="Ubuntu,11,-1,5,50,0,0,0,0,0" DialGadget\Attitude\data\useOpenGLFlag=false DialGadget\Attitude\data\beSmooth=false DialGadget\Attitude\configInfo\version=0.0.0 @@ -369,7 +369,7 @@ DialGadget\Baro%20Altimeter\data\needle3Factor=1 DialGadget\Baro%20Altimeter\data\needle1Move=Rotate DialGadget\Baro%20Altimeter\data\needle2Move=Rotate DialGadget\Baro%20Altimeter\data\needle3Move=Rotate -DialGadget\Baro%20Altimeter\data\font="MS Shell Dlg 2,8.25,-1,5,50,0,0,0,0,0" +DialGadget\Baro%20Altimeter\data\font="Ubuntu,11,-1,5,50,0,0,0,0,0" DialGadget\Baro%20Altimeter\data\useOpenGLFlag=false DialGadget\Baro%20Altimeter\data\beSmooth=false DialGadget\Baro%20Altimeter\configInfo\version=0.0.0 @@ -398,7 +398,7 @@ DialGadget\Barometer\data\needle3Factor=1 DialGadget\Barometer\data\needle1Move=Rotate DialGadget\Barometer\data\needle2Move=Rotate DialGadget\Barometer\data\needle3Move=Rotate -DialGadget\Barometer\data\font="MS Shell Dlg 2,8.25,-1,5,50,0,0,0,0,0" +DialGadget\Barometer\data\font="Ubuntu,11,-1,5,50,0,0,0,0,0" DialGadget\Barometer\data\useOpenGLFlag=false DialGadget\Barometer\data\beSmooth=false DialGadget\Barometer\configInfo\version=0.0.0 @@ -427,7 +427,7 @@ DialGadget\Climbrate\data\needle3Factor=1 DialGadget\Climbrate\data\needle1Move=Rotate DialGadget\Climbrate\data\needle2Move=Rotate DialGadget\Climbrate\data\needle3Move=Rotate -DialGadget\Climbrate\data\font="MS Shell Dlg 2,8.25,-1,5,50,0,0,0,0,0" +DialGadget\Climbrate\data\font="Ubuntu,11,-1,5,50,0,0,0,0,0" DialGadget\Climbrate\data\useOpenGLFlag=false DialGadget\Climbrate\data\beSmooth=false DialGadget\Climbrate\configInfo\version=0.0.0 @@ -456,7 +456,7 @@ DialGadget\Compass\data\needle3Factor=1 DialGadget\Compass\data\needle1Move=Rotate DialGadget\Compass\data\needle2Move=Rotate DialGadget\Compass\data\needle3Move=Rotate -DialGadget\Compass\data\font="MS Shell Dlg 2,8.25,-1,5,50,0,0,0,0,0" +DialGadget\Compass\data\font="Ubuntu,11,-1,5,50,0,0,0,0,0" DialGadget\Compass\data\useOpenGLFlag=false DialGadget\Compass\data\beSmooth=false DialGadget\Compass\configInfo\version=0.0.0 @@ -485,7 +485,7 @@ DialGadget\Deluxe%20Attitude\data\needle3Factor=-1 DialGadget\Deluxe%20Attitude\data\needle1Move=Rotate DialGadget\Deluxe%20Attitude\data\needle2Move=Vertical DialGadget\Deluxe%20Attitude\data\needle3Move=Rotate -DialGadget\Deluxe%20Attitude\data\font="MS Shell Dlg 2,8.25,-1,5,50,0,0,0,0,0" +DialGadget\Deluxe%20Attitude\data\font="Ubuntu,11,-1,5,50,0,0,0,0,0" DialGadget\Deluxe%20Attitude\data\useOpenGLFlag=false DialGadget\Deluxe%20Attitude\data\beSmooth=false DialGadget\Deluxe%20Attitude\configInfo\version=0.0.0 @@ -514,7 +514,7 @@ DialGadget\Deluxe%20Baro%20Altimeter\data\needle3Factor=1 DialGadget\Deluxe%20Baro%20Altimeter\data\needle1Move=Rotate DialGadget\Deluxe%20Baro%20Altimeter\data\needle2Move=Rotate DialGadget\Deluxe%20Baro%20Altimeter\data\needle3Move=Rotate -DialGadget\Deluxe%20Baro%20Altimeter\data\font="MS Shell Dlg 2,8.25,-1,5,50,0,0,0,0,0" +DialGadget\Deluxe%20Baro%20Altimeter\data\font="Ubuntu,11,-1,5,50,0,0,0,0,0" DialGadget\Deluxe%20Baro%20Altimeter\data\useOpenGLFlag=false DialGadget\Deluxe%20Baro%20Altimeter\data\beSmooth=false DialGadget\Deluxe%20Baro%20Altimeter\configInfo\version=0.0.0 @@ -543,7 +543,7 @@ DialGadget\Deluxe%20Barometer\data\needle3Factor=1 DialGadget\Deluxe%20Barometer\data\needle1Move=Rotate DialGadget\Deluxe%20Barometer\data\needle2Move=Rotate DialGadget\Deluxe%20Barometer\data\needle3Move=Rotate -DialGadget\Deluxe%20Barometer\data\font="MS Shell Dlg 2,8.25,-1,5,50,0,0,0,0,0" +DialGadget\Deluxe%20Barometer\data\font="Ubuntu,11,-1,5,50,0,0,0,0,0" DialGadget\Deluxe%20Barometer\data\useOpenGLFlag=false DialGadget\Deluxe%20Barometer\data\beSmooth=false DialGadget\Deluxe%20Barometer\configInfo\version=0.0.0 @@ -572,7 +572,7 @@ DialGadget\Deluxe%20Climbrate\data\needle3Factor=1 DialGadget\Deluxe%20Climbrate\data\needle1Move=Rotate DialGadget\Deluxe%20Climbrate\data\needle2Move=Rotate DialGadget\Deluxe%20Climbrate\data\needle3Move=Rotate -DialGadget\Deluxe%20Climbrate\data\font="MS Shell Dlg 2,8.25,-1,5,50,0,0,0,0,0" +DialGadget\Deluxe%20Climbrate\data\font="Ubuntu,11,-1,5,50,0,0,0,0,0" DialGadget\Deluxe%20Climbrate\data\useOpenGLFlag=false DialGadget\Deluxe%20Climbrate\data\beSmooth=false DialGadget\Deluxe%20Climbrate\configInfo\version=0.0.0 @@ -601,7 +601,7 @@ DialGadget\Deluxe%20Compass\data\needle3Factor=1 DialGadget\Deluxe%20Compass\data\needle1Move=Rotate DialGadget\Deluxe%20Compass\data\needle2Move=Rotate DialGadget\Deluxe%20Compass\data\needle3Move=Rotate -DialGadget\Deluxe%20Compass\data\font="MS Shell Dlg 2,8.25,-1,5,50,0,0,0,0,0" +DialGadget\Deluxe%20Compass\data\font="Ubuntu,11,-1,5,50,0,0,0,0,0" DialGadget\Deluxe%20Compass\data\useOpenGLFlag=false DialGadget\Deluxe%20Compass\data\beSmooth=false DialGadget\Deluxe%20Compass\configInfo\version=0.0.0 @@ -630,7 +630,7 @@ DialGadget\Deluxe%20Groundspeed%20kph\data\needle3Factor=1 DialGadget\Deluxe%20Groundspeed%20kph\data\needle1Move=Rotate DialGadget\Deluxe%20Groundspeed%20kph\data\needle2Move=Rotate DialGadget\Deluxe%20Groundspeed%20kph\data\needle3Move=Rotate -DialGadget\Deluxe%20Groundspeed%20kph\data\font="MS Shell Dlg 2,8.25,-1,5,50,0,0,0,0,0" +DialGadget\Deluxe%20Groundspeed%20kph\data\font="Ubuntu,11,-1,5,50,0,0,0,0,0" DialGadget\Deluxe%20Groundspeed%20kph\data\useOpenGLFlag=false DialGadget\Deluxe%20Groundspeed%20kph\data\beSmooth=false DialGadget\Deluxe%20Groundspeed%20kph\configInfo\version=0.0.0 @@ -659,7 +659,7 @@ DialGadget\Deluxe%20Temperature\data\needle3Factor=1 DialGadget\Deluxe%20Temperature\data\needle1Move=Rotate DialGadget\Deluxe%20Temperature\data\needle2Move=Rotate DialGadget\Deluxe%20Temperature\data\needle3Move=Rotate -DialGadget\Deluxe%20Temperature\data\font="MS Shell Dlg 2,8.25,-1,5,50,0,0,0,0,0" +DialGadget\Deluxe%20Temperature\data\font="Ubuntu,11,-1,5,50,0,0,0,0,0" DialGadget\Deluxe%20Temperature\data\useOpenGLFlag=false DialGadget\Deluxe%20Temperature\data\beSmooth=false DialGadget\Deluxe%20Temperature\configInfo\version=0.0.0 @@ -688,7 +688,7 @@ DialGadget\Deluxe%20Turn%20Coordinator\data\needle3Factor=-1 DialGadget\Deluxe%20Turn%20Coordinator\data\needle1Move=Rotate DialGadget\Deluxe%20Turn%20Coordinator\data\needle2Move=Horizontal DialGadget\Deluxe%20Turn%20Coordinator\data\needle3Move=Rotate -DialGadget\Deluxe%20Turn%20Coordinator\data\font="MS Shell Dlg 2,8.25,-1,5,50,0,0,0,0,0" +DialGadget\Deluxe%20Turn%20Coordinator\data\font="Ubuntu,11,-1,5,50,0,0,0,0,0" DialGadget\Deluxe%20Turn%20Coordinator\data\useOpenGLFlag=false DialGadget\Deluxe%20Turn%20Coordinator\data\beSmooth=false DialGadget\Deluxe%20Turn%20Coordinator\configInfo\version=0.0.0 @@ -717,7 +717,7 @@ DialGadget\Groundspeed%20kph\data\needle3Factor=1 DialGadget\Groundspeed%20kph\data\needle1Move=Rotate DialGadget\Groundspeed%20kph\data\needle2Move=Rotate DialGadget\Groundspeed%20kph\data\needle3Move=Rotate -DialGadget\Groundspeed%20kph\data\font="MS Shell Dlg 2,8.25,-1,5,50,0,0,0,0,0" +DialGadget\Groundspeed%20kph\data\font="Ubuntu,11,-1,5,50,0,0,0,0,0" DialGadget\Groundspeed%20kph\data\useOpenGLFlag=false DialGadget\Groundspeed%20kph\data\beSmooth=false DialGadget\Groundspeed%20kph\configInfo\version=0.0.0 @@ -746,7 +746,7 @@ DialGadget\HiContrast%20Attitude\data\needle3Factor=-1 DialGadget\HiContrast%20Attitude\data\needle1Move=Rotate DialGadget\HiContrast%20Attitude\data\needle2Move=Vertical DialGadget\HiContrast%20Attitude\data\needle3Move=Rotate -DialGadget\HiContrast%20Attitude\data\font="MS Shell Dlg 2,8.25,-1,5,50,0,0,0,0,0" +DialGadget\HiContrast%20Attitude\data\font="Ubuntu,11,-1,5,50,0,0,0,0,0" DialGadget\HiContrast%20Attitude\data\useOpenGLFlag=false DialGadget\HiContrast%20Attitude\data\beSmooth=false DialGadget\HiContrast%20Attitude\configInfo\version=0.0.0 @@ -775,7 +775,7 @@ DialGadget\HiContrast%20Baro%20Altimeter\data\needle3Factor=1 DialGadget\HiContrast%20Baro%20Altimeter\data\needle1Move=Rotate DialGadget\HiContrast%20Baro%20Altimeter\data\needle2Move=Rotate DialGadget\HiContrast%20Baro%20Altimeter\data\needle3Move=Rotate -DialGadget\HiContrast%20Baro%20Altimeter\data\font="MS Shell Dlg 2,8.25,-1,5,50,0,0,0,0,0" +DialGadget\HiContrast%20Baro%20Altimeter\data\font="Ubuntu,11,-1,5,50,0,0,0,0,0" DialGadget\HiContrast%20Baro%20Altimeter\data\useOpenGLFlag=false DialGadget\HiContrast%20Baro%20Altimeter\data\beSmooth=false DialGadget\HiContrast%20Baro%20Altimeter\configInfo\version=0.0.0 @@ -804,7 +804,7 @@ DialGadget\HiContrast%20Barometer\data\needle3Factor=1 DialGadget\HiContrast%20Barometer\data\needle1Move=Rotate DialGadget\HiContrast%20Barometer\data\needle2Move=Rotate DialGadget\HiContrast%20Barometer\data\needle3Move=Rotate -DialGadget\HiContrast%20Barometer\data\font="MS Shell Dlg 2,8.25,-1,5,50,0,0,0,0,0" +DialGadget\HiContrast%20Barometer\data\font="Ubuntu,11,-1,5,50,0,0,0,0,0" DialGadget\HiContrast%20Barometer\data\useOpenGLFlag=false DialGadget\HiContrast%20Barometer\data\beSmooth=false DialGadget\HiContrast%20Barometer\configInfo\version=0.0.0 @@ -833,7 +833,7 @@ DialGadget\HiContrast%20Climbrate\data\needle3Factor=1 DialGadget\HiContrast%20Climbrate\data\needle1Move=Rotate DialGadget\HiContrast%20Climbrate\data\needle2Move=Rotate DialGadget\HiContrast%20Climbrate\data\needle3Move=Rotate -DialGadget\HiContrast%20Climbrate\data\font="MS Shell Dlg 2,8.25,-1,5,50,0,0,0,0,0" +DialGadget\HiContrast%20Climbrate\data\font="Ubuntu,11,-1,5,50,0,0,0,0,0" DialGadget\HiContrast%20Climbrate\data\useOpenGLFlag=false DialGadget\HiContrast%20Climbrate\data\beSmooth=false DialGadget\HiContrast%20Climbrate\configInfo\version=0.0.0 @@ -862,7 +862,7 @@ DialGadget\HiContrast%20Compass\data\needle3Factor=1 DialGadget\HiContrast%20Compass\data\needle1Move=Rotate DialGadget\HiContrast%20Compass\data\needle2Move=Rotate DialGadget\HiContrast%20Compass\data\needle3Move=Rotate -DialGadget\HiContrast%20Compass\data\font="MS Shell Dlg 2,8.25,-1,5,50,0,0,0,0,0" +DialGadget\HiContrast%20Compass\data\font="Ubuntu,11,-1,5,50,0,0,0,0,0" DialGadget\HiContrast%20Compass\data\useOpenGLFlag=false DialGadget\HiContrast%20Compass\data\beSmooth=false DialGadget\HiContrast%20Compass\configInfo\version=0.0.0 @@ -891,7 +891,7 @@ DialGadget\HiContrast%20Groundspeed%20kph\data\needle3Factor=1 DialGadget\HiContrast%20Groundspeed%20kph\data\needle1Move=Rotate DialGadget\HiContrast%20Groundspeed%20kph\data\needle2Move=Rotate DialGadget\HiContrast%20Groundspeed%20kph\data\needle3Move=Rotate -DialGadget\HiContrast%20Groundspeed%20kph\data\font="MS Shell Dlg 2,8.25,-1,5,50,0,0,0,0,0" +DialGadget\HiContrast%20Groundspeed%20kph\data\font="Ubuntu,11,-1,5,50,0,0,0,0,0" DialGadget\HiContrast%20Groundspeed%20kph\data\useOpenGLFlag=false DialGadget\HiContrast%20Groundspeed%20kph\data\beSmooth=false DialGadget\HiContrast%20Groundspeed%20kph\configInfo\version=0.0.0 @@ -920,7 +920,7 @@ DialGadget\HiContrast%20Temperature\data\needle3Factor=1 DialGadget\HiContrast%20Temperature\data\needle1Move=Rotate DialGadget\HiContrast%20Temperature\data\needle2Move=Rotate DialGadget\HiContrast%20Temperature\data\needle3Move=Rotate -DialGadget\HiContrast%20Temperature\data\font="MS Shell Dlg 2,8.25,-1,5,50,0,0,0,0,0" +DialGadget\HiContrast%20Temperature\data\font="Ubuntu,11,-1,5,50,0,0,0,0,0" DialGadget\HiContrast%20Temperature\data\useOpenGLFlag=false DialGadget\HiContrast%20Temperature\data\beSmooth=false DialGadget\HiContrast%20Temperature\configInfo\version=0.0.0 @@ -949,7 +949,7 @@ DialGadget\Servo%20Channel%201\data\needle3Factor=1 DialGadget\Servo%20Channel%201\data\needle1Move=Rotate DialGadget\Servo%20Channel%201\data\needle2Move=Rotate DialGadget\Servo%20Channel%201\data\needle3Move=Rotate -DialGadget\Servo%20Channel%201\data\font="MS Shell Dlg 2,8.25,-1,5,50,0,0,0,0,0" +DialGadget\Servo%20Channel%201\data\font="Ubuntu,11,-1,5,50,0,0,0,0,0" DialGadget\Servo%20Channel%201\data\useOpenGLFlag=false DialGadget\Servo%20Channel%201\data\beSmooth=false DialGadget\Servo%20Channel%201\configInfo\version=0.0.0 @@ -978,7 +978,7 @@ DialGadget\Temperature\data\needle3Factor=1 DialGadget\Temperature\data\needle1Move=Rotate DialGadget\Temperature\data\needle2Move=Rotate DialGadget\Temperature\data\needle3Move=Rotate -DialGadget\Temperature\data\font="MS Shell Dlg 2,8.25,-1,5,50,0,0,0,0,0" +DialGadget\Temperature\data\font="Ubuntu,11,-1,5,50,0,0,0,0,0" DialGadget\Temperature\data\useOpenGLFlag=false DialGadget\Temperature\data\beSmooth=false DialGadget\Temperature\configInfo\version=0.0.0 @@ -1027,7 +1027,7 @@ GpsDisplayGadget\Flight%20GPS\data\defaultDataBits=3 GpsDisplayGadget\Flight%20GPS\data\defaultFlow=0 GpsDisplayGadget\Flight%20GPS\data\defaultParity=0 GpsDisplayGadget\Flight%20GPS\data\defaultStopBits=0 -GpsDisplayGadget\Flight%20GPS\data\defaultPort=Communications Port (COM1) +GpsDisplayGadget\Flight%20GPS\data\defaultPort=Serial port 0 GpsDisplayGadget\Flight%20GPS\data\connectionMode=Telemetry GpsDisplayGadget\Flight%20GPS\configInfo\version=0.0.0 GpsDisplayGadget\Flight%20GPS\configInfo\locked=false @@ -1036,7 +1036,7 @@ GpsDisplayGadget\GPS%20Mouse\data\defaultDataBits=3 GpsDisplayGadget\GPS%20Mouse\data\defaultFlow=0 GpsDisplayGadget\GPS%20Mouse\data\defaultParity=0 GpsDisplayGadget\GPS%20Mouse\data\defaultStopBits=0 -GpsDisplayGadget\GPS%20Mouse\data\defaultPort=Communications Port (COM1) +GpsDisplayGadget\GPS%20Mouse\data\defaultPort=Serial port 0 GpsDisplayGadget\GPS%20Mouse\data\connectionMode=Serial GpsDisplayGadget\GPS%20Mouse\configInfo\version=0.0.0 GpsDisplayGadget\GPS%20Mouse\configInfo\locked=false @@ -1256,23 +1256,6 @@ LineardialGadget\PitchActual\data\factor=1 LineardialGadget\PitchActual\data\useOpenGLFlag=false LineardialGadget\PitchActual\configInfo\version=0.0.0 LineardialGadget\PitchActual\configInfo\locked=false -LineardialGadget\PitchCommand\data\dFile=%%DATAPATH%%dials/default/lineardial-vertical.svg -LineardialGadget\PitchCommand\data\sourceDataObject=ManualControlCommand -LineardialGadget\PitchCommand\data\sourceObjectField=Pitch -LineardialGadget\PitchCommand\data\minValue=-1 -LineardialGadget\PitchCommand\data\maxValue=1 -LineardialGadget\PitchCommand\data\redMin=0 -LineardialGadget\PitchCommand\data\redMax=1 -LineardialGadget\PitchCommand\data\yellowMin=0.1 -LineardialGadget\PitchCommand\data\yellowMax=0.9 -LineardialGadget\PitchCommand\data\greenMin=0.3 -LineardialGadget\PitchCommand\data\greenMax=0.8 -LineardialGadget\PitchCommand\data\font="Andale Mono,12,-1,5,75,0,0,0,0,0" -LineardialGadget\PitchCommand\data\decimalPlaces=2 -LineardialGadget\PitchCommand\data\factor=1 -LineardialGadget\PitchCommand\data\useOpenGLFlag=false -LineardialGadget\PitchCommand\configInfo\version=0.0.0 -LineardialGadget\PitchCommand\configInfo\locked=false LineardialGadget\PitchDesired\data\dFile=%%DATAPATH%%dials/default/lineardial-vertical.svg LineardialGadget\PitchDesired\data\sourceDataObject=ActuatorDesired LineardialGadget\PitchDesired\data\sourceObjectField=Pitch @@ -1293,14 +1276,14 @@ LineardialGadget\PitchDesired\configInfo\locked=false LineardialGadget\Roll\data\dFile=%%DATAPATH%%dials/default/lineardial-vertical.svg LineardialGadget\Roll\data\sourceDataObject=ManualControlCommand LineardialGadget\Roll\data\sourceObjectField=Roll -LineardialGadget\Roll\data\minValue=0 +LineardialGadget\Roll\data\minValue=-1 LineardialGadget\Roll\data\maxValue=1 -LineardialGadget\Roll\data\redMin=0 +LineardialGadget\Roll\data\redMin=-1 LineardialGadget\Roll\data\redMax=1 -LineardialGadget\Roll\data\yellowMin=0.1 -LineardialGadget\Roll\data\yellowMax=0.9 -LineardialGadget\Roll\data\greenMin=0.3 -LineardialGadget\Roll\data\greenMax=0.8 +LineardialGadget\Roll\data\yellowMin=-0.8 +LineardialGadget\Roll\data\yellowMax=0.8 +LineardialGadget\Roll\data\greenMin=-0.5 +LineardialGadget\Roll\data\greenMax=0.5 LineardialGadget\Roll\data\font="Andale Mono,12,-1,5,75,0,0,0,0,0" LineardialGadget\Roll\data\decimalPlaces=2 LineardialGadget\Roll\data\factor=1 @@ -1346,12 +1329,12 @@ LineardialGadget\Throttle\data\sourceDataObject=ManualControlCommand LineardialGadget\Throttle\data\sourceObjectField=Throttle LineardialGadget\Throttle\data\minValue=0 LineardialGadget\Throttle\data\maxValue=1 -LineardialGadget\Throttle\data\redMin=0 +LineardialGadget\Throttle\data\redMin=0.75 LineardialGadget\Throttle\data\redMax=1 -LineardialGadget\Throttle\data\yellowMin=0.1 -LineardialGadget\Throttle\data\yellowMax=0.9 -LineardialGadget\Throttle\data\greenMin=0.3 -LineardialGadget\Throttle\data\greenMax=0.8 +LineardialGadget\Throttle\data\yellowMin=0.5 +LineardialGadget\Throttle\data\yellowMax=0.75 +LineardialGadget\Throttle\data\greenMin=0 +LineardialGadget\Throttle\data\greenMax=0.5 LineardialGadget\Throttle\data\font="Andale Mono,12,-1,5,75,0,0,0,0,0" LineardialGadget\Throttle\data\decimalPlaces=2 LineardialGadget\Throttle\data\factor=1 @@ -1361,14 +1344,14 @@ LineardialGadget\Throttle\configInfo\locked=false LineardialGadget\Yaw\data\dFile=%%DATAPATH%%dials/default/lineardial-vertical.svg LineardialGadget\Yaw\data\sourceDataObject=ManualControlCommand LineardialGadget\Yaw\data\sourceObjectField=Yaw -LineardialGadget\Yaw\data\minValue=0 +LineardialGadget\Yaw\data\minValue=-1 LineardialGadget\Yaw\data\maxValue=1 -LineardialGadget\Yaw\data\redMin=0 +LineardialGadget\Yaw\data\redMin=-1 LineardialGadget\Yaw\data\redMax=1 -LineardialGadget\Yaw\data\yellowMin=0.1 -LineardialGadget\Yaw\data\yellowMax=0.9 -LineardialGadget\Yaw\data\greenMin=0.3 -LineardialGadget\Yaw\data\greenMax=0.8 +LineardialGadget\Yaw\data\yellowMin=-0.8 +LineardialGadget\Yaw\data\yellowMax=0.8 +LineardialGadget\Yaw\data\greenMin=-0.5 +LineardialGadget\Yaw\data\greenMax=0.5 LineardialGadget\Yaw\data\font="Andale Mono,12,-1,5,75,0,0,0,0,0" LineardialGadget\Yaw\data\decimalPlaces=2 LineardialGadget\Yaw\data\factor=1 @@ -1439,24 +1422,41 @@ OPMapGadget\Google%20Sat\data\mapProvider=GoogleSatellite OPMapGadget\Google%20Sat\data\defaultZoom=2 OPMapGadget\Google%20Sat\data\defaultLatitude=0 OPMapGadget\Google%20Sat\data\defaultLongitude=0 -OPMapGadget\Google%20Sat\data\useOpenGL=true +OPMapGadget\Google%20Sat\data\useOpenGL=false OPMapGadget\Google%20Sat\data\showTileGridLines=false OPMapGadget\Google%20Sat\data\accessMode=ServerAndCache OPMapGadget\Google%20Sat\data\useMemoryCache=true OPMapGadget\Google%20Sat\data\uavSymbol=mapquad.png -OPMapGadget\Google%20Sat\data\cacheLocation= +LineardialGadget\Pitch\data\dFile=%%DATAPATH%%dials/default/lineardial-vertical.svg +LineardialGadget\Pitch\data\sourceDataObject=ManualControlCommand +LineardialGadget\Pitch\data\sourceObjectField=Pitch +LineardialGadget\Pitch\data\minValue=-1 +LineardialGadget\Pitch\data\maxValue=1 +LineardialGadget\Pitch\data\redMin=-1 +LineardialGadget\Pitch\data\redMax=1 +LineardialGadget\Pitch\data\yellowMin=-0.8 +LineardialGadget\Pitch\data\yellowMax=0.8 +LineardialGadget\Pitch\data\greenMin=-0.5 +LineardialGadget\Pitch\data\greenMax=0.5 +LineardialGadget\Pitch\data\font="Andale Mono,12,-1,5,75,0,0,0,0,0" +LineardialGadget\Pitch\data\decimalPlaces=2 +LineardialGadget\Pitch\data\factor=1 +LineardialGadget\Pitch\data\useOpenGLFlag=false +LineardialGadget\Pitch\configInfo\version=0.0.0 +LineardialGadget\Pitch\configInfo\locked=false +OPMapGadget\Google%20Sat\data\cacheLocation=%%STOREPATH%%mapscache/ OPMapGadget\Google%20Sat\configInfo\version=0.0.0 OPMapGadget\Google%20Sat\configInfo\locked=false OPMapGadget\Memory%20Only\data\mapProvider=GoogleMap OPMapGadget\Memory%20Only\data\defaultZoom=2 OPMapGadget\Memory%20Only\data\defaultLatitude=0 OPMapGadget\Memory%20Only\data\defaultLongitude=0 -OPMapGadget\Memory%20Only\data\useOpenGL=true +OPMapGadget\Memory%20Only\data\useOpenGL=false OPMapGadget\Memory%20Only\data\showTileGridLines=false OPMapGadget\Memory%20Only\data\accessMode=CacheOnly OPMapGadget\Memory%20Only\data\useMemoryCache=true OPMapGadget\Memory%20Only\data\uavSymbol=airplanepip.png -OPMapGadget\Memory%20Only\data\cacheLocation= +OPMapGadget\Memory%20Only\data\cacheLocation=%%STOREPATH%%mapscache/ OPMapGadget\Memory%20Only\configInfo\version=0.0.0 OPMapGadget\Memory%20Only\configInfo\locked=false OPMapGadget\default\data\mapProvider=GoogleMap @@ -1468,7 +1468,7 @@ OPMapGadget\default\data\showTileGridLines=false OPMapGadget\default\data\accessMode=ServerAndCache OPMapGadget\default\data\useMemoryCache=true OPMapGadget\default\data\uavSymbol=mapquad.png -OPMapGadget\default\data\cacheLocation= +OPMapGadget\default\data\cacheLocation=%%STOREPATH%%mapscache/ OPMapGadget\default\configInfo\version=0.0.0 OPMapGadget\default\configInfo\locked=false PFDGadget\raw\data\dialFile=%%DATAPATH%%pfd/default/pfd.svg diff --git a/ground/openpilotgcs/src/plugins/gcscontrol/gcscontrolgadgetwidget.cpp b/ground/openpilotgcs/src/plugins/gcscontrol/gcscontrolgadgetwidget.cpp index 287479d8d..d266ec18b 100644 --- a/ground/openpilotgcs/src/plugins/gcscontrol/gcscontrolgadgetwidget.cpp +++ b/ground/openpilotgcs/src/plugins/gcscontrol/gcscontrolgadgetwidget.cpp @@ -73,8 +73,10 @@ GCSControlGadgetWidget::GCSControlGadgetWidget(QWidget *parent) : QLabel(parent) rightX = 0; rightY = 0; - m_gcscontrol->widgetLeftStick->enableOpenGL(true); - m_gcscontrol->widgetRightStick->enableOpenGL(true); + // No point enabling OpenGL for the joysticks, and causes + // issues on some computers: +// m_gcscontrol->widgetLeftStick->enableOpenGL(true); +// m_gcscontrol->widgetRightStick->enableOpenGL(true); } GCSControlGadgetWidget::~GCSControlGadgetWidget() From 3d5244c4b817ad617f1dc893010046275168a2f5 Mon Sep 17 00:00:00 2001 From: James Cotton Date: Thu, 12 May 2011 18:57:16 -0500 Subject: [PATCH 005/488] Fix small typo THRSHOLD to THRESHOLD in gps.c --- flight/Modules/GPS/GPS.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/flight/Modules/GPS/GPS.c b/flight/Modules/GPS/GPS.c index 80fb044d9..7d5ce8e5b 100644 --- a/flight/Modules/GPS/GPS.c +++ b/flight/Modules/GPS/GPS.c @@ -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 @@ -154,7 +154,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 From f9212cda7b8268843d74dc0ed8183e3ce0ae13c7 Mon Sep 17 00:00:00 2001 From: elafargue Date: Fri, 13 May 2011 08:24:34 +0200 Subject: [PATCH 006/488] Last minute default settings refinement. CC Attitude UI improvement. --- .../src/plugins/config/ccattitude.ui | 164 +++++++++--------- .../src/plugins/coreplugin/OpenPilotGCS.ini | 98 +++++++---- 2 files changed, 145 insertions(+), 117 deletions(-) diff --git a/ground/openpilotgcs/src/plugins/config/ccattitude.ui b/ground/openpilotgcs/src/plugins/config/ccattitude.ui index b6b00126c..09065ad0f 100644 --- a/ground/openpilotgcs/src/plugins/config/ccattitude.ui +++ b/ground/openpilotgcs/src/plugins/config/ccattitude.ui @@ -6,8 +6,8 @@ 0 0 - 400 - 343 + 415 + 349 @@ -159,86 +159,86 @@ Attitude Calibration - - - - 0 - 20 - 371 - 111 - - - - - 3 - - - - - Place aircraft flat before computing - - - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - Click "Zero Accel Bias" to start - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - - - - Launch horizontal calibration. - - - Zero Accel Bias - - - - - - - 0 - - - - - - - + + + + + 3 + + + + + Place aircraft flat before computing + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Click "Zero Accel Bias" to start + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + 6 + + + 4 + + + + + Launch horizontal calibration. + + + Zero Accel Bias + + + + + + + 0 + + + + + + + + diff --git a/ground/openpilotgcs/src/plugins/coreplugin/OpenPilotGCS.ini b/ground/openpilotgcs/src/plugins/coreplugin/OpenPilotGCS.ini index c9a898c34..a37b328e5 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/OpenPilotGCS.ini +++ b/ground/openpilotgcs/src/plugins/coreplugin/OpenPilotGCS.ini @@ -70,7 +70,6 @@ Mode1\splitter\side0\side1\splitterOrientation=1 Mode1\splitter\side0\side1\splitterSizes=304, 433 Mode1\splitter\side0\side1\side0\type=uavGadget Mode1\splitter\side0\side1\side0\classId=ModelViewGadget -Mode1\splitter\side0\side1\side0\gadget\activeConfiguration=Test Quad X Mode1\splitter\side0\side1\side1\type=splitter Mode1\splitter\side0\side1\side1\splitterOrientation=2 Mode1\splitter\side0\side1\side1\splitterSizes=293, 64 @@ -151,18 +150,18 @@ Mode1\splitter\side1\side1\side1\side1\splitterOrientation=1 Mode1\splitter\side1\side1\side1\side1\splitterSizes=64, 376 Mode1\splitter\side1\side1\side1\side1\side0\type=uavGadget Mode1\splitter\side1\side1\side1\side1\side0\classId=LineardialGadget -Mode1\splitter\side1\side1\side1\side1\side0\gadget\activeConfiguration=Roll +Mode1\splitter\side1\side1\side1\side1\side0\gadget\activeConfiguration=Roll Desired Mode1\splitter\side1\side1\side1\side1\side1\type=splitter Mode1\splitter\side1\side1\side1\side1\side1\splitterOrientation=1 Mode1\splitter\side1\side1\side1\side1\side1\splitterSizes=64, 311 Mode1\splitter\side1\side1\side1\side1\side1\side0\type=uavGadget Mode1\splitter\side1\side1\side1\side1\side1\side0\classId=LineardialGadget -Mode1\splitter\side1\side1\side1\side1\side1\side0\gadget\activeConfiguration=Pitch +Mode1\splitter\side1\side1\side1\side1\side1\side0\gadget\activeConfiguration=Pitch Desired Mode1\splitter\side1\side1\side1\side1\side1\side1\type=uavGadget Mode1\splitter\side1\side1\side1\side1\side1\side1\classId=LineardialGadget -Mode1\splitter\side1\side1\side1\side1\side1\side1\gadget\activeConfiguration=Yaw +Mode1\splitter\side1\side1\side1\side1\side1\side1\gadget\activeConfiguration=Yaw Desired Mode2\version=UAVGadgetManagerV1 -Mode2\showToolbars=true +Mode2\showToolbars=false Mode2\splitter\type=splitter Mode2\splitter\splitterOrientation=1 Mode2\splitter\splitterSizes=734, 631 @@ -181,15 +180,7 @@ Mode2\splitter\side0\side1\side0\gadget\activeConfiguration=Telemetry RX Rate Ho Mode2\splitter\side0\side1\side1\type=uavGadget Mode2\splitter\side0\side1\side1\classId=LineardialGadget Mode2\splitter\side0\side1\side1\gadget\activeConfiguration=Telemetry TX Rate Horizontal -Mode2\splitter\side1\type=splitter -Mode2\splitter\side1\splitterOrientation=2 -Mode2\splitter\side1\splitterSizes=433, 347 -Mode2\splitter\side1\side0\type=uavGadget -Mode2\splitter\side1\side0\classId=UAVObjectBrowser -Mode2\splitter\side1\side0\gadget\activeConfiguration=default -Mode2\splitter\side1\side1\type=uavGadget -Mode2\splitter\side1\side1\classId=GCSControlGadget -Mode2\splitter\side1\side1\gadget\activeConfiguration=MS Sidewinder +Mode2\splitter\side1\type=uavGadget Mode3\version=UAVGadgetManagerV1 Mode3\showToolbars=false Mode3\splitter\type=splitter @@ -203,7 +194,6 @@ Mode3\splitter\side1\splitterOrientation=2 Mode3\splitter\side1\splitterSizes=395, 236 Mode3\splitter\side1\side0\type=uavGadget Mode3\splitter\side1\side0\classId=ModelViewGadget -Mode3\splitter\side1\side0\gadget\activeConfiguration=Test Quad X Mode3\splitter\side1\side1\type=splitter Mode3\splitter\side1\side1\splitterOrientation=1 Mode3\splitter\side1\side1\splitterSizes=@Invalid() @@ -266,7 +256,7 @@ Mode5\splitter\side0\side1\side1\side0\splitterOrientation=1 Mode5\splitter\side0\side1\side1\side0\splitterSizes=@Invalid() Mode5\splitter\side0\side1\side1\side0\side0\type=uavGadget Mode5\splitter\side0\side1\side1\side0\side0\classId=LineardialGadget -Mode5\splitter\side0\side1\side1\side0\side0\gadget\activeConfiguration=PitchDesired +Mode5\splitter\side0\side1\side1\side0\side0\gadget\activeConfiguration=Pitch Desired Mode5\splitter\side0\side1\side1\side0\side1\type=uavGadget Mode5\splitter\side0\side1\side1\side0\side1\classId=LineardialGadget Mode5\splitter\side0\side1\side1\side0\side1\gadget\activeConfiguration=PitchActual @@ -299,6 +289,10 @@ Mode6\splitter\side1\side0\side1\gadget\activeConfiguration=raw Mode6\splitter\side1\side1\type=uavGadget Mode6\splitter\side1\side1\classId=ScopeGadget Mode6\splitter\side1\side1\gadget\activeConfiguration=Uptimes +Mode1\splitter\side0\side1\side0\gadget\activeConfiguration=Test Quad X +Mode2\splitter\side1\classId=UAVObjectBrowser +Mode2\splitter\side1\gadget\activeConfiguration=default +Mode3\splitter\side1\side0\gadget\activeConfiguration=Test Quad X [KeyBindings] size=0 @@ -307,8 +301,8 @@ size=0 SaveSettingsOnExit=true TerminalEmulator=xterm -e LastPreferenceCategory=LineardialGadget -LastPreferencePage=PitchCommand -SettingsWindowWidth=780 +LastPreferencePage=Roll Desired 1 +SettingsWindowWidth=921 SettingsWindowHeight=534 [UAVGadgetConfigurations] @@ -1256,23 +1250,6 @@ LineardialGadget\PitchActual\data\factor=1 LineardialGadget\PitchActual\data\useOpenGLFlag=false LineardialGadget\PitchActual\configInfo\version=0.0.0 LineardialGadget\PitchActual\configInfo\locked=false -LineardialGadget\PitchDesired\data\dFile=%%DATAPATH%%dials/default/lineardial-vertical.svg -LineardialGadget\PitchDesired\data\sourceDataObject=ActuatorDesired -LineardialGadget\PitchDesired\data\sourceObjectField=Pitch -LineardialGadget\PitchDesired\data\minValue=-1 -LineardialGadget\PitchDesired\data\maxValue=1 -LineardialGadget\PitchDesired\data\redMin=0 -LineardialGadget\PitchDesired\data\redMax=1 -LineardialGadget\PitchDesired\data\yellowMin=0.1 -LineardialGadget\PitchDesired\data\yellowMax=0.9 -LineardialGadget\PitchDesired\data\greenMin=0.3 -LineardialGadget\PitchDesired\data\greenMax=0.8 -LineardialGadget\PitchDesired\data\font="Andale Mono,12,-1,5,75,0,0,0,0,0" -LineardialGadget\PitchDesired\data\decimalPlaces=2 -LineardialGadget\PitchDesired\data\factor=1 -LineardialGadget\PitchDesired\data\useOpenGLFlag=false -LineardialGadget\PitchDesired\configInfo\version=0.0.0 -LineardialGadget\PitchDesired\configInfo\locked=false LineardialGadget\Roll\data\dFile=%%DATAPATH%%dials/default/lineardial-vertical.svg LineardialGadget\Roll\data\sourceDataObject=ManualControlCommand LineardialGadget\Roll\data\sourceObjectField=Roll @@ -1444,6 +1421,23 @@ LineardialGadget\Pitch\data\factor=1 LineardialGadget\Pitch\data\useOpenGLFlag=false LineardialGadget\Pitch\configInfo\version=0.0.0 LineardialGadget\Pitch\configInfo\locked=false +LineardialGadget\Pitch%20Desired\data\dFile=%%DATAPATH%%dials/default/lineardial-vertical.svg +LineardialGadget\Pitch%20Desired\data\sourceDataObject=ActuatorDesired +LineardialGadget\Pitch%20Desired\data\sourceObjectField=Pitch +LineardialGadget\Pitch%20Desired\data\minValue=-1 +LineardialGadget\Pitch%20Desired\data\maxValue=1 +LineardialGadget\Pitch%20Desired\data\redMin=-1 +LineardialGadget\Pitch%20Desired\data\redMax=1 +LineardialGadget\Pitch%20Desired\data\yellowMin=-0.8 +LineardialGadget\Pitch%20Desired\data\yellowMax=0.8 +LineardialGadget\Pitch%20Desired\data\greenMin=-0.5 +LineardialGadget\Pitch%20Desired\data\greenMax=0.5 +LineardialGadget\Pitch%20Desired\data\font="Andale Mono,12,-1,5,75,0,0,0,0,0" +LineardialGadget\Pitch%20Desired\data\decimalPlaces=2 +LineardialGadget\Pitch%20Desired\data\factor=1 +LineardialGadget\Pitch%20Desired\data\useOpenGLFlag=false +LineardialGadget\Pitch%20Desired\configInfo\version=0.0.0 +LineardialGadget\Pitch%20Desired\configInfo\locked=false OPMapGadget\Google%20Sat\data\cacheLocation=%%STOREPATH%%mapscache/ OPMapGadget\Google%20Sat\configInfo\version=0.0.0 OPMapGadget\Google%20Sat\configInfo\locked=false @@ -1881,6 +1875,40 @@ Uploader\default\data\defaultStopBits=0 Uploader\default\data\defaultPort=/dev/ttyS0 Uploader\default\configInfo\version=0.0.0 Uploader\default\configInfo\locked=false +LineardialGadget\Roll%20Desired\data\dFile=%%DATAPATH%%dials/default/lineardial-vertical.svg +LineardialGadget\Roll%20Desired\data\sourceDataObject=ActuatorDesired +LineardialGadget\Roll%20Desired\data\sourceObjectField=Roll +LineardialGadget\Roll%20Desired\data\minValue=-1 +LineardialGadget\Roll%20Desired\data\maxValue=1 +LineardialGadget\Roll%20Desired\data\redMin=-1 +LineardialGadget\Roll%20Desired\data\redMax=1 +LineardialGadget\Roll%20Desired\data\yellowMin=-0.8 +LineardialGadget\Roll%20Desired\data\yellowMax=0.8 +LineardialGadget\Roll%20Desired\data\greenMin=-0.5 +LineardialGadget\Roll%20Desired\data\greenMax=0.5 +LineardialGadget\Roll%20Desired\data\font="Andale Mono,12,-1,5,75,0,0,0,0,0" +LineardialGadget\Roll%20Desired\data\decimalPlaces=2 +LineardialGadget\Roll%20Desired\data\factor=1 +LineardialGadget\Roll%20Desired\data\useOpenGLFlag=false +LineardialGadget\Roll%20Desired\configInfo\version=0.0.0 +LineardialGadget\Roll%20Desired\configInfo\locked=false +LineardialGadget\Yaw%20Desired\data\dFile=%%DATAPATH%%dials/default/lineardial-vertical.svg +LineardialGadget\Yaw%20Desired\data\sourceDataObject=ActuatorDesired +LineardialGadget\Yaw%20Desired\data\sourceObjectField=Yaw +LineardialGadget\Yaw%20Desired\data\minValue=-1 +LineardialGadget\Yaw%20Desired\data\maxValue=1 +LineardialGadget\Yaw%20Desired\data\redMin=-1 +LineardialGadget\Yaw%20Desired\data\redMax=1 +LineardialGadget\Yaw%20Desired\data\yellowMin=-0.8 +LineardialGadget\Yaw%20Desired\data\yellowMax=0.8 +LineardialGadget\Yaw%20Desired\data\greenMin=-0.5 +LineardialGadget\Yaw%20Desired\data\greenMax=0.5 +LineardialGadget\Yaw%20Desired\data\font="Andale Mono,12,-1,5,75,0,0,0,0,0" +LineardialGadget\Yaw%20Desired\data\decimalPlaces=2 +LineardialGadget\Yaw%20Desired\data\factor=1 +LineardialGadget\Yaw%20Desired\data\useOpenGLFlag=false +LineardialGadget\Yaw%20Desired\configInfo\version=0.0.0 +LineardialGadget\Yaw%20Desired\configInfo\locked=false [Plugins] SoundNotifyPlugin\data\Current\1\SoundCollectionPath=%%DATAPATH%%sounds From 3964b97ae551d0bbdda7e9464ce29e40ba2c9a93 Mon Sep 17 00:00:00 2001 From: Oleg Semyonov Date: Mon, 9 May 2011 02:56:52 +0300 Subject: [PATCH 007/488] OP-483: Update Windows build environment subdirectory USE_BOOTLOADER now deprecated and removed. Scripts are moved into the same subdirectories like in msysGit. Added make.sh script (for advanced usage scenario). Few misprints are fixed. --- make/winx86/README.txt | 10 +++++----- make/winx86/{ => bin}/make | 0 make/winx86/cmd/make.sh | 1 + make/winx86/{ => cmd}/sh.cmd | 0 4 files changed, 6 insertions(+), 5 deletions(-) rename make/winx86/{ => bin}/make (100%) create mode 100644 make/winx86/cmd/make.sh rename make/winx86/{ => cmd}/sh.cmd (100%) diff --git a/make/winx86/README.txt b/make/winx86/README.txt index 9677e9368..6024dd118 100644 --- a/make/winx86/README.txt +++ b/make/winx86/README.txt @@ -46,8 +46,8 @@ Now you need to copy two files to your msysGit installation folders. Assuming that you installed the msysGit into C:\Program Files\Git\, you have to copy: - make\winx86\make -> C:\Program Files\Git\bin\ - make\winx86\sh.cmd -> C:\Program Files\Git\cmd\ + make\winx86\bin\make -> C:\Program Files\Git\bin\ + make\winx86\cmd\sh.cmd -> C:\Program Files\Git\cmd\ If you have msysGit installed into another directory, you need to update paths accordingly. Also if you have tools installed into different directories and @@ -93,7 +93,7 @@ software and flight firmware built in the end. 4) To build parts of the system you can use, for example, such commands: user@pc /d/Work/OpenPilot/git (master) - $ make -j2 USE_BOOTLOADER=YES GCS_BUIL_CONF=release gcs coptercontrol bl_coptercontrol + $ make -j2 GCS_BUILD_CONF=release gcs coptercontrol or to completely remove the build directory: @@ -109,7 +109,7 @@ or to completely remove the build directory: #!/bin/sh # This is the cc_make_release.sh file used to build CC release software cd D:/Work/OpenPilot/git - make -j2 USE_BOOTLOADER=YES GCS_BUIL_CONF=release gcs coptercontrol bl_coptercontrol + make -j2 GCS_BUILD_CONF=release gcs coptercontrol echo RC=$? 2) Run it typing: @@ -170,7 +170,7 @@ to get rid of git bash welcome message on every script invocation. Currently there may be some problems running scripts which contain spaces in file names or located in directories which contain spaces in full paths. -It results in in strange "file not found" or other errors. +It results in strange "file not found" or other errors. It is recommended to avoid using such names with spaces. diff --git a/make/winx86/make b/make/winx86/bin/make similarity index 100% rename from make/winx86/make rename to make/winx86/bin/make diff --git a/make/winx86/cmd/make.sh b/make/winx86/cmd/make.sh new file mode 100644 index 000000000..70ff64114 --- /dev/null +++ b/make/winx86/cmd/make.sh @@ -0,0 +1 @@ +exec /bin/make $* diff --git a/make/winx86/sh.cmd b/make/winx86/cmd/sh.cmd similarity index 100% rename from make/winx86/sh.cmd rename to make/winx86/cmd/sh.cmd From 50f2d0ea76d7a3688beb38b7ca109bc8c09ff6e5 Mon Sep 17 00:00:00 2001 From: Oleg Semyonov Date: Thu, 12 May 2011 23:21:56 +0300 Subject: [PATCH 008/488] OP-483: cleanup: replace ';' by '&&' in top Makefile (shouldn't continue on error) On Windows cd doesn't mean that current directory is as expected since there is also current drive. So in some rare cases mkdir followed by cd doesn't change the directory which can result in Makefile overwrites by qmake, etc. So it is safer to replace ';' by '&&' but need to check if it still works on Windows under cmd or from Qt-Creator. --- Makefile | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Makefile b/Makefile index e7e0bea48..127d031f9 100644 --- a/Makefile +++ b/Makefile @@ -265,8 +265,8 @@ 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 ; \ ) @@ -290,8 +290,8 @@ openpilotgcs_clean: .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 +306,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) ; \ ) From bf8939eb306086470b0fa95b54d20f520b9bbbdd Mon Sep 17 00:00:00 2001 From: Oleg Semyonov Date: Thu, 12 May 2011 23:53:20 +0300 Subject: [PATCH 009/488] OP-483: cleanup: remove unneeded test.bin from BootloaderUpdater --- flight/Bootloaders/BootloaderUpdater/test.bin | Bin 92072 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 flight/Bootloaders/BootloaderUpdater/test.bin diff --git a/flight/Bootloaders/BootloaderUpdater/test.bin b/flight/Bootloaders/BootloaderUpdater/test.bin deleted file mode 100644 index 4b1f21a614c66544a29d2136fd8d551efd74f5f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 92072 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 L{14Iop9%V3m=C Date: Fri, 13 May 2011 11:20:53 +0300 Subject: [PATCH 010/488] OP-483: add install target for firmware make INSTALL_DIR=dir INSTALL_PFX=pfx INSTALL_SFX=sfx install installs binary file into specified install directory adding optional prefix and/or suffix. --- flight/AHRS/Makefile | 12 ++++++++++-- flight/CopterControl/Makefile | 12 ++++++++++-- flight/INS/Makefile | 12 ++++++++++-- flight/OpenPilot/Makefile | 12 ++++++++++-- flight/PipXtreme/Makefile | 11 ++++++++++- make/firmware-defs.mk | 2 ++ 6 files changed, 52 insertions(+), 9 deletions(-) diff --git a/flight/AHRS/Makefile b/flight/AHRS/Makefile index 4b0a6417b..2e4e0ff6b 100644 --- a/flight/AHRS/Makefile +++ b/flight/AHRS/Makefile @@ -399,6 +399,15 @@ size: $(OUTDIR)/$(TARGET).elf_size 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) $(INSTALL) -D $< $(INSTALL_DIR)/$(INSTALL_PFX)$(TARGET)$(INSTALL_SFX).bin +else + $(error INSTALL_DIR must be specified for $@) +endif + # Target: clean project. clean: clean_list @@ -434,6 +443,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 program install diff --git a/flight/CopterControl/Makefile b/flight/CopterControl/Makefile index f499d549a..e7607af74 100644 --- a/flight/CopterControl/Makefile +++ b/flight/CopterControl/Makefile @@ -591,6 +591,15 @@ size: $(OUTDIR)/$(TARGET).elf_size 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) $(INSTALL) -D $< $(INSTALL_DIR)/$(INSTALL_PFX)$(TARGET)$(INSTALL_SFX).bin +else + $(error INSTALL_DIR must be specified for $@) +endif + # Target: clean project. clean: clean_list @@ -630,5 +639,4 @@ else endif # Listing of phony targets. -.PHONY : all build clean clean_list program gencode - +.PHONY : all build clean clean_list program gencode install diff --git a/flight/INS/Makefile b/flight/INS/Makefile index 8e0423a45..5ef6adb86 100644 --- a/flight/INS/Makefile +++ b/flight/INS/Makefile @@ -416,6 +416,15 @@ size: $(OUTDIR)/$(TARGET).elf_size 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) $(INSTALL) -D $< $(INSTALL_DIR)/$(INSTALL_PFX)$(TARGET)$(INSTALL_SFX).bin +else + $(error INSTALL_DIR must be specified for $@) +endif + # Target: clean project. clean: clean_list @@ -450,6 +459,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 program install diff --git a/flight/OpenPilot/Makefile b/flight/OpenPilot/Makefile index 8bb3ed27c..548e6d188 100644 --- a/flight/OpenPilot/Makefile +++ b/flight/OpenPilot/Makefile @@ -570,6 +570,15 @@ size: $(OUTDIR)/$(TARGET).elf_size 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) $(INSTALL) -D $< $(INSTALL_DIR)/$(INSTALL_PFX)$(TARGET)$(INSTALL_SFX).bin +else + $(error INSTALL_DIR must be specified for $@) +endif + # Target: clean project. clean: clean_list @@ -609,5 +618,4 @@ else endif # Listing of phony targets. -.PHONY : all build clean clean_list program gencode - +.PHONY : all build clean clean_list program gencode install diff --git a/flight/PipXtreme/Makefile b/flight/PipXtreme/Makefile index 21d1c3d5a..876678a32 100644 --- a/flight/PipXtreme/Makefile +++ b/flight/PipXtreme/Makefile @@ -439,6 +439,15 @@ size: $(OUTDIR)/$(TARGET).elf_size 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) $(INSTALL) -D $< $(INSTALL_DIR)/$(INSTALL_PFX)$(TARGET)$(INSTALL_SFX).bin +else + $(error INSTALL_DIR must be specified for $@) +endif + # Target: clean project. clean: clean_list @@ -476,4 +485,4 @@ else endif # Listing of phony targets. -.PHONY : all build clean clean_list program +.PHONY : all build clean clean_list program install diff --git a/make/firmware-defs.mk b/make/firmware-defs.mk index f42211c4c..eee2d6e9c 100644 --- a/make/firmware-defs.mk +++ b/make/firmware-defs.mk @@ -10,6 +10,7 @@ OBJDUMP = $(TCHAIN_PREFIX)objdump SIZE = $(TCHAIN_PREFIX)size NM = $(TCHAIN_PREFIX)nm STRIP = $(TCHAIN_PREFIX)strip +INSTALL = install THUMB = -mthumb @@ -43,6 +44,7 @@ MSG_CLEANING := ${quote} CLEAN ${quote} MSG_ASMFROMC := ${quote} AS(C) ${quote} MSG_ASMFROMC_ARM := ${quote} AS(C)-ARM ${quote} MSG_PYMITEINIT := ${quote} PY ${quote} +MSG_INSTALLING := ${quote} INSTALL ${quote} toprel = $(subst $(realpath $(TOP))/,,$(abspath $(1))) From 45c609100a460078ebd6052c81fdaecea59bf67c Mon Sep 17 00:00:00 2001 From: Oleg Semyonov Date: Fri, 13 May 2011 11:22:04 +0300 Subject: [PATCH 011/488] OP-483: add install target for bootloaders --- flight/Bootloaders/AHRS/Makefile | 11 ++++++++++- flight/Bootloaders/CopterControl/Makefile | 19 ++++++++++++++----- flight/Bootloaders/OpenPilot/Makefile | 11 ++++++++++- flight/Bootloaders/PipXtreme/Makefile | 12 ++++++++++-- 4 files changed, 44 insertions(+), 9 deletions(-) diff --git a/flight/Bootloaders/AHRS/Makefile b/flight/Bootloaders/AHRS/Makefile index 24512a5b5..0c8b23882 100644 --- a/flight/Bootloaders/AHRS/Makefile +++ b/flight/Bootloaders/AHRS/Makefile @@ -389,6 +389,15 @@ size: $(OUTDIR)/$(TARGET).elf_size 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) $(INSTALL) -D $< $(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 +435,4 @@ else endif # Listing of phony targets. -.PHONY : all build clean clean_list program +.PHONY : all build clean clean_list program install diff --git a/flight/Bootloaders/CopterControl/Makefile b/flight/Bootloaders/CopterControl/Makefile index 7c7d8e812..74b55cb17 100644 --- a/flight/Bootloaders/CopterControl/Makefile +++ b/flight/Bootloaders/CopterControl/Makefile @@ -428,10 +428,6 @@ $(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 .PHONY: elf lss sym hex bin bino @@ -447,6 +443,19 @@ $(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) $(INSTALL) -D $< $(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 +493,4 @@ else endif # Listing of phony targets. -.PHONY : all build clean clean_list program +.PHONY : all build clean clean_list program install diff --git a/flight/Bootloaders/OpenPilot/Makefile b/flight/Bootloaders/OpenPilot/Makefile index fe9454f5f..292291609 100644 --- a/flight/Bootloaders/OpenPilot/Makefile +++ b/flight/Bootloaders/OpenPilot/Makefile @@ -450,6 +450,15 @@ size: $(OUTDIR)/$(TARGET).elf_size 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) $(INSTALL) -D $< $(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 +496,4 @@ else endif # Listing of phony targets. -.PHONY : all build clean clean_list program +.PHONY : all build clean clean_list program install diff --git a/flight/Bootloaders/PipXtreme/Makefile b/flight/Bootloaders/PipXtreme/Makefile index 32b889e3d..1610ad603 100644 --- a/flight/Bootloaders/PipXtreme/Makefile +++ b/flight/Bootloaders/PipXtreme/Makefile @@ -446,6 +446,15 @@ size: $(OUTDIR)/$(TARGET).elf_size 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) $(INSTALL) -D $< $(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 +492,4 @@ else endif # Listing of phony targets. -.PHONY : all build clean clean_list program - +.PHONY : all build clean clean_list program install From a7833e0120d4d9d818279a2e4f61779b8d480906 Mon Sep 17 00:00:00 2001 From: Oleg Semyonov Date: Fri, 13 May 2011 11:22:35 +0300 Subject: [PATCH 012/488] OP-483: add install target for bootloader updater --- flight/Bootloaders/BootloaderUpdater/Makefile | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/flight/Bootloaders/BootloaderUpdater/Makefile b/flight/Bootloaders/BootloaderUpdater/Makefile index 5f48d327f..17839daac 100644 --- a/flight/Bootloaders/BootloaderUpdater/Makefile +++ b/flight/Bootloaders/BootloaderUpdater/Makefile @@ -410,6 +410,15 @@ size: $(OUTDIR)/$(TARGET).elf_size 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) $(INSTALL) -D $< $(INSTALL_DIR)/$(INSTALL_PFX)$(TARGET)$(INSTALL_SFX).bin +else + $(error INSTALL_DIR must be specified for $@) +endif + # Target: clean project. clean: begin clean_list finished end @@ -430,7 +439,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 +455,4 @@ else endif # Listing of phony targets. -.PHONY : all build clean clean_list program +.PHONY : all build clean clean_list program install From c9fdbd580bc9397102e13806ec8ee6e1d8f9bdeb Mon Sep 17 00:00:00 2001 From: Oleg Semyonov Date: Fri, 13 May 2011 11:47:05 +0300 Subject: [PATCH 013/488] OP-483: initial Makefile, no support for ground and git version info This Makefile should support parallel builds (-j) as much as possible (not an easy task, though). --- release/Makefile | 112 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 release/Makefile diff --git a/release/Makefile b/release/Makefile new file mode 100644 index 000000000..0b64856c2 --- /dev/null +++ b/release/Makefile @@ -0,0 +1,112 @@ +# Set up a default goal +.DEFAULT_GOAL := help + +# Locate the root of the tree +WHEREAMI := $(dir $(lastword $(MAKEFILE_LIST))) +ROOT_DIR := $(realpath $(WHEREAMI)/../) + +# Set up some macros +BUILD_DIR := $(ROOT_DIR)/build +RELEASE_DATE := $(shell date +%Y%m%d) +RELEASE_TAG := unreleased +RELEASE_LBL := $(RELEASE_DATE)-$(RELEASE_TAG) +RELEASE_DIR := $(BUILD_DIR)/release-$(RELEASE_LBL) +FW_DIR := $(RELEASE_DIR)/firmware-$(RELEASE_LBL) +BL_DIR := $(FW_DIR)/bootloaders +BLUPD_DIR := $(FW_DIR)/bootloader_updaters + +# Setup targets +FW_TARGETS_COMMON := ahrs pipxtreme +FW_TARGETS_INPUT := coptercontrol openpilot +FW_TARGETS := $(FW_TARGETS_COMMON) $(FW_TARGETS_INPUT) +BL_TARGETS := $(addprefix bl_, $(FW_TARGETS)) +BLUPD_TARGETS := $(addprefix blupd_, $(FW_TARGETS)) + +help: + @echo + @echo " This Makefile is known to work on Linux and Mac in a standard shell environment." + @echo " It also works on Windows by following the instructions in ../make/winx86/README.txt." + @echo + @echo " Here is a summary of the available targets:" + @echo + @echo " [Release build and packaging]" + @echo " release - Build and package the OpenPilot release" + @echo + @echo " Notes:" + @echo " - the build directory will be removed first on every run" + @echo " - release packages will be placed in $(RELEASE_DIR)" + @echo + +# Clean and create release directories +# Use dependence on uavobjects to make sure the build directory exists +uavobjects: all_clean + $(V1) $(MAKE) -C $(ROOT_DIR) $@ + +all_clean: + $(V1) $(MAKE) -C $(ROOT_DIR) $@ + +# Install template: +# $1 = target +# $2 = dependencies +# $3 = install directory (must be defined) +# $4 = installed file name prefix (optional) +# $5 = installed file name suffix (optional) +# $6 = extra make options (for instance, USE_SPEKTRUM=YES) +# $7 = optional target suffix (for instance, clean, if target must be cleaned first) +# $8 = list of targets to install (without _install suffix) +# $9 = inner make target (usually install, but can be other to just build) +define INSTALL_TEMPLATE +$(1): $(2) +ifneq ($(7),) + $$(V1) +$(MAKE) -C $(ROOT_DIR) $(6) $(addsuffix _$(7), $(8)) +endif + $$(V1) +$(MAKE) -C $(ROOT_DIR) INSTALL_DIR=$(3) INSTALL_PFX=$(4) INSTALL_SFX=$(5) $(6) $(addsuffix _$(9), $(8)) +.PHONY: $(1) +endef + +# Firmware for different input drivers +$(eval $(call INSTALL_TEMPLATE,fw_common,uavobjects,$(FW_DIR),,-$(RELEASE_LBL),,,$(FW_TARGETS_COMMON),install)) +$(eval $(call INSTALL_TEMPLATE,fw_pwm,uavobjects,$(FW_DIR),,-pwm-$(RELEASE_LBL),,clean,$(FW_TARGETS_INPUT),install)) +$(eval $(call INSTALL_TEMPLATE,fw_spektrum,uavobjects fw_pwm,$(FW_DIR),,-spektrum-$(RELEASE_LBL),USE_SPEKTRUM=YES,clean,$(FW_TARGETS_INPUT),install)) +$(eval $(call INSTALL_TEMPLATE,fw_ppm,uavobjects fw_spektrum,$(FW_DIR),,-ppm-$(RELEASE_LBL),USE_PPM=YES,clean,$(FW_TARGETS_INPUT),install)) + +# Bootloaders (change 'bin' to 'install' to install bootloaders too) +$(eval $(call INSTALL_TEMPLATE,all_bl,uavobjects,$(BL_DIR),,-$(RELEASE_LBL),,,$(BL_TARGETS),bin)) + +# Bootloader Updaters +$(eval $(call INSTALL_TEMPLATE,blupd_coptercontrol,all_bl,$(BLUPD_DIR),CopterControl_,-$(RELEASE_LBL),,,blupd_coptercontrol,install)) +$(eval $(call INSTALL_TEMPLATE,blupd_ahrs,all_bl,$(BLUPD_DIR),AHRS_,-$(RELEASE_LBL),,,blupd_ahrs,install)) +$(eval $(call INSTALL_TEMPLATE,blupd_openpilot,all_bl,$(BLUPD_DIR),OpenPilot_,-$(RELEASE_LBL),,,blupd_openpilot,install)) +$(eval $(call INSTALL_TEMPLATE,blupd_pipxtreme,all_bl,$(BLUPD_DIR),PipXtreme_,-$(RELEASE_LBL),,,blupd_pipxtreme,install)) + +# Order-only dependencies +# They are bit complicated to support parallel (-j) builds and to +# create the pwm/ppm/spektrum targets in a sequence of build steps + +release: | release_flight release_ground + +release_flight: | release_fw release_blupd + +release_fw: | fw_common fw_pwm fw_spektrum # fw_ppm + +release_blupd: | $(BLUPD_TARGETS) + +release_ground: + +.PHONY: help uavobjects all_clean release release_flight release_fw release_blupd release_ground + +# Decide on a verbosity level based on the V= parameter +export AT := @ + +ifndef V +export V0 := +export V1 := $(AT) +else ifeq ($(V), 0) +export V0 := $(AT) +export V1 := $(AT) +else ifeq ($(V), 1) +endif + +ifneq ($(V),1) +MAKEFLAGS += --no-print-directory +endif From dbf8a77a948e09d24d8f52c3c2904075c16df574 Mon Sep 17 00:00:00 2001 From: James Cotton Date: Fri, 13 May 2011 07:24:44 -0500 Subject: [PATCH 014/488] Now there are other attitude settings (like rotation angle) make sure these are loaded right away at power up --- flight/Modules/Attitude/attitude.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/flight/Modules/Attitude/attitude.c b/flight/Modules/Attitude/attitude.c index 599c66b1b..986fc74f3 100644 --- a/flight/Modules/Attitude/attitude.c +++ b/flight/Modules/Attitude/attitude.c @@ -143,6 +143,8 @@ static void AttitudeTask(void *parameters) FlightStatusGet(&flightStatus); if(xTaskGetTickCount() < 10000) { + // Force settings update to make sure rotation loaded + settingsUpdatedCb(AttitudeSettingsHandle()); // For first 5 seconds use accels to get gyro bias accelKp = 1; // Decrease the rate of gyro learning during init From 405cac36ad147e430495c8fa1368573b5c1f1e97 Mon Sep 17 00:00:00 2001 From: Oleg Semyonov Date: Fri, 13 May 2011 16:55:18 +0300 Subject: [PATCH 015/488] OP-483: add some platform-specific hooks for ground packaging --- release/Makefile | 27 ++++++++++++++++++++++++--- release/Makefile.linux | 10 ++++++++++ release/Makefile.osx | 10 ++++++++++ release/Makefile.win32 | 11 +++++++++++ 4 files changed, 55 insertions(+), 3 deletions(-) create mode 100644 release/Makefile.linux create mode 100644 release/Makefile.osx create mode 100644 release/Makefile.win32 diff --git a/release/Makefile b/release/Makefile index 0b64856c2..144a0a5dc 100644 --- a/release/Makefile +++ b/release/Makefile @@ -1,6 +1,16 @@ # Set up a default goal .DEFAULT_GOAL := help +# Tried the best to support parallel (-j) builds. But since this Makefile +# uses other Makefiles to build few targets which in turn have similar +# dependencies on uavobjects and other generated files, it is difficult +# to support parallel builds perfectly. +# +# Looks like it works for -j8, but fails for -j (unlimited jobs). +# So probably not a bad idea is to build release in single thread. +# +#.NOTPARALLEL: + # Locate the root of the tree WHEREAMI := $(dir $(lastword $(MAKEFILE_LIST))) ROOT_DIR := $(realpath $(WHEREAMI)/../) @@ -37,8 +47,7 @@ help: @echo " - release packages will be placed in $(RELEASE_DIR)" @echo -# Clean and create release directories -# Use dependence on uavobjects to make sure the build directory exists +# Clean and build uavobjects since all parts depend on them uavobjects: all_clean $(V1) $(MAKE) -C $(ROOT_DIR) $@ @@ -91,7 +100,7 @@ release_fw: | fw_common fw_pwm fw_spektrum # fw_ppm release_blupd: | $(BLUPD_TARGETS) -release_ground: +release_ground: | ground_package .PHONY: help uavobjects all_clean release release_flight release_fw release_blupd release_ground @@ -110,3 +119,15 @@ endif ifneq ($(V),1) MAKEFLAGS += --no-print-directory endif + +# Platform-dependent stuff +PLATFORM := win32 +UNAME := $(shell uname) +ifeq ($(UNAME), Linux) + PLATFORM := linux +endif +ifeq ($(UNAME), Darwin) + PLATFORM := osx +endif + +include $(WHEREAMI)/Makefile.$(PLATFORM) diff --git a/release/Makefile.linux b/release/Makefile.linux new file mode 100644 index 000000000..02e92c941 --- /dev/null +++ b/release/Makefile.linux @@ -0,0 +1,10 @@ +# +# Linux-specific packaging +# + +gcs: uavobjects + $(V1) $(MAKE) -C $(ROOT_DIR) GCS_BUILD_CONF=release $@ + +ground_package: | gcs + +.PHONY: gcs ground_package diff --git a/release/Makefile.osx b/release/Makefile.osx new file mode 100644 index 000000000..c213fbf6e --- /dev/null +++ b/release/Makefile.osx @@ -0,0 +1,10 @@ +# +# MacOSX-specific packaging +# + +gcs: uavobjects + $(V1) $(MAKE) -C $(ROOT_DIR) GCS_BUILD_CONF=release $@ + +ground_package: | gcs + +.PHONY: gcs ground_package diff --git a/release/Makefile.win32 b/release/Makefile.win32 new file mode 100644 index 000000000..aed3eca1f --- /dev/null +++ b/release/Makefile.win32 @@ -0,0 +1,11 @@ +# +# Windows-specific packaging +# + +# Generate GCS installer +gcs_installer: uavobjects + $(V1) $(MAKE) -C $(ROOT_DIR) GCS_BUILD_CONF=release $@ + +ground_package: | gcs_installer + +.PHONY: gcs_installer ground_package From 32c7f071758b3f15be048391c3f00e84379d17a2 Mon Sep 17 00:00:00 2001 From: Oleg Semyonov Date: Fri, 13 May 2011 17:40:28 +0300 Subject: [PATCH 016/488] OP-483: convert line endings to Unix format (no other changes) --- release/Makefile | 266 ++++++++++++++++++++--------------------- release/Makefile.linux | 20 ++-- release/Makefile.osx | 20 ++-- release/Makefile.win32 | 22 ++-- 4 files changed, 164 insertions(+), 164 deletions(-) diff --git a/release/Makefile b/release/Makefile index 144a0a5dc..a1a45de3b 100644 --- a/release/Makefile +++ b/release/Makefile @@ -1,133 +1,133 @@ -# Set up a default goal -.DEFAULT_GOAL := help - -# Tried the best to support parallel (-j) builds. But since this Makefile -# uses other Makefiles to build few targets which in turn have similar -# dependencies on uavobjects and other generated files, it is difficult -# to support parallel builds perfectly. -# -# Looks like it works for -j8, but fails for -j (unlimited jobs). -# So probably not a bad idea is to build release in single thread. -# -#.NOTPARALLEL: - -# Locate the root of the tree -WHEREAMI := $(dir $(lastword $(MAKEFILE_LIST))) -ROOT_DIR := $(realpath $(WHEREAMI)/../) - -# Set up some macros -BUILD_DIR := $(ROOT_DIR)/build -RELEASE_DATE := $(shell date +%Y%m%d) -RELEASE_TAG := unreleased -RELEASE_LBL := $(RELEASE_DATE)-$(RELEASE_TAG) -RELEASE_DIR := $(BUILD_DIR)/release-$(RELEASE_LBL) -FW_DIR := $(RELEASE_DIR)/firmware-$(RELEASE_LBL) -BL_DIR := $(FW_DIR)/bootloaders -BLUPD_DIR := $(FW_DIR)/bootloader_updaters - -# Setup targets -FW_TARGETS_COMMON := ahrs pipxtreme -FW_TARGETS_INPUT := coptercontrol openpilot -FW_TARGETS := $(FW_TARGETS_COMMON) $(FW_TARGETS_INPUT) -BL_TARGETS := $(addprefix bl_, $(FW_TARGETS)) -BLUPD_TARGETS := $(addprefix blupd_, $(FW_TARGETS)) - -help: - @echo - @echo " This Makefile is known to work on Linux and Mac in a standard shell environment." - @echo " It also works on Windows by following the instructions in ../make/winx86/README.txt." - @echo - @echo " Here is a summary of the available targets:" - @echo - @echo " [Release build and packaging]" - @echo " release - Build and package the OpenPilot release" - @echo - @echo " Notes:" - @echo " - the build directory will be removed first on every run" - @echo " - release packages will be placed in $(RELEASE_DIR)" - @echo - -# Clean and build uavobjects since all parts depend on them -uavobjects: all_clean - $(V1) $(MAKE) -C $(ROOT_DIR) $@ - -all_clean: - $(V1) $(MAKE) -C $(ROOT_DIR) $@ - -# Install template: -# $1 = target -# $2 = dependencies -# $3 = install directory (must be defined) -# $4 = installed file name prefix (optional) -# $5 = installed file name suffix (optional) -# $6 = extra make options (for instance, USE_SPEKTRUM=YES) -# $7 = optional target suffix (for instance, clean, if target must be cleaned first) -# $8 = list of targets to install (without _install suffix) -# $9 = inner make target (usually install, but can be other to just build) -define INSTALL_TEMPLATE -$(1): $(2) -ifneq ($(7),) - $$(V1) +$(MAKE) -C $(ROOT_DIR) $(6) $(addsuffix _$(7), $(8)) -endif - $$(V1) +$(MAKE) -C $(ROOT_DIR) INSTALL_DIR=$(3) INSTALL_PFX=$(4) INSTALL_SFX=$(5) $(6) $(addsuffix _$(9), $(8)) -.PHONY: $(1) -endef - -# Firmware for different input drivers -$(eval $(call INSTALL_TEMPLATE,fw_common,uavobjects,$(FW_DIR),,-$(RELEASE_LBL),,,$(FW_TARGETS_COMMON),install)) -$(eval $(call INSTALL_TEMPLATE,fw_pwm,uavobjects,$(FW_DIR),,-pwm-$(RELEASE_LBL),,clean,$(FW_TARGETS_INPUT),install)) -$(eval $(call INSTALL_TEMPLATE,fw_spektrum,uavobjects fw_pwm,$(FW_DIR),,-spektrum-$(RELEASE_LBL),USE_SPEKTRUM=YES,clean,$(FW_TARGETS_INPUT),install)) -$(eval $(call INSTALL_TEMPLATE,fw_ppm,uavobjects fw_spektrum,$(FW_DIR),,-ppm-$(RELEASE_LBL),USE_PPM=YES,clean,$(FW_TARGETS_INPUT),install)) - -# Bootloaders (change 'bin' to 'install' to install bootloaders too) -$(eval $(call INSTALL_TEMPLATE,all_bl,uavobjects,$(BL_DIR),,-$(RELEASE_LBL),,,$(BL_TARGETS),bin)) - -# Bootloader Updaters -$(eval $(call INSTALL_TEMPLATE,blupd_coptercontrol,all_bl,$(BLUPD_DIR),CopterControl_,-$(RELEASE_LBL),,,blupd_coptercontrol,install)) -$(eval $(call INSTALL_TEMPLATE,blupd_ahrs,all_bl,$(BLUPD_DIR),AHRS_,-$(RELEASE_LBL),,,blupd_ahrs,install)) -$(eval $(call INSTALL_TEMPLATE,blupd_openpilot,all_bl,$(BLUPD_DIR),OpenPilot_,-$(RELEASE_LBL),,,blupd_openpilot,install)) -$(eval $(call INSTALL_TEMPLATE,blupd_pipxtreme,all_bl,$(BLUPD_DIR),PipXtreme_,-$(RELEASE_LBL),,,blupd_pipxtreme,install)) - -# Order-only dependencies -# They are bit complicated to support parallel (-j) builds and to -# create the pwm/ppm/spektrum targets in a sequence of build steps - -release: | release_flight release_ground - -release_flight: | release_fw release_blupd - -release_fw: | fw_common fw_pwm fw_spektrum # fw_ppm - -release_blupd: | $(BLUPD_TARGETS) - -release_ground: | ground_package - -.PHONY: help uavobjects all_clean release release_flight release_fw release_blupd release_ground - -# Decide on a verbosity level based on the V= parameter -export AT := @ - -ifndef V -export V0 := -export V1 := $(AT) -else ifeq ($(V), 0) -export V0 := $(AT) -export V1 := $(AT) -else ifeq ($(V), 1) -endif - -ifneq ($(V),1) -MAKEFLAGS += --no-print-directory -endif - -# Platform-dependent stuff -PLATFORM := win32 -UNAME := $(shell uname) -ifeq ($(UNAME), Linux) - PLATFORM := linux -endif -ifeq ($(UNAME), Darwin) - PLATFORM := osx -endif - -include $(WHEREAMI)/Makefile.$(PLATFORM) +# Set up a default goal +.DEFAULT_GOAL := help + +# Tried the best to support parallel (-j) builds. But since this Makefile +# uses other Makefiles to build few targets which in turn have similar +# dependencies on uavobjects and other generated files, it is difficult +# to support parallel builds perfectly. +# +# Looks like it works for -j8, but fails for -j (unlimited jobs). +# So probably not a bad idea is to build release in single thread. +# +#.NOTPARALLEL: + +# Locate the root of the tree +WHEREAMI := $(dir $(lastword $(MAKEFILE_LIST))) +ROOT_DIR := $(realpath $(WHEREAMI)/../) + +# Set up some macros +BUILD_DIR := $(ROOT_DIR)/build +RELEASE_DATE := $(shell date +%Y%m%d) +RELEASE_TAG := unreleased +RELEASE_LBL := $(RELEASE_DATE)-$(RELEASE_TAG) +RELEASE_DIR := $(BUILD_DIR)/release-$(RELEASE_LBL) +FW_DIR := $(RELEASE_DIR)/firmware-$(RELEASE_LBL) +BL_DIR := $(FW_DIR)/bootloaders +BLUPD_DIR := $(FW_DIR)/bootloader_updaters + +# Setup targets +FW_TARGETS_COMMON := ahrs pipxtreme +FW_TARGETS_INPUT := coptercontrol openpilot +FW_TARGETS := $(FW_TARGETS_COMMON) $(FW_TARGETS_INPUT) +BL_TARGETS := $(addprefix bl_, $(FW_TARGETS)) +BLUPD_TARGETS := $(addprefix blupd_, $(FW_TARGETS)) + +help: + @echo + @echo " This Makefile is known to work on Linux and Mac in a standard shell environment." + @echo " It also works on Windows by following the instructions in ../make/winx86/README.txt." + @echo + @echo " Here is a summary of the available targets:" + @echo + @echo " [Release build and packaging]" + @echo " release - Build and package the OpenPilot release" + @echo + @echo " Notes:" + @echo " - the build directory will be removed first on every run" + @echo " - release packages will be placed in $(RELEASE_DIR)" + @echo + +# Clean and build uavobjects since all parts depend on them +uavobjects: all_clean + $(V1) $(MAKE) -C $(ROOT_DIR) $@ + +all_clean: + $(V1) $(MAKE) -C $(ROOT_DIR) $@ + +# Install template: +# $1 = target +# $2 = dependencies +# $3 = install directory (must be defined) +# $4 = installed file name prefix (optional) +# $5 = installed file name suffix (optional) +# $6 = extra make options (for instance, USE_SPEKTRUM=YES) +# $7 = optional target suffix (for instance, clean, if target must be cleaned first) +# $8 = list of targets to install (without _install suffix) +# $9 = inner make target (usually install, but can be other to just build) +define INSTALL_TEMPLATE +$(1): $(2) +ifneq ($(7),) + $$(V1) +$(MAKE) -C $(ROOT_DIR) $(6) $(addsuffix _$(7), $(8)) +endif + $$(V1) +$(MAKE) -C $(ROOT_DIR) INSTALL_DIR=$(3) INSTALL_PFX=$(4) INSTALL_SFX=$(5) $(6) $(addsuffix _$(9), $(8)) +.PHONY: $(1) +endef + +# Firmware for different input drivers +$(eval $(call INSTALL_TEMPLATE,fw_common,uavobjects,$(FW_DIR),,-$(RELEASE_LBL),,,$(FW_TARGETS_COMMON),install)) +$(eval $(call INSTALL_TEMPLATE,fw_pwm,uavobjects,$(FW_DIR),,-pwm-$(RELEASE_LBL),,clean,$(FW_TARGETS_INPUT),install)) +$(eval $(call INSTALL_TEMPLATE,fw_spektrum,uavobjects fw_pwm,$(FW_DIR),,-spektrum-$(RELEASE_LBL),USE_SPEKTRUM=YES,clean,$(FW_TARGETS_INPUT),install)) +$(eval $(call INSTALL_TEMPLATE,fw_ppm,uavobjects fw_spektrum,$(FW_DIR),,-ppm-$(RELEASE_LBL),USE_PPM=YES,clean,$(FW_TARGETS_INPUT),install)) + +# Bootloaders (change 'bin' to 'install' to install bootloaders too) +$(eval $(call INSTALL_TEMPLATE,all_bl,uavobjects,$(BL_DIR),,-$(RELEASE_LBL),,,$(BL_TARGETS),bin)) + +# Bootloader Updaters +$(eval $(call INSTALL_TEMPLATE,blupd_coptercontrol,all_bl,$(BLUPD_DIR),CopterControl_,-$(RELEASE_LBL),,,blupd_coptercontrol,install)) +$(eval $(call INSTALL_TEMPLATE,blupd_ahrs,all_bl,$(BLUPD_DIR),AHRS_,-$(RELEASE_LBL),,,blupd_ahrs,install)) +$(eval $(call INSTALL_TEMPLATE,blupd_openpilot,all_bl,$(BLUPD_DIR),OpenPilot_,-$(RELEASE_LBL),,,blupd_openpilot,install)) +$(eval $(call INSTALL_TEMPLATE,blupd_pipxtreme,all_bl,$(BLUPD_DIR),PipXtreme_,-$(RELEASE_LBL),,,blupd_pipxtreme,install)) + +# Order-only dependencies +# They are bit complicated to support parallel (-j) builds and to +# create the pwm/ppm/spektrum targets in a sequence of build steps + +release: | release_flight release_ground + +release_flight: | release_fw release_blupd + +release_fw: | fw_common fw_pwm fw_spektrum # fw_ppm + +release_blupd: | $(BLUPD_TARGETS) + +release_ground: | ground_package + +.PHONY: help uavobjects all_clean release release_flight release_fw release_blupd release_ground + +# Decide on a verbosity level based on the V= parameter +export AT := @ + +ifndef V +export V0 := +export V1 := $(AT) +else ifeq ($(V), 0) +export V0 := $(AT) +export V1 := $(AT) +else ifeq ($(V), 1) +endif + +ifneq ($(V),1) +MAKEFLAGS += --no-print-directory +endif + +# Platform-dependent stuff +PLATFORM := win32 +UNAME := $(shell uname) +ifeq ($(UNAME), Linux) + PLATFORM := linux +endif +ifeq ($(UNAME), Darwin) + PLATFORM := osx +endif + +include $(WHEREAMI)/Makefile.$(PLATFORM) diff --git a/release/Makefile.linux b/release/Makefile.linux index 02e92c941..c966ff6f2 100644 --- a/release/Makefile.linux +++ b/release/Makefile.linux @@ -1,10 +1,10 @@ -# -# Linux-specific packaging -# - -gcs: uavobjects - $(V1) $(MAKE) -C $(ROOT_DIR) GCS_BUILD_CONF=release $@ - -ground_package: | gcs - -.PHONY: gcs ground_package +# +# Linux-specific packaging +# + +gcs: uavobjects + $(V1) $(MAKE) -C $(ROOT_DIR) GCS_BUILD_CONF=release $@ + +ground_package: | gcs + +.PHONY: gcs ground_package diff --git a/release/Makefile.osx b/release/Makefile.osx index c213fbf6e..d18b950d7 100644 --- a/release/Makefile.osx +++ b/release/Makefile.osx @@ -1,10 +1,10 @@ -# -# MacOSX-specific packaging -# - -gcs: uavobjects - $(V1) $(MAKE) -C $(ROOT_DIR) GCS_BUILD_CONF=release $@ - -ground_package: | gcs - -.PHONY: gcs ground_package +# +# MacOSX-specific packaging +# + +gcs: uavobjects + $(V1) $(MAKE) -C $(ROOT_DIR) GCS_BUILD_CONF=release $@ + +ground_package: | gcs + +.PHONY: gcs ground_package diff --git a/release/Makefile.win32 b/release/Makefile.win32 index aed3eca1f..b1283c3cf 100644 --- a/release/Makefile.win32 +++ b/release/Makefile.win32 @@ -1,11 +1,11 @@ -# -# Windows-specific packaging -# - -# Generate GCS installer -gcs_installer: uavobjects - $(V1) $(MAKE) -C $(ROOT_DIR) GCS_BUILD_CONF=release $@ - -ground_package: | gcs_installer - -.PHONY: gcs_installer ground_package +# +# Windows-specific packaging +# + +# Generate GCS installer +gcs_installer: uavobjects + $(V1) $(MAKE) -C $(ROOT_DIR) GCS_BUILD_CONF=release $@ + +ground_package: | gcs_installer + +.PHONY: gcs_installer ground_package From 7fc87700cc44e2db83c4abe63d652bd75aee4d75 Mon Sep 17 00:00:00 2001 From: dankers Date: Sat, 14 May 2011 15:41:44 +1000 Subject: [PATCH 017/488] Fix the default config. The control gadget was on the config screen to help new users validate their inputs. Adding it back. --- .../src/plugins/coreplugin/OpenPilotGCS.ini | 178 +++++++++--------- 1 file changed, 87 insertions(+), 91 deletions(-) diff --git a/ground/openpilotgcs/src/plugins/coreplugin/OpenPilotGCS.ini b/ground/openpilotgcs/src/plugins/coreplugin/OpenPilotGCS.ini index a37b328e5..e444e99c3 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/OpenPilotGCS.ini +++ b/ground/openpilotgcs/src/plugins/coreplugin/OpenPilotGCS.ini @@ -1,5 +1,5 @@ [General] -ViewGroup_Default=@ByteArray(\0\0\0\xff\0\0\0\0\xfd\0\0\0\0\0\0\x5V\0\0\x2\x9a\0\0\0\x4\0\0\0\x4\0\0\0\x1\0\0\0\b\xfc\0\0\0\0) +ViewGroup_Default=@ByteArray(\0\0\0\xff\0\0\0\0\xfd\0\0\0\0\0\0\x5\xa0\0\0\x3/\0\0\0\x4\0\0\0\x4\0\0\0\x1\0\0\0\b\xfc\0\0\0\0) [Workspace] NumberOfWorkspaces=6 @@ -70,6 +70,7 @@ Mode1\splitter\side0\side1\splitterOrientation=1 Mode1\splitter\side0\side1\splitterSizes=304, 433 Mode1\splitter\side0\side1\side0\type=uavGadget Mode1\splitter\side0\side1\side0\classId=ModelViewGadget +Mode1\splitter\side0\side1\side0\gadget\activeConfiguration=Test Quad X Mode1\splitter\side0\side1\side1\type=splitter Mode1\splitter\side0\side1\side1\splitterOrientation=2 Mode1\splitter\side0\side1\side1\splitterSizes=293, 64 @@ -180,7 +181,15 @@ Mode2\splitter\side0\side1\side0\gadget\activeConfiguration=Telemetry RX Rate Ho Mode2\splitter\side0\side1\side1\type=uavGadget Mode2\splitter\side0\side1\side1\classId=LineardialGadget Mode2\splitter\side0\side1\side1\gadget\activeConfiguration=Telemetry TX Rate Horizontal -Mode2\splitter\side1\type=uavGadget +Mode2\splitter\side1\type=splitter +Mode2\splitter\side1\splitterOrientation=2 +Mode2\splitter\side1\splitterSizes=426, 354 +Mode2\splitter\side1\side0\type=uavGadget +Mode2\splitter\side1\side0\classId=UAVObjectBrowser +Mode2\splitter\side1\side0\gadget\activeConfiguration=default +Mode2\splitter\side1\side1\type=uavGadget +Mode2\splitter\side1\side1\classId=GCSControlGadget +Mode2\splitter\side1\side1\gadget\activeConfiguration=MS Sidewinder Mode3\version=UAVGadgetManagerV1 Mode3\showToolbars=false Mode3\splitter\type=splitter @@ -194,6 +203,7 @@ Mode3\splitter\side1\splitterOrientation=2 Mode3\splitter\side1\splitterSizes=395, 236 Mode3\splitter\side1\side0\type=uavGadget Mode3\splitter\side1\side0\classId=ModelViewGadget +Mode3\splitter\side1\side0\gadget\activeConfiguration=Test Quad X Mode3\splitter\side1\side1\type=splitter Mode3\splitter\side1\side1\splitterOrientation=1 Mode3\splitter\side1\side1\splitterSizes=@Invalid() @@ -289,21 +299,13 @@ Mode6\splitter\side1\side0\side1\gadget\activeConfiguration=raw Mode6\splitter\side1\side1\type=uavGadget Mode6\splitter\side1\side1\classId=ScopeGadget Mode6\splitter\side1\side1\gadget\activeConfiguration=Uptimes -Mode1\splitter\side0\side1\side0\gadget\activeConfiguration=Test Quad X -Mode2\splitter\side1\classId=UAVObjectBrowser -Mode2\splitter\side1\gadget\activeConfiguration=default -Mode3\splitter\side1\side0\gadget\activeConfiguration=Test Quad X [KeyBindings] size=0 [%General] +OverrideLanguage=en_AU SaveSettingsOnExit=true -TerminalEmulator=xterm -e -LastPreferenceCategory=LineardialGadget -LastPreferencePage=Roll Desired 1 -SettingsWindowWidth=921 -SettingsWindowHeight=534 [UAVGadgetConfigurations] configInfo\version=1.2.0 @@ -1233,6 +1235,40 @@ LineardialGadget\Mainboard%20CPU\data\factor=1 LineardialGadget\Mainboard%20CPU\data\useOpenGLFlag=false LineardialGadget\Mainboard%20CPU\configInfo\version=0.0.0 LineardialGadget\Mainboard%20CPU\configInfo\locked=false +LineardialGadget\Pitch\data\dFile=%%DATAPATH%%dials/default/lineardial-vertical.svg +LineardialGadget\Pitch\data\sourceDataObject=ManualControlCommand +LineardialGadget\Pitch\data\sourceObjectField=Pitch +LineardialGadget\Pitch\data\minValue=-1 +LineardialGadget\Pitch\data\maxValue=1 +LineardialGadget\Pitch\data\redMin=-1 +LineardialGadget\Pitch\data\redMax=1 +LineardialGadget\Pitch\data\yellowMin=-0.8 +LineardialGadget\Pitch\data\yellowMax=0.8 +LineardialGadget\Pitch\data\greenMin=-0.5 +LineardialGadget\Pitch\data\greenMax=0.5 +LineardialGadget\Pitch\data\font="Andale Mono,12,-1,5,75,0,0,0,0,0" +LineardialGadget\Pitch\data\decimalPlaces=2 +LineardialGadget\Pitch\data\factor=1 +LineardialGadget\Pitch\data\useOpenGLFlag=false +LineardialGadget\Pitch\configInfo\version=0.0.0 +LineardialGadget\Pitch\configInfo\locked=false +LineardialGadget\Pitch%20Desired\data\dFile=%%DATAPATH%%dials/default/lineardial-vertical.svg +LineardialGadget\Pitch%20Desired\data\sourceDataObject=ActuatorDesired +LineardialGadget\Pitch%20Desired\data\sourceObjectField=Pitch +LineardialGadget\Pitch%20Desired\data\minValue=-1 +LineardialGadget\Pitch%20Desired\data\maxValue=1 +LineardialGadget\Pitch%20Desired\data\redMin=-1 +LineardialGadget\Pitch%20Desired\data\redMax=1 +LineardialGadget\Pitch%20Desired\data\yellowMin=-0.8 +LineardialGadget\Pitch%20Desired\data\yellowMax=0.8 +LineardialGadget\Pitch%20Desired\data\greenMin=-0.5 +LineardialGadget\Pitch%20Desired\data\greenMax=0.5 +LineardialGadget\Pitch%20Desired\data\font="Andale Mono,12,-1,5,75,0,0,0,0,0" +LineardialGadget\Pitch%20Desired\data\decimalPlaces=2 +LineardialGadget\Pitch%20Desired\data\factor=1 +LineardialGadget\Pitch%20Desired\data\useOpenGLFlag=false +LineardialGadget\Pitch%20Desired\configInfo\version=0.0.0 +LineardialGadget\Pitch%20Desired\configInfo\locked=false LineardialGadget\PitchActual\data\dFile=%%DATAPATH%%dials/default/lineardial-vertical.svg LineardialGadget\PitchActual\data\sourceDataObject=AttitudeActual LineardialGadget\PitchActual\data\sourceObjectField=Pitch @@ -1267,6 +1303,23 @@ LineardialGadget\Roll\data\factor=1 LineardialGadget\Roll\data\useOpenGLFlag=false LineardialGadget\Roll\configInfo\version=0.0.0 LineardialGadget\Roll\configInfo\locked=false +LineardialGadget\Roll%20Desired\data\dFile=%%DATAPATH%%dials/default/lineardial-vertical.svg +LineardialGadget\Roll%20Desired\data\sourceDataObject=ActuatorDesired +LineardialGadget\Roll%20Desired\data\sourceObjectField=Roll +LineardialGadget\Roll%20Desired\data\minValue=-1 +LineardialGadget\Roll%20Desired\data\maxValue=1 +LineardialGadget\Roll%20Desired\data\redMin=-1 +LineardialGadget\Roll%20Desired\data\redMax=1 +LineardialGadget\Roll%20Desired\data\yellowMin=-0.8 +LineardialGadget\Roll%20Desired\data\yellowMax=0.8 +LineardialGadget\Roll%20Desired\data\greenMin=-0.5 +LineardialGadget\Roll%20Desired\data\greenMax=0.5 +LineardialGadget\Roll%20Desired\data\font="Andale Mono,12,-1,5,75,0,0,0,0,0" +LineardialGadget\Roll%20Desired\data\decimalPlaces=2 +LineardialGadget\Roll%20Desired\data\factor=1 +LineardialGadget\Roll%20Desired\data\useOpenGLFlag=false +LineardialGadget\Roll%20Desired\configInfo\version=0.0.0 +LineardialGadget\Roll%20Desired\configInfo\locked=false LineardialGadget\Telemetry%20RX%20Rate%20Horizontal\data\dFile=%%DATAPATH%%dials/default/lineardial-horizontal.svg LineardialGadget\Telemetry%20RX%20Rate%20Horizontal\data\sourceDataObject=GCSTelemetryStats LineardialGadget\Telemetry%20RX%20Rate%20Horizontal\data\sourceObjectField=RxDataRate @@ -1335,6 +1388,23 @@ LineardialGadget\Yaw\data\factor=1 LineardialGadget\Yaw\data\useOpenGLFlag=false LineardialGadget\Yaw\configInfo\version=0.0.0 LineardialGadget\Yaw\configInfo\locked=false +LineardialGadget\Yaw%20Desired\data\dFile=%%DATAPATH%%dials/default/lineardial-vertical.svg +LineardialGadget\Yaw%20Desired\data\sourceDataObject=ActuatorDesired +LineardialGadget\Yaw%20Desired\data\sourceObjectField=Yaw +LineardialGadget\Yaw%20Desired\data\minValue=-1 +LineardialGadget\Yaw%20Desired\data\maxValue=1 +LineardialGadget\Yaw%20Desired\data\redMin=-1 +LineardialGadget\Yaw%20Desired\data\redMax=1 +LineardialGadget\Yaw%20Desired\data\yellowMin=-0.8 +LineardialGadget\Yaw%20Desired\data\yellowMax=0.8 +LineardialGadget\Yaw%20Desired\data\greenMin=-0.5 +LineardialGadget\Yaw%20Desired\data\greenMax=0.5 +LineardialGadget\Yaw%20Desired\data\font="Andale Mono,12,-1,5,75,0,0,0,0,0" +LineardialGadget\Yaw%20Desired\data\decimalPlaces=2 +LineardialGadget\Yaw%20Desired\data\factor=1 +LineardialGadget\Yaw%20Desired\data\useOpenGLFlag=false +LineardialGadget\Yaw%20Desired\configInfo\version=0.0.0 +LineardialGadget\Yaw%20Desired\configInfo\locked=false ModelViewGadget\Aeroquad%20%2B\data\acFilename=%%DATAPATH%%models/multi/aeroquad/aeroquad_+.3ds ModelViewGadget\Aeroquad%20%2B\data\bgFilename=%%DATAPATH%%models/backgrounds/default_background.png ModelViewGadget\Aeroquad%20%2B\data\enableVbo=false @@ -1404,40 +1474,6 @@ OPMapGadget\Google%20Sat\data\showTileGridLines=false OPMapGadget\Google%20Sat\data\accessMode=ServerAndCache OPMapGadget\Google%20Sat\data\useMemoryCache=true OPMapGadget\Google%20Sat\data\uavSymbol=mapquad.png -LineardialGadget\Pitch\data\dFile=%%DATAPATH%%dials/default/lineardial-vertical.svg -LineardialGadget\Pitch\data\sourceDataObject=ManualControlCommand -LineardialGadget\Pitch\data\sourceObjectField=Pitch -LineardialGadget\Pitch\data\minValue=-1 -LineardialGadget\Pitch\data\maxValue=1 -LineardialGadget\Pitch\data\redMin=-1 -LineardialGadget\Pitch\data\redMax=1 -LineardialGadget\Pitch\data\yellowMin=-0.8 -LineardialGadget\Pitch\data\yellowMax=0.8 -LineardialGadget\Pitch\data\greenMin=-0.5 -LineardialGadget\Pitch\data\greenMax=0.5 -LineardialGadget\Pitch\data\font="Andale Mono,12,-1,5,75,0,0,0,0,0" -LineardialGadget\Pitch\data\decimalPlaces=2 -LineardialGadget\Pitch\data\factor=1 -LineardialGadget\Pitch\data\useOpenGLFlag=false -LineardialGadget\Pitch\configInfo\version=0.0.0 -LineardialGadget\Pitch\configInfo\locked=false -LineardialGadget\Pitch%20Desired\data\dFile=%%DATAPATH%%dials/default/lineardial-vertical.svg -LineardialGadget\Pitch%20Desired\data\sourceDataObject=ActuatorDesired -LineardialGadget\Pitch%20Desired\data\sourceObjectField=Pitch -LineardialGadget\Pitch%20Desired\data\minValue=-1 -LineardialGadget\Pitch%20Desired\data\maxValue=1 -LineardialGadget\Pitch%20Desired\data\redMin=-1 -LineardialGadget\Pitch%20Desired\data\redMax=1 -LineardialGadget\Pitch%20Desired\data\yellowMin=-0.8 -LineardialGadget\Pitch%20Desired\data\yellowMax=0.8 -LineardialGadget\Pitch%20Desired\data\greenMin=-0.5 -LineardialGadget\Pitch%20Desired\data\greenMax=0.5 -LineardialGadget\Pitch%20Desired\data\font="Andale Mono,12,-1,5,75,0,0,0,0,0" -LineardialGadget\Pitch%20Desired\data\decimalPlaces=2 -LineardialGadget\Pitch%20Desired\data\factor=1 -LineardialGadget\Pitch%20Desired\data\useOpenGLFlag=false -LineardialGadget\Pitch%20Desired\configInfo\version=0.0.0 -LineardialGadget\Pitch%20Desired\configInfo\locked=false OPMapGadget\Google%20Sat\data\cacheLocation=%%STOREPATH%%mapscache/ OPMapGadget\Google%20Sat\configInfo\version=0.0.0 OPMapGadget\Google%20Sat\configInfo\locked=false @@ -1875,52 +1911,18 @@ Uploader\default\data\defaultStopBits=0 Uploader\default\data\defaultPort=/dev/ttyS0 Uploader\default\configInfo\version=0.0.0 Uploader\default\configInfo\locked=false -LineardialGadget\Roll%20Desired\data\dFile=%%DATAPATH%%dials/default/lineardial-vertical.svg -LineardialGadget\Roll%20Desired\data\sourceDataObject=ActuatorDesired -LineardialGadget\Roll%20Desired\data\sourceObjectField=Roll -LineardialGadget\Roll%20Desired\data\minValue=-1 -LineardialGadget\Roll%20Desired\data\maxValue=1 -LineardialGadget\Roll%20Desired\data\redMin=-1 -LineardialGadget\Roll%20Desired\data\redMax=1 -LineardialGadget\Roll%20Desired\data\yellowMin=-0.8 -LineardialGadget\Roll%20Desired\data\yellowMax=0.8 -LineardialGadget\Roll%20Desired\data\greenMin=-0.5 -LineardialGadget\Roll%20Desired\data\greenMax=0.5 -LineardialGadget\Roll%20Desired\data\font="Andale Mono,12,-1,5,75,0,0,0,0,0" -LineardialGadget\Roll%20Desired\data\decimalPlaces=2 -LineardialGadget\Roll%20Desired\data\factor=1 -LineardialGadget\Roll%20Desired\data\useOpenGLFlag=false -LineardialGadget\Roll%20Desired\configInfo\version=0.0.0 -LineardialGadget\Roll%20Desired\configInfo\locked=false -LineardialGadget\Yaw%20Desired\data\dFile=%%DATAPATH%%dials/default/lineardial-vertical.svg -LineardialGadget\Yaw%20Desired\data\sourceDataObject=ActuatorDesired -LineardialGadget\Yaw%20Desired\data\sourceObjectField=Yaw -LineardialGadget\Yaw%20Desired\data\minValue=-1 -LineardialGadget\Yaw%20Desired\data\maxValue=1 -LineardialGadget\Yaw%20Desired\data\redMin=-1 -LineardialGadget\Yaw%20Desired\data\redMax=1 -LineardialGadget\Yaw%20Desired\data\yellowMin=-0.8 -LineardialGadget\Yaw%20Desired\data\yellowMax=0.8 -LineardialGadget\Yaw%20Desired\data\greenMin=-0.5 -LineardialGadget\Yaw%20Desired\data\greenMax=0.5 -LineardialGadget\Yaw%20Desired\data\font="Andale Mono,12,-1,5,75,0,0,0,0,0" -LineardialGadget\Yaw%20Desired\data\decimalPlaces=2 -LineardialGadget\Yaw%20Desired\data\factor=1 -LineardialGadget\Yaw%20Desired\data\useOpenGLFlag=false -LineardialGadget\Yaw%20Desired\configInfo\version=0.0.0 -LineardialGadget\Yaw%20Desired\configInfo\locked=false [Plugins] -SoundNotifyPlugin\data\Current\1\SoundCollectionPath=%%DATAPATH%%sounds -SoundNotifyPlugin\data\Current\1\CurrentLanguage=default -SoundNotifyPlugin\data\Current\1\ObjectField=Channel -SoundNotifyPlugin\data\Current\1\DataObject=ActuatorCommand -SoundNotifyPlugin\data\Current\1\Value=Equal to +SoundNotifyPlugin\data\Current\1\SoundCollectionPath= +SoundNotifyPlugin\data\Current\1\CurrentLanguage= +SoundNotifyPlugin\data\Current\1\ObjectField= +SoundNotifyPlugin\data\Current\1\DataObject= +SoundNotifyPlugin\data\Current\1\Value= SoundNotifyPlugin\data\Current\1\ValueSpinBox=0 SoundNotifyPlugin\data\Current\1\Sound1= SoundNotifyPlugin\data\Current\1\Sound2= SoundNotifyPlugin\data\Current\1\Sound3= -SoundNotifyPlugin\data\Current\1\SayOrder=Never +SoundNotifyPlugin\data\Current\1\SayOrder= SoundNotifyPlugin\data\Current\1\Repeat= SoundNotifyPlugin\data\Current\1\ExpireTimeout=0 SoundNotifyPlugin\data\Current\size=1 @@ -1928,9 +1930,3 @@ SoundNotifyPlugin\data\listNotifies\size=0 SoundNotifyPlugin\data\EnableSound=false SoundNotifyPlugin\configInfo\version=1.0.0 SoundNotifyPlugin\configInfo\locked=false - -[IPconnection] -Current\1\HostName= -Current\1\Port=1 -Current\1\UseTCP=0 -Current\size=1 From cdbdfbd8b5c1495c8bdd2a0105c3fc6c83de5480 Mon Sep 17 00:00:00 2001 From: dankers Date: Sat, 14 May 2011 15:50:07 +1000 Subject: [PATCH 018/488] Add Sambas' Y6 OpenPilot flight --- MILESTONES.txt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/MILESTONES.txt b/MILESTONES.txt index 4f259c856..f4568be90 100644 --- a/MILESTONES.txt +++ b/MILESTONES.txt @@ -105,6 +105,11 @@ 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: ? From fab880a7d270d6ebb9bdc46d881c1673eb6622b7 Mon Sep 17 00:00:00 2001 From: elafargue Date: Sat, 14 May 2011 14:47:49 +0200 Subject: [PATCH 019/488] Improvement by pip1996 on opmpap widget, to limit update rate and solve the CPU hogging issue. --- .../opmap/opmapgadgetconfiguration.cpp | 218 +- .../plugins/opmap/opmapgadgetconfiguration.h | 190 +- .../plugins/opmap/opmapgadgetoptionspage.cpp | 282 +- .../plugins/opmap/opmapgadgetoptionspage.ui | 15 +- .../src/plugins/opmap/opmapgadgetwidget.cpp | 4822 +++++++++-------- .../src/plugins/opmap/opmapgadgetwidget.h | 708 +-- 6 files changed, 3188 insertions(+), 3047 deletions(-) diff --git a/ground/openpilotgcs/src/plugins/opmap/opmapgadgetconfiguration.cpp b/ground/openpilotgcs/src/plugins/opmap/opmapgadgetconfiguration.cpp index 25069571f..67d1d1f98 100644 --- a/ground/openpilotgcs/src/plugins/opmap/opmapgadgetconfiguration.cpp +++ b/ground/openpilotgcs/src/plugins/opmap/opmapgadgetconfiguration.cpp @@ -1,102 +1,116 @@ -/** - ****************************************************************************** - * - * @file opmapgadgetconfiguration.cpp - * @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010. - * @addtogroup GCSPlugins GCS Plugins - * @{ - * @addtogroup OPMapPlugin OpenPilot Map Plugin - * @{ - * @brief The OpenPilot Map plugin - *****************************************************************************/ -/* - * 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 - */ - -#include "opmapgadgetconfiguration.h" -#include "utils/pathutils.h" -#include - -OPMapGadgetConfiguration::OPMapGadgetConfiguration(QString classId, QSettings* qSettings, QObject *parent) : - IUAVGadgetConfiguration(classId, parent), - m_mapProvider("GoogleHybrid"), - m_defaultZoom(2), - m_defaultLatitude(0), - m_defaultLongitude(0), - m_useOpenGL(false), - m_showTileGridLines(false), - m_accessMode("ServerAndCache"), - m_useMemoryCache(true), - m_cacheLocation(Utils::PathUtils().GetStoragePath() + "mapscache" + QDir::separator()), - m_uavSymbol(QString::fromUtf8(":/uavs/images/mapquad.png")) -{ - - //if a saved configuration exists load it - if(qSettings != 0) { - QString mapProvider = qSettings->value("mapProvider").toString(); - int zoom = qSettings->value("defaultZoom").toInt(); - double latitude= qSettings->value("defaultLatitude").toDouble(); - double longitude= qSettings->value("defaultLongitude").toDouble(); - bool useOpenGL= qSettings->value("useOpenGL").toBool(); - bool showTileGridLines= qSettings->value("showTileGridLines").toBool(); - QString accessMode= qSettings->value("accessMode").toString(); - bool useMemoryCache= qSettings->value("useMemoryCache").toBool(); - QString cacheLocation= qSettings->value("cacheLocation").toString(); - QString uavSymbol=qSettings->value("uavSymbol").toString(); - if (!mapProvider.isEmpty()) m_mapProvider = mapProvider; - m_defaultZoom = zoom; - m_defaultLatitude = latitude; - m_defaultLongitude = longitude; - m_useOpenGL = useOpenGL; - m_showTileGridLines = showTileGridLines; - m_uavSymbol=uavSymbol; - if (!accessMode.isEmpty()) m_accessMode = accessMode; - m_useMemoryCache = useMemoryCache; - if (!cacheLocation.isEmpty()) m_cacheLocation = Utils::PathUtils().InsertStoragePath(cacheLocation); - } -} - -IUAVGadgetConfiguration * OPMapGadgetConfiguration::clone() -{ - OPMapGadgetConfiguration *m = new OPMapGadgetConfiguration(this->classId()); - - m->m_mapProvider = m_mapProvider; - m->m_defaultZoom = m_defaultZoom; - m->m_defaultLatitude = m_defaultLatitude; - m->m_defaultLongitude = m_defaultLongitude; - m->m_useOpenGL = m_useOpenGL; - m->m_showTileGridLines = m_showTileGridLines; - m->m_accessMode = m_accessMode; - m->m_useMemoryCache = m_useMemoryCache; - m->m_cacheLocation = m_cacheLocation; - m->m_uavSymbol=m_uavSymbol; - return m; -} - -void OPMapGadgetConfiguration::saveConfig(QSettings* qSettings) const { - qSettings->setValue("mapProvider", m_mapProvider); - qSettings->setValue("defaultZoom", m_defaultZoom); - qSettings->setValue("defaultLatitude", m_defaultLatitude); - qSettings->setValue("defaultLongitude", m_defaultLongitude); - qSettings->setValue("useOpenGL", m_useOpenGL); - qSettings->setValue("showTileGridLines", m_showTileGridLines); - qSettings->setValue("accessMode", m_accessMode); - qSettings->setValue("useMemoryCache", m_useMemoryCache); - qSettings->setValue("uavSymbol", m_uavSymbol); - qSettings->setValue("cacheLocation", Utils::PathUtils().RemoveStoragePath(m_cacheLocation)); -} -void OPMapGadgetConfiguration::setCacheLocation(QString cacheLocation){ - m_cacheLocation = cacheLocation; -} +/** + ****************************************************************************** + * + * @file opmapgadgetconfiguration.cpp + * @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010. + * @addtogroup GCSPlugins GCS Plugins + * @{ + * @addtogroup OPMapPlugin OpenPilot Map Plugin + * @{ + * @brief The OpenPilot Map plugin + *****************************************************************************/ +/* + * 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 + */ + +#include "opmapgadgetconfiguration.h" +#include "utils/pathutils.h" +#include + +OPMapGadgetConfiguration::OPMapGadgetConfiguration(QString classId, QSettings* qSettings, QObject *parent) : + IUAVGadgetConfiguration(classId, parent), + m_mapProvider("GoogleHybrid"), + m_defaultZoom(2), + m_defaultLatitude(0), + m_defaultLongitude(0), + m_useOpenGL(false), + m_showTileGridLines(false), + m_accessMode("ServerAndCache"), + m_useMemoryCache(true), + m_cacheLocation(Utils::PathUtils().GetStoragePath() + "mapscache" + QDir::separator()), + m_uavSymbol(QString::fromUtf8(":/uavs/images/mapquad.png")), + m_maxUpdateRate(2000) // ms +{ + + //if a saved configuration exists load it + if (qSettings != 0) { + + QString mapProvider = qSettings->value("mapProvider").toString(); + int zoom = qSettings->value("defaultZoom").toInt(); + double latitude= qSettings->value("defaultLatitude").toDouble(); + double longitude= qSettings->value("defaultLongitude").toDouble(); + bool useOpenGL= qSettings->value("useOpenGL").toBool(); + bool showTileGridLines= qSettings->value("showTileGridLines").toBool(); + QString accessMode= qSettings->value("accessMode").toString(); + bool useMemoryCache= qSettings->value("useMemoryCache").toBool(); + QString cacheLocation= qSettings->value("cacheLocation").toString(); + QString uavSymbol=qSettings->value("uavSymbol").toString(); + int max_update_rate = qSettings->value("maxUpdateRate").toInt(); + + if (!mapProvider.isEmpty()) m_mapProvider = mapProvider; + m_defaultZoom = zoom; + m_defaultLatitude = latitude; + m_defaultLongitude = longitude; + m_useOpenGL = useOpenGL; + m_showTileGridLines = showTileGridLines; + m_uavSymbol = uavSymbol; + + m_maxUpdateRate = max_update_rate; + if (m_maxUpdateRate < 100 || m_maxUpdateRate > 5000) + m_maxUpdateRate = 2000; + + if (!accessMode.isEmpty()) + m_accessMode = accessMode; + m_useMemoryCache = useMemoryCache; + if (!cacheLocation.isEmpty()) + m_cacheLocation = Utils::PathUtils().InsertStoragePath(cacheLocation); + } +} + +IUAVGadgetConfiguration * OPMapGadgetConfiguration::clone() +{ + OPMapGadgetConfiguration *m = new OPMapGadgetConfiguration(this->classId()); + + m->m_mapProvider = m_mapProvider; + m->m_defaultZoom = m_defaultZoom; + m->m_defaultLatitude = m_defaultLatitude; + m->m_defaultLongitude = m_defaultLongitude; + m->m_useOpenGL = m_useOpenGL; + m->m_showTileGridLines = m_showTileGridLines; + m->m_accessMode = m_accessMode; + m->m_useMemoryCache = m_useMemoryCache; + m->m_cacheLocation = m_cacheLocation; + m->m_uavSymbol = m_uavSymbol; + m->m_maxUpdateRate = m_maxUpdateRate; + + return m; +} + +void OPMapGadgetConfiguration::saveConfig(QSettings* qSettings) const { + qSettings->setValue("mapProvider", m_mapProvider); + qSettings->setValue("defaultZoom", m_defaultZoom); + qSettings->setValue("defaultLatitude", m_defaultLatitude); + qSettings->setValue("defaultLongitude", m_defaultLongitude); + qSettings->setValue("useOpenGL", m_useOpenGL); + qSettings->setValue("showTileGridLines", m_showTileGridLines); + qSettings->setValue("accessMode", m_accessMode); + qSettings->setValue("useMemoryCache", m_useMemoryCache); + qSettings->setValue("uavSymbol", m_uavSymbol); + qSettings->setValue("cacheLocation", Utils::PathUtils().RemoveStoragePath(m_cacheLocation)); + qSettings->setValue("maxUpdateRate", m_maxUpdateRate); +} +void OPMapGadgetConfiguration::setCacheLocation(QString cacheLocation){ + m_cacheLocation = cacheLocation; +} diff --git a/ground/openpilotgcs/src/plugins/opmap/opmapgadgetconfiguration.h b/ground/openpilotgcs/src/plugins/opmap/opmapgadgetconfiguration.h index 4b4476f71..1e630dc00 100644 --- a/ground/openpilotgcs/src/plugins/opmap/opmapgadgetconfiguration.h +++ b/ground/openpilotgcs/src/plugins/opmap/opmapgadgetconfiguration.h @@ -1,93 +1,97 @@ -/** - ****************************************************************************** - * - * @file opmapgadgetconfiguration.h - * @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010. - * @addtogroup GCSPlugins GCS Plugins - * @{ - * @addtogroup OPMapPlugin OpenPilot Map Plugin - * @{ - * @brief The OpenPilot Map plugin - *****************************************************************************/ -/* - * 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 - */ - -#ifndef OPMAP_GADGETCONFIGURATION_H -#define OPMAP_GADGETCONFIGURATION_H - -#include -#include - -using namespace Core; - -class OPMapGadgetConfiguration : public IUAVGadgetConfiguration -{ -Q_OBJECT - -Q_PROPERTY(QString mapProvider READ mapProvider WRITE setMapProvider) -Q_PROPERTY(int zoommo READ zoom WRITE setZoom) -Q_PROPERTY(double latitude READ latitude WRITE setLatitude) -Q_PROPERTY(double longitude READ longitude WRITE setLongitude) -Q_PROPERTY(bool useOpenGL READ useOpenGL WRITE setUseOpenGL) -Q_PROPERTY(bool showTileGridLines READ showTileGridLines WRITE setShowTileGridLines) -Q_PROPERTY(QString accessMode READ accessMode WRITE setAccessMode) -Q_PROPERTY(bool useMemoryCache READ useMemoryCache WRITE setUseMemoryCache) -Q_PROPERTY(QString cacheLocation READ cacheLocation WRITE setCacheLocation) -Q_PROPERTY(QString uavSymbol READ uavSymbol WRITE setUavSymbol) - -public: - explicit OPMapGadgetConfiguration(QString classId, QSettings* qSettings = 0, QObject *parent = 0); - - void saveConfig(QSettings* settings) const; - IUAVGadgetConfiguration *clone(); - - QString mapProvider() const { return m_mapProvider; } - int zoom() const { return m_defaultZoom; } - double latitude() const { return m_defaultLatitude; } - double longitude() const { return m_defaultLongitude; } - bool useOpenGL() const { return m_useOpenGL; } - bool showTileGridLines() const { return m_showTileGridLines; } - QString accessMode() const { return m_accessMode; } - bool useMemoryCache() const { return m_useMemoryCache; } - QString cacheLocation() const { return m_cacheLocation; } - QString uavSymbol() const { return m_uavSymbol; } - -public slots: - void setMapProvider(QString provider) { m_mapProvider = provider; } - void setZoom(int zoom) { m_defaultZoom = zoom; } - void setLatitude(double latitude) { m_defaultLatitude = latitude; } - void setLongitude(double longitude) { m_defaultLongitude = longitude; } - void setUseOpenGL(bool useOpenGL) { m_useOpenGL = useOpenGL; } - void setShowTileGridLines(bool showTileGridLines) { m_showTileGridLines = showTileGridLines; } - void setAccessMode(QString accessMode) { m_accessMode = accessMode; } - void setUseMemoryCache(bool useMemoryCache) { m_useMemoryCache = useMemoryCache; } - void setCacheLocation(QString cacheLocation); - void setUavSymbol(QString symbol){m_uavSymbol=symbol;} -private: - QString m_mapProvider; - int m_defaultZoom; - double m_defaultLatitude; - double m_defaultLongitude; - bool m_useOpenGL; - bool m_showTileGridLines; - QString m_accessMode; - bool m_useMemoryCache; - QString m_cacheLocation; - QString m_uavSymbol; - -}; - -#endif // OPMAP_GADGETCONFIGURATION_H +/** + ****************************************************************************** + * + * @file opmapgadgetconfiguration.h + * @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010. + * @addtogroup GCSPlugins GCS Plugins + * @{ + * @addtogroup OPMapPlugin OpenPilot Map Plugin + * @{ + * @brief The OpenPilot Map plugin + *****************************************************************************/ +/* + * 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 + */ + +#ifndef OPMAP_GADGETCONFIGURATION_H +#define OPMAP_GADGETCONFIGURATION_H + +#include +#include + +using namespace Core; + +class OPMapGadgetConfiguration : public IUAVGadgetConfiguration +{ +Q_OBJECT + +Q_PROPERTY(QString mapProvider READ mapProvider WRITE setMapProvider) +Q_PROPERTY(int zoommo READ zoom WRITE setZoom) +Q_PROPERTY(double latitude READ latitude WRITE setLatitude) +Q_PROPERTY(double longitude READ longitude WRITE setLongitude) +Q_PROPERTY(bool useOpenGL READ useOpenGL WRITE setUseOpenGL) +Q_PROPERTY(bool showTileGridLines READ showTileGridLines WRITE setShowTileGridLines) +Q_PROPERTY(QString accessMode READ accessMode WRITE setAccessMode) +Q_PROPERTY(bool useMemoryCache READ useMemoryCache WRITE setUseMemoryCache) +Q_PROPERTY(QString cacheLocation READ cacheLocation WRITE setCacheLocation) +Q_PROPERTY(QString uavSymbol READ uavSymbol WRITE setUavSymbol) +Q_PROPERTY(int maxUpdateRate READ maxUpdateRate WRITE setMaxUpdateRate) + +public: + explicit OPMapGadgetConfiguration(QString classId, QSettings* qSettings = 0, QObject *parent = 0); + + void saveConfig(QSettings* settings) const; + IUAVGadgetConfiguration *clone(); + + QString mapProvider() const { return m_mapProvider; } + int zoom() const { return m_defaultZoom; } + double latitude() const { return m_defaultLatitude; } + double longitude() const { return m_defaultLongitude; } + bool useOpenGL() const { return m_useOpenGL; } + bool showTileGridLines() const { return m_showTileGridLines; } + QString accessMode() const { return m_accessMode; } + bool useMemoryCache() const { return m_useMemoryCache; } + QString cacheLocation() const { return m_cacheLocation; } + QString uavSymbol() const { return m_uavSymbol; } + int maxUpdateRate() const { return m_maxUpdateRate; } + +public slots: + void setMapProvider(QString provider) { m_mapProvider = provider; } + void setZoom(int zoom) { m_defaultZoom = zoom; } + void setLatitude(double latitude) { m_defaultLatitude = latitude; } + void setLongitude(double longitude) { m_defaultLongitude = longitude; } + void setUseOpenGL(bool useOpenGL) { m_useOpenGL = useOpenGL; } + void setShowTileGridLines(bool showTileGridLines) { m_showTileGridLines = showTileGridLines; } + void setAccessMode(QString accessMode) { m_accessMode = accessMode; } + void setUseMemoryCache(bool useMemoryCache) { m_useMemoryCache = useMemoryCache; } + void setCacheLocation(QString cacheLocation); + void setUavSymbol(QString symbol){m_uavSymbol=symbol;} + void setMaxUpdateRate(int update_rate){m_maxUpdateRate = update_rate;} + +private: + QString m_mapProvider; + int m_defaultZoom; + double m_defaultLatitude; + double m_defaultLongitude; + bool m_useOpenGL; + bool m_showTileGridLines; + QString m_accessMode; + bool m_useMemoryCache; + QString m_cacheLocation; + QString m_uavSymbol; + int m_maxUpdateRate; +}; + +#endif // OPMAP_GADGETCONFIGURATION_H diff --git a/ground/openpilotgcs/src/plugins/opmap/opmapgadgetoptionspage.cpp b/ground/openpilotgcs/src/plugins/opmap/opmapgadgetoptionspage.cpp index b6f07b9bd..2136a24d0 100644 --- a/ground/openpilotgcs/src/plugins/opmap/opmapgadgetoptionspage.cpp +++ b/ground/openpilotgcs/src/plugins/opmap/opmapgadgetoptionspage.cpp @@ -1,133 +1,149 @@ -/** - ****************************************************************************** - * - * @file opmapgadgetoptionspage.cpp - * @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010. - * @addtogroup GCSPlugins GCS Plugins - * @{ - * @addtogroup OPMapPlugin OpenPilot Map Plugin - * @{ - * @brief The OpenPilot Map plugin - *****************************************************************************/ -/* - * 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 - */ - -#include "opmapgadgetoptionspage.h" -#include "opmapgadgetconfiguration.h" -#include -#include -#include -#include -#include -#include -#include - -#include "opmapcontrol/opmapcontrol.h" -#include "utils/pathutils.h" -#include "ui_opmapgadgetoptionspage.h" - -// ********************************************* - -OPMapGadgetOptionsPage::OPMapGadgetOptionsPage(OPMapGadgetConfiguration *config, QObject *parent) : - IOptionsPage(parent), - m_config(config) -{ -} - -QWidget *OPMapGadgetOptionsPage::createPage(QWidget *parent) -{ - m_page = new Ui::OPMapGadgetOptionsPage(); - QWidget *w = new QWidget(parent); - m_page->setupUi(w); - - // populate the map provider combobox - m_page->providerComboBox->clear(); - m_page->providerComboBox->addItems(mapcontrol::Helper::MapTypes()); - - // populate the access mode combobox - m_page->accessModeComboBox->clear(); - m_page->accessModeComboBox->addItems(mapcontrol::Helper::AccessModeTypes()); - - int index = m_page->providerComboBox->findText(m_config->mapProvider()); - index = (index >= 0) ? index : 0; - m_page->providerComboBox->setCurrentIndex(index); - - m_page->zoomSpinBox->setValue(m_config->zoom()); - m_page->latitudeSpinBox->setValue(m_config->latitude()); - m_page->longitudeSpinBox->setValue(m_config->longitude()); - - m_page->checkBoxUseOpenGL->setChecked(m_config->useOpenGL()); - m_page->checkBoxShowTileGridLines->setChecked(m_config->showTileGridLines()); - - index = m_page->accessModeComboBox->findText(m_config->accessMode()); - index = (index >= 0) ? index : 0; - m_page->accessModeComboBox->setCurrentIndex(index); - - m_page->checkBoxUseMemoryCache->setChecked(m_config->useMemoryCache()); - - m_page->lineEditCacheLocation->setExpectedKind(Utils::PathChooser::Directory); - m_page->lineEditCacheLocation->setPromptDialogTitle(tr("Choose Cache Directory")); - m_page->lineEditCacheLocation->setPath(m_config->cacheLocation()); - - QDir dir(":/uavs/images/"); - QStringList list=dir.entryList(); - foreach(QString i,list) - { - QIcon icon(QPixmap(":/uavs/images/"+i)); - m_page->uavSymbolComboBox->addItem(icon,QString(),i); - } - for(int x=0;xuavSymbolComboBox->count();++x) - { - if(m_page->uavSymbolComboBox->itemData(x).toString()==m_config->uavSymbol()) - { - m_page->uavSymbolComboBox->setCurrentIndex(x); - } - } - - connect(m_page->pushButtonCacheDefaults, SIGNAL(clicked()), this, SLOT(on_pushButtonCacheDefaults_clicked())); - - return w; -} - -void OPMapGadgetOptionsPage::on_pushButtonCacheDefaults_clicked() -{ - int index = m_page->accessModeComboBox->findText("ServerAndCache"); - index = (index >= 0) ? index : 0; - m_page->accessModeComboBox->setCurrentIndex(index); - - m_page->checkBoxUseMemoryCache->setChecked(true); - m_page->lineEditCacheLocation->setPath(Utils::PathUtils().GetStoragePath() + "mapscache" + QDir::separator()); - -} - -void OPMapGadgetOptionsPage::apply() -{ - m_config->setMapProvider(m_page->providerComboBox->currentText()); - m_config->setZoom(m_page->zoomSpinBox->value()); - m_config->setLatitude(m_page->latitudeSpinBox->value()); - m_config->setLongitude(m_page->longitudeSpinBox->value()); - m_config->setUseOpenGL(m_page->checkBoxUseOpenGL->isChecked()); - m_config->setShowTileGridLines(m_page->checkBoxShowTileGridLines->isChecked()); - m_config->setAccessMode(m_page->accessModeComboBox->currentText()); - m_config->setUseMemoryCache(m_page->checkBoxUseMemoryCache->isChecked()); - m_config->setCacheLocation(m_page->lineEditCacheLocation->path()); - m_config->setUavSymbol(m_page->uavSymbolComboBox->itemData(m_page->uavSymbolComboBox->currentIndex()).toString()); -} - -void OPMapGadgetOptionsPage::finish() -{ - delete m_page; -} +/** + ****************************************************************************** + * + * @file opmapgadgetoptionspage.cpp + * @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010. + * @addtogroup GCSPlugins GCS Plugins + * @{ + * @addtogroup OPMapPlugin OpenPilot Map Plugin + * @{ + * @brief The OpenPilot Map plugin + *****************************************************************************/ +/* + * 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 + */ + +#include "opmapgadgetoptionspage.h" +#include "opmapgadgetconfiguration.h" +#include +#include +#include +#include +#include +#include +#include + +#include "opmapcontrol/opmapcontrol.h" +#include "utils/pathutils.h" +#include "ui_opmapgadgetoptionspage.h" + +// ********************************************* + +OPMapGadgetOptionsPage::OPMapGadgetOptionsPage(OPMapGadgetConfiguration *config, QObject *parent) : + IOptionsPage(parent), + m_config(config) +{ +} + +QWidget *OPMapGadgetOptionsPage::createPage(QWidget *parent) +{ + int index; + + m_page = new Ui::OPMapGadgetOptionsPage(); + QWidget *w = new QWidget(parent); + m_page->setupUi(w); + + // populate the map provider combobox + m_page->providerComboBox->clear(); + m_page->providerComboBox->addItems(mapcontrol::Helper::MapTypes()); + + // populate the access mode combobox + m_page->accessModeComboBox->clear(); + m_page->accessModeComboBox->addItems(mapcontrol::Helper::AccessModeTypes()); + + index = m_page->providerComboBox->findText(m_config->mapProvider()); + index = (index >= 0) ? index : 0; + m_page->providerComboBox->setCurrentIndex(index); + + // populate the map max update rate combobox + m_page->maxUpdateRateComboBox->clear(); + m_page->maxUpdateRateComboBox->addItem("100ms", 100); + m_page->maxUpdateRateComboBox->addItem("200ms", 200); + m_page->maxUpdateRateComboBox->addItem("500ms", 500); + m_page->maxUpdateRateComboBox->addItem("1 sec", 1000); + m_page->maxUpdateRateComboBox->addItem("2 sec", 2000); + m_page->maxUpdateRateComboBox->addItem("5 sec", 5000); + + index = m_page->maxUpdateRateComboBox->findData(m_config->maxUpdateRate()); + index = (index >= 0) ? index : 4; + m_page->maxUpdateRateComboBox->setCurrentIndex(index); + + m_page->zoomSpinBox->setValue(m_config->zoom()); + m_page->latitudeSpinBox->setValue(m_config->latitude()); + m_page->longitudeSpinBox->setValue(m_config->longitude()); + + m_page->checkBoxUseOpenGL->setChecked(m_config->useOpenGL()); + m_page->checkBoxShowTileGridLines->setChecked(m_config->showTileGridLines()); + + index = m_page->accessModeComboBox->findText(m_config->accessMode()); + index = (index >= 0) ? index : 0; + m_page->accessModeComboBox->setCurrentIndex(index); + + m_page->checkBoxUseMemoryCache->setChecked(m_config->useMemoryCache()); + + m_page->lineEditCacheLocation->setExpectedKind(Utils::PathChooser::Directory); + m_page->lineEditCacheLocation->setPromptDialogTitle(tr("Choose Cache Directory")); + m_page->lineEditCacheLocation->setPath(m_config->cacheLocation()); + + QDir dir(":/uavs/images/"); + QStringList list=dir.entryList(); + foreach(QString i,list) + { + QIcon icon(QPixmap(":/uavs/images/"+i)); + m_page->uavSymbolComboBox->addItem(icon,QString(),i); + } + for(int x=0;xuavSymbolComboBox->count();++x) + { + if(m_page->uavSymbolComboBox->itemData(x).toString()==m_config->uavSymbol()) + { + m_page->uavSymbolComboBox->setCurrentIndex(x); + } + } + + connect(m_page->pushButtonCacheDefaults, SIGNAL(clicked()), this, SLOT(on_pushButtonCacheDefaults_clicked())); + + return w; +} + +void OPMapGadgetOptionsPage::on_pushButtonCacheDefaults_clicked() +{ + int index = m_page->accessModeComboBox->findText("ServerAndCache"); + index = (index >= 0) ? index : 0; + m_page->accessModeComboBox->setCurrentIndex(index); + + m_page->checkBoxUseMemoryCache->setChecked(true); + m_page->lineEditCacheLocation->setPath(Utils::PathUtils().GetStoragePath() + "mapscache" + QDir::separator()); + +} + +void OPMapGadgetOptionsPage::apply() +{ + m_config->setMapProvider(m_page->providerComboBox->currentText()); + m_config->setZoom(m_page->zoomSpinBox->value()); + m_config->setLatitude(m_page->latitudeSpinBox->value()); + m_config->setLongitude(m_page->longitudeSpinBox->value()); + m_config->setUseOpenGL(m_page->checkBoxUseOpenGL->isChecked()); + m_config->setShowTileGridLines(m_page->checkBoxShowTileGridLines->isChecked()); + m_config->setAccessMode(m_page->accessModeComboBox->currentText()); + m_config->setUseMemoryCache(m_page->checkBoxUseMemoryCache->isChecked()); + m_config->setCacheLocation(m_page->lineEditCacheLocation->path()); + m_config->setUavSymbol(m_page->uavSymbolComboBox->itemData(m_page->uavSymbolComboBox->currentIndex()).toString()); + m_config->setMaxUpdateRate(m_page->maxUpdateRateComboBox->itemData(m_page->maxUpdateRateComboBox->currentIndex()).toInt()); +} + +void OPMapGadgetOptionsPage::finish() +{ + delete m_page; +} diff --git a/ground/openpilotgcs/src/plugins/opmap/opmapgadgetoptionspage.ui b/ground/openpilotgcs/src/plugins/opmap/opmapgadgetoptionspage.ui index 9869ad38d..913678fae 100644 --- a/ground/openpilotgcs/src/plugins/opmap/opmapgadgetoptionspage.ui +++ b/ground/openpilotgcs/src/plugins/opmap/opmapgadgetoptionspage.ui @@ -30,7 +30,7 @@ 5 - + @@ -249,6 +249,19 @@ + + + + + + + Default Max Update Rate + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + diff --git a/ground/openpilotgcs/src/plugins/opmap/opmapgadgetwidget.cpp b/ground/openpilotgcs/src/plugins/opmap/opmapgadgetwidget.cpp index 46fc99e18..abc51de20 100644 --- a/ground/openpilotgcs/src/plugins/opmap/opmapgadgetwidget.cpp +++ b/ground/openpilotgcs/src/plugins/opmap/opmapgadgetwidget.cpp @@ -1,2371 +1,2451 @@ -/** - ****************************************************************************** - * - * @file opmapgadgetwidget.cpp - * @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010. - * @addtogroup GCSPlugins GCS Plugins - * @{ - * @addtogroup OPMapPlugin OpenPilot Map Plugin - * @{ - * @brief The OpenPilot Map plugin - *****************************************************************************/ -/* - * 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 - */ - -#include "opmapgadgetwidget.h" -#include "ui_opmap_widget.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -#include "utils/stylehelper.h" -#include "utils/homelocationutil.h" -#include "utils/worldmagmodel.h" - -#include "uavtalk/telemetrymanager.h" - -#include "positionactual.h" -#include "homelocation.h" - -#define allow_manual_home_location_move - -// ************************************************************************************* - -#define deg_to_rad ((double)M_PI / 180.0) -#define rad_to_deg (180.0 / (double)M_PI) - -#define earth_mean_radius 6371 // kilometers - -#define max_digital_zoom 3 // maximum allowed digital zoom level - -const int safe_area_radius_list[] = {5, 10, 20, 50, 100, 200, 500, 1000, 2000, 5000}; // meters - -const int uav_trail_time_list[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; // seconds - -const int uav_trail_distance_list[] = {1, 2, 5, 10, 20, 50, 100, 200, 500}; // meters - -// ************************************************************************************* - - -// ************************************************************************************* -// NOTE: go back to SVN REV 2137 and earlier to get back to experimental waypoint support. -// ************************************************************************************* - - -// constructor -OPMapGadgetWidget::OPMapGadgetWidget(QWidget *parent) : QWidget(parent) -{ - // ************** - - m_widget = NULL; - m_map = NULL; - findPlaceCompleter = NULL; - - m_mouse_waypoint = NULL; - - pm = NULL; - obm = NULL; - obum = NULL; - - prev_tile_number = 0; - - min_zoom = max_zoom = 0; - - m_map_mode = Normal_MapMode; - - telemetry_connected = false; - - context_menu_lat_lon = mouse_lat_lon = internals::PointLatLng(0, 0); - - setMouseTracking(true); - - pm = ExtensionSystem::PluginManager::instance(); - if (pm) - { - obm = pm->getObject(); - obum = pm->getObject(); - } - - // ************** - // get current location - - double latitude = 0; - double longitude = 0; - double altitude = 0; - - // current position - getUAVPosition(latitude, longitude, altitude); - - internals::PointLatLng pos_lat_lon = internals::PointLatLng(latitude, longitude); - - // ************** - // default home position - - home_position.coord = pos_lat_lon; - home_position.altitude = altitude; - home_position.locked = false; - - // ************** - // default magic waypoint params - - magic_waypoint.map_wp_item = NULL; - magic_waypoint.coord = home_position.coord; - magic_waypoint.altitude = altitude; - magic_waypoint.description = "Magic waypoint"; - magic_waypoint.locked = false; - magic_waypoint.time_seconds = 0; - magic_waypoint.hold_time_seconds = 0; - - // ************** - // create the widget that holds the user controls and the map - - m_widget = new Ui::OPMap_Widget(); - m_widget->setupUi(this); - - // ************** - // create the central map widget - - m_map = new mapcontrol::OPMapWidget(); // create the map object - - m_map->setFrameStyle(QFrame::NoFrame); // no border frame - m_map->setBackgroundBrush(QBrush(Utils::StyleHelper::baseColor())); // tile background - - m_map->configuration->DragButton = Qt::LeftButton; // use the left mouse button for map dragging - - m_widget->horizontalSliderZoom->setMinimum(m_map->MinZoom()); // - m_widget->horizontalSliderZoom->setMaximum(m_map->MaxZoom() + max_digital_zoom); // - - min_zoom = m_widget->horizontalSliderZoom->minimum(); // minimum zoom we can accept - max_zoom = m_widget->horizontalSliderZoom->maximum(); // maximum zoom we can accept - - m_map->SetMouseWheelZoomType(internals::MouseWheelZoomType::MousePositionWithoutCenter); // set how the mouse wheel zoom functions - m_map->SetFollowMouse(true); // we want a contiuous mouse position reading - - m_map->SetShowHome(true); // display the HOME position on the map - m_map->SetShowUAV(true); // display the UAV position on the map - - m_map->Home->SetSafeArea(safe_area_radius_list[0]); // set radius (meters) - m_map->Home->SetShowSafeArea(true); // show the safe area - - m_map->UAV->SetTrailTime(uav_trail_time_list[0]); // seconds - m_map->UAV->SetTrailDistance(uav_trail_distance_list[1]); // meters - - m_map->UAV->SetTrailType(UAVTrailType::ByTimeElapsed); -// m_map->UAV->SetTrailType(UAVTrailType::ByDistance); - - m_map->GPS->SetTrailTime(uav_trail_time_list[0]); // seconds - m_map->GPS->SetTrailDistance(uav_trail_distance_list[1]); // meters - - m_map->GPS->SetTrailType(UAVTrailType::ByTimeElapsed); -// m_map->GPS->SetTrailType(UAVTrailType::ByDistance); - - // ************** - - setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding); - - QVBoxLayout *layout = new QVBoxLayout; - layout->setSpacing(0); - layout->setContentsMargins(0, 0, 0, 0); - layout->addWidget(m_map); - m_widget->mapWidget->setLayout(layout); - - // ************** - // set the user control options - - // TODO: this switch does not make sense, does it?? - - switch (m_map_mode) - { - case Normal_MapMode: - m_widget->toolButtonMagicWaypointMapMode->setChecked(false); - m_widget->toolButtonNormalMapMode->setChecked(true); - hideMagicWaypointControls(); - break; - - case MagicWaypoint_MapMode: - m_widget->toolButtonNormalMapMode->setChecked(false); - m_widget->toolButtonMagicWaypointMapMode->setChecked(true); - showMagicWaypointControls(); - break; - - default: - m_map_mode = Normal_MapMode; - m_widget->toolButtonMagicWaypointMapMode->setChecked(false); - m_widget->toolButtonNormalMapMode->setChecked(true); - hideMagicWaypointControls(); - break; - } - - m_widget->labelUAVPos->setText("---"); - m_widget->labelMapPos->setText("---"); - m_widget->labelMousePos->setText("---"); - m_widget->labelMapZoom->setText("---"); - - - // Splitter is not used at the moment: - // m_widget->splitter->setCollapsible(1, false); - - // set the size of the collapsable widgets - //QList m_SizeList; - //m_SizeList << 0 << 0 << 0; - //m_widget->splitter->setSizes(m_SizeList); - - m_widget->progressBarMap->setMaximum(1); - -/* - #if defined(Q_OS_MAC) - #elif defined(Q_OS_WIN) - m_widget->comboBoxFindPlace->clear(); - loadComboBoxLines(m_widget->comboBoxFindPlace, QCoreApplication::applicationDirPath() + "/opmap_find_place_history.txt"); - m_widget->comboBoxFindPlace->setCurrentIndex(-1); - #else - #endif -*/ - - - // ************** - // map stuff - - connect(m_map, SIGNAL(zoomChanged(double, double, double)), this, SLOT(zoomChanged(double, double, double))); // map zoom change signals - connect(m_map, SIGNAL(OnCurrentPositionChanged(internals::PointLatLng)), this, SLOT(OnCurrentPositionChanged(internals::PointLatLng))); // map poisition change signals - connect(m_map, SIGNAL(OnTileLoadComplete()), this, SLOT(OnTileLoadComplete())); // tile loading stop signals - connect(m_map, SIGNAL(OnTileLoadStart()), this, SLOT(OnTileLoadStart())); // tile loading start signals - connect(m_map, SIGNAL(OnMapDrag()), this, SLOT(OnMapDrag())); // map drag signals - connect(m_map, SIGNAL(OnMapZoomChanged()), this, SLOT(OnMapZoomChanged())); // map zoom changed - connect(m_map, SIGNAL(OnMapTypeChanged(MapType::Types)), this, SLOT(OnMapTypeChanged(MapType::Types))); // map type changed - connect(m_map, SIGNAL(OnEmptyTileError(int, core::Point)), this, SLOT(OnEmptyTileError(int, core::Point))); // tile error - connect(m_map, SIGNAL(OnTilesStillToLoad(int)), this, SLOT(OnTilesStillToLoad(int))); // tile loading signals - connect(m_map, SIGNAL(WPNumberChanged(int const&,int const&,WayPointItem*)), this, SLOT(WPNumberChanged(int const&,int const&,WayPointItem*))); - connect(m_map, SIGNAL(WPValuesChanged(WayPointItem*)), this, SLOT(WPValuesChanged(WayPointItem*))); - connect(m_map, SIGNAL(WPInserted(int const&, WayPointItem*)), this, SLOT(WPInserted(int const&, WayPointItem*))); - connect(m_map, SIGNAL(WPDeleted(int const&)), this, SLOT(WPDeleted(int const&))); - - m_map->SetCurrentPosition(home_position.coord); // set the map position - m_map->Home->SetCoord(home_position.coord); // set the HOME position - m_map->UAV->SetUAVPos(home_position.coord, 0.0); // set the UAV position - m_map->GPS->SetUAVPos(home_position.coord, 0.0); // set the UAV position - - // ************** - // create various context menu (mouse right click menu) actions - - createActions(); - - // ************** - // connect to the UAVObject updates we require to become a bit aware of our environment: - - if (pm) - { - // Register for Home Location state changes - if (obm) - { - UAVDataObject *obj = dynamic_cast(obm->getObject(QString("HomeLocation"))); - if (obj) - { - connect(obj, SIGNAL(objectUpdated(UAVObject *)), this , SLOT(homePositionUpdated(UAVObject *))); - } - } - - // Listen to telemetry connection events - TelemetryManager *telMngr = pm->getObject(); - if (telMngr) - { - connect(telMngr, SIGNAL(connected()), this, SLOT(onTelemetryConnect())); - connect(telMngr, SIGNAL(disconnected()), this, SLOT(onTelemetryDisconnect())); - } - } - - // ************** - // create the desired timers - - m_updateTimer = new QTimer(); - m_updateTimer->setInterval(200); - connect(m_updateTimer, SIGNAL(timeout()), this, SLOT(updatePosition())); - m_updateTimer->start(); - - m_statusUpdateTimer = new QTimer(); - m_statusUpdateTimer->setInterval(100); - connect(m_statusUpdateTimer, SIGNAL(timeout()), this, SLOT(updateMousePos())); - m_statusUpdateTimer->start(); - - // ************** - - m_map->setFocus(); -} - -// destructor -OPMapGadgetWidget::~OPMapGadgetWidget() -{ - if (m_map) - { - disconnect(m_map, 0, 0, 0); - m_map->SetShowHome(false); // doing this appears to stop the map lib crashing on exit - m_map->SetShowUAV(false); // " " - } - - - // this destructor doesn't appear to be called at shutdown??? - -// #if defined(Q_OS_MAC) -// #elif defined(Q_OS_WIN) -// saveComboBoxLines(m_widget->comboBoxFindPlace, QCoreApplication::applicationDirPath() + "/opmap_find_place_history.txt"); -// #else -// #endif - - m_waypoint_list_mutex.lock(); - foreach (t_waypoint *wp, m_waypoint_list) - { - if (!wp) continue; - - - // todo: - - - delete wp->map_wp_item; - } - m_waypoint_list_mutex.unlock(); - m_waypoint_list.clear(); - - if (m_map) - { - delete m_map; - m_map = NULL; - } -} - -// ************************************************************************************* -// widget signals .. the mouseMoveEvent does not get called - don't yet know why - -void OPMapGadgetWidget::resizeEvent(QResizeEvent *event) -{ - qDebug("opmap: resizeEvent"); - - QWidget::resizeEvent(event); -} - -void OPMapGadgetWidget::mouseMoveEvent(QMouseEvent *event) -{ - qDebug("opmap: mouseMoveEvent"); - - if (m_widget && m_map) - { - } - - if (event->buttons() & Qt::LeftButton) - { -// QPoint pos = event->pos(); - } - - QWidget::mouseMoveEvent(event); -} - -void OPMapGadgetWidget::contextMenuEvent(QContextMenuEvent *event) -{ // the user has right clicked on the map - create the pop-up context menu and display it - - QString s; - - if (!m_widget || !m_map) - return; - - if (event->reason() != QContextMenuEvent::Mouse) - return; // not a mouse click event - - // current mouse position - QPoint p = m_map->mapFromGlobal(event->globalPos()); - context_menu_lat_lon = m_map->GetFromLocalToLatLng(p); -// context_menu_lat_lon = m_map->currentMousePosition(); - - if (!m_map->contentsRect().contains(p)) - return; // the mouse click was not on the map - - // show the mouse position - s = QString::number(context_menu_lat_lon.Lat(), 'f', 7) + " " + QString::number(context_menu_lat_lon.Lng(), 'f', 7); - m_widget->labelMousePos->setText(s); - - // find out if we have a waypoint under the mouse cursor - QGraphicsItem *item = m_map->itemAt(p); - m_mouse_waypoint = qgraphicsitem_cast(item); - - // find out if the waypoint is locked (or not) - bool waypoint_locked = false; - if (m_mouse_waypoint) - waypoint_locked = (m_mouse_waypoint->flags() & QGraphicsItem::ItemIsMovable) == 0; - - // **************** - // Dynamically create the popup menu - - QMenu menu(this); - - menu.addAction(closeAct1); - - menu.addSeparator(); - - menu.addAction(reloadAct); - - menu.addSeparator(); - - switch (m_map_mode) - { - case Normal_MapMode: s = tr(" (Normal)"); break; - case MagicWaypoint_MapMode: s = tr(" (Magic Waypoint)"); break; - default: s = tr(" (Unknown)"); break; - } - for (int i = 0; i < mapModeAct.count(); i++) - { // set the menu to checked (or not) - QAction *act = mapModeAct.at(i); - if (!act) continue; - if (act->data().toInt() == (int)m_map_mode) - act->setChecked(true); - } - QMenu mapModeSubMenu(tr("Map mode") + s, this); - for (int i = 0; i < mapModeAct.count(); i++) - mapModeSubMenu.addAction(mapModeAct.at(i)); - menu.addMenu(&mapModeSubMenu); - - menu.addSeparator(); - - QMenu copySubMenu(tr("Copy"), this); - copySubMenu.addAction(copyMouseLatLonToClipAct); - copySubMenu.addAction(copyMouseLatToClipAct); - copySubMenu.addAction(copyMouseLonToClipAct); - menu.addMenu(©SubMenu); - - menu.addSeparator(); - - /* - menu.addAction(findPlaceAct); - - menu.addSeparator(); - */ - - menu.addAction(showSafeAreaAct); - QMenu safeAreaSubMenu(tr("Safe Area Radius") + " (" + QString::number(m_map->Home->SafeArea()) + "m)", this); - for (int i = 0; i < safeAreaAct.count(); i++) - safeAreaSubMenu.addAction(safeAreaAct.at(i)); - menu.addMenu(&safeAreaSubMenu); - - menu.addSeparator(); - - menu.addAction(showCompassAct); - - menu.addAction(showDiagnostics); - - menu.addSeparator()->setText(tr("Zoom")); - - menu.addAction(zoomInAct); - menu.addAction(zoomOutAct); - - QMenu zoomSubMenu(tr("&Zoom ") + "(" + QString::number(m_map->ZoomTotal()) + ")", this); - for (int i = 0; i < zoomAct.count(); i++) - zoomSubMenu.addAction(zoomAct.at(i)); - menu.addMenu(&zoomSubMenu); - - menu.addSeparator(); - - menu.addAction(goMouseClickAct); - - menu.addSeparator()->setText(tr("HOME")); - - menu.addAction(setHomeAct); - menu.addAction(showHomeAct); - menu.addAction(goHomeAct); - - // **** - // uav trails - - menu.addSeparator()->setText(tr("UAV Trail")); - - QMenu uavTrailTypeSubMenu(tr("UAV trail type") + " (" + mapcontrol::Helper::StrFromUAVTrailType(m_map->UAV->GetTrailType()) + ")", this); - for (int i = 0; i < uavTrailTypeAct.count(); i++) - uavTrailTypeSubMenu.addAction(uavTrailTypeAct.at(i)); - menu.addMenu(&uavTrailTypeSubMenu); - - QMenu uavTrailTimeSubMenu(tr("UAV trail time") + " (" + QString::number(m_map->UAV->TrailTime()) + " sec)", this); - for (int i = 0; i < uavTrailTimeAct.count(); i++) - uavTrailTimeSubMenu.addAction(uavTrailTimeAct.at(i)); - menu.addMenu(&uavTrailTimeSubMenu); - - QMenu uavTrailDistanceSubMenu(tr("UAV trail distance") + " (" + QString::number(m_map->UAV->TrailDistance()) + " meters)", this); - for (int i = 0; i < uavTrailDistanceAct.count(); i++) - uavTrailDistanceSubMenu.addAction(uavTrailDistanceAct.at(i)); - menu.addMenu(&uavTrailDistanceSubMenu); - - menu.addAction(showTrailAct); - - menu.addAction(showTrailLineAct); - - menu.addAction(clearUAVtrailAct); - - // **** - - menu.addSeparator()->setText(tr("UAV")); - - menu.addAction(showUAVAct); - menu.addAction(followUAVpositionAct); - menu.addAction(followUAVheadingAct); - menu.addAction(goUAVAct); - - // ********* - - switch (m_map_mode) - { - case Normal_MapMode: - // only show the waypoint stuff if not in 'magic waypoint' mode - /* - menu.addSeparator()->setText(tr("Waypoints")); - - menu.addAction(wayPointEditorAct); - menu.addAction(addWayPointAct); - - if (m_mouse_waypoint) - { // we have a waypoint under the mouse - menu.addAction(editWayPointAct); - - lockWayPointAct->setChecked(waypoint_locked); - menu.addAction(lockWayPointAct); - - if (!waypoint_locked) - menu.addAction(deleteWayPointAct); - } - - m_waypoint_list_mutex.lock(); - if (m_waypoint_list.count() > 0) - menu.addAction(clearWayPointsAct); // we have waypoints - m_waypoint_list_mutex.unlock(); - */ - - break; - - case MagicWaypoint_MapMode: - menu.addSeparator()->setText(tr("Waypoints")); - menu.addAction(homeMagicWaypointAct); - break; - } - - // ********* - - menu.addSeparator(); - - menu.addAction(closeAct2); - - menu.exec(event->globalPos()); // popup the menu - - // **************** -} - -void OPMapGadgetWidget::keyPressEvent(QKeyEvent* event) -{ - qDebug() << "opmap: keyPressEvent, key =" << event->key() << endl; - - switch (event->key()) - { - case Qt::Key_Escape: - break; - - case Qt::Key_F1: - break; - - case Qt::Key_F2: - break; - - case Qt::Key_Up: - break; - - case Qt::Key_Down: - break; - - case Qt::Key_Left: - break; - - case Qt::Key_Right: - break; - - case Qt::Key_PageUp: - break; - - case Qt::Key_PageDown: - break; - } -} - -// ************************************************************************************* -// timer signals - - -/** - Updates the UAV position on the map. It is called every 200ms - by a timer. - - TODO: consider updating upon object update, not timer. - */ -void OPMapGadgetWidget::updatePosition() -{ - if (!m_widget || !m_map) - return; - - QMutexLocker locker(&m_map_mutex); -//Pip I'm sorry, I know this was here with a purpose vvv - //if (!telemetry_connected) - // return; - - double latitude; - double longitude; - double altitude; - - // get current UAV position - if (!getUAVPosition(latitude, longitude, altitude)) - return; - - // get current UAV heading - float yaw = getUAV_Yaw(); - - internals::PointLatLng uav_pos = internals::PointLatLng(latitude, longitude); // current UAV position - float uav_heading_degrees = yaw; // current UAV heading - float uav_altitude_meters = altitude; // current UAV height - float uav_ground_speed_meters_per_second = 0; //data.Groundspeed; // current UAV ground speed - - // display the UAV lat/lon position - QString str = - "lat: " + QString::number(uav_pos.Lat(), 'f', 7) + - " lon: " + QString::number(uav_pos.Lng(), 'f', 7) + - " " + QString::number(uav_heading_degrees, 'f', 1) + "deg" + - " " + QString::number(uav_altitude_meters, 'f', 1) + "m" + - " " + QString::number(uav_ground_speed_meters_per_second, 'f', 1) + "m/s"; - m_widget->labelUAVPos->setText(str); - - m_map->UAV->SetUAVPos(uav_pos, uav_altitude_meters); // set the maps UAV position - // qDebug()<<"UAVPOSITION"<UAV->SetUAVHeading(uav_heading_degrees); // set the maps UAV heading - - if (!getGPSPosition(latitude, longitude, altitude)) - return; - - uav_pos = internals::PointLatLng(latitude, longitude); // current UAV position - m_map->GPS->SetUAVPos(uav_pos, uav_altitude_meters); // set the maps UAV position - m_map->GPS->SetUAVHeading(uav_heading_degrees); // set the maps UAV heading -} - -/** - Update plugin behaviour based on mouse position; Called every few ms by a - timer. - */ -void OPMapGadgetWidget::updateMousePos() -{ - if (!m_widget || !m_map) - return; - - QMutexLocker locker(&m_map_mutex); - - QPoint p = m_map->mapFromGlobal(QCursor::pos()); - internals::PointLatLng lat_lon = m_map->GetFromLocalToLatLng(p); // fetch the current lat/lon mouse position - - if (!m_map->contentsRect().contains(p)) - return; // the mouse is not on the map - -// internals::PointLatLng lat_lon = m_map->currentMousePosition(); // fetch the current lat/lon mouse position - - QGraphicsItem *item = m_map->itemAt(p); - - // find out if we are over the home position - mapcontrol::HomeItem *home = qgraphicsitem_cast(item); - - // find out if we are over the UAV - mapcontrol::UAVItem *uav = qgraphicsitem_cast(item); - - // find out if we have a waypoint under the mouse cursor - mapcontrol::WayPointItem *wp = qgraphicsitem_cast(item); - - if (mouse_lat_lon == lat_lon) - return; // the mouse has not moved - - mouse_lat_lon = lat_lon; // yes it has! - - internals::PointLatLng home_lat_lon = m_map->Home->Coord(); - - QString s = QString::number(mouse_lat_lon.Lat(), 'f', 7) + " " + QString::number(mouse_lat_lon.Lng(), 'f', 7); - if (wp) - { - s += " wp[" + QString::number(wp->Number()) + "]"; - - double dist = distance(home_lat_lon, wp->Coord()); - double bear = bearing(home_lat_lon, wp->Coord()); - s += " " + QString::number(dist * 1000, 'f', 1) + "m"; - s += " " + QString::number(bear, 'f', 1) + "deg"; - } - else - if (home) - { - s += " home"; - - double dist = distance(home_lat_lon, mouse_lat_lon); - double bear = bearing(home_lat_lon, mouse_lat_lon); - s += " " + QString::number(dist * 1000, 'f', 1) + "m"; - s += " " + QString::number(bear, 'f', 1) + "deg"; - } - else - if (uav) - { - s += " uav"; - - double latitude; - double longitude; - double altitude; - if (getUAVPosition(latitude, longitude, altitude)) // get current UAV position - { - internals::PointLatLng uav_pos = internals::PointLatLng(latitude, longitude); - -// double dist = distance(home_lat_lon, uav_pos); -// double bear = bearing(home_lat_lon, uav_pos); -// s += " " + QString::number(dist * 1000, 'f', 1) + "m"; -// s += " " + QString::number(bear, 'f', 1) + "deg"; - } - } - m_widget->labelMousePos->setText(s); -} - -// ************************************************************************************* -// map signals - - -/** - Update the Plugin UI to reflect a change in zoom level - */ -void OPMapGadgetWidget::zoomChanged(double zoomt, double zoom, double zoomd) -{ - if (!m_widget || !m_map) - return; - - QString s = "tot:" + QString::number(zoomt, 'f', 1) + " rea:" + QString::number(zoom, 'f', 1) + " dig:" + QString::number(zoomd, 'f', 1); - m_widget->labelMapZoom->setText(s); - - int i_zoom = (int)(zoomt + 0.5); - - if (i_zoom < min_zoom) i_zoom = min_zoom; - else - if (i_zoom > max_zoom) i_zoom = max_zoom; - - if (m_widget->horizontalSliderZoom->value() != i_zoom) - m_widget->horizontalSliderZoom->setValue(i_zoom); // set the GUI zoom slider position - - int index0_zoom = i_zoom - min_zoom; // zoom level starting at index level '0' - if (index0_zoom < zoomAct.count()) - zoomAct.at(index0_zoom)->setChecked(true); // set the right-click context menu zoom level -} - -void OPMapGadgetWidget::OnMapDrag() -{ -} - -void OPMapGadgetWidget::OnCurrentPositionChanged(internals::PointLatLng point) -{ - if (!m_widget || !m_map) - return; - - QString coord_str = QString::number(point.Lat(), 'f', 7) + " " + QString::number(point.Lng(), 'f', 7) + " "; - m_widget->labelMapPos->setText(coord_str); -} - -/** - Update the progress bar while there are still tiles to load - */ -void OPMapGadgetWidget::OnTilesStillToLoad(int number) -{ - if (!m_widget || !m_map) - return; - -// if (prev_tile_number < number || m_widget->progressBarMap->maximum() < number) -// m_widget->progressBarMap->setMaximum(number); - - if (m_widget->progressBarMap->maximum() < number) - m_widget->progressBarMap->setMaximum(number); - - m_widget->progressBarMap->setValue(m_widget->progressBarMap->maximum() - number); // update the progress bar - -// m_widget->labelNumTilesToLoad->setText(QString::number(number)); - - prev_tile_number = number; -} - -/** - Show the progress bar as soon as the map lib starts downloading - */ -void OPMapGadgetWidget::OnTileLoadStart() -{ - if (!m_widget || !m_map) - return; - - m_widget->progressBarMap->setVisible(true); -} - -/** - Hide the progress bar once the map lib has finished downloading - - TODO: somehow this gets called before tile load is actually complete? - */ - -void OPMapGadgetWidget::OnTileLoadComplete() -{ - if (!m_widget || !m_map) - return; - - m_widget->progressBarMap->setVisible(false); -} - -void OPMapGadgetWidget::OnMapZoomChanged() -{ -} - -void OPMapGadgetWidget::OnMapTypeChanged(MapType::Types type) -{ - Q_UNUSED(type); -} - -void OPMapGadgetWidget::OnEmptyTileError(int zoom, core::Point pos) -{ - Q_UNUSED(zoom); - Q_UNUSED(pos); -} - -void OPMapGadgetWidget::WPNumberChanged(int const &oldnumber, int const &newnumber, WayPointItem *waypoint) -{ - Q_UNUSED(oldnumber); - Q_UNUSED(newnumber); - Q_UNUSED(waypoint); -} - -void OPMapGadgetWidget::WPValuesChanged(WayPointItem *waypoint) -{ -// qDebug("opmap: WPValuesChanged"); - - switch (m_map_mode) - { - case Normal_MapMode: - m_waypoint_list_mutex.lock(); - foreach (t_waypoint *wp, m_waypoint_list) - { // search for the waypoint in our own waypoint list and update it - if (!wp) continue; - if (!wp->map_wp_item) continue; - if (wp->map_wp_item != waypoint) continue; - // found the waypoint in our list - wp->coord = waypoint->Coord(); - wp->altitude = waypoint->Altitude(); - wp->description = waypoint->Description(); - break; - } - m_waypoint_list_mutex.unlock(); - break; - - case MagicWaypoint_MapMode: - // update our copy of the magic waypoint - if (magic_waypoint.map_wp_item && magic_waypoint.map_wp_item == waypoint) - { - magic_waypoint.coord = waypoint->Coord(); - magic_waypoint.altitude = waypoint->Altitude(); - magic_waypoint.description = waypoint->Description(); - - // move the UAV to the magic waypoint position - // moveToMagicWaypointPosition(); - } - break; - } - -} - -/** - TODO: slot to do something upon Waypoint insertion - */ -void OPMapGadgetWidget::WPInserted(int const &number, WayPointItem *waypoint) -{ - Q_UNUSED(number); - Q_UNUSED(waypoint); -} - -/** - TODO: slot to do something upon Waypoint deletion - */ -void OPMapGadgetWidget::WPDeleted(int const &number) -{ - Q_UNUSED(number); -} - - -void OPMapGadgetWidget::on_toolButtonZoomP_clicked() -{ - QMutexLocker locker(&m_map_mutex); - zoomIn(); -} - -void OPMapGadgetWidget::on_toolButtonZoomM_clicked() -{ - QMutexLocker locker(&m_map_mutex); - zoomOut(); -} - -void OPMapGadgetWidget::on_toolButtonMapHome_clicked() -{ - QMutexLocker locker(&m_map_mutex); - goHome(); -} - -void OPMapGadgetWidget::on_toolButtonMapUAV_clicked() -{ - if (!m_widget || !m_map) - return; - - QMutexLocker locker(&m_map_mutex); - - followUAVpositionAct->toggle(); -} - -void OPMapGadgetWidget::on_toolButtonMapUAVheading_clicked() -{ - if (!m_widget || !m_map) - return; - - followUAVheadingAct->toggle(); -} - -void OPMapGadgetWidget::on_horizontalSliderZoom_sliderMoved(int position) -{ - if (!m_widget || !m_map) - return; - - QMutexLocker locker(&m_map_mutex); - - setZoom(position); -} - - -void OPMapGadgetWidget::on_toolButtonNormalMapMode_clicked() -{ - setMapMode(Normal_MapMode); -} - -void OPMapGadgetWidget::on_toolButtonMagicWaypointMapMode_clicked() -{ - setMapMode(MagicWaypoint_MapMode); -} - -void OPMapGadgetWidget::on_toolButtonHomeWaypoint_clicked() -{ - homeMagicWaypoint(); -} - -void OPMapGadgetWidget::on_toolButtonMoveToWP_clicked() -{ - moveToMagicWaypointPosition(); -} - -// ************************************************************************************* -// public slots - -void OPMapGadgetWidget::onTelemetryConnect() -{ - telemetry_connected = true; - - if (!obum) return; - - bool set; - double LLA[3]; - - // *********************** - // fetch the home location - - if (obum->getHomeLocation(set, LLA) < 0) - return; // error - - setHome(internals::PointLatLng(LLA[0], LLA[1])); - - if (m_map) - m_map->SetCurrentPosition(home_position.coord); // set the map position - - // *********************** -} - -void OPMapGadgetWidget::onTelemetryDisconnect() -{ - telemetry_connected = false; -} - -// Updates the Home position icon whenever the HomePosition object is updated -void OPMapGadgetWidget::homePositionUpdated(UAVObject *hp) -{ - if (!hp) - return; - - double lat = hp->getField("Latitude")->getDouble() * 1e-7; - double lon = hp->getField("Longitude")->getDouble() * 1e-7; - setHome(internals::PointLatLng(lat, lon)); -} - -// ************************************************************************************* -// public functions - -/** - Sets the home position on the map widget - */ -void OPMapGadgetWidget::setHome(QPointF pos) -{ - if (!m_widget || !m_map) - return; - - double latitude = pos.x(); - double longitude = pos.y(); - - if (latitude > 90) latitude = 90; - else - if (latitude < -90) latitude = -90; - - if (longitude != longitude) longitude = 0; // nan detection - else - if (longitude > 180) longitude = 180; - else - if (longitude < -180) longitude = -180; - - setHome(internals::PointLatLng(latitude, longitude)); -} - -/** - Sets the home position on the map widget - */ -void OPMapGadgetWidget::setHome(internals::PointLatLng pos_lat_lon) -{ - if (!m_widget || !m_map) - return; - - if (pos_lat_lon.Lat() != pos_lat_lon.Lat() || pos_lat_lon.Lng() != pos_lat_lon.Lng()) - return;; // nan prevention - - double latitude = pos_lat_lon.Lat(); - double longitude = pos_lat_lon.Lng(); - - if (latitude != latitude) latitude = 0; // nan detection - else - if (latitude > 90) latitude = 90; - else - if (latitude < -90) latitude = -90; - - if (longitude != longitude) longitude = 0; // nan detection - else - if (longitude > 180) longitude = 180; - else - if (longitude < -180) longitude = -180; - - // ********* - - home_position.coord = internals::PointLatLng(latitude, longitude); - - m_map->Home->SetCoord(home_position.coord); - m_map->Home->RefreshPos(); - - // move the magic waypoint to keep it within the safe area boundry - keepMagicWaypointWithInSafeArea(); -} - - -/** - Centers the map over the home position - */ -void OPMapGadgetWidget::goHome() -{ - if (!m_widget || !m_map) - return; - - followUAVpositionAct->setChecked(false); - - internals::PointLatLng home_pos = home_position.coord; // get the home location - m_map->SetCurrentPosition(home_pos); // center the map onto the home location -} - - -void OPMapGadgetWidget::zoomIn() -{ - if (!m_widget || !m_map) - return; - - int zoom = m_map->ZoomTotal() + 1; - - if (zoom < min_zoom) zoom = min_zoom; - else - if (zoom > max_zoom) zoom = max_zoom; - - m_map->SetZoom(zoom); -} - -void OPMapGadgetWidget::zoomOut() -{ - if (!m_widget || !m_map) - return; - - int zoom = m_map->ZoomTotal() - 1; - - if (zoom < min_zoom) zoom = min_zoom; - else - if (zoom > max_zoom) zoom = max_zoom; - - m_map->SetZoom(zoom); -} - -void OPMapGadgetWidget::setZoom(int zoom) -{ - if (!m_widget || !m_map) - return; - - if (zoom < min_zoom) zoom = min_zoom; - else - if (zoom > max_zoom) zoom = max_zoom; - - internals::MouseWheelZoomType::Types zoom_type = m_map->GetMouseWheelZoomType(); - m_map->SetMouseWheelZoomType(internals::MouseWheelZoomType::ViewCenter); - - m_map->SetZoom(zoom); - - m_map->SetMouseWheelZoomType(zoom_type); -} - -void OPMapGadgetWidget::setPosition(QPointF pos) -{ - if (!m_widget || !m_map) - return; - - double latitude = pos.y(); - double longitude = pos.x(); - - if (latitude != latitude || longitude != longitude) - return; // nan prevention - - if (latitude > 90) latitude = 90; - else - if (latitude < -90) latitude = -90; - - if (longitude > 180) longitude = 180; - else - if (longitude < -180) longitude = -180; - - m_map->SetCurrentPosition(internals::PointLatLng(latitude, longitude)); -} - -void OPMapGadgetWidget::setMapProvider(QString provider) -{ - if (!m_widget || !m_map) - return; - - m_map->SetMapType(mapcontrol::Helper::MapTypeFromString(provider)); -} - -void OPMapGadgetWidget::setAccessMode(QString accessMode) -{ - if (!m_widget || !m_map) - return; - - m_map->configuration->SetAccessMode(mapcontrol::Helper::AccessModeFromString(accessMode)); -} - -void OPMapGadgetWidget::setUseOpenGL(bool useOpenGL) -{ - if (!m_widget || !m_map) - return; - - m_map->SetUseOpenGL(useOpenGL); -} - -void OPMapGadgetWidget::setShowTileGridLines(bool showTileGridLines) -{ - if (!m_widget || !m_map) - return; - - m_map->SetShowTileGridLines(showTileGridLines); -} - -void OPMapGadgetWidget::setUseMemoryCache(bool useMemoryCache) -{ - if (!m_widget || !m_map) - return; - - m_map->configuration->SetUseMemoryCache(useMemoryCache); -} - -void OPMapGadgetWidget::setCacheLocation(QString cacheLocation) -{ - if (!m_widget || !m_map) - return; - - cacheLocation = cacheLocation.simplified(); // remove any surrounding spaces - - if (cacheLocation.isEmpty()) return; - -// #if defined(Q_WS_WIN) -// if (!cacheLocation.endsWith('\\')) cacheLocation += '\\'; -// #elif defined(Q_WS_X11) - if (!cacheLocation.endsWith(QDir::separator())) cacheLocation += QDir::separator(); -// #elif defined(Q_WS_MAC) -// if (!cacheLocation.endsWith(QDir::separator())) cacheLocation += QDir::separator(); -// #endif - - QDir dir; - if (!dir.exists(cacheLocation)) - if (!dir.mkpath(cacheLocation)) - return; - -// qDebug() << "opmap: map cache dir: " << cacheLocation; - - m_map->configuration->SetCacheLocation(cacheLocation); -} - -void OPMapGadgetWidget::setMapMode(opMapModeType mode) -{ - if (!m_widget || !m_map) - return; - - if (mode != Normal_MapMode && mode != MagicWaypoint_MapMode) - mode = Normal_MapMode; // fix error - - if (m_map_mode == mode) - { // no change in map mode - switch (mode) - { // make sure the UI buttons are set correctly - case Normal_MapMode: - m_widget->toolButtonMagicWaypointMapMode->setChecked(false); - m_widget->toolButtonNormalMapMode->setChecked(true); - break; - case MagicWaypoint_MapMode: - m_widget->toolButtonNormalMapMode->setChecked(false); - m_widget->toolButtonMagicWaypointMapMode->setChecked(true); - break; - } - return; - } - - switch (mode) - { - case Normal_MapMode: - m_map_mode = Normal_MapMode; - - m_widget->toolButtonMagicWaypointMapMode->setChecked(false); - m_widget->toolButtonNormalMapMode->setChecked(true); - - hideMagicWaypointControls(); - - // delete the magic waypoint from the map - if (magic_waypoint.map_wp_item) - { - magic_waypoint.coord = magic_waypoint.map_wp_item->Coord(); - magic_waypoint.altitude = magic_waypoint.map_wp_item->Altitude(); - magic_waypoint.description = magic_waypoint.map_wp_item->Description(); - magic_waypoint.map_wp_item = NULL; - } - m_map->WPDeleteAll(); - - // restore the normal waypoints on the map - m_waypoint_list_mutex.lock(); - foreach (t_waypoint *wp, m_waypoint_list) - { - if (!wp) continue; - wp->map_wp_item = m_map->WPCreate(wp->coord, wp->altitude, wp->description); - if (!wp->map_wp_item) continue; - wp->map_wp_item->setZValue(10 + wp->map_wp_item->Number()); - wp->map_wp_item->setFlag(QGraphicsItem::ItemIsMovable, !wp->locked); - if (!wp->locked) - wp->map_wp_item->picture.load(QString::fromUtf8(":/opmap/images/waypoint_marker1.png")); - else - wp->map_wp_item->picture.load(QString::fromUtf8(":/opmap/images/waypoint_marker2.png")); - wp->map_wp_item->update(); - } - m_waypoint_list_mutex.unlock(); - - break; - - case MagicWaypoint_MapMode: - m_map_mode = MagicWaypoint_MapMode; - - m_widget->toolButtonNormalMapMode->setChecked(false); - m_widget->toolButtonMagicWaypointMapMode->setChecked(true); - - showMagicWaypointControls(); - - // delete the normal waypoints from the map - m_waypoint_list_mutex.lock(); - foreach (t_waypoint *wp, m_waypoint_list) - { - if (!wp) continue; - if (!wp->map_wp_item) continue; - wp->coord = wp->map_wp_item->Coord(); - wp->altitude = wp->map_wp_item->Altitude(); - wp->description = wp->map_wp_item->Description(); - wp->locked = (wp->map_wp_item->flags() & QGraphicsItem::ItemIsMovable) == 0; - wp->map_wp_item = NULL; - } - m_map->WPDeleteAll(); - m_waypoint_list_mutex.unlock(); - - // restore the magic waypoint on the map - magic_waypoint.map_wp_item = m_map->WPCreate(magic_waypoint.coord, magic_waypoint.altitude, magic_waypoint.description); - magic_waypoint.map_wp_item->setZValue(10 + magic_waypoint.map_wp_item->Number()); - magic_waypoint.map_wp_item->SetShowNumber(false); - magic_waypoint.map_wp_item->picture.load(QString::fromUtf8(":/opmap/images/waypoint_marker3.png")); - - break; - } -} - -// ************************************************************************************* -// Context menu stuff - -void OPMapGadgetWidget::createActions() -{ - if (!m_widget) - return; - - // *********************** - // create menu actions - - closeAct1 = new QAction(tr("Close menu"), this); - closeAct1->setStatusTip(tr("Close the context menu")); - - closeAct2 = new QAction(tr("Close menu"), this); - closeAct2->setStatusTip(tr("Close the context menu")); - - reloadAct = new QAction(tr("&Reload map"), this); - reloadAct->setShortcut(tr("F5")); - reloadAct->setStatusTip(tr("Reload the map tiles")); - connect(reloadAct, SIGNAL(triggered()), this, SLOT(onReloadAct_triggered())); - - copyMouseLatLonToClipAct = new QAction(tr("Mouse latitude and longitude"), this); - copyMouseLatLonToClipAct->setStatusTip(tr("Copy the mouse latitude and longitude to the clipboard")); - connect(copyMouseLatLonToClipAct, SIGNAL(triggered()), this, SLOT(onCopyMouseLatLonToClipAct_triggered())); - - copyMouseLatToClipAct = new QAction(tr("Mouse latitude"), this); - copyMouseLatToClipAct->setStatusTip(tr("Copy the mouse latitude to the clipboard")); - connect(copyMouseLatToClipAct, SIGNAL(triggered()), this, SLOT(onCopyMouseLatToClipAct_triggered())); - - copyMouseLonToClipAct = new QAction(tr("Mouse longitude"), this); - copyMouseLonToClipAct->setStatusTip(tr("Copy the mouse longitude to the clipboard")); - connect(copyMouseLonToClipAct, SIGNAL(triggered()), this, SLOT(onCopyMouseLonToClipAct_triggered())); - - /* - findPlaceAct = new QAction(tr("&Find place"), this); - findPlaceAct->setShortcut(tr("Ctrl+F")); - findPlaceAct->setStatusTip(tr("Find a location")); - connect(findPlaceAct, SIGNAL(triggered()), this, SLOT(onFindPlaceAct_triggered())); - */ - - showCompassAct = new QAction(tr("Show compass"), this); - showCompassAct->setStatusTip(tr("Show/Hide the compass")); - showCompassAct->setCheckable(true); - showCompassAct->setChecked(true); - connect(showCompassAct, SIGNAL(toggled(bool)), this, SLOT(onShowCompassAct_toggled(bool))); - - showDiagnostics = new QAction(tr("Show Diagnostics"), this); - showDiagnostics->setStatusTip(tr("Show/Hide the diagnostics")); - showDiagnostics->setCheckable(true); - showDiagnostics->setChecked(false); - connect(showDiagnostics, SIGNAL(toggled(bool)), this, SLOT(onShowDiagnostics_toggled(bool))); - - showHomeAct = new QAction(tr("Show Home"), this); - showHomeAct->setStatusTip(tr("Show/Hide the Home location")); - showHomeAct->setCheckable(true); - showHomeAct->setChecked(true); - connect(showHomeAct, SIGNAL(toggled(bool)), this, SLOT(onShowHomeAct_toggled(bool))); - - showUAVAct = new QAction(tr("Show UAV"), this); - showUAVAct->setStatusTip(tr("Show/Hide the UAV")); - showUAVAct->setCheckable(true); - showUAVAct->setChecked(true); - connect(showUAVAct, SIGNAL(toggled(bool)), this, SLOT(onShowUAVAct_toggled(bool))); - - zoomInAct = new QAction(tr("Zoom &In"), this); - zoomInAct->setShortcut(Qt::Key_PageUp); - zoomInAct->setStatusTip(tr("Zoom the map in")); - connect(zoomInAct, SIGNAL(triggered()), this, SLOT(onGoZoomInAct_triggered())); - - zoomOutAct = new QAction(tr("Zoom &Out"), this); - zoomOutAct->setShortcut(Qt::Key_PageDown); - zoomOutAct->setStatusTip(tr("Zoom the map out")); - connect(zoomOutAct, SIGNAL(triggered()), this, SLOT(onGoZoomOutAct_triggered())); - - goMouseClickAct = new QAction(tr("Go to where you right clicked the mouse"), this); - goMouseClickAct->setStatusTip(tr("Center the map onto where you right clicked the mouse")); - connect(goMouseClickAct, SIGNAL(triggered()), this, SLOT(onGoMouseClickAct_triggered())); - - setHomeAct = new QAction(tr("Set the home location"), this); - setHomeAct->setStatusTip(tr("Set the home location to where you clicked")); - #if !defined(allow_manual_home_location_move) - setHomeAct->setEnabled(false); - #endif - connect(setHomeAct, SIGNAL(triggered()), this, SLOT(onSetHomeAct_triggered())); - - goHomeAct = new QAction(tr("Go to &Home location"), this); - goHomeAct->setShortcut(tr("Ctrl+H")); - goHomeAct->setStatusTip(tr("Center the map onto the home location")); - connect(goHomeAct, SIGNAL(triggered()), this, SLOT(onGoHomeAct_triggered())); - - goUAVAct = new QAction(tr("Go to &UAV location"), this); - goUAVAct->setShortcut(tr("Ctrl+U")); - goUAVAct->setStatusTip(tr("Center the map onto the UAV location")); - connect(goUAVAct, SIGNAL(triggered()), this, SLOT(onGoUAVAct_triggered())); - - followUAVpositionAct = new QAction(tr("Follow UAV position"), this); - followUAVpositionAct->setShortcut(tr("Ctrl+F")); - followUAVpositionAct->setStatusTip(tr("Keep the map centered onto the UAV")); - followUAVpositionAct->setCheckable(true); - followUAVpositionAct->setChecked(false); - connect(followUAVpositionAct, SIGNAL(toggled(bool)), this, SLOT(onFollowUAVpositionAct_toggled(bool))); - - followUAVheadingAct = new QAction(tr("Follow UAV heading"), this); - followUAVheadingAct->setShortcut(tr("Ctrl+F")); - followUAVheadingAct->setStatusTip(tr("Keep the map rotation to the UAV heading")); - followUAVheadingAct->setCheckable(true); - followUAVheadingAct->setChecked(false); - connect(followUAVheadingAct, SIGNAL(toggled(bool)), this, SLOT(onFollowUAVheadingAct_toggled(bool))); - - /* - TODO: Waypoint support is disabled for v1.0 - */ - - /* - wayPointEditorAct = new QAction(tr("&Waypoint editor"), this); - wayPointEditorAct->setShortcut(tr("Ctrl+W")); - wayPointEditorAct->setStatusTip(tr("Open the waypoint editor")); - wayPointEditorAct->setEnabled(false); // temporary - connect(wayPointEditorAct, SIGNAL(triggered()), this, SLOT(onOpenWayPointEditorAct_triggered())); - - addWayPointAct = new QAction(tr("&Add waypoint"), this); - addWayPointAct->setShortcut(tr("Ctrl+A")); - addWayPointAct->setStatusTip(tr("Add waypoint")); - connect(addWayPointAct, SIGNAL(triggered()), this, SLOT(onAddWayPointAct_triggered())); - - editWayPointAct = new QAction(tr("&Edit waypoint"), this); - editWayPointAct->setShortcut(tr("Ctrl+E")); - editWayPointAct->setStatusTip(tr("Edit waypoint")); - connect(editWayPointAct, SIGNAL(triggered()), this, SLOT(onEditWayPointAct_triggered())); - - lockWayPointAct = new QAction(tr("&Lock waypoint"), this); - lockWayPointAct->setStatusTip(tr("Lock/Unlock a waypoint")); - lockWayPointAct->setCheckable(true); - lockWayPointAct->setChecked(false); - connect(lockWayPointAct, SIGNAL(triggered()), this, SLOT(onLockWayPointAct_triggered())); - - deleteWayPointAct = new QAction(tr("&Delete waypoint"), this); - deleteWayPointAct->setShortcut(tr("Ctrl+D")); - deleteWayPointAct->setStatusTip(tr("Delete waypoint")); - connect(deleteWayPointAct, SIGNAL(triggered()), this, SLOT(onDeleteWayPointAct_triggered())); - - clearWayPointsAct = new QAction(tr("&Clear waypoints"), this); - clearWayPointsAct->setShortcut(tr("Ctrl+C")); - clearWayPointsAct->setStatusTip(tr("Clear waypoints")); - connect(clearWayPointsAct, SIGNAL(triggered()), this, SLOT(onClearWayPointsAct_triggered())); - */ - - homeMagicWaypointAct = new QAction(tr("Home magic waypoint"), this); - homeMagicWaypointAct->setStatusTip(tr("Move the magic waypoint to the home position")); - connect(homeMagicWaypointAct, SIGNAL(triggered()), this, SLOT(onHomeMagicWaypointAct_triggered())); - - mapModeActGroup = new QActionGroup(this); - connect(mapModeActGroup, SIGNAL(triggered(QAction *)), this, SLOT(onMapModeActGroup_triggered(QAction *))); - mapModeAct.clear(); - { - QAction *map_mode_act; - - map_mode_act = new QAction(tr("Normal"), mapModeActGroup); - map_mode_act->setCheckable(true); - map_mode_act->setChecked(m_map_mode == Normal_MapMode); - map_mode_act->setData((int)Normal_MapMode); - mapModeAct.append(map_mode_act); - - map_mode_act = new QAction(tr("Magic Waypoint"), mapModeActGroup); - map_mode_act->setCheckable(true); - map_mode_act->setChecked(m_map_mode == MagicWaypoint_MapMode); - map_mode_act->setData((int)MagicWaypoint_MapMode); - mapModeAct.append(map_mode_act); - } - - zoomActGroup = new QActionGroup(this); - connect(zoomActGroup, SIGNAL(triggered(QAction *)), this, SLOT(onZoomActGroup_triggered(QAction *))); - zoomAct.clear(); - for (int i = min_zoom; i <= max_zoom; i++) - { - QAction *zoom_act = new QAction(QString::number(i), zoomActGroup); - zoom_act->setCheckable(true); - zoom_act->setData(i); - zoomAct.append(zoom_act); - } - - // ***** - // safe area - - showSafeAreaAct = new QAction(tr("Show Safe Area"), this); - showSafeAreaAct->setStatusTip(tr("Show/Hide the Safe Area around the home location")); - showSafeAreaAct->setCheckable(true); - showSafeAreaAct->setChecked(m_map->Home->ShowSafeArea()); - connect(showSafeAreaAct, SIGNAL(toggled(bool)), this, SLOT(onShowSafeAreaAct_toggled(bool))); - - safeAreaActGroup = new QActionGroup(this); - connect(safeAreaActGroup, SIGNAL(triggered(QAction *)), this, SLOT(onSafeAreaActGroup_triggered(QAction *))); - safeAreaAct.clear(); - for (int i = 0; i < (int)(sizeof(safe_area_radius_list) / sizeof(safe_area_radius_list[0])); i++) - { - int safeArea = safe_area_radius_list[i]; - QAction *safeArea_act = new QAction(QString::number(safeArea) + "m", safeAreaActGroup); - safeArea_act->setCheckable(true); - safeArea_act->setChecked(safeArea == m_map->Home->SafeArea()); - safeArea_act->setData(safeArea); - safeAreaAct.append(safeArea_act); - } - - // ***** - // UAV trail - - uavTrailTypeActGroup = new QActionGroup(this); - connect(uavTrailTypeActGroup, SIGNAL(triggered(QAction *)), this, SLOT(onUAVTrailTypeActGroup_triggered(QAction *))); - uavTrailTypeAct.clear(); - QStringList uav_trail_type_list = mapcontrol::Helper::UAVTrailTypes(); - for (int i = 0; i < uav_trail_type_list.count(); i++) - { - mapcontrol::UAVTrailType::Types uav_trail_type = mapcontrol::Helper::UAVTrailTypeFromString(uav_trail_type_list[i]); - QAction *uavTrailType_act = new QAction(mapcontrol::Helper::StrFromUAVTrailType(uav_trail_type), uavTrailTypeActGroup); - uavTrailType_act->setCheckable(true); - uavTrailType_act->setChecked(uav_trail_type == m_map->UAV->GetTrailType()); - uavTrailType_act->setData(i); - uavTrailTypeAct.append(uavTrailType_act); - } - - showTrailAct = new QAction(tr("Show Trail dots"), this); - showTrailAct->setStatusTip(tr("Show/Hide the Trail dots")); - showTrailAct->setCheckable(true); - showTrailAct->setChecked(true); - connect(showTrailAct, SIGNAL(toggled(bool)), this, SLOT(onShowTrailAct_toggled(bool))); - - showTrailLineAct = new QAction(tr("Show Trail lines"), this); - showTrailLineAct->setStatusTip(tr("Show/Hide the Trail lines")); - showTrailLineAct->setCheckable(true); - showTrailLineAct->setChecked(true); - connect(showTrailLineAct, SIGNAL(toggled(bool)), this, SLOT(onShowTrailLineAct_toggled(bool))); - - clearUAVtrailAct = new QAction(tr("Clear UAV trail"), this); - clearUAVtrailAct->setStatusTip(tr("Clear the UAV trail")); - connect(clearUAVtrailAct, SIGNAL(triggered()), this, SLOT(onClearUAVtrailAct_triggered())); - - uavTrailTimeActGroup = new QActionGroup(this); - connect(uavTrailTimeActGroup, SIGNAL(triggered(QAction *)), this, SLOT(onUAVTrailTimeActGroup_triggered(QAction *))); - uavTrailTimeAct.clear(); - for (int i = 0; i < (int)(sizeof(uav_trail_time_list) / sizeof(uav_trail_time_list[0])); i++) - { - int uav_trail_time = uav_trail_time_list[i]; - QAction *uavTrailTime_act = new QAction(QString::number(uav_trail_time) + " sec", uavTrailTimeActGroup); - uavTrailTime_act->setCheckable(true); - uavTrailTime_act->setChecked(uav_trail_time == m_map->UAV->TrailTime()); - uavTrailTime_act->setData(uav_trail_time); - uavTrailTimeAct.append(uavTrailTime_act); - } - - uavTrailDistanceActGroup = new QActionGroup(this); - connect(uavTrailDistanceActGroup, SIGNAL(triggered(QAction *)), this, SLOT(onUAVTrailDistanceActGroup_triggered(QAction *))); - uavTrailDistanceAct.clear(); - for (int i = 0; i < (int)(sizeof(uav_trail_distance_list) / sizeof(uav_trail_distance_list[0])); i++) - { - int uav_trail_distance = uav_trail_distance_list[i]; - QAction *uavTrailDistance_act = new QAction(QString::number(uav_trail_distance) + " meters", uavTrailDistanceActGroup); - uavTrailDistance_act->setCheckable(true); - uavTrailDistance_act->setChecked(uav_trail_distance == m_map->UAV->TrailDistance()); - uavTrailDistance_act->setData(uav_trail_distance); - uavTrailDistanceAct.append(uavTrailDistance_act); - } - - // ***** - - // *********************** -} - -void OPMapGadgetWidget::onReloadAct_triggered() -{ - if (!m_widget || !m_map) - return; - - m_map->ReloadMap(); -} - -void OPMapGadgetWidget::onCopyMouseLatLonToClipAct_triggered() -{ -// QClipboard *clipboard = qApp->clipboard(); - QClipboard *clipboard = QApplication::clipboard(); - clipboard->setText(QString::number(context_menu_lat_lon.Lat(), 'f', 7) + ", " + QString::number(context_menu_lat_lon.Lng(), 'f', 7), QClipboard::Clipboard); -} - -void OPMapGadgetWidget::onCopyMouseLatToClipAct_triggered() -{ -// QClipboard *clipboard = qApp->clipboard(); - QClipboard *clipboard = QApplication::clipboard(); - clipboard->setText(QString::number(context_menu_lat_lon.Lat(), 'f', 7), QClipboard::Clipboard); -} - -void OPMapGadgetWidget::onCopyMouseLonToClipAct_triggered() -{ -// QClipboard *clipboard = qApp->clipboard(); - QClipboard *clipboard = QApplication::clipboard(); - clipboard->setText(QString::number(context_menu_lat_lon.Lng(), 'f', 7), QClipboard::Clipboard); -} - - -void OPMapGadgetWidget::onShowCompassAct_toggled(bool show) -{ - if (!m_widget || !m_map) - return; - - m_map->SetShowCompass(show); -} - -void OPMapGadgetWidget::onShowDiagnostics_toggled(bool show) -{ - if (!m_widget || !m_map) - return; - - m_map->SetShowDiagnostics(show); -} - -void OPMapGadgetWidget::onShowHomeAct_toggled(bool show) -{ - if (!m_widget || !m_map) - return; - - m_map->Home->setVisible(show); -} - -void OPMapGadgetWidget::onShowUAVAct_toggled(bool show) -{ - if (!m_widget || !m_map) - return; - - m_map->UAV->setVisible(show); - m_map->GPS->setVisible(show); -} - -void OPMapGadgetWidget::onShowTrailAct_toggled(bool show) -{ - if (!m_widget || !m_map) - return; - - m_map->UAV->SetShowTrail(show); - m_map->GPS->SetShowTrail(show); -} - -void OPMapGadgetWidget::onShowTrailLineAct_toggled(bool show) -{ - if (!m_widget || !m_map) - return; - - m_map->UAV->SetShowTrailLine(show); - m_map->GPS->SetShowTrailLine(show); -} - -void OPMapGadgetWidget::onMapModeActGroup_triggered(QAction *action) -{ - if (!m_widget || !m_map || !action) - return; - - opMapModeType mode = (opMapModeType)action->data().toInt(); - - setMapMode(mode); -} - -void OPMapGadgetWidget::onGoZoomInAct_triggered() -{ - zoomIn(); -} - -void OPMapGadgetWidget::onGoZoomOutAct_triggered() -{ - zoomOut(); -} - -void OPMapGadgetWidget::onZoomActGroup_triggered(QAction *action) -{ - if (!m_widget || !action) - return; - - setZoom(action->data().toInt()); -} - -void OPMapGadgetWidget::onGoMouseClickAct_triggered() -{ - if (!m_widget || !m_map) - return; - - m_map->SetCurrentPosition(m_map->currentMousePosition()); // center the map onto the mouse position -} - -void OPMapGadgetWidget::onSetHomeAct_triggered() -{ - if (!m_widget || !m_map) - return; - - setHome(context_menu_lat_lon); - - setHomeLocationObject(); // update the HomeLocation UAVObject -} - -void OPMapGadgetWidget::onGoHomeAct_triggered() -{ - if (!m_widget || !m_map) - return; - - goHome(); -} - -void OPMapGadgetWidget::onGoUAVAct_triggered() -{ - if (!m_widget || !m_map) - return; - - double latitude; - double longitude; - double altitude; - if (getUAVPosition(latitude, longitude, altitude)) // get current UAV position - { - internals::PointLatLng uav_pos = internals::PointLatLng(latitude, longitude); // current UAV position - internals::PointLatLng map_pos = m_map->CurrentPosition(); // current MAP position - if (map_pos != uav_pos) m_map->SetCurrentPosition(uav_pos); // center the map onto the UAV - } -} - -void OPMapGadgetWidget::onFollowUAVpositionAct_toggled(bool checked) -{ - if (!m_widget || !m_map) - return; - - if (m_widget->toolButtonMapUAV->isChecked() != checked) - m_widget->toolButtonMapUAV->setChecked(checked); - - setMapFollowingMode(); -} - -void OPMapGadgetWidget::onFollowUAVheadingAct_toggled(bool checked) -{ - if (!m_widget || !m_map) - return; - - if (m_widget->toolButtonMapUAVheading->isChecked() != checked) - m_widget->toolButtonMapUAVheading->setChecked(checked); - - setMapFollowingMode(); -} - -void OPMapGadgetWidget::onUAVTrailTypeActGroup_triggered(QAction *action) -{ - if (!m_widget || !m_map) - return; - - int trail_type_idx = action->data().toInt(); - - QStringList uav_trail_type_list = mapcontrol::Helper::UAVTrailTypes(); - mapcontrol::UAVTrailType::Types uav_trail_type = mapcontrol::Helper::UAVTrailTypeFromString(uav_trail_type_list[trail_type_idx]); - - m_map->UAV->SetTrailType(uav_trail_type); -} - -void OPMapGadgetWidget::onClearUAVtrailAct_triggered() -{ - if (!m_widget || !m_map) - return; - - m_map->UAV->DeleteTrail(); - m_map->GPS->DeleteTrail(); -} - -void OPMapGadgetWidget::onUAVTrailTimeActGroup_triggered(QAction *action) -{ - if (!m_widget || !m_map) - return; - - int trail_time = (double)action->data().toInt(); - - m_map->UAV->SetTrailTime(trail_time); -} - -void OPMapGadgetWidget::onUAVTrailDistanceActGroup_triggered(QAction *action) -{ - if (!m_widget || !m_map) - return; - - int trail_distance = action->data().toInt(); - - m_map->UAV->SetTrailDistance(trail_distance); -} - -/** - * TODO: unused for v1.0 - **/ -/* -void OPMapGadgetWidget::onAddWayPointAct_triggered() -{ - if (!m_widget || !m_map) - return; - - if (m_map_mode != Normal_MapMode) - return; - - m_waypoint_list_mutex.lock(); - - // create a waypoint on the map at the last known mouse position - t_waypoint *wp = new t_waypoint; - wp->map_wp_item = NULL; - wp->coord = context_menu_lat_lon; - wp->altitude = 0; - wp->description = ""; - wp->locked = false; - wp->time_seconds = 0; - wp->hold_time_seconds = 0; - wp->map_wp_item = m_map->WPCreate(wp->coord, wp->altitude, wp->description); - - wp->map_wp_item->setZValue(10 + wp->map_wp_item->Number()); - - wp->map_wp_item->setFlag(QGraphicsItem::ItemIsMovable, !wp->locked); - - if (wp->map_wp_item) - { - if (!wp->locked) - wp->map_wp_item->picture.load(QString::fromUtf8(":/opmap/images/waypoint_marker1.png")); - else - wp->map_wp_item->picture.load(QString::fromUtf8(":/opmap/images/waypoint_marker2.png")); - wp->map_wp_item->update(); - } - - // and remember it in our own local waypoint list - m_waypoint_list.append(wp); - - m_waypoint_list_mutex.unlock(); -} -*/ - -/** - * Called when the user asks to edit a waypoint from the map - * - * TODO: should open an interface to edit waypoint properties, or - * propagate the signal to a specific WP plugin (tbd). - **/ -/* -void OPMapGadgetWidget::onEditWayPointAct_triggered() -{ - if (!m_widget || !m_map) - return; - - if (m_map_mode != Normal_MapMode) - return; - - if (!m_mouse_waypoint) - return; - - //waypoint_edit_dialog.editWaypoint(m_mouse_waypoint); - - m_mouse_waypoint = NULL; -} -*/ - -/** - * TODO: unused for v1.0 - */ -/* -void OPMapGadgetWidget::onLockWayPointAct_triggered() -{ - if (!m_widget || !m_map || !m_mouse_waypoint) - return; - - if (m_map_mode != Normal_MapMode) - return; - - bool locked = (m_mouse_waypoint->flags() & QGraphicsItem::ItemIsMovable) == 0; - m_mouse_waypoint->setFlag(QGraphicsItem::ItemIsMovable, locked); - - if (!locked) - m_mouse_waypoint->picture.load(QString::fromUtf8(":/opmap/images/waypoint_marker2.png")); - else - m_mouse_waypoint->picture.load(QString::fromUtf8(":/opmap/images/waypoint_marker1.png")); - m_mouse_waypoint->update(); - - m_mouse_waypoint = NULL; -} -*/ - -/** - * TODO: unused for v1.0 - */ -/* -void OPMapGadgetWidget::onDeleteWayPointAct_triggered() -{ - if (!m_widget || !m_map) - return; - - if (m_map_mode != Normal_MapMode) - return; - - if (!m_mouse_waypoint) - return; - - bool locked = (m_mouse_waypoint->flags() & QGraphicsItem::ItemIsMovable) == 0; - - if (locked) return; // waypoint is locked - - QMutexLocker locker(&m_waypoint_list_mutex); - - for (int i = 0; i < m_waypoint_list.count(); i++) - { - t_waypoint *wp = m_waypoint_list.at(i); - if (!wp) continue; - if (!wp->map_wp_item || wp->map_wp_item != m_mouse_waypoint) continue; - - // delete the waypoint from the map - m_map->WPDelete(wp->map_wp_item); - - // delete the waypoint from our local waypoint list - m_waypoint_list.removeAt(i); - - delete wp; - - break; - } -// -// foreach (t_waypoint *wp, m_waypoint_list) -// { -// if (!wp) continue; -// if (!wp->map_wp_item || wp->map_wp_item != m_mouse_waypoint) continue; -// -// // delete the waypoint from the map -// m_map->WPDelete(wp->map_wp_item); -// -// // delete the waypoint from our local waypoint list -// m_waypoint_list.removeOne(wp); -// -// delete wp; -// -// break; -// } - - m_mouse_waypoint = NULL; -} -*/ - -/** - * TODO: No Waypoint support in v1.0 - */ -/* -void OPMapGadgetWidget::onClearWayPointsAct_triggered() -{ - if (!m_widget || !m_map) - return; - - if (m_map_mode != Normal_MapMode) - return; - - QMutexLocker locker(&m_waypoint_list_mutex); - - m_map->WPDeleteAll(); - - foreach (t_waypoint *wp, m_waypoint_list) - { - if (wp) - { - delete wp; - wp = NULL; - } - } - - m_waypoint_list.clear(); -} -*/ - -void OPMapGadgetWidget::onHomeMagicWaypointAct_triggered() -{ - // center the magic waypoint on the home position - homeMagicWaypoint(); -} - -void OPMapGadgetWidget::onShowSafeAreaAct_toggled(bool show) -{ - if (!m_widget || !m_map) - return; - - m_map->Home->SetShowSafeArea(show); // show the safe area - m_map->Home->RefreshPos(); -} - -void OPMapGadgetWidget::onSafeAreaActGroup_triggered(QAction *action) -{ - if (!m_widget || !m_map) - return; - - int radius = action->data().toInt(); - - m_map->Home->SetSafeArea(radius); // set the radius (meters) - m_map->Home->RefreshPos(); - - // move the magic waypoint if need be to keep it within the safe area around the home position - keepMagicWaypointWithInSafeArea(); -} - -/** -* move the magic waypoint to the home position -**/ -void OPMapGadgetWidget::homeMagicWaypoint() -{ - if (!m_widget || !m_map) - return; - - if (m_map_mode != MagicWaypoint_MapMode) - return; - - magic_waypoint.coord = home_position.coord; - - if (magic_waypoint.map_wp_item) - magic_waypoint.map_wp_item->SetCoord(magic_waypoint.coord); -} - -// ************************************************************************************* -// move the UAV to the magic waypoint position - -void OPMapGadgetWidget::moveToMagicWaypointPosition() -{ - if (!m_widget || !m_map) - return; - - if (m_map_mode != MagicWaypoint_MapMode) - return; - -// internals::PointLatLng coord = magic_waypoint.coord; -// double altitude = magic_waypoint.altitude; - - - // ToDo: - -} - -// ************************************************************************************* -// temporary until an object is created for managing the save/restore - -// load the contents of a simple text file into a combobox -void OPMapGadgetWidget::loadComboBoxLines(QComboBox *comboBox, QString filename) -{ - if (!comboBox) return; - if (filename.isNull() || filename.isEmpty()) return; - - QFile file(filename); - if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) - return; - - QTextStream in(&file); - - while (!in.atEnd()) - { - QString line = in.readLine().simplified(); - if (line.isNull() || line.isEmpty()) continue; - comboBox->addItem(line); - } - - file.close(); -} - -// save a combobox text contents to a simple text file -void OPMapGadgetWidget::saveComboBoxLines(QComboBox *comboBox, QString filename) -{ - if (!comboBox) return; - if (filename.isNull() || filename.isEmpty()) return; - - QFile file(filename); - if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) - return; - - QTextStream out(&file); - - for (int i = 0; i < comboBox->count(); i++) - { - QString line = comboBox->itemText(i).simplified(); - if (line.isNull() || line.isEmpty()) continue; - out << line << "\n"; - } - - file.close(); -} - -// ************************************************************************************* -// show/hide the magic waypoint controls - -void OPMapGadgetWidget::hideMagicWaypointControls() -{ - m_widget->lineWaypoint->setVisible(false); - m_widget->toolButtonHomeWaypoint->setVisible(false); - m_widget->toolButtonMoveToWP->setVisible(false); -} - -void OPMapGadgetWidget::showMagicWaypointControls() -{ - m_widget->lineWaypoint->setVisible(true); - m_widget->toolButtonHomeWaypoint->setVisible(true); - - #if defined(allow_manual_home_location_move) - m_widget->toolButtonMoveToWP->setVisible(true); - #else - m_widget->toolButtonMoveToWP->setVisible(false); - #endif -} - -// ************************************************************************************* -// move the magic waypoint to keep it within the safe area boundry - -void OPMapGadgetWidget::keepMagicWaypointWithInSafeArea() -{ - - // calcute the bearing and distance from the home position to the magic waypoint - double dist = distance(home_position.coord, magic_waypoint.coord); - double bear = bearing(home_position.coord, magic_waypoint.coord); - - // get the maximum safe distance - in kilometers - double boundry_dist = (double)m_map->Home->SafeArea() / 1000; - -// if (dist <= boundry_dist) -// return; // the magic waypoint is still within the safe area, don't move it - - if (dist > boundry_dist) dist = boundry_dist; - - // move the magic waypoint - - magic_waypoint.coord = destPoint(home_position.coord, bear, dist); - - if (m_map_mode == MagicWaypoint_MapMode) - { // move the on-screen waypoint - if (magic_waypoint.map_wp_item) - magic_waypoint.map_wp_item->SetCoord(magic_waypoint.coord); - } -} - -// ************************************************************************************* -// return the distance between two points .. in kilometers - -double OPMapGadgetWidget::distance(internals::PointLatLng from, internals::PointLatLng to) -{ - double lat1 = from.Lat() * deg_to_rad; - double lon1 = from.Lng() * deg_to_rad; - - double lat2 = to.Lat() * deg_to_rad; - double lon2 = to.Lng() * deg_to_rad; - - // *********************** - // Haversine formula -/* - double delta_lat = lat2 - lat1; - double delta_lon = lon2 - lon1; - - double t1 = sin(delta_lat / 2); - double t2 = sin(delta_lon / 2); - double a = (t1 * t1) + cos(lat1) * cos(lat2) * (t2 * t2); - double c = 2 * atan2(sqrt(a), sqrt(1 - a)); - - return (earth_mean_radius * c); -*/ - // *********************** - // Spherical Law of Cosines - - return (acos(sin(lat1) * sin(lat2) + cos(lat1) * cos(lat2) * cos(lon2 - lon1)) * earth_mean_radius); - - // *********************** -} - -// ************************************************************************************* -// return the bearing from one point to another .. in degrees - -double OPMapGadgetWidget::bearing(internals::PointLatLng from, internals::PointLatLng to) -{ - double lat1 = from.Lat() * deg_to_rad; - double lon1 = from.Lng() * deg_to_rad; - - double lat2 = to.Lat() * deg_to_rad; - double lon2 = to.Lng() * deg_to_rad; - -// double delta_lat = lat2 - lat1; - double delta_lon = lon2 - lon1; - - double y = sin(delta_lon) * cos(lat2); - double x = cos(lat1) * sin(lat2) - sin(lat1) * cos(lat2) * cos(delta_lon); - double bear = atan2(y, x) * rad_to_deg; - - bear += 360; - while (bear < 0) bear += 360; - while (bear >= 360) bear -= 360; - - return bear; -} - -// ************************************************************************************* -// return a destination lat/lon point given a source lat/lon point and the bearing and distance from the source point - -internals::PointLatLng OPMapGadgetWidget::destPoint(internals::PointLatLng source, double bear, double dist) -{ - double lat1 = source.Lat() * deg_to_rad; - double lon1 = source.Lng() * deg_to_rad; - - bear *= deg_to_rad; - - double ad = dist / earth_mean_radius; - - double lat2 = asin(sin(lat1) * cos(ad) + cos(lat1) * sin(ad) * cos(bear)); - double lon2 = lon1 + atan2(sin(bear) * sin(ad) * cos(lat1), cos(ad) - sin(lat1) * sin(lat2)); - - return internals::PointLatLng(lat2 * rad_to_deg, lon2 * rad_to_deg); -} - -// ************************************************************************************* - -bool OPMapGadgetWidget::getUAVPosition(double &latitude, double &longitude, double &altitude) -{ - double BaseECEF[3]; - double NED[3]; - double LLA[3]; - UAVObject *obj; - - if (!obm) - return false; - - obj = dynamic_cast(obm->getObject(QString("HomeLocation"))); - if (!obj) return false; - BaseECEF[0] = obj->getField(QString("ECEF"))->getDouble(0) / 100; - BaseECEF[1] = obj->getField(QString("ECEF"))->getDouble(1) / 100; - BaseECEF[2] = obj->getField(QString("ECEF"))->getDouble(2) / 100; - - obj = dynamic_cast(obm->getObject(QString("PositionActual"))); - if (!obj) return false; - NED[0] = obj->getField(QString("North"))->getDouble() / 100; - NED[1] = obj->getField(QString("East"))->getDouble() / 100; - NED[2] = obj->getField(QString("Down"))->getDouble() / 100; - -// obj = dynamic_cast(om->getObject(QString("PositionDesired"))); - -// obj = dynamic_cast(objManager->getObject("VelocityActual")); // air speed - - Utils::CoordinateConversions().GetLLA(BaseECEF, NED, LLA); - - latitude = LLA[0]; - longitude = LLA[1]; - altitude = LLA[2]; - - if (latitude != latitude) latitude = 0; // nan detection -// if (isNan(latitude)) latitude = 0; // nan detection - else -// if (!isFinite(latitude)) latitude = 0; -// else - if (latitude > 90) latitude = 90; - else - if (latitude < -90) latitude = -90; - - if (longitude != longitude) longitude = 0; // nan detection - else -// if (longitude > std::numeric_limits::max()) longitude = 0; // +infinite -// else -// if (longitude < -std::numeric_limits::max()) longitude = 0; // -infinite -// else - if (longitude > 180) longitude = 180; - else - if (longitude < -180) longitude = -180; - - if (altitude != altitude) altitude = 0; // nan detection - - return true; -} - -// ************************************************************************************* - -bool OPMapGadgetWidget::getGPSPosition(double &latitude, double &longitude, double &altitude) -{ - double LLA[3]; - - if (!obum) - return false; - - if (obum->getGPSPosition(LLA) < 0) - return false; // error - - latitude = LLA[0]; - longitude = LLA[1]; - altitude = LLA[2]; - - return true; -} - -double OPMapGadgetWidget::getUAV_Yaw() -{ - if (!obm) - return 0; - - UAVObject *obj = dynamic_cast(obm->getObject(QString("AttitudeActual"))); - double yaw = obj->getField(QString("Yaw"))->getDouble(); - - if (yaw != yaw) yaw = 0; // nan detection - - while (yaw < 0) yaw += 360; - while (yaw >= 360) yaw -= 360; - - return yaw; -} - -// ************************************************************************************* - -void OPMapGadgetWidget::setMapFollowingMode() -{ - if (!m_widget || !m_map) - return; - - if (!followUAVpositionAct->isChecked()) - { - m_map->UAV->SetMapFollowType(UAVMapFollowType::None); - m_map->SetRotate(0); // reset map rotation to 0deg - } - else - if (!followUAVheadingAct->isChecked()) - { - m_map->UAV->SetMapFollowType(UAVMapFollowType::CenterMap); - m_map->SetRotate(0); // reset map rotation to 0deg - } - else - { - m_map->UAV->SetMapFollowType(UAVMapFollowType::CenterMap); // the map library won't let you reset the uav rotation if it's already in rotate mode - - m_map->UAV->SetUAVHeading(0); // reset the UAV heading to 0deg - m_map->UAV->SetMapFollowType(UAVMapFollowType::CenterAndRotateMap); - } -} - -// ************************************************************************************* -// update the HomeLocation UAV Object - -bool OPMapGadgetWidget::setHomeLocationObject() -{ - if (!obum) - return false; - - double LLA[3] = {home_position.coord.Lat(), home_position.coord.Lng(), home_position.altitude}; - return (obum->setHomeLocation(LLA, true) >= 0); -} - -// ************************************************************************************* - -void OPMapGadgetWidget::SetUavPic(QString UAVPic) -{ - m_map->SetUavPic(UAVPic); -} +/** + ****************************************************************************** + * + * @file opmapgadgetwidget.cpp + * @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010. + * @addtogroup GCSPlugins GCS Plugins + * @{ + * @addtogroup OPMapPlugin OpenPilot Map Plugin + * @{ + * @brief The OpenPilot Map plugin + *****************************************************************************/ +/* + * 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 + */ + +#include "opmapgadgetwidget.h" +#include "ui_opmap_widget.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include "utils/stylehelper.h" +#include "utils/homelocationutil.h" +#include "utils/worldmagmodel.h" + +#include "uavtalk/telemetrymanager.h" + +#include "positionactual.h" +#include "homelocation.h" + +#define allow_manual_home_location_move + +// ************************************************************************************* + +#define deg_to_rad ((double)M_PI / 180.0) +#define rad_to_deg (180.0 / (double)M_PI) + +#define earth_mean_radius 6371 // kilometers + +#define max_digital_zoom 3 // maximum allowed digital zoom level + +const int safe_area_radius_list[] = {5, 10, 20, 50, 100, 200, 500, 1000, 2000, 5000}; // meters + +const int uav_trail_time_list[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; // seconds + +const int uav_trail_distance_list[] = {1, 2, 5, 10, 20, 50, 100, 200, 500}; // meters + +const int max_update_rate_list[] = {100, 200, 500, 1000, 2000, 5000}; // milliseconds + +// ************************************************************************************* + + +// ************************************************************************************* +// NOTE: go back to SVN REV 2137 and earlier to get back to experimental waypoint support. +// ************************************************************************************* + + +// constructor +OPMapGadgetWidget::OPMapGadgetWidget(QWidget *parent) : QWidget(parent) +{ + // ************** + + m_widget = NULL; + m_map = NULL; + findPlaceCompleter = NULL; + + m_mouse_waypoint = NULL; + + pm = NULL; + obm = NULL; + obum = NULL; + + m_prev_tile_number = 0; + + m_min_zoom = m_max_zoom = 0; + + m_map_mode = Normal_MapMode; + + m_maxUpdateRate = max_update_rate_list[4]; // 2 seconds + + m_telemetry_connected = false; + + m_context_menu_lat_lon = m_mouse_lat_lon = internals::PointLatLng(0, 0); + + setMouseTracking(true); + + pm = ExtensionSystem::PluginManager::instance(); + if (pm) + { + obm = pm->getObject(); + obum = pm->getObject(); + } + + // ************** + // get current location + + double latitude = 0; + double longitude = 0; + double altitude = 0; + + // current position + getUAVPosition(latitude, longitude, altitude); + + internals::PointLatLng pos_lat_lon = internals::PointLatLng(latitude, longitude); + + // ************** + // default home position + + m_home_position.coord = pos_lat_lon; + m_home_position.altitude = altitude; + m_home_position.locked = false; + + // ************** + // default magic waypoint params + + m_magic_waypoint.map_wp_item = NULL; + m_magic_waypoint.coord = m_home_position.coord; + m_magic_waypoint.altitude = altitude; + m_magic_waypoint.description = "Magic waypoint"; + m_magic_waypoint.locked = false; + m_magic_waypoint.time_seconds = 0; + m_magic_waypoint.hold_time_seconds = 0; + + // ************** + // create the widget that holds the user controls and the map + + m_widget = new Ui::OPMap_Widget(); + m_widget->setupUi(this); + + // ************** + // create the central map widget + + m_map = new mapcontrol::OPMapWidget(); // create the map object + + m_map->setFrameStyle(QFrame::NoFrame); // no border frame + m_map->setBackgroundBrush(QBrush(Utils::StyleHelper::baseColor())); // tile background + + m_map->configuration->DragButton = Qt::LeftButton; // use the left mouse button for map dragging + + m_widget->horizontalSliderZoom->setMinimum(m_map->MinZoom()); // + m_widget->horizontalSliderZoom->setMaximum(m_map->MaxZoom() + max_digital_zoom); // + + m_min_zoom = m_widget->horizontalSliderZoom->minimum(); // minimum zoom we can accept + m_max_zoom = m_widget->horizontalSliderZoom->maximum(); // maximum zoom we can accept + + m_map->SetMouseWheelZoomType(internals::MouseWheelZoomType::MousePositionWithoutCenter); // set how the mouse wheel zoom functions + m_map->SetFollowMouse(true); // we want a contiuous mouse position reading + + m_map->SetShowHome(true); // display the HOME position on the map + m_map->SetShowUAV(true); // display the UAV position on the map + + m_map->Home->SetSafeArea(safe_area_radius_list[0]); // set radius (meters) + m_map->Home->SetShowSafeArea(true); // show the safe area + + m_map->UAV->SetTrailTime(uav_trail_time_list[0]); // seconds + m_map->UAV->SetTrailDistance(uav_trail_distance_list[1]); // meters + + m_map->UAV->SetTrailType(UAVTrailType::ByTimeElapsed); +// m_map->UAV->SetTrailType(UAVTrailType::ByDistance); + + m_map->GPS->SetTrailTime(uav_trail_time_list[0]); // seconds + m_map->GPS->SetTrailDistance(uav_trail_distance_list[1]); // meters + + m_map->GPS->SetTrailType(UAVTrailType::ByTimeElapsed); +// m_map->GPS->SetTrailType(UAVTrailType::ByDistance); + + // ************** + + setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding); + + QVBoxLayout *layout = new QVBoxLayout; + layout->setSpacing(0); + layout->setContentsMargins(0, 0, 0, 0); + layout->addWidget(m_map); + m_widget->mapWidget->setLayout(layout); + + // ************** + // set the user control options + + // TODO: this switch does not make sense, does it?? + + switch (m_map_mode) + { + case Normal_MapMode: + m_widget->toolButtonMagicWaypointMapMode->setChecked(false); + m_widget->toolButtonNormalMapMode->setChecked(true); + hideMagicWaypointControls(); + break; + + case MagicWaypoint_MapMode: + m_widget->toolButtonNormalMapMode->setChecked(false); + m_widget->toolButtonMagicWaypointMapMode->setChecked(true); + showMagicWaypointControls(); + break; + + default: + m_map_mode = Normal_MapMode; + m_widget->toolButtonMagicWaypointMapMode->setChecked(false); + m_widget->toolButtonNormalMapMode->setChecked(true); + hideMagicWaypointControls(); + break; + } + + m_widget->labelUAVPos->setText("---"); + m_widget->labelMapPos->setText("---"); + m_widget->labelMousePos->setText("---"); + m_widget->labelMapZoom->setText("---"); + + + // Splitter is not used at the moment: + // m_widget->splitter->setCollapsible(1, false); + + // set the size of the collapsable widgets + //QList m_SizeList; + //m_SizeList << 0 << 0 << 0; + //m_widget->splitter->setSizes(m_SizeList); + + m_widget->progressBarMap->setMaximum(1); + +/* + #if defined(Q_OS_MAC) + #elif defined(Q_OS_WIN) + m_widget->comboBoxFindPlace->clear(); + loadComboBoxLines(m_widget->comboBoxFindPlace, QCoreApplication::applicationDirPath() + "/opmap_find_place_history.txt"); + m_widget->comboBoxFindPlace->setCurrentIndex(-1); + #else + #endif +*/ + + + // ************** + // map stuff + + connect(m_map, SIGNAL(zoomChanged(double, double, double)), this, SLOT(zoomChanged(double, double, double))); // map zoom change signals + connect(m_map, SIGNAL(OnCurrentPositionChanged(internals::PointLatLng)), this, SLOT(OnCurrentPositionChanged(internals::PointLatLng))); // map poisition change signals + connect(m_map, SIGNAL(OnTileLoadComplete()), this, SLOT(OnTileLoadComplete())); // tile loading stop signals + connect(m_map, SIGNAL(OnTileLoadStart()), this, SLOT(OnTileLoadStart())); // tile loading start signals + connect(m_map, SIGNAL(OnMapDrag()), this, SLOT(OnMapDrag())); // map drag signals + connect(m_map, SIGNAL(OnMapZoomChanged()), this, SLOT(OnMapZoomChanged())); // map zoom changed + connect(m_map, SIGNAL(OnMapTypeChanged(MapType::Types)), this, SLOT(OnMapTypeChanged(MapType::Types))); // map type changed + connect(m_map, SIGNAL(OnEmptyTileError(int, core::Point)), this, SLOT(OnEmptyTileError(int, core::Point))); // tile error + connect(m_map, SIGNAL(OnTilesStillToLoad(int)), this, SLOT(OnTilesStillToLoad(int))); // tile loading signals + connect(m_map, SIGNAL(WPNumberChanged(int const&,int const&,WayPointItem*)), this, SLOT(WPNumberChanged(int const&,int const&,WayPointItem*))); + connect(m_map, SIGNAL(WPValuesChanged(WayPointItem*)), this, SLOT(WPValuesChanged(WayPointItem*))); + connect(m_map, SIGNAL(WPInserted(int const&, WayPointItem*)), this, SLOT(WPInserted(int const&, WayPointItem*))); + connect(m_map, SIGNAL(WPDeleted(int const&)), this, SLOT(WPDeleted(int const&))); + + m_map->SetCurrentPosition(m_home_position.coord); // set the map position + m_map->Home->SetCoord(m_home_position.coord); // set the HOME position + m_map->UAV->SetUAVPos(m_home_position.coord, 0.0); // set the UAV position + m_map->GPS->SetUAVPos(m_home_position.coord, 0.0); // set the UAV position + + // ************** + // create various context menu (mouse right click menu) actions + + createActions(); + + // ************** + // connect to the UAVObject updates we require to become a bit aware of our environment: + + if (pm) + { + // Register for Home Location state changes + if (obm) + { + UAVDataObject *obj = dynamic_cast(obm->getObject(QString("HomeLocation"))); + if (obj) + { + connect(obj, SIGNAL(objectUpdated(UAVObject *)), this , SLOT(homePositionUpdated(UAVObject *))); + } + } + + // Listen to telemetry connection events + TelemetryManager *telMngr = pm->getObject(); + if (telMngr) + { + connect(telMngr, SIGNAL(connected()), this, SLOT(onTelemetryConnect())); + connect(telMngr, SIGNAL(disconnected()), this, SLOT(onTelemetryDisconnect())); + } + } + + // ************** + // create the desired timers + + m_updateTimer = new QTimer(); + m_updateTimer->setInterval(m_maxUpdateRate); + connect(m_updateTimer, SIGNAL(timeout()), this, SLOT(updatePosition())); + m_updateTimer->start(); + + m_statusUpdateTimer = new QTimer(); + m_statusUpdateTimer->setInterval(200); +// m_statusUpdateTimer->setInterval(m_maxUpdateRate); + connect(m_statusUpdateTimer, SIGNAL(timeout()), this, SLOT(updateMousePos())); + m_statusUpdateTimer->start(); + + // ************** + + m_map->setFocus(); +} + +// destructor +OPMapGadgetWidget::~OPMapGadgetWidget() +{ + if (m_map) + { + disconnect(m_map, 0, 0, 0); + m_map->SetShowHome(false); // doing this appears to stop the map lib crashing on exit + m_map->SetShowUAV(false); // " " + } + + + // this destructor doesn't appear to be called at shutdown??? + +// #if defined(Q_OS_MAC) +// #elif defined(Q_OS_WIN) +// saveComboBoxLines(m_widget->comboBoxFindPlace, QCoreApplication::applicationDirPath() + "/opmap_find_place_history.txt"); +// #else +// #endif + + m_waypoint_list_mutex.lock(); + foreach (t_waypoint *wp, m_waypoint_list) + { + if (!wp) continue; + + + // todo: + + + delete wp->map_wp_item; + } + m_waypoint_list_mutex.unlock(); + m_waypoint_list.clear(); + + if (m_map) + { + delete m_map; + m_map = NULL; + } +} + +// ************************************************************************************* +// widget signals .. the mouseMoveEvent does not get called - don't yet know why + +void OPMapGadgetWidget::resizeEvent(QResizeEvent *event) +{ + qDebug("opmap: resizeEvent"); + + QWidget::resizeEvent(event); +} + +void OPMapGadgetWidget::mouseMoveEvent(QMouseEvent *event) +{ + qDebug("opmap: mouseMoveEvent"); + + if (m_widget && m_map) + { + } + + if (event->buttons() & Qt::LeftButton) + { +// QPoint pos = event->pos(); + } + + QWidget::mouseMoveEvent(event); +} + +void OPMapGadgetWidget::contextMenuEvent(QContextMenuEvent *event) +{ // the user has right clicked on the map - create the pop-up context menu and display it + + QString s; + + if (!m_widget || !m_map) + return; + + if (event->reason() != QContextMenuEvent::Mouse) + return; // not a mouse click event + + // current mouse position + QPoint p = m_map->mapFromGlobal(event->globalPos()); + m_context_menu_lat_lon = m_map->GetFromLocalToLatLng(p); +// m_context_menu_lat_lon = m_map->currentMousePosition(); + + if (!m_map->contentsRect().contains(p)) + return; // the mouse click was not on the map + + // show the mouse position + s = QString::number(m_context_menu_lat_lon.Lat(), 'f', 7) + " " + QString::number(m_context_menu_lat_lon.Lng(), 'f', 7); + m_widget->labelMousePos->setText(s); + + // find out if we have a waypoint under the mouse cursor + QGraphicsItem *item = m_map->itemAt(p); + m_mouse_waypoint = qgraphicsitem_cast(item); + + // find out if the waypoint is locked (or not) + bool waypoint_locked = false; + if (m_mouse_waypoint) + waypoint_locked = (m_mouse_waypoint->flags() & QGraphicsItem::ItemIsMovable) == 0; + + // **************** + // Dynamically create the popup menu + + QMenu menu(this); + + menu.addAction(closeAct1); + + menu.addSeparator(); + + menu.addAction(reloadAct); + + menu.addSeparator(); + + QMenu maxUpdateRateSubMenu(tr("&Max Update Rate ") + "(" + QString::number(m_maxUpdateRate) + " ms)", this); + for (int i = 0; i < maxUpdateRateAct.count(); i++) + maxUpdateRateSubMenu.addAction(maxUpdateRateAct.at(i)); + menu.addMenu(&maxUpdateRateSubMenu); + + menu.addSeparator(); + + switch (m_map_mode) + { + case Normal_MapMode: s = tr(" (Normal)"); break; + case MagicWaypoint_MapMode: s = tr(" (Magic Waypoint)"); break; + default: s = tr(" (Unknown)"); break; + } + for (int i = 0; i < mapModeAct.count(); i++) + { // set the menu to checked (or not) + QAction *act = mapModeAct.at(i); + if (!act) continue; + if (act->data().toInt() == (int)m_map_mode) + act->setChecked(true); + } + QMenu mapModeSubMenu(tr("Map mode") + s, this); + for (int i = 0; i < mapModeAct.count(); i++) + mapModeSubMenu.addAction(mapModeAct.at(i)); + menu.addMenu(&mapModeSubMenu); + + menu.addSeparator(); + + QMenu copySubMenu(tr("Copy"), this); + copySubMenu.addAction(copyMouseLatLonToClipAct); + copySubMenu.addAction(copyMouseLatToClipAct); + copySubMenu.addAction(copyMouseLonToClipAct); + menu.addMenu(©SubMenu); + + menu.addSeparator(); + + /* + menu.addAction(findPlaceAct); + + menu.addSeparator(); + */ + + menu.addAction(showSafeAreaAct); + QMenu safeAreaSubMenu(tr("Safe Area Radius") + " (" + QString::number(m_map->Home->SafeArea()) + "m)", this); + for (int i = 0; i < safeAreaAct.count(); i++) + safeAreaSubMenu.addAction(safeAreaAct.at(i)); + menu.addMenu(&safeAreaSubMenu); + + menu.addSeparator(); + + menu.addAction(showCompassAct); + + menu.addAction(showDiagnostics); + + menu.addSeparator()->setText(tr("Zoom")); + + menu.addAction(zoomInAct); + menu.addAction(zoomOutAct); + + QMenu zoomSubMenu(tr("&Zoom ") + "(" + QString::number(m_map->ZoomTotal()) + ")", this); + for (int i = 0; i < zoomAct.count(); i++) + zoomSubMenu.addAction(zoomAct.at(i)); + menu.addMenu(&zoomSubMenu); + + menu.addSeparator(); + + menu.addAction(goMouseClickAct); + + menu.addSeparator()->setText(tr("HOME")); + + menu.addAction(setHomeAct); + menu.addAction(showHomeAct); + menu.addAction(goHomeAct); + + // **** + // uav trails + + menu.addSeparator()->setText(tr("UAV Trail")); + + QMenu uavTrailTypeSubMenu(tr("UAV trail type") + " (" + mapcontrol::Helper::StrFromUAVTrailType(m_map->UAV->GetTrailType()) + ")", this); + for (int i = 0; i < uavTrailTypeAct.count(); i++) + uavTrailTypeSubMenu.addAction(uavTrailTypeAct.at(i)); + menu.addMenu(&uavTrailTypeSubMenu); + + QMenu uavTrailTimeSubMenu(tr("UAV trail time") + " (" + QString::number(m_map->UAV->TrailTime()) + " sec)", this); + for (int i = 0; i < uavTrailTimeAct.count(); i++) + uavTrailTimeSubMenu.addAction(uavTrailTimeAct.at(i)); + menu.addMenu(&uavTrailTimeSubMenu); + + QMenu uavTrailDistanceSubMenu(tr("UAV trail distance") + " (" + QString::number(m_map->UAV->TrailDistance()) + " meters)", this); + for (int i = 0; i < uavTrailDistanceAct.count(); i++) + uavTrailDistanceSubMenu.addAction(uavTrailDistanceAct.at(i)); + menu.addMenu(&uavTrailDistanceSubMenu); + + menu.addAction(showTrailAct); + + menu.addAction(showTrailLineAct); + + menu.addAction(clearUAVtrailAct); + + // **** + + menu.addSeparator()->setText(tr("UAV")); + + menu.addAction(showUAVAct); + menu.addAction(followUAVpositionAct); + menu.addAction(followUAVheadingAct); + menu.addAction(goUAVAct); + + // ********* + + switch (m_map_mode) + { + case Normal_MapMode: + // only show the waypoint stuff if not in 'magic waypoint' mode + /* + menu.addSeparator()->setText(tr("Waypoints")); + + menu.addAction(wayPointEditorAct); + menu.addAction(addWayPointAct); + + if (m_mouse_waypoint) + { // we have a waypoint under the mouse + menu.addAction(editWayPointAct); + + lockWayPointAct->setChecked(waypoint_locked); + menu.addAction(lockWayPointAct); + + if (!waypoint_locked) + menu.addAction(deleteWayPointAct); + } + + m_waypoint_list_mutex.lock(); + if (m_waypoint_list.count() > 0) + menu.addAction(clearWayPointsAct); // we have waypoints + m_waypoint_list_mutex.unlock(); + */ + + break; + + case MagicWaypoint_MapMode: + menu.addSeparator()->setText(tr("Waypoints")); + menu.addAction(homeMagicWaypointAct); + break; + } + + // ********* + + menu.addSeparator(); + + menu.addAction(closeAct2); + + menu.exec(event->globalPos()); // popup the menu + + // **************** +} + +void OPMapGadgetWidget::keyPressEvent(QKeyEvent* event) +{ + qDebug() << "opmap: keyPressEvent, key =" << event->key() << endl; + + switch (event->key()) + { + case Qt::Key_Escape: + break; + + case Qt::Key_F1: + break; + + case Qt::Key_F2: + break; + + case Qt::Key_Up: + break; + + case Qt::Key_Down: + break; + + case Qt::Key_Left: + break; + + case Qt::Key_Right: + break; + + case Qt::Key_PageUp: + break; + + case Qt::Key_PageDown: + break; + } +} + +// ************************************************************************************* +// timer signals + +/** + Updates the UAV position on the map. It is called every 200ms + by a timer. + + TODO: consider updating upon object update, not timer. + + from Pip: No don't update on object update - had reports that peoples PC's can't cope with high update rates - have had to allow user to set map update from 100ms to 5 seconds (depending on their PC's graphics processing ability), so this needs to be kept on a timer. + */ +void OPMapGadgetWidget::updatePosition() +{ + double uav_latitude, uav_longitude, uav_altitude, uav_yaw; + double gps_latitude, gps_longitude, gps_altitude, gps_heading; + + internals::PointLatLng uav_pos; + internals::PointLatLng gps_pos; + + if (!m_widget || !m_map) + return; + + QMutexLocker locker(&m_map_mutex); +// Pip I'm sorry, I know this was here with a purpose vvv +// from Pip: let you off :) + //if (!telemetry_connected) + // return; + + // ************* + // get the current UAV details + + // get current UAV position + if (!getUAVPosition(uav_latitude, uav_longitude, uav_altitude)) + return; + + // get current UAV heading + uav_yaw = getUAV_Yaw(); + + uav_pos = internals::PointLatLng(uav_latitude, uav_longitude); + + // ************* + // get the current GPS details + + // get current GPS position + if (!getGPSPosition(gps_latitude, gps_longitude, gps_altitude)) + return; + + // get current GPS heading +// gps_heading = getGPS_Heading(); + gps_heading = 0; + + gps_pos = internals::PointLatLng(gps_latitude, gps_longitude); + + // ************* + // display the UAV position + + QString str = + "lat: " + QString::number(uav_pos.Lat(), 'f', 7) + + " lon: " + QString::number(uav_pos.Lng(), 'f', 7) + + " " + QString::number(uav_yaw, 'f', 1) + "deg" + + " " + QString::number(uav_altitude, 'f', 1) + "m"; +// " " + QString::number(uav_ground_speed_meters_per_second, 'f', 1) + "m/s"; + m_widget->labelUAVPos->setText(str); + + // ************* + // set the UAV icon position on the map + + m_map->UAV->SetUAVPos(uav_pos, uav_altitude); // set the maps UAV position +// qDebug()<<"UAVPOSITION"<UAV->SetUAVHeading(uav_yaw); // set the maps UAV heading + + // ************* + // set the GPS icon position on the map + + m_map->GPS->SetUAVPos(gps_pos, gps_altitude); // set the maps GPS position + m_map->GPS->SetUAVHeading(gps_heading); // set the maps GPS heading + + // ************* +} + +/** + Update plugin behaviour based on mouse position; Called every few ms by a + timer. + */ +void OPMapGadgetWidget::updateMousePos() +{ + if (!m_widget || !m_map) + return; + + QMutexLocker locker(&m_map_mutex); + + QPoint p = m_map->mapFromGlobal(QCursor::pos()); + internals::PointLatLng lat_lon = m_map->GetFromLocalToLatLng(p); // fetch the current lat/lon mouse position + + if (!m_map->contentsRect().contains(p)) + return; // the mouse is not on the map + +// internals::PointLatLng lat_lon = m_map->currentMousePosition(); // fetch the current lat/lon mouse position + + QGraphicsItem *item = m_map->itemAt(p); + + // find out if we are over the home position + mapcontrol::HomeItem *home = qgraphicsitem_cast(item); + + // find out if we are over the UAV + mapcontrol::UAVItem *uav = qgraphicsitem_cast(item); + + // find out if we have a waypoint under the mouse cursor + mapcontrol::WayPointItem *wp = qgraphicsitem_cast(item); + + if (m_mouse_lat_lon == lat_lon) + return; // the mouse has not moved + + m_mouse_lat_lon = lat_lon; // yes it has! + + internals::PointLatLng home_lat_lon = m_map->Home->Coord(); + + QString s = QString::number(m_mouse_lat_lon.Lat(), 'f', 7) + " " + QString::number(m_mouse_lat_lon.Lng(), 'f', 7); + if (wp) + { + s += " wp[" + QString::number(wp->Number()) + "]"; + + double dist = distance(home_lat_lon, wp->Coord()); + double bear = bearing(home_lat_lon, wp->Coord()); + s += " " + QString::number(dist * 1000, 'f', 1) + "m"; + s += " " + QString::number(bear, 'f', 1) + "deg"; + } + else + if (home) + { + s += " home"; + + double dist = distance(home_lat_lon, m_mouse_lat_lon); + double bear = bearing(home_lat_lon, m_mouse_lat_lon); + s += " " + QString::number(dist * 1000, 'f', 1) + "m"; + s += " " + QString::number(bear, 'f', 1) + "deg"; + } + else + if (uav) + { + s += " uav"; + + double latitude; + double longitude; + double altitude; + if (getUAVPosition(latitude, longitude, altitude)) // get current UAV position + { + internals::PointLatLng uav_pos = internals::PointLatLng(latitude, longitude); + +// double dist = distance(home_lat_lon, uav_pos); +// double bear = bearing(home_lat_lon, uav_pos); +// s += " " + QString::number(dist * 1000, 'f', 1) + "m"; +// s += " " + QString::number(bear, 'f', 1) + "deg"; + } + } + m_widget->labelMousePos->setText(s); +} + +// ************************************************************************************* +// map signals + + +/** + Update the Plugin UI to reflect a change in zoom level + */ +void OPMapGadgetWidget::zoomChanged(double zoomt, double zoom, double zoomd) +{ + if (!m_widget || !m_map) + return; + + QString s = "tot:" + QString::number(zoomt, 'f', 1) + " rea:" + QString::number(zoom, 'f', 1) + " dig:" + QString::number(zoomd, 'f', 1); + m_widget->labelMapZoom->setText(s); + + int i_zoom = (int)(zoomt + 0.5); + + if (i_zoom < m_min_zoom) i_zoom = m_min_zoom; + else + if (i_zoom > m_max_zoom) i_zoom = m_max_zoom; + + if (m_widget->horizontalSliderZoom->value() != i_zoom) + m_widget->horizontalSliderZoom->setValue(i_zoom); // set the GUI zoom slider position + + int index0_zoom = i_zoom - m_min_zoom; // zoom level starting at index level '0' + if (index0_zoom < zoomAct.count()) + zoomAct.at(index0_zoom)->setChecked(true); // set the right-click context menu zoom level +} + +void OPMapGadgetWidget::OnMapDrag() +{ +} + +void OPMapGadgetWidget::OnCurrentPositionChanged(internals::PointLatLng point) +{ + if (!m_widget || !m_map) + return; + + QString coord_str = QString::number(point.Lat(), 'f', 7) + " " + QString::number(point.Lng(), 'f', 7) + " "; + m_widget->labelMapPos->setText(coord_str); +} + +/** + Update the progress bar while there are still tiles to load + */ +void OPMapGadgetWidget::OnTilesStillToLoad(int number) +{ + if (!m_widget || !m_map) + return; + +// if (prev_tile_number < number || m_widget->progressBarMap->maximum() < number) +// m_widget->progressBarMap->setMaximum(number); + + if (m_widget->progressBarMap->maximum() < number) + m_widget->progressBarMap->setMaximum(number); + + m_widget->progressBarMap->setValue(m_widget->progressBarMap->maximum() - number); // update the progress bar + +// m_widget->labelNumTilesToLoad->setText(QString::number(number)); + + m_prev_tile_number = number; +} + +/** + Show the progress bar as soon as the map lib starts downloading + */ +void OPMapGadgetWidget::OnTileLoadStart() +{ + if (!m_widget || !m_map) + return; + + m_widget->progressBarMap->setVisible(true); +} + +/** + Hide the progress bar once the map lib has finished downloading + + TODO: somehow this gets called before tile load is actually complete? + */ + +void OPMapGadgetWidget::OnTileLoadComplete() +{ + if (!m_widget || !m_map) + return; + + m_widget->progressBarMap->setVisible(false); +} + +void OPMapGadgetWidget::OnMapZoomChanged() +{ +} + +void OPMapGadgetWidget::OnMapTypeChanged(MapType::Types type) +{ + Q_UNUSED(type); +} + +void OPMapGadgetWidget::OnEmptyTileError(int zoom, core::Point pos) +{ + Q_UNUSED(zoom); + Q_UNUSED(pos); +} + +void OPMapGadgetWidget::WPNumberChanged(int const &oldnumber, int const &newnumber, WayPointItem *waypoint) +{ + Q_UNUSED(oldnumber); + Q_UNUSED(newnumber); + Q_UNUSED(waypoint); +} + +void OPMapGadgetWidget::WPValuesChanged(WayPointItem *waypoint) +{ +// qDebug("opmap: WPValuesChanged"); + + switch (m_map_mode) + { + case Normal_MapMode: + m_waypoint_list_mutex.lock(); + foreach (t_waypoint *wp, m_waypoint_list) + { // search for the waypoint in our own waypoint list and update it + if (!wp) continue; + if (!wp->map_wp_item) continue; + if (wp->map_wp_item != waypoint) continue; + // found the waypoint in our list + wp->coord = waypoint->Coord(); + wp->altitude = waypoint->Altitude(); + wp->description = waypoint->Description(); + break; + } + m_waypoint_list_mutex.unlock(); + break; + + case MagicWaypoint_MapMode: + // update our copy of the magic waypoint + if (m_magic_waypoint.map_wp_item && m_magic_waypoint.map_wp_item == waypoint) + { + m_magic_waypoint.coord = waypoint->Coord(); + m_magic_waypoint.altitude = waypoint->Altitude(); + m_magic_waypoint.description = waypoint->Description(); + + // move the UAV to the magic waypoint position + // moveToMagicWaypointPosition(); + } + break; + } + +} + +/** + TODO: slot to do something upon Waypoint insertion + */ +void OPMapGadgetWidget::WPInserted(int const &number, WayPointItem *waypoint) +{ + Q_UNUSED(number); + Q_UNUSED(waypoint); +} + +/** + TODO: slot to do something upon Waypoint deletion + */ +void OPMapGadgetWidget::WPDeleted(int const &number) +{ + Q_UNUSED(number); +} + + +void OPMapGadgetWidget::on_toolButtonZoomP_clicked() +{ + QMutexLocker locker(&m_map_mutex); + zoomIn(); +} + +void OPMapGadgetWidget::on_toolButtonZoomM_clicked() +{ + QMutexLocker locker(&m_map_mutex); + zoomOut(); +} + +void OPMapGadgetWidget::on_toolButtonMapHome_clicked() +{ + QMutexLocker locker(&m_map_mutex); + goHome(); +} + +void OPMapGadgetWidget::on_toolButtonMapUAV_clicked() +{ + if (!m_widget || !m_map) + return; + + QMutexLocker locker(&m_map_mutex); + + followUAVpositionAct->toggle(); +} + +void OPMapGadgetWidget::on_toolButtonMapUAVheading_clicked() +{ + if (!m_widget || !m_map) + return; + + followUAVheadingAct->toggle(); +} + +void OPMapGadgetWidget::on_horizontalSliderZoom_sliderMoved(int position) +{ + if (!m_widget || !m_map) + return; + + QMutexLocker locker(&m_map_mutex); + + setZoom(position); +} + + +void OPMapGadgetWidget::on_toolButtonNormalMapMode_clicked() +{ + setMapMode(Normal_MapMode); +} + +void OPMapGadgetWidget::on_toolButtonMagicWaypointMapMode_clicked() +{ + setMapMode(MagicWaypoint_MapMode); +} + +void OPMapGadgetWidget::on_toolButtonHomeWaypoint_clicked() +{ + homeMagicWaypoint(); +} + +void OPMapGadgetWidget::on_toolButtonMoveToWP_clicked() +{ + moveToMagicWaypointPosition(); +} + +// ************************************************************************************* +// public slots + +void OPMapGadgetWidget::onTelemetryConnect() +{ + m_telemetry_connected = true; + + if (!obum) return; + + bool set; + double LLA[3]; + + // *********************** + // fetch the home location + + if (obum->getHomeLocation(set, LLA) < 0) + return; // error + + setHome(internals::PointLatLng(LLA[0], LLA[1])); + + if (m_map) + m_map->SetCurrentPosition(m_home_position.coord); // set the map position + + // *********************** +} + +void OPMapGadgetWidget::onTelemetryDisconnect() +{ + m_telemetry_connected = false; +} + +// Updates the Home position icon whenever the HomePosition object is updated +void OPMapGadgetWidget::homePositionUpdated(UAVObject *hp) +{ + if (!hp) + return; + + double lat = hp->getField("Latitude")->getDouble() * 1e-7; + double lon = hp->getField("Longitude")->getDouble() * 1e-7; + setHome(internals::PointLatLng(lat, lon)); +} + +// ************************************************************************************* +// public functions + +/** + Sets the home position on the map widget + */ +void OPMapGadgetWidget::setHome(QPointF pos) +{ + if (!m_widget || !m_map) + return; + + double latitude = pos.x(); + double longitude = pos.y(); + + if (latitude > 90) latitude = 90; + else + if (latitude < -90) latitude = -90; + + if (longitude != longitude) longitude = 0; // nan detection + else + if (longitude > 180) longitude = 180; + else + if (longitude < -180) longitude = -180; + + setHome(internals::PointLatLng(latitude, longitude)); +} + +/** + Sets the home position on the map widget + */ +void OPMapGadgetWidget::setHome(internals::PointLatLng pos_lat_lon) +{ + if (!m_widget || !m_map) + return; + + if (pos_lat_lon.Lat() != pos_lat_lon.Lat() || pos_lat_lon.Lng() != pos_lat_lon.Lng()) + return;; // nan prevention + + double latitude = pos_lat_lon.Lat(); + double longitude = pos_lat_lon.Lng(); + + if (latitude != latitude) latitude = 0; // nan detection + else + if (latitude > 90) latitude = 90; + else + if (latitude < -90) latitude = -90; + + if (longitude != longitude) longitude = 0; // nan detection + else + if (longitude > 180) longitude = 180; + else + if (longitude < -180) longitude = -180; + + // ********* + + m_home_position.coord = internals::PointLatLng(latitude, longitude); + + m_map->Home->SetCoord(m_home_position.coord); + m_map->Home->RefreshPos(); + + // move the magic waypoint to keep it within the safe area boundry + keepMagicWaypointWithInSafeArea(); +} + + +/** + Centers the map over the home position + */ +void OPMapGadgetWidget::goHome() +{ + if (!m_widget || !m_map) + return; + + followUAVpositionAct->setChecked(false); + + internals::PointLatLng home_pos = m_home_position.coord; // get the home location + m_map->SetCurrentPosition(home_pos); // center the map onto the home location +} + + +void OPMapGadgetWidget::zoomIn() +{ + if (!m_widget || !m_map) + return; + + int zoom = m_map->ZoomTotal() + 1; + + if (zoom < m_min_zoom) zoom = m_min_zoom; + else + if (zoom > m_max_zoom) zoom = m_max_zoom; + + m_map->SetZoom(zoom); +} + +void OPMapGadgetWidget::zoomOut() +{ + if (!m_widget || !m_map) + return; + + int zoom = m_map->ZoomTotal() - 1; + + if (zoom < m_min_zoom) zoom = m_min_zoom; + else + if (zoom > m_max_zoom) zoom = m_max_zoom; + + m_map->SetZoom(zoom); +} + +void OPMapGadgetWidget::setMaxUpdateRate(int update_rate) +{ + if (!m_widget || !m_map) + return; + + int list_size = sizeof(max_update_rate_list) / sizeof(max_update_rate_list[0]); + int min_rate = max_update_rate_list[0]; + int max_rate = max_update_rate_list[list_size - 1]; + + if (update_rate < min_rate) update_rate = min_rate; + else + if (update_rate > max_rate) update_rate = max_rate; + + m_maxUpdateRate = update_rate; + + if (m_updateTimer) + m_updateTimer->setInterval(m_maxUpdateRate); + +// if (m_statusUpdateTimer) +// m_statusUpdateTimer->setInterval(m_maxUpdateRate); +} + +void OPMapGadgetWidget::setZoom(int zoom) +{ + if (!m_widget || !m_map) + return; + + if (zoom < m_min_zoom) zoom = m_min_zoom; + else + if (zoom > m_max_zoom) zoom = m_max_zoom; + + internals::MouseWheelZoomType::Types zoom_type = m_map->GetMouseWheelZoomType(); + m_map->SetMouseWheelZoomType(internals::MouseWheelZoomType::ViewCenter); + + m_map->SetZoom(zoom); + + m_map->SetMouseWheelZoomType(zoom_type); +} + +void OPMapGadgetWidget::setPosition(QPointF pos) +{ + if (!m_widget || !m_map) + return; + + double latitude = pos.y(); + double longitude = pos.x(); + + if (latitude != latitude || longitude != longitude) + return; // nan prevention + + if (latitude > 90) latitude = 90; + else + if (latitude < -90) latitude = -90; + + if (longitude > 180) longitude = 180; + else + if (longitude < -180) longitude = -180; + + m_map->SetCurrentPosition(internals::PointLatLng(latitude, longitude)); +} + +void OPMapGadgetWidget::setMapProvider(QString provider) +{ + if (!m_widget || !m_map) + return; + + m_map->SetMapType(mapcontrol::Helper::MapTypeFromString(provider)); +} + +void OPMapGadgetWidget::setAccessMode(QString accessMode) +{ + if (!m_widget || !m_map) + return; + + m_map->configuration->SetAccessMode(mapcontrol::Helper::AccessModeFromString(accessMode)); +} + +void OPMapGadgetWidget::setUseOpenGL(bool useOpenGL) +{ + if (!m_widget || !m_map) + return; + + m_map->SetUseOpenGL(useOpenGL); +} + +void OPMapGadgetWidget::setShowTileGridLines(bool showTileGridLines) +{ + if (!m_widget || !m_map) + return; + + m_map->SetShowTileGridLines(showTileGridLines); +} + +void OPMapGadgetWidget::setUseMemoryCache(bool useMemoryCache) +{ + if (!m_widget || !m_map) + return; + + m_map->configuration->SetUseMemoryCache(useMemoryCache); +} + +void OPMapGadgetWidget::setCacheLocation(QString cacheLocation) +{ + if (!m_widget || !m_map) + return; + + cacheLocation = cacheLocation.simplified(); // remove any surrounding spaces + + if (cacheLocation.isEmpty()) return; + +// #if defined(Q_WS_WIN) +// if (!cacheLocation.endsWith('\\')) cacheLocation += '\\'; +// #elif defined(Q_WS_X11) + if (!cacheLocation.endsWith(QDir::separator())) cacheLocation += QDir::separator(); +// #elif defined(Q_WS_MAC) +// if (!cacheLocation.endsWith(QDir::separator())) cacheLocation += QDir::separator(); +// #endif + + QDir dir; + if (!dir.exists(cacheLocation)) + if (!dir.mkpath(cacheLocation)) + return; + +// qDebug() << "opmap: map cache dir: " << cacheLocation; + + m_map->configuration->SetCacheLocation(cacheLocation); +} + +void OPMapGadgetWidget::setMapMode(opMapModeType mode) +{ + if (!m_widget || !m_map) + return; + + if (mode != Normal_MapMode && mode != MagicWaypoint_MapMode) + mode = Normal_MapMode; // fix error + + if (m_map_mode == mode) + { // no change in map mode + switch (mode) + { // make sure the UI buttons are set correctly + case Normal_MapMode: + m_widget->toolButtonMagicWaypointMapMode->setChecked(false); + m_widget->toolButtonNormalMapMode->setChecked(true); + break; + case MagicWaypoint_MapMode: + m_widget->toolButtonNormalMapMode->setChecked(false); + m_widget->toolButtonMagicWaypointMapMode->setChecked(true); + break; + } + return; + } + + switch (mode) + { + case Normal_MapMode: + m_map_mode = Normal_MapMode; + + m_widget->toolButtonMagicWaypointMapMode->setChecked(false); + m_widget->toolButtonNormalMapMode->setChecked(true); + + hideMagicWaypointControls(); + + // delete the magic waypoint from the map + if (m_magic_waypoint.map_wp_item) + { + m_magic_waypoint.coord = m_magic_waypoint.map_wp_item->Coord(); + m_magic_waypoint.altitude = m_magic_waypoint.map_wp_item->Altitude(); + m_magic_waypoint.description = m_magic_waypoint.map_wp_item->Description(); + m_magic_waypoint.map_wp_item = NULL; + } + m_map->WPDeleteAll(); + + // restore the normal waypoints on the map + m_waypoint_list_mutex.lock(); + foreach (t_waypoint *wp, m_waypoint_list) + { + if (!wp) continue; + wp->map_wp_item = m_map->WPCreate(wp->coord, wp->altitude, wp->description); + if (!wp->map_wp_item) continue; + wp->map_wp_item->setZValue(10 + wp->map_wp_item->Number()); + wp->map_wp_item->setFlag(QGraphicsItem::ItemIsMovable, !wp->locked); + if (!wp->locked) + wp->map_wp_item->picture.load(QString::fromUtf8(":/opmap/images/waypoint_marker1.png")); + else + wp->map_wp_item->picture.load(QString::fromUtf8(":/opmap/images/waypoint_marker2.png")); + wp->map_wp_item->update(); + } + m_waypoint_list_mutex.unlock(); + + break; + + case MagicWaypoint_MapMode: + m_map_mode = MagicWaypoint_MapMode; + + m_widget->toolButtonNormalMapMode->setChecked(false); + m_widget->toolButtonMagicWaypointMapMode->setChecked(true); + + showMagicWaypointControls(); + + // delete the normal waypoints from the map + m_waypoint_list_mutex.lock(); + foreach (t_waypoint *wp, m_waypoint_list) + { + if (!wp) continue; + if (!wp->map_wp_item) continue; + wp->coord = wp->map_wp_item->Coord(); + wp->altitude = wp->map_wp_item->Altitude(); + wp->description = wp->map_wp_item->Description(); + wp->locked = (wp->map_wp_item->flags() & QGraphicsItem::ItemIsMovable) == 0; + wp->map_wp_item = NULL; + } + m_map->WPDeleteAll(); + m_waypoint_list_mutex.unlock(); + + // restore the magic waypoint on the map + m_magic_waypoint.map_wp_item = m_map->WPCreate(m_magic_waypoint.coord, m_magic_waypoint.altitude, m_magic_waypoint.description); + m_magic_waypoint.map_wp_item->setZValue(10 + m_magic_waypoint.map_wp_item->Number()); + m_magic_waypoint.map_wp_item->SetShowNumber(false); + m_magic_waypoint.map_wp_item->picture.load(QString::fromUtf8(":/opmap/images/waypoint_marker3.png")); + + break; + } +} + +// ************************************************************************************* +// Context menu stuff + +void OPMapGadgetWidget::createActions() +{ + int list_size; + + if (!m_widget || !m_map) + return; + + // *********************** + // create menu actions + + closeAct1 = new QAction(tr("Close menu"), this); + closeAct1->setStatusTip(tr("Close the context menu")); + + closeAct2 = new QAction(tr("Close menu"), this); + closeAct2->setStatusTip(tr("Close the context menu")); + + reloadAct = new QAction(tr("&Reload map"), this); + reloadAct->setShortcut(tr("F5")); + reloadAct->setStatusTip(tr("Reload the map tiles")); + connect(reloadAct, SIGNAL(triggered()), this, SLOT(onReloadAct_triggered())); + + copyMouseLatLonToClipAct = new QAction(tr("Mouse latitude and longitude"), this); + copyMouseLatLonToClipAct->setStatusTip(tr("Copy the mouse latitude and longitude to the clipboard")); + connect(copyMouseLatLonToClipAct, SIGNAL(triggered()), this, SLOT(onCopyMouseLatLonToClipAct_triggered())); + + copyMouseLatToClipAct = new QAction(tr("Mouse latitude"), this); + copyMouseLatToClipAct->setStatusTip(tr("Copy the mouse latitude to the clipboard")); + connect(copyMouseLatToClipAct, SIGNAL(triggered()), this, SLOT(onCopyMouseLatToClipAct_triggered())); + + copyMouseLonToClipAct = new QAction(tr("Mouse longitude"), this); + copyMouseLonToClipAct->setStatusTip(tr("Copy the mouse longitude to the clipboard")); + connect(copyMouseLonToClipAct, SIGNAL(triggered()), this, SLOT(onCopyMouseLonToClipAct_triggered())); + + /* + findPlaceAct = new QAction(tr("&Find place"), this); + findPlaceAct->setShortcut(tr("Ctrl+F")); + findPlaceAct->setStatusTip(tr("Find a location")); + connect(findPlaceAct, SIGNAL(triggered()), this, SLOT(onFindPlaceAct_triggered())); + */ + + showCompassAct = new QAction(tr("Show compass"), this); + showCompassAct->setStatusTip(tr("Show/Hide the compass")); + showCompassAct->setCheckable(true); + showCompassAct->setChecked(true); + connect(showCompassAct, SIGNAL(toggled(bool)), this, SLOT(onShowCompassAct_toggled(bool))); + + showDiagnostics = new QAction(tr("Show Diagnostics"), this); + showDiagnostics->setStatusTip(tr("Show/Hide the diagnostics")); + showDiagnostics->setCheckable(true); + showDiagnostics->setChecked(false); + connect(showDiagnostics, SIGNAL(toggled(bool)), this, SLOT(onShowDiagnostics_toggled(bool))); + + showHomeAct = new QAction(tr("Show Home"), this); + showHomeAct->setStatusTip(tr("Show/Hide the Home location")); + showHomeAct->setCheckable(true); + showHomeAct->setChecked(true); + connect(showHomeAct, SIGNAL(toggled(bool)), this, SLOT(onShowHomeAct_toggled(bool))); + + showUAVAct = new QAction(tr("Show UAV"), this); + showUAVAct->setStatusTip(tr("Show/Hide the UAV")); + showUAVAct->setCheckable(true); + showUAVAct->setChecked(true); + connect(showUAVAct, SIGNAL(toggled(bool)), this, SLOT(onShowUAVAct_toggled(bool))); + + zoomInAct = new QAction(tr("Zoom &In"), this); + zoomInAct->setShortcut(Qt::Key_PageUp); + zoomInAct->setStatusTip(tr("Zoom the map in")); + connect(zoomInAct, SIGNAL(triggered()), this, SLOT(onGoZoomInAct_triggered())); + + zoomOutAct = new QAction(tr("Zoom &Out"), this); + zoomOutAct->setShortcut(Qt::Key_PageDown); + zoomOutAct->setStatusTip(tr("Zoom the map out")); + connect(zoomOutAct, SIGNAL(triggered()), this, SLOT(onGoZoomOutAct_triggered())); + + goMouseClickAct = new QAction(tr("Go to where you right clicked the mouse"), this); + goMouseClickAct->setStatusTip(tr("Center the map onto where you right clicked the mouse")); + connect(goMouseClickAct, SIGNAL(triggered()), this, SLOT(onGoMouseClickAct_triggered())); + + setHomeAct = new QAction(tr("Set the home location"), this); + setHomeAct->setStatusTip(tr("Set the home location to where you clicked")); + #if !defined(allow_manual_home_location_move) + setHomeAct->setEnabled(false); + #endif + connect(setHomeAct, SIGNAL(triggered()), this, SLOT(onSetHomeAct_triggered())); + + goHomeAct = new QAction(tr("Go to &Home location"), this); + goHomeAct->setShortcut(tr("Ctrl+H")); + goHomeAct->setStatusTip(tr("Center the map onto the home location")); + connect(goHomeAct, SIGNAL(triggered()), this, SLOT(onGoHomeAct_triggered())); + + goUAVAct = new QAction(tr("Go to &UAV location"), this); + goUAVAct->setShortcut(tr("Ctrl+U")); + goUAVAct->setStatusTip(tr("Center the map onto the UAV location")); + connect(goUAVAct, SIGNAL(triggered()), this, SLOT(onGoUAVAct_triggered())); + + followUAVpositionAct = new QAction(tr("Follow UAV position"), this); + followUAVpositionAct->setShortcut(tr("Ctrl+F")); + followUAVpositionAct->setStatusTip(tr("Keep the map centered onto the UAV")); + followUAVpositionAct->setCheckable(true); + followUAVpositionAct->setChecked(false); + connect(followUAVpositionAct, SIGNAL(toggled(bool)), this, SLOT(onFollowUAVpositionAct_toggled(bool))); + + followUAVheadingAct = new QAction(tr("Follow UAV heading"), this); + followUAVheadingAct->setShortcut(tr("Ctrl+F")); + followUAVheadingAct->setStatusTip(tr("Keep the map rotation to the UAV heading")); + followUAVheadingAct->setCheckable(true); + followUAVheadingAct->setChecked(false); + connect(followUAVheadingAct, SIGNAL(toggled(bool)), this, SLOT(onFollowUAVheadingAct_toggled(bool))); + + /* + TODO: Waypoint support is disabled for v1.0 + */ + + /* + wayPointEditorAct = new QAction(tr("&Waypoint editor"), this); + wayPointEditorAct->setShortcut(tr("Ctrl+W")); + wayPointEditorAct->setStatusTip(tr("Open the waypoint editor")); + wayPointEditorAct->setEnabled(false); // temporary + connect(wayPointEditorAct, SIGNAL(triggered()), this, SLOT(onOpenWayPointEditorAct_triggered())); + + addWayPointAct = new QAction(tr("&Add waypoint"), this); + addWayPointAct->setShortcut(tr("Ctrl+A")); + addWayPointAct->setStatusTip(tr("Add waypoint")); + connect(addWayPointAct, SIGNAL(triggered()), this, SLOT(onAddWayPointAct_triggered())); + + editWayPointAct = new QAction(tr("&Edit waypoint"), this); + editWayPointAct->setShortcut(tr("Ctrl+E")); + editWayPointAct->setStatusTip(tr("Edit waypoint")); + connect(editWayPointAct, SIGNAL(triggered()), this, SLOT(onEditWayPointAct_triggered())); + + lockWayPointAct = new QAction(tr("&Lock waypoint"), this); + lockWayPointAct->setStatusTip(tr("Lock/Unlock a waypoint")); + lockWayPointAct->setCheckable(true); + lockWayPointAct->setChecked(false); + connect(lockWayPointAct, SIGNAL(triggered()), this, SLOT(onLockWayPointAct_triggered())); + + deleteWayPointAct = new QAction(tr("&Delete waypoint"), this); + deleteWayPointAct->setShortcut(tr("Ctrl+D")); + deleteWayPointAct->setStatusTip(tr("Delete waypoint")); + connect(deleteWayPointAct, SIGNAL(triggered()), this, SLOT(onDeleteWayPointAct_triggered())); + + clearWayPointsAct = new QAction(tr("&Clear waypoints"), this); + clearWayPointsAct->setShortcut(tr("Ctrl+C")); + clearWayPointsAct->setStatusTip(tr("Clear waypoints")); + connect(clearWayPointsAct, SIGNAL(triggered()), this, SLOT(onClearWayPointsAct_triggered())); + */ + + homeMagicWaypointAct = new QAction(tr("Home magic waypoint"), this); + homeMagicWaypointAct->setStatusTip(tr("Move the magic waypoint to the home position")); + connect(homeMagicWaypointAct, SIGNAL(triggered()), this, SLOT(onHomeMagicWaypointAct_triggered())); + + mapModeActGroup = new QActionGroup(this); + connect(mapModeActGroup, SIGNAL(triggered(QAction *)), this, SLOT(onMapModeActGroup_triggered(QAction *))); + mapModeAct.clear(); + { + QAction *map_mode_act; + + map_mode_act = new QAction(tr("Normal"), mapModeActGroup); + map_mode_act->setCheckable(true); + map_mode_act->setChecked(m_map_mode == Normal_MapMode); + map_mode_act->setData((int)Normal_MapMode); + mapModeAct.append(map_mode_act); + + map_mode_act = new QAction(tr("Magic Waypoint"), mapModeActGroup); + map_mode_act->setCheckable(true); + map_mode_act->setChecked(m_map_mode == MagicWaypoint_MapMode); + map_mode_act->setData((int)MagicWaypoint_MapMode); + mapModeAct.append(map_mode_act); + } + + zoomActGroup = new QActionGroup(this); + connect(zoomActGroup, SIGNAL(triggered(QAction *)), this, SLOT(onZoomActGroup_triggered(QAction *))); + zoomAct.clear(); + for (int i = m_min_zoom; i <= m_max_zoom; i++) + { + QAction *zoom_act = new QAction(QString::number(i), zoomActGroup); + zoom_act->setCheckable(true); + zoom_act->setData(i); + zoomAct.append(zoom_act); + } + + maxUpdateRateActGroup = new QActionGroup(this); + connect(maxUpdateRateActGroup, SIGNAL(triggered(QAction *)), this, SLOT(onMaxUpdateRateActGroup_triggered(QAction *))); + maxUpdateRateAct.clear(); + list_size = sizeof(max_update_rate_list) / sizeof(max_update_rate_list[0]); + for (int i = 0; i < list_size; i++) + { + QAction *maxUpdateRate_act; + int j = max_update_rate_list[i]; + maxUpdateRate_act = new QAction(QString::number(j), maxUpdateRateActGroup); + maxUpdateRate_act->setCheckable(true); + maxUpdateRate_act->setData(j); + maxUpdateRate_act->setChecked(j == m_maxUpdateRate); + maxUpdateRateAct.append(maxUpdateRate_act); + } + + // ***** + // safe area + + showSafeAreaAct = new QAction(tr("Show Safe Area"), this); + showSafeAreaAct->setStatusTip(tr("Show/Hide the Safe Area around the home location")); + showSafeAreaAct->setCheckable(true); + showSafeAreaAct->setChecked(m_map->Home->ShowSafeArea()); + connect(showSafeAreaAct, SIGNAL(toggled(bool)), this, SLOT(onShowSafeAreaAct_toggled(bool))); + + safeAreaActGroup = new QActionGroup(this); + connect(safeAreaActGroup, SIGNAL(triggered(QAction *)), this, SLOT(onSafeAreaActGroup_triggered(QAction *))); + safeAreaAct.clear(); + list_size = sizeof(safe_area_radius_list) / sizeof(safe_area_radius_list[0]); + for (int i = 0; i < list_size; i++) + { + int safeArea = safe_area_radius_list[i]; + QAction *safeArea_act = new QAction(QString::number(safeArea) + "m", safeAreaActGroup); + safeArea_act->setCheckable(true); + safeArea_act->setChecked(safeArea == m_map->Home->SafeArea()); + safeArea_act->setData(safeArea); + safeAreaAct.append(safeArea_act); + } + + // ***** + // UAV trail + + uavTrailTypeActGroup = new QActionGroup(this); + connect(uavTrailTypeActGroup, SIGNAL(triggered(QAction *)), this, SLOT(onUAVTrailTypeActGroup_triggered(QAction *))); + uavTrailTypeAct.clear(); + QStringList uav_trail_type_list = mapcontrol::Helper::UAVTrailTypes(); + for (int i = 0; i < uav_trail_type_list.count(); i++) + { + mapcontrol::UAVTrailType::Types uav_trail_type = mapcontrol::Helper::UAVTrailTypeFromString(uav_trail_type_list[i]); + QAction *uavTrailType_act = new QAction(mapcontrol::Helper::StrFromUAVTrailType(uav_trail_type), uavTrailTypeActGroup); + uavTrailType_act->setCheckable(true); + uavTrailType_act->setChecked(uav_trail_type == m_map->UAV->GetTrailType()); + uavTrailType_act->setData(i); + uavTrailTypeAct.append(uavTrailType_act); + } + + showTrailAct = new QAction(tr("Show Trail dots"), this); + showTrailAct->setStatusTip(tr("Show/Hide the Trail dots")); + showTrailAct->setCheckable(true); + showTrailAct->setChecked(true); + connect(showTrailAct, SIGNAL(toggled(bool)), this, SLOT(onShowTrailAct_toggled(bool))); + + showTrailLineAct = new QAction(tr("Show Trail lines"), this); + showTrailLineAct->setStatusTip(tr("Show/Hide the Trail lines")); + showTrailLineAct->setCheckable(true); + showTrailLineAct->setChecked(true); + connect(showTrailLineAct, SIGNAL(toggled(bool)), this, SLOT(onShowTrailLineAct_toggled(bool))); + + clearUAVtrailAct = new QAction(tr("Clear UAV trail"), this); + clearUAVtrailAct->setStatusTip(tr("Clear the UAV trail")); + connect(clearUAVtrailAct, SIGNAL(triggered()), this, SLOT(onClearUAVtrailAct_triggered())); + + uavTrailTimeActGroup = new QActionGroup(this); + connect(uavTrailTimeActGroup, SIGNAL(triggered(QAction *)), this, SLOT(onUAVTrailTimeActGroup_triggered(QAction *))); + uavTrailTimeAct.clear(); + list_size = sizeof(uav_trail_time_list) / sizeof(uav_trail_time_list[0]); + for (int i = 0; i < list_size; i++) + { + int uav_trail_time = uav_trail_time_list[i]; + QAction *uavTrailTime_act = new QAction(QString::number(uav_trail_time) + " sec", uavTrailTimeActGroup); + uavTrailTime_act->setCheckable(true); + uavTrailTime_act->setChecked(uav_trail_time == m_map->UAV->TrailTime()); + uavTrailTime_act->setData(uav_trail_time); + uavTrailTimeAct.append(uavTrailTime_act); + } + + uavTrailDistanceActGroup = new QActionGroup(this); + connect(uavTrailDistanceActGroup, SIGNAL(triggered(QAction *)), this, SLOT(onUAVTrailDistanceActGroup_triggered(QAction *))); + uavTrailDistanceAct.clear(); + list_size = sizeof(uav_trail_distance_list) / sizeof(uav_trail_distance_list[0]); + for (int i = 0; i < list_size; i++) + { + int uav_trail_distance = uav_trail_distance_list[i]; + QAction *uavTrailDistance_act = new QAction(QString::number(uav_trail_distance) + " meters", uavTrailDistanceActGroup); + uavTrailDistance_act->setCheckable(true); + uavTrailDistance_act->setChecked(uav_trail_distance == m_map->UAV->TrailDistance()); + uavTrailDistance_act->setData(uav_trail_distance); + uavTrailDistanceAct.append(uavTrailDistance_act); + } + + // ***** + + // *********************** +} + +void OPMapGadgetWidget::onReloadAct_triggered() +{ + if (!m_widget || !m_map) + return; + + m_map->ReloadMap(); +} + +void OPMapGadgetWidget::onCopyMouseLatLonToClipAct_triggered() +{ + QClipboard *clipboard = QApplication::clipboard(); + clipboard->setText(QString::number(m_context_menu_lat_lon.Lat(), 'f', 7) + ", " + QString::number(m_context_menu_lat_lon.Lng(), 'f', 7), QClipboard::Clipboard); +} + +void OPMapGadgetWidget::onCopyMouseLatToClipAct_triggered() +{ + QClipboard *clipboard = QApplication::clipboard(); + clipboard->setText(QString::number(m_context_menu_lat_lon.Lat(), 'f', 7), QClipboard::Clipboard); +} + +void OPMapGadgetWidget::onCopyMouseLonToClipAct_triggered() +{ + QClipboard *clipboard = QApplication::clipboard(); + clipboard->setText(QString::number(m_context_menu_lat_lon.Lng(), 'f', 7), QClipboard::Clipboard); +} + + +void OPMapGadgetWidget::onShowCompassAct_toggled(bool show) +{ + if (!m_widget || !m_map) + return; + + m_map->SetShowCompass(show); +} + +void OPMapGadgetWidget::onShowDiagnostics_toggled(bool show) +{ + if (!m_widget || !m_map) + return; + + m_map->SetShowDiagnostics(show); +} + +void OPMapGadgetWidget::onShowHomeAct_toggled(bool show) +{ + if (!m_widget || !m_map) + return; + + m_map->Home->setVisible(show); +} + +void OPMapGadgetWidget::onShowUAVAct_toggled(bool show) +{ + if (!m_widget || !m_map) + return; + + m_map->UAV->setVisible(show); + m_map->GPS->setVisible(show); +} + +void OPMapGadgetWidget::onShowTrailAct_toggled(bool show) +{ + if (!m_widget || !m_map) + return; + + m_map->UAV->SetShowTrail(show); + m_map->GPS->SetShowTrail(show); +} + +void OPMapGadgetWidget::onShowTrailLineAct_toggled(bool show) +{ + if (!m_widget || !m_map) + return; + + m_map->UAV->SetShowTrailLine(show); + m_map->GPS->SetShowTrailLine(show); +} + +void OPMapGadgetWidget::onMapModeActGroup_triggered(QAction *action) +{ + if (!m_widget || !m_map || !action) + return; + + opMapModeType mode = (opMapModeType)action->data().toInt(); + + setMapMode(mode); +} + +void OPMapGadgetWidget::onGoZoomInAct_triggered() +{ + zoomIn(); +} + +void OPMapGadgetWidget::onGoZoomOutAct_triggered() +{ + zoomOut(); +} + +void OPMapGadgetWidget::onZoomActGroup_triggered(QAction *action) +{ + if (!m_widget || !m_map || !action) + return; + + setZoom(action->data().toInt()); +} + +void OPMapGadgetWidget::onMaxUpdateRateActGroup_triggered(QAction *action) +{ + if (!m_widget || !m_map || !action) + return; + + setMaxUpdateRate(action->data().toInt()); +} + +void OPMapGadgetWidget::onGoMouseClickAct_triggered() +{ + if (!m_widget || !m_map) + return; + + m_map->SetCurrentPosition(m_map->currentMousePosition()); // center the map onto the mouse position +} + +void OPMapGadgetWidget::onSetHomeAct_triggered() +{ + if (!m_widget || !m_map) + return; + + setHome(m_context_menu_lat_lon); + + setHomeLocationObject(); // update the HomeLocation UAVObject +} + +void OPMapGadgetWidget::onGoHomeAct_triggered() +{ + if (!m_widget || !m_map) + return; + + goHome(); +} + +void OPMapGadgetWidget::onGoUAVAct_triggered() +{ + if (!m_widget || !m_map) + return; + + double latitude; + double longitude; + double altitude; + if (getUAVPosition(latitude, longitude, altitude)) // get current UAV position + { + internals::PointLatLng uav_pos = internals::PointLatLng(latitude, longitude); // current UAV position + internals::PointLatLng map_pos = m_map->CurrentPosition(); // current MAP position + if (map_pos != uav_pos) m_map->SetCurrentPosition(uav_pos); // center the map onto the UAV + } +} + +void OPMapGadgetWidget::onFollowUAVpositionAct_toggled(bool checked) +{ + if (!m_widget || !m_map) + return; + + if (m_widget->toolButtonMapUAV->isChecked() != checked) + m_widget->toolButtonMapUAV->setChecked(checked); + + setMapFollowingMode(); +} + +void OPMapGadgetWidget::onFollowUAVheadingAct_toggled(bool checked) +{ + if (!m_widget || !m_map) + return; + + if (m_widget->toolButtonMapUAVheading->isChecked() != checked) + m_widget->toolButtonMapUAVheading->setChecked(checked); + + setMapFollowingMode(); +} + +void OPMapGadgetWidget::onUAVTrailTypeActGroup_triggered(QAction *action) +{ + if (!m_widget || !m_map || !action) + return; + + int trail_type_idx = action->data().toInt(); + + QStringList uav_trail_type_list = mapcontrol::Helper::UAVTrailTypes(); + mapcontrol::UAVTrailType::Types uav_trail_type = mapcontrol::Helper::UAVTrailTypeFromString(uav_trail_type_list[trail_type_idx]); + + m_map->UAV->SetTrailType(uav_trail_type); +} + +void OPMapGadgetWidget::onClearUAVtrailAct_triggered() +{ + if (!m_widget || !m_map) + return; + + m_map->UAV->DeleteTrail(); + m_map->GPS->DeleteTrail(); +} + +void OPMapGadgetWidget::onUAVTrailTimeActGroup_triggered(QAction *action) +{ + if (!m_widget || !m_map || !action) + return; + + int trail_time = (double)action->data().toInt(); + + m_map->UAV->SetTrailTime(trail_time); +} + +void OPMapGadgetWidget::onUAVTrailDistanceActGroup_triggered(QAction *action) +{ + if (!m_widget || !m_map || !action) + return; + + int trail_distance = action->data().toInt(); + + m_map->UAV->SetTrailDistance(trail_distance); +} + +/** + * TODO: unused for v1.0 + **/ +/* +void OPMapGadgetWidget::onAddWayPointAct_triggered() +{ + if (!m_widget || !m_map) + return; + + if (m_map_mode != Normal_MapMode) + return; + + m_waypoint_list_mutex.lock(); + + // create a waypoint on the map at the last known mouse position + t_waypoint *wp = new t_waypoint; + wp->map_wp_item = NULL; + wp->coord = context_menu_lat_lon; + wp->altitude = 0; + wp->description = ""; + wp->locked = false; + wp->time_seconds = 0; + wp->hold_time_seconds = 0; + wp->map_wp_item = m_map->WPCreate(wp->coord, wp->altitude, wp->description); + + wp->map_wp_item->setZValue(10 + wp->map_wp_item->Number()); + + wp->map_wp_item->setFlag(QGraphicsItem::ItemIsMovable, !wp->locked); + + if (wp->map_wp_item) + { + if (!wp->locked) + wp->map_wp_item->picture.load(QString::fromUtf8(":/opmap/images/waypoint_marker1.png")); + else + wp->map_wp_item->picture.load(QString::fromUtf8(":/opmap/images/waypoint_marker2.png")); + wp->map_wp_item->update(); + } + + // and remember it in our own local waypoint list + m_waypoint_list.append(wp); + + m_waypoint_list_mutex.unlock(); +} +*/ + +/** + * Called when the user asks to edit a waypoint from the map + * + * TODO: should open an interface to edit waypoint properties, or + * propagate the signal to a specific WP plugin (tbd). + **/ +/* +void OPMapGadgetWidget::onEditWayPointAct_triggered() +{ + if (!m_widget || !m_map) + return; + + if (m_map_mode != Normal_MapMode) + return; + + if (!m_mouse_waypoint) + return; + + //waypoint_edit_dialog.editWaypoint(m_mouse_waypoint); + + m_mouse_waypoint = NULL; +} +*/ + +/** + * TODO: unused for v1.0 + */ +/* +void OPMapGadgetWidget::onLockWayPointAct_triggered() +{ + if (!m_widget || !m_map || !m_mouse_waypoint) + return; + + if (m_map_mode != Normal_MapMode) + return; + + bool locked = (m_mouse_waypoint->flags() & QGraphicsItem::ItemIsMovable) == 0; + m_mouse_waypoint->setFlag(QGraphicsItem::ItemIsMovable, locked); + + if (!locked) + m_mouse_waypoint->picture.load(QString::fromUtf8(":/opmap/images/waypoint_marker2.png")); + else + m_mouse_waypoint->picture.load(QString::fromUtf8(":/opmap/images/waypoint_marker1.png")); + m_mouse_waypoint->update(); + + m_mouse_waypoint = NULL; +} +*/ + +/** + * TODO: unused for v1.0 + */ +/* +void OPMapGadgetWidget::onDeleteWayPointAct_triggered() +{ + if (!m_widget || !m_map) + return; + + if (m_map_mode != Normal_MapMode) + return; + + if (!m_mouse_waypoint) + return; + + bool locked = (m_mouse_waypoint->flags() & QGraphicsItem::ItemIsMovable) == 0; + + if (locked) return; // waypoint is locked + + QMutexLocker locker(&m_waypoint_list_mutex); + + for (int i = 0; i < m_waypoint_list.count(); i++) + { + t_waypoint *wp = m_waypoint_list.at(i); + if (!wp) continue; + if (!wp->map_wp_item || wp->map_wp_item != m_mouse_waypoint) continue; + + // delete the waypoint from the map + m_map->WPDelete(wp->map_wp_item); + + // delete the waypoint from our local waypoint list + m_waypoint_list.removeAt(i); + + delete wp; + + break; + } +// +// foreach (t_waypoint *wp, m_waypoint_list) +// { +// if (!wp) continue; +// if (!wp->map_wp_item || wp->map_wp_item != m_mouse_waypoint) continue; +// +// // delete the waypoint from the map +// m_map->WPDelete(wp->map_wp_item); +// +// // delete the waypoint from our local waypoint list +// m_waypoint_list.removeOne(wp); +// +// delete wp; +// +// break; +// } + + m_mouse_waypoint = NULL; +} +*/ + +/** + * TODO: No Waypoint support in v1.0 + */ +/* +void OPMapGadgetWidget::onClearWayPointsAct_triggered() +{ + if (!m_widget || !m_map) + return; + + if (m_map_mode != Normal_MapMode) + return; + + QMutexLocker locker(&m_waypoint_list_mutex); + + m_map->WPDeleteAll(); + + foreach (t_waypoint *wp, m_waypoint_list) + { + if (wp) + { + delete wp; + wp = NULL; + } + } + + m_waypoint_list.clear(); +} +*/ + +void OPMapGadgetWidget::onHomeMagicWaypointAct_triggered() +{ + // center the magic waypoint on the home position + homeMagicWaypoint(); +} + +void OPMapGadgetWidget::onShowSafeAreaAct_toggled(bool show) +{ + if (!m_widget || !m_map) + return; + + m_map->Home->SetShowSafeArea(show); // show the safe area + m_map->Home->RefreshPos(); +} + +void OPMapGadgetWidget::onSafeAreaActGroup_triggered(QAction *action) +{ + if (!m_widget || !m_map || !action) + return; + + int radius = action->data().toInt(); + + m_map->Home->SetSafeArea(radius); // set the radius (meters) + m_map->Home->RefreshPos(); + + // move the magic waypoint if need be to keep it within the safe area around the home position + keepMagicWaypointWithInSafeArea(); +} + +/** +* move the magic waypoint to the home position +**/ +void OPMapGadgetWidget::homeMagicWaypoint() +{ + if (!m_widget || !m_map) + return; + + if (m_map_mode != MagicWaypoint_MapMode) + return; + + m_magic_waypoint.coord = m_home_position.coord; + + if (m_magic_waypoint.map_wp_item) + m_magic_waypoint.map_wp_item->SetCoord(m_magic_waypoint.coord); +} + +// ************************************************************************************* +// move the UAV to the magic waypoint position + +void OPMapGadgetWidget::moveToMagicWaypointPosition() +{ + if (!m_widget || !m_map) + return; + + if (m_map_mode != MagicWaypoint_MapMode) + return; + +// internals::PointLatLng coord = magic_waypoint.coord; +// double altitude = magic_waypoint.altitude; + + + // ToDo: + +} + +// ************************************************************************************* +// temporary until an object is created for managing the save/restore + +// load the contents of a simple text file into a combobox +void OPMapGadgetWidget::loadComboBoxLines(QComboBox *comboBox, QString filename) +{ + if (!comboBox) return; + if (filename.isNull() || filename.isEmpty()) return; + + QFile file(filename); + if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) + return; + + QTextStream in(&file); + + while (!in.atEnd()) + { + QString line = in.readLine().simplified(); + if (line.isNull() || line.isEmpty()) continue; + comboBox->addItem(line); + } + + file.close(); +} + +// save a combobox text contents to a simple text file +void OPMapGadgetWidget::saveComboBoxLines(QComboBox *comboBox, QString filename) +{ + if (!comboBox) return; + if (filename.isNull() || filename.isEmpty()) return; + + QFile file(filename); + if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) + return; + + QTextStream out(&file); + + for (int i = 0; i < comboBox->count(); i++) + { + QString line = comboBox->itemText(i).simplified(); + if (line.isNull() || line.isEmpty()) continue; + out << line << "\n"; + } + + file.close(); +} + +// ************************************************************************************* +// show/hide the magic waypoint controls + +void OPMapGadgetWidget::hideMagicWaypointControls() +{ + m_widget->lineWaypoint->setVisible(false); + m_widget->toolButtonHomeWaypoint->setVisible(false); + m_widget->toolButtonMoveToWP->setVisible(false); +} + +void OPMapGadgetWidget::showMagicWaypointControls() +{ + m_widget->lineWaypoint->setVisible(true); + m_widget->toolButtonHomeWaypoint->setVisible(true); + + #if defined(allow_manual_home_location_move) + m_widget->toolButtonMoveToWP->setVisible(true); + #else + m_widget->toolButtonMoveToWP->setVisible(false); + #endif +} + +// ************************************************************************************* +// move the magic waypoint to keep it within the safe area boundry + +void OPMapGadgetWidget::keepMagicWaypointWithInSafeArea() +{ + + // calcute the bearing and distance from the home position to the magic waypoint + double dist = distance(m_home_position.coord, m_magic_waypoint.coord); + double bear = bearing(m_home_position.coord, m_magic_waypoint.coord); + + // get the maximum safe distance - in kilometers + double boundry_dist = (double)m_map->Home->SafeArea() / 1000; + +// if (dist <= boundry_dist) +// return; // the magic waypoint is still within the safe area, don't move it + + if (dist > boundry_dist) dist = boundry_dist; + + // move the magic waypoint + + m_magic_waypoint.coord = destPoint(m_home_position.coord, bear, dist); + + if (m_map_mode == MagicWaypoint_MapMode) + { // move the on-screen waypoint + if (m_magic_waypoint.map_wp_item) + m_magic_waypoint.map_wp_item->SetCoord(m_magic_waypoint.coord); + } +} + +// ************************************************************************************* +// return the distance between two points .. in kilometers + +double OPMapGadgetWidget::distance(internals::PointLatLng from, internals::PointLatLng to) +{ + double lat1 = from.Lat() * deg_to_rad; + double lon1 = from.Lng() * deg_to_rad; + + double lat2 = to.Lat() * deg_to_rad; + double lon2 = to.Lng() * deg_to_rad; + + // *********************** + // Haversine formula +/* + double delta_lat = lat2 - lat1; + double delta_lon = lon2 - lon1; + + double t1 = sin(delta_lat / 2); + double t2 = sin(delta_lon / 2); + double a = (t1 * t1) + cos(lat1) * cos(lat2) * (t2 * t2); + double c = 2 * atan2(sqrt(a), sqrt(1 - a)); + + return (earth_mean_radius * c); +*/ + // *********************** + // Spherical Law of Cosines + + return (acos(sin(lat1) * sin(lat2) + cos(lat1) * cos(lat2) * cos(lon2 - lon1)) * earth_mean_radius); + + // *********************** +} + +// ************************************************************************************* +// return the bearing from one point to another .. in degrees + +double OPMapGadgetWidget::bearing(internals::PointLatLng from, internals::PointLatLng to) +{ + double lat1 = from.Lat() * deg_to_rad; + double lon1 = from.Lng() * deg_to_rad; + + double lat2 = to.Lat() * deg_to_rad; + double lon2 = to.Lng() * deg_to_rad; + +// double delta_lat = lat2 - lat1; + double delta_lon = lon2 - lon1; + + double y = sin(delta_lon) * cos(lat2); + double x = cos(lat1) * sin(lat2) - sin(lat1) * cos(lat2) * cos(delta_lon); + double bear = atan2(y, x) * rad_to_deg; + + bear += 360; + while (bear < 0) bear += 360; + while (bear >= 360) bear -= 360; + + return bear; +} + +// ************************************************************************************* +// return a destination lat/lon point given a source lat/lon point and the bearing and distance from the source point + +internals::PointLatLng OPMapGadgetWidget::destPoint(internals::PointLatLng source, double bear, double dist) +{ + double lat1 = source.Lat() * deg_to_rad; + double lon1 = source.Lng() * deg_to_rad; + + bear *= deg_to_rad; + + double ad = dist / earth_mean_radius; + + double lat2 = asin(sin(lat1) * cos(ad) + cos(lat1) * sin(ad) * cos(bear)); + double lon2 = lon1 + atan2(sin(bear) * sin(ad) * cos(lat1), cos(ad) - sin(lat1) * sin(lat2)); + + return internals::PointLatLng(lat2 * rad_to_deg, lon2 * rad_to_deg); +} + +// ************************************************************************************* + +bool OPMapGadgetWidget::getUAVPosition(double &latitude, double &longitude, double &altitude) +{ + double BaseECEF[3]; + double NED[3]; + double LLA[3]; + UAVObject *obj; + + if (!obm) + return false; + + obj = dynamic_cast(obm->getObject(QString("HomeLocation"))); + if (!obj) return false; + BaseECEF[0] = obj->getField(QString("ECEF"))->getDouble(0) / 100; + BaseECEF[1] = obj->getField(QString("ECEF"))->getDouble(1) / 100; + BaseECEF[2] = obj->getField(QString("ECEF"))->getDouble(2) / 100; + + obj = dynamic_cast(obm->getObject(QString("PositionActual"))); + if (!obj) return false; + NED[0] = obj->getField(QString("North"))->getDouble() / 100; + NED[1] = obj->getField(QString("East"))->getDouble() / 100; + NED[2] = obj->getField(QString("Down"))->getDouble() / 100; + +// obj = dynamic_cast(om->getObject(QString("PositionDesired"))); + +// obj = dynamic_cast(objManager->getObject("VelocityActual")); // air speed + + Utils::CoordinateConversions().GetLLA(BaseECEF, NED, LLA); + + latitude = LLA[0]; + longitude = LLA[1]; + altitude = LLA[2]; + + if (latitude != latitude) latitude = 0; // nan detection +// if (isNan(latitude)) latitude = 0; // nan detection + else +// if (!isFinite(latitude)) latitude = 0; +// else + if (latitude > 90) latitude = 90; + else + if (latitude < -90) latitude = -90; + + if (longitude != longitude) longitude = 0; // nan detection + else +// if (longitude > std::numeric_limits::max()) longitude = 0; // +infinite +// else +// if (longitude < -std::numeric_limits::max()) longitude = 0; // -infinite +// else + if (longitude > 180) longitude = 180; + else + if (longitude < -180) longitude = -180; + + if (altitude != altitude) altitude = 0; // nan detection + + return true; +} + +double OPMapGadgetWidget::getUAV_Yaw() +{ + if (!obm) + return 0; + + UAVObject *obj = dynamic_cast(obm->getObject(QString("AttitudeActual"))); + double yaw = obj->getField(QString("Yaw"))->getDouble(); + + if (yaw != yaw) yaw = 0; // nan detection + + while (yaw < 0) yaw += 360; + while (yaw >= 360) yaw -= 360; + + return yaw; +} + +bool OPMapGadgetWidget::getGPSPosition(double &latitude, double &longitude, double &altitude) +{ + double LLA[3]; + + if (!obum) + return false; + + if (obum->getGPSPosition(LLA) < 0) + return false; // error + + latitude = LLA[0]; + longitude = LLA[1]; + altitude = LLA[2]; + + return true; +} + +// ************************************************************************************* + +void OPMapGadgetWidget::setMapFollowingMode() +{ + if (!m_widget || !m_map) + return; + + if (!followUAVpositionAct->isChecked()) + { + m_map->UAV->SetMapFollowType(UAVMapFollowType::None); + m_map->SetRotate(0); // reset map rotation to 0deg + } + else + if (!followUAVheadingAct->isChecked()) + { + m_map->UAV->SetMapFollowType(UAVMapFollowType::CenterMap); + m_map->SetRotate(0); // reset map rotation to 0deg + } + else + { + m_map->UAV->SetMapFollowType(UAVMapFollowType::CenterMap); // the map library won't let you reset the uav rotation if it's already in rotate mode + + m_map->UAV->SetUAVHeading(0); // reset the UAV heading to 0deg + m_map->UAV->SetMapFollowType(UAVMapFollowType::CenterAndRotateMap); + } +} + +// ************************************************************************************* +// update the HomeLocation UAV Object + +bool OPMapGadgetWidget::setHomeLocationObject() +{ + if (!obum) + return false; + + double LLA[3] = {m_home_position.coord.Lat(), m_home_position.coord.Lng(), m_home_position.altitude}; + return (obum->setHomeLocation(LLA, true) >= 0); +} + +// ************************************************************************************* + +void OPMapGadgetWidget::SetUavPic(QString UAVPic) +{ + m_map->SetUavPic(UAVPic); +} diff --git a/ground/openpilotgcs/src/plugins/opmap/opmapgadgetwidget.h b/ground/openpilotgcs/src/plugins/opmap/opmapgadgetwidget.h index 15eddf93d..24f638a80 100644 --- a/ground/openpilotgcs/src/plugins/opmap/opmapgadgetwidget.h +++ b/ground/openpilotgcs/src/plugins/opmap/opmapgadgetwidget.h @@ -1,347 +1,361 @@ -/** - ****************************************************************************** - * - * @file opmapgadgetwidget.h - * @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010. - * @addtogroup GCSPlugins GCS Plugins - * @{ - * @addtogroup OPMapPlugin OpenPilot Map Plugin - * @{ - * @brief The OpenPilot Map plugin - *****************************************************************************/ -/* - * 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 - */ - -#ifndef OPMAP_GADGETWIDGET_H_ -#define OPMAP_GADGETWIDGET_H_ - -// ****************************************************** - -#include -#include -#include -#include -#include -#include -#include -#include - -#include "opmapcontrol/opmapcontrol.h" - -#include "opmap_overlay_widget.h" -#include "opmap_zoom_slider_widget.h" -#include "opmap_statusbar_widget.h" - -#include "utils/coordinateconversions.h" - -#include "extensionsystem/pluginmanager.h" -#include "uavobjectutilmanager.h" -#include "uavobjectmanager.h" -#include "uavobject.h" -#include "objectpersistence.h" - -// ****************************************************** - -namespace Ui -{ - class OPMap_Widget; -} - -using namespace mapcontrol; - -// ****************************************************** - -typedef struct t_home -{ - internals::PointLatLng coord; - double altitude; - bool locked; -} t_home; - -// local waypoint list item structure -typedef struct t_waypoint -{ - mapcontrol::WayPointItem *map_wp_item; - internals::PointLatLng coord; - double altitude; - QString description; - bool locked; - int time_seconds; - int hold_time_seconds; -} t_waypoint; - -// ****************************************************** - -enum opMapModeType { Normal_MapMode = 0, - MagicWaypoint_MapMode = 1}; - -// ****************************************************** - -class OPMapGadgetWidget : public QWidget -{ - Q_OBJECT - -public: - OPMapGadgetWidget(QWidget *parent = 0); - ~OPMapGadgetWidget(); - - /** - * @brief public functions - * - * @param - */ - void setHome(QPointF pos); - void setHome(internals::PointLatLng pos_lat_lon); - void goHome(); - void setZoom(int zoom); - void setPosition(QPointF pos); - void setMapProvider(QString provider); - void setUseOpenGL(bool useOpenGL); - void setShowTileGridLines(bool showTileGridLines); - void setAccessMode(QString accessMode); - void setUseMemoryCache(bool useMemoryCache); - void setCacheLocation(QString cacheLocation); - void setMapMode(opMapModeType mode); - void SetUavPic(QString UAVPic); - -public slots: - void homePositionUpdated(UAVObject *); - void onTelemetryConnect(); - void onTelemetryDisconnect(); - -protected: - void resizeEvent(QResizeEvent *event); - void mouseMoveEvent(QMouseEvent *event); - void contextMenuEvent(QContextMenuEvent *event); - void keyPressEvent(QKeyEvent* event); - -private slots: - void updatePosition(); - - void updateMousePos(); - - void zoomIn(); - void zoomOut(); - - /** - * @brief signals received from the various map plug-in widget user controls - * - * Some are currently disabled for the v1.0 plugin version. - */ -// void comboBoxFindPlace_returnPressed(); -// void on_toolButtonFindPlace_clicked(); - void on_toolButtonZoomM_clicked(); - void on_toolButtonZoomP_clicked(); - void on_toolButtonMapHome_clicked(); - void on_toolButtonMapUAV_clicked(); - void on_toolButtonMapUAVheading_clicked(); - void on_horizontalSliderZoom_sliderMoved(int position); -// void on_toolButtonAddWaypoint_clicked(); -// void on_treeViewWaypoints_clicked(QModelIndex index); -// void on_toolButtonHome_clicked(); -// void on_toolButtonNextWaypoint_clicked(); -// void on_toolButtonPrevWaypoint_clicked(); -// void on_toolButtonHoldPosition_clicked(); -// void on_toolButtonGo_clicked(); - void on_toolButtonMagicWaypointMapMode_clicked(); - void on_toolButtonNormalMapMode_clicked(); - void on_toolButtonHomeWaypoint_clicked(); - void on_toolButtonMoveToWP_clicked(); - - /** - * @brief signals received from the map object - */ - void zoomChanged(double zoomt,double zoom, double zoomd); - void OnCurrentPositionChanged(internals::PointLatLng point); - void OnTileLoadComplete(); - void OnTileLoadStart(); - void OnMapDrag(); - void OnMapZoomChanged(); - void OnMapTypeChanged(MapType::Types type); - void OnEmptyTileError(int zoom, core::Point pos); - void OnTilesStillToLoad(int number); - - /** - * Unused for now, hooks for future waypoint support - */ - void WPNumberChanged(int const& oldnumber,int const& newnumber, WayPointItem* waypoint); - void WPValuesChanged(WayPointItem* waypoint); - void WPInserted(int const& number, WayPointItem* waypoint); - void WPDeleted(int const& number); - - /** - * @brief mouse right click context menu signals - */ - void onReloadAct_triggered(); - void onCopyMouseLatLonToClipAct_triggered(); - void onCopyMouseLatToClipAct_triggered(); - void onCopyMouseLonToClipAct_triggered(); -// void onFindPlaceAct_triggered(); - void onShowCompassAct_toggled(bool show); - void onShowDiagnostics_toggled(bool show); - void onShowUAVAct_toggled(bool show); - void onShowHomeAct_toggled(bool show); - void onShowTrailLineAct_toggled(bool show); - void onShowTrailAct_toggled(bool show); - void onGoZoomInAct_triggered(); - void onGoZoomOutAct_triggered(); - void onGoMouseClickAct_triggered(); - void onSetHomeAct_triggered(); - void onGoHomeAct_triggered(); - void onGoUAVAct_triggered(); - void onFollowUAVpositionAct_toggled(bool checked); - void onFollowUAVheadingAct_toggled(bool checked); -/* - void onOpenWayPointEditorAct_triggered(); - void onAddWayPointAct_triggered(); - void onEditWayPointAct_triggered(); - void onLockWayPointAct_triggered(); - void onDeleteWayPointAct_triggered(); - void onClearWayPointsAct_triggered(); -*/ - void onMapModeActGroup_triggered(QAction *action); - void onZoomActGroup_triggered(QAction *action); - void onHomeMagicWaypointAct_triggered(); - void onShowSafeAreaAct_toggled(bool show); - void onSafeAreaActGroup_triggered(QAction *action); - void onUAVTrailTypeActGroup_triggered(QAction *action); - void onClearUAVtrailAct_triggered(); - void onUAVTrailTimeActGroup_triggered(QAction *action); - void onUAVTrailDistanceActGroup_triggered(QAction *action); - -private: - int min_zoom; - int max_zoom; - - double m_heading; // uav heading - - internals::PointLatLng mouse_lat_lon; - internals::PointLatLng context_menu_lat_lon; - - int prev_tile_number; - - opMapModeType m_map_mode; - - t_home home_position; - - t_waypoint magic_waypoint; - - QStringList findPlaceWordList; - QCompleter *findPlaceCompleter; - - QTimer *m_updateTimer; - QTimer *m_statusUpdateTimer; - - Ui::OPMap_Widget *m_widget; - - mapcontrol::OPMapWidget *m_map; - - ExtensionSystem::PluginManager *pm; - UAVObjectManager *obm; - UAVObjectUtilManager *obum; - - //opmap_waypointeditor_dialog waypoint_editor_dialog; - - //opmap_edit_waypoint_dialog waypoint_edit_dialog; - - QStandardItemModel wayPoint_treeView_model; - - mapcontrol::WayPointItem *m_mouse_waypoint; - - QList m_waypoint_list; - QMutex m_waypoint_list_mutex; - - QMutex m_map_mutex; - - bool telemetry_connected; - - void createActions(); - - QAction *closeAct1; - QAction *closeAct2; - QAction *reloadAct; - QAction *copyMouseLatLonToClipAct; - QAction *copyMouseLatToClipAct; - QAction *copyMouseLonToClipAct; - QAction *findPlaceAct; - QAction *showCompassAct; - QAction *showDiagnostics; - QAction *showHomeAct; - QAction *showUAVAct; - QAction *zoomInAct; - QAction *zoomOutAct; - QAction *goMouseClickAct; - QAction *setHomeAct; - QAction *goHomeAct; - QAction *goUAVAct; - QAction *followUAVpositionAct; - QAction *followUAVheadingAct; - /* - QAction *wayPointEditorAct; - QAction *addWayPointAct; - QAction *editWayPointAct; - QAction *lockWayPointAct; - QAction *deleteWayPointAct; - QAction *clearWayPointsAct; - */ - QAction *homeMagicWaypointAct; - - QAction *showSafeAreaAct; - QActionGroup *safeAreaActGroup; - QList safeAreaAct; - - QActionGroup *uavTrailTypeActGroup; - QList uavTrailTypeAct; - QAction *clearUAVtrailAct; - QActionGroup *uavTrailTimeActGroup; - QAction *showTrailLineAct; - QAction *showTrailAct; - QList uavTrailTimeAct; - QActionGroup *uavTrailDistanceActGroup; - QList uavTrailDistanceAct; - - QActionGroup *mapModeActGroup; - QList mapModeAct; - - QActionGroup *zoomActGroup; - QList zoomAct; - - void homeMagicWaypoint(); - - void moveToMagicWaypointPosition(); - - void loadComboBoxLines(QComboBox *comboBox, QString filename); - void saveComboBoxLines(QComboBox *comboBox, QString filename); - - void hideMagicWaypointControls(); - void showMagicWaypointControls(); - - void keepMagicWaypointWithInSafeArea(); - - double distance(internals::PointLatLng from, internals::PointLatLng to); - double bearing(internals::PointLatLng from, internals::PointLatLng to); - internals::PointLatLng destPoint(internals::PointLatLng source, double bear, double dist); - - bool getUAVPosition(double &latitude, double &longitude, double &altitude); - bool getGPSPosition(double &latitude, double &longitude, double &altitude); - double getUAV_Yaw(); - - void setMapFollowingMode(); - - bool setHomeLocationObject(); -}; - -#endif /* OPMAP_GADGETWIDGET_H_ */ +/** + ****************************************************************************** + * + * @file opmapgadgetwidget.h + * @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010. + * @addtogroup GCSPlugins GCS Plugins + * @{ + * @addtogroup OPMapPlugin OpenPilot Map Plugin + * @{ + * @brief The OpenPilot Map plugin + *****************************************************************************/ +/* + * 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 + */ + +#ifndef OPMAP_GADGETWIDGET_H_ +#define OPMAP_GADGETWIDGET_H_ + +// ****************************************************** + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "opmapcontrol/opmapcontrol.h" + +#include "opmap_overlay_widget.h" +#include "opmap_zoom_slider_widget.h" +#include "opmap_statusbar_widget.h" + +#include "utils/coordinateconversions.h" + +#include "extensionsystem/pluginmanager.h" +#include "uavobjectutilmanager.h" +#include "uavobjectmanager.h" +#include "uavobject.h" +#include "objectpersistence.h" + +// ****************************************************** + +namespace Ui +{ + class OPMap_Widget; +} + +using namespace mapcontrol; + +// ****************************************************** + +typedef struct t_home +{ + internals::PointLatLng coord; + double altitude; + bool locked; +} t_home; + +// local waypoint list item structure +typedef struct t_waypoint +{ + mapcontrol::WayPointItem *map_wp_item; + internals::PointLatLng coord; + double altitude; + QString description; + bool locked; + int time_seconds; + int hold_time_seconds; +} t_waypoint; + +// ****************************************************** + +enum opMapModeType { Normal_MapMode = 0, + MagicWaypoint_MapMode = 1}; + +// ****************************************************** + +class OPMapGadgetWidget : public QWidget +{ + Q_OBJECT + +public: + OPMapGadgetWidget(QWidget *parent = 0); + ~OPMapGadgetWidget(); + + /** + * @brief public functions + * + * @param + */ + void setHome(QPointF pos); + void setHome(internals::PointLatLng pos_lat_lon); + void goHome(); + void setZoom(int zoom); + void setPosition(QPointF pos); + void setMapProvider(QString provider); + void setUseOpenGL(bool useOpenGL); + void setShowTileGridLines(bool showTileGridLines); + void setAccessMode(QString accessMode); + void setUseMemoryCache(bool useMemoryCache); + void setCacheLocation(QString cacheLocation); + void setMapMode(opMapModeType mode); + void SetUavPic(QString UAVPic); + void setMaxUpdateRate(int update_rate); + +public slots: + void homePositionUpdated(UAVObject *); + void onTelemetryConnect(); + void onTelemetryDisconnect(); + +protected: + void resizeEvent(QResizeEvent *event); + void mouseMoveEvent(QMouseEvent *event); + void contextMenuEvent(QContextMenuEvent *event); + void keyPressEvent(QKeyEvent* event); + +private slots: + void updatePosition(); + + void updateMousePos(); + + void zoomIn(); + void zoomOut(); + + /** + * @brief signals received from the various map plug-in widget user controls + * + * Some are currently disabled for the v1.0 plugin version. + */ +// void comboBoxFindPlace_returnPressed(); +// void on_toolButtonFindPlace_clicked(); + void on_toolButtonZoomM_clicked(); + void on_toolButtonZoomP_clicked(); + void on_toolButtonMapHome_clicked(); + void on_toolButtonMapUAV_clicked(); + void on_toolButtonMapUAVheading_clicked(); + void on_horizontalSliderZoom_sliderMoved(int position); +// void on_toolButtonAddWaypoint_clicked(); +// void on_treeViewWaypoints_clicked(QModelIndex index); +// void on_toolButtonHome_clicked(); +// void on_toolButtonNextWaypoint_clicked(); +// void on_toolButtonPrevWaypoint_clicked(); +// void on_toolButtonHoldPosition_clicked(); +// void on_toolButtonGo_clicked(); + void on_toolButtonMagicWaypointMapMode_clicked(); + void on_toolButtonNormalMapMode_clicked(); + void on_toolButtonHomeWaypoint_clicked(); + void on_toolButtonMoveToWP_clicked(); + + /** + * @brief signals received from the map object + */ + void zoomChanged(double zoomt,double zoom, double zoomd); + void OnCurrentPositionChanged(internals::PointLatLng point); + void OnTileLoadComplete(); + void OnTileLoadStart(); + void OnMapDrag(); + void OnMapZoomChanged(); + void OnMapTypeChanged(MapType::Types type); + void OnEmptyTileError(int zoom, core::Point pos); + void OnTilesStillToLoad(int number); + + /** + * Unused for now, hooks for future waypoint support + */ + void WPNumberChanged(int const& oldnumber,int const& newnumber, WayPointItem* waypoint); + void WPValuesChanged(WayPointItem* waypoint); + void WPInserted(int const& number, WayPointItem* waypoint); + void WPDeleted(int const& number); + + /** + * @brief mouse right click context menu signals + */ + void onReloadAct_triggered(); + void onCopyMouseLatLonToClipAct_triggered(); + void onCopyMouseLatToClipAct_triggered(); + void onCopyMouseLonToClipAct_triggered(); +// void onFindPlaceAct_triggered(); + void onShowCompassAct_toggled(bool show); + void onShowDiagnostics_toggled(bool show); + void onShowUAVAct_toggled(bool show); + void onShowHomeAct_toggled(bool show); + void onShowTrailLineAct_toggled(bool show); + void onShowTrailAct_toggled(bool show); + void onGoZoomInAct_triggered(); + void onGoZoomOutAct_triggered(); + void onGoMouseClickAct_triggered(); + void onSetHomeAct_triggered(); + void onGoHomeAct_triggered(); + void onGoUAVAct_triggered(); + void onFollowUAVpositionAct_toggled(bool checked); + void onFollowUAVheadingAct_toggled(bool checked); +/* + void onOpenWayPointEditorAct_triggered(); + void onAddWayPointAct_triggered(); + void onEditWayPointAct_triggered(); + void onLockWayPointAct_triggered(); + void onDeleteWayPointAct_triggered(); + void onClearWayPointsAct_triggered(); +*/ + void onMapModeActGroup_triggered(QAction *action); + void onZoomActGroup_triggered(QAction *action); + void onHomeMagicWaypointAct_triggered(); + void onShowSafeAreaAct_toggled(bool show); + void onSafeAreaActGroup_triggered(QAction *action); + void onUAVTrailTypeActGroup_triggered(QAction *action); + void onClearUAVtrailAct_triggered(); + void onUAVTrailTimeActGroup_triggered(QAction *action); + void onUAVTrailDistanceActGroup_triggered(QAction *action); + void onMaxUpdateRateActGroup_triggered(QAction *action); + +private: + + // ***** + + int m_min_zoom; + int m_max_zoom; + + double m_heading; // uav heading + + internals::PointLatLng m_mouse_lat_lon; + internals::PointLatLng m_context_menu_lat_lon; + + int m_prev_tile_number; + + opMapModeType m_map_mode; + + int m_maxUpdateRate; + + t_home m_home_position; + + t_waypoint m_magic_waypoint; + + QStringList findPlaceWordList; + QCompleter *findPlaceCompleter; + + QTimer *m_updateTimer; + QTimer *m_statusUpdateTimer; + + Ui::OPMap_Widget *m_widget; + + mapcontrol::OPMapWidget *m_map; + + ExtensionSystem::PluginManager *pm; + UAVObjectManager *obm; + UAVObjectUtilManager *obum; + + //opmap_waypointeditor_dialog waypoint_editor_dialog; + + //opmap_edit_waypoint_dialog waypoint_edit_dialog; + + QStandardItemModel wayPoint_treeView_model; + + mapcontrol::WayPointItem *m_mouse_waypoint; + + QList m_waypoint_list; + QMutex m_waypoint_list_mutex; + + QMutex m_map_mutex; + + bool m_telemetry_connected; + + // ***** + + void createActions(); + + QAction *closeAct1; + QAction *closeAct2; + QAction *reloadAct; + QAction *copyMouseLatLonToClipAct; + QAction *copyMouseLatToClipAct; + QAction *copyMouseLonToClipAct; + QAction *findPlaceAct; + QAction *showCompassAct; + QAction *showDiagnostics; + QAction *showHomeAct; + QAction *showUAVAct; + QAction *zoomInAct; + QAction *zoomOutAct; + QAction *goMouseClickAct; + QAction *setHomeAct; + QAction *goHomeAct; + QAction *goUAVAct; + QAction *followUAVpositionAct; + QAction *followUAVheadingAct; + /* + QAction *wayPointEditorAct; + QAction *addWayPointAct; + QAction *editWayPointAct; + QAction *lockWayPointAct; + QAction *deleteWayPointAct; + QAction *clearWayPointsAct; + */ + QAction *homeMagicWaypointAct; + + QAction *showSafeAreaAct; + QActionGroup *safeAreaActGroup; + QList safeAreaAct; + + QActionGroup *uavTrailTypeActGroup; + QList uavTrailTypeAct; + QAction *clearUAVtrailAct; + QActionGroup *uavTrailTimeActGroup; + QAction *showTrailLineAct; + QAction *showTrailAct; + QList uavTrailTimeAct; + QActionGroup *uavTrailDistanceActGroup; + QList uavTrailDistanceAct; + + QActionGroup *mapModeActGroup; + QList mapModeAct; + + QActionGroup *zoomActGroup; + QList zoomAct; + + QActionGroup *maxUpdateRateActGroup; + QList maxUpdateRateAct; + + // ***** + + void homeMagicWaypoint(); + + void moveToMagicWaypointPosition(); + + void loadComboBoxLines(QComboBox *comboBox, QString filename); + void saveComboBoxLines(QComboBox *comboBox, QString filename); + + void hideMagicWaypointControls(); + void showMagicWaypointControls(); + + void keepMagicWaypointWithInSafeArea(); + + double distance(internals::PointLatLng from, internals::PointLatLng to); + double bearing(internals::PointLatLng from, internals::PointLatLng to); + internals::PointLatLng destPoint(internals::PointLatLng source, double bear, double dist); + + bool getUAVPosition(double &latitude, double &longitude, double &altitude); + bool getGPSPosition(double &latitude, double &longitude, double &altitude); + double getUAV_Yaw(); + + void setMapFollowingMode(); + + bool setHomeLocationObject(); +}; + +#endif /* OPMAP_GADGETWIDGET_H_ */ From 2d6b4dce556bc3c0830f6083ebdb0c1ed72c75ea Mon Sep 17 00:00:00 2001 From: elafargue Date: Sat, 14 May 2011 16:31:59 +0200 Subject: [PATCH 020/488] Small fix to System Health gadget, to make it behave correctly when started while the connection is up already. --- .../plugins/systemhealth/systemhealthgadgetwidget.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/ground/openpilotgcs/src/plugins/systemhealth/systemhealthgadgetwidget.cpp b/ground/openpilotgcs/src/plugins/systemhealth/systemhealthgadgetwidget.cpp index 7a0d5066f..440ff58df 100644 --- a/ground/openpilotgcs/src/plugins/systemhealth/systemhealthgadgetwidget.cpp +++ b/ground/openpilotgcs/src/plugins/systemhealth/systemhealthgadgetwidget.cpp @@ -151,6 +151,16 @@ void SystemHealthGadgetWidget::setSystemFile(QString dfn) QGraphicsScene *l_scene = scene(); l_scene->setSceneRect(background->boundingRect()); fitInView(background, Qt::KeepAspectRatio ); + + // Check whether the autopilot is connected already, by the way: + ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance(); + UAVObjectManager *objManager = pm->getObject(); + TelemetryManager* telMngr = pm->getObject(); + if (telMngr->isConnected()) { + onAutopilotConnect(); + SystemAlarms* obj = dynamic_cast(objManager->getObject(QString("SystemAlarms"))); + updateAlarms(obj); + } } } else From a38fbe6cea0ba3dca56c58f83e0db8b0bdff8672 Mon Sep 17 00:00:00 2001 From: zedamota Date: Sat, 14 May 2011 19:03:31 +0100 Subject: [PATCH 021/488] Make CopterControl firmware non functional when using the ERASE_FLASH=YES compile flag --- flight/CopterControl/System/coptercontrol.c | 1 + 1 file changed, 1 insertion(+) diff --git a/flight/CopterControl/System/coptercontrol.c b/flight/CopterControl/System/coptercontrol.c index 588fa4a9f..060fb3646 100644 --- a/flight/CopterControl/System/coptercontrol.c +++ b/flight/CopterControl/System/coptercontrol.c @@ -92,6 +92,7 @@ void OpenPilotInit() #ifdef ERASE_FLASH PIOS_Flash_W25X_EraseChip(); + while(TRUE){}; #endif /* Initialize modules */ From 7e6e7bb391526de130301329fb2f9d03b9dc4fb7 Mon Sep 17 00:00:00 2001 From: James Cotton Date: Sat, 14 May 2011 12:19:48 -0500 Subject: [PATCH 022/488] OP-499 OP-216: Simple list of objects saved in flash to prevent objId collision. Note, this will wipe ALL your settings. --- flight/PiOS/Common/pios_flashfs_objlist.c | 261 ++++++++++++++++++++++ flight/PiOS/inc/pios_flashfs_objlist.h | 37 +++ 2 files changed, 298 insertions(+) create mode 100644 flight/PiOS/Common/pios_flashfs_objlist.c create mode 100644 flight/PiOS/inc/pios_flashfs_objlist.h diff --git a/flight/PiOS/Common/pios_flashfs_objlist.c b/flight/PiOS/Common/pios_flashfs_objlist.c new file mode 100644 index 000000000..0b13a239a --- /dev/null +++ b/flight/PiOS/Common/pios_flashfs_objlist.c @@ -0,0 +1,261 @@ +/** + ****************************************************************************** + * + * @addtogroup PIOS PIOS Core hardware abstraction layer + * @{ + * @addtogroup PIOS_FLASHFS_OBJLIST Object list based flash filesystem (low ram) + * @{ + * + * @file pios_flashfs_objlist.c + * @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010. + * @brief A file system for storing UAVObject in flash chip + * @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 + */ + + +#include "openpilot.h" +#include "uavobjectmanager.h" + +// Private functions +static int32_t PIOS_FLASHFS_EraseLocationHeader(); +static int32_t PIOS_FLASHFS_GetObjAddress(uint32_t objId, uint16_t instId); +static int32_t PIOS_FLASHFS_GetNewAddress(uint32_t objId, uint16_t instId); + +// Private variables +static int32_t numObjects = -1; + +// Private structures +// Header for objects in the file system table +struct objectHeader { + uint32_t objMagic; + uint32_t objId; + uint32_t instId; + uint32_t address; +} __attribute__((packed));; + +struct fileHeader { + uint32_t id; + uint16_t instId; + uint16_t size; +} __attribute__((packed)); + + + +#define OBJ_MAGIC 0x3015AE71 +#define OBJECT_TABLE_START 0 +#define OBJECT_TABLE_END 0x00001000 +#define SECTOR_SIZE 0x00001000 + +/** + * @brief Initialize the flash object setting FS + * @return 0 if success, -1 if failure + */ +int32_t PIOS_FLASHFS_Init() +{ + numObjects = 0; + bool found = true; + int32_t addr = OBJECT_TABLE_START; + struct objectHeader header; + + // Loop through header area while objects detect to count how many saved + while(found && addr < OBJECT_TABLE_END) { + // Read the instance data + if (PIOS_Flash_W25X_ReadData(addr, (uint8_t *)&header, sizeof(header)) != 0) + return -1; + if(header.objMagic != OBJ_MAGIC) + found = false; + else + numObjects++; + } +} + +/** + * @brief Erase the headers for all objects in the flash chip + * @return 0 if successful, -1 if not + */ +static int32_t PIOS_FLASHFS_EraseLocationHeader() +{ + if(PIOS_Flash_W25X_EraseSector(OBJECT_TABLE_START) != 0) + return -1; + return 0; +} + +/** + * @brief Get the address of an object + * @param obj UAVObjHandle for that object + * @parma instId Instance id for that object + * @return 0 if success, -1 if not found + */ +static int32_t PIOS_FLASHFS_GetObjAddress(uint32_t objId, uint16_t instId) +{ + bool found = true; + int32_t addr = OBJECT_TABLE_START; + struct objectHeader header; + + // Loop through header area while objects detect to count how many saved + while(found && addr < OBJECT_TABLE_END) { + // Read the instance data + if (PIOS_Flash_W25X_ReadData(addr, (uint8_t *) &header, sizeof(header)) != 0) + return -1; + if(header.objMagic != OBJ_MAGIC) + found = false; + else if (header.objId == objId && header.instId == instId) + break; + } + + if (found) + return header.address; +} + +/** + * @brief Returns an address for a new object and creates entry into object table + * @param[in] obj Object handle for object to be saved + * @param[in] instId The instance id of object to be saved + * @return 0 if success or error code + * @retval -1 Object not found + * @retval -2 No room in object table + * @retval -3 Unable to write entry into object table + * @retval -4 FS not initialized + */ +int32_t PIOS_FLASHFS_GetNewAddress(uint32_t objId, uint16_t instId) +{ + int32_t addr = OBJECT_TABLE_START; + struct objectHeader header; + + if(numObjects < 0) + return -4; + + // Don't worry about max size of flash chip here, other code will catch that + header.objMagic = OBJ_MAGIC; + header.objId = objId; + header.instId = instId; + header.address = SECTOR_SIZE * numObjects; + + // No room for this header in object table + if((addr + sizeof(header)) > OBJECT_TABLE_END) + return -2; + + if(PIOS_Flash_W25X_WriteData(addr, (uint8_t *) &header, sizeof(header)) != 0) + return -3; + + // This numObejcts value must stay consistent or there will be a break in the table + // and later the table will have bad values in it + numObjects++; + return header.address; +} + + +/** + * @brief Saves one object instance per sector + * @param[in] obj UAVObjHandle the object to save + * @param[in] instId The instance of the object to save + * @return 0 if success or -1 if failure + * @note This uses one sector on the flash chip per object so that no buffering in ram + * must be done when erasing the sector before a save + */ +int32_t PIOS_FLASHFS_ObjSave(UAVObjHandle obj, uint16_t instId, uint8_t * data) +{ + uint32_t objId = UAVObjGetID(obj); + + int32_t addr = PIOS_FLASHFS_GetObjAddress(objId, instId); + + // Object currently not saved + if(addr < 0) + addr = PIOS_FLASHFS_GetNewAddress(objId, instId); + + // Could not allocate a sector + if(addr < 0) + return -1; + + struct fileHeader header = { + .id = objId, + .instId = instId, + .size = UAVObjGetNumBytes(obj); + }; + + uint32_t addr = (objEntry->id & FLASH_MASK); + PIOS_Flash_W25X_EraseSector(addr); + + // Save header + // This information IS redundant with the object table id. Oh well. Better safe than sorry. + PIOS_Flash_W25X_WriteData(addr, (uint8_t *) &header, sizeof(header)); + + // Save data + PIOS_Flash_W25X_WriteData(addr + sizeof(header), data,objEntry->numBytes); +} + +/** + * @brief Load one object instance per sector + * @param[in] obj UAVObjHandle the object to save + * @param[in] instId The instance of the object to save + * @return 0 if success or error code + * @retval -1 if object not in file table + * @retval -2 if loaded data instId or objId don't match + * @retval -3 if unable to retrieve instance data + * @note This uses one sector on the flash chip per object so that no buffering in ram + * must be done when erasing the sector before a save + */ +int32_t PIOS_FLASHFS_ObjLoad(UAVObjHandle obj, uint16_t instId, uint8_t * data) +{ + uint32_t objId = UAVObjGetID(obj); + + int32_t addr = PIOS_FLASHFS_GetObjAddress(objId, instId); + + // Object currently not saved + if(addr < 0) + return -1; + + struct fileHeader header; + + // Load header + // This information IS redundant with the object table id. Oh well. Better safe than sorry. + PIOS_Flash_W25X_ReadData(addr, (uint8_t *) &header, sizeof(header)); + + if((header.id != objId) || (header.instId != instId)) + return -2; + + // Read the instance data + if (PIOS_Flash_W25X_ReadData(addr + sizeof(header), data, objEntry->numBytes) != 0) + return -3 +} + +/** + * @brief Delete object from flash + * @param[in] obj UAVObjHandle the object to save + * @param[in] instId The instance of the object to save + * @return 0 if success or error code + * @retval -1 if object not in file table + * @retval -2 Erase failed + * @note To avoid buffering the file table (1k ram!) the entry in the file table + * remains but destination sector is erased. This will make the load fail as the + * file header won't match the object. At next save it goes back there. + */ +int32_t PIOS_FLASHFS_ObjDelete(UAVObjHandle obj, uint16_t instId) +{ + uint32_t objId = UAVObjGetID(obj); + + int32_t addr = PIOS_FLASHFS_GetObjAddress(objId, instId); + + // Object currently not saved + if(addr < 0) + return -1; + + if(PIOS_Flash_W25X_EraseSector(addr) != 0) + return -2; +} \ No newline at end of file diff --git a/flight/PiOS/inc/pios_flashfs_objlist.h b/flight/PiOS/inc/pios_flashfs_objlist.h new file mode 100644 index 000000000..945df4068 --- /dev/null +++ b/flight/PiOS/inc/pios_flashfs_objlist.h @@ -0,0 +1,37 @@ +/** + ****************************************************************************** + * + * @addtogroup PIOS PIOS Core hardware abstraction layer + * @{ + * @addtogroup PIOS_FLASHFS_OBJLIST Object list based flash filesystem (low ram) + * @{ + * + * @file pios_flashfs_objlist.h + * @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010. + * @brief A file system for storing UAVObject in flash chip + * @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 + */ + +#include "openpilot.h" +#include "uavobjectmanager.h" + +int32_t PIOS_FLASHFS_Init(); +int32_t PIOS_FLASHFS_ObjSave(UAVObjHandle obj, uint16_t instId, uint8_t * data); +int32_t PIOS_FLASHFS_ObjLoad(UAVObjHandle obj, uint16_t instId, uint8_t * data); +int32_t PIOS_FLASHFS_ObjDelete(UAVObjHandle obj, uint16_t instId); \ No newline at end of file From 2087441006e2a98b52f827e1a7cf6bef04fa06ef Mon Sep 17 00:00:00 2001 From: James Cotton Date: Sat, 14 May 2011 14:23:02 -0500 Subject: [PATCH 023/488] OP-216: Make the object manager use new flash fs for objects --- flight/CopterControl/Makefile | 1 + flight/CopterControl/System/pios_board.c | 4 +- flight/PiOS/pios.h | 271 +++++++++--------- .../OpenPilotOSX.xcodeproj/project.pbxproj | 4 + flight/UAVObjects/uavobjectmanager.c | 44 +-- 5 files changed, 149 insertions(+), 175 deletions(-) diff --git a/flight/CopterControl/Makefile b/flight/CopterControl/Makefile index f499d549a..7c3895534 100644 --- a/flight/CopterControl/Makefile +++ b/flight/CopterControl/Makefile @@ -205,6 +205,7 @@ SRC += $(PIOSSTM32F10X)/pios_usb_hid_prop.c SRC += $(PIOSSTM32F10X)/pios_usb_hid_pwr.c ## PIOS Hardware (Common) +SRC += $(PIOSCOMMON)/pios_flashfs_objlist.c SRC += $(PIOSCOMMON)/pios_flash_w25x.c SRC += $(PIOSCOMMON)/pios_adxl345.c SRC += $(PIOSCOMMON)/pios_com.c diff --git a/flight/CopterControl/System/pios_board.c b/flight/CopterControl/System/pios_board.c index 45164052f..c5943ca3c 100644 --- a/flight/CopterControl/System/pios_board.c +++ b/flight/CopterControl/System/pios_board.c @@ -678,8 +678,10 @@ void PIOS_Board_Init(void) { PIOS_DEBUG_Assert(0); } - PIOS_Flash_W25X_Init(pios_spi_flash_accel_id); + PIOS_Flash_W25X_Init(pios_spi_flash_accel_id); PIOS_ADXL345_Attach(pios_spi_flash_accel_id); + + PIOS_FLASHFS_Init(); #if defined(PIOS_INCLUDE_SPEKTRUM) /* SPEKTRUM init must come before comms */ diff --git a/flight/PiOS/pios.h b/flight/PiOS/pios.h index cbf2a2249..0fdb03570 100644 --- a/flight/PiOS/pios.h +++ b/flight/PiOS/pios.h @@ -1,135 +1,136 @@ -/** - ****************************************************************************** - * - * @file pios.h - * @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010. - * @brief Main PiOS header. - * - Central header for the project. - * @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 - */ - - -#ifndef PIOS_H -#define PIOS_H - -/* PIOS Feature Selection */ -#include "pios_config.h" - -#if defined(PIOS_INCLUDE_FREERTOS) -/* FreeRTOS Includes */ -#include "FreeRTOS.h" -#include "task.h" -#include "queue.h" -#include "semphr.h" -#endif - -/* C Lib Includes */ -#include -#include -#include -#include -#include - -/* STM32 Std Perf Lib */ -#include -#include - -#if defined(PIOS_INCLUDE_SDCARD) -/* Dosfs Includes */ -#include - -/* Mass Storage Device Includes */ -#include -#endif - -/* Generic initcall infrastructure */ -#include "pios_initcall.h" - -/* PIOS Board Specific Device Configuration */ -#include "pios_board.h" - -/* PIOS Hardware Includes (STM32F10x) */ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#if defined(PIOS_INCLUDE_EXTI) -#include -#endif -#include - -/* PIOS Hardware Includes (Common) */ -#include -#include -#if defined(PIOS_INCLUDE_BMP085) -#include -#endif -#if defined(PIOS_INCLUDE_HCSR04) -#include -#endif -#if defined(PIOS_INCLUDE_HMC5843) -#include -#endif -#if defined(PIOS_INCLUDE_HMC5883) -#include -#endif -#if defined(PIOS_INCLUDE_I2C_ESC) -#include -#endif -#if defined(PIOS_INCLUDE_IMU3000) -#include -#endif -#include - -#if defined(PIOS_INCLUDE_ADXL345) -#include -#endif - -#if defined(PIOS_INCLUDE_BMA180) -#include -#endif - -#if defined(PIOS_INCLUDE_FLASH) -#include -#endif - -#if defined(PIOS_INCLUDE_BL_HELPER) -#include -#endif - -#if defined(PIOS_INCLUDE_USB) -/* USB Libs */ -#include -#endif - -#define NELEMENTS(x) (sizeof(x) / sizeof(*(x))) - -#endif /* PIOS_H */ +/** + ****************************************************************************** + * + * @file pios.h + * @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010. + * @brief Main PiOS header. + * - Central header for the project. + * @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 + */ + + +#ifndef PIOS_H +#define PIOS_H + +/* PIOS Feature Selection */ +#include "pios_config.h" + +#if defined(PIOS_INCLUDE_FREERTOS) +/* FreeRTOS Includes */ +#include "FreeRTOS.h" +#include "task.h" +#include "queue.h" +#include "semphr.h" +#endif + +/* C Lib Includes */ +#include +#include +#include +#include +#include + +/* STM32 Std Perf Lib */ +#include +#include + +#if defined(PIOS_INCLUDE_SDCARD) +/* Dosfs Includes */ +#include + +/* Mass Storage Device Includes */ +#include +#endif + +/* Generic initcall infrastructure */ +#include "pios_initcall.h" + +/* PIOS Board Specific Device Configuration */ +#include "pios_board.h" + +/* PIOS Hardware Includes (STM32F10x) */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#if defined(PIOS_INCLUDE_EXTI) +#include +#endif +#include + +/* PIOS Hardware Includes (Common) */ +#include +#include +#if defined(PIOS_INCLUDE_BMP085) +#include +#endif +#if defined(PIOS_INCLUDE_HCSR04) +#include +#endif +#if defined(PIOS_INCLUDE_HMC5843) +#include +#endif +#if defined(PIOS_INCLUDE_HMC5883) +#include +#endif +#if defined(PIOS_INCLUDE_I2C_ESC) +#include +#endif +#if defined(PIOS_INCLUDE_IMU3000) +#include +#endif +#include + +#if defined(PIOS_INCLUDE_ADXL345) +#include +#endif + +#if defined(PIOS_INCLUDE_BMA180) +#include +#endif + +#if defined(PIOS_INCLUDE_FLASH) +#include +#include +#endif + +#if defined(PIOS_INCLUDE_BL_HELPER) +#include +#endif + +#if defined(PIOS_INCLUDE_USB) +/* USB Libs */ +#include +#endif + +#define NELEMENTS(x) (sizeof(x) / sizeof(*(x))) + +#endif /* PIOS_H */ diff --git a/flight/Project/OpenPilotOSX/OpenPilotOSX.xcodeproj/project.pbxproj b/flight/Project/OpenPilotOSX/OpenPilotOSX.xcodeproj/project.pbxproj index 5dd95349b..7095dfad5 100644 --- a/flight/Project/OpenPilotOSX/OpenPilotOSX.xcodeproj/project.pbxproj +++ b/flight/Project/OpenPilotOSX/OpenPilotOSX.xcodeproj/project.pbxproj @@ -3171,6 +3171,8 @@ 65FF4BE913791C3300146BE4 /* Makefile */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = ""; }; 65FF4BEA13791C3300146BE4 /* op_dfu.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = op_dfu.c; sourceTree = ""; }; 65FF4BEB13791C3300146BE4 /* pios_board.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pios_board.c; sourceTree = ""; }; + 65FF4D5E137EDEC100146BE4 /* pios_flashfs_objlist.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pios_flashfs_objlist.c; sourceTree = ""; }; + 65FF4D61137EFA4F00146BE4 /* pios_flashfs_objlist.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pios_flashfs_objlist.h; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXGroup section */ @@ -7657,6 +7659,7 @@ 65E8F03711EFF25C00BBF654 /* printf-stdarg.c */, 6528CCB412E406B800CF5144 /* pios_adxl345.c */, 6512D60712ED4CB8008175E5 /* pios_flash_w25x.c */, + 65FF4D5E137EDEC100146BE4 /* pios_flashfs_objlist.c */, ); name = Common; path = ../../PiOS/Common; @@ -7681,6 +7684,7 @@ 65E8F03E11EFF25C00BBF654 /* pios_debug.h */, 65E8F03F11EFF25C00BBF654 /* pios_delay.h */, 65E8F04011EFF25C00BBF654 /* pios_exti.h */, + 65FF4D61137EFA4F00146BE4 /* pios_flashfs_objlist.h */, 65E8F04111EFF25C00BBF654 /* pios_gpio.h */, 65E8F04211EFF25C00BBF654 /* pios_hmc5843.h */, 65E8F04311EFF25C00BBF654 /* pios_i2c.h */, diff --git a/flight/UAVObjects/uavobjectmanager.c b/flight/UAVObjects/uavobjectmanager.c index 50558d411..2d681ab3b 100644 --- a/flight/UAVObjects/uavobjectmanager.c +++ b/flight/UAVObjects/uavobjectmanager.c @@ -562,14 +562,6 @@ int32_t UAVObjSaveToFile(UAVObjHandle obj, uint16_t instId, FILEINFO* file) return 0; } -struct fileHeader { - uint32_t id; - uint16_t instId; - uint16_t size; -} __attribute__((packed)); - -#define FLASH_MASK 0x001ff000 /* Select a sector */ - /** * Save the data of the specified object to the file system (SD card). * If the object contains multiple instances, all of them will be saved. @@ -596,17 +588,8 @@ int32_t UAVObjSave(UAVObjHandle obj, uint16_t instId) if(instEntry->data == NULL) return -1; - - struct fileHeader header = { - .id = objEntry->id, - .instId = instId, - .size = objEntry->numBytes - }; - - uint32_t addr = (objEntry->id & FLASH_MASK); - PIOS_Flash_W25X_EraseSector(addr); - PIOS_Flash_W25X_WriteData(addr, (uint8_t *) &header, sizeof(header)); - PIOS_Flash_W25X_WriteData(addr + sizeof(header), instEntry->data,objEntry->numBytes); + if(PIOS_FLASHFS_ObjSave(obj, instId, instEntry->data) != 0) + return -1; #endif #if defined(PIOS_INCLUDE_SDCARD) FILEINFO file; @@ -758,19 +741,8 @@ int32_t UAVObjLoad(UAVObjHandle obj, uint16_t instId) if(instEntry->data == NULL) return -1; - struct fileHeader header; - uint32_t addr = (objEntry->id & FLASH_MASK); - - PIOS_Flash_W25X_ReadData(addr, (uint8_t *) &header, sizeof(header)); - - if(header.id != objEntry->id) - return -1; - - // Read the instance data - if (PIOS_Flash_W25X_ReadData(addr + sizeof(header) ,instEntry->data, objEntry->numBytes) != 0) - return -1; - - // Fire event + // Fire event on success + if(PIOS_FLASHFS_ObjSave(obj, instId, instEntry->data) == 0) sendEvent(objEntry, instId, EV_UNPACKED); #endif @@ -837,13 +809,7 @@ int32_t UAVObjLoad(UAVObjHandle obj, uint16_t instId) int32_t UAVObjDelete(UAVObjHandle obj, uint16_t instId) { #if defined(PIOS_INCLUDE_FLASH_SECTOR_SETTINGS) - ObjectList* objEntry = (ObjectList*)obj; - - if(objEntry == NULL) - return -1; - - uint32_t addr = (objEntry->id & FLASH_MASK); - PIOS_Flash_W25X_EraseSector(addr); + PIOS_FLASHFS_ObjDelete(obj, instId); #endif #if defined(PIOS_INCLUDE_SDCARD) ObjectList* objEntry; From 0438f5cf664b319c8a109d93ee08cdc651dfd2fc Mon Sep 17 00:00:00 2001 From: James Cotton Date: Sat, 14 May 2011 14:23:23 -0500 Subject: [PATCH 024/488] OP-216: Check for existence of file table in flash and wipe sector and create it if missing. --- flight/PiOS/Common/pios_flashfs_objlist.c | 50 +++++++++++++++++------ 1 file changed, 37 insertions(+), 13 deletions(-) diff --git a/flight/PiOS/Common/pios_flashfs_objlist.c b/flight/PiOS/Common/pios_flashfs_objlist.c index 0b13a239a..5e403599b 100644 --- a/flight/PiOS/Common/pios_flashfs_objlist.c +++ b/flight/PiOS/Common/pios_flashfs_objlist.c @@ -33,7 +33,7 @@ #include "uavobjectmanager.h" // Private functions -static int32_t PIOS_FLASHFS_EraseLocationHeader(); +static int32_t PIOS_FLAHFS_CleabObjectTableHeader(); static int32_t PIOS_FLASHFS_GetObjAddress(uint32_t objId, uint16_t instId); static int32_t PIOS_FLASHFS_GetNewAddress(uint32_t objId, uint16_t instId); @@ -56,9 +56,9 @@ struct fileHeader { } __attribute__((packed)); - +#define OBJECT_TABLE_MAGIC 0x85FB3C33 #define OBJ_MAGIC 0x3015AE71 -#define OBJECT_TABLE_START 0 +#define OBJECT_TABLE_START 0x00000010 #define OBJECT_TABLE_END 0x00001000 #define SECTOR_SIZE 0x00001000 @@ -68,11 +68,21 @@ struct fileHeader { */ int32_t PIOS_FLASHFS_Init() { - numObjects = 0; + + // Check for valid object table or create one + uint32_t object_table_magic; + if (PIOS_Flash_W25X_ReadData(0, (uint8_t *)&object_table_magic, sizeof(object_table_magic)) != 0) + return -1; + if(object_table_magic != OBJECT_TABLE_MAGIC) { + if(PIOS_FLAHFS_CleabObjectTableHeader() < 0) + return -1; + } + bool found = true; int32_t addr = OBJECT_TABLE_START; struct objectHeader header; - + numObjects = 0; + // Loop through header area while objects detect to count how many saved while(found && addr < OBJECT_TABLE_END) { // Read the instance data @@ -82,17 +92,24 @@ int32_t PIOS_FLASHFS_Init() found = false; else numObjects++; - } + } + + return 0; } /** * @brief Erase the headers for all objects in the flash chip * @return 0 if successful, -1 if not */ -static int32_t PIOS_FLASHFS_EraseLocationHeader() +static int32_t PIOS_FLAHFS_CleabObjectTableHeader() { if(PIOS_Flash_W25X_EraseSector(OBJECT_TABLE_START) != 0) return -1; + + uint32_t object_table_magic = OBJECT_TABLE_MAGIC; + if (PIOS_Flash_W25X_WriteData(0, (uint8_t *)&object_table_magic, sizeof(object_table_magic)) != 0) + return -1; + return 0; } @@ -100,7 +117,7 @@ static int32_t PIOS_FLASHFS_EraseLocationHeader() * @brief Get the address of an object * @param obj UAVObjHandle for that object * @parma instId Instance id for that object - * @return 0 if success, -1 if not found + * @return address if successful, -1 if not found */ static int32_t PIOS_FLASHFS_GetObjAddress(uint32_t objId, uint16_t instId) { @@ -121,6 +138,8 @@ static int32_t PIOS_FLASHFS_GetObjAddress(uint32_t objId, uint16_t instId) if (found) return header.address; + + return -1; } /** @@ -186,10 +205,9 @@ int32_t PIOS_FLASHFS_ObjSave(UAVObjHandle obj, uint16_t instId, uint8_t * data) struct fileHeader header = { .id = objId, .instId = instId, - .size = UAVObjGetNumBytes(obj); + .size = UAVObjGetNumBytes(obj) }; - uint32_t addr = (objEntry->id & FLASH_MASK); PIOS_Flash_W25X_EraseSector(addr); // Save header @@ -197,7 +215,9 @@ int32_t PIOS_FLASHFS_ObjSave(UAVObjHandle obj, uint16_t instId, uint8_t * data) PIOS_Flash_W25X_WriteData(addr, (uint8_t *) &header, sizeof(header)); // Save data - PIOS_Flash_W25X_WriteData(addr + sizeof(header), data,objEntry->numBytes); + PIOS_Flash_W25X_WriteData(addr + sizeof(header), data, UAVObjGetNumBytes(obj)); + + return 0; } /** @@ -231,8 +251,10 @@ int32_t PIOS_FLASHFS_ObjLoad(UAVObjHandle obj, uint16_t instId, uint8_t * data) return -2; // Read the instance data - if (PIOS_Flash_W25X_ReadData(addr + sizeof(header), data, objEntry->numBytes) != 0) - return -3 + if (PIOS_Flash_W25X_ReadData(addr + sizeof(header), data, UAVObjGetNumBytes(obj)) != 0) + return -3; + + return 0; } /** @@ -258,4 +280,6 @@ int32_t PIOS_FLASHFS_ObjDelete(UAVObjHandle obj, uint16_t instId) if(PIOS_Flash_W25X_EraseSector(addr) != 0) return -2; + + return 0; } \ No newline at end of file From c689d979615af353afac26fe25f0608f535ff18a Mon Sep 17 00:00:00 2001 From: James Cotton Date: Sat, 14 May 2011 14:28:11 -0500 Subject: [PATCH 025/488] OP-216: Improved error handling --- flight/PiOS/Common/pios_flash_w25x.c | 8 ++++++++ flight/PiOS/Common/pios_flashfs_objlist.c | 22 ++++++++++++++-------- 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/flight/PiOS/Common/pios_flash_w25x.c b/flight/PiOS/Common/pios_flash_w25x.c index b1c602422..624f76ef8 100644 --- a/flight/PiOS/Common/pios_flash_w25x.c +++ b/flight/PiOS/Common/pios_flash_w25x.c @@ -222,6 +222,14 @@ int8_t PIOS_Flash_W25X_WriteData(uint32_t addr, uint8_t * data, uint16_t len) return 0; } +/** + * @brief Read data from a location in flash memory + * @param[in] addr Address in flash to write to + * @param[in] data Pointer to data to write from flash + * @param[in] len Length of data to write (max 256 bytes) + * @return Zero if success or error code + * @retval -1 Unable to claim SPI bus + */ int8_t PIOS_Flash_W25X_ReadData(uint32_t addr, uint8_t * data, uint16_t len) { if(PIOS_Flash_W25X_ClaimBus() == -1) diff --git a/flight/PiOS/Common/pios_flashfs_objlist.c b/flight/PiOS/Common/pios_flashfs_objlist.c index 5e403599b..4f39125db 100644 --- a/flight/PiOS/Common/pios_flashfs_objlist.c +++ b/flight/PiOS/Common/pios_flashfs_objlist.c @@ -208,14 +208,18 @@ int32_t PIOS_FLASHFS_ObjSave(UAVObjHandle obj, uint16_t instId, uint8_t * data) .size = UAVObjGetNumBytes(obj) }; - PIOS_Flash_W25X_EraseSector(addr); + if(PIOS_Flash_W25X_EraseSector(addr) != 0) + return -2; // Save header // This information IS redundant with the object table id. Oh well. Better safe than sorry. - PIOS_Flash_W25X_WriteData(addr, (uint8_t *) &header, sizeof(header)); + + if(PIOS_Flash_W25X_WriteData(addr, (uint8_t *) &header, sizeof(header)) != 0) + return -3; // Save data - PIOS_Flash_W25X_WriteData(addr + sizeof(header), data, UAVObjGetNumBytes(obj)); + if(PIOS_Flash_W25X_WriteData(addr + sizeof(header), data, UAVObjGetNumBytes(obj)) != 0) + return -4; return 0; } @@ -226,8 +230,9 @@ int32_t PIOS_FLASHFS_ObjSave(UAVObjHandle obj, uint16_t instId, uint8_t * data) * @param[in] instId The instance of the object to save * @return 0 if success or error code * @retval -1 if object not in file table - * @retval -2 if loaded data instId or objId don't match - * @retval -3 if unable to retrieve instance data + * @retval -2 if unable to retrieve object header + * @retval -3 if loaded data instId or objId don't match + * @retval -4 if unable to retrieve instance data * @note This uses one sector on the flash chip per object so that no buffering in ram * must be done when erasing the sector before a save */ @@ -245,14 +250,15 @@ int32_t PIOS_FLASHFS_ObjLoad(UAVObjHandle obj, uint16_t instId, uint8_t * data) // Load header // This information IS redundant with the object table id. Oh well. Better safe than sorry. - PIOS_Flash_W25X_ReadData(addr, (uint8_t *) &header, sizeof(header)); + if(PIOS_Flash_W25X_ReadData(addr, (uint8_t *) &header, sizeof(header)) != 0) + return -2; if((header.id != objId) || (header.instId != instId)) - return -2; + return -3; // Read the instance data if (PIOS_Flash_W25X_ReadData(addr + sizeof(header), data, UAVObjGetNumBytes(obj)) != 0) - return -3; + return -4; return 0; } From 84e09031a7a47fda034e661fa8765b2c8d22a9fe Mon Sep 17 00:00:00 2001 From: dankers Date: Sun, 15 May 2011 05:58:58 +1000 Subject: [PATCH 026/488] Faster attitude calc, be much more aggressive with working out bias. Change AccelkP to 0.05 to give accels more influence, just balacing out the 3C filter. Change stab setting to be a better default fopr most Quads. --- flight/Modules/Attitude/attitude.c | 13 ++++++------- shared/uavobjectdefinition/attitudesettings.xml | 2 +- .../uavobjectdefinition/stabilizationsettings.xml | 6 +++--- 3 files changed, 10 insertions(+), 11 deletions(-) diff --git a/flight/Modules/Attitude/attitude.c b/flight/Modules/Attitude/attitude.c index 986fc74f3..4aeea69a7 100644 --- a/flight/Modules/Attitude/attitude.c +++ b/flight/Modules/Attitude/attitude.c @@ -141,20 +141,19 @@ static void AttitudeTask(void *parameters) FlightStatusData flightStatus; FlightStatusGet(&flightStatus); - - if(xTaskGetTickCount() < 10000) { + + if(xTaskGetTickCount() < 7000) { // Force settings update to make sure rotation loaded settingsUpdatedCb(AttitudeSettingsHandle()); - // For first 5 seconds use accels to get gyro bias + // 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; + yawBiasRate = 0.23; init = 0; } else if (init == 0) { settingsUpdatedCb(AttitudeSettingsHandle()); diff --git a/shared/uavobjectdefinition/attitudesettings.xml b/shared/uavobjectdefinition/attitudesettings.xml index 085c1a123..808bbe80f 100644 --- a/shared/uavobjectdefinition/attitudesettings.xml +++ b/shared/uavobjectdefinition/attitudesettings.xml @@ -4,7 +4,7 @@ - + diff --git a/shared/uavobjectdefinition/stabilizationsettings.xml b/shared/uavobjectdefinition/stabilizationsettings.xml index bc339fdcd..177d097cf 100644 --- a/shared/uavobjectdefinition/stabilizationsettings.xml +++ b/shared/uavobjectdefinition/stabilizationsettings.xml @@ -7,9 +7,9 @@ - - - + + + From 934addfdcc64ad6f2d4d07cf739e158822bf3aa2 Mon Sep 17 00:00:00 2001 From: James Cotton Date: Sat, 14 May 2011 15:11:33 -0500 Subject: [PATCH 027/488] OP-216: Silly typo --- flight/UAVObjects/uavobjectmanager.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/flight/UAVObjects/uavobjectmanager.c b/flight/UAVObjects/uavobjectmanager.c index 2d681ab3b..83af9ae13 100644 --- a/flight/UAVObjects/uavobjectmanager.c +++ b/flight/UAVObjects/uavobjectmanager.c @@ -742,8 +742,10 @@ int32_t UAVObjLoad(UAVObjHandle obj, uint16_t instId) return -1; // Fire event on success - if(PIOS_FLASHFS_ObjSave(obj, instId, instEntry->data) == 0) + if(PIOS_FLASHFS_ObjLoad(obj, instId, instEntry->data) == 0) sendEvent(objEntry, instId, EV_UNPACKED); + else + return -1; #endif #if defined(PIOS_INCLUDE_SDCARD) From d883c8af9f5473a5876bac17b7360a3114ef1a28 Mon Sep 17 00:00:00 2001 From: James Cotton Date: Sat, 14 May 2011 15:15:33 -0500 Subject: [PATCH 028/488] Whitespace and line endings --- flight/UAVObjects/uavobjectmanager.c | 3073 +++++++++++++------------- 1 file changed, 1498 insertions(+), 1575 deletions(-) diff --git a/flight/UAVObjects/uavobjectmanager.c b/flight/UAVObjects/uavobjectmanager.c index 83af9ae13..ef1774628 100644 --- a/flight/UAVObjects/uavobjectmanager.c +++ b/flight/UAVObjects/uavobjectmanager.c @@ -1,1575 +1,1498 @@ -/** - ****************************************************************************** - * @addtogroup UAVObjects OpenPilot UAVObjects - * @{ - * @addtogroup UAV Object Manager - * @brief The core UAV Objects functions, most of which are wrappered by - * autogenerated defines - * @{ - * - * - * @file uavobjectmanager.h - * @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010. - * @brief Object manager library. This library holds a collection of all objects. - * It can be used by all modules/libraries to find an object reference. - * @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 - */ - -#include "openpilot.h" - -// Constants - -// Private types - -/** - * List of event queues and the eventmask associated with the queue. - */ -struct ObjectEventListStruct { - xQueueHandle queue; - UAVObjEventCallback cb; - int32_t eventMask; - struct ObjectEventListStruct* next; -}; -typedef struct ObjectEventListStruct ObjectEventList; - -/** - * List of object instances, holds the actual data structure and instance ID - */ -struct ObjectInstListStruct { - void* data; - uint16_t instId; - struct ObjectInstListStruct* next; -}; -typedef struct ObjectInstListStruct ObjectInstList; - -/** - * List of objects registered in the object manager - */ -struct ObjectListStruct { - uint32_t id; /** The object ID */ - const char* name; /** The object name */ - int8_t isMetaobject; /** Set to 1 if this is a metaobject */ - int8_t isSingleInstance; /** Set to 1 if this object has a single instance */ - int8_t isSettings; /** Set to 1 if this object is a settings object */ - uint16_t numBytes; /** Number of data bytes contained in the object (for a single instance) */ - uint16_t numInstances; /** Number of instances */ - struct ObjectListStruct* linkedObj; /** Linked object, for regular objects this is the metaobject and for metaobjects it is the parent object */ - ObjectInstList instances; /** List of object instances, instance 0 always exists */ - ObjectEventList* events; /** Event queues registered on the object */ - struct ObjectListStruct* next; /** Needed by linked list library (utlist.h) */ -}; -typedef struct ObjectListStruct ObjectList; - -// Private functions -static int32_t sendEvent(ObjectList* obj, uint16_t instId, UAVObjEventType event); -static ObjectInstList* createInstance(ObjectList* obj, uint16_t instId); -static ObjectInstList* getInstance(ObjectList* obj, uint16_t instId); -static int32_t connectObj(UAVObjHandle obj, xQueueHandle queue, UAVObjEventCallback cb, int32_t eventMask); -static int32_t disconnectObj(UAVObjHandle obj, xQueueHandle queue, UAVObjEventCallback cb); - -#if defined(PIOS_INCLUDE_SDCARD) -static void objectFilename(ObjectList* obj, uint8_t* filename); -static void customSPrintf(uint8_t* buffer, uint8_t* format, ...); -#endif - -// Private variables -static ObjectList* objList; -static xSemaphoreHandle mutex; -static UAVObjMetadata defMetadata; -static UAVObjStats stats; - -/** - * Initialize the object manager - * \return 0 Success - * \return -1 Failure - */ -int32_t UAVObjInitialize() -{ - // Initialize variables - objList = NULL; - memset(&stats, 0, sizeof(UAVObjStats)); - - // Create mutex - mutex = xSemaphoreCreateRecursiveMutex(); - if (mutex == NULL) - return -1; - - // Initialize default metadata structure (metadata of metaobjects) - defMetadata.access = ACCESS_READWRITE; - defMetadata.gcsAccess = ACCESS_READWRITE; - defMetadata.telemetryAcked = 1; - defMetadata.telemetryUpdateMode = UPDATEMODE_ONCHANGE; - defMetadata.telemetryUpdatePeriod = 0; - defMetadata.gcsTelemetryAcked = 1; - defMetadata.gcsTelemetryUpdateMode = UPDATEMODE_ONCHANGE; - defMetadata.gcsTelemetryUpdatePeriod = 0; - defMetadata.loggingUpdateMode = UPDATEMODE_ONCHANGE; - defMetadata.loggingUpdatePeriod = 0; - - // Done - return 0; -} - -/** - * Get the statistics counters - * @param[out] statsOut The statistics counters will be copied there - */ -void UAVObjGetStats(UAVObjStats* statsOut) -{ - xSemaphoreTakeRecursive(mutex, portMAX_DELAY); - memcpy(statsOut, &stats, sizeof(UAVObjStats)); - xSemaphoreGiveRecursive(mutex); -} - -/** - * Clear the statistics counters - */ -void UAVObjClearStats() -{ - xSemaphoreTakeRecursive(mutex, portMAX_DELAY); - memset(&stats, 0, sizeof(UAVObjStats)); - xSemaphoreGiveRecursive(mutex); -} - -/** - * Register and new object in the object manager. - * \param[in] id Unique object ID - * \param[in] name Object name - * \param[in] nameName Metaobject name - * \param[in] isMetaobject Is this a metaobject (1:true, 0:false) - * \param[in] isSingleInstance Is this a single instance or multi-instance object - * \param[in] isSettings Is this a settings object - * \param[in] numBytes Number of bytes of object data (for one instance) - * \param[in] initCb Default field and metadata initialization function - * \return Object handle, or NULL if failure. - * \return - */ -UAVObjHandle UAVObjRegister(uint32_t id, const char* name, const char* metaName, int32_t isMetaobject, - int32_t isSingleInstance, int32_t isSettings, uint32_t numBytes, UAVObjInitializeCallback initCb) -{ - ObjectList* objEntry; - ObjectInstList* instEntry; - ObjectList* metaObj; - - // Get lock - xSemaphoreTakeRecursive(mutex, portMAX_DELAY); - - // Check that the object is not already registered - LL_FOREACH(objList, objEntry) - { - if (objEntry->id == id) - { - // Already registered, ignore - xSemaphoreGiveRecursive(mutex); - return NULL; - } - } - - // Create and append entry - objEntry = (ObjectList*)pvPortMalloc(sizeof(ObjectList)); - if (objEntry == NULL) - { - xSemaphoreGiveRecursive(mutex); - return NULL; - } - objEntry->id = id; - objEntry->name = name; - objEntry->isMetaobject = (int8_t)isMetaobject; - objEntry->isSingleInstance = (int8_t)isSingleInstance; - objEntry->isSettings = (int8_t)isSettings; - objEntry->numBytes = numBytes; - objEntry->events = NULL; - objEntry->numInstances = 0; - objEntry->instances.data = NULL; - objEntry->instances.instId = 0xFFFF; - objEntry->instances.next = NULL; - objEntry->linkedObj = NULL; // will be set later - LL_APPEND(objList, objEntry); - - // Create instance zero - instEntry = createInstance(objEntry, 0); - if ( instEntry == NULL ) - { - xSemaphoreGiveRecursive(mutex); - return NULL; - } - - // Create metaobject and update linkedObj - if (isMetaobject) - { - objEntry->linkedObj = NULL; // will be set later - } - else - { - // Create metaobject - metaObj = (ObjectList*)UAVObjRegister(id+1, metaName, NULL, 1, 1, 0, sizeof(UAVObjMetadata), NULL); - // Link two objects - objEntry->linkedObj = metaObj; - metaObj->linkedObj = objEntry; - } - - // Initialize object fields and metadata to default values - if ( initCb != NULL ) - { - initCb((UAVObjHandle)objEntry, 0); - } - - // Attempt to load object's metadata from the SD card (not done directly on the metaobject, but through the object) - if ( !objEntry->isMetaobject ) - { - UAVObjLoad( (UAVObjHandle)objEntry->linkedObj, 0 ); - } - - // If this is a settings object, attempt to load from SD card - if ( objEntry->isSettings ) - { - UAVObjLoad( (UAVObjHandle)objEntry, 0 ); - } - - // Release lock - xSemaphoreGiveRecursive(mutex); - return (UAVObjHandle)objEntry; -} - -/** - * Retrieve an object from the list given its id - * \param[in] The object ID - * \return The object or NULL if not found. - */ -UAVObjHandle UAVObjGetByID(uint32_t id) -{ - ObjectList* objEntry; - - // Get lock - xSemaphoreTakeRecursive(mutex, portMAX_DELAY); - - // Look for object - LL_FOREACH(objList, objEntry) - { - if (objEntry->id == id) - { - // Release lock - xSemaphoreGiveRecursive(mutex); - // Done, object found - return (UAVObjHandle)objEntry; - } - } - - // Object not found, release lock and return error - xSemaphoreGiveRecursive(mutex); - return NULL; -} - -/** - * Retrieve an object from the list given its name - * \param[in] name The name of the object - * \return The object or NULL if not found. - */ -UAVObjHandle UAVObjGetByName(char* name) -{ - ObjectList* objEntry; - - // Get lock - xSemaphoreTakeRecursive(mutex, portMAX_DELAY); - - // Look for object - LL_FOREACH(objList, objEntry) - { - if (objEntry->name != NULL && strcmp(objEntry->name, name) == 0) - { - // Release lock - xSemaphoreGiveRecursive(mutex); - // Done, object found - return (UAVObjHandle)objEntry; - } - } - - // Object not found, release lock and return error - xSemaphoreGiveRecursive(mutex); - return NULL; -} - -/** - * Get the object's ID - * \param[in] obj The object handle - * \return The object ID - */ -uint32_t UAVObjGetID(UAVObjHandle obj) -{ - return ((ObjectList*)obj)->id; -} - -/** - * Get the object's name - * \param[in] obj The object handle - * \return The object's name - */ -const char* UAVObjGetName(UAVObjHandle obj) -{ - return ((ObjectList*)obj)->name; -} - -/** - * Get the number of bytes of the object's data (for one instance) - * \param[in] obj The object handle - * \return The number of bytes - */ -uint32_t UAVObjGetNumBytes(UAVObjHandle obj) -{ - return ((ObjectList*)obj)->numBytes; -} - -/** - * Get the object this object is linked to. For regular objects, the linked object - * is the metaobject. For metaobjects the linked object is the parent object. - * This function is normally only needed by the telemetry module. - * \param[in] obj The object handle - * \return The object linked object handle - */ -UAVObjHandle UAVObjGetLinkedObj(UAVObjHandle obj) -{ - return (UAVObjHandle)(((ObjectList*)obj)->linkedObj); -} - -/** - * Get the number of instances contained in the object. - * \param[in] obj The object handle - * \return The number of instances - */ -uint16_t UAVObjGetNumInstances(UAVObjHandle obj) -{ - uint32_t numInstances; - xSemaphoreTakeRecursive(mutex, portMAX_DELAY); - numInstances = ((ObjectList*)obj)->numInstances; - xSemaphoreGiveRecursive(mutex); - return numInstances; -} - -/** - * Create a new instance in the object. - * \param[in] obj The object handle - * \return The instance ID or 0 if an error - */ -uint16_t UAVObjCreateInstance(UAVObjHandle obj, UAVObjInitializeCallback initCb) -{ - ObjectList* objEntry; - ObjectInstList* instEntry; - - // Lock - xSemaphoreTakeRecursive(mutex, portMAX_DELAY); - - // Create new instance - objEntry = (ObjectList*)obj; - instEntry = createInstance(objEntry, objEntry->numInstances); - if ( instEntry == NULL ) - { - xSemaphoreGiveRecursive(mutex); - return -1; - } - - // Initialize instance data - if ( initCb != NULL ) - { - initCb(obj, instEntry->instId); - } - - // Unlock - xSemaphoreGiveRecursive(mutex); - return instEntry->instId; -} - -/** - * Does this object contains a single instance or multiple instances? - * \param[in] obj The object handle - * \return True (1) if this is a single instance object - */ -int32_t UAVObjIsSingleInstance(UAVObjHandle obj) -{ - return ((ObjectList*)obj)->isSingleInstance; -} - -/** - * Is this a metaobject? - * \param[in] obj The object handle - * \return True (1) if this is metaobject - */ -int32_t UAVObjIsMetaobject(UAVObjHandle obj) -{ - return ((ObjectList*)obj)->isMetaobject; -} - -/** - * Is this a settings object? - * \param[in] obj The object handle - * \return True (1) if this is a settings object - */ -int32_t UAVObjIsSettings(UAVObjHandle obj) -{ - return ((ObjectList*)obj)->isSettings; -} - -/** - * Unpack an object from a byte array - * \param[in] obj The object handle - * \param[in] instId The instance ID - * \param[in] dataIn The byte array - * \return 0 if success or -1 if failure - */ -int32_t UAVObjUnpack(UAVObjHandle obj, uint16_t instId, const uint8_t* dataIn) -{ - ObjectList* objEntry; - ObjectInstList* instEntry; - - // Lock - xSemaphoreTakeRecursive(mutex, portMAX_DELAY); - - // Cast handle to object - objEntry = (ObjectList*)obj; - - // Get the instance - instEntry = getInstance(objEntry, instId); - - // If the instance does not exist create it and any other instances before it - if ( instEntry == NULL ) - { - instEntry = createInstance(objEntry, instId); - if ( instEntry == NULL ) - { - // Error, unlock and return - xSemaphoreGiveRecursive(mutex); - return -1; - } - } - - // Set the data - memcpy(instEntry->data, dataIn, objEntry->numBytes); - - // Fire event - sendEvent(objEntry, instId, EV_UNPACKED); - - // Unlock - xSemaphoreGiveRecursive(mutex); - return 0; -} - -/** - * Pack an object to a byte array - * \param[in] obj The object handle - * \param[in] instId The instance ID - * \param[out] dataOut The byte array - * \return 0 if success or -1 if failure - */ -int32_t UAVObjPack(UAVObjHandle obj, uint16_t instId, uint8_t* dataOut) -{ - ObjectList* objEntry; - ObjectInstList* instEntry; - - // Lock - xSemaphoreTakeRecursive(mutex, portMAX_DELAY); - - // Cast handle to object - objEntry = (ObjectList*)obj; - - // Get the instance - instEntry = getInstance(objEntry, instId); - if ( instEntry == NULL ) - { - // Error, unlock and return - xSemaphoreGiveRecursive(mutex); - return -1; - } - - // Pack data - memcpy(dataOut, instEntry->data, objEntry->numBytes); - - // Unlock - xSemaphoreGiveRecursive(mutex); - return 0; -} - -/** - * Save the data of the specified object instance to the file system (SD card). - * The object will be appended and the file will not be closed. - * The object data can be restored using the UAVObjLoad function. - * @param[in] obj The object handle. - * @param[in] instId The instance ID - * @param[in] file File to append to - * @return 0 if success or -1 if failure - */ -int32_t UAVObjSaveToFile(UAVObjHandle obj, uint16_t instId, FILEINFO* file) -{ -#if defined(PIOS_INCLUDE_SDCARD) - uint32_t bytesWritten; - ObjectList* objEntry; - ObjectInstList* instEntry; - - // Check for file system availability - if ( PIOS_SDCARD_IsMounted() == 0 ) - { - return -1; - } - - // Lock - xSemaphoreTakeRecursive(mutex, portMAX_DELAY); - - // Cast to object - objEntry = (ObjectList*)obj; - - // Get the instance information - instEntry = getInstance(objEntry, instId); - if ( instEntry == NULL ) - { - xSemaphoreGiveRecursive(mutex); - return -1; - } - - // Write the object ID - PIOS_FWRITE(file,&objEntry->id,sizeof(objEntry->id),&bytesWritten); - - // Write the instance ID - if (!objEntry->isSingleInstance) - { - PIOS_FWRITE(file,&instEntry->instId,sizeof(instEntry->instId),&bytesWritten); - } - - // Write the data and check that the write was successful - PIOS_FWRITE(file,instEntry->data,objEntry->numBytes,&bytesWritten); - if ( bytesWritten != objEntry->numBytes ) - { - xSemaphoreGiveRecursive(mutex); - return -1; - } - - // Done - xSemaphoreGiveRecursive(mutex); -#endif /* PIOS_INCLUDE_SDCARD */ - return 0; -} - -/** - * Save the data of the specified object to the file system (SD card). - * If the object contains multiple instances, all of them will be saved. - * A new file with the name of the object will be created. - * The object data can be restored using the UAVObjLoad function. - * @param[in] obj The object handle. - * @param[in] instId The instance ID - * @param[in] file File to append to - * @return 0 if success or -1 if failure - */ -int32_t UAVObjSave(UAVObjHandle obj, uint16_t instId) -{ -#if defined(PIOS_INCLUDE_FLASH_SECTOR_SETTINGS) - ObjectList* objEntry = (ObjectList*)obj; - - if(objEntry == NULL) - return -1; - - ObjectInstList* instEntry = getInstance(objEntry, instId); - - if(instEntry == NULL) - return -1; - - if(instEntry->data == NULL) - return -1; - - if(PIOS_FLASHFS_ObjSave(obj, instId, instEntry->data) != 0) - return -1; -#endif -#if defined(PIOS_INCLUDE_SDCARD) - FILEINFO file; - ObjectList* objEntry; - uint8_t filename[14]; - - // Check for file system availability - if ( PIOS_SDCARD_IsMounted() == 0 ) - { - return -1; - } - - // Lock - xSemaphoreTakeRecursive(mutex, portMAX_DELAY); - - // Cast to object - objEntry = (ObjectList*)obj; - - // Get filename - objectFilename(objEntry, filename); - - // Open file - if ( PIOS_FOPEN_WRITE(filename,file) ) - { - xSemaphoreGiveRecursive(mutex); - return -1; - } - - // Append object - if ( UAVObjSaveToFile(obj, instId, &file) == -1 ) - { - PIOS_FCLOSE(file); - xSemaphoreGiveRecursive(mutex); - return -1; - } - - // Done, close file and unlock - PIOS_FCLOSE(file); - xSemaphoreGiveRecursive(mutex); -#endif /* PIOS_INCLUDE_SDCARD */ - return 0; -} - -/** - * Load an object from the file system (SD card). - * @param[in] file File to read from - * @return The handle of the object loaded or NULL if a failure - */ -UAVObjHandle UAVObjLoadFromFile(FILEINFO* file) -{ -#if defined(PIOS_INCLUDE_SDCARD) - uint32_t bytesRead; - ObjectList* objEntry; - ObjectInstList* instEntry; - uint32_t objId; - uint16_t instId; - UAVObjHandle obj; - - // Check for file system availability - if ( PIOS_SDCARD_IsMounted() == 0 ) - { - return NULL; - } - - // Lock - xSemaphoreTakeRecursive(mutex, portMAX_DELAY); - - // Read the object ID - if ( PIOS_FREAD(file,&objId,sizeof(objId),&bytesRead) ) - { - xSemaphoreGiveRecursive(mutex); - return NULL; - } - - // Get the object - obj = UAVObjGetByID(objId); - if ( obj == 0 ) - { - xSemaphoreGiveRecursive(mutex); - return NULL; - } - objEntry = (ObjectList*)obj; - - // Get the instance ID - instId = 0; - if ( !objEntry->isSingleInstance ) - { - if ( PIOS_FREAD(file,&instId,sizeof(instId),&bytesRead) ) - { - xSemaphoreGiveRecursive(mutex); - return NULL; - } - } - - // Get the instance information - instEntry = getInstance(objEntry, instId); - - // If the instance does not exist create it and any other instances before it - if ( instEntry == NULL ) - { - instEntry = createInstance(objEntry, instId); - if ( instEntry == NULL ) - { - // Error, unlock and return - xSemaphoreGiveRecursive(mutex); - return NULL; - } - } - - // Read the instance data - if ( PIOS_FREAD(file,instEntry->data,objEntry->numBytes,&bytesRead) ) - { - xSemaphoreGiveRecursive(mutex); - return NULL; - } - - // Fire event - sendEvent(objEntry, instId, EV_UNPACKED); - - // Unlock - xSemaphoreGiveRecursive(mutex); - return obj; -#else /* PIOS_INCLUDE_SDCARD */ - return NULL; -#endif -} - -/** - * Load an object from the file system (SD card). - * A file with the name of the object will be opened. - * The object data can be saved using the UAVObjSave function. - * @param[in] obj The object handle. - * @param[in] instId The object instance - * @return 0 if success or -1 if failure - */ -int32_t UAVObjLoad(UAVObjHandle obj, uint16_t instId) -{ -#if defined(PIOS_INCLUDE_FLASH_SECTOR_SETTINGS) - ObjectList* objEntry = (ObjectList*)obj; - - if(objEntry == NULL) - return -1; - - ObjectInstList* instEntry = getInstance(objEntry, instId); - - if(instEntry == NULL) - return -1; - - if(instEntry->data == NULL) - return -1; - - // Fire event on success - if(PIOS_FLASHFS_ObjLoad(obj, instId, instEntry->data) == 0) - sendEvent(objEntry, instId, EV_UNPACKED); - else - return -1; -#endif - -#if defined(PIOS_INCLUDE_SDCARD) - FILEINFO file; - ObjectList* objEntry; - UAVObjHandle loadedObj; - ObjectList* loadedObjEntry; - uint8_t filename[14]; - - // Check for file system availability - if ( PIOS_SDCARD_IsMounted() == 0 ) - { - return -1; - } - - // Lock - xSemaphoreTakeRecursive(mutex, portMAX_DELAY); - - // Cast to object - objEntry = (ObjectList*)obj; - - // Get filename - objectFilename(objEntry, filename); - - // Open file - if ( PIOS_FOPEN_READ(filename,file) ) - { - xSemaphoreGiveRecursive(mutex); - return -1; - } - - // Load object - loadedObj = UAVObjLoadFromFile(&file); - if (loadedObj == 0) - { - PIOS_FCLOSE(file); - xSemaphoreGiveRecursive(mutex); - return -1; - } - - // Check that the IDs match - loadedObjEntry = (ObjectList*)loadedObj; - if ( loadedObjEntry->id != objEntry->id ) - { - PIOS_FCLOSE(file); - xSemaphoreGiveRecursive(mutex); - return -1; - } - - // Done, close file and unlock - PIOS_FCLOSE(file); - xSemaphoreGiveRecursive(mutex); -#endif /* PIOS_INCLUDE_SDCARD */ - return 0; -} - -/** - * Delete an object from the file system (SD card). - * @param[in] obj The object handle. - * @param[in] instId The object instance - * @return 0 if success or -1 if failure - */ -int32_t UAVObjDelete(UAVObjHandle obj, uint16_t instId) -{ -#if defined(PIOS_INCLUDE_FLASH_SECTOR_SETTINGS) - PIOS_FLASHFS_ObjDelete(obj, instId); -#endif -#if defined(PIOS_INCLUDE_SDCARD) - ObjectList* objEntry; - uint8_t filename[14]; - - // Check for file system availability - if ( PIOS_SDCARD_IsMounted() == 0 ) - { - return -1; - } - - // Lock - xSemaphoreTakeRecursive(mutex, portMAX_DELAY); - - // Cast to object - objEntry = (ObjectList*)obj; - - // Get filename - objectFilename(objEntry, filename); - - // Delete file - PIOS_FUNLINK(filename); - - // Done - xSemaphoreGiveRecursive(mutex); -#endif /* PIOS_INCLUDE_SDCARD */ - return 0; -} - -/** - * Save all settings objects to the SD card. - * @return 0 if success or -1 if failure - */ -int32_t UAVObjSaveSettings() -{ - ObjectList* objEntry; - - // Get lock - xSemaphoreTakeRecursive(mutex, portMAX_DELAY); - - // Save all settings objects - LL_FOREACH(objList, objEntry) - { - // Check if this is a settings object - if ( objEntry->isSettings ) - { - // Save object - if ( UAVObjSave( (UAVObjHandle)objEntry, 0 ) == -1 ) - { - xSemaphoreGiveRecursive(mutex); - return -1; - } - } - } - - // Done - xSemaphoreGiveRecursive(mutex); - return 0; -} - -/** - * Load all settings objects from the SD card. - * @return 0 if success or -1 if failure - */ -int32_t UAVObjLoadSettings() -{ - ObjectList* objEntry; - - // Get lock - xSemaphoreTakeRecursive(mutex, portMAX_DELAY); - - // Load all settings objects - LL_FOREACH(objList, objEntry) - { - // Check if this is a settings object - if ( objEntry->isSettings ) - { - // Load object - if ( UAVObjLoad( (UAVObjHandle)objEntry, 0 ) == -1 ) - { - xSemaphoreGiveRecursive(mutex); - return -1; - } - } - } - - // Done - xSemaphoreGiveRecursive(mutex); - return 0; -} - -/** - * Delete all settings objects from the SD card. - * @return 0 if success or -1 if failure - */ -int32_t UAVObjDeleteSettings() -{ - ObjectList* objEntry; - - // Get lock - xSemaphoreTakeRecursive(mutex, portMAX_DELAY); - - // Save all settings objects - LL_FOREACH(objList, objEntry) - { - // Check if this is a settings object - if ( objEntry->isSettings ) - { - // Save object - if ( UAVObjDelete( (UAVObjHandle)objEntry, 0 ) == -1 ) - { - xSemaphoreGiveRecursive(mutex); - return -1; - } - } - } - - // Done - xSemaphoreGiveRecursive(mutex); - return 0; -} - -/** - * Save all metaobjects to the SD card. - * @return 0 if success or -1 if failure - */ -int32_t UAVObjSaveMetaobjects() -{ - ObjectList* objEntry; - - // Get lock - xSemaphoreTakeRecursive(mutex, portMAX_DELAY); - - // Save all settings objects - LL_FOREACH(objList, objEntry) - { - // Check if this is a settings object - if ( objEntry->isMetaobject ) - { - // Save object - if ( UAVObjSave( (UAVObjHandle)objEntry, 0 ) == -1 ) - { - xSemaphoreGiveRecursive(mutex); - return -1; - } - } - } - - // Done - xSemaphoreGiveRecursive(mutex); - return 0; -} - -/** - * Load all metaobjects from the SD card. - * @return 0 if success or -1 if failure - */ -int32_t UAVObjLoadMetaobjects() -{ - ObjectList* objEntry; - - // Get lock - xSemaphoreTakeRecursive(mutex, portMAX_DELAY); - - // Load all settings objects - LL_FOREACH(objList, objEntry) - { - // Check if this is a settings object - if ( objEntry->isMetaobject ) - { - // Load object - if ( UAVObjLoad( (UAVObjHandle)objEntry, 0 ) == -1 ) - { - xSemaphoreGiveRecursive(mutex); - return -1; - } - } - } - - // Done - xSemaphoreGiveRecursive(mutex); - return 0; -} - -/** - * Delete all metaobjects from the SD card. - * @return 0 if success or -1 if failure - */ -int32_t UAVObjDeleteMetaobjects() -{ - ObjectList* objEntry; - - // Get lock - xSemaphoreTakeRecursive(mutex, portMAX_DELAY); - - // Load all settings objects - LL_FOREACH(objList, objEntry) - { - // Check if this is a settings object - if ( objEntry->isMetaobject ) - { - // Load object - if ( UAVObjDelete( (UAVObjHandle)objEntry, 0 ) == -1 ) - { - xSemaphoreGiveRecursive(mutex); - return -1; - } - } - } - - // Done - xSemaphoreGiveRecursive(mutex); - return 0; -} - -/** - * Set the object data - * \param[in] obj The object handle - * \param[in] dataIn The object's data structure - * \return 0 if success or -1 if failure - */ -int32_t UAVObjSetData(UAVObjHandle obj, const void* dataIn) -{ - return UAVObjSetInstanceData(obj, 0, dataIn); -} - -/** - * Get the object data - * \param[in] obj The object handle - * \param[out] dataOut The object's data structure - * \return 0 if success or -1 if failure - */ -int32_t UAVObjGetData(UAVObjHandle obj, void* dataOut) -{ - return UAVObjGetInstanceData(obj, 0, dataOut); -} - -/** - * Set the data of a specific object instance - * \param[in] obj The object handle - * \param[in] instId The object instance ID - * \param[in] dataIn The object's data structure - * \return 0 if success or -1 if failure - */ -int32_t UAVObjSetInstanceData(UAVObjHandle obj, uint16_t instId, const void* dataIn) -{ - ObjectList* objEntry; - ObjectInstList* instEntry; - UAVObjMetadata* mdata; - - // Lock - xSemaphoreTakeRecursive(mutex, portMAX_DELAY); - - // Cast to object info - objEntry = (ObjectList*)obj; - - // Check access level - if ( !objEntry->isMetaobject ) - { - mdata = (UAVObjMetadata*)(objEntry->linkedObj->instances.data); - if ( mdata->access == ACCESS_READONLY ) - { - xSemaphoreGiveRecursive(mutex); - return -1; - } - } - - // Get instance information - instEntry = getInstance(objEntry, instId); - if ( instEntry == NULL ) - { - // Error, unlock and return - xSemaphoreGiveRecursive(mutex); - return -1; - } - - // Set data - memcpy(instEntry->data, dataIn, objEntry->numBytes); - - // Fire event - sendEvent(objEntry, instId, EV_UPDATED); - - // Unlock - xSemaphoreGiveRecursive(mutex); - return 0; -} - -/** - * Get the data of a specific object instance - * \param[in] obj The object handle - * \param[in] instId The object instance ID - * \param[out] dataOut The object's data structure - * \return 0 if success or -1 if failure - */ -int32_t UAVObjGetInstanceData(UAVObjHandle obj, uint16_t instId, void* dataOut) -{ - ObjectList* objEntry; - ObjectInstList* instEntry; - - // Lock - xSemaphoreTakeRecursive(mutex, portMAX_DELAY); - - // Cast to object info - objEntry = (ObjectList*)obj; - - // Get instance information - instEntry = getInstance(objEntry, instId); - if ( instEntry == NULL ) - { - // Error, unlock and return - xSemaphoreGiveRecursive(mutex); - return -1; - } - - // Set data - memcpy(dataOut, instEntry->data, objEntry->numBytes); - - // Unlock - xSemaphoreGiveRecursive(mutex); - return 0; -} - -/** - * Set the object metadata - * \param[in] obj The object handle - * \param[in] dataIn The object's metadata structure - * \return 0 if success or -1 if failure - */ -int32_t UAVObjSetMetadata(UAVObjHandle obj, const UAVObjMetadata* dataIn) -{ - ObjectList* objEntry; - - // Lock - xSemaphoreTakeRecursive(mutex, portMAX_DELAY); - - // Set metadata (metadata of metaobjects can not be modified) - objEntry = (ObjectList*)obj; - if (!objEntry->isMetaobject) - { - UAVObjSetData((UAVObjHandle)objEntry->linkedObj, dataIn); - } - else - { - return -1; - } - - // Unlock - xSemaphoreGiveRecursive(mutex); - return 0; -} - -/** - * Get the object metadata - * \param[in] obj The object handle - * \param[out] dataOut The object's metadata structure - * \return 0 if success or -1 if failure - */ -int32_t UAVObjGetMetadata(UAVObjHandle obj, UAVObjMetadata* dataOut) -{ - ObjectList* objEntry; - - // Lock - xSemaphoreTakeRecursive(mutex, portMAX_DELAY); - - // Get metadata - objEntry = (ObjectList*)obj; - if (objEntry->isMetaobject) - { - memcpy(dataOut, &defMetadata, sizeof(UAVObjMetadata)); - } - else - { - UAVObjGetData((UAVObjHandle)objEntry->linkedObj, dataOut); - } - - // Unlock - xSemaphoreGiveRecursive(mutex); - return 0; -} - -/** - * Check if an object is read only - * \param[in] obj The object handle - * \return - * \arg 0 if not read only - * \arg 1 if read only - * \arg -1 if unable to get meta data - */ -int8_t UAVObjReadOnly(UAVObjHandle obj) -{ - ObjectList* objEntry; - UAVObjMetadata* mdata; - - // Cast to object info - objEntry = (ObjectList*)obj; - - // Check access level - if ( !objEntry->isMetaobject ) - { - mdata = (UAVObjMetadata*)(objEntry->linkedObj->instances.data); - return mdata->access == ACCESS_READONLY; - } - return -1; -} - -/** - * Connect an event queue to the object, if the queue is already connected then the event mask is only updated. - * All events matching the event mask will be pushed to the event queue. - * \param[in] obj The object handle - * \param[in] queue The event queue - * \param[in] eventMask The event mask, if EV_MASK_ALL then all events are enabled (e.g. EV_UPDATED | EV_UPDATED_MANUAL) - * \return 0 if success or -1 if failure - */ -int32_t UAVObjConnectQueue(UAVObjHandle obj, xQueueHandle queue, int32_t eventMask) -{ - int32_t res; - xSemaphoreTakeRecursive(mutex, portMAX_DELAY); - res = connectObj(obj, queue, 0, eventMask); - xSemaphoreGiveRecursive(mutex); - return res; -} - -/** - * Disconnect an event queue from the object. - * \param[in] obj The object handle - * \param[in] queue The event queue - * \return 0 if success or -1 if failure - */ -int32_t UAVObjDisconnectQueue(UAVObjHandle obj, xQueueHandle queue) -{ - int32_t res; - xSemaphoreTakeRecursive(mutex, portMAX_DELAY); - res = disconnectObj(obj, queue, 0); - xSemaphoreGiveRecursive(mutex); - return res; -} - -/** - * Connect an event callback to the object, if the callback is already connected then the event mask is only updated. - * The supplied callback will be invoked on all events matching the event mask. - * \param[in] obj The object handle - * \param[in] cb The event callback - * \param[in] eventMask The event mask, if EV_MASK_ALL then all events are enabled (e.g. EV_UPDATED | EV_UPDATED_MANUAL) - * \return 0 if success or -1 if failure - */ -int32_t UAVObjConnectCallback(UAVObjHandle obj, UAVObjEventCallback cb, int32_t eventMask) -{ - int32_t res; - xSemaphoreTakeRecursive(mutex, portMAX_DELAY); - res = connectObj(obj, 0, cb, eventMask); - xSemaphoreGiveRecursive(mutex); - return res; -} - -/** - * Disconnect an event callback from the object. - * \param[in] obj The object handle - * \param[in] cb The event callback - * \return 0 if success or -1 if failure - */ -int32_t UAVObjDisconnectCallback(UAVObjHandle obj, UAVObjEventCallback cb) -{ - int32_t res; - xSemaphoreTakeRecursive(mutex, portMAX_DELAY); - res = disconnectObj(obj, 0, cb); - xSemaphoreGiveRecursive(mutex); - return res; -} - - -/** - * Request an update of the object's data from the GCS. The call will not wait for the response, a EV_UPDATED event - * will be generated as soon as the object is updated. - * \param[in] obj The object handle - */ -void UAVObjRequestUpdate(UAVObjHandle obj) -{ - UAVObjRequestInstanceUpdate(obj, UAVOBJ_ALL_INSTANCES); -} - -/** - * Request an update of the object's data from the GCS. The call will not wait for the response, a EV_UPDATED event - * will be generated as soon as the object is updated. - * \param[in] obj The object handle - * \param[in] instId Object instance ID to update - */ -void UAVObjRequestInstanceUpdate(UAVObjHandle obj, uint16_t instId) -{ - xSemaphoreTakeRecursive(mutex, portMAX_DELAY); - sendEvent((ObjectList*)obj, instId, EV_UPDATE_REQ); - xSemaphoreGiveRecursive(mutex); -} - -/** - * Send the object's data to the GCS (triggers a EV_UPDATED_MANUAL event on this object). - * \param[in] obj The object handle - */ -void UAVObjUpdated(UAVObjHandle obj) -{ - UAVObjInstanceUpdated(obj, UAVOBJ_ALL_INSTANCES); -} - -/** - * Send the object's data to the GCS (triggers a EV_UPDATED_MANUAL event on this object). - * \param[in] obj The object handle - * \param[in] instId The object instance ID - */ -void UAVObjInstanceUpdated(UAVObjHandle obj, uint16_t instId) -{ - xSemaphoreTakeRecursive(mutex, portMAX_DELAY); - sendEvent((ObjectList*)obj, instId, EV_UPDATED_MANUAL); - xSemaphoreGiveRecursive(mutex); -} - -/** - * Iterate through all objects in the list. - * \param iterator This function will be called once for each object, - * the object will be passed as a parameter - */ -void UAVObjIterate(void (*iterator)(UAVObjHandle obj)) -{ - ObjectList* objEntry; - - // Get lock - xSemaphoreTakeRecursive(mutex, portMAX_DELAY); - - // Iterate through the list and invoke iterator for each object - LL_FOREACH(objList, objEntry) - { - (*iterator)((UAVObjHandle)objEntry); - } - - // Release lock - xSemaphoreGiveRecursive(mutex); -} - -/** - * Send an event to all event queues registered on the object. - */ -static int32_t sendEvent(ObjectList* obj, uint16_t instId, UAVObjEventType event) -{ - ObjectEventList* eventEntry; - UAVObjEvent msg; - - // Setup event - msg.obj = (UAVObjHandle)obj; - msg.event = event; - msg.instId = instId; - - // Go through each object and push the event message in the queue (if event is activated for the queue) - LL_FOREACH(obj->events, eventEntry) - { - if ( eventEntry->eventMask == 0 || (eventEntry->eventMask & event) != 0 ) - { - // Send to queue if a valid queue is registered - if (eventEntry->queue != 0) - { - if ( xQueueSend(eventEntry->queue, &msg, 0) != pdTRUE ) // will not block - { - ++stats.eventErrors; - } - } - // Invoke callback (from event task) if a valid one is registered - if (eventEntry->cb != 0) - { - if ( EventCallbackDispatch(&msg, eventEntry->cb) != pdTRUE ) // invoke callback from the event task, will not block - { - ++stats.eventErrors; - } - } - } - } - - // Done - return 0; -} - -/** - * Create a new object instance, return the instance info or NULL if failure. - */ -static ObjectInstList* createInstance(ObjectList* obj, uint16_t instId) -{ - ObjectInstList* instEntry; - int32_t n; - - // For single instance objects, only instance zero is allowed - if (obj->isSingleInstance && instId != 0) - { - return NULL; - } - - // Make sure that the instance ID is within limits - if (instId >= UAVOBJ_MAX_INSTANCES) - { - return NULL; - } - - // Check if the instance already exists - if ( getInstance(obj, instId) != NULL ) - { - return NULL; - } - - // Create any missing instances (all instance IDs must be sequential) - for (n = obj->numInstances; n < instId; ++n) - { - if ( createInstance(obj, n) == NULL ) - { - return NULL; - } - } - - if(instId == 0) /* Instance 0 ObjectInstList allocated with ObjectList element */ - { - instEntry = &obj->instances; - instEntry->data = pvPortMalloc(obj->numBytes); - if (instEntry->data == NULL) return NULL; - memset(instEntry->data, 0, obj->numBytes); - instEntry->instId = instId; - } else - { - // Create the actual instance - instEntry = (ObjectInstList*)pvPortMalloc(sizeof(ObjectInstList)); - if (instEntry == NULL) return NULL; - instEntry->data = pvPortMalloc(obj->numBytes); - if (instEntry->data == NULL) return NULL; - memset(instEntry->data, 0, obj->numBytes); - instEntry->instId = instId; - LL_APPEND(obj->instances.next, instEntry); - } - ++obj->numInstances; - - // Fire event - UAVObjInstanceUpdated((UAVObjHandle)obj, instId); - - // Done - return instEntry; -} - -/** - * Get the instance information or NULL if the instance does not exist - */ -static ObjectInstList* getInstance(ObjectList* obj, uint16_t instId) -{ - ObjectInstList* instEntry; - - // Look for specified instance ID - LL_FOREACH(&(obj->instances), instEntry) - { - if (instEntry->instId == instId) - { - return instEntry; - } - } - // If this point is reached then instance id was not found - return NULL; -} - -/** - * Connect an event queue to the object, if the queue is already connected then the event mask is only updated. - * \param[in] obj The object handle - * \param[in] queue The event queue - * \param[in] cb The event callback - * \param[in] eventMask The event mask, if EV_MASK_ALL then all events are enabled (e.g. EV_UPDATED | EV_UPDATED_MANUAL) - * \return 0 if success or -1 if failure - */ -static int32_t connectObj(UAVObjHandle obj, xQueueHandle queue, UAVObjEventCallback cb, int32_t eventMask) -{ - ObjectEventList* eventEntry; - ObjectList* objEntry; - - // Check that the queue is not already connected, if it is simply update event mask - objEntry = (ObjectList*)obj; - LL_FOREACH(objEntry->events, eventEntry) - { - if ( eventEntry->queue == queue && eventEntry->cb == cb ) - { - // Already connected, update event mask and return - eventEntry->eventMask = eventMask; - return 0; - } - } - - // Add queue to list - eventEntry = (ObjectEventList*)pvPortMalloc(sizeof(ObjectEventList)); - if (eventEntry == NULL) - { - return -1; - } - eventEntry->queue = queue; - eventEntry->cb = cb; - eventEntry->eventMask = eventMask; - LL_APPEND(objEntry->events, eventEntry); - - // Done - return 0; -} - -/** - * Disconnect an event queue from the object - * \param[in] obj The object handle - * \param[in] queue The event queue - * \param[in] cb The event callback - * \return 0 if success or -1 if failure - */ -static int32_t disconnectObj(UAVObjHandle obj, xQueueHandle queue, UAVObjEventCallback cb) -{ - ObjectEventList* eventEntry; - ObjectList* objEntry; - - // Find queue and remove it - objEntry = (ObjectList*)obj; - LL_FOREACH(objEntry->events, eventEntry) - { - if ( ( eventEntry->queue == queue && eventEntry->cb == cb ) ) - { - LL_DELETE(objEntry->events, eventEntry); - vPortFree(eventEntry); - return 0; - } - } - - // If this point is reached the queue was not found - return -1; -} - -#if defined(PIOS_INCLUDE_SDCARD) -/** - * Wrapper for the sprintf function - */ -static void customSPrintf(uint8_t* buffer, uint8_t* format, ...) -{ - va_list args; - va_start(args, format); - vsprintf((char *)buffer, (char *)format, args); -} - -/** - * Get an 8 character (plus extension) filename for the object. - */ -static void objectFilename(ObjectList* obj, uint8_t* filename) -{ - customSPrintf(filename, (uint8_t*)"%X.obj", obj->id); -} -#endif /* PIOS_INCLUDE_SDCARD */ - - - - - - - - - - - - - - - - +/** + ****************************************************************************** + * @addtogroup UAVObjects OpenPilot UAVObjects + * @{ + * @addtogroup UAV Object Manager + * @brief The core UAV Objects functions, most of which are wrappered by + * autogenerated defines + * @{ + * + * + * @file uavobjectmanager.h + * @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010. + * @brief Object manager library. This library holds a collection of all objects. + * It can be used by all modules/libraries to find an object reference. + * @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 + */ + +#include "openpilot.h" + +// Constants + +// Private types + +/** + * List of event queues and the eventmask associated with the queue. + */ +struct ObjectEventListStruct { + xQueueHandle queue; + UAVObjEventCallback cb; + int32_t eventMask; + struct ObjectEventListStruct *next; +}; +typedef struct ObjectEventListStruct ObjectEventList; + +/** + * List of object instances, holds the actual data structure and instance ID + */ +struct ObjectInstListStruct { + void *data; + uint16_t instId; + struct ObjectInstListStruct *next; +}; +typedef struct ObjectInstListStruct ObjectInstList; + +/** + * List of objects registered in the object manager + */ +struct ObjectListStruct { + uint32_t id; + /** The object ID */ + const char *name; + /** The object name */ + int8_t isMetaobject; + /** Set to 1 if this is a metaobject */ + int8_t isSingleInstance; + /** Set to 1 if this object has a single instance */ + int8_t isSettings; + /** Set to 1 if this object is a settings object */ + uint16_t numBytes; + /** Number of data bytes contained in the object (for a single instance) */ + uint16_t numInstances; + /** Number of instances */ + struct ObjectListStruct *linkedObj; + /** Linked object, for regular objects this is the metaobject and for metaobjects it is the parent object */ + ObjectInstList instances; + /** List of object instances, instance 0 always exists */ + ObjectEventList *events; + /** Event queues registered on the object */ + struct ObjectListStruct *next; + /** Needed by linked list library (utlist.h) */ +}; +typedef struct ObjectListStruct ObjectList; + +// Private functions +static int32_t sendEvent(ObjectList * obj, uint16_t instId, + UAVObjEventType event); +static ObjectInstList *createInstance(ObjectList * obj, uint16_t instId); +static ObjectInstList *getInstance(ObjectList * obj, uint16_t instId); +static int32_t connectObj(UAVObjHandle obj, xQueueHandle queue, + UAVObjEventCallback cb, int32_t eventMask); +static int32_t disconnectObj(UAVObjHandle obj, xQueueHandle queue, + UAVObjEventCallback cb); + +#if defined(PIOS_INCLUDE_SDCARD) +static void objectFilename(ObjectList * obj, uint8_t * filename); +static void customSPrintf(uint8_t * buffer, uint8_t * format, ...); +#endif + +// Private variables +static ObjectList *objList; +static xSemaphoreHandle mutex; +static UAVObjMetadata defMetadata; +static UAVObjStats stats; + +/** + * Initialize the object manager + * \return 0 Success + * \return -1 Failure + */ +int32_t UAVObjInitialize() +{ + // Initialize variables + objList = NULL; + memset(&stats, 0, sizeof(UAVObjStats)); + + // Create mutex + mutex = xSemaphoreCreateRecursiveMutex(); + if (mutex == NULL) + return -1; + + // Initialize default metadata structure (metadata of metaobjects) + defMetadata.access = ACCESS_READWRITE; + defMetadata.gcsAccess = ACCESS_READWRITE; + defMetadata.telemetryAcked = 1; + defMetadata.telemetryUpdateMode = UPDATEMODE_ONCHANGE; + defMetadata.telemetryUpdatePeriod = 0; + defMetadata.gcsTelemetryAcked = 1; + defMetadata.gcsTelemetryUpdateMode = UPDATEMODE_ONCHANGE; + defMetadata.gcsTelemetryUpdatePeriod = 0; + defMetadata.loggingUpdateMode = UPDATEMODE_ONCHANGE; + defMetadata.loggingUpdatePeriod = 0; + + // Done + return 0; +} + +/** + * Get the statistics counters + * @param[out] statsOut The statistics counters will be copied there + */ +void UAVObjGetStats(UAVObjStats * statsOut) +{ + xSemaphoreTakeRecursive(mutex, portMAX_DELAY); + memcpy(statsOut, &stats, sizeof(UAVObjStats)); + xSemaphoreGiveRecursive(mutex); +} + +/** + * Clear the statistics counters + */ +void UAVObjClearStats() +{ + xSemaphoreTakeRecursive(mutex, portMAX_DELAY); + memset(&stats, 0, sizeof(UAVObjStats)); + xSemaphoreGiveRecursive(mutex); +} + +/** + * Register and new object in the object manager. + * \param[in] id Unique object ID + * \param[in] name Object name + * \param[in] nameName Metaobject name + * \param[in] isMetaobject Is this a metaobject (1:true, 0:false) + * \param[in] isSingleInstance Is this a single instance or multi-instance object + * \param[in] isSettings Is this a settings object + * \param[in] numBytes Number of bytes of object data (for one instance) + * \param[in] initCb Default field and metadata initialization function + * \return Object handle, or NULL if failure. + * \return + */ +UAVObjHandle UAVObjRegister(uint32_t id, const char *name, + const char *metaName, int32_t isMetaobject, + int32_t isSingleInstance, int32_t isSettings, + uint32_t numBytes, + UAVObjInitializeCallback initCb) +{ + ObjectList *objEntry; + ObjectInstList *instEntry; + ObjectList *metaObj; + + // Get lock + xSemaphoreTakeRecursive(mutex, portMAX_DELAY); + + // Check that the object is not already registered + LL_FOREACH(objList, objEntry) { + if (objEntry->id == id) { + // Already registered, ignore + xSemaphoreGiveRecursive(mutex); + return NULL; + } + } + + // Create and append entry + objEntry = (ObjectList *) pvPortMalloc(sizeof(ObjectList)); + if (objEntry == NULL) { + xSemaphoreGiveRecursive(mutex); + return NULL; + } + objEntry->id = id; + objEntry->name = name; + objEntry->isMetaobject = (int8_t) isMetaobject; + objEntry->isSingleInstance = (int8_t) isSingleInstance; + objEntry->isSettings = (int8_t) isSettings; + objEntry->numBytes = numBytes; + objEntry->events = NULL; + objEntry->numInstances = 0; + objEntry->instances.data = NULL; + objEntry->instances.instId = 0xFFFF; + objEntry->instances.next = NULL; + objEntry->linkedObj = NULL; // will be set later + LL_APPEND(objList, objEntry); + + // Create instance zero + instEntry = createInstance(objEntry, 0); + if (instEntry == NULL) { + xSemaphoreGiveRecursive(mutex); + return NULL; + } + // Create metaobject and update linkedObj + if (isMetaobject) { + objEntry->linkedObj = NULL; // will be set later + } else { + // Create metaobject + metaObj = + (ObjectList *) UAVObjRegister(id + 1, metaName, + NULL, 1, 1, 0, + sizeof + (UAVObjMetadata), + NULL); + // Link two objects + objEntry->linkedObj = metaObj; + metaObj->linkedObj = objEntry; + } + + // Initialize object fields and metadata to default values + if (initCb != NULL) { + initCb((UAVObjHandle) objEntry, 0); + } + // Attempt to load object's metadata from the SD card (not done directly on the metaobject, but through the object) + if (!objEntry->isMetaobject) { + UAVObjLoad((UAVObjHandle) objEntry->linkedObj, 0); + } + // If this is a settings object, attempt to load from SD card + if (objEntry->isSettings) { + UAVObjLoad((UAVObjHandle) objEntry, 0); + } + // Release lock + xSemaphoreGiveRecursive(mutex); + return (UAVObjHandle) objEntry; +} + +/** + * Retrieve an object from the list given its id + * \param[in] The object ID + * \return The object or NULL if not found. + */ +UAVObjHandle UAVObjGetByID(uint32_t id) +{ + ObjectList *objEntry; + + // Get lock + xSemaphoreTakeRecursive(mutex, portMAX_DELAY); + + // Look for object + LL_FOREACH(objList, objEntry) { + if (objEntry->id == id) { + // Release lock + xSemaphoreGiveRecursive(mutex); + // Done, object found + return (UAVObjHandle) objEntry; + } + } + + // Object not found, release lock and return error + xSemaphoreGiveRecursive(mutex); + return NULL; +} + +/** + * Retrieve an object from the list given its name + * \param[in] name The name of the object + * \return The object or NULL if not found. + */ +UAVObjHandle UAVObjGetByName(char *name) +{ + ObjectList *objEntry; + + // Get lock + xSemaphoreTakeRecursive(mutex, portMAX_DELAY); + + // Look for object + LL_FOREACH(objList, objEntry) { + if (objEntry->name != NULL + && strcmp(objEntry->name, name) == 0) { + // Release lock + xSemaphoreGiveRecursive(mutex); + // Done, object found + return (UAVObjHandle) objEntry; + } + } + + // Object not found, release lock and return error + xSemaphoreGiveRecursive(mutex); + return NULL; +} + +/** + * Get the object's ID + * \param[in] obj The object handle + * \return The object ID + */ +uint32_t UAVObjGetID(UAVObjHandle obj) +{ + return ((ObjectList *) obj)->id; +} + +/** + * Get the object's name + * \param[in] obj The object handle + * \return The object's name + */ +const char *UAVObjGetName(UAVObjHandle obj) +{ + return ((ObjectList *) obj)->name; +} + +/** + * Get the number of bytes of the object's data (for one instance) + * \param[in] obj The object handle + * \return The number of bytes + */ +uint32_t UAVObjGetNumBytes(UAVObjHandle obj) +{ + return ((ObjectList *) obj)->numBytes; +} + +/** + * Get the object this object is linked to. For regular objects, the linked object + * is the metaobject. For metaobjects the linked object is the parent object. + * This function is normally only needed by the telemetry module. + * \param[in] obj The object handle + * \return The object linked object handle + */ +UAVObjHandle UAVObjGetLinkedObj(UAVObjHandle obj) +{ + return (UAVObjHandle) (((ObjectList *) obj)->linkedObj); +} + +/** + * Get the number of instances contained in the object. + * \param[in] obj The object handle + * \return The number of instances + */ +uint16_t UAVObjGetNumInstances(UAVObjHandle obj) +{ + uint32_t numInstances; + xSemaphoreTakeRecursive(mutex, portMAX_DELAY); + numInstances = ((ObjectList *) obj)->numInstances; + xSemaphoreGiveRecursive(mutex); + return numInstances; +} + +/** + * Create a new instance in the object. + * \param[in] obj The object handle + * \return The instance ID or 0 if an error + */ +uint16_t UAVObjCreateInstance(UAVObjHandle obj, + UAVObjInitializeCallback initCb) +{ + ObjectList *objEntry; + ObjectInstList *instEntry; + + // Lock + xSemaphoreTakeRecursive(mutex, portMAX_DELAY); + + // Create new instance + objEntry = (ObjectList *) obj; + instEntry = createInstance(objEntry, objEntry->numInstances); + if (instEntry == NULL) { + xSemaphoreGiveRecursive(mutex); + return -1; + } + // Initialize instance data + if (initCb != NULL) { + initCb(obj, instEntry->instId); + } + // Unlock + xSemaphoreGiveRecursive(mutex); + return instEntry->instId; +} + +/** + * Does this object contains a single instance or multiple instances? + * \param[in] obj The object handle + * \return True (1) if this is a single instance object + */ +int32_t UAVObjIsSingleInstance(UAVObjHandle obj) +{ + return ((ObjectList *) obj)->isSingleInstance; +} + +/** + * Is this a metaobject? + * \param[in] obj The object handle + * \return True (1) if this is metaobject + */ +int32_t UAVObjIsMetaobject(UAVObjHandle obj) +{ + return ((ObjectList *) obj)->isMetaobject; +} + +/** + * Is this a settings object? + * \param[in] obj The object handle + * \return True (1) if this is a settings object + */ +int32_t UAVObjIsSettings(UAVObjHandle obj) +{ + return ((ObjectList *) obj)->isSettings; +} + +/** + * Unpack an object from a byte array + * \param[in] obj The object handle + * \param[in] instId The instance ID + * \param[in] dataIn The byte array + * \return 0 if success or -1 if failure + */ +int32_t UAVObjUnpack(UAVObjHandle obj, uint16_t instId, + const uint8_t * dataIn) +{ + ObjectList *objEntry; + ObjectInstList *instEntry; + + // Lock + xSemaphoreTakeRecursive(mutex, portMAX_DELAY); + + // Cast handle to object + objEntry = (ObjectList *) obj; + + // Get the instance + instEntry = getInstance(objEntry, instId); + + // If the instance does not exist create it and any other instances before it + if (instEntry == NULL) { + instEntry = createInstance(objEntry, instId); + if (instEntry == NULL) { + // Error, unlock and return + xSemaphoreGiveRecursive(mutex); + return -1; + } + } + // Set the data + memcpy(instEntry->data, dataIn, objEntry->numBytes); + + // Fire event + sendEvent(objEntry, instId, EV_UNPACKED); + + // Unlock + xSemaphoreGiveRecursive(mutex); + return 0; +} + +/** + * Pack an object to a byte array + * \param[in] obj The object handle + * \param[in] instId The instance ID + * \param[out] dataOut The byte array + * \return 0 if success or -1 if failure + */ +int32_t UAVObjPack(UAVObjHandle obj, uint16_t instId, uint8_t * dataOut) +{ + ObjectList *objEntry; + ObjectInstList *instEntry; + + // Lock + xSemaphoreTakeRecursive(mutex, portMAX_DELAY); + + // Cast handle to object + objEntry = (ObjectList *) obj; + + // Get the instance + instEntry = getInstance(objEntry, instId); + if (instEntry == NULL) { + // Error, unlock and return + xSemaphoreGiveRecursive(mutex); + return -1; + } + // Pack data + memcpy(dataOut, instEntry->data, objEntry->numBytes); + + // Unlock + xSemaphoreGiveRecursive(mutex); + return 0; +} + +/** + * Save the data of the specified object instance to the file system (SD card). + * The object will be appended and the file will not be closed. + * The object data can be restored using the UAVObjLoad function. + * @param[in] obj The object handle. + * @param[in] instId The instance ID + * @param[in] file File to append to + * @return 0 if success or -1 if failure + */ +int32_t UAVObjSaveToFile(UAVObjHandle obj, uint16_t instId, + FILEINFO * file) +{ +#if defined(PIOS_INCLUDE_SDCARD) + uint32_t bytesWritten; + ObjectList *objEntry; + ObjectInstList *instEntry; + + // Check for file system availability + if (PIOS_SDCARD_IsMounted() == 0) { + return -1; + } + // Lock + xSemaphoreTakeRecursive(mutex, portMAX_DELAY); + + // Cast to object + objEntry = (ObjectList *) obj; + + // Get the instance information + instEntry = getInstance(objEntry, instId); + if (instEntry == NULL) { + xSemaphoreGiveRecursive(mutex); + return -1; + } + // Write the object ID + PIOS_FWRITE(file, &objEntry->id, sizeof(objEntry->id), + &bytesWritten); + + // Write the instance ID + if (!objEntry->isSingleInstance) { + PIOS_FWRITE(file, &instEntry->instId, + sizeof(instEntry->instId), &bytesWritten); + } + // Write the data and check that the write was successful + PIOS_FWRITE(file, instEntry->data, objEntry->numBytes, + &bytesWritten); + if (bytesWritten != objEntry->numBytes) { + xSemaphoreGiveRecursive(mutex); + return -1; + } + // Done + xSemaphoreGiveRecursive(mutex); +#endif /* PIOS_INCLUDE_SDCARD */ + return 0; +} + +/** + * Save the data of the specified object to the file system (SD card). + * If the object contains multiple instances, all of them will be saved. + * A new file with the name of the object will be created. + * The object data can be restored using the UAVObjLoad function. + * @param[in] obj The object handle. + * @param[in] instId The instance ID + * @param[in] file File to append to + * @return 0 if success or -1 if failure + */ +int32_t UAVObjSave(UAVObjHandle obj, uint16_t instId) +{ +#if defined(PIOS_INCLUDE_FLASH_SECTOR_SETTINGS) + ObjectList *objEntry = (ObjectList *) obj; + + if (objEntry == NULL) + return -1; + + ObjectInstList *instEntry = getInstance(objEntry, instId); + + if (instEntry == NULL) + return -1; + + if (instEntry->data == NULL) + return -1; + + if (PIOS_FLASHFS_ObjSave(obj, instId, instEntry->data) != 0) + return -1; +#endif +#if defined(PIOS_INCLUDE_SDCARD) + FILEINFO file; + ObjectList *objEntry; + uint8_t filename[14]; + + // Check for file system availability + if (PIOS_SDCARD_IsMounted() == 0) { + return -1; + } + // Lock + xSemaphoreTakeRecursive(mutex, portMAX_DELAY); + + // Cast to object + objEntry = (ObjectList *) obj; + + // Get filename + objectFilename(objEntry, filename); + + // Open file + if (PIOS_FOPEN_WRITE(filename, file)) { + xSemaphoreGiveRecursive(mutex); + return -1; + } + // Append object + if (UAVObjSaveToFile(obj, instId, &file) == -1) { + PIOS_FCLOSE(file); + xSemaphoreGiveRecursive(mutex); + return -1; + } + // Done, close file and unlock + PIOS_FCLOSE(file); + xSemaphoreGiveRecursive(mutex); +#endif /* PIOS_INCLUDE_SDCARD */ + return 0; +} + +/** + * Load an object from the file system (SD card). + * @param[in] file File to read from + * @return The handle of the object loaded or NULL if a failure + */ +UAVObjHandle UAVObjLoadFromFile(FILEINFO * file) +{ +#if defined(PIOS_INCLUDE_SDCARD) + uint32_t bytesRead; + ObjectList *objEntry; + ObjectInstList *instEntry; + uint32_t objId; + uint16_t instId; + UAVObjHandle obj; + + // Check for file system availability + if (PIOS_SDCARD_IsMounted() == 0) { + return NULL; + } + // Lock + xSemaphoreTakeRecursive(mutex, portMAX_DELAY); + + // Read the object ID + if (PIOS_FREAD(file, &objId, sizeof(objId), &bytesRead)) { + xSemaphoreGiveRecursive(mutex); + return NULL; + } + // Get the object + obj = UAVObjGetByID(objId); + if (obj == 0) { + xSemaphoreGiveRecursive(mutex); + return NULL; + } + objEntry = (ObjectList *) obj; + + // Get the instance ID + instId = 0; + if (!objEntry->isSingleInstance) { + if (PIOS_FREAD + (file, &instId, sizeof(instId), &bytesRead)) { + xSemaphoreGiveRecursive(mutex); + return NULL; + } + } + // Get the instance information + instEntry = getInstance(objEntry, instId); + + // If the instance does not exist create it and any other instances before it + if (instEntry == NULL) { + instEntry = createInstance(objEntry, instId); + if (instEntry == NULL) { + // Error, unlock and return + xSemaphoreGiveRecursive(mutex); + return NULL; + } + } + // Read the instance data + if (PIOS_FREAD + (file, instEntry->data, objEntry->numBytes, &bytesRead)) { + xSemaphoreGiveRecursive(mutex); + return NULL; + } + // Fire event + sendEvent(objEntry, instId, EV_UNPACKED); + + // Unlock + xSemaphoreGiveRecursive(mutex); + return obj; +#else /* PIOS_INCLUDE_SDCARD */ + return NULL; +#endif +} + +/** + * Load an object from the file system (SD card). + * A file with the name of the object will be opened. + * The object data can be saved using the UAVObjSave function. + * @param[in] obj The object handle. + * @param[in] instId The object instance + * @return 0 if success or -1 if failure + */ +int32_t UAVObjLoad(UAVObjHandle obj, uint16_t instId) +{ +#if defined(PIOS_INCLUDE_FLASH_SECTOR_SETTINGS) + ObjectList *objEntry = (ObjectList *) obj; + + if (objEntry == NULL) + return -1; + + ObjectInstList *instEntry = getInstance(objEntry, instId); + + if (instEntry == NULL) + return -1; + + if (instEntry->data == NULL) + return -1; + + // Fire event on success + if (PIOS_FLASHFS_ObjLoad(obj, instId, instEntry->data) == 0) + sendEvent(objEntry, instId, EV_UNPACKED); + else + return -1; +#endif + +#if defined(PIOS_INCLUDE_SDCARD) + FILEINFO file; + ObjectList *objEntry; + UAVObjHandle loadedObj; + ObjectList *loadedObjEntry; + uint8_t filename[14]; + + // Check for file system availability + if (PIOS_SDCARD_IsMounted() == 0) { + return -1; + } + // Lock + xSemaphoreTakeRecursive(mutex, portMAX_DELAY); + + // Cast to object + objEntry = (ObjectList *) obj; + + // Get filename + objectFilename(objEntry, filename); + + // Open file + if (PIOS_FOPEN_READ(filename, file)) { + xSemaphoreGiveRecursive(mutex); + return -1; + } + // Load object + loadedObj = UAVObjLoadFromFile(&file); + if (loadedObj == 0) { + PIOS_FCLOSE(file); + xSemaphoreGiveRecursive(mutex); + return -1; + } + // Check that the IDs match + loadedObjEntry = (ObjectList *) loadedObj; + if (loadedObjEntry->id != objEntry->id) { + PIOS_FCLOSE(file); + xSemaphoreGiveRecursive(mutex); + return -1; + } + // Done, close file and unlock + PIOS_FCLOSE(file); + xSemaphoreGiveRecursive(mutex); +#endif /* PIOS_INCLUDE_SDCARD */ + return 0; +} + +/** + * Delete an object from the file system (SD card). + * @param[in] obj The object handle. + * @param[in] instId The object instance + * @return 0 if success or -1 if failure + */ +int32_t UAVObjDelete(UAVObjHandle obj, uint16_t instId) +{ +#if defined(PIOS_INCLUDE_FLASH_SECTOR_SETTINGS) + PIOS_FLASHFS_ObjDelete(obj, instId); +#endif +#if defined(PIOS_INCLUDE_SDCARD) + ObjectList *objEntry; + uint8_t filename[14]; + + // Check for file system availability + if (PIOS_SDCARD_IsMounted() == 0) { + return -1; + } + // Lock + xSemaphoreTakeRecursive(mutex, portMAX_DELAY); + + // Cast to object + objEntry = (ObjectList *) obj; + + // Get filename + objectFilename(objEntry, filename); + + // Delete file + PIOS_FUNLINK(filename); + + // Done + xSemaphoreGiveRecursive(mutex); +#endif /* PIOS_INCLUDE_SDCARD */ + return 0; +} + +/** + * Save all settings objects to the SD card. + * @return 0 if success or -1 if failure + */ +int32_t UAVObjSaveSettings() +{ + ObjectList *objEntry; + + // Get lock + xSemaphoreTakeRecursive(mutex, portMAX_DELAY); + + // Save all settings objects + LL_FOREACH(objList, objEntry) { + // Check if this is a settings object + if (objEntry->isSettings) { + // Save object + if (UAVObjSave((UAVObjHandle) objEntry, 0) == + -1) { + xSemaphoreGiveRecursive(mutex); + return -1; + } + } + } + + // Done + xSemaphoreGiveRecursive(mutex); + return 0; +} + +/** + * Load all settings objects from the SD card. + * @return 0 if success or -1 if failure + */ +int32_t UAVObjLoadSettings() +{ + ObjectList *objEntry; + + // Get lock + xSemaphoreTakeRecursive(mutex, portMAX_DELAY); + + // Load all settings objects + LL_FOREACH(objList, objEntry) { + // Check if this is a settings object + if (objEntry->isSettings) { + // Load object + if (UAVObjLoad((UAVObjHandle) objEntry, 0) == + -1) { + xSemaphoreGiveRecursive(mutex); + return -1; + } + } + } + + // Done + xSemaphoreGiveRecursive(mutex); + return 0; +} + +/** + * Delete all settings objects from the SD card. + * @return 0 if success or -1 if failure + */ +int32_t UAVObjDeleteSettings() +{ + ObjectList *objEntry; + + // Get lock + xSemaphoreTakeRecursive(mutex, portMAX_DELAY); + + // Save all settings objects + LL_FOREACH(objList, objEntry) { + // Check if this is a settings object + if (objEntry->isSettings) { + // Save object + if (UAVObjDelete((UAVObjHandle) objEntry, 0) + == -1) { + xSemaphoreGiveRecursive(mutex); + return -1; + } + } + } + + // Done + xSemaphoreGiveRecursive(mutex); + return 0; +} + +/** + * Save all metaobjects to the SD card. + * @return 0 if success or -1 if failure + */ +int32_t UAVObjSaveMetaobjects() +{ + ObjectList *objEntry; + + // Get lock + xSemaphoreTakeRecursive(mutex, portMAX_DELAY); + + // Save all settings objects + LL_FOREACH(objList, objEntry) { + // Check if this is a settings object + if (objEntry->isMetaobject) { + // Save object + if (UAVObjSave((UAVObjHandle) objEntry, 0) == + -1) { + xSemaphoreGiveRecursive(mutex); + return -1; + } + } + } + + // Done + xSemaphoreGiveRecursive(mutex); + return 0; +} + +/** + * Load all metaobjects from the SD card. + * @return 0 if success or -1 if failure + */ +int32_t UAVObjLoadMetaobjects() +{ + ObjectList *objEntry; + + // Get lock + xSemaphoreTakeRecursive(mutex, portMAX_DELAY); + + // Load all settings objects + LL_FOREACH(objList, objEntry) { + // Check if this is a settings object + if (objEntry->isMetaobject) { + // Load object + if (UAVObjLoad((UAVObjHandle) objEntry, 0) == + -1) { + xSemaphoreGiveRecursive(mutex); + return -1; + } + } + } + + // Done + xSemaphoreGiveRecursive(mutex); + return 0; +} + +/** + * Delete all metaobjects from the SD card. + * @return 0 if success or -1 if failure + */ +int32_t UAVObjDeleteMetaobjects() +{ + ObjectList *objEntry; + + // Get lock + xSemaphoreTakeRecursive(mutex, portMAX_DELAY); + + // Load all settings objects + LL_FOREACH(objList, objEntry) { + // Check if this is a settings object + if (objEntry->isMetaobject) { + // Load object + if (UAVObjDelete((UAVObjHandle) objEntry, 0) + == -1) { + xSemaphoreGiveRecursive(mutex); + return -1; + } + } + } + + // Done + xSemaphoreGiveRecursive(mutex); + return 0; +} + +/** + * Set the object data + * \param[in] obj The object handle + * \param[in] dataIn The object's data structure + * \return 0 if success or -1 if failure + */ +int32_t UAVObjSetData(UAVObjHandle obj, const void *dataIn) +{ + return UAVObjSetInstanceData(obj, 0, dataIn); +} + +/** + * Get the object data + * \param[in] obj The object handle + * \param[out] dataOut The object's data structure + * \return 0 if success or -1 if failure + */ +int32_t UAVObjGetData(UAVObjHandle obj, void *dataOut) +{ + return UAVObjGetInstanceData(obj, 0, dataOut); +} + +/** + * Set the data of a specific object instance + * \param[in] obj The object handle + * \param[in] instId The object instance ID + * \param[in] dataIn The object's data structure + * \return 0 if success or -1 if failure + */ +int32_t UAVObjSetInstanceData(UAVObjHandle obj, uint16_t instId, + const void *dataIn) +{ + ObjectList *objEntry; + ObjectInstList *instEntry; + UAVObjMetadata *mdata; + + // Lock + xSemaphoreTakeRecursive(mutex, portMAX_DELAY); + + // Cast to object info + objEntry = (ObjectList *) obj; + + // Check access level + if (!objEntry->isMetaobject) { + mdata = + (UAVObjMetadata *) (objEntry->linkedObj->instances. + data); + if (mdata->access == ACCESS_READONLY) { + xSemaphoreGiveRecursive(mutex); + return -1; + } + } + // Get instance information + instEntry = getInstance(objEntry, instId); + if (instEntry == NULL) { + // Error, unlock and return + xSemaphoreGiveRecursive(mutex); + return -1; + } + // Set data + memcpy(instEntry->data, dataIn, objEntry->numBytes); + + // Fire event + sendEvent(objEntry, instId, EV_UPDATED); + + // Unlock + xSemaphoreGiveRecursive(mutex); + return 0; +} + +/** + * Get the data of a specific object instance + * \param[in] obj The object handle + * \param[in] instId The object instance ID + * \param[out] dataOut The object's data structure + * \return 0 if success or -1 if failure + */ +int32_t UAVObjGetInstanceData(UAVObjHandle obj, uint16_t instId, + void *dataOut) +{ + ObjectList *objEntry; + ObjectInstList *instEntry; + + // Lock + xSemaphoreTakeRecursive(mutex, portMAX_DELAY); + + // Cast to object info + objEntry = (ObjectList *) obj; + + // Get instance information + instEntry = getInstance(objEntry, instId); + if (instEntry == NULL) { + // Error, unlock and return + xSemaphoreGiveRecursive(mutex); + return -1; + } + // Set data + memcpy(dataOut, instEntry->data, objEntry->numBytes); + + // Unlock + xSemaphoreGiveRecursive(mutex); + return 0; +} + +/** + * Set the object metadata + * \param[in] obj The object handle + * \param[in] dataIn The object's metadata structure + * \return 0 if success or -1 if failure + */ +int32_t UAVObjSetMetadata(UAVObjHandle obj, const UAVObjMetadata * dataIn) +{ + ObjectList *objEntry; + + // Lock + xSemaphoreTakeRecursive(mutex, portMAX_DELAY); + + // Set metadata (metadata of metaobjects can not be modified) + objEntry = (ObjectList *) obj; + if (!objEntry->isMetaobject) { + UAVObjSetData((UAVObjHandle) objEntry->linkedObj, + dataIn); + } else { + return -1; + } + + // Unlock + xSemaphoreGiveRecursive(mutex); + return 0; +} + +/** + * Get the object metadata + * \param[in] obj The object handle + * \param[out] dataOut The object's metadata structure + * \return 0 if success or -1 if failure + */ +int32_t UAVObjGetMetadata(UAVObjHandle obj, UAVObjMetadata * dataOut) +{ + ObjectList *objEntry; + + // Lock + xSemaphoreTakeRecursive(mutex, portMAX_DELAY); + + // Get metadata + objEntry = (ObjectList *) obj; + if (objEntry->isMetaobject) { + memcpy(dataOut, &defMetadata, sizeof(UAVObjMetadata)); + } else { + UAVObjGetData((UAVObjHandle) objEntry->linkedObj, + dataOut); + } + + // Unlock + xSemaphoreGiveRecursive(mutex); + return 0; +} + +/** + * Check if an object is read only + * \param[in] obj The object handle + * \return + * \arg 0 if not read only + * \arg 1 if read only + * \arg -1 if unable to get meta data + */ +int8_t UAVObjReadOnly(UAVObjHandle obj) +{ + ObjectList *objEntry; + UAVObjMetadata *mdata; + + // Cast to object info + objEntry = (ObjectList *) obj; + + // Check access level + if (!objEntry->isMetaobject) { + mdata = + (UAVObjMetadata *) (objEntry->linkedObj->instances. + data); + return mdata->access == ACCESS_READONLY; + } + return -1; +} + +/** + * Connect an event queue to the object, if the queue is already connected then the event mask is only updated. + * All events matching the event mask will be pushed to the event queue. + * \param[in] obj The object handle + * \param[in] queue The event queue + * \param[in] eventMask The event mask, if EV_MASK_ALL then all events are enabled (e.g. EV_UPDATED | EV_UPDATED_MANUAL) + * \return 0 if success or -1 if failure + */ +int32_t UAVObjConnectQueue(UAVObjHandle obj, xQueueHandle queue, + int32_t eventMask) +{ + int32_t res; + xSemaphoreTakeRecursive(mutex, portMAX_DELAY); + res = connectObj(obj, queue, 0, eventMask); + xSemaphoreGiveRecursive(mutex); + return res; +} + +/** + * Disconnect an event queue from the object. + * \param[in] obj The object handle + * \param[in] queue The event queue + * \return 0 if success or -1 if failure + */ +int32_t UAVObjDisconnectQueue(UAVObjHandle obj, xQueueHandle queue) +{ + int32_t res; + xSemaphoreTakeRecursive(mutex, portMAX_DELAY); + res = disconnectObj(obj, queue, 0); + xSemaphoreGiveRecursive(mutex); + return res; +} + +/** + * Connect an event callback to the object, if the callback is already connected then the event mask is only updated. + * The supplied callback will be invoked on all events matching the event mask. + * \param[in] obj The object handle + * \param[in] cb The event callback + * \param[in] eventMask The event mask, if EV_MASK_ALL then all events are enabled (e.g. EV_UPDATED | EV_UPDATED_MANUAL) + * \return 0 if success or -1 if failure + */ +int32_t UAVObjConnectCallback(UAVObjHandle obj, UAVObjEventCallback cb, + int32_t eventMask) +{ + int32_t res; + xSemaphoreTakeRecursive(mutex, portMAX_DELAY); + res = connectObj(obj, 0, cb, eventMask); + xSemaphoreGiveRecursive(mutex); + return res; +} + +/** + * Disconnect an event callback from the object. + * \param[in] obj The object handle + * \param[in] cb The event callback + * \return 0 if success or -1 if failure + */ +int32_t UAVObjDisconnectCallback(UAVObjHandle obj, UAVObjEventCallback cb) +{ + int32_t res; + xSemaphoreTakeRecursive(mutex, portMAX_DELAY); + res = disconnectObj(obj, 0, cb); + xSemaphoreGiveRecursive(mutex); + return res; +} + +/** + * Request an update of the object's data from the GCS. The call will not wait for the response, a EV_UPDATED event + * will be generated as soon as the object is updated. + * \param[in] obj The object handle + */ +void UAVObjRequestUpdate(UAVObjHandle obj) +{ + UAVObjRequestInstanceUpdate(obj, UAVOBJ_ALL_INSTANCES); +} + +/** + * Request an update of the object's data from the GCS. The call will not wait for the response, a EV_UPDATED event + * will be generated as soon as the object is updated. + * \param[in] obj The object handle + * \param[in] instId Object instance ID to update + */ +void UAVObjRequestInstanceUpdate(UAVObjHandle obj, uint16_t instId) +{ + xSemaphoreTakeRecursive(mutex, portMAX_DELAY); + sendEvent((ObjectList *) obj, instId, EV_UPDATE_REQ); + xSemaphoreGiveRecursive(mutex); +} + +/** + * Send the object's data to the GCS (triggers a EV_UPDATED_MANUAL event on this object). + * \param[in] obj The object handle + */ +void UAVObjUpdated(UAVObjHandle obj) +{ + UAVObjInstanceUpdated(obj, UAVOBJ_ALL_INSTANCES); +} + +/** + * Send the object's data to the GCS (triggers a EV_UPDATED_MANUAL event on this object). + * \param[in] obj The object handle + * \param[in] instId The object instance ID + */ +void UAVObjInstanceUpdated(UAVObjHandle obj, uint16_t instId) +{ + xSemaphoreTakeRecursive(mutex, portMAX_DELAY); + sendEvent((ObjectList *) obj, instId, EV_UPDATED_MANUAL); + xSemaphoreGiveRecursive(mutex); +} + +/** + * Iterate through all objects in the list. + * \param iterator This function will be called once for each object, + * the object will be passed as a parameter + */ +void UAVObjIterate(void (*iterator) (UAVObjHandle obj)) +{ + ObjectList *objEntry; + + // Get lock + xSemaphoreTakeRecursive(mutex, portMAX_DELAY); + + // Iterate through the list and invoke iterator for each object + LL_FOREACH(objList, objEntry) { + (*iterator) ((UAVObjHandle) objEntry); + } + + // Release lock + xSemaphoreGiveRecursive(mutex); +} + +/** + * Send an event to all event queues registered on the object. + */ +static int32_t sendEvent(ObjectList * obj, uint16_t instId, + UAVObjEventType event) +{ + ObjectEventList *eventEntry; + UAVObjEvent msg; + + // Setup event + msg.obj = (UAVObjHandle) obj; + msg.event = event; + msg.instId = instId; + + // Go through each object and push the event message in the queue (if event is activated for the queue) + LL_FOREACH(obj->events, eventEntry) { + if (eventEntry->eventMask == 0 + || (eventEntry->eventMask & event) != 0) { + // Send to queue if a valid queue is registered + if (eventEntry->queue != 0) { + if (xQueueSend(eventEntry->queue, &msg, 0) != pdTRUE) // will not block + { + ++stats.eventErrors; + } + } + // Invoke callback (from event task) if a valid one is registered + if (eventEntry->cb != 0) { + if (EventCallbackDispatch(&msg, eventEntry->cb) != pdTRUE) // invoke callback from the event task, will not block + { + ++stats.eventErrors; + } + } + } + } + + // Done + return 0; +} + +/** + * Create a new object instance, return the instance info or NULL if failure. + */ +static ObjectInstList *createInstance(ObjectList * obj, uint16_t instId) +{ + ObjectInstList *instEntry; + int32_t n; + + // For single instance objects, only instance zero is allowed + if (obj->isSingleInstance && instId != 0) { + return NULL; + } + // Make sure that the instance ID is within limits + if (instId >= UAVOBJ_MAX_INSTANCES) { + return NULL; + } + // Check if the instance already exists + if (getInstance(obj, instId) != NULL) { + return NULL; + } + // Create any missing instances (all instance IDs must be sequential) + for (n = obj->numInstances; n < instId; ++n) { + if (createInstance(obj, n) == NULL) { + return NULL; + } + } + + if (instId == 0) { /* Instance 0 ObjectInstList allocated with ObjectList element */ + instEntry = &obj->instances; + instEntry->data = pvPortMalloc(obj->numBytes); + if (instEntry->data == NULL) + return NULL; + memset(instEntry->data, 0, obj->numBytes); + instEntry->instId = instId; + } else { + // Create the actual instance + instEntry = + (ObjectInstList *) + pvPortMalloc(sizeof(ObjectInstList)); + if (instEntry == NULL) + return NULL; + instEntry->data = pvPortMalloc(obj->numBytes); + if (instEntry->data == NULL) + return NULL; + memset(instEntry->data, 0, obj->numBytes); + instEntry->instId = instId; + LL_APPEND(obj->instances.next, instEntry); + } + ++obj->numInstances; + + // Fire event + UAVObjInstanceUpdated((UAVObjHandle) obj, instId); + + // Done + return instEntry; +} + +/** + * Get the instance information or NULL if the instance does not exist + */ +static ObjectInstList *getInstance(ObjectList * obj, uint16_t instId) +{ + ObjectInstList *instEntry; + + // Look for specified instance ID + LL_FOREACH(&(obj->instances), instEntry) { + if (instEntry->instId == instId) { + return instEntry; + } + } + // If this point is reached then instance id was not found + return NULL; +} + +/** + * Connect an event queue to the object, if the queue is already connected then the event mask is only updated. + * \param[in] obj The object handle + * \param[in] queue The event queue + * \param[in] cb The event callback + * \param[in] eventMask The event mask, if EV_MASK_ALL then all events are enabled (e.g. EV_UPDATED | EV_UPDATED_MANUAL) + * \return 0 if success or -1 if failure + */ +static int32_t connectObj(UAVObjHandle obj, xQueueHandle queue, + UAVObjEventCallback cb, int32_t eventMask) +{ + ObjectEventList *eventEntry; + ObjectList *objEntry; + + // Check that the queue is not already connected, if it is simply update event mask + objEntry = (ObjectList *) obj; + LL_FOREACH(objEntry->events, eventEntry) { + if (eventEntry->queue == queue && eventEntry->cb == cb) { + // Already connected, update event mask and return + eventEntry->eventMask = eventMask; + return 0; + } + } + + // Add queue to list + eventEntry = + (ObjectEventList *) pvPortMalloc(sizeof(ObjectEventList)); + if (eventEntry == NULL) { + return -1; + } + eventEntry->queue = queue; + eventEntry->cb = cb; + eventEntry->eventMask = eventMask; + LL_APPEND(objEntry->events, eventEntry); + + // Done + return 0; +} + +/** + * Disconnect an event queue from the object + * \param[in] obj The object handle + * \param[in] queue The event queue + * \param[in] cb The event callback + * \return 0 if success or -1 if failure + */ +static int32_t disconnectObj(UAVObjHandle obj, xQueueHandle queue, + UAVObjEventCallback cb) +{ + ObjectEventList *eventEntry; + ObjectList *objEntry; + + // Find queue and remove it + objEntry = (ObjectList *) obj; + LL_FOREACH(objEntry->events, eventEntry) { + if ((eventEntry->queue == queue + && eventEntry->cb == cb)) { + LL_DELETE(objEntry->events, eventEntry); + vPortFree(eventEntry); + return 0; + } + } + + // If this point is reached the queue was not found + return -1; +} + +#if defined(PIOS_INCLUDE_SDCARD) +/** + * Wrapper for the sprintf function + */ +static void customSPrintf(uint8_t * buffer, uint8_t * format, ...) +{ + va_list args; + va_start(args, format); + vsprintf((char *)buffer, (char *)format, args); +} + +/** + * Get an 8 character (plus extension) filename for the object. + */ +static void objectFilename(ObjectList * obj, uint8_t * filename) +{ + customSPrintf(filename, (uint8_t *) "%X.obj", obj->id); +} +#endif /* PIOS_INCLUDE_SDCARD */ From bac95dae110b2f76690f14322c18b38640a4045d Mon Sep 17 00:00:00 2001 From: Oleg Semyonov Date: Sat, 14 May 2011 23:17:08 +0300 Subject: [PATCH 029/488] OP-483: get rid of -D install switch (doesn't work on Mac) and use mkdir -p instead --- flight/AHRS/Makefile | 3 ++- flight/Bootloaders/AHRS/Makefile | 3 ++- flight/Bootloaders/BootloaderUpdater/Makefile | 3 ++- flight/Bootloaders/CopterControl/Makefile | 3 ++- flight/Bootloaders/OpenPilot/Makefile | 3 ++- flight/Bootloaders/PipXtreme/Makefile | 3 ++- flight/CopterControl/Makefile | 3 ++- flight/INS/Makefile | 3 ++- flight/OpenPilot/Makefile | 3 ++- flight/PipXtreme/Makefile | 3 ++- 10 files changed, 20 insertions(+), 10 deletions(-) diff --git a/flight/AHRS/Makefile b/flight/AHRS/Makefile index 2e4e0ff6b..d4dafd68f 100644 --- a/flight/AHRS/Makefile +++ b/flight/AHRS/Makefile @@ -403,7 +403,8 @@ docs: install: $(OUTDIR)/$(TARGET).bin ifneq ($(INSTALL_DIR),) @echo $(MSG_INSTALLING) $(call toprel, $<) - $(V1) $(INSTALL) -D $< $(INSTALL_DIR)/$(INSTALL_PFX)$(TARGET)$(INSTALL_SFX).bin + $(V1) mkdir -p $(INSTALL_DIR) + $(V1) $(INSTALL) $< $(INSTALL_DIR)/$(INSTALL_PFX)$(TARGET)$(INSTALL_SFX).bin else $(error INSTALL_DIR must be specified for $@) endif diff --git a/flight/Bootloaders/AHRS/Makefile b/flight/Bootloaders/AHRS/Makefile index 0c8b23882..ada1b99e3 100644 --- a/flight/Bootloaders/AHRS/Makefile +++ b/flight/Bootloaders/AHRS/Makefile @@ -393,7 +393,8 @@ docs: install: $(OUTDIR)/$(TARGET).bin ifneq ($(INSTALL_DIR),) @echo $(MSG_INSTALLING) $(call toprel, $<) - $(V1) $(INSTALL) -D $< $(INSTALL_DIR)/$(INSTALL_PFX)$(TARGET)$(INSTALL_SFX).bin + $(V1) mkdir -p $(INSTALL_DIR) + $(V1) $(INSTALL) $< $(INSTALL_DIR)/$(INSTALL_PFX)$(TARGET)$(INSTALL_SFX).bin else $(error INSTALL_DIR must be specified for $@) endif diff --git a/flight/Bootloaders/BootloaderUpdater/Makefile b/flight/Bootloaders/BootloaderUpdater/Makefile index 17839daac..25de8140b 100644 --- a/flight/Bootloaders/BootloaderUpdater/Makefile +++ b/flight/Bootloaders/BootloaderUpdater/Makefile @@ -414,7 +414,8 @@ docs: install: $(OUTDIR)/$(TARGET).bin ifneq ($(INSTALL_DIR),) @echo $(MSG_INSTALLING) $(call toprel, $<) - $(V1) $(INSTALL) -D $< $(INSTALL_DIR)/$(INSTALL_PFX)$(TARGET)$(INSTALL_SFX).bin + $(V1) mkdir -p $(INSTALL_DIR) + $(V1) $(INSTALL) $< $(INSTALL_DIR)/$(INSTALL_PFX)$(TARGET)$(INSTALL_SFX).bin else $(error INSTALL_DIR must be specified for $@) endif diff --git a/flight/Bootloaders/CopterControl/Makefile b/flight/Bootloaders/CopterControl/Makefile index 74b55cb17..955d948d0 100644 --- a/flight/Bootloaders/CopterControl/Makefile +++ b/flight/Bootloaders/CopterControl/Makefile @@ -451,7 +451,8 @@ docs: install: $(OUTDIR)/$(TARGET).bin ifneq ($(INSTALL_DIR),) @echo $(MSG_INSTALLING) $(call toprel, $<) - $(V1) $(INSTALL) -D $< $(INSTALL_DIR)/$(INSTALL_PFX)$(TARGET)$(INSTALL_SFX).bin + $(V1) mkdir -p $(INSTALL_DIR) + $(V1) $(INSTALL) $< $(INSTALL_DIR)/$(INSTALL_PFX)$(TARGET)$(INSTALL_SFX).bin else $(error INSTALL_DIR must be specified for $@) endif diff --git a/flight/Bootloaders/OpenPilot/Makefile b/flight/Bootloaders/OpenPilot/Makefile index 292291609..735a63003 100644 --- a/flight/Bootloaders/OpenPilot/Makefile +++ b/flight/Bootloaders/OpenPilot/Makefile @@ -454,7 +454,8 @@ docs: install: $(OUTDIR)/$(TARGET).bin ifneq ($(INSTALL_DIR),) @echo $(MSG_INSTALLING) $(call toprel, $<) - $(V1) $(INSTALL) -D $< $(INSTALL_DIR)/$(INSTALL_PFX)$(TARGET)$(INSTALL_SFX).bin + $(V1) mkdir -p $(INSTALL_DIR) + $(V1) $(INSTALL) $< $(INSTALL_DIR)/$(INSTALL_PFX)$(TARGET)$(INSTALL_SFX).bin else $(error INSTALL_DIR must be specified for $@) endif diff --git a/flight/Bootloaders/PipXtreme/Makefile b/flight/Bootloaders/PipXtreme/Makefile index 1610ad603..e1d2e8156 100644 --- a/flight/Bootloaders/PipXtreme/Makefile +++ b/flight/Bootloaders/PipXtreme/Makefile @@ -450,7 +450,8 @@ docs: install: $(OUTDIR)/$(TARGET).bin ifneq ($(INSTALL_DIR),) @echo $(MSG_INSTALLING) $(call toprel, $<) - $(V1) $(INSTALL) -D $< $(INSTALL_DIR)/$(INSTALL_PFX)$(TARGET)$(INSTALL_SFX).bin + $(V1) mkdir -p $(INSTALL_DIR) + $(V1) $(INSTALL) $< $(INSTALL_DIR)/$(INSTALL_PFX)$(TARGET)$(INSTALL_SFX).bin else $(error INSTALL_DIR must be specified for $@) endif diff --git a/flight/CopterControl/Makefile b/flight/CopterControl/Makefile index e7607af74..43e8e514a 100644 --- a/flight/CopterControl/Makefile +++ b/flight/CopterControl/Makefile @@ -595,7 +595,8 @@ docs: install: $(OUTDIR)/$(TARGET).bin ifneq ($(INSTALL_DIR),) @echo $(MSG_INSTALLING) $(call toprel, $<) - $(V1) $(INSTALL) -D $< $(INSTALL_DIR)/$(INSTALL_PFX)$(TARGET)$(INSTALL_SFX).bin + $(V1) mkdir -p $(INSTALL_DIR) + $(V1) $(INSTALL) $< $(INSTALL_DIR)/$(INSTALL_PFX)$(TARGET)$(INSTALL_SFX).bin else $(error INSTALL_DIR must be specified for $@) endif diff --git a/flight/INS/Makefile b/flight/INS/Makefile index 5ef6adb86..1b27d8cba 100644 --- a/flight/INS/Makefile +++ b/flight/INS/Makefile @@ -420,7 +420,8 @@ docs: install: $(OUTDIR)/$(TARGET).bin ifneq ($(INSTALL_DIR),) @echo $(MSG_INSTALLING) $(call toprel, $<) - $(V1) $(INSTALL) -D $< $(INSTALL_DIR)/$(INSTALL_PFX)$(TARGET)$(INSTALL_SFX).bin + $(V1) mkdir -p $(INSTALL_DIR) + $(V1) $(INSTALL) $< $(INSTALL_DIR)/$(INSTALL_PFX)$(TARGET)$(INSTALL_SFX).bin else $(error INSTALL_DIR must be specified for $@) endif diff --git a/flight/OpenPilot/Makefile b/flight/OpenPilot/Makefile index 548e6d188..290dc438e 100644 --- a/flight/OpenPilot/Makefile +++ b/flight/OpenPilot/Makefile @@ -574,7 +574,8 @@ docs: install: $(OUTDIR)/$(TARGET).bin ifneq ($(INSTALL_DIR),) @echo $(MSG_INSTALLING) $(call toprel, $<) - $(V1) $(INSTALL) -D $< $(INSTALL_DIR)/$(INSTALL_PFX)$(TARGET)$(INSTALL_SFX).bin + $(V1) mkdir -p $(INSTALL_DIR) + $(V1) $(INSTALL) $< $(INSTALL_DIR)/$(INSTALL_PFX)$(TARGET)$(INSTALL_SFX).bin else $(error INSTALL_DIR must be specified for $@) endif diff --git a/flight/PipXtreme/Makefile b/flight/PipXtreme/Makefile index 876678a32..3955d1929 100644 --- a/flight/PipXtreme/Makefile +++ b/flight/PipXtreme/Makefile @@ -443,7 +443,8 @@ docs: install: $(OUTDIR)/$(TARGET).bin ifneq ($(INSTALL_DIR),) @echo $(MSG_INSTALLING) $(call toprel, $<) - $(V1) $(INSTALL) -D $< $(INSTALL_DIR)/$(INSTALL_PFX)$(TARGET)$(INSTALL_SFX).bin + $(V1) mkdir -p $(INSTALL_DIR) + $(V1) $(INSTALL) $< $(INSTALL_DIR)/$(INSTALL_PFX)$(TARGET)$(INSTALL_SFX).bin else $(error INSTALL_DIR must be specified for $@) endif From 67f084a9e1add98cfb6aed77b6b9ba9e819ac3aa Mon Sep 17 00:00:00 2001 From: dankers Date: Sun, 15 May 2011 06:19:32 +1000 Subject: [PATCH 030/488] Amazing how badly it flies with just missing one full stop --- shared/uavobjectdefinition/stabilizationsettings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shared/uavobjectdefinition/stabilizationsettings.xml b/shared/uavobjectdefinition/stabilizationsettings.xml index 177d097cf..b11c0f1dc 100644 --- a/shared/uavobjectdefinition/stabilizationsettings.xml +++ b/shared/uavobjectdefinition/stabilizationsettings.xml @@ -9,7 +9,7 @@ - + From d312e876c46df25b85f45c887141ea38b704b4d4 Mon Sep 17 00:00:00 2001 From: James Cotton Date: Sat, 14 May 2011 16:11:30 -0500 Subject: [PATCH 031/488] OP-216: Some small bugs where things were stored --- flight/PiOS/Common/pios_flashfs_objlist.c | 29 +++++++++++++---------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/flight/PiOS/Common/pios_flashfs_objlist.c b/flight/PiOS/Common/pios_flashfs_objlist.c index 4f39125db..f574169a9 100644 --- a/flight/PiOS/Common/pios_flashfs_objlist.c +++ b/flight/PiOS/Common/pios_flashfs_objlist.c @@ -77,21 +77,23 @@ int32_t PIOS_FLASHFS_Init() if(PIOS_FLAHFS_CleabObjectTableHeader() < 0) return -1; } - - bool found = true; + int32_t addr = OBJECT_TABLE_START; struct objectHeader header; numObjects = 0; // Loop through header area while objects detect to count how many saved - while(found && addr < OBJECT_TABLE_END) { + while(addr < OBJECT_TABLE_END) { // Read the instance data if (PIOS_Flash_W25X_ReadData(addr, (uint8_t *)&header, sizeof(header)) != 0) return -1; + + // Counting number of valid headers if(header.objMagic != OBJ_MAGIC) - found = false; - else - numObjects++; + break; + + numObjects++; + addr += sizeof(header); } return 0; @@ -121,22 +123,22 @@ static int32_t PIOS_FLAHFS_CleabObjectTableHeader() */ static int32_t PIOS_FLASHFS_GetObjAddress(uint32_t objId, uint16_t instId) { - bool found = true; int32_t addr = OBJECT_TABLE_START; struct objectHeader header; // Loop through header area while objects detect to count how many saved - while(found && addr < OBJECT_TABLE_END) { + while(addr < OBJECT_TABLE_END) { // Read the instance data if (PIOS_Flash_W25X_ReadData(addr, (uint8_t *) &header, sizeof(header)) != 0) return -1; if(header.objMagic != OBJ_MAGIC) - found = false; + break; // stop searching once hit first non-object header else if (header.objId == objId && header.instId == instId) break; + addr += sizeof(header); } - if (found) + if (header.objId == objId && header.instId == instId) return header.address; return -1; @@ -154,7 +156,6 @@ static int32_t PIOS_FLASHFS_GetObjAddress(uint32_t objId, uint16_t instId) */ int32_t PIOS_FLASHFS_GetNewAddress(uint32_t objId, uint16_t instId) { - int32_t addr = OBJECT_TABLE_START; struct objectHeader header; if(numObjects < 0) @@ -164,8 +165,10 @@ int32_t PIOS_FLASHFS_GetNewAddress(uint32_t objId, uint16_t instId) header.objMagic = OBJ_MAGIC; header.objId = objId; header.instId = instId; - header.address = SECTOR_SIZE * numObjects; + header.address = OBJECT_TABLE_END + SECTOR_SIZE * numObjects; + int32_t addr = OBJECT_TABLE_START + sizeof(header) * numObjects; + // No room for this header in object table if((addr + sizeof(header)) > OBJECT_TABLE_END) return -2; @@ -245,7 +248,7 @@ int32_t PIOS_FLASHFS_ObjLoad(UAVObjHandle obj, uint16_t instId, uint8_t * data) // Object currently not saved if(addr < 0) return -1; - + struct fileHeader header; // Load header From 0005729056e0980a859a990455f4823960851449 Mon Sep 17 00:00:00 2001 From: Oleg Semyonov Date: Sun, 15 May 2011 04:14:17 +0300 Subject: [PATCH 032/488] OP-500: fix PyMite dependencies on autogenerated files This is done by separating PyMite-dependent sources and making them dependent on autogenerated python code. This was tested with make -j on Windows and worked fine. It failed with errors otherwise: In file included from ../Libraries/PyMite/vm/class.c:28: ../Libraries/PyMite/vm/pm.h:198: fatal error: pmfeatures.h: No such file or directory --- flight/OpenPilot/Makefile | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/flight/OpenPilot/Makefile b/flight/OpenPilot/Makefile index 8bb3ed27c..677c3fbf6 100644 --- a/flight/OpenPilot/Makefile +++ b/flight/OpenPilot/Makefile @@ -52,14 +52,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 @@ -124,17 +123,19 @@ 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}) +MODNAMES = $(notdir ${MODULES} ${PYMODULES}) 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}} @@ -317,7 +318,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. @@ -481,7 +482,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 @@ -500,6 +501,8 @@ 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 +$(PYSRC): gencode + # Generate code for module initialization ${OUTDIR}/InitMods.c: Makefile @echo $(MSG_MODINIT) $(call toprel, $@) From feb9c027804ff708689fd4244c97976dbd33af12 Mon Sep 17 00:00:00 2001 From: James Cotton Date: Sun, 15 May 2011 00:18:15 -0500 Subject: [PATCH 033/488] OP-216: Small typo in flashfs code (thanks Zippe) --- flight/PiOS/Common/pios_flashfs_objlist.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flight/PiOS/Common/pios_flashfs_objlist.c b/flight/PiOS/Common/pios_flashfs_objlist.c index f574169a9..5c8248f54 100644 --- a/flight/PiOS/Common/pios_flashfs_objlist.c +++ b/flight/PiOS/Common/pios_flashfs_objlist.c @@ -33,7 +33,7 @@ #include "uavobjectmanager.h" // Private functions -static int32_t PIOS_FLAHFS_CleabObjectTableHeader(); +static int32_t PIOS_FLASHFS_CleabObjectTableHeader(); static int32_t PIOS_FLASHFS_GetObjAddress(uint32_t objId, uint16_t instId); static int32_t PIOS_FLASHFS_GetNewAddress(uint32_t objId, uint16_t instId); @@ -74,7 +74,7 @@ int32_t PIOS_FLASHFS_Init() if (PIOS_Flash_W25X_ReadData(0, (uint8_t *)&object_table_magic, sizeof(object_table_magic)) != 0) return -1; if(object_table_magic != OBJECT_TABLE_MAGIC) { - if(PIOS_FLAHFS_CleabObjectTableHeader() < 0) + if(PIOS_FLASHFS_CleabObjectTableHeader() < 0) return -1; } @@ -103,7 +103,7 @@ int32_t PIOS_FLASHFS_Init() * @brief Erase the headers for all objects in the flash chip * @return 0 if successful, -1 if not */ -static int32_t PIOS_FLAHFS_CleabObjectTableHeader() +static int32_t PIOS_FLASHFS_CleabObjectTableHeader() { if(PIOS_Flash_W25X_EraseSector(OBJECT_TABLE_START) != 0) return -1; From b33d093a7ae6c2d5bc570534859335253d6cb353 Mon Sep 17 00:00:00 2001 From: Oleg Semyonov Date: Sun, 15 May 2011 14:54:24 +0300 Subject: [PATCH 034/488] OP-483: update Windows build system, provide install replacement Since msysGit lacks the install command, simple cp -f replacement is provided. Don't forget to copy it into the msysGit bin subdirectory. Introduced CLEAN_BUILD=NO make option to test packaging w/o cleaning. Recommended for test builds only, not for production run. make -j works great after PyMite dependency fix by commit 0005729056e0980a859a990455f4823960851449 So comment is updated as well. --- make/winx86/README.txt | 7 ++++--- make/winx86/bin/install | 15 +++++++++++++++ make/winx86/bin/make | 4 +++- make/winx86/cmd/make.sh | 8 ++++++++ make/winx86/cmd/sh.cmd | 3 ++- release/Makefile | 12 ++++++------ 6 files changed, 38 insertions(+), 11 deletions(-) create mode 100644 make/winx86/bin/install diff --git a/make/winx86/README.txt b/make/winx86/README.txt index 6024dd118..fb383fa17 100644 --- a/make/winx86/README.txt +++ b/make/winx86/README.txt @@ -37,17 +37,18 @@ locations (but any other locations are fine as well): - QtSDK in C:\Qt\2010.05 - msysGit in %ProgramFiles%\Git - Unicode NSIS in %ProgramFiles%\NSIS\Unicode + - OpenOCD in C:\OpenOCD\0.4.0\bin Also it is assumed that you have the C:\Program Files\Git\cmd\ directory in the PATH. Usually this is the case for msysGit installation if you have chosen the 2nd option: put only git and gitk in the PATH (it is recommended option). -Now you need to copy two files to your msysGit installation folders. +Now you need to copy few files to your msysGit installation folders. Assuming that you installed the msysGit into C:\Program Files\Git\, you have to copy: - make\winx86\bin\make -> C:\Program Files\Git\bin\ - make\winx86\cmd\sh.cmd -> C:\Program Files\Git\cmd\ + make\winx86\bin\* -> C:\Program Files\Git\bin\ + make\winx86\cmd\* -> C:\Program Files\Git\cmd\ If you have msysGit installed into another directory, you need to update paths accordingly. Also if you have tools installed into different directories and diff --git a/make/winx86/bin/install b/make/winx86/bin/install new file mode 100644 index 000000000..fae28bf23 --- /dev/null +++ b/make/winx86/bin/install @@ -0,0 +1,15 @@ +#!/bin/sh +# +# simple install command replacement for Windows +# +# This file should be put into C:\Program Files\Git\bin\ subdirectory +# (or similar, depeding on where the msysGit package was installed) +# to provide a make command to unix-like build environment on Windows. +# +# See also: +# README.txt +# http://wiki.openpilot.org/display/Doc/GCS+Development+on+Windows +# http://wiki.openpilot.org/display/Doc/Firmware+Development+on+Windows +# + +cp -f $* diff --git a/make/winx86/bin/make b/make/winx86/bin/make index 4d475bff6..d4bf11224 100644 --- a/make/winx86/bin/make +++ b/make/winx86/bin/make @@ -1,6 +1,8 @@ #!/bin/sh # -# This file is to be put into C:\Program Files\Git\bin\ subdirectory +# make command replacement for Windows +# +# This file should be put into C:\Program Files\Git\bin\ subdirectory # (or similar, depeding on where the msysGit package was installed) # to provide a make command to unix-like build environment on Windows. # diff --git a/make/winx86/cmd/make.sh b/make/winx86/cmd/make.sh index 70ff64114..a2ae771d5 100644 --- a/make/winx86/cmd/make.sh +++ b/make/winx86/cmd/make.sh @@ -1 +1,9 @@ +# +# make command replacement to run from command prompt under bash +# +# This file should be put into C:\Program Files\Git\cmd\ subdirectory +# (or similar, depeding on where the msysGit package was installed) +# to provide a shell prompt in the unix-like build environment on Windows. +# + exec /bin/make $* diff --git a/make/winx86/cmd/sh.cmd b/make/winx86/cmd/sh.cmd index b3b276fb2..d82c7ec99 100644 --- a/make/winx86/cmd/sh.cmd +++ b/make/winx86/cmd/sh.cmd @@ -1,6 +1,6 @@ @echo off rem -rem This file is to be put into C:\Program Files\Git\cmd\ subdirectory +rem This file should be put into C:\Program Files\Git\cmd\ subdirectory rem (or similar, depeding on where the msysGit package was installed) rem to provide a shell prompt in the unix-like build environment on Windows. rem @@ -56,6 +56,7 @@ call :which QTSDK "C:\Qt\2010.05\qt\bin" qmake.exe call :which CODESOURCERY "C:\CodeSourcery\bin" cs-make.exe call :which PYTHON "C:\Python27" python.exe call :which UNSIS "%ProgramFiles%\NSIS\Unicode" makensis.exe +call :which OPENOCDBIN "C:\OpenOCD\0.4.0\bin" openocd.exe if "%NOT_FOUND%" == "" goto set_path diff --git a/release/Makefile b/release/Makefile index a1a45de3b..bf9817b25 100644 --- a/release/Makefile +++ b/release/Makefile @@ -4,12 +4,8 @@ # Tried the best to support parallel (-j) builds. But since this Makefile # uses other Makefiles to build few targets which in turn have similar # dependencies on uavobjects and other generated files, it is difficult -# to support parallel builds perfectly. -# -# Looks like it works for -j8, but fails for -j (unlimited jobs). -# So probably not a bad idea is to build release in single thread. -# -#.NOTPARALLEL: +# to support parallel builds perfectly. But at least it was tested with +# -j (unlimited job number) on Windows and Linux. # Locate the root of the tree WHEREAMI := $(dir $(lastword $(MAKEFILE_LIST))) @@ -41,9 +37,11 @@ help: @echo @echo " [Release build and packaging]" @echo " release - Build and package the OpenPilot release" + @echo " release_flight - Build and package the OpenPilot flight firmware" @echo @echo " Notes:" @echo " - the build directory will be removed first on every run" + @echo " unless CLEAN_BUILD=NO is defined (recommended for testing only)" @echo " - release packages will be placed in $(RELEASE_DIR)" @echo @@ -52,7 +50,9 @@ uavobjects: all_clean $(V1) $(MAKE) -C $(ROOT_DIR) $@ all_clean: +ifneq ($(CLEAN_BUILD), NO) $(V1) $(MAKE) -C $(ROOT_DIR) $@ +endif # Install template: # $1 = target From 2c1caa957ce5abd6eae6c852b667e0346af388d3 Mon Sep 17 00:00:00 2001 From: dankers Date: Sun, 15 May 2011 22:13:21 +1000 Subject: [PATCH 035/488] Add some more sounds to the complete sound set --- .../openpilotgcs/sounds/Complete sound set.txt | 9 +++++---- .../share/openpilotgcs/sounds/default/armed.wav | Bin 0 -> 73290 bytes .../sounds/default/coptercontrol.wav | Bin 0 -> 84106 bytes .../openpilotgcs/sounds/default/critical.wav | Bin 0 -> 69642 bytes .../openpilotgcs/sounds/default/disarmed.wav | Bin 0 -> 76106 bytes .../share/openpilotgcs/sounds/default/magic.wav | Bin 0 -> 61834 bytes .../share/openpilotgcs/sounds/default/moved.wav | Bin 0 -> 81292 bytes .../src/plugins/coreplugin/OpenPilotGCS.ini | 2 +- 8 files changed, 6 insertions(+), 5 deletions(-) create mode 100644 ground/openpilotgcs/share/openpilotgcs/sounds/default/armed.wav create mode 100644 ground/openpilotgcs/share/openpilotgcs/sounds/default/coptercontrol.wav create mode 100644 ground/openpilotgcs/share/openpilotgcs/sounds/default/critical.wav create mode 100644 ground/openpilotgcs/share/openpilotgcs/sounds/default/disarmed.wav create mode 100644 ground/openpilotgcs/share/openpilotgcs/sounds/default/magic.wav create mode 100644 ground/openpilotgcs/share/openpilotgcs/sounds/default/moved.wav diff --git a/ground/openpilotgcs/share/openpilotgcs/sounds/Complete sound set.txt b/ground/openpilotgcs/share/openpilotgcs/sounds/Complete sound set.txt index 14bea3094..e539e6d24 100644 --- a/ground/openpilotgcs/share/openpilotgcs/sounds/Complete sound set.txt +++ b/ground/openpilotgcs/share/openpilotgcs/sounds/Complete sound set.txt @@ -21,6 +21,7 @@ alert altitude amps aquired +armed autonomous flight battery camera @@ -32,8 +33,10 @@ complete connected connection control +coptercontrol critical disabled +disarmed disconnected feet figure eight @@ -58,11 +61,13 @@ lost low altitude low battery low gps quality +magic manual flight maxium meters minimum mode +moved MPH navigation OpenPilot @@ -122,8 +127,4 @@ hundread thousand -Upto: OpenPilot -critical -battery -point diff --git a/ground/openpilotgcs/share/openpilotgcs/sounds/default/armed.wav b/ground/openpilotgcs/share/openpilotgcs/sounds/default/armed.wav new file mode 100644 index 0000000000000000000000000000000000000000..22678cf67c93e10e8b9a0cebdeab28f95d6bca5d GIT binary patch literal 73290 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

I-IDSp$zkH0*sMUprdRN)+wE7& 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 QKd*@)fe1v3`0Dll0r5CvU;qFB literal 0 HcmV?d00001 diff --git a/ground/openpilotgcs/share/openpilotgcs/sounds/default/coptercontrol.wav b/ground/openpilotgcs/share/openpilotgcs/sounds/default/coptercontrol.wav new file mode 100644 index 0000000000000000000000000000000000000000..f41ce70b2ebbd472f953353bb0df43f052cd77c3 GIT binary patch literal 84106 zcmW(-1y~ea6y2JBGqcIkAfX~EASM=w0b(JDs3;x!F-2a3Bm9;3Zhyi|Nvyj2t_ekw{8C5j3~6%IyO zr4W>?QdAn1dZo3}7R?pSMOhz@Zg{M(^inoMYm3%V8H5(13|4kic2V}iV=rZ-vX648 za)5HUGEO;BIZ`=ZIa)amElHV-HbXf_Ia4`bnWvnmT%uf{T&Y~9T&-NIT&LWu+^fu2 z7AOxYk13BR4=azOol;&@UQ*stUQ<3+K2$zZzEa-BabNjH`Aqp4twdR>EK*i0%as*M zR;5x^C}~xxlBo15Q6;FXR63Q5%2riZ<)CuKnVYJC%1hM}t&7TE)j`!!)k)PAt%E95 z)f>+PR0CCmR3lZfI7X|6tKwB7RFhPbRjH~B)eN*u)dE$HYN=|fYME*wp4Z{nq}r<5 zuiA~{glZq!Q5>gL1*)s6W2#%K3#!X_zOH(pdZK!vdaQb_dZv1+`k?xz`mXw=daf#0 z{ZN(RVARzrUd^cmwWK!Tuv1&8?bWr_R(P~hd*IAl-BR5~-B#T~9e~%qIP+BdsoSah zsr#x!)lupJ>i+6c>XCRIqmEP$Q%_b;P-m&9s58`Q>iOzy^>p=Ob&7h4I!C=iy->YY zy-B@Gy-!`BKB(TK-l^XG@9~uSg8H`ljQXDXk@}AMhx(=Zz51E@ES|sN`Iq{qx>#MP zHfj_aUQ?>3HI;a;2G^)HoJOZHYHT$Ijh)5{=T;ggGzX2F##7T-(?Zi&(^cc5>7i+@ z>7ohI_-KOhX2*{WHm*`hg)c1d$y^IUUB^Ir2(b4&9GuWxCtX|8LYXkMcg zYkq53>a(T>XN71q^+Thf)RauwQ!bPhbZF z7PXvOO>IWoNv)?&QhC&2Y73Q5t)tFSOQ>tqcIpyZ0d*he|4|32ThvAB4ccp}hWbhU zqAIDc)F-NxdPY5_)bwYHqm{HwD`*u>)84d1ThQMrhPI*&bY0qw?m)Moy=X_;pYBS# z&_T2(UiYV)(0%CEbO0Sghtl2uJ$Itx=rDR5S}Z+_o4|g( zokDM?SI`^jne;w-34H?BZKZe78}Lp(ULT;3;`JH&5`BbTO&_C|(Pz<~(Pi{g9PjBj z^e_4~{gA#$SK!rex*E;MRM1XLEvA}wXJm$BOpKE8V(K#unL12g#)*kQi(&kjrpz$L zm+8ukVCFF)I3LKQ;CwQ!iDSZKucpcvAfyR>=X7TyN5l-e#a-z*dy!%b{%`3y~JL{w|=t4>?igWTZvZA z-p1$m*(%nF^W>bkrX0nYIUmjz=f7ErQ*f4ezaH0u3*y?~)4^Oz&KmDIAs5E= z;3Bx8I3K~qb3?dRTwAodToyNgTa5RHaw*(=E|(j_C2&i*1>8t(CbyE?fnyK1m0Qo9 z<_fqiTsn7vyT&cy^0_121MUP@g!hi&`xV?xygI{u!8`9bhX2gT{A;ch-#Wux%-3*c-i5E=?0AW{=kbYrChy0u;^X-Yywips$EV}nWPTT}-^g#^7xQy) zwg~5G{1bi~zmwm~KjriJDt;+{nZLr%DXQ90? zUa%EB1ZTlPs4KV#ql7s^oRBGu5he;tg~53C7na~IIl?kwt#D2FgI9Zm)xsuxK3zx< za)r~ve&MCCU3e@M2xo=6!hGSVkR>b@<_X(`i^6l^8Ls#u{1iS4#lkAw;j&OD6bUNw zRp>>OqyZ@w1X3Z~5}x4RO5#B*Ne9xHbRlk}9dRX2L`xnCCeoU8ByEX3X-Sev8c8A( z|6S3abRuCSlO&KhGM0?QXYs_J^vBiFWGL>`kqpLlGs$wYl+4HX5=n2;nZ)8+TQUXD zUGN({NILG^59iH@BXRiGgUO^9`p}ZJA>QP&P$ASuKlQk;4fRe@Be;{-f`;&T zO_86%MzrO^1dM*IkczRl5&8%nh0!?HVXl_o)mouks1nKqTYOKC@7xgH2`4eHmxMGS z9oKsad-+m+K4c<@*YX^%=buAvXFxKCaJ@JUbmjcO_F}AdoW7m$is`(0v~`-zW*cwYJGKLCyICtOKbzhd47%Ua0TRd0XSz^C zU97yRcv8dEIMhVfv{QUnM5#Wg7gKMU-h5+mlk`F!r+aL0G<`AcvAAY&#G>4!FpV+V z8Z`zBU4X2Wc91<>0aHeAqjTxrbRqQvUe6Ne0jxJ)#BURNi0$RA+9tYEU8R1J@tN_8 zK`{8}7wMdJEwugQC*n<#ChX??SQXQQ3ec=khXcp-Qa@LJQZLbzYNk@T^l@ewJD2M& zq>yH!gA^zAkXlQr(l04Ta*!s8ZlXJh;P0@$>_TQSeU7T4B)ToFpj%? zKG{Cjex-dY`*b^Z+ebF1tvxJ*O#=<#`Z9SNISJdMKF>ZR)b znlQ~es*=9NR&d+-iNYe%Q93Ix*GB6`=qbZ*!%RbSLxny>-$LJ0zgpK+`$p<7Jr`xM z3F#(m;9K%zxk=nK*v;LX3O0}thCs4U3kyk>_*85yc}Rc6cj6aug?OLDkh4NLtlC*_ zCp(xqL>B{1BvF~bIbKvS)t~yLT3hwFN>K1M7S%th`XVZrR9#RRSna0xqBlPq1bM*ami{)x5 zU9K&M$}#d=*-aauwbOFiBH35_RQo~KS6_uI&*>a=e!3EEiZ)07DTPT&u`^jNY!!%b zl5fUSToC()31&tyf8fLQtckn8t%gUDh4bW_SW6zLovXWpo=nlF8vIN(#%ad>M$S0O z&`$qRH(WnR@2op7x0GdVJvmnTPn;k%l?p|pB*-VEE0V9Q*M8D|!gZ7N3-qPBRl0+^ zADH>6dMkZn-B`JU6eRkPLBcTDfHLkYTbE5{#sWEfLqBT6w_j%8uoF2Cel_1v*hKn> zUScUMnMyn?P7|M#2V^0v-D*K04ChDu^Heq*%~h~pSr_g#7sY?!_Va7;JvVW_cvtKw zImy*>p!SP=SWc6d$dhFs`HgfzijvgQ3P^jVFqMyh?@EIw)$={!59h&4P2*p}m-Z0a z5l;M1be6oNcG7t9F8M_Uiao^)^k^4Rkto59-vLarpY6sS=k{?)+&wOX^WsjjM>qxV zAZ#W%(qqXe9mPE~Qm%ARS|f$XmfAvjwfs`*BhDbb#rNWD$kZ`$iC8S=OZ6qSSVz1j zt`~j9XJVyjmO`ab(q?Iud_e9iyUQwFg6_TiM?5RmmLj3EtuUH6d9&1AIxTwRJ29}` z=g3&GnK*>J63)Qm7)cOW1ds7axC85};)@td+K;MDdo%9PvkUZUrX$;)oxr-WrA#}n zk#K)$tg277m!h5OxT>2{sp_anX0%v|rosxbyS9z4i%zM})SuJOG;}q#F|^Y8 zX??ZN{!)LSHq(nCQ?t2t5{{Utgn**9tNR4VJVq`p6WL!}KYj-Hgzk#i=_Esm*4i_2 z4J4q6D9MZEeX_IcEeFZ_<+|FhVhR_5$RmMS!m61l>ZHb#I!YhsHj_{?0e*0cFAbgnbv=1j~^|AAOemMWES}nxm>7$|2P;<$Os< z@rU9zrN_&9RJzw}QuU#hu^otyJk+qp@}Bi@+f@5)4!0dcYAtpAV4q>v({_;cTGM%X zD&LqX(M(sl*YH)7DqfZsmyfB4tIV!StBz6CWBzdQ!fmNY-^3!%GSix}NwnT<)z&(| z=CieE6=6|n_@Ub>!8;dY11InHDir2)VN-+(2v!x)&JHVm+lI$*;FQlHq-AY6Fr9-r&+IdP`_5s z)ZEu7=;2HiyMv!8{1Dg6b~*(tW1c=t?`BwTO-2xbOb}O{_H|7l)s4xrZfMZ zk02h>e!02!hTKygD7_=OKz_b(UXk2%#5o>pIz3X;Op~SAN~vfy^OUs*T5m(fN}YA{ z^#O*9h9ic0Mzv9GaM9=L&l){IoH&N;=3fC1u7FSO#5SkhHT%@9 zG$W|)bbCh4%%m^VLs%v2&)9LXBujSD&DB}!thDptp%mJO+A8fF`5alt^<{bh%{->J z&=q!8-H*@u{Sb9Hm_WTl*Z|bguM8yeD=gllVBkgsaEK z)0?Py)P8C&{S)I@sy3+BDViz^)gJh68@8O8$@8l+i-<9&khGYQOjc$#+%_VBICQH>;c~!Bf zW<%Bbiol9{6(cL}RUcD+SI<&^P<>WcQFmBc@DYn-h5n(gG47I&IWN;D>rI9;`b#=q zH%Pl&PR97(XlF|O$trS5dN2QyUP+=ZKtDuRu6-`QAUPxz-ff)ph-ifG>?7KWYDYDt zhtglD@9I9PC&+HrQT|ffuos2jQgf}3TrIwm67`%Z*Hq7Rz+$I)wS~KJk?s`yiiM~Z zzVR2hY3wYv8E}Xl7sITjLg+x|7;B5j;InX9O4GiVPf63Id^tq7#*k>bZZXWFmhq;p zt#-QXCfAq$di0^^>>y)}7IxF27-3Y@HV`pG(#-uaO*XpGW z(jK{^%!rNnK5PV&&Fo+|aV^;Y7+;Qq9kJ$C^X&yeyf1CkX6bD8_km*iYM;tU+9cf@ zod;$qTlWq~;;`6HYy}iei&uq8M6Qdt`^+EOikZUxmbewSD-sLG{P|TV7q2dA_uKX- z^<(Y#nD4INZ+)}?6}Qyfu$ZJ zhJG%ng*aZpZ{|E%Z)OyouL)G;*JM_Gsr0MLtK3sD6MnBvWxpz+W~w3=`S88!t#ku! z1Akh$E3VTP>N}evEQVObTJ$yduxw@3&&tzMu&8g0(pPG0$zR1eqEhN8t{0-YJ?vg~ z7?;5NAbZeF7%p@s=fyQz2g6d6v$@dx!Ti|V)y$YrS?J79%^~JxrkMsiT~E0{9;)@y z?v)3~4sx-0fD{TB$N=ex*505n3DB4!_{|Sihiw+yIoP+ex3jOb3$lM@zt_R+*xzx! z<21+J4jP9u_C@x3hk*`V9FpyG?Y!*D>_QxtIl&-CmbRAT%mLY<^*#y3)yti5MU_OFV`pN zhH69Q2GUh=nUp8r*S^;+HMB%rkZ!2b4>l5u7Uo$N#3IvFXc}O_nKR4<=B?)W7VC@; zb++;$v98oY&X?>ZFVUO)%>~p!j--xwS;~@Yd_KEhi_L@9L-X?t(`-)LO@|F1Y;qnC8Q+AaDv4$3N~c0zLw5f`vKm`Q9MpIih@)} zijg+SJ+$q0y#BfFiuSga(+|MRoYQwR>@_ShI2xwt4rsRk3&-kiYnyAAYq!b6r3vCh zvK!ebYqE<>6V=jQiIGimhU}%a21-0=*ktrHEkkQzdTM-W>}&jL2r-T{dK;hXC+ThU zW!m%d5cFX`(TgTAR%|HN6R(PI#5~DQo-V)9X6eHWrwt#lHvKKGnZ6p=8YdYkV^8BR z;|}9P!$SQ6ou}3ymq>S{2U46|NBc$FUq^J)f%pgN$LY7}Kj?q!gACh@78cnSO)VN& z>@y`9SLltpD*24`P`ph(A}iKa_{m2KuY|Q&jk?lBX}(-4f7Z6rIpe#Xj0a6mEUL`0 zmiw%JSrO|?miNpf&CSgo7M{j>hDnIxpCWdBAP<&rORFFo!-2>n#D3B|#AuhL>GB%w zHGPS(z@oAFrDad+A66@^oUF^NORSq&H?lru?PLAks-Xzj42cFuV-w>TW1R7qL1nyPJY{-rdT6R+and5tY;B%zUTQhSYP(f$tK*hmEyFB# znm<@{v$$-U4pex-*w5I@*w8e`^vJZsG|_a-xZU7nm~W_r)xDwD8+;6*hD<|@VV%L+ zsDNxdHwIvJZksYp%S{(7yv^Ipoh`kr&RQ}qw)D#0qoQfIl);;Jdz7;9*$f2R9_ zxGGR9YwG}K)R*nF`?cTXG4fdL4{eRMo^G;!z2U1d5t$(?;}&C}(bABizY3IEpj)Ji z*6VejB+S!P+@w0vTD*m9|5 zcgu#BBawgDXo@nvF)TKC7!V`_9qf}+fDo@~&)Xg?bF=|cqEmAFZT0Aqg zhh_V2erv8}_AyU2f3oOq>Sl~HjMR73y2=B@Y@r(Y?D=dG^B-N0{)9cACX|Wd>1gbH ztfcqTudt_agPFxHpA$^9BbYm8G*=h@B&oSQkna!PV~QmfkWonwgO5{G>IW_G`9zFDud>SSrQOgA?%vlgpN zVW!Q-4u+Nb<+|P4mvXQiDRa^`5>C1Z0{?~m!E|8)=)Kej>~#s)H?yLCVu$aG`nsw_ z6`}H0HC4`4O3LAixSB`RE2_M!URLH-hE}Fmwy%t;{8HLU#qrP zU$1dfEKn3GIPAT)!EWOs&3vF{XJ!Et!X^VNP3C7IU+Y7>#n)mdX@X=eUz6KuUuxIt zeDz8CK*M-Ld*eN0plQ5CXS2K28|xdkJM9P5l3Z5RX<2W01HI=puRV=^H)_-9yqB-n zU@y{$Zq&9>mRG#z;s)F6U99t;>o%82=cP`|oz^6_}g|5d21P-4!%3@6SF|$Ya zh`%-LLG*)&Um^Pg`?YD^w|RH(qK5C?7rD9D9aXo|?P@)t!E4X+P25{HZ5I_ZFXUF=j#1V_ z?hk(-7d-08=%%Ch#SI+f6!6+%(vKGhJLM{;yJdK#e@=Uwb~bHVT8FecX%=a^H0!iB zX`j-*PMtV6Xj|gtEAPLkr`KK)T$I>4IXLx9>Z8;rspnD`q&7?4lVX)JBYF3f+{yLF zEsuTP>AOQp*}VsAkJjCEZ;5kWan`C?`)3@TK79J8>9=Q&$hw|au>8iBS^Ezj3p$s1 zb?v?U*YAt0NpEMj=0iI6>hd}0K__*)A8l&;J?vE8y-~Q-KWTsz!G^Ev>D?_fD5>+Z zz-a;g9oqS3w7AviYW>{0H(kA4`?+3qedRjIb&`w5#m?oq>twfZ52jgZ+hu{4J*R}P z?|(dM)Zpq^m*MFn7mu7i%seox^WwVO6{dT6TR+bIJ>%=tX&I-}d!?(>_ot0Z>y;Lm z);%pX&5-^vW5TS+T+VK9g*DZcsQ8>v~)-N6JIK6TVvp;F~+rF)nQ1@X&bJKaPWWR0xEj!fh_`1`I z0Ixtfa8p2Tr@W5k?XCPh{Mxo<+gP+3(_($o&yAuyj=SHg+p~6}>$}?X>)rN9XmX_` z)$T&Tq;BD%fBO86Y#S3bym$PTQM*R}8r2{!HafjqOv5Zjd{Vx1LSCntc~i9+W73_{ zucf7=bxQL}b4aV3=99K8?R9$Kj1%*kZ?C=>@Sdf<*9!}~HRjb6A$3XWL9}J5gHy%S zZ7HECKayJ~XC^hBaA?Gb;M@jDe9JG2TYHag+*Y|#y>M5~%gk@H8qaz->s;pKoIwi? zEo+fyf5-eY?0YwdkeNjyQWvXe!0J|?dp8RiE=$! zZ@pJp^9F5)cUaKbr~CL&v0rjj#*p(P4~^=Wcyjc*csf=NY1U+|cE$VZBUa0tv${?% z%qUHtk*-ZYnl>b@V_L&B_cXt>DQOAmIn$DJc5nE0X4>l)3bRXkSBr$iqzx%!Q+K59 zPhFWBmui_>kP@3>o3buBbxP)>_|a|qck&r%>Qwmr;f>Ru_9SiSyi7a4d(OZtb>{oo z#;kAIOXjJTPG9q7bIfk9f?CHKoa=GZ>bc_k#mW%g*_dYe#?sTg!t~stzwOT2yS(Fk zxu7q>gF?53mWM14;d+(!_UN~_fBgZ)5&Oa$hLElYI{oKA%P+sJ*xI4R?MA=r-F5P` zU2TpsU$y3Iy{YrmV`8(et$qF8cHGld=(Qxma`1y;>bU)Jnvp57)BC>aFudMge!}}T zCk(58%^@>y{Rj7Mpf0%_U>g4Ap`kyZ7Jn`<1Q@YorM;AAKfi zUdn*f<*DmZGgJGeDpD7xIHzn&emun^>C5;ZBie>E^Jp%t{QUX)(!)=-R<812{3`EZ zcJHiXv+ZZc%)Xx)p4~GqYZ1L_*QSX4$46&hJaI4n&Dh_4l%3^%R`InK)c#ZNeZvUv z9G|H6uev3K`$tv|IvedcXmsS4h(mo3_BqpMeV_dB@4cLZ3p=lBZ{22W^H}d#kG<}@ z>-=%n);eYXz^=bTQ>Rt6ee0j_p5Jo4f9s&%J=^zDMpg|+w`VW12WTAzBqpM#nP%0YrmFh z{a=o0I%P{r1gu?d>e$rUsYg=kq-;)hO%9$CKRIh$<4RTN|$( zx9rb?gxn_Cp;_B9&t@LT8j=x7fJ-f#D%I{Yixn~eN*fiKCIzG}a>|KX` z4F#R^xAo_0uPe#vJ#)-7$EoodW$6>rtJ5~8C8v!{o0lf1-^-XjYs`|GgFPO1D(hlV zr^$e@jtPAyS0`JfCZ?uie-QVKFlpx@NMa&)z+J`cRT%e`O595J--*!OpwM|U2-gT z$*vpKAhNMdo2o!AOd6OGdve(9;U2?!4e1ecK3W&uHhNR^twDDOHjh}-%e(9M_HSFy zYQCy*Z!fB$sUE34wbpohAKPHNx=x$wx_bU;Ho|vcr?@URdjy0w2n+2!E&NySAt9#& zb6dnZvvkw9F(>j?Q*)=z+BV&NTEf&v8QP5A>Ce;Frsbp^PK!>DpSp7P=%v;L~q?9%(pD}iuDR(D&k9yP3-lwP8tu*v`^ULu^ z%6AT3*Ln$;yD2km=GW;{r+d!unRPI$b>8&F(W~ljirUTncjQXc^ZkGNvRABSw|0%{ zHyiFFx7p!u2znCIHDdgrvoS|wUkn}>HLCxbJ|$s0dwmRD8yXRk*~6zxyN-hIE1wlj zrN+Y=g?oMSboH!kXxZSI`)>D%4GwtfoAz)0+kZu1M7NW{F(E-AmwT=azTds1OZ!e0 zt=2X0vTC3h{yOsXiVdgd#b(}^@on1Ksg6_UWPDDKO1Da<(_5q~GFnaZ$#h$y-81)k z_@`;A8e3W6G`MvB{RnM*h2==For0*|}DmK=&N zzGQA}IsSH+<=WUqRXM{lAJ2R>BP%X1CjzJI(Bx6`U0EtfyCx^dQnPxphyE zI<^<77oYqtJ>GI>flrn&vvL}l7Bh8y#{KkG>95lY(k`UcNgtb`o-uIlq4i@=^?hMq zVP#Hkx+82)T;RkRQ;aE_Qy!FbCjL?~bW?z}JFYo>0SF5jY4K3Ju&f>wlPpd085v_Gk zm(2QpjhnT~?7;Qd+9xV%NbLEcb%xmtT^ef_^EA3~v|V)GphHo|BX>mDhnqvTbsZTn z(tmtgb?b>f$C|HbI=pdAqf4H@Jz9INZB*HGQOm_`KeppKPvG?&K zk5Y>g^piYWbZZ{tnHW0JFKN}3@Z{6UmC3d##*|mdQOWJ6)J$?4H+Y0k-a zH0||(8!5*|>^!_ixp-D??i`0q``Na$OJ`rsTAibuKXU1#bsh6po|Ny*e|M>*FB@nc z>>_vuwLH?nvqxB;u~El{v>(|e;q9o|qYsVpNJt#nXjoBy-)hxbmi2c)B9#}3odUcKbm=O z($C}K26si^{(<-7dyoG#=|xi6ls(CoDZNsLr}RrvruZapPue_DGv?w@xlh*)l-Ei- z8{t)H+xLaHcbw?9tIe95i(2Nz<*2d;&8a)5`y6w2@0_CC&I=o_*thZfp7Y18uXcUd z{Oz@$#Z`}mY%5b;tET(>xgPO-TMgPWBymJh+@geyqvntHN!*qAJn?*D(P*nt+vA=O zPaBdLt&F_TH#p3<$Joy54)@!hY+0{)$0i2vO`gdOzt+!jr|bQx2<)*7unQrjMAmW@_K5^QHz&n>u~`%o&-vbGI&D zx?$46rPofrJ6h#yF`@n(zmp;FqjrukB|473JaOFQ^dwEtHm*5Nyx_Pi|Eajf>a zJJHLJxjVB4Eh|9+o4Un#cc~)x%iB3_PX&kuc-|+?vv`wcY0-K zWqC&KM`f2+e;e|$>z$JqTb<}wFn-t8&9m2hTY7bYkasYrO?Kg&$m|I@Kj!+)+rCh@ z+_2tdm)C!;S35o}{Ssc$l5c34?#g+Ww=EAE5H=&yGd5(zp!h+f>W+Rs>PCWd{Q40K zhE9lyi@F+75ti2dUdPL=A{#ZRd)uyyvAeKSb-euN@8T~m@3y{Z`gr$!<(=}Iem6p{ z+g?w;{^Z8^TM2isKiKj#>h=APNk4a%x+>>#H*`wtg|$}IHG4d4a=+zQKPkZ2tsrD^ z?_Yfb`tKTWen9AeRs9b}*!K(T)1>#;P-V{z-L`d(@7S{4qt=I8q%~>b)wIC~w@I#v zwNBc$vOHsWBn9(7DMr<(`e&KBxZCfx--AD2dcXTk)T<*eRzCmnZ11y0&o)2%^vvhE z`Nf|XlV2shv3dXPV~?*7e|-OwTr#I3u_j2J$SfD0$%65$d6JF2LuaSAE<5ThaC32g z@7}q-w*KpSW89k5-C0}fy3)CklUuDChhqC8yDZzqHh$L5R#BFY=9d;>79Eg_n{JV2 zVQGG5He0$`{j_>!U0^fQHrsBm{U3*vTA!U>I4^X$;*lpZY|S30S*WodM&TPctCa!Pua{4U;C98k;@I~IH5 z@p;kUqLD@Qi`nFT7P~DEhBRUp&6pqa?26VM)JIs%&VP zOZlAgc@@tp7FN1eEv-6K6;VC7I<9(q^_uEs)%Kv&CRcr|>|MDId*O4+gUf_6=h96j z@g)f*F(pk)PL%vCnOeHEETQ~F#rI18>cX1Wid)JHs;%k?*p;*cpQn-;$=+fq?haeQ zt_MeCH&c)4jh&gDn(u10x~!lO%u%k%}#K#>rfHM zixp5^!5rq1>EYO1Fk5Xo!nNj7v7a`U&jpilI(b1#2`gHPTC{MmnXZbNVxV|~{1GIu zpgwaS!B;)Q=CRi7PNqHci0(n}0khejS%_qT>;FgyFBwI?B9dbR^+^8~q0lvtI8?Q<9I|WH;dlPlTKNY`z!234Gy! z+%GnpJp}ekFguA|4wm!|wvaV)9l2fHS8gDBK<`sh+a~*bXz)!ETTqwCicJ{OMti$%%+t%4-_|pk=pnl z+m$8(q&XQxx{(pYj<^#Sj5vb~Cwb%un5!|QE4Z(xFay!zXzZ<&l1)TI=3-U;@HPB% z{xR5gcKjV~6vy1}Y^taHF)FQLUHBt+*cSigU zE?2nJMVck`lG3FJX)^d#_TXQv5bKH;G5cWafCqelUxr_J&kX~AyON#CMzSl}#q1a` zjoyO!?T@|M+E|6%d=oH-9Y`Ot4*mW{Du^IflQQz07{oi|GpQyQNddVD`Q1Y{V3m_G z&Qo9wj{`TkG5E^k!6~c@HlC&MgqMZpU?}$!T7zBuNr-@4NTRdoDjp$wF;`CHHW7$5Zj}NQ^2^JEbaq4FjLGDCqXVAl4oE+8%PQ`UlR)PnRA`O&gNNuIA=;;x0Dy-`R z*t7&#m3x@w9zr$0oL`8QI*Z>)=No`=I2>pDz%iW&TNOj5L)v%2G8f?N19?e0iQ~kk z*jWw$=gD`P$5ys2Rn6}@JM(A&Uq`a{T4#r6&PE!Xac`C z3Tx0w`YOH=_lxObXE6~{(O9e`+aQ^_tI2at(<~M(vKY{gMz!yNqrttm1 z>Ho-|;U!@adi)S)bp%IY4fyKq(AQVk^K%uOK*A=ApT!@dUMj&#y%0Z%3jAsz=I03H zLKc5v_kA?9yD=F;Jjr*k{8q}3aj)E z8nKg%!_IFG^k^I*=<#-p`ZY%E47(W*Ui{zVuO;dLKKx0@qY_p}3BCSnKMun7{Ix5c zVGD+X_dWrS6Ua(@auOE!Hz_3X;#U$RzK5qcK_0>~@4`IxCwGKH!ek*#$ib=wVlIyH z>rv%!n=j+z(Ek%c8{G8(Y@dZV0=8-cJj`1$0Wxq{+9Le~r)xKK!4~}3Jz@lQW_f5{ zKG^m~k}5=@Mj=RW5|UASkRcp_oQmM`KNmc}&yOOfVY7RSH^ePsf%pX9evVnZCSDO4 z=@o3)b}(U+!SQS-eg`*aHCDR;Y|BI8I{FkO#6uf~2>Zal+yVXE4vmrB=|SFli?4K1w36()-0V(1iri zA96v7Hn6n{@g-Jk0pz$3q^cFF7M=($KrcFCLCU~>orKDdo`OMWC+vo&_Cg&+G#LPi z&nESt^%<~;>tGEA{`1BK7}0b{$!17X1F~4~6VAYgWb=-E7id8ixX3}MESU?5or5*Z z6?cgt@E-l)@z(%Tv;v}dC%=^M$}hk{2J;8Y*BubA5p; z+VS4d`XJ1~1HLWB|4!&ZG-4+)N!$w=IwCHBr+P0MFtZadi*>N(i^O~}TRbH06t_Wp zlSBsiAqO%Vi@8m~cyb{9Jz-@Y3lA~R1+bt$!92YTkMS6Gp;V|AMu5wA4pw0@EWkDJ zhiBu_3o>*W@}B~Za0Bui)hP)=ccBKd-VYw7nhQt8&qY|O1AG)}INHElKO(cyLmR1u z6fI?eG4M+=fPEDwHv$*-B&6O}+Aj8i#?62(UO|1#Ab}FD<8F2NuKXxe`Sd_tkq$O5 z2-Szr_#YEm6igM@ng!&r|RqbHVqlz&u=mtY7pK88rQ%-Su*wyv;>zHnxjv}l+Q)hF<(w9}^c22+sIUdv zxQo;gr;BT0Aw`Tk6_{i-X7D188`3)1kfzc(^tA;v=pp2`6KaGk$OB<2tj>Pm;blUe zFbkTV2P;^c1furGB>n~xuMbS7)m3bTdwuz@e2=^3IO)q#KDnu6c;2UvA+>n8lUIx?~EpEk_X9M+&fOS)e=P~j&ko0g=kFDi<^B$-_ z+JlO`bd0zbGzr+t9~S8=xc0pK5bT&f@(?*)wnyE?Uif%V@O&4G z*3iWXK(mJgPiXjZ@I>nX*;H|**jdUmFKzdgokLjqXdJkz?$=?GjRUs_F44&Yf;q^UWgT}+}H3mYq#=7>y z-LB(K7E(j0gH%`2Nmi0l+VpR==K*%-ra={ zK&{>r-cr~l91sE!1IX}%5n?F(&sz}dI2gi{(AEp zSdX^Av86!Wj<6z`u#^jg8L(_h{Bi+&w-OP6A66m>esTxa<|ypQVR1LCS|rv*5=X)7 zDPX@Z0|oto-C7DfLI{k3yBjTxlt07VLA>X*h^KAw!|0KB*L(P){=+btpx^1y8X$ z+jt%DSQ2dIU7;oXd@uZR0Z^PT`f*gGfLx>C)$+h%T?)UkND9PSZ5GoYou^0^sY5Pe z7LADVl7J5%q9$%Aw}RWw1;TzT=kB1M(+57Y4v=2CFdiD>1H0$~YjF}WX9qc4ZYKN6 zHn74orP^4f$%vdDB9d-^_-frhRJ<1~nkarSER)+`KDJOF_&o={cb@P|kWe*v2w3wu zq|;IQg*840YdaQ5!50!c0Jzy#+zISd1Me~bID4QF3Dnsix=0|Ub+GoixJQZ5oOlrt z_^Uqjauf8j9ki|h)}fY^3N&+BEE1ank5-F?ucIM_ z=_yD3%x2(iKUAEyfX8UhPlSc~f>nAcBqPR}hyJ;OZP!OyARUm7N-MDL6jtaC-VYGR zfJ26A1Xy=(L{94vIX~b}LmT@*8)xx{fZv?Z_c0j#2H~La6g7^k$V1W{mSQht<{LEU zFYdmBvaIhdrutZM~fwzljiF62=j8njwTOp%$q?hoZabg?s2|T?uX+mZp zw;~8H5vj%^PV`6Y5(qo|o%aA1iG;U&2%EGGe(i4!(jL)QdX2b>NO#35*rT=LCNV|q z3Pzz`e2(}f7kH`)I(-*o94j0b&I$EU+gU2eghBI#4PbBt0!geQbK!aN$Wg3mHhf$T zqPOReRbS*^=EDaK1Zu4zJ^$&^4Xn`wItt~B?EEHA> zez@mLGVtH}P|!?!c*lm&%+De#Z9&b$Xjm4Vcn|o;9sc|%)~Byv2Rm^Gy!kt@=L?WK zGUJZ3@Yy9`gkI!4?9nLkJoKmSzlg0pRwe=~^A&b>;Av+-pWDM42f!LR zLfVI8#W$b|_8L%T0!Eq-kMj^dG61-A9yIbPH2p0i%l+up2w*xrM*b1e$Sy=Jt>M$^ zBMQ;Mn}2}5D9PWt*nodg{cT9L1=y6fh-W!uyjlR?%!ikLOMW312!;g-fE?8U5{!jS z9w){CTL`AdJfs_msr)ZjFP zhJQlr8v_sd19$ryX~d#dI}ACfx>$1utZW71yq`idpn()f#X-o;7E%qQb{^yV8%h30 z)QA#GkpV5iqY9|NA8~9Zbh1)x3w+%h_LD}u)fE~aA^E`u_5gx92U``5`S25W;jWkd zH~wWFZ{q&rAvbZDp9QdGzYyaLg05)!#oR>XR%;`h z+7b1ydB6x^$cHh=T>Q0RkuHeE7-VC5qZV)$p1VtLVB4>tADNinzdcy~FUR){ zd6LV5f!sp;bqmqD9{Hvu#PaWm6|Rd${Gmji;%~Er#I!}0;2Sh*A?9W*^d$^Y`Z_Qp zGcj{xP}S}UFEJ3A!o$d^Z9#@$0r|`6|C?7B0vU>f&xu8Zp8z?&PPURWh^dP3JB^?@ z?SL>^0SDW_qN(u9j95$j29Gxq+E|agMc@7a3#S3OxIw=sBQvo8{}6Cqa74ZQa`dQ_ z^nsKe7E8oeh?(1<>Sd5LM=~QiGa=KN2e}M~RFz=O3m|C?Fz+|vDHkEL)*Za)CjyVC zv=@nh1g*q1f2Fw$EB+9@%sL?_71F1$MvV~xj1{4lO8yxNG!^aR%IBCdXb z?|p;KzKR(h3tWBynzIt0>;M{@gZFkqXa43$g7Ezq^yIH)ScuQwkx$4`SV2C9V>VRC z|NMl_%0>^y;fhv}(KkR|pM?Klg-#>h;b4vKfvf6wk9!?+YPa1Q<0g*6z5Y^@J@3d^^)kpAN&6>~k0%*KkY!{bCq$^@KG#y2m)(q6)yyv!kZ@}B~Y`On2~J%EmSVr?hF=0?IN{V=@`W>$YMNxwHspa z3Glrx&~g0%o9&_S?qdw+g9Hd|-uFb{hzQDr;0F!P&z42A-R@?*9v4OvS z!aZkx(Z^W}L@0H5p0C3GjR#jBdog|3<4j%FmCNQA3E^b1xI?-Q{fm?mfcjFUCeluf zaibUyxm<<5_Cm(M2hqtc{OiIKIC8%Xi1JX{D=7|ZU74jjr_$Q7Dn6;*m5*HEB zPn?A8cPAjQ?Lc~mB)uFW9|VqmjW}l=a&dZbJ3g-qU1Fj0+0ZO^%++il9|?GW9sWz> zEs*_8$VM>yXj91*Rny7H10^6w6$$^+6k{|?ddWwsC24`DFN+*9MfD^n)Z}*q3JM3R zek}Q;TKYQLJ=B#j;K?7u`Bb?*>MMUr0a5{w!w}r32yypQu>rnwKq^GFL^iI8k=x0( zavfmlrt&12mV3$lz|3DHC!#)K6Lw8aB3 z(s2r?cMGzipAkL!BDxKhctmEu;BQl5hlbs=<#3F9EM2pZ_em8 zWLFEXHXJ^7m3R@E>l66yQPeL_N7gO~QrrUgUIC3RM!wDiT6B}_hg?NN+M2+kg#lx9 zgCwqk9%Mt(XX2iju%y1g`OT0wNrjCZ2m7}i-ey0f_Y$;h54^^B^dbd4nhWo_5t3hk zZ$|>xIiO$X5g~m=WcK%;O#bFD|K^rd$h8DP=IcTJL+~qO{z?1aU92(iI&RS7p~%g7 zl6OKZ@=$+qXAi^<6CjU&_?!G6#C5F^KS;t=?CgXiFOr8g3cs-jQQ-e9T?JShThoqg zvXb5GZrn(M7HE+QEfr{~3w6D9y>)kYcXy@kMqO^b)Lo!T4cg*v$^VA$e|VrJB)fag z%$YN1-gjmgSoH>2_I=1kZ)55Pum)wNC&Oto$KiDIysv@ANt6|eyn3og--a?Q0!5s*&IaGB{(fy z#k}-K-INISKiJi1jBXGj82(r_i%?}J6en|KE_nwHyAO}!0M4f^Fw<3VB{_VYWbD$Hum@~`x7Qev(_x4= z?ZYP@Vvl@?Yvdqi=h4_{kion1GtLHFaUv}G9_UDK$fyOpO*0~MU*Jc!R8e>`HDZce zfS1j}$?GIeV1sa;n~JJG$C)E|(g=9i$1y`Mu=0Q4`(Nl>3VdD>KHg|lL0Akg^9roT zW304SIFVh(JT&Ki!ZLeewkpK@cR^q3K|bvv>yJ3&?8bcNp_Y&n=N}))eG{%OLZTsv z8b;$g6zgOnY;cqEHSrHS7@B$;r{JyFvmU@3Pli5~Km$t4zCRkNuOuYNI(1 za{CLb(}Wf1L8)tE7k&$UoQIXu15e~Zuv_3B7oa_c*=pa1jSezGfnKwAku0wUG?T9&SXWHZcM{p)v0;wNmz9ZiBm#GQ; zKonB-3vs8e@ZFAK?Kt5J_C|#8CQd4eK>dCrN~plsY22|D_TiuKk_KXh*s=PLKtJPw zf%U`rF`a3H^*Ix|&W!)Z=iDO5@;h|k8^)9XZ8)x~jn6PR)igl;r}l^h zG{XuVg*|8sH1M@565i`v$aEuo%$x9ceYwUMWf!0Z>!6RGc^HHGS;tJD&L;gTq^%>)b2vI)9eH1I)OLYMFbq_>~UNfYM!JWsBKMxX)J1?PT3TMOgQL zR5aG_4fyOTSi>IB{3q~HBXRazgY&ls)u;epuP)X?1ug+T+W@>P7Fu`;*Nel*mteIA zs7RF_R+m#9gIzm;_=N}eX`o65-jT-y;`KhTgSAjw%TpbS$L=wp-1pOQB{&P!!j;=& z$D4uJ^(d@^Ay{c9th1+hl8MmWp0KzVaSq>rEA+%p(h?~8N67v=t~?4~tMSS#2d&5n6ZxerZLV82oUW z3&pIr1m@&H)Bi)v@hrOu`^HSHriQSWrI_Jcc%sF)?r!XDLl7bHLnNyo{=X6D-R-cS z^YQ8={JsSkaDVyAitovdE&yPm`7uEQ^7xiYpIv`qmWs|UYz8l=lBXOzmE4601FbZTPJ~Ia~-q& z26L`JHJBHuP<9``3)s2lVdZYbn)(m&{14;)g8hNPGZ37L`^zQ+S-1_0_Y5bG7qIg) zvA28Bh*z-iV-V{c3SD1{Ill~Cuni;vsxR(66XW&RrMh^=o{+_T)J#i&ZT0vJKM)Tm z5f5-9;yS3@y8eQNG2)a~z_!Ec?}PvC0Z!2iTJ{qj|5NNZ8{y3~!i=-fwXcxm3CP$J zo7s>1oy2&zU>-d4Iup8mAF--~knJL9r6-o0RKBLKVU<0He&1JxV$bwcJ&T34U5+(( z6`s&*jPDmDkk0N!g{QsTb$F&D@OQC14$}jXwS}CHlXFvXx@m>T+6>suzS!}WASybR zJq_u%h6IM-^|p}f9?Zr{Ncb4ekn0ig@E`ylDR^QX2ccb_bCM_0aTXqM0AdlVq33+6XDr-_RZ>S7H0MWX1F!hnE~FJj$ z04u#4&UY0MS+0p!G}!Ac`1Y(j7QP{Y_vK*yWn*k1c(yyx?IT##yUPEkggyQS?R$o5 ze?^#^2+ZRqNcbmWe?M6hmx8!_3;5&nxq+}WcK90-y#5Swc?Pd@2F6?$ey0avOok?h zqn2P0R&aG(Z68+n0<1I!Pf-!4eGB|YZ|oSOu|_?9&`WsLkFg(~faY$8hjj-t=!pci zgS3~!L)geZ#*X2MVUXNg*!vHV_Hq2>0Ct>l{B>S3!fpoZ0s=|@bfRMYBDU{2F%+Gd^$$;02LxXqUuYk zvXRVDc#+%H6&@mf%6wSuaAh4q?d#gCKMzo_y;@-4u<(n}w?qgk_-%VKT? zepOx0%K1iqi%;JsBg_+m$5$R*X^Nw>x@}od*1ohA*#*UMl10+Xu5HB!@*FwV!j8&7 zlP2I$a7*7!+NZ=%7cE^y&QL$sj@IuG^O)JhWVcUga`92uFQT$yRq3v*%jxZM)|Bi~ zb~U#QZ4lm6`{FP0G4JP_?4;a#MKh>F#u@gxKBIyXE8cfjWTT3o<(3rbh*82YTW9~T zfd_n-YMSQLpGGGt{a^hAnmUDZQr@N(7S?C~@w!xDQ^gmRu2jg?pDqdgZTQ=wSj#9aw=2}FG{?`OeJshz z8JxAFcs94svBqz)*DZY)p@eE9-Q|ju2XQJxs%{WBk=&?SsdH%7NgC&NC|jtH4oV1` zWNuHaE;?H_mAcCx*J>?Q>>~|}l^seOl~s}LBJPkkwab0yR_J0GOI?(Fm35=PvJ=!h zbd{{BhRM`aNt_~upDQ+`nn_7g$*)6AwnAMitH~%+9LOyw+{I-&{_&op)e_4jv#6(B zp-M@YF^h3l9m5wH$C=&=r`b!QU4L7MrV^#iWoxP4!f1V#wwZ91j}nu(TxEdb6rNed z$Lku|Dmr&qYH$x-pNh{Z%sQL-v&gGb)nTR|#vbZNbcXQP@UO-nbyr)9C-uuTE%@)6 zzo;G1RNGh`pjx8*M}o>|%43E}zKbgK@C&tBv=Vx;yG2>P>=*lwTV~4*FI~)ivRdqG^+Win;vRjB&`J8HaEWAtm|>f1 zYo|ZOt)`bUQ>azaQLgqfE7MMQ!`|F}RU5&%g=U7z+Co~P97Ru~?<@9@vqjo$F;3%+ z)OcB6$q|KFkef0sd#(4)IeI_-udGGMQuj(GTHg^hGNBtM#-eclTIa%Zta}s{Gw=S`n?6cz zHQw?z1azu!+ZnIESj=WE$=xa$%o$B<93!32%-zM2be1%>_+7!?vTS;RVTFC1x5_?5 zlOQe2znI@aQjdRWz3+57PMRO`Nzy&}>3PjuXPN1`SEhf=D~*$Ro9tVD-@-t7qTuv; z=`-K%rz>TyD_Tf%OIMbRlT=rw7QGY~pI*L^mNQ(L{08dLUzD6A7O+pXo6Ntx-1d{^v+Uoq-X7(hZ=YnCO13PhlessqI#FoItB_miwhtr5%U74}E>@S!l|->$OnsfloG#N8 z_L}5-VN8DiQY)9~mFU~ZUZnrRO;UU*dr;J{G=ki#OSE?Ol3EDuBkEEKk^MExuVgnX zI(t=GRZ(uQ$22NzmNqDDa^WNuYk%rn*V>L>OWl*Qh4XT6l#S#*S+af7{HiqwWE4R=$D4a{=2 zfSMFx!ewp-Ib0ed+rxa;%+pm6Qs6~&;~p{VNta?a6{>D5rty{7=kzQpii}e%QeIM3 z*1Xrc_;pNMYClN{X>e?tnRoxQKk6e#x<#&h-MJAo4Zigz82gQD3Eg?mfNQ6jN z5_*+}A0kZE6DlX_&8`queErRa95)6qgvs+s4_qTe@iasrFM=RYM`tkZoyW zt!I43f1>?JUb#{^l=0S_GG&<8>aVGvQVOx z@(r0qC#rq{v`X^r16R%~9 zr30jqL?>z@6NPxuY+$6_=`P9uxlA@#UO`!jp2ozJs8=u9=$6PTDUQ( z8LD}eC^({uVl;DH)7aA1e!xp_UZJgtdL=g9Kjvu1I>$k4h`EO)#oFJzQ}9 znTu)~0}S^xd2CCCpKEH-Af;WWYkYj`91gN zh%eEJ!`>vle)oRx*SOTk%x5`gawBurXS&m_r#;IUm77}B$o)XRPH{^SP4q(t1E>6w zVjab><9Hv<0IgKN&!9GYTYGpV*ef`ed2O|JFfG*Sg*oai{1$Dvv6XqWrJd!dd8T=v zS+r!CvJ5ia2r-u543s4q)rHz479GU5 z*TWJ+PlwJ4Yg47TTE*(A5!WJOt6!;ZsPU=#&KiNWdeqraJFe!F$kw&C*8E;M*e_5M z(?)zdZ> zB2aTgCdLV8`6O@($D>|rC~DTuFXcSekeET|O{H8=WobY%3qsC7|QqhCg=>q_h0iuu^! zd85TmUN+SgaYFHU~`mHU+TuK%kQFP^_le-o0l@bivu zeSR)TNlRUrnvhcM*Yuy>DG_NM@`k(bG6(e`_Bfv*e$Rb5pEr)%wm+to+JS1CnL&Oe zkE)hyuX@D=POSX9`i;n+5jVpkE39?s&Hw1aP=k64m|mTM^W-7UwHCa~Y3v*3EGkdqXF#+||Is-j2DLCnfQgdNw?w+g#880%bXYI-*iU&(h!;)vHg9W$xqbiiDPPCJ3 zDZ5_MutZaOs*IHSDvTm2?esxCHERCS6Ix1JHJibbk2)33aCaTG#*g0*= z+Mn$Btz%J#_Z@C`c-*0=-ME&Q>QAUL*egk~IgR}=?DdDl9lu%^sOSvyPG3J?i|vwj z2@~xenjP|O_lqqz(@!7VpS&|`XNLpHXWrjz`)t;G^_RlrA76WZ{P4c$-ITYNUKKz8 z`)uU%X)h1HHoY~yU!N5AvF@ic$%FnJ%xfU6%1MlM>}5Wk{5$)v@a^E;$UfS1Tx`xL zh;z~fvUswZc;B8;abd)<+HukUMb)cWt!nQ|Yy9guROW3OJ9i#Y!dI$qTsnVGd@3Fg zeR!b1U?=$^MtKb9u6^_*xA>>9dW6?OgkbL~1PZlvc5KfhCxMytzDkF;`8Ur%n_6 zw3+%Pro)yFwvk??URG3^{D6P-$4W%Wx5{xtQ)%6pFM z#DywnC!UXj?r(Ur-9M?@!-38@7BMckl5nGua8?lFaP3|%zSJ5eaO%A zDW89j%;=c+phP04m@R@szs9u3Vz;u^c9y=z0PRw)8tqcdQM9E_s^1v9d1nV64;dDA zDRfuGJ{7Wjn%b3?FNRUtUP2j=-ZXYQ>R-PUHi%iMPFa<&#f?z0403?Tm&!WIB;us} zt8}~Mw!6NoSILvYLHVb1-{qR~OA1GnWlGZ(14x0Kpg1e*@8(PWiazF_&8vpI#9R5U z!d9hyB!`GJvOANldWKkRsLIL=N0*31Y7xDKIi}jkb>t_AC$w!0v8HhrADhPhz^-r{ zw7>V_z22bWR8{+HM_r%yz6<^J0bUiZS9le;Gw6Bnr-~0lK7#On3Mkb8=JWMrTJOOqZ^M#KkNN={ikQi|Na>9 z>qF|s->Xw&el7hm=*NlgS>Gyu8~&~2`=Fmke>qdCrXKsvroGEpn0+a~eMy3(k|LJA z$FlqZAs*+fF!e;$S8^K>D}O3qpjb_T2dwRC=Ir&o5Bv1=ed*K7$$K?4w=|sAJ{LxV zM}LevpxzD~x27;q$U|rlFgBHa_@A7x|I?_ zwjC$rB?!w^oGJTQ(xLcW@r=?Ju9MOv`6ESF>MfnmG)3Oi9i|$S zO1($-loBORouMi+H&qU9m3j_;l0PY&7jJ4u>9-q)o9|iAc=3)Fj@tIOwroB2&f zCT@#>kN$4|AN~jYxB7MQo$j;Ir-x5hWa1w49prn|yN5m85~v@?k7Z^lPawN9ifE#o zMuyS*&@o|vs)*@NZ&vn^J0wA+mkZA2KFsc#)i1MtW`|5=*2Ao{oW=PG1xpJX7gaCr zTRgfbwcvSvxBORmL|#;Gi#${QuKYsX4&%fk@g^j2?A1Zw2oqSi| z@+qiDybC!|1;s}AJr@R#|sf=TmJ z6QNaTgEba$op2si&q+;BR3ScxtcKs}1h5H0g;&CMaiO?bI0_GCAJ_tM{9i#tMZP9t z2gvPO!gMTGDm3wZ0mc>KtxBUvxhJX z<51V`A-b?k04DkrbxDiqmdL9;!*l}!={RFX_2x387hM=~oJf1m>E*yg~vJo35+Tx$e+l3YgQZa89?tq|$Ej2L@2 zM9XUc2MPfjqc?E5tK2@s3_U!ZD&^6}fxtzg5f4p5%+J%`WOzA;zbayuR($6mVkiQo zuZ4JNFyfid5j~y==4Ul9K6?R&S%CCQjS~90bbV+Xz3?#Ef)b(IRPA{70{##;4K)z-5#t`V7+t$etHc! z`gMFC2g>^z*y>p1XYB*Vb^wfm1SXlOhv@$-jB_1u`(?l*TB>BILjDOzcr~C91$ZI{ zB%lBz;gzZ~7)~t_wH*fjn+Hcd0SR0}>^K5X+aDO128g+b%WQ!r%mXfz0ffefyA00A zKZpw-2SaiJ=4m`)_?d_?+rVD$hWpJ1#^QiG~mzn2NtpboY}W35A!7% zEXUnIO?2!;%y~VGa4YoPlL`C`vFA*nP(fg{keK`0Y$C9fUicmeO|;?n6?ifaXX7ib z{{lD=1$;Z|@gkF2{7KQ;Vt*wh@v31{hsK= z2uW7M(;mka8sN!W;nj2CQMg$L5aT?2ZXD$5;qUsEzwa&9x*8d@EExC!K!7|vQx7X- z7(Pj|8CWNifXqw!dz$!evp|$u+JD_tn${8XL zp)o7)tYv)Out}DvC1gSy8!ITgHBv1=k|TVQ-=Y0 ztP4bDF!aC(sTBYfu8eiwANTGKepw3J7N2SZxw%=focX&BsNr0ohB3HaIFMQnS3HXm zM*)F|Vt=cq0&&TMtiQ7w$oCy)a|7nv!^rmFG82IYTETg|P>vi`FX!`Ag^$L9VXz6m z6+=Fsu>w39cikbOe=&klP@h3=YWm9g+4un748r1Z;0PBSRR<<7<{z>1E4J=Pz4J)5d5i8&-8k|AyL(AJ@7W-lT z&f(4;uD6FfGaP$kcZ{mz6c1?}1BdM{>`6GD*nvGIjI(i|%t zt1;KpA#X3BWUEkBdN7#6k(l8wI5%x9w~Livwe{%!5`vX99rJq>zD+Rf{8v>hG^#x? zzIdS7PRKT;{7JfFOzSajPdy7yMTGj8!TXTvGt7+%`h6EOo`O67MFoLx(9s332Jv`* zBqS<@ls%tx_&DTr9anjWpWA`a27zmD1}axl-ifO# zX8t91#C-fc2rP;rSVv>90vbRkx`Acmja^QHXZ5hc&jEq-aH=0+{BOZB`vXfo2lj3V zKED_%fbsqW7?Y ztuUS*;Fwg!Gh6`I!ox$5;EC!%>NlbPtuf2zAm^WW-HB_G+`q6^tHB%cWVGB;HGu99 z#O&LV9m?S^9!B_a?AiU0MG}NPJOD`U8mxZLbp`G^uI+$j9gV%bG49+MI_ZQ)O5tpxhz`M9qqpHl$u<_R>a9q{EK*w?MFTDe#=xtO7)_`MHgeGtEwKt4lZwQqox@D+RA zcF2mxzHY|%XXxSo_}o)r39n)*0@R{U{j#0=QFMpzBCv4?mN`Cia_53A|{{FG$)032+>O6(KgVFwRlMa7lB z!^0QYTE2d&VlJORCz|5fVjvLT77)SzKWmu67SPkcxb* zuGo<$W3D{8!Eay-%p!c3Ej6-<+8+7$|`QNKyuk_?uZ^V3h z*bBd51JA=6>frfzLS2{M_=JZQ^DiVj401e%yB@(lR}Z_Q95yrx^X0Jug|G`W=V5Vr z>_r5=Jh?hu@$O%+@)Ugjf^ts80PG3X;O$fbCv67)ei%0G0W67!UvUjq;R>6LF*m{J zauFq#LQ;Lf#GQhFdF-rD!A8nf4ZwSYFc)dKdTm@O4qn(+NUA?ZQ2`5dWsqSnQT%atkz4G3D~SJCoTeN!G+G%_nCW!tx9KNGY5bEndM zd6h1%DLwW&rClO+q>F3BkQUPZQ&qj#xVtFMV`^&0b3%Q5pN!ztku-H>oe3f$GDG4gA~ zWMwU~FO@-GWIGBWI&Wi7Q-m>G*G`bJ)#)}=2x>!lP5?J>5~#)w<;;91u|0YRG%yOr z&$>jRhWZnv`a;EEEuMpwi!R?EdaCD(w7#0@hPk)pj`^kOF}hl;HZ0cMraqP|%wJs4 zDRSpQGc?|o9s za)y;Xp{ME%UI(3RoIsLItxP?wU#)RQQIL?G+{cTT6qXjPkoIJs8D81WJC-`vdV6`# z_HO69%+Jp|)*7j;O{ z_T)cI9ri|XKkz~H>%6b=nRTTTg&nq$KDj=1op~uEuA6GFkBs%!G_hS8MYI>QeFu(9=X*Jnws;>GYUsKp2ChO*!HiJ%6l2gq;Hmgk?2ldzLHs^gDbx~SX3#yDZfuEqrC=A+ z(d*$qp^)##=kvju`Px6aB|1SnMw}yd5Da`M=kdV(;SZdGh1}0xRKMmg3sSMJxJZac zJg^UZs}y!8`p{VDPn4Ce#SB(;;r#d(;x=?a{Hr0gi#4x>1?m;70;uI|>LIm|e$2dK zTk-=1z4%SoB#cL_<}?35cqt4LSiTikm+b{M+HT|~bmiLf>-b^(a^#65gGsv(_5G)z z0@gzH6XZpQsw}|n<*LoB1zE%u)n14QJ;0pE(J@iZ4^%f`jpz@!iM~wTB_pY)^e09R zo7oB(;q}q2(1)2R zIFZ)_J9a+o>JHc%2O?V^u;XmQ&hKIKj>gHg4jTiXAs@Dj!WrN__Ub`l9Sz>=IeHB;^cJF5QET{)W7U7vU68jjSv>}xGRyYCiTesp9$I)O zBf%l3%kxf&5=NvgXamka42-%xdJjRN*&c7RDkLm&q)oW9eKv zl&P&6%Z94EL&lBO=V2#bGhgY7sJ|A5x*ij8%I~j2o(H=Gd4LU(Q*$3VHbc3`u)~Ad z5S(_3)pO8c${a=wR7FXeNFaSD{;FWkl%qYL-IYZ8Z-CkspiQ=?j?9 zT7I$+i_RBk(A{!6zY|d&2RwvR$iLuF!{G{8^*g{VU&oAAEn`V_TmFjhNqmkDRttc- z%21!;sd^`R%j^&}n*E|p{4UfMM?qW9Y0SFox+l7Ax>Q}9ZiX%%omJNAUTRxu3GG>- zE9!ZKsR!YNK>)vH(QQ@KoEOK7O9hG#<_>||T!-m^?8qe4UE4+-r+Ik8=h$dQ|5&s({Ndzqs`G2YT~usw0(684RcHi%Q#D%CEa|))X{XwG|*IlZY|@@ zf@L=P?=}KbaMCx;ud)Ak|6;$nK3yGh`ysD0UiZD4+7~%uoa3Fnof_{nZ^37glXA4T z^*6`p9|*qe7m^|FNo=kIW%pdyB=1nI@v&?YSZ0~U`FZm*ebWa0UHfO(@9V!S{n`He ze9Ewtyp-XoXMQ`=zNGURW74e|5t&^w>u2@MwHI9|-70a*X3N{l9!YArLQ1a{3njMF zG}jW@Yvp`Z3n4~#*BEP7o1W;di$}O5s+PhbKPG!4+ekDdgBYXwu{c4u-0<8mz!0Sy zA!t-16`7LAvg5@^ivAY&DJ^noWgisxNH?9YQgSocN6b{}m7-9llQwdXbp3T1C4;1| zWdwTYO;mP8PxB<|Bwc{Kk{T)k%y3U!au*`2dr`F~g;vwOsCcRdGfuSz*@C|4bQz<| z)6?jF)7mgvw_VV3lbGw&E;66|zzpL~2)%WOj226V^{%a(EzlBa>a6dh{VFsC9^4J< z@Pc?=JKB(Fd}Qijb=lt7y4tSVzFX|3`{)hQ+}O^jGRIl6tn+NEy@uJN?X>-z!{uGc z_miJAhzt1?y0&suM6VicYgCDJ)eNmQH1c+hl4`wxLfOo|;%&+#J1L{++iJTe$yCkT z?fb*A&1N;<;VTh`it41D`%*X2@6F+-PaYXxxjzJbdHG{@W=X+6CG*^Kq+QBl^24+C z{2Bf=^!?knHIj(W+_$E`2j}c5nIH?JNUjZf)MROI8UBj*xo`YhuyS508)H`P(Q#Zm zK_ljAe2hQMe&#dAS0;n)g-vT2XBuuIjJq^#)SXo%HCfq>Oi+#>{w4g#%H%c0JLO}_ zn@LuEz=>ik6GyF37D#rN{4Qvj8=JE`XGWg0u&JvPahA-bZLkxYsT<1qvb?gLr9VpO z;vI#piV};iq7JN|>@E>P4@12)U#>a3oKaGjlzzlj*)Z8Dd9Y#=IwS6&`=|^(20WP*2pLmuNNZK25ynz$*HPojFqTUQ9+OnG3>K@w>)^E- z_`x#TYm0;NzUIBg=eci`e{cmd=y9+mL>+#iN^Z518dM!gJ+k4MCS}dvwA|E+Z4uNU zq?R&llyjokm;5F@;A-ZYF6%-aX9tL*^()c8I8W1Ch@fw}+}Zk+Lm%cp|8Vch%}%!} z-_t)H`zql>$&Y4f$Fgo`@5=ViYLUJ=b@X@1*Fm2TeWt%w{+9gX+V9rc{zbc8Qbjtu zT~pD}(74Aq&Uhbv#%iJSSVdilUTeH-@HfoYyY=e~XAJ)ux0!*=**iFzIVL;SJI31A zSVtLq>gI_{xoEnnVx{blq=V$Wq@7eNpQ@ZeH-?`-Sv8y4M|C5%x}Fsc&1Z7svu>`qytOOU*m9w3U8@l*=k8W_eB zt|jU>1@TMy=E6ilKrhWW#Ivfm!{?# zIoK%$sGm0xc}_Gh7msPe^c9W8CU46Fi__A>tT5Fu9M<*K&eE&`{<&Qordgpqr#qsr zW^fx@nA=&Rt%0`twm-I$wqaJeWvjW^e8&9V9A%C1>g(9%&G-ceXo9X(nq7HCbxG|3 z^`aW)W?#T~vQU_$|w7d2ssOk4N6>KWcvuDGHzt8E$*usnEH? zPVYvh3+yh*h0N+7((ipaU-MY#{w{lW9qMwfW5Uf3v;ICQB;~8AgXCm)aPIQoX=I_Z~mAO8vPhL{d zY8OHHFx~m9;uN7LdtQ0fwIjb_`i@_HzwiETO}Y5DP1ctDiKSuEC&Wr}IPC(9*Tt~3 zob0VI5}ReMWfAfdikD|KVXbbx zG1)ZVT#OE7Qw=$~VcJpRO5rtnZ$EMfX&WS9DZrsHTivT~l-3FyGwDO53_vLoAcb8%;T;U*>n# zB(LfAvtE~M6D+HY19f-M6MZ0Z)sOKz#16XV#!^ciyUcrnZ(aXA=&9rOY2c*123zE2 z()8YR(MoyOs&FmjN3|w(7Sw;-cw@5_u?Jf1Z{4Qt+ICF)rfqjLF;`y3ulrMwFz)!G z-IwOPr9|Rugk0x zY8!Os7UmmF*lrS+;mJbXGxkvi{x?_Pyp1-8*$Ya~BAE zGb)7DiYp8+tg+6^zD@iF_>J@#=18};HP0}{7^WFM8r4_>lhNsBLa<-xn#x`gZEEa| z>|Z-3xNG9^WiJ^wRBnbw6b0oTIy1Sl{WsUiNSLmrM`IiK3FC z6>e6kVCQPejMvQ#4R82)RBKtLYn{s_)zZgwAAFjGovu+>>q^Z-)lO7Qa%|I#RE{k5 z%C)8a`z!0mq110#Nu~4YeB)KWY9Ya42ZAR$(=-F@l{{?m5CN?IRV?|8j%-1gb+zo)|0pyFWPO7lbRhWdveukttIPh__`Cu2$*shiJ_ zwYPXx?@~xd?b|%vyP|7hXAfSsJ%5m%Ey}BOYW%zTq56v}Pd53KHB2Esl5ZQmtoCx# z>pE`+y-I#r^tQp*25H@k&y$Zunf{RGDwnCe;m#~w=#D3K;%BqP5#j7<-6^_>QN=a0 zYi4}QTwD+@U80V$tqL4jB{uSK&EeJk!lL|Y8#<8%Mej3L|9ScQclx9Jx9%fUJpV@5 z#B|>5M(uxvX@Jfy7**#9Uw6mi!UA_;c!|}0PWF^|N34+bc4>-d6m%?@Upz%}fSkg& z*IzI#G@-AhkVWUp7r9);Eel^2tStOk>?)fkDrU`NbQ+*7WjhA^j)Ygbq0MgLUXmc>ib z-AZW>!XM22H@b1=3ATG)^SsVkSu z?u9*+dc#Kl5uvX_{emQRE%&21I<4xD3d!ytn)I55k0etS0ZM}C=zd+8mgAQ_Bl}?P z(!%tz3UVv?k!hvAFG_XSbQjU1kmg+64@$?MzXg^9_Qc3w);(F~o?O)N0|4%iM zUQSj;E%qXkqY}w{Weep<#R)~G@+@_X8Okn0R$oV)BA!!2QQc(%y+<{OtAVO5N7$Q8 zDp{=ffzwMd@j#KI98SiNKb10NB2h?8QOs2~B^fH3+DH=0Swt`SF4;p_1Nk=Mi(-UQ zsXV86O>8Cp65+}v)Jm0EJx_=cgV0y~f?CbBP*r0-(>G8p^euIV8jNeqr~1+LRcWk> zA1Qnib_&n={^~^35K3fHasD&`Kl4;NIs!D$U!AP(B|H@k+I_mw=xp0e-$KV~a}X_T zE=~~>M3d&K=C+1|qzAz}jzlNlD#i#?r1`YjYWZQ_XzpX#V>xWSWm{>V3-58h_fPL1 z=x_YZXTI-2-{HOzAG71U^|0xVE(yKCBf&UqFZiRw=~l6Uu!`Tv{l%Fo0#S{joRgWO zdGtX zpVHE`nVZO7k5o0HPbzE4EmEyykR%6Z4~C4P!Vw{&6w_t?(%0xnpD#N^tWsQ43?K?+ zWs+F;E!TXvm$aF@k0MF=n0!ilFbh3ZkABF!LrhNu&+R+cpZ&~ir>mo)er=|;YCNRn z25X=e>KaIZjeO)PsT=Wo5lh{SdZ7J~nLY#>)(q8PXQOAZT+G2Pn_BGV814`%UYhxBn%;V+-VYsh;{=;} ze|bdkJUvAD1OdgJj&64!|p#5Z|g`8Gt8{E177GGz$0mud=5-%aIt<-cSDx>U7EJxjPD9z(=*7~h)< zWT$~kJ`*|V%JNG8rHo0XMJ7DSolpmXO*>005-34~yp+GF{J0A-%>Iav2lGW>`03Rf z)hGEW;#Bxb*9^OjJ&acj_w^lNgP&_sH5W8l8mYFO_7A#tFVZg4MH}>{o#skbUt49{ zbL&oPsMXhc%evWC!JgoV@*e5a#`lMBHh8a7{fd0=`L^-d=BR92VIHL4D5}Bhts=e? zleCw0_cbPQv|7u0>SOmsosj)>2)RPu)IGO&LBaEal|^(}8|hl2mQt&nL_C(YkX4Wm zQ#_~sBGSK{VaP>Nb!kjt-Ga`A!6mWo>9Rlai}Go*)zX$yCv0`GY6mYMd#t0nn7*ty zDP1R-Abn3LsXnT`;3EaAn$vQs3e}$J%Uu)-GzHoTnhbS4)m^fWB3Qv8*0z_~q`Jmb z!V@VK`SKv*o}vj=z`SMKZ~?4~zCo5M_9EuGn3AFT&R!;$s;&%|zmmLlca{8>&L=J@ zr;-E7Rf_&{nY5~elq{Auk@G;~I+78}OyaHVfOL}7EZZXQrzleXB1cp0s7c^x{=?|l zS?XOvH_aNbQrGcIxLK;Fu)89-f6rCB*(flISkz74!!=e{h{(uY*lut7EHWYv&bYU+8G(yydO+$@kgso8fEpKZU-pef(?r zvW}tF!-m=-YPA5Pc%VKZrf6fdcf>V9EA@7)nL((>5YL<=ljX&3Wl2)Om4bdnElTT4 zKFE_4X60C7rRtOd&oXP0bsoszVcmP!UnOQjp- zBgx9_3O+?#FCJ9SXO<{jl1Z*qSD~aI(SXWf1_Enut(uCex#^6+$@o8l8@*^AaL1Sd zO_qs z4=Zxz%Vqs!8L|n;>U&H6B$Jfw6an&Z=`2ZKX;WD}VurF4=_Dn}y+l{JC>t*84Nr+C z*HI_vY_M-9(9h{;u$>pE1JNa(5I^#()OXq0sOn-;U5cunv>c)`U0FvDw_ry6AY8}S9Djj z=d@R}ceM)LXYCnuDp%n^LGwV#Evs4R^wpDi_QTfAo2w>a85 z?>P^6H}d)9^U3#|pWI*Kuk;(}P22Zc+8Uc`Cks7=aY7CsFSvjR4hHTvUcCWKk+Iwf zcBASJ^_KV``LA?$(Z|B!#lB^iB(LR>is8U48p>Ws+DNa+z7osGmGobVSEk7(xsDer ziyjyH6?ZS~>mnsnB!%u&cN+;STccP=kL4(S1z&^fLQ52@q%GaU-6y1nh^?fInFVg; zS>_NbtAD4btNL-X)OXeQx&5kFxT;$5ftaU!KpL1;OlxL7rBHSt82NB{gyJ$ejM>4? z;qJ49>J4Qi_bGQM-;uki*7P@O1^JKSmVByggG^3rSJa?pfffCLda0~Wbdoic60+9v zwTf|MC>=ouQBRdu6+4I!WJg++v&c)xK`91{3UQ{eo7or=iuWfLerkO8Wcq?PI zSh|_Fm>QW{nDR_z<_yai$eFS|z%JXtR>A9@eUS5tcVpk{z9v7T?>V1I-rby}eXTX! zl&Y6$`tb|E*gwHNQG0sPw-@(|7GbXXA^VUyf+%>2oRgk$^(cK;e7yK!$&j-D+&82~ z^t)<7e3n&_J(LcYj*wlDU%(!fEq^ClC0XXGUlvvRt7K{EgtF(ZO!rZVS@ufaMv+SP zWwgNdV%SB@3-UYBMmALvB|1#=!4amyidh4gTNB5saj88p~9#Ml|$P+md|P{vUIqJPk8)IFU`-62nq)5&94@tM>) z)JJcE`bEuD(^I8`IpO0>xuN?W3_YvsDDKw^$#J-#tsHWnEI40*^@@YjBX@2k`P zqxII^*PYUTL*MmcLjfY*fyP9`cpzm>^>=j={Xk%6*9_C~NwrC7+HC4<+HHz8FE`h; z^t2wZ{6LI;#aQIvKsvZUJRaP}-Ga(cx^E!iDZ#G~4 z+o;>DYpQ#Ms8~yFW9?LJzBWn6=*R14>gVb6adzyl8>j22YY#knCh+K$x_LSuoxiRh zyykRh!8Lt-L!f~%9M-?mCt}~8VW@1ZYFuX=V;pa^8(SJ3#%ab^#?hucW4bZTm|nRn=I*K%6 zHqj5?E~1g*u;LTC<{bt4JW*MqY)%GKm#Nyc5uF)EpL%SLt(H>kBIs#9Wk0frY&d&>ZNt6>X63B( zj`T8&k##U$9)o9roINZ3ApIp3vO%mXJBO9Pm7XQ_mA+?o0|(QOX#;dZ52lblN>8GX z(-UAl+>_bEd}KyRe=!%C6_BL&i(W*dpg58NL*WDK`y?ig>BbZ>pP&}vA)P8sloC=L z9{oS)6yHG|b{WVZ4($dB2{#~HW*S*f zj)wW#iC#(nrbB@3SjogQ2~0;O299q!td%d(Yv`@?RJw&JTExs|7BMH7pUiw_0MiN1 z7N7Y5<0KBwm?u2G<<)nBB5gfYN%~X&qk2&fC?Qmw6_BrIfDz_T2hmb`7pMq#!OmQ)Aygk~FwjafU`!r?iqK5RmXSg4HwSd_IQ1S9 z#(t7_$k(JDRBz*{V)6_4<3^Bm;FNe5SlyPNz2KNQ0T|ZapoVx4{Q6GtxT*)@@;o>k zz64h0FzihBiZ6?4$Tu1yUiIHG-h=i+lVQK9Mt#tW$Z}*7QY4ZhKSUTJKt_pHi1?y& z!ePRN!lAI{QHef@I>VkN9PvP^MH!+UqEm3qR*Npcbt^@Nz=&FpTt|9A9-$o6eO_28 zdJA>Ms?Z;3B2*Smz?rSUzQWH%NW)nG4y6=O%-#R<%AOBiZfC%wE*Qwt7C!zwkoYHn z%j^Oy>|5~p4FJ#ITJYQbOQ^_qL~HU35dfKs&w$Qvp~vn?3V_)^4^{s#@Y^i~=i)Q} z)hGslgCY;oiY7qXhJ^eMtkZkK4i0Y{fq3FlVo0ho!)~`9)rHza?SMo`cR0$kfU_zm zTC#|yk-6k!IO55mWgHG(>uX`1wi(XF8c4ew3ZBcWfpZeT`929h5!6L^CIz$0FVI%s zhUXB}JxDUT0kqf!c;q|KM4o_uM}eDXD%9&H0GGZPIQJxQ1kM5_K@PqjoZ1Rtht$GM zodU8l2?%2kpunIB095aAsKjJ|mem1NYwMuK`bMG#3Rpy52K_=i;t#OVQQ&y?1GxNj zygRU&&w*<;|387w0lx1WXo)6+$LIe*A$IUTueMI0${7S+|1G|a$^ZGD?*K(!H8}jH z0~y=mo!8=Ay#rY3$)E>lac?^Z#4ZDspK-tphY(+2)|E=e!z(QN@0EhUA?*XG620Lw zc8BqH90=R z&jEiqBdFevfnQ`S@ccON!8ajOLPop-I^O|E@s@<2&A>^!6M3N2YayAJgL=S`91nWD z2Qa_mMd?@1#nfY1_pl-km(qFrk4DJ`M?4e0I9tglsz`c zR(OWb2kx&7ZwsvSV$fIwgI-Jyl{{zAGPDMDNM~TB?*d6a2KFL1L2+>ueE+_|d-?)D z)CR`dd3gPIF#a}!rl&te<4LG6VFfNRsvATYtNvbSgmUqJg80!*OW^ z=Oz@+T1)!rcKC+pL0@uS;s=_QWiYep;c;(34^{*`;X@)l3rf56Bt2X$LZ;!Fyx5D$QcVgXR(H^8s^ z8>|pc0rxio&H?xf;Vz&w;6c@TIsA4xII6>$1JiAqq5%m)5`?|+(t7Ojm5JWYGSoh%CGt` z8m`aFFsi-b)fU1}AUvlf5u*=i0vqA{wtY*=0O4-} zolr~C=T*2y>%aqd4|rjIg*(b_7|RRbQ*?#n*y78*0W>QunGrW(K1zX=;ySoqKH&pl zR4j-2u0>Zl3m)H+M_>fif&z}IKKoPMU6ea^;?`i@Stv6g>>7adh3$JsJ+dzURv!_ z8C#WH``*$|G?7+naK}aNRbHdLKDmh;-)VX=CCCf=kjCiRR@Iu?&5f(<_eHzOO8E)h zEYmA)g#pZ67w6rB@EKxN(uy(`{EjD(%u@^s%J`)}g zmLO-vQ$g)M4!28|QzY|**-F2LetaU3%GZgfzJ0W#XaEa*Yg@yupHzB>q;Yzr7dqMMjF}kYCx~ zin*%OO108oUd}v_+(icP-8m`tX`Db_fWR(H7MIW!itXw`1tqN^r%~19e2E?z#z*<{ zguT#7;^mSWGKhAA{N`26dv-San_4fv%)f5AUhiHVSGujhy>NLczq+7qy5%!}jO3Rr z#njPrmrthq7;}3~8TC&%+xonYs@hVasF`B9BrGADh6kv#P)R9vwqWz@K7cMTB6G;D#_2 zs$Kr#UBqDNN98Z*oTX|Rd0WCu5M|R_vMqn??#K^%pgfXorYAFY;Lu|6?|hB5!Sai9 zT-1lYrXAvtZJK7TaGa|zCjMACwb9j)bv-R>xEkI=ZlcJ*NDX&976kc)RQuLCUDkkS z0+*natlYqz9gRT-62Yn$rt^+|=2p5F&^rjAHlrh( zhgCRMwzmw!{wO{=jrMW%<#`fr$xb75XQg+=cX7{!FD;QUG7i`v^i zHJ+_`U8m!^;pudH*;hrOYNF0!c5>4=IV&dcK2#1XF;xpKUY3XTXPZzoLUGh#j@xPX zqfY+1U2>X^6#Z(rQX#C_Y$HV)q1nFOI)=Yka-2P+*~0rST5Vwd9hE3c^NvQ?s2Wez8@pVg-8#Jsjh!x zlVBURL%2;a91mBvcUk5=(c~}ktv*qjS~N8mDHd4&QBw@*u3v$WNb|@x^_9LAOlmq& z^|pLWEp1hCY@7q=JDIa)ku+9#$P#C}CwxqNqX)z8W{1Mnx!iAy?-rv}tgZJcT9Lak zFS+1fiEHyR`NjZS?Az`OViSW6##Q3m91iE3#joPVpO|lJ{`9PTCRi!+)HUmZbyJL| zoh#fd<~gcHrad(VyUzWe<#$7E)v@A~qHopP`Pb+WtR&kIQ-<)zuzY{jCCN zioxG$_d3)V--4O0{(n}uDDj?MNqFbD{8hvC*uHRNJF65P*s-0p#Cz+}# zbXZ_|tp9BItM8{=LE6y=d`Z*e>Y6$gCqY~<3)Uw&oHNXn#b5+C(~@cV$Y~`!iLQ}E zNxRDqk|)u-=v^v~Eg{SC>%e}d674}@ks>fQylpry%3+1_BGiSz<~#Tw7^e?&j#7>C#PG4$lbVk87A+ zv7<7jiR9FCWTJX$rGBeERdG)`2KX9JYzY~y?4~uTRxq7#g^0^BG5qPb>IC#^FB4mYT{xFG?fBgVM|g#HPy1}ac$^2x*_5oUcBJ8_KFWB& z)KmL_)`?TFx7Z5dG|o@XPh^mlBGx^8b@7}pHf{_Y-WCwE2vUp59HO% zqi*4sM9$nrR-LUYzY6__%V2dkM$!hz^_i46!-wwHciB1ROm&K4k>rT|WzE(KPW8-& zM4JqWWbBF@)kobUb3d0HV;VaVsj>BL8r5vJGkgR1xURx!(v?^s#DqeYd~4D zkSY@=^FB6))OD=i((K3Ch3;qcDqNRovYKNIjB=iIm1HS@sm+HwS#U-;5dB2`R(~{Z z(Jzs26d&TSP1*HnjVjJ;WH@nxRq3}lX5c86j(-TS4l?dHHdjTJ1+} z7UII0*e7v0k_8>jS3(^&ocu_&!~ZAxg%nBFP~KD`eUP=tk1P0!?lK-_M9X=B4QzU;i$n` zBp%r*Oh7S;mOCj1u#YH(qzxJ6BFgT*h6bJ^BwSn@_|F zdKZhUmTCEV(hzUFt$hZLWPQZ9M7ufnEyHaN!YVwNxyQDbw^yE3ETCnu1DH+nsCJIsgA~`jcoX3TJ)|x8Xpx0Wah7mj@EZhX z;Thx+nX7Qp6==^ZNHSD-&|YOdYOA#U;Die`lE17*c}f0;DJ90@|Ik@NJ>M*xAnr~Y zm}jh`a-+&i`GxV6d`5&&kN=2{!L^_`Z;N-4T!Wpi2D+4o$fclz+rbQB-D#_MD(Z;3 zW0~T!lE>6U=_>ZF^p*6qR6wPn6}5%`7G^pV-2|8?l1=H#wyn`nfNfl9II2a&6X-y zig}WQ$OMNux12!`14N2^4o0R@mb$pDoWg zRl=6F3#nSAPEw^Pqm-4h4^k^NMRE=MiF)I6$QY=rW-yhs4>Oo)qG|Fl)?b*&ujPwS zNC;<&*m~J{MZ9XEny>Dt*v4c_vXD0<6+-Z!{my=;3ZV+n0JX83coo!JkBa|+4(%LI!;69*?GvOz@|k%ibCvIwe^%5h zrzy9x;oxF?PY@3(vu^g$yz$6E$rqYp`^mi6V#WbF4#Q}SQh*;{2VybpF{^HLgu7cpyVh=00&005@tBzDDI2=f^O{=Ay+t6 za7Qp+B*muV`LI|2C7uTfNw@H6P#G8^*^g1^HuN5rh9zR|;(ws&|Aie9Z4>n6r*lSH zn=SF2YJn76kH>3&um{L#GiD$szA9 z9C?KH!i$JZsui<9dSA9nnWG9-RE4(h;C<;Kh=o5I>O`xyxpaQiL)B~05 zYG82IvspmTO_kF0ABh*XRd|f|kJAb|<+;4B!kuV$Nn3g~`&hnAc|egM%VcUP8}y_x z@d-$dHedsQ2t0$nKzm^Q#3^_J@rS$%9*U!=kHkKS2yeiippMvfaWGLxB{Mz16>pNX zfqq2JkaPlHt$UJbkcamceD<0_IXi{X)9K_vI0_q}ny3G-N*e*y)J5b|>Ljg%HGT=y zktTzy!UM@;Vh8yiDsXe48-oy!@hspLZ-{60mA>8K{e$$KwYeQLcD))|PtJp}Krd!E|Du&B{O7~C>z)S4`R%)AgGgQX= zgB#R0e1rH0QX}}zTgpAe*>1mKKg8kjw(`@38_-#JJJNyKAv>(ps>i7JsfrYC@?Joy ze-JN3_`=EjaQ*}SSz#ISOZ<|!PbDxTr7GzIU~|f0&LN>+q-NGIJcg!y$ZWh2n~o-m z;siT*^SM&42ROlg=l2$-Af%X2+@{_#1KF9-FzP)587*AQBACAAs6i$_UcNXtOs;LMa!ZOFag+z~^BLd|L8` z=r+O1i`LOLau9igSS1;TGvW)tw2X$X+G6Yi<{+*Rt0YgLHopZbjE5k}r8Rg096267s40Z7Ic@2@oQ7^@*J zk`B~ail(Q48$blJ5&CF4=#RxPk3a**(08Z+Dg@Th{ozVoicc4}!A#I?8US4)EqGa8 zz*`Yt$UJHoy%y3M55nU{i_=g6Qv6>Ju@C|2n&dSx8|u1eh`o|r@G|$rE@RbVGohjs z%pqw!8^sExQz;#x#_z)%z8ftD<-j#Kb}e}^Esj8)z`NrpkR^QRCY3l=T%a?tOHvJVpd;Z6eWvMz zp43p&=IV>H@MzRLhU0OmfrS#MbB14jdZvI_d|3zY#RJ7-4pixO zgO|Wt=*s4TGs{?TQWyp4!X2!8Z_KwCja zyDRbq+!&6a`Peb>aa;}~H5$A_e^Je#8#@KspC7XGvOzKvdr-Qck%N!vDylQJ2$+w3 za5uI=kKrUfN}P@cA=gChM42KlWGbq_4g-1C;zU;g{fL&d=@v)FQ2d9upZGkMj7Ecc zelm1NgGC)h=a4m+3=fgqAjW}DL`$aVUdSMw3tkmXbPPi<$LTc6lT4Gi;FZ9V<@k3yGufcmRhkk_|9Gn`6aL7sZh0cF4Bo4)aGZ!VA1THbEDqrSs!Y93&4>=V%VB zVLX}dutKEiQdn2DxXtc@<6;93uT{_;I*B!+ZdeU4F*9JSofC~hyGRD&!RTOAho^{Z zk#blOy5PNlJ4}FFQ44rq1j6}h#D-zf_)bV?JwcGv0(v8j)2pdYRB!SGF-H=Jzr;$h z1gs1wCY1tg8m1SigS_$nG^Oy@U>49L%p_(4D>v{mB(DYGYs> za2+~YYoOEqocuyiNS}Gbyib+%rH3FQ4uh7pyEBlu|2^_@;Y8q66KS8g2m-rOc3Xba%sGj`;KbSDc z(e#vTAUcyqDhe`uClHS%kcuTfhm;GC2v+mHaaP;E+3r|}SeIF8+hp4oTcKUcodvvg zYvDYRJF*vf0ICQHq7bbU-W1Ff)bMZd^LTG~Q~9m=hxoIBUXnncgD;N3^LOjS8SN9(QbuRhLj-!KW>(M$Du{cBA( zRj6W~tfMrZ>M1G59MD+MYfa(4wJ)_ju}ZDA&3BqsH%(~rZqhY!8#5Zh8~*<27W)ek`LrTdaTqa>mW~57OJw;ahkUp zt~OJ{YTTjj@Idh%)QsM2HfWL=DwIqHZ`@mAy*LiDAwfuhC{PGaEc|x7bnYt-%Hi9i zY`b9xv(U2H(!r8unQrZ3`)mv3bO6=IY{6pDGvorc7)Qt&@ZCz5E|kd>Gn57uu3o5q ztL~-wq#3K3sQIDRX}+nqsQuJGf%CnpEKn57F?l|)rLNLk*!gy#4#1W49XNwm;9z(g zxQRW`SN#dy@z&5+T?XqPJsC%SfYj@gR0kL}U4b7nutlJ;yCPqyh)~K^p6b2oYnmTg zfxf39+t}7Y?)b>b!8Oc%f#)UfFu%L4tU>QX4~HL#9M^7c^rvWEduim&5QFbgCxvRf zxXQApA}F{2x43sNGqg{<(_hHQ! zrhAUK%X-)KZtvYDyKQ#myNq`lZ|-lZ(I;sWRT;8yCWqK44n^h&%)FhP68kOtNBbns z5iY^+FUS%;2hD6Rv=-*4E~pwb0hnMk@44O2n$$!$WYxB<5mkS!+Fg}Yy`W}A-MWSa zO&Jy^dlt_w%*UWYO>L0I$d4=Es$A5k)t;Jl>dUG@%1GdMmwhS1fKH&%)!GU zA90)HDiJ|CQc9@o&zF9L72ZuYja>qMMxN3HCLc1(hY`2&RZnML%K<~w=z4|~#oU;cBV*TK-eANKI~EkAhp_}z=!@72G`|L$CLuKovKLUQGQ zRChE6jaoHd=1p`|Y;f!6bD>pP@S?EHHV>kn zww>ONY!}qFD3TkY3Ka&t^XlsCt?MC8MkZUVm2L&6e>Z038((SW%8yVfn2rAeikks7Ra1g(HMfIc5>k!c0}Y4*?<=;zj(Mmcg8Ry*wWKutYdF{Ny`g)P zrFn_%DW?ZNM05!?;!lXB^g8Kw*--f<#WdwvC8ms4YzGI5JM3KP3wj835**jeVgp(r zR0}5aPIJQTr)*q%m3;?y9{;e=gpL%eVefPVUSka#AghDb@GaFSv>iO!IsyuuD8io+legKXCqV)c~TBv!Yk!xpb&+AU;9~fdx z)6G|$;@qk{OZ~iqcSOvO?%&1K>wUlS_^AVGKS@HtSQ1TYG}K(_9NO4XzLkqD5#sa z)m)+2iH)={(i>oiI$SwYxACznR=a7?-+ngU(+_8LlwHmwz z$8jlPS9F=!85p2?SW5t71%7ldK$pEtxIwr}xK!kbyaDz8SB%8>N{pn84ws&lT~(B+ zR%(R0MEz((n9;$A7!wUwbZ0c@%f zstI*Zn=)*Zc~3-{;viDMIJ3`WP4alCZfO;%a*M1$R>^)~N3nz1>8uyq8dOMf*g>_fFcbn$E(fyd4n`>KVv17hNoWm=J*Jh*B3+L&sv2NqsJ9`}Q zoa^1>JD^ovz{kL-z-|71UMlCl+7r|m{=B-J!hJtGe)#vI*ORvoJ3QQ#-sK7L;_Tb3 zPe*>m=bx=8YOLp(@b%0KMLekTj_Q>9EL~6ic)f$6#87D*VcKqLYl<@Z7zq7Pty&YO zS_!^Le-&;@cU3R7T02MA+u&(xa5&)@SimS7}Za7nmRiCQdTCt&`uHt>Atg4`DOLbhWrS4h1TjR$jrA26~v}b?{_PAi6 z=mxp~|3iGC?lb+_EO{^GKUJElST$O`Ky6XQs-~#6spLGCa6G*BvyvBX$5S=3fvTd~c9^NQ1l_ml4;JR=%_ z7GjVcPvlYo(m}GGidCvF>LBeAU9Nt;A;7rS_{Mn2xYyXrc);*n@26j&V{}WkgSFn; zcx|Beh4z@1)y>e&(yiBB(Y@8l^kpz7k)}L{%TBqjsh&&xM8V>SKJDAain^@mvacf@ zS?oL1@EW^R_3FFx(`T1O$3piW-%-0QVcW;lLpxXOcRRWNx-28+d;3z3Z7LC|K43oP z?(XB`SLZj%-{{Z!r~3y59DrP=OCi@oE(Ses_1Nczdz#ZC;~1Slb57M8V$_{gA6389 zYqS$#-dp4{#Us#Xrr#333*O;weN3ogwRnVeeZ{(*;a^=dpFK~1)bC;3!=aC!KMi;( zf7kf=^6$O{11g6!_2du4L!@D(<60H^z42M#*~N97 zd8a-@bzC-+!6}TmEcq*OB1w9dG*aH6Y|<>(pEMSm5*!Ssv3f`KCDtYxA}qG%)m2yI z7h?t4xx;d5|Is;VIbM0a3xbNrlqsreYZXn`ZRdF@qATLvWKZc&`EoU*mzZ+QkTut!-3yP>oRhl@&>cGZX3Epdj#|3ZSYo1S)T% zNf)vs)P2&R{#OcmmugzV+y{pRS6CrZ(19&b{7_m|Kh<@bYuZns5S(Q=Y~(q7GuxaZ z-1>UO`acZ*9kC#KLl?T2qR;eRZM%$$dg3e9cIAf_ug$7Xzi~O_g!O=Q?}^(XG@pk6ND2Q^lsw41aCI|@7?2dm@tqs$t&rQQSm|JO?5-`(rI(0cLEX9|=nxa2PC6D6vZJ8l`B`*UI9YItujD`B{ox7u<-85NXIzx~+MaG(Xq8x0 z%>_*%&2udatZi(0wp#mKZWWiy!+CA_FNI3X8Bc|EUM4e#T`4PK#j-5fVfiuG>)4fB+KK#eB*Krd~X?H1UXO(MUF6@;~`H^J2?Iv9j+Vz3YP9Ded2Ki-sNS+|lsz=B^`Q=9 zTz+`g`}PlT5AGF~7j-Qrs_Uy>E^%&g?!BhPR0dsf_=YX6%>IHu?tkgd(WJfK)3$G) zzx~>dCA&fnl$~_A{`P6F&ujAo>sJU@Fw?ZG;}Lf+pXvUG0>_1{4C6(9ZHLFah!u1? z8zXAFE_A+cqVrd+OqNOx!rMVlRt25dN)i-d@;7QnV-F`6_YALU?@nGhuDHW(rHSz6 z?ye0jGG=f6>hTeM_xbICw~sQb-#z@`oHg&W_qV2>Z~qQ199D6@A)LDt>&HA)l^J7Q zFZj$4;zVp|XNZ{>YmU9u;d+$1HP_$KZLo2w@*EwG-$MQ;{3{3(dW$X~o>-RH2ae1Z z@-|eEx6)3ug*+^Q>Z7QTcg0>~>DXM_*aqgUxAiXd>uWbu2UYeg-&-15GOVOSX;OJ% z)uj4=mRep4HlA)&MCohI*{(yp`uleExB3tCpXWQsOW?M{aipP9y;j~$I*!Vg5O^@w z73m}F%unK8vGujoG`_7L0lQ>d^|b28)oW{f>b})iHYQna+lFv|@s|jDLW=EA$e2=t zc66>NP}Cln;MXW7rX?A~M4Dl*$buAM%5+t{W}P-%o2NOYK{egM-RF?}IOx)o*`87> zD5s><7UB{3nk0#i@B_G4ZEr2Tn|V#U8u6y#&0;HNKf)QvXGIUdDZ3l-gmRG%l)ZtS z&kUtZwM?~1RRlF5ktR=b9acml{Vn}heXV|tK2O)A&DIDsey}Q8t^BAkgAcY5 z0Pq4%2Yr@1MS}D7D(DZbfSyt+CJ`&eoxq8xfJ|dv$p)w@wF8Yk9bH@#J;(XJ4tNmy zq>VT_wNpZmZhh~^PaY^4aK6v%*z3Wr4x`ZcvaFB$?{zwR_TYtG#vMtity52J@4vHV zZ|kGn3lr{*eWUm_u(YV@ny8HSRePFFxV-e*7;rvpX**-*-#x1P1jKFXccT~8h1>RW zprd;L&6eGkK@6M2*mD^>EexG~$@!)26Ptt;uAY!s0nQiCK}n>)aJXO*Ka;l{ zSl=65A@>evB*&LCk#hh%4?Mtw;~}h}nk<_d&(x|aHO> zNl9i&H>ob`hnc@Rhr4(8Jmn?w{^r%)bEW$ymkW+TraWDo`jC7uQz03LuHpZ%O>W#< zy|!#o(YySH+~STo=)BxM{8R2`5dEh>9fcR2QkAe7$mjrn_#WfimgM7r@o8 z(0QXvfXfZ%r%qqYA55bRnc5!eJ&GQ(I;IQV3Vg)(kwd6CbZe;&c7)3yWAm48mcd}k zFy%W$n&&vabV_s??Ka%Q%X^OB&wyPayTc=+9<;w0vp+VxxLN*NKhn9Yw>J1? zq-!j%XLQ`~fwL1z2W^cv_Oir$Xr1QW$9z{Mls+d`gSXE$aw0G*@7X!>3$Oy{tXioG zQ+<(h+5N;jNp3*YVui zvc-)<1QArSTH$!lb3?$_uzqcKbm-U7C$?Qo_x6EpriLW@fA&ONgB*QK2lb1!PhtH% zQ#OtMiq8`{ab19?PpbJ^b*1WlHBlGP@T`flD(#sZAD$0?55J1vlW*Z(v9GhtZVau9 zuI^YlsUoU!eRVTrN>1Sjg!LFgPGID+FvVBpZS@lE68(JR6^HkZ$DL8vm#zn0HLfe2 z>&+I!F7*mFMDmsI(LA#%z36z(u0LCUzWH(fXNNzZ{uSld7Ei7)*Dh%k*&c8^2rr^? z$v`;QPvrYlTeZUtIVP^-KBocB=bRgzb~*NRSZVm6kt#FUcJy3AAn6F%5Ce#Gaz7m? z9S;s=FXcLgQGS`d%cN4zB=f`-$Q027!A(%fx8j+3CqYFY#ZBad}U|NQvG&^5iajMTl>!l&JS0#8y|D8Q%u+X-L7{V*mYsY zMQzsjw$~3uH&(p(TzmiJnXLz8yYxHqQUkWzb~x?cx-aC=l;d;GzrN-69QpJqr>WYV z|Akpy%j$PEVf`@E$Z;d_5!}QV{VThUk9_X8$*GOzCle$wfEN3hH~=(m zCBz)4_&g@wO2*-R#A`4GI$bnN(2w`T?qyxxR8@bqwr%y+%5&x2OFtBD%ys$`@%=`Y z)4QhEQ(te&?EDG+J+6>j8^XO!Tu==%XM6neFA8DXtZI8Onje!C;}z2seW~4<$jmTh z2pjOor=LfI(*@&2HJ5F~odp*x+iIg>_prK9TG*jzMrqf|d9}($y=9ZFJ*S4F;3jiI zIYst)K=-V+{j#Q7w_0PYTda4jr)+!d1snx$0so00S$GIk%FSpf{+O7^)XN(+mrOp+ zkKIY{5Z_b2zkPOjg}Zw@%T24)I6GGIUijVitD&sQue_mTQt^S_3>D%k3XsS-JERRWKME?@3`L4 z*HLc1Xrdt(mIusm9^II`p5Kz%ZCQ;e!s(WyLx-v4r1q;-COpZ zI-GuL{*^lq`n-Ak<7jba<7lL_yu{(Tk0`vbWA{GT;2R@;C+!x7B0!@2~Oy*tp6+rn-4SvHzqd})a&bq z)(L9wRawiD3(Noh{XQzIQ>M@Bj<2_5T0YhOW{b47$Lx(*u5^zk!C|;-vezB|f}q&2 z*KL?~yP~m}12Lmw#&>XUuZeOB?;QNh@2vY>2VA|43Kp%mrq=E#|5@x^G`py_czxN4 zN~$KZE~D3X~xM?rmLHIQ=o%bylT_eM~rEE`rB)&t`G`w(5x$ z;?mke=lsh#jeoPU?SC$356?jhJW8Hb1~p{aJ(0DfvwWWRoT<)v zi`zY@?DTMK<&a?Pq>s_gRV|gTkb+;NgeM+_Y!P}34)MqGlliFvSD+mGV=Kfs`1ll zvP)05h3@@5#(O9{8290>AMb zvun(*j9vC!=$@7P>JNFG`hEG?{a$aVU-QeR+pdwN#!5e7yF)!kCNz&cHBLKm$i#)? zuO(@Rb?Z-dDQxp7V7TWyr$*y@U9#q`QX`9?&SSu0*>W5D*R-pwC|_71t2$njQNN*S zgmsO54QDrZ7Py)Wvkh-fuk)`QSrq^8{EuUw_kV2uF#S{Yx3FwU;h2hE^#iTPdE<~b zz>FV|-_#B;hkE?*U*Gy*+e;l?yAJIU-1A`%6RfVDw|9v^1NV7`n#JloYBKUa&afuD zPF($~;!C+p`Pwo;>D^-IqObXNd7bn6x=`>bqF)^3Ed${5G+eEP_7n5=pgK zgzZ5LqG)g*N)w>MlcK}G*!CvFnANgbK+(Qb1*pe?_tRWOiri5iDZeA11ncflRgUt7 z!X&#&FT|?^A-1ym`pVQ2?}8z@!kkGt({s<~-6`-Z5m(4-((9v|pW6ijS9Bo$Kk|{( zQ<3y+TYjT!FQzRXqQnAM|Dq>QLK>?5DUQtQU*K4y};bKitY(a z(CPdD{#?nNyPQ?rY#uGph=wCh;-iuWARv32XZmb-fkcIpT3}zW*riU2d-(SLhuT$;4zqpryIyPkCPP z^P=g+6{YpdLPGu638|1oa!Cm)oN;4idJ5?Mr#> zL}B9R5xZJEX`$m%Vx+IDqbsX%5kbf zRX=q%^$>NoYMe@^ic_9ZP>M=i=9QxXm)R#4^&Z?`??=^HWt}xy<+Kic|ZVn$E zCYt9vwsHFFbQ?U%m%CnfQ+arJ{`OM&T=EtBO9M^^J_())De8y9mW7^a_1u+ECm;uF zwq&PdE=y0iS$?_n!uWHMXC|M@KT&&Z(UAd%dmITl5qf_5jbD$wKBWEis*2|xrr#Ug zeJ?~fbnezypD=W2!tnfIjfpoBn)|ozO?E{){%WU;TpX4WRPJ}ug_r62+EZ{A-0 zxb#vHzo?|xvrJZbzdE>Xb$xyPn)(-Y)9Pl|*4H34o2xrjeXqzb8(I3k#Ho}n`%*r% zYIMz&I%7k0!-M)S^;a6MHKo}^f;RYCwvVozbA-1;;JVh05!|RgQ5lib+f;^oh6RPr z4}KlM^MB{n+Kua|(nDX0h6E;lg7tk}XyxnTcllFu-ek+OyJb)Rmyo9`Dk%M0Sz8lb z@6s67yw9@EHlEXy-%e!1MibBJVQeS)EX6~`LU1^(WCuZN(;;d)P?HORLD@iz2Bs&F zSttF+isZEXA$y3PC=p_(g^9cb`zY%P%WLZx8*Ov5`dW@O{c1?9ji@?W5neH%@_LoF zwo5~!#lXENJdGuglcf_B1!_v4W2|@R;aKL#b1HLcb}DeX=wx$x=seDOgi~wtOGthR zRq5H+#3}TvppyH{e%p2&SbRC`TT3`rjw@Hk6>)>O(Y)dO1;SKhtN1i=i6+?(@>-=@ zb6ooyDhWIEQvCp3sCJKvzMR;W4UM0||YN99B$2UmK& z(p?jy4NGz#er$O5=3eT}!fW_d!{uQY>}SZ6H;$AY@ZVp*KjU!X>40mZCrMdsp13{< zQ7V&MW(V@yd3Wp8PdO-f2$DE$NO8i+fhYT?_YLTc_k7ZAM`v!#<;eNLXS}wXKCrEj z+s!Mg!%AI?iVF7?-z@u4nOps?Ccfra6}aXJ6f1pRN|d`-{H(02%CF9^*;)I$ zZdtv);Xc&EAJ$K+E38>q&8wMGJGiml_FVXhxFq+{KXfd2TkcirGu7{u|A1D518xUC z4rW{1!tO>Kh&U215B(8v(0ipzz9B$4lInvdaoaWDsJ&I;TZ$FE%wLxGzuc#}UGtpt zFXb;U$SC+*7+suNYN{Mr+p%d0XNIT|*E8E>jIv%i0TcwS<%ea5*hID$dx7Q2cCwTd zm@v>~IEuN*KmG-7U(Q7PI$Mc#xy=v!aDDji1qGs|P|Mv1n*DxI-Ki7{#S}ILJ&mpd zH@?029H^%`69Xi1cpA1B86kYhxAFGyvjhu7$3fLGl+30*K!fe3n5*=I+ESBBuHLPF zuigXB!=u#`)jIV<)nVmQ#ZuWb;L9683$H~w2v&g;T0B%kcJp@&7od;C;8X$BUT2s; zo!B6mO*R>v-kzxEX&>tD>z5b^<8p&VU$0xK{;0)alDw(<=K_!xXKjEYQZ+uZJP^u!MQm~|bdM6Zu}5E|^= z&G0}{-_)t_*wd=RwPv(DH@ zR*#0-$%eI6%gZavbQK3GS5@_>`dHyxt}R81-HLt`-78U4bf`|Ld)>GI@)z3tA4yjM z7uEK4XXeJ-o=&<`P{c$rFrM9ojf&mf{kQw6*xlVNw&=546ctbj3F)5s*6_ja&fK|q zVxN8XIcM*+Y^Tw#J6Fsrmw<^qqGVa|jG}IZy9#y`$cr|V7%Q5~O2}Q@V$}*=plP`^ z$|b^mp;v|P_8@u9k#+JKG>j~5THY+b>GVi-!+YVoLbCm`Jf1oYGZw0!^5JxvY(mB1 zBJQupA7h&NXKM1{A0a=Q{)kO>OKtM&Qu?5*W_i7e>B^q+xevr?Jr z7jV2s8NQi1S?$h}yQf!A-~Rrq0zL(t3#jGa*|)xzv-@pltHol7S94-KyPTF0$7LgI zL#xJA)~nQ4_N=^H*#INe4Zu*0Kt$UDrl)X69caiiH*^ki%X4q-`N31|RpR->v&wV7 z=Oj-*&p94(?)BZ?yF3IMI8Aps?KTx2J1zVpf~JQ| zuQernM!mibOB!u%64|_Civz9xwi?xCKFaD%-qgpT)n{Q*5z*;V6)l;b0%BZ5Gze97Robv38*`W`y88V)#Hlo8 z%es}XuGn6cXOB{_)LEKlM{=0kl~!o48l%9!=oGL#G`SAhaC+mFkui}Q8}(}7T$c#j z95OJ-;veC2!(+BfmdUCe$!Ums75;^nvUTaIpSyo_|Mui-)Yo%g%ai8)h)FH}9r&k1 zZdyT;(pi;}vggDuVwW~ZtF~8E%KfB2%mqwJ-zC?`?|=io~8r(AZ?cFk;n;G z*f6FSMJtr{iIqFcPnEVWc~%@;(yuh3jIG#H+1j>C76S`sJJnP9gwb-L@Pp>y2c9J~ z7Q0FVRCUy9O&866%?-^6%>?zos$|K8r~d-dq41qY|^YQ9Yu*KnJ1SDS-VPRnnsOYr`Xo6$S%wSoA&=wgTuJ&lr@8zJ-p?8u@My5kh>_ShrS^OM&= zuYO)Nz5eGJ=K0KHfX5d1Ms8o6lP&#>wY3|>L99E~PZ4k5XX|21wmq@0lpT=umA$a{ zu)Emr!lU7{eX_g*(Se#m&tQ_-D$X5@lsU|7Whl*1v%vS6D*qriD3at;4xYcHheEUut!xFB)`XHL(1`ELrdPbIO1D2yOb6<+j=v*jtGny}m=-%Fx^DOA z=zZ2V!QT+LGw@U3h`_l4I{$UPle`Ce8r&Bmrgn_Q$z(8G*Oh8?nl9=?z{Q)Uic}Y> zXKBCd`p@O-0B^3_gy^Zf6@0&_h%lTd{UR^EG(N%X|&DU zb_73b@TFy|&YgRY8gM*j@i6`HIl~{vRu0`d*uP)v9&YWa=AreT2A}e5ZV@!z-2aG# zs!Js+@)Uo1{me{y{3-5z!*{RVxBJ}n+n1kUz|9LQ@v7)y3z8+sS0WPZf69;S79n3M zSI>c`{VmNnmA{zDmeB^XwtTE@W95K~1?7XvjTH+jpJHzM5OsuoATnBS<8+I`g?86_ zMfvs*XkX)KP5s-+OT!QlzQgyoR9?n`ku*7UkqK;J@}opUB0WzUfRFVFLz63 z!0*Tu)%TRIy04L6?_lMTAt*_H-+Af9u)M zJH%(B&t{*^-n>_&`$(5zmevON7>lWFI&CB`%Srp$%I@XSrA>?D3%?hvDEM8FU$~)| zEA3kzSJ~d)S^kQU(~p?${8sqt{MD?}HNfZ~!PwR0X-b2)Scvhg;gdd0Uj+ucAk7rj za_A^Zm~BqRdgr{%b&y+Achz#%?O;Ek0U)gt;k1cs$Fg*85Mpg3VPxD^H-M@CV$Jy=2 zA0J6M((br;=I*79xBfg_@VwRgi(eO|uKkl$V6xq12O4U4qz2!sm)6v`&E-z_yHkCV z`WEyr?H}BKOZ1hV)-L1PHjFwL@iqKMjUvB?9*Is94Wx9NvQ>U8sQKq*YI@S~#8IC| zCZ>KJ@Wb`zpR|veLiYKbxZJA0+JZ+#cghyo2r`oWDPGa!>pFvjp{ahI_O|*4VzT`C zPl&_Ipg$lM-kYq12fCR$Of^IV*#h=Hw_cbg={0+GeN8UloX+*4{aXbmhU}=BTJuTh zl^PEM%l&?Pckz7V*2ks5sy4UPm#WTlji?&-*s`<&MQ&E+sPr+vSO04K>&~y5zn`Z0 zWn^SJWxM8H%X2Q;QF^xWx$Fex&8?QwwZ+E1*7Ghs-D`P{^_u3j&ug4#m3wcug)V}# zul2n73L-EC-3Rp*@hw|Gy^)97)D<1eGD~bFT-lfMZIu&k+0bn@6)zS3#8KiHIiBvr zJmN-*gVdqAPKJHPO{R;c=B9bZMTRl@e=u^OG<6{}|VL z?#1QuDp|3tRBj=nNHu*)xt^_oIGu$+yqhKws{6pVYOWckb<(-&e}TDVr(uKsn{E$A zxh8cQ_=R7Keu!jAmhz-<)kbKk6F}Fv0spsd8ih7oH%))kkZ9a)DgaADYxweKT1`%O zt=+7%(PwWmX-qAQVTNYEIJPj#r-eea3e2@bxu!Hzq{CsQqqjqA6ue=Jvu(_Bs3>(|fOhA*T9| zn;dF2y#15T2fGFKbm?`sC)Y#jI)%1?AZDvG?KI4nPee#_Y|*f-fJ*+(GR^dNMUMLB?*Cyvq#H6&U#yZ-U~ z;hP=MEVyos={0@^n}dlUDX@7!BmXeJc|NVZzPPP(qKroMI(8Frv+8&0y22BAb8{Q# z{K_i-Gvd#GnNFF%GHPUA$?TGKF6Tzxn4)u7`@5u&E2H_rstj#_k+w{AstG?Rvs;u~ zmFqrNnQN5G0q10=OV;|9MAJ)yzfM9t_G5M>olAU^Z;@r&pW4UCHpq6!YRmT9FWX{m z@2jR%^{uL`ar-arV| z0sYmCSgfg<=i2$Y7y4U<_eM|n=`^-Zu-39ZvIJU8W|=9#kfQskb<%d#e84>F46sUG z=hN9c%6gQRXe>Wv|7uIHx!BFJt3YSp4Jr0e-b6&`YyKvX-X3dGbZd>lmj5|rVfJLU z$2-ptUemmfdOz_V=Uu~lwATmE^B#-b&$+F4z3cM9IRpCdp!EZyPkbzw&8N&S%&#r| zow~TJb8q2&)vtE&)S83Cx7X9wzguT%&E^5u+_#%=YxF{I#zZF)7FlS;^McsS@E%Px$`1yJSya;d&^bJZ1niO0dJTmxepw7Rxx5}-brKawx$T3%lz4jxO`^&nO zEGm@en{xMMWoEQW-~YSY@6fc1>A`b$hUniIHJ0br z+0KOPOV>?qMt9PEiQ8#c+U1wE%GAtIUt3%CN@&2XWcn%h(|URjWuRt~PZ6!gD~8Ee z%c5l-GD&`1@teq}jw@qWIS{b-0Acbq5HB|%MlS;Vz_$oHP{gWC+1yk3k+4L->3DMOrh3V2lb)fc@ZV?cK zE}BToLrbAG-{}DSxt&}~U7NePxh-=obZO;s-sy`q&{7IS^G$}DhBDnYL?*riA6Sys z!G>bj2J7DFmgo(}Ri;;#1Sh*I<2l3U2j--<)HH>!tk=B0sa|Joi54>FO{hSU#-$a#3d9#N6WS)U3~0HL`zaug+2AHpu02OLC^{fcR zY8H{mc!jyP?xc$jwUL$#k(TIsCd%6oB< zOf5Q^tf7dJ?XkI3HLR3XuC6>&rLd0z0wa%=b_JNpYqKugFkT_&PI2GC$LDmYX++u0ip6FaC1Gds(um} zv%3+yzd1J|cDY^pc3b8`8+{|9&*TuK4e4!ly@#9&LV{^`z&sx-VniJbm~0 z!;w!%zT|&j^?OH7VCinfY{Au7?sC!lTfqB}+}i!?uWWR(X;svqmK7~`v^2D6-@Jd* zL6NT_qy`~%TGV_P@XoV?Q2)(2?>R!4FhK}Z0)?DX@uE*W`cq+X|`xyNE{2K8+A~z(H2^9wd6-($NW`)<8sI4zRCUYw|oArf`dho zC0RgI4Xl2`Wl?3+dh5p;mEgbdx6ZUmP8HV0*6)_}=G~?+<9dBdomN|+ zJ_y#b0HC8x;eIlsf%&kS%p&Rof2kocop2>DkxQrr82#5(zE;*nJn<&rEvUd8ummW> zUx4_!O{fo)gSz}FE}F|=6In0BmrhkGls$oOpGgg&H`6Z4B+L~?L7wxu!(e3^Cr**( zL59jTEprhZ88Y>K_09EPb)4=I;-P1&8>$wGJV50}F#y zM9V_#S8P?b68i{wC!&nJLf2*{vu*hf;&~OXH5kU3f~}pM>$>vpfu44+5Z?s9H~t^} z-}+tmY2nq&eT56{l!sZz1&C|_;%r8tark=*dhPL`u zx`Emm8qBn*e54M-PtKR!q-;hj5qD0Ie~3EdR&p>^Lj9l{0~bQhxG^i4i_Bbh7`L3i z3>=g#(jL__V6sdALqRunka~t{f+|~jD6N!E1LvWYEm(K3pF;`9pWCqO)ajWSY8dpOK)cL-4U+SD^t}=|%odMF;b}omq+kMNv=5@?` zkQ$d1{wez1qu1WACchl^%I{73+a4dRpSFDNmpJ6>uWyRf59wZiHrj{bmJEuLXF z&`$|Bd4}z7<+h47<=4w@lsc83DQ;KnT)e3yw(LnI*ip$f%1oB#fepd+=EicXxw?EE z;4NGiUx=;5eL@Q$&opLk(UoKiLMxwc_p|-N?0z5HN&6?60c_-L$bQsBI+iJ7M+z6D z!>|XR8lx@8oP1p8xF7cH=snpd9&<9Cy^}mm9*y0Wy7)Tpwz^wdn`DM)Evvf84`e2g zm*k^uUhv&MSNgUjuh^}`tE5B8*^)k`eM{?s!E$rCTP0!RW#<)BDLdGh;)T6ZeRUnp zM(uLl7+|k>z)w2Nkc2&FeYh@7yAvagW2%c%U9pI7!yRA(mF*}evNu?s?t}j&mUu{b zkcngoxtO|4-J%yN_b}nyUY-G-6@%#VeVU(|o?4^!EZ8+Z1I^(s_#*Y1m0-+isj4A; z2aD2fc#x#PBjFNwL#9wGsMBEE3#EtANpwABq4G3yfZfOK;D-t^K%iT!QmMyl9%*da zSe+L*&4%b}>!<2Vbr-?F;tw7>wXQW{NWN>lH8<3ofY6XBE)gZ*IjY1Rz&*b%b-`%5 zKHAP?^-*=D`UvD$scV3U=7q-Lrpe}XbFAgI<%~r_^k6S*SL;Qqlhbjh?}$;Yf!M8m zu6x~K% z)oOv@l9a!x{^WCoT{hd^qUsNP;|`XGRrpuw?Qvk&@+1e5xkRR7up(ArB(9L1==xw@ z`OMZwG)F$u5dGpGnxuoNFtRK0OEFaOTMg zNn*hbc9Heu9|)tQZK`lHA>~V+Pz;hE088B#%&Y5wEU^*mn>%b*ZOiQ=Wlz9{6b!`H6xs}w zq$F;sa6{~?x~9(8bkJq!?;7$Etza}y09%)f`Ic$6>7Z${sjq32$;q_Yc+2oy{~05j z$=cm$BgtqZJ=M2?T3cK78HhI1!B?|gx&kb~aFxI63{ck1>hRStwF<&=;8uPA;zT?w33>z4!S3&)*o>I_N>ry`YbQ zrvvW#{p)kyYo^CIH&2&yR+agw;g)ugT9j7s9oS{y!+b<^R=CM~%g%sZtkm8{<}9Bn z|0Zv(h*L}>(g-~m!fJriOU=Gx_nOK`pM}rZpFFTF<&hHY30JE#Uc7pD?{siWsgH2B6gXXrDkCrLc|5?Xd z|AUXmER){2MW3V%()3dqq#(>q9KSS7Q~utnK9 z*&O+N#dzX1`Hs4*%wqZhnX0+C2G(C3@WIM8d$sXE?dhkzt?|(e1b$_j^bMR312JFS zpPLLWtDiudY(l?7oOVr&x|877=cVk5I51Dn1l*I?!hJDW+N`o_QZ&Wv2F|C@rJH#2yT{-;#|yV zeE@r94@BNC)m_t1Ghijh{MRBtGJCpCbUW+5)}yZH5>LVNsK;&hes1|LQO=94apt?m z>AL^ai?9~{h_cJ0Y@N%07yl_p|Jy6)_n(%To6}R%j{pAtd&TeWzyJGvEG;Hu@Skq* z%l%Q5P!?a6CO=ILWj_gD)Ft{E<~xYs`Q#Df-QD+@pL@Wnzy*Pcfn5T-2AuFq_1Wb` zc^q)9a5`n_X}qWVN8Lp9;mpcx;;4MJeQVX#igo2*OD&}acw5yexm$9)w5aS?dB@6# zs`0i@_PX+)3W3U{OPG7yc#Jyl0)P4eSpKeR{Iy{yofORj%|eY<^GuzLQT<5uEma2i zQrZCDX&q)_whDg0(CuB#EAs$s7e?>~y_GhC8!8%nU8hux+68=3sj8!xMP7|Kl55~b z=_>T*4{;BHmpF!*g*ikyy^ksG;SRkmBW4m_qzkF0`cl2pv`s4PP^YI2c;|^7zIzjd}?w(eooeoA|PHji*C@l^b zrsJ)f*-OkpWfm|rcT(x(XYv906Rd4xsVYiOAAp8^shr8Uu{5^{d_nic4blo#6!Lvl zV*&fwcWoGtc?`lq@(@Fv`-)9FgJA=-1Av6@NhPC!rGq*|hy3Rx-ym*+|# z(;UF}J8WNoDj1|1t=gya znXBc&;`&kN4BRIrVnDKWCxOP84A!^(n#bxRs#>b;lBaY897Jb;qZZ4X!S;29JI)ON z7SRZ9I@b&9VflzG?Z)+k{XdI~2M5?kpknsMc`W^NcY&#vi0vG(Lx-}xfirgkoM7*i z=aegzXQFMd&4Jr03Ed)mqr`OEjM~&9&Qs zRrU_{e0^O@T}`k>higsRx|*J9ovM!1RvaLB^CA}jKl6W;XX#w3KDC_OMRp>~2^Vu>UMInAHl5 z_4&p@hI=}bc8U6y^cqZ>ix@YWAlJ)>*#oQkR4B_%muxI+2Y{Ru2{i3YkMK{C2mra7?PhN9#r+!*3!Ef*PEJIb|ZTByz>Jv#q3TwV$*a-DI@YwUDkD zofR=gr?l=^XC1AnQo8|h=$@1ZrmCAlF}S@{;MRQ2@?fDD1fJDZK)c#Y=hGYLc=|s5 zm;MS&wE;koe5G8D85NGb&i3IxfCc6aKNTn?BgLB1SSeLfsghMbVChR%yJ$LS=7NoU zHR9vf;(sh^v7M$Tkj*-)cR?rqkWwUI>O+U-fN7@}U&2j-%@@X=X2vn?nCHrmu>016 zkGVvd24wDHwz`AS?Uh3noPRs7;UcBGlmI8M~QG=2m7`a}#rpX_G0%m~J2p2QmKrrXHah2)k0v zHDyBSAhNci+&Ln)*5%~=j%MR$JNPFGx0S)mAlIH zR$A%(@#Ib#69d*%p{hO@$jEIq`buZ%l_c< zVSVR_FQp^U!P#JpS7_^L4}tfx3)mUh5*i1b%6;He`~>^>CB}$u z;Po_t9eaanxGDx$M5xMe&&X;P!Mot{nuP!Fz{j2gFDnP)<`AIcy#l}4F7Yjx)YnV7 zQi4iQe^Adxtuoq5ZL#)_ZVfnjj~LvHZH-@y2aN~_2rnM&8G{Dr!6l>~Z$~4w9 zy)`BoFBo?iLyi57&kQRJW%?2Ne!4vEQ_WHJ8dVP|OgzrJBbsB8GJsZ5%?U=)T;^q0 z*^XA;tLR%%QC?7f0a$gaid7ZED|%Npt9oENWiOWPP<$hXQ%#iPm>OI>e@bisv{bvs zsOyIwP;Yz*i)|)YVE;9JH-0u2VieO7C}BOcf7RuxzS2G+g`3D0DUZ`El|rbA&+?*b zEV|{kyei(dwo0^_Y&UFsZF>7H`&`(w0~D=^JJ7*;r61$M?gCb2x=>f@qY6{UW9Fx= zwnAGUeB%A|hxM2A2QlUtiHO8?V7*?VjmN0$6}S{5rFNpf5Cx=wZR{Yh`i27w@iNt$ z$|R%6rlgFlPg==!L;^NIjx=7y1IxIb+OBS{ z$yVnByTX7`kD&R3IfR+&?chH@qMD^D$Jpp9^usVnhfZ>nQW1wZ2)Lr-F&kD_iUg{5 z2IgMwi$0Q{GzKy-4;<>fq!v<|=n3x36fmMWSnYOTMXXSCg^ZoWs4EJiFK<Vtf8L4j0irZ!QH?ZmgryV)p`L zAJR0{c2$|m1q|`8)mh*sy$*~~mHMQr0J%Pi=uBQPVqHnkjsmaNRiM^30k`&3;sjwN z)`F2>sG@_Svtlo}FKQ75h+7LpEp31;`BFK883#seC;k+_NU#D&*-*`G*;h4NRid)1 zV!>V82*}fn`aIZmyI}U^ERYBbVCU8n*TNIKfbYnsgPperC*uaNA#4Y5`(9*@!_rv9 zjASk_Z<#_Sm>tRf$GT(QY#a9<<|0S&2|NW9+_mU6(!hy08VKoNd=XnneK79mBXvLu z_DN~b2H~oYk~6S&523AhgFQJG=%Uf84j41{KzTdk>>secKE-(2Arm3^C#C0*lxLWk zyNJ9z5|?8gezSO0+%3KaCt?;PBTWnfZtgs2j!5X2$IyTQh>)pJ$7-f%)}t2*0~+^e z?O<>$?}SbI9DOAV`{O10EhnJ7Oi)i$KSVk#z&G%Ogsz9~+5ow%E44;FOhnq3!}4D! zUB;FmIjLr<;vjDmRBDX-*8vNaLi*l{eZXl~3}n&2K!o)LbEXqKoF)JP_y*&_6anRR z3GiPFz^it0~>k^Wf@&Z`3Nf{7I3_7#t{=U z2iU6*m|o!M-3Fu^Ef9KZb5A)f-;@dmgQ_kb(371$z=gZKR{W>0zebbSHa;8!3O|AsUKfNyX)P)o1y z?|20mB%Oh2`bKaD!s%X7CGlWqJtY}|TRcOR3gp;G^+xqVFmv=bE-6oKQ3;y@_}_HUWk7PYt*I6LdGPTn79`ocrEEtqE=qnIPGU$sEBZ3hh9 zDXL3Anm(htjyCcRh|{Ogd&PtQ_nNAg%18AQ@16=IW37}R-T{uYDBgkWj}zoTRbI~f z@wwbhZWLDsNEKh$P_6(o^jq0$Y#O_WZO*#0UD;@`WDf^6bWhmvW7*E^WOgCgANB$@ zSq?OlC@vSX{ASGmpM*7hiOb>Mb4~bqd=s$n`tu?94CQHHLLcN#a7un9cNL?C0k}Sh z`_8_?Q$Dd*flspzD^u&Rn&1sd@deB80DKQ+|6wn&G3+E@C!Yc{T{_D_;@X1e^)}WI z)1foEfwl4kP|S}3X*wTVj}?3{cowID+cFl2=5gS0JPPi}dB6}}0?x_Nz^d&JW{98s z9iT<;gEZ}fjGO_+csZC=Ghxw%fuHdpw9tF-Kz0NJYXaC?)4&PbP-=j7HUT>P2yENO z7+L2+Hv~WvECTBD16T*e_@~vgfEO`H-A3I?9SvD&4vFxCel7uXvsO(2Lw5!4Xp35# z0*>G)%)R}USk)itrBnbW-{0V2egx*uCflhoLDZ7GH-GVNNL!Z?Z64h5?Bn9{);=$ky9~I#GhlmxzTVWK+ zWC_Y>G)lyQ-20Y)1%}Qz{yL(-?}4B9Dat}8B=aut6o`Z!Q%7izb?i7Wybc0uXG>T& z4pz<%I2r}3+0oV>;0ZUt*ZKq{c?2zQKJbdif%!9>?+O(6HsJ3qL3;}T&qHT^5MRXA z1aG5(|I1B;XJr`lb^*H?^0t5tWIfmbwki9XF#!pC5VrBGCs5t{qQR`tk4QM zGYU$<&cEPq^JAg6#`9-^^gNtb@+2?A8c`ni1|_?Tn+axseHbBq;3~1^>kGX1B<=+? zpbj?l0RA9)+^J{>+tEe`p|#r3ZdY>;F^;c;*d~%IMT@`3c4t?x;cO!Fn+aqYR?F69 zW7(E$fA$!>agMQJVqQyAR;kEfN=sn_w###VGL`yy6}s zdTTDUfJP|7jPE9-?;hlS1kkH{gE=7@Qo9g1>GP|5n$JMfwm{C?q0VN*l0Sr+$`#y1 z3;55cisv8&bzq4cgBRy=w9f=+=mb~|ci?lk6}|HRfRPp=9fy4MhHdm0Jg;{U3qKUR zw2Y7qo%0Xh2Z--;Af3bT-38;5mFP7?QL8f{yZeBx>AuixQORS4GEr6c5 z0&Vdf5!@NjMaO^@K0y*;oj!oQ*$KJViN}Gyy+%-hllcP%|bfdv@&>f$RV1;>t)#x!e&}X5S zR9EY@lcEyL-It-y20*X3g#J$k|Hu=R?t19+FL>J-b0DFEJo~nhF(EvQa9GK4Up}%l&i1$WoiR8Zn zr+*7~AD(Q#AhQqAa^3@3$rpNL1+H|UtveX9pFl@N10VYYxF`z2P3#N%%Uk*fdbt_+ z2|kDmP~tJ*8~+GykX1lQ6T#1L6Vf~yZF3m3WpA`t8`^9UC!)=UKvMfao5jGk+JJMt zA+0rVd@CfiBaZaJ@oi{znb49)(VJa`W-bTInjUiJ4NcM&@h1#=zjBV9W0q+%Ub zVPesnFN3eZKIF#n*6}z#mCvru;Zz2wB>EeC`es8Mx9c z)uLcwJo0`VnC}&kOS7z^2Hg#0+84-FL_LjxA@av_ViBH!V#{G(8YV<5e^utJuNRMtYv^oJaE#~5z6 zxD;)5HEJdbrO83Ig5V8f5fg-yxcVXF@38O~vYv~T7zZzV8TLvcm*r>~A8{m0c#5kW z{rP%f74~l-H;%j~3-7>pv;)>aQgv%Ng(tm4Uy+FN&P0ofKrS3_T!pk8K;F9`RsX>1 zu?z0dUqc`Rjlj(E1eU}W=(p2oU-O_vHbAe(p+9VdWBrluIj|~*V(&0ga0zWQ2inF@ zbgGt(j*yR5(Ap2gr;v~oXsQp;@LR-d;w6lLu85Z*HB&G%Ns69mN$-KFxDhR3F~(VO z=s^V3n-AU-0p4;BI=(xO4T6O^6QAdWXTn`b<#$N-FT~sw3tjPq252YE&{Bq?R1d+r zx+VUHR`VQtFVNTg6yKqz*@z=;t6PEzy3vB!*)a4b-%)0pA&p(J))j#qX;G63Xv`8m zm$&iX`4avjdKQNT`V4)I9{NQMISv7<`X#Y9@Te2&0U@h4JDu=)z<~_36=SYCx|n z#&~)Yu5;AyLD&j8DCtL-b=nDE{L5Gsc!Kh%L~nascmSQ43td@?+Lq8`*AXLOnb(1~ z(24ILf$?Z7MtQwGwJBQz5K2=ic*?m)RtKyB|wfBhC^{Xhijdv%E)fClRWoi!TPs~T-K z8>Ouj9rCgsX_yYnG!A;(7kMS1`OyjC+fna5(OMmhI7gBHyO4Z2+Gr=dWfV&9All-4 z$n7({=_~AI2NT^3lz9=}e+g}ADAM8qd-)|~e>R@q6}20M)?Qc0gMS!_p0^3)X&Bxf zBa9Fx!Cq*GcPX$fL2lO}xAACw|G{4Wi8hvt_L7Ws;xt%J6xyf>k|sl2@kLv$4?Cd+ zT1q$Ma1?q4o6rI!&55^h*C(__0{ZAFT73|#7f-bAbo3{=)pe906v1EfK3eHc)bbWc zonz!P20HU1M$j!V1JxZpT3eLTVrX?oy0)SeQiKq^)ep7$6Qyz+ZTb^x;Slt}F4Wl? z^n$}+`8clLgL=LvP~uhS2S?BO8d~8p-uw}|@-O6|6uKk{`rsmDWfz`31#jCTbi-#m zXsr$?{nqFW>!Iu-QC8C-p`G!2Ax0Q?ao=Z1L87o7>HiP8_=#5N4?8#o+T}X5&J&D5 zzT<82c*kvcD_=o>z7@7{Ygh@rF%FuEmb@I-ZL8K&Ct%IpL`k`dYmv%-k)wFjfJ3Lt zP`aG>6}kIftzS-6=PLrG(*d>F9d_9ep%Z3oD9DQwO3?~U;f3$o$VGSLV;UrBD8`v{ zur~(MdkXUK7%9)hdsDC_qUGE}ul59I0-*`gQOjj$2?Xlaiuw+PJzgbr7Yors&LNi@ z&>ot?La_1mg=o}L4@mBONLG8ihrp*dayc0}TZmHGFZ@9(DTfW}Xpd^hMku7j4{|9- z8z@IzrX!ypk*ebA7>8x3qk*XFUMOWZ*tSOWD&3(6)6t*g!=8A9xri_P556Ai!7&Qm z4la$E&>wZHThS@#=rXj>Qk0$zMnn#*M-fu$4e1C*4OH-sG2?jj=EET? zaVU=kxN{8B(*o0Hk0Nevd@SO+l*XpcY4i_f89$ zT!x(Qf&8CFeh#BeoI%;gL&lDv-JZsgEol2IP=_wKwl+SS!!kOGQQ{7G4!!0VVGe3F zY~>D+Z7<<1ENfD@j$Yz3?*mzDih466wP9!rOYzoZ^o7&V7jMD2_DFFZ=z`s7^UDxP z(_6^pCD>m*(L#oz)y&0Q!2d7vrJSbc~D~b-oNe)fikatJYQnkfzOO8yj(ECEERDXs2B$nbnYJ z4vcOaAXCX0t!40)u+!ILZ1oiTh1f60*g%6GIFav>kezJ670}fc#kL~ zV4mX$-hU4xoHrOB?88{>9^VP$2S;BNjB8W)_UIdYA?X94(+)w0#G_o-3kM+a4X};I zn}=c>0)5gMGQ1O|I~DH=ua;T~wgLr@d@tbva`+TEe2P+kivQObMR6$A6pRtxAuWF} zJ66scpeOYhLzSbfqtK4pqfUCF9Yo^&HBb}YNR@+k?J)A$9ahF~=w5BujUB=H%Z=omds;E&^J?-BE?Kw8g0whrPs0(uW;NR^0O_(1*% zl=2gdf_nB!7GM~EmbZ`2Wova;g-0jRZx(5szLvm0UiEP`$D9I1=L?{m;sSCO8} zNYyEPI;6QDWULEHe=gPwI-r#_#1n&rH_(`lF?|8v7YM28h7<>5{K2E7f{->x&pr&f ziNL;NT#|x1U{P*5q(#6pD3o|A{yorY8{pkLQBwb+emOiP6|M3YZ^k>lP`VB_%N3aU z>cH>BSauQg#vs(x9^_GtHXMcb^gs?Bl6VGX>gfF*;dwdLXOF0f>ew{d5wdH*o~{(pzn%CzAm9%Ua4+5Jz;0m!BvhK;puqN z9cauKkcyAE-hqtdn1|_(`@2H_cEw1p23ms=b@?CCUIt0@KuOoe-91o~{c$!Bx;whM z-S@+&A_hI;D%dS2(es~xo?e8SYXiCI1{og;DH?+sae=-6jb|{s^%wI3cI-8QjFiCc z_d>Zl^j~c}xh2ZgA<+(f?2vd4X>w?y7|31>($)y|I|f&E#T&XpCqKj6pJD$w-ZU5Q z8vxn8gB+PKKB+<)X9-?nI#yG?&>!#T^?Ze}UTlS#&6Ch24`6*Ukin1W@vcE<+~=)$ zhNCAO1f6ykDLIGvnZdX&4!V6N`n0B^Giv+{+HoNyemHt`U&z&D$n-y$iFm@-Kw75@ zFVO;`aqKz9H?7fjnqquGVT5o3Bk^pszspGDRg5@hp#EB+EssGS4jLC$3rce*+O@;xnFc8x zjg;2KyGh|F?%RcV+~2S^et~x|7f(8gK6xQ*jc>dkN_RHOXaVH3F>(`zyK5mOO;8eR zkgC>@D2J}@1SyY#MbQyQ|Dr{ipea@81yWHrYP149-lT#CNx~B=ct`8|3~iN!`D}Om z{>axvdR3^|8<6om)ic~1&`*s;4PM3EYc#ZZIro55;62NriI1UN!jQiC&~~*Tb8(RA znaHI#YH$VGcQI_ot0;{^lt*VERwRL|qYU{Q$Tz?Y*%ZDR@5Xa{6eIXq~svC73;4A)`0?eXRHPI z<0)lWr)a_l@o-B-4!R(XGG2ox{e!3X!J8xT#sEGL>;38ArqINyO>hsZ+GoKn>+lztjMa@r_6Q%HT)jm z<4OCldNPC?3~z)s@Fk0YkK`0?JytuHz+-73*A?p z{lbcQ4%-%MtBtspxNaEN8l^lFX&Q<08V*0rMqDu07~HukT%XQnu|L@d>~HoZdkg>T z*}3d&c0YR%Yp(CG-tv>p!zas$NKt#N&(z}xt}gOauX=qZ0;_4g@utD>0C?0Kx|o`Ju`ZLAL+hwtZ2_72vHp0aPiA-|v9hifk4O%K?4SpB_%-;cmJ{DIBE zTGLgqrCh@PFRb?@BSjZ*?X_yZ&?&fX3fm5`X3=bYtVp+J*J5pGF48;?Ot@X)jnDyS zW7vOj#S?Zrp0N*WMd#TUSiM@zw!ys}aMcK0(+w+HZfpa1igbqGb5pEvcgAYg2BhsE zyA0nO5VHnG9;EaHR-{*h6L|wW8dt>NJrQ_%-|AFM!nGR_{k969E7)mxMijVtG;9s5 zU*99hPME>|dsg$zWt`D4WMPvqrpMg_X`)Y%4r#Qg!+Vvd!2&Y!%an z6&!{!HFJ!)#(ZIRGWpCCuw>l9(HBeta~Z#1 zGMUUTCL3q}GR2GyJdqS@K$>J&xntllm&(Z5UknWo$JfkW<}>q(Nygpp@#Krlcjh*D zgm*FznHzZCPMq5To};ty_PEIWVB+z+0DCO^2v?tm@7@342{H>Fk#m@d%p_(RvxHg7 z3}kvSU6^R5I~cVGz>9J)j<02g<2l2S@=eSkW)!oZ8OzMWopW$}FEbRscQbpK&CCjB zKC>K0=i}WIm=W;aX~Tpu5sZnc4~Ao3JT(}cmu;9@*w-^GL&I}eVru4=-V885~PpG`TKaO7YTq2Sq~hrgg*S+2aI{E4XCKS~8dFlF#M`Kzo@3QU1g z&op4PjGA#~c*ck~7#W5U@XLY-paNwv?l}eazA|2U7ydA(;bnRP z$bZ}M)MGfh3+LmocO1ud;LIU-4!VpC>!8uzRE^m{`AF_zRHm5U(IoC zw9;K!8ywP6N*`d8l+wTHY+6v3z@NwfKeP~~N~u-ql}0?Xl%{apQ%NfWls4K12skzF z_(;o?gt8C}RyT3)ZTcJi32}P`@b7#?zlIkurA)-{WJFh|(wVfu5xJnurU^Xh9j9c!yqxkLW`1$gHBz7jHxx-H$9j-rFF}LeNUy>5W9e9WJnmV5JBQ-Bar7X10^O4CPPf4`2H?s_oa=*QV{l&# z-mwH{2h-i?t~eHq?^H!ZyWw~Zx;5RN_Q4q+x+5J%*QdR(`GG6GA&z+>vd$ex zJZNv)g?0sE21!%E^&n|AA})CR=HQ`Mia00+F;05gPO*4~imr|8JJS;FMzeG=^^1B> zU7*fUN2o_s0`-_Wi_Zf<-8f4fNBrIw>N)kB`b1^m^ELGi$N$6j0NjxGaL+>=J4w9( z_ES7{8=p6*gNVVrfa8x5k@S+vr^<2PABv)r@%f2*hcl1B#Cn&yLT$z~mQXvXb<|dB zE$-WdC(XwHMyek*h8j-wqQ)T-Wi>ULnnrb}CQ*a14a3n%IJX?pp8Ju?6L`u#pgL}# zrc-0F4WnXl&rIAijOu~=W2y1DejGIt_cfvXsVK?|F#~m|dQ^L=E7hE8N;RfhVrxXX zQxQ}+zQd{7ly~*9C>(DH7VdVqs}>rNPawA8A);sYk_X819}$d*^m4mITUw}B!`jFxMwV`?oIY3 z2ap5F5!m{Zoyp8S*9;>%;Cy$YH_;K_{}4?P z-PN9Ggztt#D_qeQ_xHs4t~lR_h$141dPFm9t?=KFh#;C1Aw)RgNw^Un*!&0=?AIW? zaV&`NCu$LZFv4#)`1`sLDncUk1WU*Wo+wk;6mp^novmG=z;By^z#oJf$8r?qieg2j zqEwNMEe~5E_DU3g@tuKRDT;53L`9O~qas!D0pA}KpA_#D@3FmBe8rhm{7zB4!u~7# zdWQ3NfZ%djaZGUmpBE5Geob*paT}irigSvSiu2emD-J2HC{8PmDh?`+;P)EEdc`Wm z|M0&~v0SlMv0AYSdn>T5R4h^~#rZWjzYd?9ac&o`-iWJKDHbZ`D`qPuDHbTkDP|}} zC`KU)dXOSo(O=OU-~ALr;PX5P=f}g-ItDm!L#uy}#<5sj(@)V!(M!=COjk`6Efo#^ zucIpqi82bK=iI3*FnZ8Tv&^=!)DTS)44cfQ(I6t*n9-~t+YkzZjGAx>a;C&ctCxZn zk(4%^OrtWiB#AN$lxUwM?4^*bl&tK`a5(3D_q+G$f1UZhBcvLeG)K8UxhBPA1dyg% zo5|LzOk)?b#00&JH&&(p%r^>SF_C7jnI(-dQ_W&j&g*<{LOFtCH&xD@vAyR9OM`J_(pp?d-nf<5ZLRIev+*Q%b<>G@b_7dqI&W;U^rH+fa+uHy+U=}l&CbtP0TrQ+DS#=_ljViALdmv3Zi!@mKdD3} z5hdM&!@~O@Ke$Jyp26*VhntWNkB)Na851?J*O>8>raJVRJZWsyh^dm`ppbA6lm<=p1;XT49$>+N8LsBLA zBauo~2pR+q(IOS3I;jD{R%#`6kUB~0OI@WN2u-9dr7fgB(x%epQg=LCN?S?2r5&Vg zr9sj_X%}fnX=glpOM4>pmWE3s>tdvIxO9Ycq;#}&lyr3r!zgyqsz(kyAFG+Vk3&sBBL)zZz<9nziBz0!ZBNAWx=-7h^REvO5H z(lgRq(reOtcs`Wgk={qVhvx%4i>1$`ucRNO-=w9|3h5`r4|tYKtEFENe@iQ+j7%yM zWTK3f@iKx)@zl$#WcD&wSv|x?vL>>oGEbQYVgp$-q+7|_%lu?rWWlnoc=o`vBc5Gk zz47cJ3zK!1MajZtqh-Tn17-bXBN6+{M#zT9Cdy(FQf0GcF|q_%x@>_gQMOR_H{ue6 zOxZSsow7}`jfl1B)v~R!<+2U<+9lg3J0{DMU6&QeZphBcuHs#YoP2~cvdgklh&N>q zWmjZ(WS3+QkiLshEc+mPFMA{Vg!m0~+@HESR${gfWZjp;}E4dVJ zwOog%R&J8J%InJ;A$Z9f>@a&K1FYhW3mWRlP z$VbS>$@|EoTcs_==TB%BLZ<0M9h}9K>ZvFP5*AC&*_bB%nsBe5(8}l&q33 zMb0Am{JK=8e7$_9{9pNTc`n|ErASrCWs1*ov!YV&rf^n>3W>r-Ayvo}KjbEb zwL+(`SGeJAMy?g!Rtl4XC>kl6DLfUfh^-Vphyey%fC^0~90hJw_3$n4ySLj8_a&j8w!Z5)tMo(iE!|a}oYhtW>1pJ4LZxk*-*v z*sj>3IH$-`9Km~=;vdCMq;nN(>r($HvK57jy^7QLI;7Z#{4bzy9{|UrCP}<<;r?W zrP5aEtkmJDQBr(SB~iNItBKNA*;3g?>8fm@G%3B69?Hf_CuKWjpfW@`P&r6BSUCx) zc1X8Wj#YM7Mkt3VhbX5hd*iDwQvH=Mc|zDsz-c z%5}=Q%K1nyL+Z5hh;pa$sB(kytny#w3gtfK66HeWdgU&J!^+FbLd28G+sbpw6Usx% zHK_lO@|5zX@_=#=@{S{%LiuIoQ-msIjj~8tp?s?>MoOuYt3E4<$_8(hN~020uaqB^ zpOkXdA0?wws%%lxTqUTiR3=p`yj!T85Syz4RgG0`Rc4i2U0D;Aiz-4DplXj8qUx%O zK`IQPuWG1jq-u(4jw)R>O|?=rS2bESLY1HzuNtF@Qq5AuBY&}KwJIBBGgL{)n~$

|D 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≀XxJR+wP4biR_0bpx$iZ&|Ih1_|K> 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 O${o^Qh+x&-EVD-Fw*^S!U?}l>AtUxGY=j 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 literal 0 HcmV?d00001 diff --git a/ground/openpilotgcs/share/openpilotgcs/sounds/default/magic.wav b/ground/openpilotgcs/share/openpilotgcs/sounds/default/magic.wav new file mode 100644 index 0000000000000000000000000000000000000000..15bd23b5e977aa266a16650ddea41265a0aa0102 GIT binary patch literal 61834 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 z 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 ANdN!< literal 0 HcmV?d00001 diff --git a/ground/openpilotgcs/share/openpilotgcs/sounds/default/moved.wav b/ground/openpilotgcs/share/openpilotgcs/sounds/default/moved.wav new file mode 100644 index 0000000000000000000000000000000000000000..1038fc29542b2d5b9a54ab25d39b06bf07e99e0f GIT binary patch literal 81292 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 saiTC$kSIi?68VUnL@ojw@ Date: Sun, 15 May 2011 23:49:08 +1000 Subject: [PATCH 036/488] reduce defaults based on feedback and testing --- shared/uavobjectdefinition/stabilizationsettings.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/shared/uavobjectdefinition/stabilizationsettings.xml b/shared/uavobjectdefinition/stabilizationsettings.xml index b11c0f1dc..80c2968f8 100644 --- a/shared/uavobjectdefinition/stabilizationsettings.xml +++ b/shared/uavobjectdefinition/stabilizationsettings.xml @@ -7,9 +7,9 @@ - - - + + + From 71d582495ee6e0d5455682120c7edb0562c4eb6c Mon Sep 17 00:00:00 2001 From: dankers Date: Mon, 16 May 2011 00:16:19 +1000 Subject: [PATCH 037/488] On arm bias calibration terms now matches boot calibration terms --- flight/Modules/Attitude/attitude.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flight/Modules/Attitude/attitude.c b/flight/Modules/Attitude/attitude.c index 4aeea69a7..f4c892466 100644 --- a/flight/Modules/Attitude/attitude.c +++ b/flight/Modules/Attitude/attitude.c @@ -152,7 +152,7 @@ static void AttitudeTask(void *parameters) init = 0; } else if (zero_during_arming && (flightStatus.Armed == FLIGHTSTATUS_ARMED_ARMING)) { - accelKi = .01; + accelKi = 0.9; yawBiasRate = 0.23; init = 0; } else if (init == 0) { From 5e03cd5801bdf8dc97b2c87c9fee51879eff274e Mon Sep 17 00:00:00 2001 From: Oleg Semyonov Date: Sun, 15 May 2011 19:46:31 +0300 Subject: [PATCH 038/488] OP-483: clean up sequential build order, add CC-FlashEraser tool to the builds --- release/Makefile | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/release/Makefile b/release/Makefile index bf9817b25..882070fb6 100644 --- a/release/Makefile +++ b/release/Makefile @@ -24,6 +24,7 @@ BLUPD_DIR := $(FW_DIR)/bootloader_updaters # Setup targets FW_TARGETS_COMMON := ahrs pipxtreme FW_TARGETS_INPUT := coptercontrol openpilot +FW_TARGETS_TOOLS := coptercontrol FW_TARGETS := $(FW_TARGETS_COMMON) $(FW_TARGETS_INPUT) BL_TARGETS := $(addprefix bl_, $(FW_TARGETS)) BLUPD_TARGETS := $(addprefix blupd_, $(FW_TARGETS)) @@ -76,8 +77,8 @@ endef # Firmware for different input drivers $(eval $(call INSTALL_TEMPLATE,fw_common,uavobjects,$(FW_DIR),,-$(RELEASE_LBL),,,$(FW_TARGETS_COMMON),install)) $(eval $(call INSTALL_TEMPLATE,fw_pwm,uavobjects,$(FW_DIR),,-pwm-$(RELEASE_LBL),,clean,$(FW_TARGETS_INPUT),install)) -$(eval $(call INSTALL_TEMPLATE,fw_spektrum,uavobjects fw_pwm,$(FW_DIR),,-spektrum-$(RELEASE_LBL),USE_SPEKTRUM=YES,clean,$(FW_TARGETS_INPUT),install)) -$(eval $(call INSTALL_TEMPLATE,fw_ppm,uavobjects fw_spektrum,$(FW_DIR),,-ppm-$(RELEASE_LBL),USE_PPM=YES,clean,$(FW_TARGETS_INPUT),install)) +$(eval $(call INSTALL_TEMPLATE,fw_spektrum,uavobjects,$(FW_DIR),,-spektrum-$(RELEASE_LBL),USE_SPEKTRUM=YES,clean,$(FW_TARGETS_INPUT),install)) +$(eval $(call INSTALL_TEMPLATE,fw_ppm,uavobjects,$(FW_DIR),,-ppm-$(RELEASE_LBL),USE_PPM=YES,clean,$(FW_TARGETS_INPUT),install)) # Bootloaders (change 'bin' to 'install' to install bootloaders too) $(eval $(call INSTALL_TEMPLATE,all_bl,uavobjects,$(BL_DIR),,-$(RELEASE_LBL),,,$(BL_TARGETS),bin)) @@ -88,20 +89,31 @@ $(eval $(call INSTALL_TEMPLATE,blupd_ahrs,all_bl,$(BLUPD_DIR),AHRS_,-$(RELEASE_L $(eval $(call INSTALL_TEMPLATE,blupd_openpilot,all_bl,$(BLUPD_DIR),OpenPilot_,-$(RELEASE_LBL),,,blupd_openpilot,install)) $(eval $(call INSTALL_TEMPLATE,blupd_pipxtreme,all_bl,$(BLUPD_DIR),PipXtreme_,-$(RELEASE_LBL),,,blupd_pipxtreme,install)) +# CopterControl flash eraser tool (change fw_spektrum to fw_ppm if fw_ppm is enabled in release_fw target below) +$(eval $(call INSTALL_TEMPLATE,fw_tools,uavobjects,$(BLUPD_DIR),,-FlashEraser-$(RELEASE_LBL),ERASE_FLASH=YES,clean,$(FW_TARGETS_TOOLS),install)) + # Order-only dependencies # They are bit complicated to support parallel (-j) builds and to -# create the pwm/ppm/spektrum targets in a sequence of build steps +# create the pwm/ppm/spektrum and CC flash eraser targets in a sequence of build steps -release: | release_flight release_ground +fw_pwm: | # default dependencies -release_flight: | release_fw release_blupd +fw_spektrum: | fw_pwm # sequential build + +fw_ppm: | fw_spektrum # sequential build + +fw_tools: | fw_spektrum # sequential build, replace fw_spektrum by fw_ppm if uncommented below release_fw: | fw_common fw_pwm fw_spektrum # fw_ppm release_blupd: | $(BLUPD_TARGETS) +release_flight: | release_fw release_blupd fw_tools + release_ground: | ground_package +release: | release_flight release_ground + .PHONY: help uavobjects all_clean release release_flight release_fw release_blupd release_ground # Decide on a verbosity level based on the V= parameter From 50f1e15f544c9a22b727252ec63de1bcf905c246 Mon Sep 17 00:00:00 2001 From: elafargue Date: Sun, 15 May 2011 22:48:18 +0200 Subject: [PATCH 039/488] Aditional artwork for GCS (artwork directory), plus show basic board info when connected on the uploader gadget. --- artwork/GCS Icons/README.txt | 1 + artwork/GCS Icons/application-certificate.svg | 443 ++++++++++++++++++ artwork/GCS Icons/icon-checkbox.svg | 91 ++++ artwork/GCS Icons/icon-gears.svg | 390 +++++++++++++++ artwork/GCS Icons/icon-info.svg | 131 ++++++ artwork/GCS Icons/icon-refresh.svg | 230 +++++++++ artwork/GCS Icons/icon-stop.svg | 130 +++++ .../uavobjectutil/uavobjectutilmanager.cpp | 30 ++ .../uavobjectutil/uavobjectutilmanager.h | 1 + .../src/plugins/uploader/Uploader.pluginspec | 1 + .../images/application-certificate.svg | 443 ++++++++++++++++++ .../plugins/uploader/runningdevicewidget.cpp | 131 ++++++ .../plugins/uploader/runningdevicewidget.h | 69 +++ .../plugins/uploader/runningdevicewidget.ui | 91 ++++ .../src/plugins/uploader/uploader.pro | 10 +- .../src/plugins/uploader/uploader.qrc | 1 + .../plugins/uploader/uploadergadgetwidget.cpp | 12 + .../plugins/uploader/uploadergadgetwidget.h | 1 + 18 files changed, 2203 insertions(+), 3 deletions(-) create mode 100644 artwork/GCS Icons/README.txt create mode 100644 artwork/GCS Icons/application-certificate.svg create mode 100644 artwork/GCS Icons/icon-checkbox.svg create mode 100644 artwork/GCS Icons/icon-gears.svg create mode 100644 artwork/GCS Icons/icon-info.svg create mode 100644 artwork/GCS Icons/icon-refresh.svg create mode 100644 artwork/GCS Icons/icon-stop.svg create mode 100644 ground/openpilotgcs/src/plugins/uploader/images/application-certificate.svg create mode 100644 ground/openpilotgcs/src/plugins/uploader/runningdevicewidget.cpp create mode 100644 ground/openpilotgcs/src/plugins/uploader/runningdevicewidget.h create mode 100644 ground/openpilotgcs/src/plugins/uploader/runningdevicewidget.ui diff --git a/artwork/GCS Icons/README.txt b/artwork/GCS Icons/README.txt new file mode 100644 index 000000000..5c290233f --- /dev/null +++ b/artwork/GCS Icons/README.txt @@ -0,0 +1 @@ +Those icons come from the Tango set and are used in the GCS. diff --git a/artwork/GCS Icons/application-certificate.svg b/artwork/GCS Icons/application-certificate.svg new file mode 100644 index 000000000..077f741d8 --- /dev/null +++ b/artwork/GCS Icons/application-certificate.svg @@ -0,0 +1,443 @@ + + + + + + image/svg+xml + + + + + + CertificateJakub Steinercertificate + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/artwork/GCS Icons/icon-checkbox.svg b/artwork/GCS Icons/icon-checkbox.svg new file mode 100644 index 000000000..185dfc615 --- /dev/null +++ b/artwork/GCS Icons/icon-checkbox.svg @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/artwork/GCS Icons/icon-gears.svg b/artwork/GCS Icons/icon-gears.svg new file mode 100644 index 000000000..8e2572fce --- /dev/null +++ b/artwork/GCS Icons/icon-gears.svg @@ -0,0 +1,390 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/artwork/GCS Icons/icon-info.svg b/artwork/GCS Icons/icon-info.svg new file mode 100644 index 000000000..62c2cecd6 --- /dev/null +++ b/artwork/GCS Icons/icon-info.svg @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/artwork/GCS Icons/icon-refresh.svg b/artwork/GCS Icons/icon-refresh.svg new file mode 100644 index 000000000..3d0cc562d --- /dev/null +++ b/artwork/GCS Icons/icon-refresh.svg @@ -0,0 +1,230 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/artwork/GCS Icons/icon-stop.svg b/artwork/GCS Icons/icon-stop.svg new file mode 100644 index 000000000..8955e4375 --- /dev/null +++ b/artwork/GCS Icons/icon-stop.svg @@ -0,0 +1,130 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ground/openpilotgcs/src/plugins/uavobjectutil/uavobjectutilmanager.cpp b/ground/openpilotgcs/src/plugins/uavobjectutil/uavobjectutilmanager.cpp index 856fc6159..47ad9a8ae 100644 --- a/ground/openpilotgcs/src/plugins/uavobjectutil/uavobjectutilmanager.cpp +++ b/ground/openpilotgcs/src/plugins/uavobjectutil/uavobjectutilmanager.cpp @@ -143,6 +143,36 @@ int UAVObjectUtilManager::getBoardModel() return boardType; } +/** + * Get the UAV Board CPU Serial Number, for anyone interested. Return format is a byte array + */ +QByteArray UAVObjectUtilManager::getBoardCPUSerial() +{ + QByteArray cpuSerial; + ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance(); + if (!pm) + return 0; + UAVObjectManager *om = pm->getObject(); + if (!om) + return 0; + + UAVDataObject *obj = dynamic_cast(om->getObject(QString("FirmwareIAPObj"))); + // The code below will ask for the object update and wait for the updated to be received, + // or the timeout of the timer, set to 1 second. + QEventLoop loop; + connect(obj, SIGNAL(objectUpdated(UAVObject*)), &loop, SLOT(quit())); + QTimer::singleShot(1000, &loop, SLOT(quit())); // Create a timeout + obj->requestUpdate(); + loop.exec(); + + UAVObjectField* cpuField = obj->getField("CPUSerial"); + for (int i = 0; i < cpuField->getNumElements(); ++i) { + cpuSerial.append(cpuField->getValue(i).toUInt()); + } + return cpuSerial; +} + + // ****************************** // HomeLocation diff --git a/ground/openpilotgcs/src/plugins/uavobjectutil/uavobjectutilmanager.h b/ground/openpilotgcs/src/plugins/uavobjectutil/uavobjectutilmanager.h index 8a97b60dd..f97f969d8 100644 --- a/ground/openpilotgcs/src/plugins/uavobjectutil/uavobjectutilmanager.h +++ b/ground/openpilotgcs/src/plugins/uavobjectutil/uavobjectutilmanager.h @@ -61,6 +61,7 @@ public: int getTelemetrySerialPortSpeeds(QComboBox *comboBox); int getBoardModel(); + QByteArray getBoardCPUSerial(); private: QMutex *mutex; diff --git a/ground/openpilotgcs/src/plugins/uploader/Uploader.pluginspec b/ground/openpilotgcs/src/plugins/uploader/Uploader.pluginspec index b2c9a8777..6b24fe1e7 100755 --- a/ground/openpilotgcs/src/plugins/uploader/Uploader.pluginspec +++ b/ground/openpilotgcs/src/plugins/uploader/Uploader.pluginspec @@ -9,5 +9,6 @@ + diff --git a/ground/openpilotgcs/src/plugins/uploader/images/application-certificate.svg b/ground/openpilotgcs/src/plugins/uploader/images/application-certificate.svg new file mode 100644 index 000000000..077f741d8 --- /dev/null +++ b/ground/openpilotgcs/src/plugins/uploader/images/application-certificate.svg @@ -0,0 +1,443 @@ + + + + + + image/svg+xml + + + + + + CertificateJakub Steinercertificate + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ground/openpilotgcs/src/plugins/uploader/runningdevicewidget.cpp b/ground/openpilotgcs/src/plugins/uploader/runningdevicewidget.cpp new file mode 100644 index 000000000..7e9b1889b --- /dev/null +++ b/ground/openpilotgcs/src/plugins/uploader/runningdevicewidget.cpp @@ -0,0 +1,131 @@ +/** + ****************************************************************************** + * + * @file runningdevicewidget.cpp + * @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010. + * @addtogroup GCSPlugins GCS Plugins + * @{ + * @addtogroup Uploader Serial and USB Uploader Plugin + * @{ + * @brief The USB and Serial protocol uploader plugin + *****************************************************************************/ +/* + * 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 + */ +#include "runningdevicewidget.h" + +runningDeviceWidget::runningDeviceWidget(QWidget *parent) : + QWidget(parent) +{ + myDevice = new Ui_runningDeviceWidget(); + myDevice->setupUi(this); + devicePic = NULL; // Initialize pointer to null + + // Initialization of the Device icon display + myDevice->devicePicture->setScene(new QGraphicsScene(this)); + + QPixmap pix = QPixmap(QString(":uploader/images/view-refresh.svg")); + myDevice->statusIcon->setPixmap(pix); +} + + +void runningDeviceWidget::showEvent(QShowEvent *event) +{ + Q_UNUSED(event) + // Thit fitInView method should only be called now, once the + // widget is shown, otherwise it cannot compute its values and + // the result is usually a ahrsbargraph that is way too small. + if (devicePic) + myDevice->devicePicture->fitInView(devicePic,Qt::KeepAspectRatio); +} + +void runningDeviceWidget::resizeEvent(QResizeEvent* event) +{ + Q_UNUSED(event); + if (devicePic) + myDevice->devicePicture->fitInView(devicePic, Qt::KeepAspectRatio); +} + +/** + Fills the various fields for the device + */ +void runningDeviceWidget::populate() +{ + + ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance(); + UAVObjectUtilManager* utilMngr = pm->getObject(); + int id = utilMngr->getBoardModel(); + + myDevice->deviceID->setText(QString("Device ID: ") + QString::number(id, 16)); + + // DeviceID tells us what sort of HW we have detected: + // display a nice icon: + myDevice->devicePicture->scene()->clear(); + if (devicePic) + delete devicePic; + devicePic = new QGraphicsSvgItem(); + devicePic->setSharedRenderer(new QSvgRenderer()); + + switch (id) { + case 0x0101: + devicePic->renderer()->load(QString(":/uploader/images/deviceID-0101.svg")); + break; + case 0x0301: + devicePic->renderer()->load(QString(":/uploader/images/deviceID-0301.svg")); + break; + case 0x0401: + devicePic->renderer()->load(QString(":/uploader/images/deviceID-0401.svg")); + break; + case 0x0201: + devicePic->renderer()->load(QString(":/uploader/images/deviceID-0201.svg")); + break; + default: + break; + } + devicePic->setElementId("device"); + myDevice->devicePicture->scene()->addItem(devicePic); + myDevice->devicePicture->setSceneRect(devicePic->boundingRect()); + myDevice->devicePicture->fitInView(devicePic,Qt::KeepAspectRatio); + + QString serial = utilMngr->getBoardCPUSerial().toHex(); + myDevice->cpuSerial->setText(serial); + + status("Ready...", STATUSICON_INFO); + +} + + +/** + Updates status message + */ +void runningDeviceWidget::status(QString str, StatusIcon ic) +{ + QPixmap px; + myDevice->statusLabel->setText(str); + switch (ic) { + case STATUSICON_RUNNING: + px.load(QString(":/uploader/images/system-run.svg")); + break; + case STATUSICON_OK: + px.load(QString(":/uploader/images/dialog-apply.svg")); + break; + case STATUSICON_FAIL: + px.load(QString(":/uploader/images/process-stop.svg")); + break; + default: + px.load(QString(":/uploader/images/gtk-info.svg")); + } + myDevice->statusIcon->setPixmap(px); +} diff --git a/ground/openpilotgcs/src/plugins/uploader/runningdevicewidget.h b/ground/openpilotgcs/src/plugins/uploader/runningdevicewidget.h new file mode 100644 index 000000000..413a406fd --- /dev/null +++ b/ground/openpilotgcs/src/plugins/uploader/runningdevicewidget.h @@ -0,0 +1,69 @@ +/** + ****************************************************************************** + * + * @file devicewidget.h + * @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010. + * @addtogroup GCSPlugins GCS Plugins + * @{ + * @addtogroup YModemUploader YModem Serial Uploader Plugin + * @{ + * @brief The YModem protocol serial uploader plugin + *****************************************************************************/ +/* + * 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 + */ + +#ifndef RUNNINGDEVICEWIDGET_H +#define RUNNINGDEVICEWIDGET_H + +#include "ui_runningdevicewidget.h" +#include "uploadergadgetwidget.h" +#include +#include +#include +#include +#include "uavtalk/telemetrymanager.h" +#include "extensionsystem/pluginmanager.h" +#include "uavobjectmanager.h" +#include "uavobject.h" +#include "uavobjectutilmanager.h" + +class runningDeviceWidget : public QWidget +{ + Q_OBJECT +public: + runningDeviceWidget( QWidget *parent = 0); + void populate(); + void freeze(); + QString setOpenFileName(); + QString setSaveFileName(); + typedef enum { STATUSICON_OK, STATUSICON_RUNNING, STATUSICON_FAIL, STATUSICON_INFO} StatusIcon; + +private: + Ui_runningDeviceWidget *myDevice; + int deviceID; + QGraphicsSvgItem *devicePic; + void status(QString str, StatusIcon ic); + + +signals: + +protected: + void showEvent(QShowEvent *event); + void resizeEvent(QResizeEvent *event); + +}; + +#endif // RUNNINGDEVICEWIDGET_H diff --git a/ground/openpilotgcs/src/plugins/uploader/runningdevicewidget.ui b/ground/openpilotgcs/src/plugins/uploader/runningdevicewidget.ui new file mode 100644 index 000000000..105a385c7 --- /dev/null +++ b/ground/openpilotgcs/src/plugins/uploader/runningdevicewidget.ui @@ -0,0 +1,91 @@ + + + runningDeviceWidget + + + + 0 + 0 + 516 + 253 + + + + Form + + + + + + + + + + ic + + + + + + + + 0 + 0 + + + + + 75 + true + + + + Status + + + + + + + + + DeviceID + + + + + + + CPU Serial: + + + + + + + + 160 + 160 + + + + background: transparent + + + QFrame::NoFrame + + + + + + + + + + + + + + + + diff --git a/ground/openpilotgcs/src/plugins/uploader/uploader.pro b/ground/openpilotgcs/src/plugins/uploader/uploader.pro index fac544066..05742868d 100755 --- a/ground/openpilotgcs/src/plugins/uploader/uploader.pro +++ b/ground/openpilotgcs/src/plugins/uploader/uploader.pro @@ -6,6 +6,7 @@ include(../../plugins/coreplugin/coreplugin.pri) include(../../plugins/uavobjects/uavobjects.pri) include(../../plugins/uavtalk/uavtalk.pri) include(../../plugins/rawhid/rawhid.pri) +include(../../plugins/uavobjectutil/uavobjectutil.pri) INCLUDEPATH += ../../libs/qextserialport/src HEADERS += uploadergadget.h \ @@ -20,7 +21,8 @@ HEADERS += uploadergadget.h \ SSP/port.h \ SSP/qssp.h \ SSP/qsspt.h \ - SSP/common.h + SSP/common.h \ + runningdevicewidget.h SOURCES += uploadergadget.cpp \ uploadergadgetconfiguration.cpp \ uploadergadgetfactory.cpp \ @@ -32,12 +34,14 @@ SOURCES += uploadergadget.cpp \ devicewidget.cpp \ SSP/port.cpp \ SSP/qssp.cpp \ - SSP/qsspt.cpp + SSP/qsspt.cpp \ + runningdevicewidget.cpp OTHER_FILES += Uploader.pluginspec FORMS += \ uploader.ui \ - devicewidget.ui + devicewidget.ui \ + runningdevicewidget.ui RESOURCES += \ uploader.qrc diff --git a/ground/openpilotgcs/src/plugins/uploader/uploader.qrc b/ground/openpilotgcs/src/plugins/uploader/uploader.qrc index c4dd1b347..1008ef3ba 100644 --- a/ground/openpilotgcs/src/plugins/uploader/uploader.qrc +++ b/ground/openpilotgcs/src/plugins/uploader/uploader.qrc @@ -9,5 +9,6 @@ images/deviceID-0301.svg images/deviceID-0201.svg images/deviceID-0101.svg + images/application-certificate.svg diff --git a/ground/openpilotgcs/src/plugins/uploader/uploadergadgetwidget.cpp b/ground/openpilotgcs/src/plugins/uploader/uploadergadgetwidget.cpp index dcbbb8fbd..8163d3968 100755 --- a/ground/openpilotgcs/src/plugins/uploader/uploadergadgetwidget.cpp +++ b/ground/openpilotgcs/src/plugins/uploader/uploadergadgetwidget.cpp @@ -115,6 +115,18 @@ void UploaderGadgetWidget::onAutopilotConnect(){ m_config->bootButton->setEnabled(false); m_config->rescueButton->setEnabled(false); m_config->telemetryLink->setEnabled(false); + + // Add a very simple widget with Board model & serial number + // Delete all previous tabs: + while (m_config->systemElements->count()) { + QWidget *qw = m_config->systemElements->widget(0); + m_config->systemElements->removeTab(0); + delete qw; + } + runningDeviceWidget* dw = new runningDeviceWidget(this); + dw->populate(); + m_config->systemElements->addTab(dw, QString("Connected Device")); + } /** diff --git a/ground/openpilotgcs/src/plugins/uploader/uploadergadgetwidget.h b/ground/openpilotgcs/src/plugins/uploader/uploadergadgetwidget.h index c0274668b..7c7bae19e 100755 --- a/ground/openpilotgcs/src/plugins/uploader/uploadergadgetwidget.h +++ b/ground/openpilotgcs/src/plugins/uploader/uploadergadgetwidget.h @@ -31,6 +31,7 @@ #include "ui_uploader.h" #include "delay.h" #include "devicewidget.h" +#include "runningdevicewidget.h" #include "op_dfu.h" #include #include From 575010169a07525d1d79733c6d0bcda2a55223e0 Mon Sep 17 00:00:00 2001 From: Stacey Sheldon Date: Sat, 14 May 2011 20:32:17 -0400 Subject: [PATCH 040/488] build: add pios_board_info_blob struct to bootloader flash image The board info blob is stored in the last 128 bytes of the bootloader's flash bank. You can access this data from the application firmware like this: #include if (pios_board_info_blob.magic == PIOS_BOARD_INFO_BLOB_MAGIC) { /* Check some other fields */ } DO NOT link pios_board_info.c into your application firmware. Only bootloaders should provide the content for the board info structure. The application firmware is only a user of the data. --- flight/Bootloaders/AHRS/Makefile | 1 + flight/Bootloaders/CopterControl/Makefile | 1 + flight/Bootloaders/OpenPilot/Makefile | 1 + flight/Bootloaders/PipXtreme/Makefile | 1 + flight/PiOS/Boards/STM32103CB_CC_Rev1.h | 2 -- flight/PiOS/Boards/STM32103CB_PIPXTREME_Rev1.h | 2 +- flight/PiOS/Common/pios_board_info.c | 16 ++++++++++++++++ .../link_STM32103CB_AHRS_BL_sections.ld | 7 +++++++ .../STM32F10x/link_STM32103CB_AHRS_memory.ld | 7 ++++--- .../STM32F10x/link_STM32103CB_AHRS_sections.ld | 6 ++++++ .../link_STM32103CB_CC_Rev1_BL_sections.ld | 6 ++++++ .../STM32F10x/link_STM32103CB_CC_Rev1_memory.ld | 7 ++++--- .../link_STM32103CB_CC_Rev1_sections.ld | 6 ++++++ .../link_STM32103CB_PIPXTREME_BL_sections.ld | 7 +++++++ .../link_STM32103CB_PIPXTREME_memory.ld | 7 ++++--- .../link_STM32103CB_PIPXTREME_sections.ld | 6 ++++++ .../STM32F10x/link_STM3210E_OP_BL_sections.ld | 8 +++++++- .../PiOS/STM32F10x/link_STM3210E_OP_memory.ld | 17 +++++++++-------- .../PiOS/STM32F10x/link_STM3210E_OP_sections.ld | 8 ++++++-- flight/PiOS/inc/pios_board_info.h | 15 +++++++++++++++ 20 files changed, 108 insertions(+), 23 deletions(-) create mode 100644 flight/PiOS/Common/pios_board_info.c create mode 100644 flight/PiOS/inc/pios_board_info.h diff --git a/flight/Bootloaders/AHRS/Makefile b/flight/Bootloaders/AHRS/Makefile index ada1b99e3..4a43a6081 100644 --- a/flight/Bootloaders/AHRS/Makefile +++ b/flight/Bootloaders/AHRS/Makefile @@ -100,6 +100,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 diff --git a/flight/Bootloaders/CopterControl/Makefile b/flight/Bootloaders/CopterControl/Makefile index 955d948d0..08b97701c 100644 --- a/flight/Bootloaders/CopterControl/Makefile +++ b/flight/Bootloaders/CopterControl/Makefile @@ -123,6 +123,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 diff --git a/flight/Bootloaders/OpenPilot/Makefile b/flight/Bootloaders/OpenPilot/Makefile index 735a63003..33a7f8705 100644 --- a/flight/Bootloaders/OpenPilot/Makefile +++ b/flight/Bootloaders/OpenPilot/Makefile @@ -124,6 +124,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 diff --git a/flight/Bootloaders/PipXtreme/Makefile b/flight/Bootloaders/PipXtreme/Makefile index e1d2e8156..00fa37f81 100644 --- a/flight/Bootloaders/PipXtreme/Makefile +++ b/flight/Bootloaders/PipXtreme/Makefile @@ -122,6 +122,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 diff --git a/flight/PiOS/Boards/STM32103CB_CC_Rev1.h b/flight/PiOS/Boards/STM32103CB_CC_Rev1.h index a39b8b457..09405bfa3 100644 --- a/flight/PiOS/Boards/STM32103CB_CC_Rev1.h +++ b/flight/PiOS/Boards/STM32103CB_CC_Rev1.h @@ -66,8 +66,6 @@ TIM4 | RC In 1 | Servo 3 | Servo 2 | Servo 1 #define BOOTLOADER_VERSION 0 #define BOARD_TYPE 0x04 #define BOARD_REVISION 0x01 -//#define HW_VERSION (BOARD_TYPE << 8) | BOARD_REVISION - #define MEM_SIZE 0x20000 //128K #define SIZE_OF_DESCRIPTION 100 #define START_OF_USER_CODE (uint32_t)0x08003000 diff --git a/flight/PiOS/Boards/STM32103CB_PIPXTREME_Rev1.h b/flight/PiOS/Boards/STM32103CB_PIPXTREME_Rev1.h index 3234b8014..a4792a717 100644 --- a/flight/PiOS/Boards/STM32103CB_PIPXTREME_Rev1.h +++ b/flight/PiOS/Boards/STM32103CB_PIPXTREME_Rev1.h @@ -61,7 +61,7 @@ TIM4 | STOPWATCH | #define BOOTLOADER_VERSION 0 #define BOARD_TYPE 0x03 #define BOARD_REVISION 0x01 -#define MEM_SIZE ((uint32_t)(*((volatile uint16_t *)(0x1FFFF7E0))) * 1024 - 1024) //128K +#define MEM_SIZE (0x20000 - 0x00400) // 128K - 1K (reserved for config data) #define SIZE_OF_DESCRIPTION 100 #define START_OF_USER_CODE (uint32_t)0x08003000 #define SIZE_OF_CODE (uint32_t)(MEM_SIZE-(START_OF_USER_CODE-0x08000000)-SIZE_OF_DESCRIPTION) diff --git a/flight/PiOS/Common/pios_board_info.c b/flight/PiOS/Common/pios_board_info.c new file mode 100644 index 000000000..db9e72f9e --- /dev/null +++ b/flight/PiOS/Common/pios_board_info.c @@ -0,0 +1,16 @@ +#include +#include + +#include "pios_board_info.h" + +const struct pios_board_info __attribute__((__used__)) __attribute__((__section__(".boardinfo"))) pios_board_info_blob = { + .magic = PIOS_BOARD_INFO_BLOB_MAGIC, + .board_type = BOARD_TYPE, + .board_rev = BOARD_REVISION, + .bl_rev = BOOTLOADER_VERSION, + .hw_type = HW_TYPE, + .fw_base = START_OF_USER_CODE, + .fw_size = SIZE_OF_CODE, + .desc_base = START_OF_USER_CODE + SIZE_OF_CODE, + .desc_size = SIZE_OF_DESCRIPTION, +}; diff --git a/flight/PiOS/STM32F10x/link_STM32103CB_AHRS_BL_sections.ld b/flight/PiOS/STM32F10x/link_STM32103CB_AHRS_BL_sections.ld index ccc2cfe7a..4f3c77d4c 100644 --- a/flight/PiOS/STM32F10x/link_STM32103CB_AHRS_BL_sections.ld +++ b/flight/PiOS/STM32F10x/link_STM32103CB_AHRS_BL_sections.ld @@ -45,4 +45,11 @@ SECTIONS . = ALIGN(4); _end = . ; + + .boardinfo : + { + . = ALIGN(4); + KEEP(*(.boardinfo)) + . = ALIGN(4); + } > BD_INFO } diff --git a/flight/PiOS/STM32F10x/link_STM32103CB_AHRS_memory.ld b/flight/PiOS/STM32F10x/link_STM32103CB_AHRS_memory.ld index 50823e432..9f7bf0f19 100644 --- a/flight/PiOS/STM32F10x/link_STM32103CB_AHRS_memory.ld +++ b/flight/PiOS/STM32F10x/link_STM32103CB_AHRS_memory.ld @@ -1,6 +1,7 @@ MEMORY { - BL_FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 8K - FLASH (rx) : ORIGIN = 0x08000000 + 8K, LENGTH = 128K - 8K - SRAM (rwx) : ORIGIN = 0x20000000, LENGTH = 20K + BL_FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 0x02000 - 0x00080 + BD_INFO (r) : ORIGIN = 0x08002000 - 0x80, LENGTH = 0x00080 + FLASH (rx) : ORIGIN = 0x08002000, LENGTH = 0x20000 - 0x02000 + SRAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x05000 } diff --git a/flight/PiOS/STM32F10x/link_STM32103CB_AHRS_sections.ld b/flight/PiOS/STM32F10x/link_STM32103CB_AHRS_sections.ld index 207956b53..82a8ae7f4 100644 --- a/flight/PiOS/STM32F10x/link_STM32103CB_AHRS_sections.ld +++ b/flight/PiOS/STM32F10x/link_STM32103CB_AHRS_sections.ld @@ -3,6 +3,12 @@ _estack = 0x20004FF0; /* Section Definitions */ SECTIONS { + .boardinfo : + { + . = ALIGN(4); + PROVIDE(pios_board_info_blob = .); + } > BD_INFO + .text : { KEEP(*(.isr_vector .isr_vector.*)) diff --git a/flight/PiOS/STM32F10x/link_STM32103CB_CC_Rev1_BL_sections.ld b/flight/PiOS/STM32F10x/link_STM32103CB_CC_Rev1_BL_sections.ld index b5b4e07d0..13cd35df6 100644 --- a/flight/PiOS/STM32F10x/link_STM32103CB_CC_Rev1_BL_sections.ld +++ b/flight/PiOS/STM32F10x/link_STM32103CB_CC_Rev1_BL_sections.ld @@ -61,6 +61,12 @@ SECTIONS . = ALIGN(4); _end = . ; + .boardinfo : + { + . = ALIGN(4); + KEEP(*(.boardinfo)) + } > BD_INFO + /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } diff --git a/flight/PiOS/STM32F10x/link_STM32103CB_CC_Rev1_memory.ld b/flight/PiOS/STM32F10x/link_STM32103CB_CC_Rev1_memory.ld index 57146d7d6..fd36c31ba 100644 --- a/flight/PiOS/STM32F10x/link_STM32103CB_CC_Rev1_memory.ld +++ b/flight/PiOS/STM32F10x/link_STM32103CB_CC_Rev1_memory.ld @@ -1,6 +1,7 @@ MEMORY { - BL_FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 12K - FLASH (rx) : ORIGIN = 0x08000000 + 12K, LENGTH = 128K - 12K - SRAM (rwx) : ORIGIN = 0x20000000, LENGTH = 20K + BL_FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 0x03000 - 0x00080 + BD_INFO (r) : ORIGIN = 0x08003000 - 0x80, LENGTH = 0x00080 + FLASH (rx) : ORIGIN = 0x08003000, LENGTH = 0x20000 - 0x03000 + SRAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x05000 } diff --git a/flight/PiOS/STM32F10x/link_STM32103CB_CC_Rev1_sections.ld b/flight/PiOS/STM32F10x/link_STM32103CB_CC_Rev1_sections.ld index 17534b780..6e46c43c5 100644 --- a/flight/PiOS/STM32F10x/link_STM32103CB_CC_Rev1_sections.ld +++ b/flight/PiOS/STM32F10x/link_STM32103CB_CC_Rev1_sections.ld @@ -8,6 +8,12 @@ _estack = 0x20004FF0; /* Section Definitions */ SECTIONS { + .boardinfo : + { + . = ALIGN(4); + PROVIDE(pios_board_info_blob = .); + } > BD_INFO + .text : { KEEP(*(.isr_vector .isr_vector.*)) diff --git a/flight/PiOS/STM32F10x/link_STM32103CB_PIPXTREME_BL_sections.ld b/flight/PiOS/STM32F10x/link_STM32103CB_PIPXTREME_BL_sections.ld index de9efa6fc..4b35cd71b 100644 --- a/flight/PiOS/STM32F10x/link_STM32103CB_PIPXTREME_BL_sections.ld +++ b/flight/PiOS/STM32F10x/link_STM32103CB_PIPXTREME_BL_sections.ld @@ -50,4 +50,11 @@ SECTIONS . = ALIGN(4); _end = . ; + + .boardinfo : + { + . = ALIGN(4); + KEEP(*(.boardinfo)) + . = ALIGN(4); + } > BD_INFO } diff --git a/flight/PiOS/STM32F10x/link_STM32103CB_PIPXTREME_memory.ld b/flight/PiOS/STM32F10x/link_STM32103CB_PIPXTREME_memory.ld index 57146d7d6..fd36c31ba 100644 --- a/flight/PiOS/STM32F10x/link_STM32103CB_PIPXTREME_memory.ld +++ b/flight/PiOS/STM32F10x/link_STM32103CB_PIPXTREME_memory.ld @@ -1,6 +1,7 @@ MEMORY { - BL_FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 12K - FLASH (rx) : ORIGIN = 0x08000000 + 12K, LENGTH = 128K - 12K - SRAM (rwx) : ORIGIN = 0x20000000, LENGTH = 20K + BL_FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 0x03000 - 0x00080 + BD_INFO (r) : ORIGIN = 0x08003000 - 0x80, LENGTH = 0x00080 + FLASH (rx) : ORIGIN = 0x08003000, LENGTH = 0x20000 - 0x03000 + SRAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x05000 } diff --git a/flight/PiOS/STM32F10x/link_STM32103CB_PIPXTREME_sections.ld b/flight/PiOS/STM32F10x/link_STM32103CB_PIPXTREME_sections.ld index 678f164c8..dc09e6f1c 100644 --- a/flight/PiOS/STM32F10x/link_STM32103CB_PIPXTREME_sections.ld +++ b/flight/PiOS/STM32F10x/link_STM32103CB_PIPXTREME_sections.ld @@ -8,6 +8,12 @@ _estack = 0x20004FF0; /* Section Definitions */ SECTIONS { + .boardinfo : + { + . = ALIGN(4); + PROVIDE(pios_board_info_blob = .); + } > BD_INFO + .text : { KEEP(*(.isr_vector .isr_vector.*)) diff --git a/flight/PiOS/STM32F10x/link_STM3210E_OP_BL_sections.ld b/flight/PiOS/STM32F10x/link_STM3210E_OP_BL_sections.ld index 120a2ba1b..3add614d6 100644 --- a/flight/PiOS/STM32F10x/link_STM3210E_OP_BL_sections.ld +++ b/flight/PiOS/STM32F10x/link_STM3210E_OP_BL_sections.ld @@ -163,7 +163,6 @@ PROVIDE ( SCB = (SCS_BASE + 0x0D00) ) ; SECTIONS { - /* for Cortex devices, the beginning of the startup code is stored in the .isr_vector section, which goes to FLASH */ .isr_vector : { @@ -313,6 +312,13 @@ SECTIONS __exidx_start = .; __exidx_end = .; + .boardinfo : + { + . = ALIGN(4); + KEEP(*(.boardinfo)) + . = ALIGN(4); + } > BD_INFO + /* after that it's only debugging information. */ /* remove the debugging information from the standard libraries */ diff --git a/flight/PiOS/STM32F10x/link_STM3210E_OP_memory.ld b/flight/PiOS/STM32F10x/link_STM3210E_OP_memory.ld index 72ed542d2..ce70e2e5c 100644 --- a/flight/PiOS/STM32F10x/link_STM3210E_OP_memory.ld +++ b/flight/PiOS/STM32F10x/link_STM3210E_OP_memory.ld @@ -1,11 +1,12 @@ MEMORY { - RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 64K - BL_FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 20K - FLASH (rx) : ORIGIN = 0x08000000 + 20K, LENGTH = 512K - 20K - FLASHB1 (rx) : ORIGIN = 0x00000000, LENGTH = 0 - EXTMEMB0 (rx) : ORIGIN = 0x00000000, LENGTH = 0 - EXTMEMB1 (rx) : ORIGIN = 0x00000000, LENGTH = 0 - EXTMEMB2 (rx) : ORIGIN = 0x00000000, LENGTH = 0 - EXTMEMB3 (rx) : ORIGIN = 0x00000000, LENGTH = 0 + RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 0x10000 + BL_FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 0x05000 - 0x00080 + BD_INFO (r) : ORIGIN = 0x08005000 - 0x80, LENGTH = 0x00080 + FLASH (rx) : ORIGIN = 0x08005000, LENGTH = 0x80000 - 0x05000 + FLASHB1 (rx) : ORIGIN = 0x00000000, LENGTH = 0 + EXTMEMB0 (rx) : ORIGIN = 0x00000000, LENGTH = 0 + EXTMEMB1 (rx) : ORIGIN = 0x00000000, LENGTH = 0 + EXTMEMB2 (rx) : ORIGIN = 0x00000000, LENGTH = 0 + EXTMEMB3 (rx) : ORIGIN = 0x00000000, LENGTH = 0 } diff --git a/flight/PiOS/STM32F10x/link_STM3210E_OP_sections.ld b/flight/PiOS/STM32F10x/link_STM3210E_OP_sections.ld index 97e60b135..2292a40e2 100644 --- a/flight/PiOS/STM32F10x/link_STM3210E_OP_sections.ld +++ b/flight/PiOS/STM32F10x/link_STM3210E_OP_sections.ld @@ -163,7 +163,12 @@ PROVIDE ( SCB = (SCS_BASE + 0x0D00) ) ; SECTIONS { - + .boardinfo : + { + . = ALIGN(4); + PROVIDE(pios_board_info_blob = .); + } > BD_INFO + /* for Cortex devices, the beginning of the startup code is stored in the .isr_vector section, which goes to FLASH */ .isr_vector : { @@ -208,7 +213,6 @@ SECTIONS _sidata = _etext; } >FLASH - /* * This stack is used both as the initial sp during early init as well as ultimately * being used as the STM32's MSP (Main Stack Pointer) which is the same stack that diff --git a/flight/PiOS/inc/pios_board_info.h b/flight/PiOS/inc/pios_board_info.h new file mode 100644 index 000000000..579a3ec2b --- /dev/null +++ b/flight/PiOS/inc/pios_board_info.h @@ -0,0 +1,15 @@ +#define PIOS_BOARD_INFO_BLOB_MAGIC 0xBDBDBDBD + +struct pios_board_info { + uint32_t magic; + uint8_t board_type; + uint8_t board_rev; + uint8_t bl_rev; + uint8_t hw_type; + uint32_t fw_base; + uint32_t fw_size; + uint32_t desc_base; + uint32_t desc_size; +} __attribute__((packed)); + +extern const struct pios_board_info pios_board_info_blob; From 2044d777e621b386e12d142c1bffa24073740487 Mon Sep 17 00:00:00 2001 From: Stacey Sheldon Date: Sat, 14 May 2011 20:41:08 -0400 Subject: [PATCH 041/488] coptercontrol: always enable -g debug symbols This does not affect the size of the image or the RAM used by the firmware image. All debugging symbols are stripped from the elf file during the conversion to a .bin file. --- flight/CopterControl/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/flight/CopterControl/Makefile b/flight/CopterControl/Makefile index c158a04fa..627882539 100644 --- a/flight/CopterControl/Makefile +++ b/flight/CopterControl/Makefile @@ -420,9 +420,10 @@ CSTANDARD = -std=gnu99 # Flags for C and C++ (arm-elf-gcc/arm-elf-g++) ifeq ($(DEBUG),YES) -CFLAGS = -g$(DEBUGF) -DDEBUG +CFLAGS = -DDEBUG endif +CFLAGS += -g$(DEBUGF) CFLAGS += -O$(OPT) CFLAGS += -mcpu=$(MCU) CFLAGS += $(CDEFS) From 65201ec81cdac34b968cb47d4063d8b7f24ec07a Mon Sep 17 00:00:00 2001 From: elafargue Date: Mon, 16 May 2011 20:03:41 +0200 Subject: [PATCH 042/488] Improve Uploader gadget widget behaviour when clicking on halt & boot (prevent double clicking) --- ground/openpilotgcs/src/plugins/uploader/op_dfu.cpp | 2 +- .../src/plugins/uploader/uploadergadgetwidget.cpp | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/ground/openpilotgcs/src/plugins/uploader/op_dfu.cpp b/ground/openpilotgcs/src/plugins/uploader/op_dfu.cpp index efd7aa87d..a3fe178c6 100644 --- a/ground/openpilotgcs/src/plugins/uploader/op_dfu.cpp +++ b/ground/openpilotgcs/src/plugins/uploader/op_dfu.cpp @@ -100,7 +100,7 @@ DFUObject::DFUObject(bool _debug,bool _use_serial,QString portname): if (devices.length()==1) { hidHandle.open(1,devices.first().vendorID,devices.first().productID,0,0); } else { - qDebug() << "More than one device, don't know what to do!"; + qDebug() << devices.length() << " device(s) detected, don't know what to do!"; mready = false; } diff --git a/ground/openpilotgcs/src/plugins/uploader/uploadergadgetwidget.cpp b/ground/openpilotgcs/src/plugins/uploader/uploadergadgetwidget.cpp index 8163d3968..52f91066e 100755 --- a/ground/openpilotgcs/src/plugins/uploader/uploadergadgetwidget.cpp +++ b/ground/openpilotgcs/src/plugins/uploader/uploadergadgetwidget.cpp @@ -161,6 +161,7 @@ void UploaderGadgetWidget::goToBootloader(UAVObject* callerObj, bool success) switch (currentStep) { case IAP_STATE_READY: + m_config->haltButton->setEnabled(false); getSerialPorts(); // Useful in case a new serial port appeared since the initial list, // otherwise we won't find it when we stop the board. // The board is running, send the 1st IAP Reset order: @@ -179,6 +180,7 @@ void UploaderGadgetWidget::goToBootloader(UAVObject* callerObj, bool success) log("Reset did NOT happen"); currentStep = IAP_STATE_READY; disconnect(fwIAP, SIGNAL(transactionCompleted(UAVObject*,bool)),this,SLOT(goToBootloader(UAVObject*, bool))); + m_config->haltButton->setEnabled(true); break; } delay::msleep(600); @@ -193,6 +195,7 @@ void UploaderGadgetWidget::goToBootloader(UAVObject* callerObj, bool success) log("Reset did NOT happen"); currentStep = IAP_STATE_READY; disconnect(fwIAP, SIGNAL(transactionCompleted(UAVObject*,bool)),this,SLOT(goToBootloader(UAVObject*, bool))); + m_config->haltButton->setEnabled(true); break; } delay::msleep(600); @@ -208,6 +211,7 @@ void UploaderGadgetWidget::goToBootloader(UAVObject* callerObj, bool success) log("Oops, failure step 3"); log("Reset did NOT happen"); disconnect(fwIAP, SIGNAL(transactionCompleted(UAVObject*,bool)),this,SLOT(goToBootloader(UAVObject*, bool))); + m_config->haltButton->setEnabled(true); break; } @@ -247,6 +251,7 @@ void UploaderGadgetWidget::goToBootloader(UAVObject* callerObj, bool success) cm->resumePolling(); currentStep = IAP_STATE_READY; m_config->boardStatus->setText("Bootloader?"); + m_config->haltButton->setEnabled(true); return; } dfu->AbortOperation(); @@ -353,7 +358,6 @@ void UploaderGadgetWidget::systemBoot() log("Could not enter DFU mode."); delete dfu; dfu = NULL; - m_config->bootButton->setEnabled(true); return; } log("Booting system..."); From 3129c10d057c10f99ee22a72ce221574d493df29 Mon Sep 17 00:00:00 2001 From: elafargue Date: Mon, 16 May 2011 20:09:51 +0200 Subject: [PATCH 043/488] Bugfix (uploader gadget) --- .../openpilotgcs/src/plugins/uploader/uploadergadgetwidget.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ground/openpilotgcs/src/plugins/uploader/uploadergadgetwidget.cpp b/ground/openpilotgcs/src/plugins/uploader/uploadergadgetwidget.cpp index 52f91066e..d9823a36c 100755 --- a/ground/openpilotgcs/src/plugins/uploader/uploadergadgetwidget.cpp +++ b/ground/openpilotgcs/src/plugins/uploader/uploadergadgetwidget.cpp @@ -358,13 +358,13 @@ void UploaderGadgetWidget::systemBoot() log("Could not enter DFU mode."); delete dfu; dfu = NULL; + m_config->bootButton->setEnabled(true); return; } log("Booting system..."); dfu->JumpToApp(); // Restart the polling thread cm->resumePolling(); - m_config->bootButton->setEnabled(true); m_config->rescueButton->setEnabled(true); m_config->telemetryLink->setEnabled(true); m_config->boardStatus->setText("Running"); From 5f328037635709e0d34d9e06512dddf9fa01dd23 Mon Sep 17 00:00:00 2001 From: dankers Date: Tue, 17 May 2011 04:15:28 +1000 Subject: [PATCH 044/488] Changed accelKp = 1; in 3C filter when calibrating bias when arming. Increase default yaw by 0.005 --- flight/Modules/Attitude/attitude.c | 1 + shared/uavobjectdefinition/stabilizationsettings.xml | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/flight/Modules/Attitude/attitude.c b/flight/Modules/Attitude/attitude.c index f4c892466..d05ae1152 100644 --- a/flight/Modules/Attitude/attitude.c +++ b/flight/Modules/Attitude/attitude.c @@ -152,6 +152,7 @@ static void AttitudeTask(void *parameters) init = 0; } else if (zero_during_arming && (flightStatus.Armed == FLIGHTSTATUS_ARMED_ARMING)) { + accelKp = 1; accelKi = 0.9; yawBiasRate = 0.23; init = 0; diff --git a/shared/uavobjectdefinition/stabilizationsettings.xml b/shared/uavobjectdefinition/stabilizationsettings.xml index 80c2968f8..991673d14 100644 --- a/shared/uavobjectdefinition/stabilizationsettings.xml +++ b/shared/uavobjectdefinition/stabilizationsettings.xml @@ -9,7 +9,7 @@ - + From 98f286a682b6cf649fbaf1ab2a3057d13c41757f Mon Sep 17 00:00:00 2001 From: elafargue Date: Mon, 16 May 2011 22:05:33 +0200 Subject: [PATCH 045/488] Uploader gadget improvements --- ground/openpilotgcs/src/plugins/uploader/devicewidget.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ground/openpilotgcs/src/plugins/uploader/devicewidget.cpp b/ground/openpilotgcs/src/plugins/uploader/devicewidget.cpp index 771bb5241..d892c6f7a 100644 --- a/ground/openpilotgcs/src/plugins/uploader/devicewidget.cpp +++ b/ground/openpilotgcs/src/plugins/uploader/devicewidget.cpp @@ -268,6 +268,10 @@ void deviceWidget::uploadFirmware() if (firmwareBoard != board) { status("Error: firmware does not match board", STATUSICON_FAIL); return; + } else { + // Not a structured description: warn user + myDevice->buildDate->setText("Warning: development firmware"); + myDevice->commitTag->setText(""); } // Check the firmware embedded in the file: From b2587a5b9f241bc30e3ea3c18bbcf939d2657d8e Mon Sep 17 00:00:00 2001 From: elafargue Date: Tue, 17 May 2011 00:34:25 +0200 Subject: [PATCH 046/488] Improvement & bugfix: now the output config tab in the config gadget only shows the channel assignments as labels, not dropdowns, and more importantly does not try to save them when clicking on save/apply! --- .../src/plugins/config/configoutputwidget.cpp | 86 ++--- .../openpilotgcs/src/plugins/config/output.ui | 311 ++++++++---------- 2 files changed, 155 insertions(+), 242 deletions(-) diff --git a/ground/openpilotgcs/src/plugins/config/configoutputwidget.cpp b/ground/openpilotgcs/src/plugins/config/configoutputwidget.cpp index 5ef3daf72..9cce0171e 100644 --- a/ground/openpilotgcs/src/plugins/config/configoutputwidget.cpp +++ b/ground/openpilotgcs/src/plugins/config/configoutputwidget.cpp @@ -103,7 +103,8 @@ ConfigOutputWidget::ConfigOutputWidget(QWidget *parent) : ConfigTaskWidget(paren << m_config->ch6Link << m_config->ch7Link; - UAVDataObject * obj = dynamic_cast(objManager->getObject(QString("ActuatorSettings"))); +/* + UAVDataObject * obj = dynamic_cast(objManager->getObject(QString("ActuatorSettings"))); QList fieldList = obj->getFields(); foreach (UAVObjectField* field, fieldList) { if (field->getUnits().contains("channel")) { @@ -117,6 +118,7 @@ ConfigOutputWidget::ConfigOutputWidget(QWidget *parent) : ConfigTaskWidget(paren m_config->ch7Output->addItem(field->getName()); } } + */ for (int i = 0; i < 8; i++) { @@ -292,7 +294,7 @@ void ConfigOutputWidget::runChannelTests(bool state) } /** - * Set the dropdown option for a channel output assignement + * Set the label for a channel output assignement */ void ConfigOutputWidget::assignOutputChannel(UAVDataObject *obj, QString str) { @@ -300,28 +302,28 @@ void ConfigOutputWidget::assignOutputChannel(UAVDataObject *obj, QString str) QStringList options = field->getOptions(); switch (options.indexOf(field->getValue().toString())) { case 0: - m_config->ch0Output->setCurrentIndex(m_config->ch0Output->findText(str)); + m_config->ch0Output->setText(str); break; case 1: - m_config->ch1Output->setCurrentIndex(m_config->ch1Output->findText(str)); + m_config->ch1Output->setText(str); break; case 2: - m_config->ch2Output->setCurrentIndex(m_config->ch2Output->findText(str)); + m_config->ch2Output->setText(str); break; case 3: - m_config->ch3Output->setCurrentIndex(m_config->ch3Output->findText(str)); + m_config->ch3Output->setText(str); break; case 4: - m_config->ch4Output->setCurrentIndex(m_config->ch4Output->findText(str)); + m_config->ch4Output->setText(str); break; case 5: - m_config->ch5Output->setCurrentIndex(m_config->ch5Output->findText(str)); + m_config->ch5Output->setText(str); break; case 6: - m_config->ch6Output->setCurrentIndex(m_config->ch6Output->findText(str)); + m_config->ch6Output->setText(str); break; case 7: - m_config->ch7Output->setCurrentIndex(m_config->ch7Output->findText(str)); + m_config->ch7Output->setText(str); break; } } @@ -405,14 +407,14 @@ void ConfigOutputWidget::requestRCOutputUpdate() UAVObjectManager *objManager = pm->getObject(); // Reset all channel assignements: - m_config->ch0Output->setCurrentIndex(0); - m_config->ch1Output->setCurrentIndex(0); - m_config->ch2Output->setCurrentIndex(0); - m_config->ch3Output->setCurrentIndex(0); - m_config->ch4Output->setCurrentIndex(0); - m_config->ch5Output->setCurrentIndex(0); - m_config->ch6Output->setCurrentIndex(0); - m_config->ch7Output->setCurrentIndex(0); + m_config->ch0Output->setText("-"); + m_config->ch1Output->setText("-"); + m_config->ch2Output->setText("-"); + m_config->ch3Output->setText("-"); + m_config->ch4Output->setText("-"); + m_config->ch5Output->setText("-"); + m_config->ch6Output->setText("-"); + m_config->ch7Output->setText("-"); // Get the channel assignements: UAVDataObject * obj = dynamic_cast(objManager->getObject(QString("ActuatorSettings"))); @@ -525,57 +527,9 @@ void ConfigOutputWidget::sendRCOutputUpdate() field->setValue(m_config->outputRate3->value(),2); field->setValue(m_config->outputRate4->value(),3); - // Set Actuator assignement for each channel: - // Rule: if two channels have the same setting (which is wrong!) the higher channel - // will get the setting. - - // First, reset all channel assignements: - QList fieldList = obj->getFields(); - foreach (UAVObjectField* field, fieldList) { - // NOTE: we assume that all options in ActuatorSettings are a channel assignement - // except for the options called "ChannelXXX" - if (field->getUnits().contains("channel")) { - field->setValue(field->getOptions().last()); - } - } - - if (m_config->ch0Output->currentIndex() != 0) { - field = obj->getField(m_config->ch0Output->currentText()); - field->setValue(field->getOptions().at(0)); // -> This way we don't depend on channel naming convention - } - if (m_config->ch1Output->currentIndex() != 0) { - field = obj->getField(m_config->ch1Output->currentText()); - field->setValue(field->getOptions().at(1)); // -> This way we don't depend on channel naming convention - } - if (m_config->ch2Output->currentIndex() != 0) { - field = obj->getField(m_config->ch2Output->currentText()); - field->setValue(field->getOptions().at(2)); // -> This way we don't depend on channel naming convention - } - if (m_config->ch3Output->currentIndex() != 0) { - field = obj->getField(m_config->ch3Output->currentText()); - field->setValue(field->getOptions().at(3)); // -> This way we don't depend on channel naming convention - } - if (m_config->ch4Output->currentIndex() != 0) { - field = obj->getField(m_config->ch4Output->currentText()); - field->setValue(field->getOptions().at(4)); // -> This way we don't depend on channel naming convention - } - if (m_config->ch5Output->currentIndex() != 0) { - field = obj->getField(m_config->ch5Output->currentText()); - field->setValue(field->getOptions().at(5)); // -> This way we don't depend on channel naming convention - } - if (m_config->ch6Output->currentIndex() != 0) { - field = obj->getField(m_config->ch6Output->currentText()); - field->setValue(field->getOptions().at(6)); // -> This way we don't depend on channel naming convention - } - if (m_config->ch7Output->currentIndex() != 0) { - field = obj->getField(m_config->ch7Output->currentText()); - field->setValue(field->getOptions().at(7)); // -> This way we don't depend on channel naming convention - } - // ... and send to the OP Board obj->updated(); - } diff --git a/ground/openpilotgcs/src/plugins/config/output.ui b/ground/openpilotgcs/src/plugins/config/output.ui index db63ba4c7..7a0257daf 100644 --- a/ground/openpilotgcs/src/plugins/config/output.ui +++ b/ground/openpilotgcs/src/plugins/config/output.ui @@ -162,27 +162,7 @@ Leave at 50Hz for fixed wing. - Channel 1 - - - - - - - false - - - - 8 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Ubuntu'; font-size:8pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans';">This is the actuator connected to this channel.</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans';">You can change this through the &quot;Airframe&quot; dialog (on the left).</span></p></body></html> + Channel 1: @@ -300,27 +280,7 @@ p, li { white-space: pre-wrap; } - Channel 2 - - - - - - - false - - - - 8 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Ubuntu'; font-size:8pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans';">This is the actuator connected to this channel.</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans';">You can change this through the &quot;Airframe&quot; dialog (on the left).</span></p></body></html> + Channel 2: @@ -407,27 +367,7 @@ p, li { white-space: pre-wrap; } - Channel 3 - - - - - - - false - - - - 8 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Ubuntu'; font-size:8pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans';">This is the actuator connected to this channel.</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans';">You can change this through the &quot;Airframe&quot; dialog (on the left).</span></p></body></html> + Channel 3: @@ -514,27 +454,7 @@ p, li { white-space: pre-wrap; } - Channel 4 - - - - - - - false - - - - 8 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Ubuntu'; font-size:8pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans';">This is the actuator connected to this channel.</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans';">You can change this through the &quot;Airframe&quot; dialog (on the left).</span></p></body></html> + Channel 4: @@ -621,27 +541,7 @@ p, li { white-space: pre-wrap; } - Channel 5 - - - - - - - false - - - - 8 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Ubuntu'; font-size:8pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans';">This is the actuator connected to this channel.</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans';">You can change this through the &quot;Airframe&quot; dialog (on the left).</span></p></body></html> + Channel 5: @@ -719,27 +619,7 @@ p, li { white-space: pre-wrap; } - Channel 6 - - - - - - - false - - - - 8 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Ubuntu'; font-size:8pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans';">This is the actuator connected to this channel.</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans';">You can change this through the &quot;Airframe&quot; dialog (on the left).</span></p></body></html> + Channel 6: @@ -817,54 +697,14 @@ p, li { white-space: pre-wrap; } - Channel 7 - - - - - - - false - - - - 8 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Ubuntu'; font-size:8pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans';">This is the actuator connected to this channel.</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans';">You can change this through the &quot;Airframe&quot; dialog (on the left).</span></p></body></html> + Channel 7: - Channel 8 - - - - - - - false - - - - 8 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Ubuntu'; font-size:8pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans';">This is the actuator connected to this channel.</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans';">You can change this through the &quot;Airframe&quot; dialog (on the left).</span></p></body></html> + Channel 8: @@ -1010,6 +850,133 @@ p, li { white-space: pre-wrap; } + + + + + 9 + + + + - + + + Qt::AlignCenter + + + + + + + + 9 + + + + - + + + Qt::AlignCenter + + + + + + + + 9 + + + + - + + + Qt::AlignCenter + + + + + + + + 9 + + + + - + + + Qt::AlignCenter + + + + + + + + 9 + + + + - + + + Qt::AlignCenter + + + + + + + + 9 + + + + - + + + Qt::AlignCenter + + + + + + + + 9 + + + + - + + + Qt::AlignCenter + + + + + + + + 9 + + + + - + + + Qt::AlignCenter + + + + + + + Assignment + + + @@ -1119,35 +1086,27 @@ Applies and Saves all settings to SD ch6OutMax ch7OutMin ch7OutMax - ch0Output ch0OutSlider ch0Rev ch0Link - ch1Output ch1OutSlider ch1Rev ch1Link - ch2Output ch2OutSlider ch2Rev ch2Link - ch3Output ch3OutSlider ch3Rev ch3Link - ch4Output ch4OutSlider ch4Rev ch4Link - ch5Output ch5OutSlider ch5Rev ch5Link - ch6Output ch6OutSlider ch6Rev ch6Link - ch7Output ch7OutSlider ch7Rev ch7Link From b1ec27bd7575cc66fce2979d0cc213cc5707d3f8 Mon Sep 17 00:00:00 2001 From: David Carlson Date: Mon, 16 May 2011 21:54:23 -0700 Subject: [PATCH 047/488] Add help buttons to the config gadget UI. Also connect all signals to its slot in configgadgetwidget.cpp. Also some very trivial .html help files. --- .../openpilotgcs/help/angleLimitsHelp.html | 1 + .../openpilotgcs/help/attitudeStabiHelp.html | 1 + .../share/openpilotgcs/help/commandHelp.html | 1 + .../openpilotgcs/help/rateStabiHelp.html | 1 + .../openpilotgcs/help/updateRealTimeHelp.html | 1 + .../openpilotgcs/src/plugins/config/ahrs.ui | 325 ++++++++-- .../src/plugins/config/airframe.ui | 457 ++++++++++++-- .../src/plugins/config/ccattitude.ui | 574 +++++++++++------- .../src/plugins/config/configahrswidget.cpp | 19 + .../plugins/config/configairframewidget.cpp | 27 + .../plugins/config/configccattitudewidget.cpp | 14 + .../src/plugins/config/configgadget.qrc | 35 +- .../src/plugins/config/configgadgetwidget.cpp | 41 ++ .../src/plugins/config/configgadgetwidget.h | 8 + .../src/plugins/config/configinputwidget.cpp | 25 + .../src/plugins/config/configoutputwidget.cpp | 16 + .../config/configstabilizationwidget.cpp | 19 +- .../config/configstabilizationwidget.h | 3 - .../plugins/config/configtelemetrywidget.cpp | 10 +- .../openpilotgcs/src/plugins/config/input.ui | 255 +++++++- .../openpilotgcs/src/plugins/config/output.ui | 266 ++++++-- .../src/plugins/config/stabilization.ui | 162 ++++- .../src/plugins/config/telemetry.ui | 73 ++- 23 files changed, 1944 insertions(+), 390 deletions(-) create mode 100644 ground/openpilotgcs/share/openpilotgcs/help/angleLimitsHelp.html create mode 100644 ground/openpilotgcs/share/openpilotgcs/help/attitudeStabiHelp.html create mode 100644 ground/openpilotgcs/share/openpilotgcs/help/commandHelp.html create mode 100644 ground/openpilotgcs/share/openpilotgcs/help/rateStabiHelp.html create mode 100644 ground/openpilotgcs/share/openpilotgcs/help/updateRealTimeHelp.html diff --git a/ground/openpilotgcs/share/openpilotgcs/help/angleLimitsHelp.html b/ground/openpilotgcs/share/openpilotgcs/help/angleLimitsHelp.html new file mode 100644 index 000000000..c8a6fa682 --- /dev/null +++ b/ground/openpilotgcs/share/openpilotgcs/help/angleLimitsHelp.html @@ -0,0 +1 @@ +Here you will find help for Angle Limit fields diff --git a/ground/openpilotgcs/share/openpilotgcs/help/attitudeStabiHelp.html b/ground/openpilotgcs/share/openpilotgcs/help/attitudeStabiHelp.html new file mode 100644 index 000000000..410451fcf --- /dev/null +++ b/ground/openpilotgcs/share/openpilotgcs/help/attitudeStabiHelp.html @@ -0,0 +1 @@ +Here you will find help for tunning Attitude Stabilization diff --git a/ground/openpilotgcs/share/openpilotgcs/help/commandHelp.html b/ground/openpilotgcs/share/openpilotgcs/help/commandHelp.html new file mode 100644 index 000000000..76817e5e9 --- /dev/null +++ b/ground/openpilotgcs/share/openpilotgcs/help/commandHelp.html @@ -0,0 +1 @@ +Add explanation of what Get Current, Apply, and Save each do diff --git a/ground/openpilotgcs/share/openpilotgcs/help/rateStabiHelp.html b/ground/openpilotgcs/share/openpilotgcs/help/rateStabiHelp.html new file mode 100644 index 000000000..410451fcf --- /dev/null +++ b/ground/openpilotgcs/share/openpilotgcs/help/rateStabiHelp.html @@ -0,0 +1 @@ +Here you will find help for tunning Attitude Stabilization diff --git a/ground/openpilotgcs/share/openpilotgcs/help/updateRealTimeHelp.html b/ground/openpilotgcs/share/openpilotgcs/help/updateRealTimeHelp.html new file mode 100644 index 000000000..f7718b095 --- /dev/null +++ b/ground/openpilotgcs/share/openpilotgcs/help/updateRealTimeHelp.html @@ -0,0 +1 @@ +Here you will find help for what the Update in Real Time checkmark does diff --git a/ground/openpilotgcs/src/plugins/config/ahrs.ui b/ground/openpilotgcs/src/plugins/config/ahrs.ui index 3ed6c93c9..f4cc5a453 100644 --- a/ground/openpilotgcs/src/plugins/config/ahrs.ui +++ b/ground/openpilotgcs/src/plugins/config/ahrs.ui @@ -7,7 +7,7 @@ 0 0 720 - 501 + 509 @@ -17,7 +17,7 @@ - 0 + 1 @@ -41,17 +41,57 @@ - - - - 75 - true - - - - #1: Multi-Point Calibration - - + + + + + + 0 + 0 + + + + + 20 + 20 + + + + + + + + :/configgadget/images/help2.png:/configgadget/images/help2.png + + + + + + + + 75 + true + + + + #1: Multi-Point Calibration + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + @@ -111,17 +151,57 @@ - - - - 75 - true - - - - #2: Sensor noise calibration - - + + + + + + 0 + 0 + + + + + 20 + 20 + + + + + + + + :/configgadget/images/help2.png:/configgadget/images/help2.png + + + + + + + + 75 + true + + + + #2: Sensor noise calibration + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + @@ -197,17 +277,51 @@ Hint: run this with engines at cruising speed. - - - - 75 - true - - - - #3: Accelerometer Bias calibration - - + + + + + + 20 + 20 + + + + + + + + :/configgadget/images/help2.png:/configgadget/images/help2.png + + + + + + + + 75 + true + + + + #3: Accelerometer Bias calibration + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + @@ -253,17 +367,51 @@ Hint: run this with engines at cruising speed. - - - - 75 - true - - - - #4 Gyro temperature drift calibration - - + + + + + + 20 + 20 + + + + + + + + :/configgadget/images/help2.png:/configgadget/images/help2.png + + + + + + + + 75 + true + + + + #4 Gyro temperature drift calibration + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + @@ -432,8 +580,37 @@ p, li { white-space: pre-wrap; } + + + + + 0 + 0 + + + + + 20 + 20 + + + + + + + + :/configgadget/images/help2.png:/configgadget/images/help2.png + + + + + + 75 + true + + INS Algorithm: @@ -461,8 +638,37 @@ p, li { white-space: pre-wrap; } + + + + + 0 + 0 + + + + + 20 + 20 + + + + + + + + :/configgadget/images/help2.png:/configgadget/images/help2.png + + + + + + 75 + true + + Home Location: @@ -550,6 +756,29 @@ new home location unless it is in indoor mode. + + + + + 0 + 0 + + + + + 20 + 20 + + + + + + + + :/configgadget/images/help2.png:/configgadget/images/help2.png + + + @@ -590,7 +819,9 @@ specific calibration button on top of the screen. - + + + diff --git a/ground/openpilotgcs/src/plugins/config/airframe.ui b/ground/openpilotgcs/src/plugins/config/airframe.ui index 09ed33ce7..3b7fb1d57 100644 --- a/ground/openpilotgcs/src/plugins/config/airframe.ui +++ b/ground/openpilotgcs/src/plugins/config/airframe.ui @@ -17,7 +17,7 @@ - 0 + 1 @@ -29,8 +29,37 @@ + + + + + 0 + 0 + + + + + 20 + 20 + + + + + + + + :/configgadget/images/help2.png:/configgadget/images/help2.png + + + + + + 75 + true + + Aircraft type: @@ -73,7 +102,7 @@ - 0 + 3 @@ -87,6 +116,23 @@ + + + + + 20 + 20 + + + + + + + + :/configgadget/images/help2.png:/configgadget/images/help2.png + + + @@ -95,6 +141,12 @@ 0 + + + 75 + true + + Airplane type: @@ -119,11 +171,51 @@ - - - Channel Assignment - - + + + + + + 20 + 20 + + + + + + + + :/configgadget/images/help2.png:/configgadget/images/help2.png + + + + + + + + 75 + true + + + + Channel Assignment + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + @@ -359,8 +451,31 @@ + + + + + 20 + 20 + + + + + + + + :/configgadget/images/help2.png:/configgadget/images/help2.png + + + + + + 75 + true + + Throttle Curve @@ -471,8 +586,37 @@ + + + + + 0 + 0 + + + + + 20 + 20 + + + + + + + + :/configgadget/images/help2.png:/configgadget/images/help2.png + + + + + + 75 + true + + Frame type: @@ -505,17 +649,57 @@ - - - - 75 - true - - - - Mix Level - - + + + + + + 0 + 0 + + + + + 20 + 20 + + + + + + + + :/configgadget/images/help2.png:/configgadget/images/help2.png + + + + + + + + 75 + true + + + + Mix Level + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + @@ -701,8 +885,37 @@ Typical value is 50% for + or X configuration on quads. + + + + + 0 + 0 + + + + + 20 + 20 + + + + + + + + :/configgadget/images/help2.png:/configgadget/images/help2.png + + + + + + 75 + true + + Throttle Curve @@ -772,18 +985,64 @@ Typical value is 50% for + or X configuration on quads. - + 10 - - - Tricopter Yaw - - + + + + + + 0 + 0 + + + + + 20 + 20 + + + + + + + + :/configgadget/images/help2.png:/configgadget/images/help2.png + + + + + + + + 75 + true + + + + Tricopter Yaw + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + @@ -826,6 +1085,46 @@ Typical value is 50% for + or X configuration on quads. + + + + + + + 0 + 0 + + + + + 20 + 20 + + + + + + + + :/configgadget/images/help2.png:/configgadget/images/help2.png + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + @@ -1089,6 +1388,8 @@ p, li { white-space: pre-wrap; } 9 + 75 + true @@ -1175,6 +1476,8 @@ p, li { white-space: pre-wrap; } 9 + 75 + true @@ -1833,6 +2136,23 @@ p, li { white-space: pre-wrap; } + + + + + 20 + 20 + + + + + + + + :/configgadget/images/help2.png:/configgadget/images/help2.png + + + @@ -1875,17 +2195,57 @@ p, li { white-space: pre-wrap; } - - - - 75 - true - - - - Feed Forward - - + + + + + + 0 + 0 + + + + + 20 + 20 + + + + + + + + :/configgadget/images/help2.png:/configgadget/images/help2.png + + + + + + + + 75 + true + + + + Feed Forward + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + @@ -2170,6 +2530,29 @@ p, li { white-space: pre-wrap; } + + + + + 0 + 0 + + + + + 20 + 20 + + + + + + + + :/configgadget/images/help2.png:/configgadget/images/help2.png + + + @@ -2224,7 +2607,9 @@ p, li { white-space: pre-wrap; } 1 - + + + feedForwardSlider diff --git a/ground/openpilotgcs/src/plugins/config/ccattitude.ui b/ground/openpilotgcs/src/plugins/config/ccattitude.ui index 09065ad0f..58d9ad2bc 100644 --- a/ground/openpilotgcs/src/plugins/config/ccattitude.ui +++ b/ground/openpilotgcs/src/plugins/config/ccattitude.ui @@ -6,8 +6,8 @@ 0 0 - 415 - 349 + 331 + 324 @@ -15,243 +15,324 @@ - - - - 0 - 0 - - - - - 0 - 110 - - - - Attitude Rotation - - - - - 10 - 70 - 81 - 25 - - - - -180 - - - 180 - - - - - - 120 - 70 - 81 - 25 - - - - -90 - - - 90 - - - - - - 220 - 70 - 81 - 25 - - - - -180 - - - 180 - - - - - - 10 - 50 - 91 - 16 - - - - Roll - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - - - - 120 - 50 - 81 - 16 - - - - Pitch - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - - - - 220 - 50 - 81 - 16 - - - - Yaw - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - - - - 10 - 30 - 341 - 16 - - - - Select the amount to rotate the attitude - - - + + + + + + + + 0 + 0 + + + + + 20 + 20 + + + + + + + + :/configgadget/images/help2.png:/configgadget/images/help2.png + + + + + + + + 75 + true + + + + Attitude Rotation + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + Select the amount to rotate the attitude + + + + + + + + + + + Roll + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + + -180 + + + 180 + + + + + + + + + + + Pitch + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + + -90 + + + 90 + + + + + + + + + + + Yaw + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + + -180 + + + 180 + + + + + + + + - - - - 0 - 0 - - - - - 0 - 140 - - - - Attitude Calibration - - - - - - 3 - - - - - Place aircraft flat before computing - - - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - Click "Zero Accel Bias" to start - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - - 6 - - - 4 - - - - - Launch horizontal calibration. - - - Zero Accel Bias - - - - - - - 0 - - - - - - - - - + + + + + + + + 0 + 0 + + + + + 20 + 20 + + + + + + + + :/configgadget/images/help2.png:/configgadget/images/help2.png + + + + + + + + 75 + true + + + + Attitude Calibration + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + Place aircraft flat before computing + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Click "Zero Accel Bias" to start + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + 6 + + + 4 + + + + + Launch horizontal calibration. + + + Zero Accel Bias + + + + + + + 0 + + + + + + - - - If enabled, a fast recalibration of gyro zero point will be done + + + + + + 0 + 0 + + + + + 20 + 20 + + + + + + + + :/configgadget/images/help2.png:/configgadget/images/help2.png + + + + + + + If enabled, a fast recalibration of gyro zero point will be done whenever the frame is armed. Do not move the airframe while arming it in that case! - - - Zero gyro bias upon airframe arming - - + + + Zero gyro bias upon airframe arming + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + @@ -281,6 +362,29 @@ arming it in that case! + + + + + 0 + 0 + + + + + 20 + 20 + + + + + + + + :/configgadget/images/help2.png:/configgadget/images/help2.png + + + @@ -322,6 +426,8 @@ arming it in that case! - + + + diff --git a/ground/openpilotgcs/src/plugins/config/configahrswidget.cpp b/ground/openpilotgcs/src/plugins/config/configahrswidget.cpp index 577167dda..f4fbb345c 100644 --- a/ground/openpilotgcs/src/plugins/config/configahrswidget.cpp +++ b/ground/openpilotgcs/src/plugins/config/configahrswidget.cpp @@ -37,6 +37,7 @@ #include #include #include +#include #include "assertions.h" #include "calibration.h" @@ -227,6 +228,24 @@ ConfigAHRSWidget::ConfigAHRSWidget(QWidget *parent) : ConfigTaskWidget(parent) connect(m_ahrs->startDriftCalib, SIGNAL(clicked()),this, SLOT(launchGyroDriftCalibration())); connect(parent, SIGNAL(autopilotConnected()),this, SLOT(ahrsSettingsRequest())); + // Connect all the help buttons to signal mapper that passes button name to SLOT function + QSignalMapper* signalMapper = new QSignalMapper(this); + connect( m_ahrs->multiPointHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) ); + signalMapper->setMapping(m_ahrs->multiPointHelp, m_ahrs->multiPointHelp->objectName()); + connect( m_ahrs->sensorNoiseHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) ); + signalMapper->setMapping(m_ahrs->sensorNoiseHelp, m_ahrs->sensorNoiseHelp->objectName()); + connect( m_ahrs->accelBiasHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) ); + signalMapper->setMapping(m_ahrs->accelBiasHelp, m_ahrs->accelBiasHelp->objectName()); + connect( m_ahrs->gyroDriftHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) ); + signalMapper->setMapping(m_ahrs->gyroDriftHelp, m_ahrs->gyroDriftHelp->objectName()); + connect( m_ahrs->commandHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) ); + signalMapper->setMapping(m_ahrs->commandHelp, QString("commandHelp")); + connect( m_ahrs->insAlgorithmHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) ); + signalMapper->setMapping(m_ahrs->insAlgorithmHelp, m_ahrs->insAlgorithmHelp->objectName()); + connect( m_ahrs->homeLocationHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) ); + signalMapper->setMapping(m_ahrs->homeLocationHelp, m_ahrs->homeLocationHelp->objectName()); + + connect(signalMapper, SIGNAL(mapped(const QString &)), parent, SLOT(showHelp(const QString &))); } diff --git a/ground/openpilotgcs/src/plugins/config/configairframewidget.cpp b/ground/openpilotgcs/src/plugins/config/configairframewidget.cpp index 24d74ddcd..27696457c 100644 --- a/ground/openpilotgcs/src/plugins/config/configairframewidget.cpp +++ b/ground/openpilotgcs/src/plugins/config/configairframewidget.cpp @@ -34,6 +34,7 @@ #include #include #include +#include /** Helper delegate for the custom mixer editor table. @@ -192,6 +193,32 @@ ConfigAirframeWidget::ConfigAirframeWidget(QWidget *parent) : ConfigTaskWidget(p connect(parent, SIGNAL(autopilotConnected()),this, SLOT(requestAircraftUpdate())); + // Connect all the help buttons to signal mapper that passes button name to SLOT function + QSignalMapper* signalMapper = new QSignalMapper(this); + connect( m_aircraft->acftTypeHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) ); + signalMapper->setMapping(m_aircraft->acftTypeHelp, m_aircraft->acftTypeHelp->objectName()); + connect( m_aircraft->airplaneTypeHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) ); + signalMapper->setMapping(m_aircraft->airplaneTypeHelp, m_aircraft->airplaneTypeHelp->objectName()); + connect( m_aircraft->channelAssignmentHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) ); + signalMapper->setMapping(m_aircraft->channelAssignmentHelp, m_aircraft->channelAssignmentHelp->objectName()); + connect( m_aircraft->commandHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) ); + signalMapper->setMapping(m_aircraft->commandHelp, QString("commandHelp")); + connect( m_aircraft->throttleCurveHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) ); + signalMapper->setMapping(m_aircraft->throttleCurveHelp, QString("throttleCurveHelp")); + connect( m_aircraft->multiFrameTypeHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) ); + signalMapper->setMapping(m_aircraft->multiFrameTypeHelp, m_aircraft->multiFrameTypeHelp->objectName()); + connect( m_aircraft->throttleCurveHelp_2, SIGNAL(clicked()), signalMapper, SLOT(map()) ); + signalMapper->setMapping(m_aircraft->throttleCurveHelp_2, QString("throttleCurveHelp")); + connect( m_aircraft->tricopterYawHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) ); + signalMapper->setMapping(m_aircraft->tricopterYawHelp, m_aircraft->tricopterYawHelp->objectName()); + connect( m_aircraft->motorOutputChanHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) ); + signalMapper->setMapping(m_aircraft->motorOutputChanHelp, m_aircraft->motorOutputChanHelp->objectName()); + connect( m_aircraft->feedForwardHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) ); + signalMapper->setMapping(m_aircraft->feedForwardHelp, m_aircraft->feedForwardHelp->objectName()); + connect( m_aircraft->commandHelp_2, SIGNAL(clicked()), signalMapper, SLOT(map()) ); + signalMapper->setMapping(m_aircraft->commandHelp_2, QString("commandHelp")); + + connect(signalMapper, SIGNAL(mapped(const QString &)), parent, SLOT(showHelp(const QString &))); } ConfigAirframeWidget::~ConfigAirframeWidget() diff --git a/ground/openpilotgcs/src/plugins/config/configccattitudewidget.cpp b/ground/openpilotgcs/src/plugins/config/configccattitudewidget.cpp index c8d278cfc..beb4fa2fc 100644 --- a/ground/openpilotgcs/src/plugins/config/configccattitudewidget.cpp +++ b/ground/openpilotgcs/src/plugins/config/configccattitudewidget.cpp @@ -30,6 +30,7 @@ #include #include #include +#include ConfigCCAttitudeWidget::ConfigCCAttitudeWidget(QWidget *parent) : ConfigTaskWidget(parent), @@ -44,6 +45,19 @@ ConfigCCAttitudeWidget::ConfigCCAttitudeWidget(QWidget *parent) : // Make it smart: connect(parent, SIGNAL(autopilotConnected()),this, SLOT(getCurrentAttitudeSettings())); getCurrentAttitudeSettings(); // The 1st time this panel is instanciated, the autopilot is already connected. + + // Connect all the help buttons to signal mapper that passes button name to SLOT function + QSignalMapper* signalMapper = new QSignalMapper(this); + connect( ui->attitudeRotationHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) ); + signalMapper->setMapping(ui->attitudeRotationHelp, ui->attitudeRotationHelp->objectName()); + connect( ui->attitudeCalibHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) ); + signalMapper->setMapping(ui->attitudeCalibHelp, ui->attitudeCalibHelp->objectName()); + connect( ui->zeroOnArmHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) ); + signalMapper->setMapping(ui->zeroOnArmHelp, ui->zeroOnArmHelp->objectName()); + connect( ui->commandHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) ); + signalMapper->setMapping(ui->commandHelp, QString("commandHelp")); + + connect(signalMapper, SIGNAL(mapped(const QString &)), parent, SLOT(showHelp(const QString &))); } ConfigCCAttitudeWidget::~ConfigCCAttitudeWidget() diff --git a/ground/openpilotgcs/src/plugins/config/configgadget.qrc b/ground/openpilotgcs/src/plugins/config/configgadget.qrc index e23c636d0..30f9431e3 100644 --- a/ground/openpilotgcs/src/plugins/config/configgadget.qrc +++ b/ground/openpilotgcs/src/plugins/config/configgadget.qrc @@ -1,17 +1,18 @@ - - - images/XBee.svg - images/Airframe.png - images/Servo.png - images/ahrs-calib.svg - images/AHRS-v1.3.png - images/paper-plane.svg - images/curve-bg.svg - images/quad-shapes.svg - images/ccpm_setup.svg - images/PipXtreme.png - images/gyroscope.svg - images/Transmitter.png - images/help.png - - + + + images/help2.png + images/XBee.svg + images/Airframe.png + images/Servo.png + images/ahrs-calib.svg + images/AHRS-v1.3.png + images/paper-plane.svg + images/curve-bg.svg + images/quad-shapes.svg + images/ccpm_setup.svg + images/PipXtreme.png + images/gyroscope.svg + images/Transmitter.png + images/help.png + + diff --git a/ground/openpilotgcs/src/plugins/config/configgadgetwidget.cpp b/ground/openpilotgcs/src/plugins/config/configgadgetwidget.cpp index 415b68192..7d7824a24 100644 --- a/ground/openpilotgcs/src/plugins/config/configgadgetwidget.cpp +++ b/ground/openpilotgcs/src/plugins/config/configgadgetwidget.cpp @@ -95,6 +95,7 @@ ConfigGadgetWidget::ConfigGadgetWidget(QWidget *parent) : QWidget(parent) if (telMngr->isConnected()) onAutopilotConnect(); + help = 0; } ConfigGadgetWidget::~ConfigGadgetWidget() @@ -139,3 +140,43 @@ void ConfigGadgetWidget::onAutopilotConnect() { emit autopilotConnected(); } +void ConfigGadgetWidget::showHelp(const QString &helpName) +{ + // Close any previous help windows still open + if(help != 0) { + help->close(); + } + + // Make help windows with given filename and resize to config gadget width + help = new QTextBrowser(this); + help->setSource(QUrl::fromLocalFile( QString(Utils::PathUtils().InsertDataPath("%%DATAPATH%%help/")) + + helpName + QString(".html") )); + QSize size = help->sizeHint(); + size.setWidth(this->width()); + help->resize(size); + + // Now catch closing events, show the window and give it focus + help->installEventFilter(this); + help->show(); + help->setFocus(); +} + +bool ConfigGadgetWidget::eventFilter(QObject *obj, QEvent *event) +{ + // If help is open and we get a close event, close the help window + // Close events currently are any key press and the mouse leaving the help window + + //printf("event type: %d\n",event->type()); + if(help != 0) { + if (event->type() == QEvent::Leave || event->type() == QEvent::KeyPress) { + help->close(); + help=0; + return true; + } + } + + // standard event processing + return QObject::eventFilter(obj, event); +} + + diff --git a/ground/openpilotgcs/src/plugins/config/configgadgetwidget.h b/ground/openpilotgcs/src/plugins/config/configgadgetwidget.h index 5bf3e8f0a..185321fe3 100644 --- a/ground/openpilotgcs/src/plugins/config/configgadgetwidget.h +++ b/ground/openpilotgcs/src/plugins/config/configgadgetwidget.h @@ -34,6 +34,9 @@ #include "objectpersistence.h" #include #include +//#include +#include +#include "utils/pathutils.h" #include "fancytabwidget.h" @@ -41,6 +44,7 @@ class ConfigGadgetWidget: public QWidget { Q_OBJECT + QTextBrowser* help; public: ConfigGadgetWidget(QWidget *parent = 0); @@ -48,6 +52,10 @@ public: public slots: void onAutopilotConnect(); + void showHelp(const QString &helpName); + +private slots: + bool eventFilter(QObject *obj, QEvent *event); signals: void autopilotConnected(); diff --git a/ground/openpilotgcs/src/plugins/config/configinputwidget.cpp b/ground/openpilotgcs/src/plugins/config/configinputwidget.cpp index 5b79254e2..034cef519 100644 --- a/ground/openpilotgcs/src/plugins/config/configinputwidget.cpp +++ b/ground/openpilotgcs/src/plugins/config/configinputwidget.cpp @@ -35,6 +35,7 @@ #include #include #include +#include ConfigInputWidget::ConfigInputWidget(QWidget *parent) : ConfigTaskWidget(parent) { @@ -199,6 +200,30 @@ ConfigInputWidget::ConfigInputWidget(QWidget *parent) : ConfigTaskWidget(parent) connect(tm, SIGNAL(disconnected()), this, SLOT(onTelemetryDisconnect())); } } + + // Connect all the help buttons to signal mapper that passes button name to SLOT function + QSignalMapper* signalMapper = new QSignalMapper(this); + connect( m_config->receiverTypeHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) ); + signalMapper->setMapping(m_config->receiverTypeHelp, m_config->receiverTypeHelp->objectName()); + connect( m_config->runCalibrationHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) ); + signalMapper->setMapping(m_config->runCalibrationHelp, m_config->runCalibrationHelp->objectName()); + connect( m_config->commandHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) ); + signalMapper->setMapping(m_config->commandHelp, QString("commandHelp")); + connect( m_config->flightModeSwPosHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) ); + signalMapper->setMapping(m_config->flightModeSwPosHelp, m_config->flightModeSwPosHelp->objectName()); + connect( m_config->stabilizationModePerAxis, SIGNAL(clicked()), signalMapper, SLOT(map()) ); + signalMapper->setMapping(m_config->stabilizationModePerAxis, m_config->stabilizationModePerAxis->objectName()); + connect( m_config->commandHelp_2, SIGNAL(clicked()), signalMapper, SLOT(map()) ); + signalMapper->setMapping(m_config->commandHelp_2, QString("commandHelp")); + connect( m_config->armPositionHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) ); + signalMapper->setMapping(m_config->armPositionHelp, m_config->armPositionHelp->objectName()); + connect( m_config->armingTimeoutHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) ); + signalMapper->setMapping(m_config->armingTimeoutHelp, m_config->armingTimeoutHelp->objectName()); + connect( m_config->commandHelp_3, SIGNAL(clicked()), signalMapper, SLOT(map()) ); + signalMapper->setMapping(m_config->commandHelp_2, QString("commandHelp")); + + connect(signalMapper, SIGNAL(mapped(const QString &)), parent, SLOT(showHelp(const QString &))); + } ConfigInputWidget::~ConfigInputWidget() diff --git a/ground/openpilotgcs/src/plugins/config/configoutputwidget.cpp b/ground/openpilotgcs/src/plugins/config/configoutputwidget.cpp index 5ef3daf72..a13ec1236 100644 --- a/ground/openpilotgcs/src/plugins/config/configoutputwidget.cpp +++ b/ground/openpilotgcs/src/plugins/config/configoutputwidget.cpp @@ -36,6 +36,7 @@ #include #include #include +#include ConfigOutputWidget::ConfigOutputWidget(QWidget *parent) : ConfigTaskWidget(parent) { @@ -160,6 +161,21 @@ ConfigOutputWidget::ConfigOutputWidget(QWidget *parent) : ConfigTaskWidget(paren connect(tm, SIGNAL(disconnected()), this, SLOT(onTelemetryDisconnect())); } } + + // Connect all the help buttons to signal mapper that passes button name to SLOT function + QSignalMapper* signalMapper = new QSignalMapper(this); + connect( m_config->channelRateHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) ); + signalMapper->setMapping(m_config->channelRateHelp, m_config->channelRateHelp->objectName()); + connect( m_config->channelValuesHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) ); + signalMapper->setMapping(m_config->channelValuesHelp, m_config->channelValuesHelp->objectName()); + connect( m_config->spinningArmedlHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) ); + signalMapper->setMapping(m_config->spinningArmedlHelp, m_config->spinningArmedlHelp->objectName()); + connect( m_config->testOutputsHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) ); + signalMapper->setMapping(m_config->testOutputsHelp, m_config->testOutputsHelp->objectName()); + connect( m_config->commandHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) ); + signalMapper->setMapping(m_config->commandHelp, QString("commandHelp")); + + connect(signalMapper, SIGNAL(mapped(const QString &)), parent, SLOT(showHelp(const QString &))); } ConfigOutputWidget::~ConfigOutputWidget() diff --git a/ground/openpilotgcs/src/plugins/config/configstabilizationwidget.cpp b/ground/openpilotgcs/src/plugins/config/configstabilizationwidget.cpp index 1005c178a..6d829b756 100644 --- a/ground/openpilotgcs/src/plugins/config/configstabilizationwidget.cpp +++ b/ground/openpilotgcs/src/plugins/config/configstabilizationwidget.cpp @@ -32,7 +32,7 @@ #include #include #include - +#include ConfigStabilizationWidget::ConfigStabilizationWidget(QWidget *parent) : ConfigTaskWidget(parent) @@ -43,7 +43,7 @@ ConfigStabilizationWidget::ConfigStabilizationWidget(QWidget *parent) : ConfigTa m_stabilization->setupUi(this); // Now connect the widget to the ManualControlCommand / Channel UAVObject - UAVObject *obj = dynamic_cast(getObjectManager()->getObject(QString("StabilizationSettings"))); + //UAVObject *obj = dynamic_cast(getObjectManager()->getObject(QString("StabilizationSettings"))); requestStabilizationUpdate(); connect(m_stabilization->saveStabilizationToSD, SIGNAL(clicked()), this, SLOT(saveStabilizationUpdate())); @@ -74,6 +74,20 @@ ConfigStabilizationWidget::ConfigStabilizationWidget(QWidget *parent) : ConfigTa connect(m_stabilization->pitchKi, SIGNAL(valueChanged(double)), this, SLOT(updatePitchKI(double))); connect(m_stabilization->pitchILimit, SIGNAL(valueChanged(double)), this, SLOT(updatePitchILimit(double))); + // Connect all the help buttons to signal mapper that passes button name to SLOT function + QSignalMapper* signalMapper = new QSignalMapper(this); + connect( m_stabilization->rateStabiHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) ); + signalMapper->setMapping(m_stabilization->rateStabiHelp, m_stabilization->rateStabiHelp->objectName()); + connect( m_stabilization->attitudeStabiHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) ); + signalMapper->setMapping(m_stabilization->attitudeStabiHelp, m_stabilization->attitudeStabiHelp->objectName()); + connect( m_stabilization->angleLimitsHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) ); + signalMapper->setMapping(m_stabilization->angleLimitsHelp, m_stabilization->angleLimitsHelp->objectName()); + connect( m_stabilization->updateRealTimeHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) ); + signalMapper->setMapping(m_stabilization->updateRealTimeHelp, m_stabilization->updateRealTimeHelp->objectName()); + connect( m_stabilization->commandHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) ); + signalMapper->setMapping(m_stabilization->commandHelp, m_stabilization->commandHelp->objectName()); + + connect(signalMapper, SIGNAL(mapped(const QString &)), parent, SLOT(showHelp(const QString &))); } ConfigStabilizationWidget::~ConfigStabilizationWidget() @@ -275,3 +289,4 @@ void ConfigStabilizationWidget::realtimeUpdateToggle(bool state) else updateTimer.stop(); } + diff --git a/ground/openpilotgcs/src/plugins/config/configstabilizationwidget.h b/ground/openpilotgcs/src/plugins/config/configstabilizationwidget.h index 557aa263a..00cbbc977 100644 --- a/ground/openpilotgcs/src/plugins/config/configstabilizationwidget.h +++ b/ground/openpilotgcs/src/plugins/config/configstabilizationwidget.h @@ -50,7 +50,6 @@ private: StabilizationSettings* stabSettings; QTimer updateTimer; - private slots: void requestStabilizationUpdate(); void sendStabilizationUpdate(); @@ -72,8 +71,6 @@ private slots: void updatePitchKP(double); void updatePitchKI(double); void updatePitchILimit(double); - - }; #endif // ConfigStabilizationWidget_H diff --git a/ground/openpilotgcs/src/plugins/config/configtelemetrywidget.cpp b/ground/openpilotgcs/src/plugins/config/configtelemetrywidget.cpp index fa9838de1..a307da966 100644 --- a/ground/openpilotgcs/src/plugins/config/configtelemetrywidget.cpp +++ b/ground/openpilotgcs/src/plugins/config/configtelemetrywidget.cpp @@ -32,7 +32,7 @@ #include #include #include - +#include ConfigTelemetryWidget::ConfigTelemetryWidget(QWidget *parent) : ConfigTaskWidget(parent) @@ -55,6 +55,14 @@ ConfigTelemetryWidget::ConfigTelemetryWidget(QWidget *parent) : ConfigTaskWidget connect(parent, SIGNAL(autopilotConnected()),this, SLOT(requestTelemetryUpdate())); + // Connect all the help buttons to signal mapper that passes button name to SLOT function + QSignalMapper* signalMapper = new QSignalMapper(this); + connect( m_telemetry->telemetryHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) ); + signalMapper->setMapping(m_telemetry->telemetryHelp, m_telemetry->telemetryHelp->objectName()); + connect( m_telemetry->commandHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) ); + signalMapper->setMapping(m_telemetry->commandHelp, QString("commandHelp")); + + connect(signalMapper, SIGNAL(mapped(const QString &)), parent, SLOT(showHelp(const QString &))); } ConfigTelemetryWidget::~ConfigTelemetryWidget() diff --git a/ground/openpilotgcs/src/plugins/config/input.ui b/ground/openpilotgcs/src/plugins/config/input.ui index 61462ed5f..c198639db 100644 --- a/ground/openpilotgcs/src/plugins/config/input.ui +++ b/ground/openpilotgcs/src/plugins/config/input.ui @@ -17,7 +17,7 @@ - 0 + 2 @@ -893,7 +893,7 @@ p, li { white-space: pre-wrap; } - 20 + 40 283 181 22 @@ -967,6 +967,12 @@ Neutral should be put at the bottom of the slider for the throttle. 17 + + + 75 + true + + Receiver Type: @@ -1348,6 +1354,93 @@ reversal capabilities). + + + + 230 + 284 + 20 + 20 + + + + + 0 + 0 + + + + + 20 + 20 + + + + + + + + :/configgadget/images/help2.png:/configgadget/images/help2.png + + + + + + 10 + 284 + 20 + 20 + + + + + 0 + 0 + + + + + 20 + 20 + + + + + + + + :/configgadget/images/help2.png:/configgadget/images/help2.png + + + + + + 10 + 10 + 20 + 20 + + + + + 0 + 0 + + + + + 20 + 20 + + + + + + + + :/configgadget/images/help2.png:/configgadget/images/help2.png + + @@ -1444,7 +1537,7 @@ Applies and Saves all settings to SD - 10 + 30 130 445 155 @@ -1546,7 +1639,7 @@ Applies and Saves all settings to SD - 10 + 30 0 261 121 @@ -1667,6 +1760,87 @@ if you have not done so already. + + + + 5 + 0 + 20 + 20 + + + + + 0 + 0 + + + + + 20 + 20 + + + + + + + + :/configgadget/images/help2.png:/configgadget/images/help2.png + + + + + + 5 + 130 + 20 + 20 + + + + + 0 + 0 + + + + + 20 + 20 + + + + + + + + :/configgadget/images/help2.png:/configgadget/images/help2.png + + + + + + 240 + 314 + 20 + 20 + + + + + 20 + 20 + + + + + + + + :/configgadget/images/help2.png:/configgadget/images/help2.png + + @@ -1675,6 +1849,29 @@ if you have not done so already. + + + + + 0 + 0 + + + + + 20 + 20 + + + + + + + + :/configgadget/images/help2.png:/configgadget/images/help2.png + + + @@ -1712,6 +1909,29 @@ if you have not done so already. + + + + + 0 + 0 + + + + + 20 + 20 + + + + + + + + :/configgadget/images/help2.png:/configgadget/images/help2.png + + + @@ -1779,6 +1999,29 @@ if you have not done so already. + + + + + 0 + 0 + + + + + 20 + 20 + + + + + + + + :/configgadget/images/help2.png:/configgadget/images/help2.png + + + @@ -1839,6 +2082,8 @@ if you have not done so already. saveFmsToRAM saveFmsToSD - + + + diff --git a/ground/openpilotgcs/src/plugins/config/output.ui b/ground/openpilotgcs/src/plugins/config/output.ui index db63ba4c7..79f76c084 100644 --- a/ground/openpilotgcs/src/plugins/config/output.ui +++ b/ground/openpilotgcs/src/plugins/config/output.ui @@ -6,8 +6,8 @@ 0 0 - 663 - 500 + 600 + 466 @@ -38,7 +38,7 @@ 2 - + false @@ -52,7 +52,7 @@ Leave at 50Hz for fixed wing. - + - @@ -62,7 +62,7 @@ Leave at 50Hz for fixed wing. - + - @@ -72,7 +72,7 @@ Leave at 50Hz for fixed wing. - + - @@ -82,7 +82,7 @@ Leave at 50Hz for fixed wing. - + false @@ -96,7 +96,7 @@ Leave at 50Hz for fixed wing. - + false @@ -110,7 +110,7 @@ Leave at 50Hz for fixed wing. - + false @@ -124,17 +124,7 @@ Leave at 50Hz for fixed wing. - - - - Update rate: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - + - @@ -145,18 +135,116 @@ Leave at 50Hz for fixed wing. - - - Channel: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - + + + + + + 0 + 0 + + + + + 20 + 20 + + + + + + + + :/configgadget/images/help2.png:/configgadget/images/help2.png + + + + + + + Qt::Horizontal + + + QSizePolicy::Minimum + + + + 40 + 20 + + + + + + + + + 75 + true + + + + Channel: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + + Qt::Horizontal + + + QSizePolicy::Minimum + + + + 40 + 20 + + + + + + + + + 75 + true + + + + Update rate: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + @@ -1010,14 +1098,77 @@ p, li { white-space: pre-wrap; } + + + + + 0 + 0 + + + + + 20 + 20 + + + + + + + + :/configgadget/images/help2.png:/configgadget/images/help2.png + + + - - - Motors spin at neutral output when armed and throttle below zero (be careful) + + + Qt::Vertical - + + + 20 + 40 + + + + + + + + + + + 0 + 0 + + + + + 20 + 20 + + + + + + + + :/configgadget/images/help2.png:/configgadget/images/help2.png + + + + + + + Motors spin at neutral output when armed and throttle below zero (be careful) + + + + @@ -1034,6 +1185,29 @@ p, li { white-space: pre-wrap; } + + + + + 0 + 0 + + + + + 20 + 20 + + + + + + + + :/configgadget/images/help2.png:/configgadget/images/help2.png + + + @@ -1062,6 +1236,29 @@ p, li { white-space: pre-wrap; } + + + + + 0 + 0 + + + + + 20 + 20 + + + + + + + + :/configgadget/images/help2.png:/configgadget/images/help2.png + + + @@ -1151,12 +1348,13 @@ Applies and Saves all settings to SD ch7OutSlider ch7Rev ch7Link - spinningArmed channelOutTest getRCOutputCurrent saveRCOutputToRAM saveRCOutputToSD - + + + diff --git a/ground/openpilotgcs/src/plugins/config/stabilization.ui b/ground/openpilotgcs/src/plugins/config/stabilization.ui index a643cde0e..5b41db44f 100644 --- a/ground/openpilotgcs/src/plugins/config/stabilization.ui +++ b/ground/openpilotgcs/src/plugins/config/stabilization.ui @@ -7,7 +7,7 @@ 0 0 639 - 470 + 657 @@ -21,8 +21,37 @@ + + + + + 0 + 0 + + + + + 20 + 20 + + + + + + + + :/configgadget/images/help2.png:/configgadget/images/help2.png + + + + + + 75 + true + + Rate Stabilization (inner loop) @@ -44,7 +73,7 @@ - Hint: read the toolips! + Hint: read the tooltips! @@ -242,11 +271,57 @@ value as YawRate Kp. - - - Attitude Stabilization (outer loop) - - + + + + + + 0 + 0 + + + + + 20 + 20 + + + + + + + + :/configgadget/images/help2.png:/configgadget/images/help2.png + + + + + + + + 75 + true + + + + Attitude Stabilization (outer loop) + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + @@ -452,6 +527,29 @@ flying style. + + + + + 0 + 0 + + + + + 20 + 20 + + + + + + + + :/configgadget/images/help2.png:/configgadget/images/help2.png + + + @@ -553,6 +651,29 @@ flying style. + + + + + 0 + 0 + + + + + 20 + 20 + + + + + + + + :/configgadget/images/help2.png:/configgadget/images/help2.png + + + @@ -577,6 +698,29 @@ automatically every 300ms, which will help for fast tuning. + + + + + 0 + 0 + + + + + 20 + 20 + + + + + + + + :/configgadget/images/help2.png:/configgadget/images/help2.png + + + @@ -602,6 +746,8 @@ automatically every 300ms, which will help for fast tuning. - + + + diff --git a/ground/openpilotgcs/src/plugins/config/telemetry.ui b/ground/openpilotgcs/src/plugins/config/telemetry.ui index 588c5539e..2423a6e1a 100644 --- a/ground/openpilotgcs/src/plugins/config/telemetry.ui +++ b/ground/openpilotgcs/src/plugins/config/telemetry.ui @@ -50,12 +50,19 @@ p, li { white-space: pre-wrap; } - 20 + 70 200 131 17 + + + 11 + 75 + true + + Telemetry speed: @@ -63,7 +70,7 @@ p, li { white-space: pre-wrap; } - 140 + 200 190 141 31 @@ -123,8 +130,68 @@ Beware of not locking yourself out! Save + + + + 45 + 198 + 20 + 20 + + + + + 0 + 0 + + + + + 20 + 20 + + + + + + + + :/configgadget/images/help2.png:/configgadget/images/help2.png + + + + + + 45 + 284 + 20 + 20 + + + + + 0 + 0 + + + + + 20 + 20 + + + + + + + + :/configgadget/images/help2.png:/configgadget/images/help2.png + + - + + + From bf9a3ef7d36c108b46f53b20025e6b3aca73d7fc Mon Sep 17 00:00:00 2001 From: Oleg Semyonov Date: Tue, 17 May 2011 21:29:22 +0300 Subject: [PATCH 048/488] OP-483: add version-info.py script for software, firmware and release packaging --- make/scripts/version-info.py | 299 +++++++++++++++++++++++++++++++++++ release/Makefile | 7 +- 2 files changed, 302 insertions(+), 4 deletions(-) create mode 100644 make/scripts/version-info.py diff --git a/make/scripts/version-info.py b/make/scripts/version-info.py new file mode 100644 index 000000000..ad747ce74 --- /dev/null +++ b/make/scripts/version-info.py @@ -0,0 +1,299 @@ +#!/usr/bin/env python +# +# Utility functions to access git repository info and +# generate source files and binary objects using templates. +# +# (c) 2011, The OpenPilot Team, http://www.openpilot.org +# See also: The GNU Public License (GPL) Version 3 +# + +from subprocess import Popen, PIPE +from re import search, MULTILINE +from datetime import datetime +from string import Template +import argparse +import hashlib +import sys + +class Repo: + """A simple git repository HEAD commit info class + + This simple class provides object notation to access + the git repository current commit info. If one needs + better access one can try the GitPython class available + here: + http://packages.python.org/GitPython + It is not installed by default, so we cannot rely on it. + + Example: + r = Repo('/path/to/git/repository') + print "path: ", r.path() + print "origin: ", r.origin() + print "hash: ", r.hash() + print "short hash: ", r.hash(8) + print "Unix time: ", r.time() + print "commit date:", r.time("%Y%m%d") + print "commit tag: ", r.tag() + print "branch: ", r.branch() + print "release tag:", r.reltag() + """ + + def _exec(self, cmd): + """Execute git using cmd as arguments""" + self._git = 'git' + git = Popen(self._git + " " + cmd, cwd=self._path, + shell=True, stdout=PIPE, stderr=PIPE) + self._out, self._err = git.communicate() + self._rc = git.poll() + + def _get_origin(self): + """Get and store the repository origin URL""" + self._origin = None + self._exec('remote -v') + if self._rc == 0: + m = search(r"^origin\s+(.+)\s+\(fetch\)$", self._out, MULTILINE) + if m: + self._origin = m.group(1) + + def _get_time(self): + """Get and store HEAD commit timestamp in Unix format + + We use commit timestamp rather than the build time, + so it always is the same for the current commit or tag. + """ + self._time = None + self._exec('log -n1 --no-color --format=format:%ct HEAD') + if self._rc == 0: + self._time = self._out + + def _get_tag(self): + """Get and store git tag for the HEAD commit""" + self._tag = None + self._exec('describe --exact-match HEAD') + if self._rc == 0: + self._tag = self._out.strip(' \t\n\r') + + def _get_branch(self): + """Get and store current branch containing the HEAD commit""" + self._branch = None + self._exec('branch --contains HEAD') + if self._rc == 0: + m = search(r"^\*\s+(.+)$", self._out, MULTILINE) + if m: + self._branch = m.group(1) + + def __init__(self, path = "."): + """Initialize object instance and read repo info""" + self._path = path + self._exec('rev-parse --verify HEAD') + if self._rc == 0: + self._hash = self._out.strip(' \t\n\r') + self._get_origin() + self._get_time() + self._get_tag() + self._get_branch() + else: + self._hash = None + self._origin = None + self._time = None + self._tag = None + self._branch = None + + def path(self): + """Return the repository path""" + return self._path + + def origin(self, none = None): + """Return fetch origin of the repository""" + if self._origin == None: + return none + else: + return self._origin + + def hash(self, n = 40, none = None): + """Return hash of the HEAD commit""" + if self._hash == None: + return none + else: + return self._hash[:n] + + def time(self, format = None, none = None): + """Return Unix or formatted time of the HEAD commit""" + if self._time == None: + return none + else: + if format == None: + return self._time + else: + return datetime.utcfromtimestamp(float(self._time)).strftime(format) + + def tag(self, none = None): + """Return git tag for the HEAD commit or given string if none""" + if self._tag == None: + return none + else: + return self._tag + + def branch(self, none = None): + """Return git branch containing the HEAD or given string if none""" + if self._branch == None: + return none + else: + return self._branch + + def info(self): + """Print some repository info""" + print "path: ", self.path() + print "origin: ", self.origin() + print "Unix time: ", self.time() + print "commit date:", self.time("%Y%m%d") + print "hash: ", self.hash() + print "short hash: ", self.hash(8) + print "branch: ", self.branch() + print "commit tag: ", self.tag() + +def file_from_template(tpl_name, out_name, dict): + """Create or update file from template using dictionary + + This function reads the template, performs placeholder replacement + using the dictionary and checks if output file with such content + already exists. If no such file or file data is different from + expected then it will be ovewritten with new data. Otherwise it + will not be updated so make will not update dependent targets. + + Example: + # template.c: + # char source[] = "${OUTFILENAME}"; + # uint32_t timestamp = ${UNIXTIME}; + # uint32_t hash = 0x${HASH8}; + + r = Repo('/path/to/git/repository') + tpl_name = "template.c" + out_name = "output.c" + + dictionary = dict( + HASH8 = r.hash(8), + UNIXTIME = r.time(), + OUTFILENAME = out_name, + ) + + file_from_template(tpl_name, out_name, dictionary) + """ + + # Read template first + tf = open(tpl_name, "rb") + tpl = tf.read() + tf.close() + + # Replace placeholders using dictionary + out = Template(tpl).substitute(dict) + + # Check if output file already exists + try: + of = open(out_name, "rb") + except IOError: + # No file - create new + of = open(out_name, "wb") + of.write(out) + of.close() + else: + # File exists - overwite only if content is different + inp = of.read() + of.close() + if inp != out: + of = open(out_name, "wb") + of.write(out) + of.close() + +def sha1(file): + """Provides C source representation of sha1 sum of file.""" + if file == None: + return "" + else: + sha1 = hashlib.sha1() + with open(file, 'rb') as f: + for chunk in iter(lambda: f.read(8192), ''): + sha1.update(chunk) + hex_stream = lambda s:",".join(['0x'+hex(ord(c))[2:].zfill(2) for c in s]) + return hex_stream(sha1.digest()) + +def main(): + """This utility uses git repository in the current working directory +or from the given path to extract some info about it and HEAD commit. +Then some variables in the form of ${VARIABLE} could be replaced by +collected data. Optional board type, board revision and sha1 sum +of given image file could be applied as well or will be replaced by +empty strings if not defined. + +If --info option is given, some repository info will be printed to +stdout. + +If --format option is given then utility prints the format string +after substitution to the standard output. + +If --outfile option is given then the --template option should be +defined too. In that case the utility reads a template file, performs +variable substitution and writes the result into output file. Output +file will be overwritten only if its content differs from expected. +Otherwise it will not be touched, so make utility will not remake +dependent targets. + """ + + # Parse command line. + parser = argparse.ArgumentParser( + formatter_class=argparse.RawDescriptionHelpFormatter, + description = "Performs variable substitution in template file or string.", + epilog = main.__doc__); + + parser.add_argument('--path', default='.', + help='path to the git repository'); + parser.add_argument('--info', action='store_true', + help='print repository info to stdout'); + parser.add_argument('--format', + help='format string to print to stdout'); + parser.add_argument('--template', + help='name of template file'); + parser.add_argument('--outfile', + help='name of output file'); + parser.add_argument('--image', + help='name of image file for sha1 calculation'); + parser.add_argument('--type', default="", + help='board type, for example, 0x04 for CopterControl'); + parser.add_argument('--revision', default = "", + help='board revision, for example, 0x01'); + + args = parser.parse_args() + + # Process arguments. No advanced error handling is here. + # Any error will raise an exception and terminate process + # with non-zero exit code. + r = Repo(args.path) + + dictionary = dict( + TEMPLATE = args.template, + OUTFILENAME = args.outfile, + ORIGIN = r.origin(), + HASH = r.hash(), + HASH8 = r.hash(8), + TAG_OR_BRANCH = r.tag(r.branch('unreleased')), + TAG_OR_HASH8 = r.tag(r.hash(8, 'untagged')), + UNIXTIME = r.time(), + DATE = r.time('%Y%m%d'), + BOARD_TYPE = args.type, + BOARD_REVISION = args.revision, + SHA1 = sha1(args.image), + ) + + if args.info: + r.info() + + if args.format != None: + print Template(args.format).substitute(dictionary) + + if args.outfile != None: + file_from_template(args.template, args.outfile, dictionary) + + return 0 + +if __name__ == "__main__": + sys.exit(main()) diff --git a/release/Makefile b/release/Makefile index 882070fb6..cfb131028 100644 --- a/release/Makefile +++ b/release/Makefile @@ -13,9 +13,8 @@ ROOT_DIR := $(realpath $(WHEREAMI)/../) # Set up some macros BUILD_DIR := $(ROOT_DIR)/build -RELEASE_DATE := $(shell date +%Y%m%d) -RELEASE_TAG := unreleased -RELEASE_LBL := $(RELEASE_DATE)-$(RELEASE_TAG) +VERSION_CMD := python $(ROOT_DIR)/make/scripts/version-info.py --path=$(ROOT_DIR) +RELEASE_LBL := $(shell $(VERSION_CMD) --format=\$${DATE}-\$${TAG_OR_HASH8}) RELEASE_DIR := $(BUILD_DIR)/release-$(RELEASE_LBL) FW_DIR := $(RELEASE_DIR)/firmware-$(RELEASE_LBL) BL_DIR := $(FW_DIR)/bootloaders @@ -89,7 +88,7 @@ $(eval $(call INSTALL_TEMPLATE,blupd_ahrs,all_bl,$(BLUPD_DIR),AHRS_,-$(RELEASE_L $(eval $(call INSTALL_TEMPLATE,blupd_openpilot,all_bl,$(BLUPD_DIR),OpenPilot_,-$(RELEASE_LBL),,,blupd_openpilot,install)) $(eval $(call INSTALL_TEMPLATE,blupd_pipxtreme,all_bl,$(BLUPD_DIR),PipXtreme_,-$(RELEASE_LBL),,,blupd_pipxtreme,install)) -# CopterControl flash eraser tool (change fw_spektrum to fw_ppm if fw_ppm is enabled in release_fw target below) +# CopterControl flash eraser tool $(eval $(call INSTALL_TEMPLATE,fw_tools,uavobjects,$(BLUPD_DIR),,-FlashEraser-$(RELEASE_LBL),ERASE_FLASH=YES,clean,$(FW_TARGETS_TOOLS),install)) # Order-only dependencies From 8f30b89b17e159234a7c7767032345fd975650e0 Mon Sep 17 00:00:00 2001 From: Oleg Semyonov Date: Tue, 17 May 2011 21:37:02 +0300 Subject: [PATCH 049/488] OP-307: add template for firmware info blob C source python $(TOP)/make/scripts/version-info.py \ --path=$(TOP) \ --template=$(TOP)/make/templates/firmwareinfotemplate.c \ --outfile=$(TOP)build/$(FW)/firmwareinfo.c \ --image=$(TOP)/build/$(FW)/$(FW_IMAGE_BIN) \ --type=0x04 \ --revision=0x01 --- make/templates/firmwareinfotemplate.c | 71 +++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 make/templates/firmwareinfotemplate.c diff --git a/make/templates/firmwareinfotemplate.c b/make/templates/firmwareinfotemplate.c new file mode 100644 index 000000000..e703d2e24 --- /dev/null +++ b/make/templates/firmwareinfotemplate.c @@ -0,0 +1,71 @@ +/** + ****************************************************************************** + * + * @file ${OUTFILENAME} + * @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2011. + * @brief Firmware version info file autogenerated using template + * ${TEMPLATE} + * + * @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 + */ + +#include + +/** + * We have 100 bytes for the whole description. + * + * Only the first 40 are visible on the FirmwareIAP uavobject, the remaining + * 60 are ok to use for packaging and will be saved in the flash. + * + * Structure is: + * 4 bytes: header: "OpFw". + * 4 bytes: GIT commit tag (short version of SHA1). + * 4 bytes: Unix timestamp of compile time. + * 2 bytes: target platform. Should follow same rule as BOARD_TYPE and BOARD_REVISION in board define files. + * 26 bytes: commit tag if it is there, otherwise branch name. Zero-padded. + * ---- 40 bytes limit --- + * 20 bytes: SHA1 sum of the firmware. + * 40 bytes: free for now. + * + */ + +struct __attribute__((packed)) fw_version_info { + uint8_t magic[4]; + uint32_t commit_hash_prefix; + uint32_t timestamp; + uint8_t board_type; + uint8_t board_revision; + uint8_t commit_tag_name[26]; + uint8_t sha1sum[20]; + uint8_t pad[40]; +}; + +const struct fw_version_info fw_version_blob __attribute__((used)) __attribute__((__section__(".fw_version_blob"))) = { + .magic = { 'O','p','F','w' }, + .commit_hash_prefix = 0x${HASH8}, + .timestamp = ${UNIXTIME}, + .board_type = ${BOARD_TYPE}, + .board_revision = ${BOARD_REVISION}, + .commit_tag_name = "${TAG_OR_BRANCH}", + .sha1sum = { ${SHA1} }, +}; + +/** + * @} + */ From cc9fa772c0be1aceadca4e43b0a6a91d61e1144e Mon Sep 17 00:00:00 2001 From: elafargue Date: Tue, 17 May 2011 22:23:08 +0200 Subject: [PATCH 050/488] Improvement: now the config output panel in the config gadget remains up to date all the time, no need to click on the "request" button after setting up the mixers. --- .../src/plugins/config/configoutputwidget.cpp | 39 +++++++------------ 1 file changed, 14 insertions(+), 25 deletions(-) diff --git a/ground/openpilotgcs/src/plugins/config/configoutputwidget.cpp b/ground/openpilotgcs/src/plugins/config/configoutputwidget.cpp index a534a0a5f..0879de42a 100644 --- a/ground/openpilotgcs/src/plugins/config/configoutputwidget.cpp +++ b/ground/openpilotgcs/src/plugins/config/configoutputwidget.cpp @@ -95,31 +95,18 @@ ConfigOutputWidget::ConfigOutputWidget(QWidget *parent) : ConfigTaskWidget(paren << m_config->ch6Rev << m_config->ch7Rev; - links << m_config->ch0Link - << m_config->ch1Link - << m_config->ch2Link - << m_config->ch3Link - << m_config->ch4Link - << m_config->ch5Link - << m_config->ch6Link - << m_config->ch7Link; + links << m_config->ch0Link + << m_config->ch1Link + << m_config->ch2Link + << m_config->ch3Link + << m_config->ch4Link + << m_config->ch5Link + << m_config->ch6Link + << m_config->ch7Link; -/* - UAVDataObject * obj = dynamic_cast(objManager->getObject(QString("ActuatorSettings"))); - QList fieldList = obj->getFields(); - foreach (UAVObjectField* field, fieldList) { - if (field->getUnits().contains("channel")) { - m_config->ch0Output->addItem(field->getName()); - m_config->ch1Output->addItem(field->getName()); - m_config->ch2Output->addItem(field->getName()); - m_config->ch3Output->addItem(field->getName()); - m_config->ch4Output->addItem(field->getName()); - m_config->ch5Output->addItem(field->getName()); - m_config->ch6Output->addItem(field->getName()); - m_config->ch7Output->addItem(field->getName()); - } - } - */ + // Register for ActuatorSettings changes: + UAVDataObject * obj = dynamic_cast(objManager->getObject(QString("ActuatorSettings"))); + connect(obj,SIGNAL(objectUpdated(UAVObject*)),this,SLOT(requestRCOutputUpdate())); for (int i = 0; i < 8; i++) { @@ -141,6 +128,9 @@ ConfigOutputWidget::ConfigOutputWidget(QWidget *parent) : ConfigTaskWidget(paren connect(m_config->saveRCOutputToSD, SIGNAL(clicked()), this, SLOT(saveRCOutputObject())); connect(m_config->saveRCOutputToRAM, SIGNAL(clicked()), this, SLOT(sendRCOutputUpdate())); + + // Actually, this is not really needed since we are subscribing to the object updates already + // TODO: remove those buttons on all config gadget panels. connect(m_config->getRCOutputCurrent, SIGNAL(clicked()), this, SLOT(requestRCOutputUpdate())); connect(parent, SIGNAL(autopilotConnected()),this, SLOT(requestRCOutputUpdate())); @@ -435,7 +425,6 @@ void ConfigOutputWidget::requestRCOutputUpdate() // Get the channel assignements: UAVDataObject * obj = dynamic_cast(objManager->getObject(QString("ActuatorSettings"))); Q_ASSERT(obj); - obj->requestUpdate(); QList fieldList = obj->getFields(); foreach (UAVObjectField* field, fieldList) { if (field->getUnits().contains("channel")) { From bdf862a71207e53e932352c46ad5aee1c4ca1127 Mon Sep 17 00:00:00 2001 From: James Cotton Date: Mon, 7 Mar 2011 15:15:33 -0600 Subject: [PATCH 051/488] PIOS/RTC: Add functions to get the rate. Also changed Start to Init to be more consistent with pios. --- flight/OpenPilot/System/inc/FreeRTOSConfig.h | 2 +- flight/OpenPilot/System/pios_board.c | 1 + .../Source/portable/GCC/ARM_CM3/portmacro.h | 2 +- flight/PiOS/STM32F10x/pios_rtc.c | 17 +++++++++++++++-- flight/PiOS/inc/pios_rtc.h | 4 +++- 5 files changed, 21 insertions(+), 5 deletions(-) diff --git a/flight/OpenPilot/System/inc/FreeRTOSConfig.h b/flight/OpenPilot/System/inc/FreeRTOSConfig.h index c2a07fa67..6336639a4 100644 --- a/flight/OpenPilot/System/inc/FreeRTOSConfig.h +++ b/flight/OpenPilot/System/inc/FreeRTOSConfig.h @@ -75,7 +75,7 @@ NVIC value of 255. */ #if defined(DEBUG) #define configGENERATE_RUN_TIME_STATS 1 #define INCLUDE_uxTaskGetRunTime 1 -#define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() PIOS_RTC_Start() +#define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() PIOS_RTC_Init() // 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() #endif diff --git a/flight/OpenPilot/System/pios_board.c b/flight/OpenPilot/System/pios_board.c index ccbf8fced..57605ad9d 100644 --- a/flight/OpenPilot/System/pios_board.c +++ b/flight/OpenPilot/System/pios_board.c @@ -1049,6 +1049,7 @@ void PIOS_Board_Init(void) { #if defined(PIOS_INCLUDE_SPEKTRUM) /* SPEKTRUM init must come before comms */ + PIOS_RTC_Init(); // Spektrum uses RTC to check for frame failures PIOS_SPEKTRUM_Init(); if (PIOS_USART_Init(&pios_usart_spektrum_id, &pios_usart_spektrum_cfg)) { diff --git a/flight/PiOS/STM32F10x/Libraries/FreeRTOS/Source/portable/GCC/ARM_CM3/portmacro.h b/flight/PiOS/STM32F10x/Libraries/FreeRTOS/Source/portable/GCC/ARM_CM3/portmacro.h index 81839c07f..caee2a839 100755 --- a/flight/PiOS/STM32F10x/Libraries/FreeRTOS/Source/portable/GCC/ARM_CM3/portmacro.h +++ b/flight/PiOS/STM32F10x/Libraries/FreeRTOS/Source/portable/GCC/ARM_CM3/portmacro.h @@ -138,7 +138,7 @@ extern void vPortYieldFromISR( void ); extern void vPortEnterCritical( void ); extern void vPortExitCritical( void ); -void PIOS_RTC_Start(); +void PIOS_RTC_Init(); uint32_t PIOS_RTC_Counter(); #define portDISABLE_INTERRUPTS() portSET_INTERRUPT_MASK() diff --git a/flight/PiOS/STM32F10x/pios_rtc.c b/flight/PiOS/STM32F10x/pios_rtc.c index 0a950e913..1f1769621 100644 --- a/flight/PiOS/STM32F10x/pios_rtc.c +++ b/flight/PiOS/STM32F10x/pios_rtc.c @@ -33,7 +33,11 @@ #if defined(PIOS_INCLUDE_RTC) -void PIOS_RTC_Start() +#ifndef PIOS_RTC_PRESCALAR +#define PIOS_RTC_PRESCALAR 0 +#endif + +void PIOS_RTC_Init() { RCC_APB1PeriphClockCmd(RCC_APB1Periph_BKP | RCC_APB1Periph_PWR, ENABLE); @@ -44,7 +48,7 @@ void PIOS_RTC_Start() RTC_WaitForLastTask(); RTC_WaitForSynchro(); RTC_WaitForLastTask(); - RTC_SetPrescaler(0); // counting at 8e6 / 128 + RTC_SetPrescaler(PIOS_RTC_PRESCALAR); // counting at 8e6 / 128 RTC_WaitForLastTask(); RTC_SetCounter(0); RTC_WaitForLastTask(); @@ -55,6 +59,15 @@ uint32_t PIOS_RTC_Counter() return RTC_GetCounter(); } +float PIOS_RTC_Rate() +{ + return (float) (8e6 / 128) / (1 + PIOS_RTC_PRESCALAR); +} + +float PIOS_RTC_MsPerTick() +{ + return 1000.0f / PIOS_RTC_Rate(); +} #endif diff --git a/flight/PiOS/inc/pios_rtc.h b/flight/PiOS/inc/pios_rtc.h index c9ad5661f..0c9183d00 100644 --- a/flight/PiOS/inc/pios_rtc.h +++ b/flight/PiOS/inc/pios_rtc.h @@ -31,8 +31,10 @@ #define PIOS_SERVO_H /* Public Functions */ -extern void PIOS_RTC_Start(); +extern void PIOS_RTC_Init(); extern uint32_t PIOS_RTC_Counter(); +extern float PIOS_RTC_Rate(); +extern float PIOS_RTC_MsPerTick(); #endif /* PIOS_SERVO_H */ From dd1e10a15d8c2d331f037e193de55427a7a4784e Mon Sep 17 00:00:00 2001 From: James Cotton Date: Mon, 7 Mar 2011 15:29:41 -0600 Subject: [PATCH 052/488] PiOS/Spektrum: Start swapping to using RTC and calls to PIOS_Spektrum_Get() to monitor when call Spektrum watchdog --- flight/PiOS/STM32F10x/pios_spektrum.c | 85 ++++++++------------------- 1 file changed, 25 insertions(+), 60 deletions(-) diff --git a/flight/PiOS/STM32F10x/pios_spektrum.c b/flight/PiOS/STM32F10x/pios_spektrum.c index 16b9b9883..c4b076d17 100644 --- a/flight/PiOS/STM32F10x/pios_spektrum.c +++ b/flight/PiOS/STM32F10x/pios_spektrum.c @@ -41,12 +41,25 @@ #error "AUX com cannot be used with SPEKTRUM" #endif +/** + * @Note Framesyncing: + * The code resets the watchdog timer whenever a single byte is received, so what watchdog code + * is never called if regularly getting bytes + +/** + * Constants + */ + /* Global Variables */ /* Local Variables, use pios_usart */ static uint16_t CaptureValue[12],CaptureValueTemp[12]; static uint8_t prev_byte = 0xFF, sync = 0, bytecount = 0, datalength=0, frame_error=0, byte_array[20] = { 0 }; + +#define MAX_UPDATE_DELAY_MS 100 +static uint32_t last_updated_time = 0; +static uint32_t max_update_period = 0; uint8_t sync_of = 0; /** @@ -59,62 +72,8 @@ void PIOS_SPEKTRUM_Init(void) PIOS_SPEKTRUM_Bind(); } - NVIC_InitTypeDef NVIC_InitStructure = pios_spektrum_cfg.irq.init; - TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure = pios_spektrum_cfg.tim_base_init; - - - /* Enable appropriate clock to timer module */ - switch((int32_t) pios_spektrum_cfg.timer) { - case (int32_t)TIM1: - NVIC_InitStructure.NVIC_IRQChannel = TIM1_CC_IRQn; - RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE); - break; - case (int32_t)TIM2: - NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn; - RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); - break; - case (int32_t)TIM3: - NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn; - RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); - break; - case (int32_t)TIM4: - NVIC_InitStructure.NVIC_IRQChannel = TIM4_IRQn; - RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE); - break; -#ifdef STM32F10X_HD - - case (int32_t)TIM5: - NVIC_InitStructure.NVIC_IRQChannel = TIM5_IRQn; - RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM5, ENABLE); - break; - case (int32_t)TIM6: - NVIC_InitStructure.NVIC_IRQChannel = TIM6_IRQn; - RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM6, ENABLE); - break; - case (int32_t)TIM7: - NVIC_InitStructure.NVIC_IRQChannel = TIM7_IRQn; - RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM7, ENABLE); - break; - case (int32_t)TIM8: - NVIC_InitStructure.NVIC_IRQChannel = TIM8_CC_IRQn; - RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM8, ENABLE); - break; -#endif - } - NVIC_Init(&NVIC_InitStructure); - - /* Configure timer clocks */ - TIM_InternalClockConfig(pios_spektrum_cfg.timer); - TIM_TimeBaseInit(pios_spektrum_cfg.timer, &TIM_TimeBaseStructure); - - /* Enable the Capture Compare Interrupt Request */ - TIM_ITConfig(pios_spektrum_cfg.timer, pios_spektrum_cfg.ccr, ENABLE); - - /* Clear update pending flag */ - TIM_ClearFlag(pios_spektrum_cfg.timer, TIM_FLAG_Update); - - /* Enable timers */ - TIM_Cmd(pios_spektrum_cfg.timer, ENABLE); + last_updated_time = 0; + max_update_period = MAX_UPDATE_DELAY_MS * 1000 * PIOS_RTC_Rate(); } /** @@ -125,6 +84,7 @@ void PIOS_SPEKTRUM_Init(void) */ int16_t PIOS_SPEKTRUM_Get(int8_t Channel) { + if(PIOS_RTC_Counter() - last_updated_time /* Return error if channel not available */ if (Channel >= 12) { return -1; @@ -285,10 +245,15 @@ void SPEKTRUM_IRQHandler(uint32_t usart_id) } /** -* This function handles TIM6 global interrupt request. -*/ -void PIOS_SPEKTRUM_irq_handler() { -//PIOS_SPEKTRUM_SUPV_IRQ_FUNC { + *@brief This function is called when a spektrum word hasnt been decoded for too long + */ +void PIOS_SPEKTRUM_timeout() { + for (int i = 0; i < 12; i++) + { + CaptureValue[i] = 0; + CaptureValueTemp[i] = 0; + } +} /* Clear timer interrupt pending bit */ TIM_ClearITPendingBit(pios_spektrum_cfg.timer, TIM_IT_Update); From 25c44d3d0d50027b8049f4c53047bdd945ce8260 Mon Sep 17 00:00:00 2001 From: Oleg Semyonov Date: Wed, 18 May 2011 21:48:55 +0300 Subject: [PATCH 053/488] OP-483: polish comments in scripts --- make/scripts/version-info.py | 4 ++-- release/Makefile | 12 ++++++------ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/make/scripts/version-info.py b/make/scripts/version-info.py index ad747ce74..c14c03dae 100644 --- a/make/scripts/version-info.py +++ b/make/scripts/version-info.py @@ -47,7 +47,7 @@ class Repo: self._rc = git.poll() def _get_origin(self): - """Get and store the repository origin URL""" + """Get and store the repository fetch origin path""" self._origin = None self._exec('remote -v') if self._rc == 0: @@ -206,7 +206,7 @@ def file_from_template(tpl_name, out_name, dict): of.close() def sha1(file): - """Provides C source representation of sha1 sum of file.""" + """Provides C source representation of sha1 sum of file""" if file == None: return "" else: diff --git a/release/Makefile b/release/Makefile index cfb131028..3b4d4e5d5 100644 --- a/release/Makefile +++ b/release/Makefile @@ -92,16 +92,16 @@ $(eval $(call INSTALL_TEMPLATE,blupd_pipxtreme,all_bl,$(BLUPD_DIR),PipXtreme_,-$ $(eval $(call INSTALL_TEMPLATE,fw_tools,uavobjects,$(BLUPD_DIR),,-FlashEraser-$(RELEASE_LBL),ERASE_FLASH=YES,clean,$(FW_TARGETS_TOOLS),install)) # Order-only dependencies -# They are bit complicated to support parallel (-j) builds and to -# create the pwm/ppm/spektrum and CC flash eraser targets in a sequence of build steps +# They are bit complicated to support parallel (-j) builds and to create +# the pwm/ppm/spektrum and CC flash eraser targets in some fixed order -fw_pwm: | # default dependencies +fw_pwm: | # default dependencies, will be built first -fw_spektrum: | fw_pwm # sequential build +fw_spektrum: | fw_pwm # ordered build -fw_ppm: | fw_spektrum # sequential build +fw_ppm: | fw_spektrum # ordered build -fw_tools: | fw_spektrum # sequential build, replace fw_spektrum by fw_ppm if uncommented below +fw_tools: | fw_spektrum # ordered build, replace fw_spektrum by fw_ppm if uncommented below release_fw: | fw_common fw_pwm fw_spektrum # fw_ppm From 8535ae52b866ee96465798790a52891e3e36cbbd Mon Sep 17 00:00:00 2001 From: Oleg Semyonov Date: Wed, 18 May 2011 22:03:10 +0300 Subject: [PATCH 054/488] OP-483: rename win32 to winx86 (it works on 64-bit too) --- release/Makefile | 2 +- release/{Makefile.win32 => Makefile.winx86} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename release/{Makefile.win32 => Makefile.winx86} (100%) diff --git a/release/Makefile b/release/Makefile index 3b4d4e5d5..fdfa427a2 100644 --- a/release/Makefile +++ b/release/Makefile @@ -132,7 +132,7 @@ MAKEFLAGS += --no-print-directory endif # Platform-dependent stuff -PLATFORM := win32 +PLATFORM := winx86 UNAME := $(shell uname) ifeq ($(UNAME), Linux) PLATFORM := linux diff --git a/release/Makefile.win32 b/release/Makefile.winx86 similarity index 100% rename from release/Makefile.win32 rename to release/Makefile.winx86 From 5b1e45a8df88106b5c1a40fec5a0ce2fc40f20b7 Mon Sep 17 00:00:00 2001 From: Oleg Semyonov Date: Wed, 18 May 2011 22:22:40 +0300 Subject: [PATCH 055/488] OP-483: move Windows installer out of ground/gcs tree In preparation for release build the Windows installer source is moved out of ground/gcs source tree into release directory. It is also disabled in the qmake source file and removed from top level Makefile. --- Makefile | 12 ------------ ground/openpilotgcs/packaging/packaging.pro | 1 - release/Makefile.winx86 | 7 +++---- .../winx86/licenses/GPLv3_de.rtf | 0 .../winx86/licenses/GPLv3_en.rtf | 0 .../winx86/licenses/GPLv3_es.rtf | 0 .../winx86/licenses/GPLv3_fr.rtf | 0 .../winx86/licenses/GPLv3_ru.rtf | 0 .../winx86/licenses/GPLv3_zh_CN.rtf | 0 .../packaging => release}/winx86/make_header.cmd | 0 .../packaging => release}/winx86/make_installer.cmd | 0 .../packaging => release}/winx86/openpilotgcs.nsh | 0 .../packaging => release}/winx86/openpilotgcs.nsi | 0 .../winx86/resources/header.bmp | Bin .../winx86/resources/openpilot.ico | Bin .../winx86/resources/welcome.bmp | Bin .../winx86/translations/languages.nsh | 0 .../winx86/translations/strings_de.nsh | 0 .../winx86/translations/strings_en.nsh | 0 .../winx86/translations/strings_es.nsh | 0 .../winx86/translations/strings_fr.nsh | 0 .../winx86/translations/strings_ru.nsh | 0 .../winx86/translations/strings_zh_CN.nsh | 0 .../packaging => release}/winx86/winx86.pro | 0 24 files changed, 3 insertions(+), 17 deletions(-) rename {ground/openpilotgcs/packaging => release}/winx86/licenses/GPLv3_de.rtf (100%) rename {ground/openpilotgcs/packaging => release}/winx86/licenses/GPLv3_en.rtf (100%) rename {ground/openpilotgcs/packaging => release}/winx86/licenses/GPLv3_es.rtf (100%) rename {ground/openpilotgcs/packaging => release}/winx86/licenses/GPLv3_fr.rtf (100%) rename {ground/openpilotgcs/packaging => release}/winx86/licenses/GPLv3_ru.rtf (100%) rename {ground/openpilotgcs/packaging => release}/winx86/licenses/GPLv3_zh_CN.rtf (100%) rename {ground/openpilotgcs/packaging => release}/winx86/make_header.cmd (100%) rename {ground/openpilotgcs/packaging => release}/winx86/make_installer.cmd (100%) rename {ground/openpilotgcs/packaging => release}/winx86/openpilotgcs.nsh (100%) rename {ground/openpilotgcs/packaging => release}/winx86/openpilotgcs.nsi (100%) rename {ground/openpilotgcs/packaging => release}/winx86/resources/header.bmp (100%) rename {ground/openpilotgcs/packaging => release}/winx86/resources/openpilot.ico (100%) rename {ground/openpilotgcs/packaging => release}/winx86/resources/welcome.bmp (100%) rename {ground/openpilotgcs/packaging => release}/winx86/translations/languages.nsh (100%) rename {ground/openpilotgcs/packaging => release}/winx86/translations/strings_de.nsh (100%) rename {ground/openpilotgcs/packaging => release}/winx86/translations/strings_en.nsh (100%) rename {ground/openpilotgcs/packaging => release}/winx86/translations/strings_es.nsh (100%) rename {ground/openpilotgcs/packaging => release}/winx86/translations/strings_fr.nsh (100%) rename {ground/openpilotgcs/packaging => release}/winx86/translations/strings_ru.nsh (100%) rename {ground/openpilotgcs/packaging => release}/winx86/translations/strings_zh_CN.nsh (100%) rename {ground/openpilotgcs/packaging => release}/winx86/winx86.pro (100%) diff --git a/Makefile b/Makefile index 127d031f9..fe95afd9d 100644 --- a/Makefile +++ b/Makefile @@ -270,18 +270,6 @@ openpilotgcs: uavobjects_gcs $(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 $@" diff --git a/ground/openpilotgcs/packaging/packaging.pro b/ground/openpilotgcs/packaging/packaging.pro index 5fa82fa70..d6bfbcd25 100644 --- a/ground/openpilotgcs/packaging/packaging.pro +++ b/ground/openpilotgcs/packaging/packaging.pro @@ -1,7 +1,6 @@ include(../openpilotgcs.pri) TEMPLATE = subdirs -SUBDIRS = winx86 # Copy Qt runtime libraries into the build directory (to run or package) equals(copydata, 1) { diff --git a/release/Makefile.winx86 b/release/Makefile.winx86 index b1283c3cf..451541cf1 100644 --- a/release/Makefile.winx86 +++ b/release/Makefile.winx86 @@ -2,10 +2,9 @@ # Windows-specific packaging # -# Generate GCS installer -gcs_installer: uavobjects +gcs: uavobjects $(V1) $(MAKE) -C $(ROOT_DIR) GCS_BUILD_CONF=release $@ -ground_package: | gcs_installer +ground_package: | gcs -.PHONY: gcs_installer ground_package +.PHONY: gcs ground_package diff --git a/ground/openpilotgcs/packaging/winx86/licenses/GPLv3_de.rtf b/release/winx86/licenses/GPLv3_de.rtf similarity index 100% rename from ground/openpilotgcs/packaging/winx86/licenses/GPLv3_de.rtf rename to release/winx86/licenses/GPLv3_de.rtf diff --git a/ground/openpilotgcs/packaging/winx86/licenses/GPLv3_en.rtf b/release/winx86/licenses/GPLv3_en.rtf similarity index 100% rename from ground/openpilotgcs/packaging/winx86/licenses/GPLv3_en.rtf rename to release/winx86/licenses/GPLv3_en.rtf diff --git a/ground/openpilotgcs/packaging/winx86/licenses/GPLv3_es.rtf b/release/winx86/licenses/GPLv3_es.rtf similarity index 100% rename from ground/openpilotgcs/packaging/winx86/licenses/GPLv3_es.rtf rename to release/winx86/licenses/GPLv3_es.rtf diff --git a/ground/openpilotgcs/packaging/winx86/licenses/GPLv3_fr.rtf b/release/winx86/licenses/GPLv3_fr.rtf similarity index 100% rename from ground/openpilotgcs/packaging/winx86/licenses/GPLv3_fr.rtf rename to release/winx86/licenses/GPLv3_fr.rtf diff --git a/ground/openpilotgcs/packaging/winx86/licenses/GPLv3_ru.rtf b/release/winx86/licenses/GPLv3_ru.rtf similarity index 100% rename from ground/openpilotgcs/packaging/winx86/licenses/GPLv3_ru.rtf rename to release/winx86/licenses/GPLv3_ru.rtf diff --git a/ground/openpilotgcs/packaging/winx86/licenses/GPLv3_zh_CN.rtf b/release/winx86/licenses/GPLv3_zh_CN.rtf similarity index 100% rename from ground/openpilotgcs/packaging/winx86/licenses/GPLv3_zh_CN.rtf rename to release/winx86/licenses/GPLv3_zh_CN.rtf diff --git a/ground/openpilotgcs/packaging/winx86/make_header.cmd b/release/winx86/make_header.cmd similarity index 100% rename from ground/openpilotgcs/packaging/winx86/make_header.cmd rename to release/winx86/make_header.cmd diff --git a/ground/openpilotgcs/packaging/winx86/make_installer.cmd b/release/winx86/make_installer.cmd similarity index 100% rename from ground/openpilotgcs/packaging/winx86/make_installer.cmd rename to release/winx86/make_installer.cmd diff --git a/ground/openpilotgcs/packaging/winx86/openpilotgcs.nsh b/release/winx86/openpilotgcs.nsh similarity index 100% rename from ground/openpilotgcs/packaging/winx86/openpilotgcs.nsh rename to release/winx86/openpilotgcs.nsh diff --git a/ground/openpilotgcs/packaging/winx86/openpilotgcs.nsi b/release/winx86/openpilotgcs.nsi similarity index 100% rename from ground/openpilotgcs/packaging/winx86/openpilotgcs.nsi rename to release/winx86/openpilotgcs.nsi diff --git a/ground/openpilotgcs/packaging/winx86/resources/header.bmp b/release/winx86/resources/header.bmp similarity index 100% rename from ground/openpilotgcs/packaging/winx86/resources/header.bmp rename to release/winx86/resources/header.bmp diff --git a/ground/openpilotgcs/packaging/winx86/resources/openpilot.ico b/release/winx86/resources/openpilot.ico similarity index 100% rename from ground/openpilotgcs/packaging/winx86/resources/openpilot.ico rename to release/winx86/resources/openpilot.ico diff --git a/ground/openpilotgcs/packaging/winx86/resources/welcome.bmp b/release/winx86/resources/welcome.bmp similarity index 100% rename from ground/openpilotgcs/packaging/winx86/resources/welcome.bmp rename to release/winx86/resources/welcome.bmp diff --git a/ground/openpilotgcs/packaging/winx86/translations/languages.nsh b/release/winx86/translations/languages.nsh similarity index 100% rename from ground/openpilotgcs/packaging/winx86/translations/languages.nsh rename to release/winx86/translations/languages.nsh diff --git a/ground/openpilotgcs/packaging/winx86/translations/strings_de.nsh b/release/winx86/translations/strings_de.nsh similarity index 100% rename from ground/openpilotgcs/packaging/winx86/translations/strings_de.nsh rename to release/winx86/translations/strings_de.nsh diff --git a/ground/openpilotgcs/packaging/winx86/translations/strings_en.nsh b/release/winx86/translations/strings_en.nsh similarity index 100% rename from ground/openpilotgcs/packaging/winx86/translations/strings_en.nsh rename to release/winx86/translations/strings_en.nsh diff --git a/ground/openpilotgcs/packaging/winx86/translations/strings_es.nsh b/release/winx86/translations/strings_es.nsh similarity index 100% rename from ground/openpilotgcs/packaging/winx86/translations/strings_es.nsh rename to release/winx86/translations/strings_es.nsh diff --git a/ground/openpilotgcs/packaging/winx86/translations/strings_fr.nsh b/release/winx86/translations/strings_fr.nsh similarity index 100% rename from ground/openpilotgcs/packaging/winx86/translations/strings_fr.nsh rename to release/winx86/translations/strings_fr.nsh diff --git a/ground/openpilotgcs/packaging/winx86/translations/strings_ru.nsh b/release/winx86/translations/strings_ru.nsh similarity index 100% rename from ground/openpilotgcs/packaging/winx86/translations/strings_ru.nsh rename to release/winx86/translations/strings_ru.nsh diff --git a/ground/openpilotgcs/packaging/winx86/translations/strings_zh_CN.nsh b/release/winx86/translations/strings_zh_CN.nsh similarity index 100% rename from ground/openpilotgcs/packaging/winx86/translations/strings_zh_CN.nsh rename to release/winx86/translations/strings_zh_CN.nsh diff --git a/ground/openpilotgcs/packaging/winx86/winx86.pro b/release/winx86/winx86.pro similarity index 100% rename from ground/openpilotgcs/packaging/winx86/winx86.pro rename to release/winx86/winx86.pro From 285c42958974cb75c2b7546bdd32308c00eac9a9 Mon Sep 17 00:00:00 2001 From: Oleg Semyonov Date: Thu, 19 May 2011 01:05:12 +0300 Subject: [PATCH 056/488] OP-483: add Windows installer target to 'make release' --- make/scripts/version-info.py | 1 + release/Makefile | 2 +- release/Makefile.winx86 | 18 ++++++- release/winx86/make_header.cmd | 86 ------------------------------- release/winx86/make_installer.cmd | 19 ------- release/winx86/openpilotgcs.nsh | 11 ---- release/winx86/openpilotgcs.nsi | 8 +-- release/winx86/openpilotgcs.tpl | 22 ++++++++ release/winx86/winx86.pro | 50 ------------------ 9 files changed, 44 insertions(+), 173 deletions(-) delete mode 100644 release/winx86/make_header.cmd delete mode 100644 release/winx86/make_installer.cmd delete mode 100644 release/winx86/openpilotgcs.nsh create mode 100644 release/winx86/openpilotgcs.tpl delete mode 100644 release/winx86/winx86.pro diff --git a/make/scripts/version-info.py b/make/scripts/version-info.py index c14c03dae..acc17cb61 100644 --- a/make/scripts/version-info.py +++ b/make/scripts/version-info.py @@ -279,6 +279,7 @@ dependent targets. TAG_OR_HASH8 = r.tag(r.hash(8, 'untagged')), UNIXTIME = r.time(), DATE = r.time('%Y%m%d'), + DATETIME = r.time('%Y%m%d %H:%M'), BOARD_TYPE = args.type, BOARD_REVISION = args.revision, SHA1 = sha1(args.image), diff --git a/release/Makefile b/release/Makefile index fdfa427a2..a4bb58d17 100644 --- a/release/Makefile +++ b/release/Makefile @@ -13,7 +13,7 @@ ROOT_DIR := $(realpath $(WHEREAMI)/../) # Set up some macros BUILD_DIR := $(ROOT_DIR)/build -VERSION_CMD := python $(ROOT_DIR)/make/scripts/version-info.py --path=$(ROOT_DIR) +VERSION_CMD := python $(ROOT_DIR)/make/scripts/version-info.py --path="$(ROOT_DIR)" RELEASE_LBL := $(shell $(VERSION_CMD) --format=\$${DATE}-\$${TAG_OR_HASH8}) RELEASE_DIR := $(BUILD_DIR)/release-$(RELEASE_LBL) FW_DIR := $(RELEASE_DIR)/firmware-$(RELEASE_LBL) diff --git a/release/Makefile.winx86 b/release/Makefile.winx86 index 451541cf1..30cf57c29 100644 --- a/release/Makefile.winx86 +++ b/release/Makefile.winx86 @@ -2,9 +2,23 @@ # Windows-specific packaging # +NSIS_CMD := makensis.exe +NSIS_OPTS := /V3 +NSIS_DIR := $(ROOT_DIR)/release/winx86 +NSIS_SCRIPT := $(NSIS_DIR)/openpilotgcs.nsi +NSIS_TEMPLATE := $(NSIS_DIR)/openpilotgcs.tpl +NSIS_HEADER := $(BUILD_DIR)/ground/openpilotgcs/packaging/openpilotgcs.nsh + +$(NSIS_HEADER): $(NSIS_TEMPLATE) + $(V0) @echo " PY $@" + $(V1) $(VERSION_CMD) --template="$<" --outfile="$@" + +nsis: $(NSIS_HEADER) gcs + $(NSIS_CMD) $(NSIS_OPTS) $(NSIS_SCRIPT) + gcs: uavobjects $(V1) $(MAKE) -C $(ROOT_DIR) GCS_BUILD_CONF=release $@ -ground_package: | gcs +ground_package: | nsis -.PHONY: gcs ground_package +.PHONY: nsis gcs ground_package diff --git a/release/winx86/make_header.cmd b/release/winx86/make_header.cmd deleted file mode 100644 index 247b17af1..000000000 --- a/release/winx86/make_header.cmd +++ /dev/null @@ -1,86 +0,0 @@ -@echo off -rem -rem make_header - a workaround to build NSIS version info header from -rem Makefile using different environments (Windows cmd or Unix-like sh) -rem still being more or less portable. -rem -rem This script tries to find any git command line utility on the system. -rem First, it looks at the predefined location of git.exe installed by -rem msysgit package available at http://code.google.com/p/msysgit/ -rem If not found, it searches for git executables in the system PATH. -rem If also not found, then it gives up and no commit info will be available. -rem -rem Expected parameters: -rem %1: repository source path -rem %2: header file full path and name -rem - -rem FIXME: we should have product version info somewhere else -set OUT_FILE=OpenPilotGCS-%%%%ad-%%%%h-install.exe -set PRODUCT_VERSION=0.0.0.0 -set FILE_VERSION=%%%%ad %%BRANCH%%:%%%%h -set BUILD_DESCRIPTION=Built using %%ORIGIN%% as origin, branch %%BRANCH%%, commit %%%%H, committed %%%%ci - -set REPO=%1 -set HEADER=%2 -if "%REPO%" == "" goto NoRepo -if "%HEADER%" == "" goto NoHeader -goto OK - -:NoRepo -:NoHeader -echo This script should be called from Makefile only -goto :eof - -:Ok -rem Looking for git command line utility at the predefined msysgit location -rem first, and in the PATH last. Also note that we use call command which is -rem required if we execute a .cmd or .bat file instead of .exe - -set GIT=%ProgramFiles%\Git\bin\git.exe -if exist "%GIT%" goto Found - -for %%G in (git.exe) do set GIT=%%~$PATH:G -if exist "%GIT%" goto Found - -for %%G in (git.cmd) do set GIT=%%~$PATH:G -if exist "%GIT%" goto Found - -for %%G in (git.bat) do set GIT=%%~$PATH:G -if exist "%GIT%" goto Found - -:NotFound -echo git not found, no version info available -goto :eof - -:Found -echo Using "%GIT%" to extract version info from "%REPO%"... - -rem Getting remote origin name -for /F "usebackq tokens=1-3" %%G in (`call "%GIT%" remote -v`) do ( - if "%%G" == "origin" if "%%I" == "(fetch)" set ORIGIN=%%H -) - -rem Getting branch name -for /F "usebackq tokens=1,2" %%G in (`call "%GIT%" branch --no-color`) do ( - if "%%G" == "*" set BRANCH=%%H -) - -rem Getting commit info -set OPTS=-1 --no-color --date=short -set OPTS=%OPTS% "--format=format: -set OPTS=%OPTS%;%%%%n -set OPTS=%OPTS%; AUTOGENERATED HEADER FILE%%%%n -set OPTS=%OPTS%;%%%%n -set OPTS=%OPTS%%%%%n -set OPTS=%OPTS%; Installer file name%%%%n -set OPTS=%OPTS%!define OUT_FILE \"%OUT_FILE%\"%%%%n -set OPTS=%OPTS%%%%%n -set OPTS=%OPTS%; Installer version info%%%%n -set OPTS=%OPTS%!define PRODUCT_VERSION \"%PRODUCT_VERSION%\"%%%%n -set OPTS=%OPTS%!define FILE_VERSION \"%FILE_VERSION%\"%%%%n -set OPTS=%OPTS%!define BUILD_DESCRIPTION \"%BUILD_DESCRIPTION%\"%%%%n" - -pushd "%REPO%" -call "%GIT%" log %OPTS% >%HEADER% -popd diff --git a/release/winx86/make_installer.cmd b/release/winx86/make_installer.cmd deleted file mode 100644 index 46c6567ac..000000000 --- a/release/winx86/make_installer.cmd +++ /dev/null @@ -1,19 +0,0 @@ -@echo off -rem -rem NSIS installer script file for OpenPilot GCS -rem The OpenPilot Team, http://www.openpilot.org, Copyright (C) 2010-2011. -rem -rem This script requires Unicode NSIS 2.46 or higher: -rem http://www.scratchpaper.com/ -rem - -rem Set path to NSIS compiler -set NSIS=%ProgramFiles%/NSIS/Unicode -set NSISC=%NSIS%/makensis.exe - -rem Input script file (in the same directory as this batch file) -for %%D in (%0) do set NSI=%%~dD%%~pD\openpilotgcs.nsi - -rem Build installer -echo Generating Windows installer... -"%NSISC%" /V3 %NSI% diff --git a/release/winx86/openpilotgcs.nsh b/release/winx86/openpilotgcs.nsh deleted file mode 100644 index 222ed0d68..000000000 --- a/release/winx86/openpilotgcs.nsh +++ /dev/null @@ -1,11 +0,0 @@ -# -# git not found, default values used instead. -# - -; Installer file name -!define OUT_FILE "OpenPilotGCS-unreleased-install.exe" - -; Installer version info -!define PRODUCT_VERSION "0.0.0.0" -!define FILE_VERSION "0.0.0.0" -!define BUILD_DESCRIPTION "Unreleased version." diff --git a/release/winx86/openpilotgcs.nsi b/release/winx86/openpilotgcs.nsi index 47037b59b..9dc06825d 100644 --- a/release/winx86/openpilotgcs.nsi +++ b/release/winx86/openpilotgcs.nsi @@ -34,8 +34,8 @@ ; Tree root locations (relative to this script location) !define NSIS_DATA_TREE "." - !define GCS_BUILD_TREE "..\..\..\..\build\ground\openpilotgcs" - !define WINX86_PATH "packaging\winx86" + !define GCS_BUILD_TREE "..\..\build\ground\openpilotgcs" + !define GCS_PKG_TREE "${GCS_BUILD_TREE}\packaging" ; Default installation folder InstallDir "$LOCALAPPDATA\OpenPilot" @@ -55,10 +55,10 @@ ; !define PRODUCT_VERSION "0.0.0.0" ; !define FILE_VERSION "0.0.0.0" ; !define BUILD_DESCRIPTION "Unknown revision." - !include "${GCS_BUILD_TREE}\${WINX86_PATH}\openpilotgcs.nsh" + !include "${GCS_PKG_TREE}\openpilotgcs.nsh" Name "${PRODUCT_NAME}" - OutFile "${GCS_BUILD_TREE}\${WINX86_PATH}\${OUT_FILE}" + OutFile "${RELEASE_DIR}\${OUT_FILE}" VIProductVersion ${PRODUCT_VERSION} VIAddVersionKey "ProductName" "${INSTALLER_NAME}" diff --git a/release/winx86/openpilotgcs.tpl b/release/winx86/openpilotgcs.tpl new file mode 100644 index 000000000..a41447e61 --- /dev/null +++ b/release/winx86/openpilotgcs.tpl @@ -0,0 +1,22 @@ +# +# ***************************************************************************** +# +# @file ${OUTFILENAME} +# @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2011. +# @brief Autogenerated NSIS header file, built using template +# ${TEMPLATE} +# +# @see The GNU Public License (GPL) Version 3 +# +# ***************************************************************************** +# + +; Some names, paths and constants +!define RELEASE_LBL "${DATE}-${TAG_OR_HASH8}" +!define RELEASE_DIR "..\..\build\release-$${RELEASE_LBL}" +!define OUT_FILE "OpenPilotGCS-$${RELEASE_LBL}-install.exe" + +; Installer version info +!define PRODUCT_VERSION "0.0.0.0" +!define FILE_VERSION "${TAG_OR_BRANCH}:${HASH8} ${DATETIME}" +!define BUILD_DESCRIPTION "${TAG_OR_BRANCH}:${HASH8} built using ${ORIGIN} as origin, committed ${DATETIME} as ${HASH}" diff --git a/release/winx86/winx86.pro b/release/winx86/winx86.pro deleted file mode 100644 index f1364166a..000000000 --- a/release/winx86/winx86.pro +++ /dev/null @@ -1,50 +0,0 @@ -include(../../openpilotgcs.pri) - -TEMPLATE = subdirs - -# Some Windows packaging magic (for release build only) -equals(copydata, 1):win32:CONFIG(release, debug|release) { - - # We need this Windows macro since building under Unix-like shell the top level - # targetPath macro will use forward slashes which don't work for such Windows - # commands like pushd, etc. But note that we still use targetPath for $(COPY_FILE) - # parameters because this command is different under native Windows and Unix-like - # build environments. - defineReplace(winTargetPath) { - return($$replace(1, /, \\)) - } - - # Some file locations - WINX86_PATH = packaging/winx86 - NSIS_HEADER = openpilotgcs.nsh - HEADER_MAKER = make_header.cmd - INSTALLER_MAKER = make_installer.cmd - - # copy defaults first (will be used if no git available) - git.commands += @echo Copying default version info... $$addNewline() - git.commands += $(COPY_FILE) - git.commands += $$targetPath($$GCS_SOURCE_TREE/$$WINX86_PATH/$$NSIS_HEADER) - git.commands += $$targetPath($$GCS_BUILD_TREE/$$WINX86_PATH/$$NSIS_HEADER) - git.commands += $$addNewline() - - # extract repository info if command line git is available - git.commands += $$winTargetPath($$GCS_SOURCE_TREE/$$WINX86_PATH/$$HEADER_MAKER) - git.commands += $$winTargetPath($$GCS_SOURCE_TREE) - git.commands += $$winTargetPath($$GCS_BUILD_TREE/$$WINX86_PATH/$$NSIS_HEADER) - git.commands += $$addNewline() - - git.target = git.dummy - QMAKE_EXTRA_TARGETS += git - force.depends += git - - # Redefine FORCE target to collect data every time - force.target = FORCE - QMAKE_EXTRA_TARGETS += force - - # Create installer build target - this WILL NOT run during build, run it by hand - message("Run \"make gcs_installer\" in $$GCS_BUILD_TREE/$$WINX86_PATH to build Windows installer (Unicode NSIS 2.46+ required)") - nsis.target = gcs_installer - nsis.depends = git - nsis.commands += @$$winTargetPath($$GCS_SOURCE_TREE/$$WINX86_PATH/$$INSTALLER_MAKER) - QMAKE_EXTRA_TARGETS += nsis -} From 460478fc715f506bccddc25c657ee318d9f3bdfd Mon Sep 17 00:00:00 2001 From: Oleg Semyonov Date: Thu, 19 May 2011 01:32:54 +0300 Subject: [PATCH 057/488] OP-483: add firmware binaries to Windows installer package --- release/Makefile.winx86 | 2 +- release/winx86/openpilotgcs.nsi | 11 ++++++++--- release/winx86/openpilotgcs.tpl | 1 + 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/release/Makefile.winx86 b/release/Makefile.winx86 index 30cf57c29..0ac24fc33 100644 --- a/release/Makefile.winx86 +++ b/release/Makefile.winx86 @@ -13,7 +13,7 @@ $(NSIS_HEADER): $(NSIS_TEMPLATE) $(V0) @echo " PY $@" $(V1) $(VERSION_CMD) --template="$<" --outfile="$@" -nsis: $(NSIS_HEADER) gcs +nsis: $(NSIS_HEADER) gcs release_flight $(NSIS_CMD) $(NSIS_OPTS) $(NSIS_SCRIPT) gcs: uavobjects diff --git a/release/winx86/openpilotgcs.nsi b/release/winx86/openpilotgcs.nsi index 9dc06825d..18a08668f 100644 --- a/release/winx86/openpilotgcs.nsi +++ b/release/winx86/openpilotgcs.nsi @@ -51,10 +51,13 @@ !define INSTALLER_NAME "OpenPilot GCS Installer" ; Read automatically generated version info -; !define OUT_FILE "OpenPilotGCS-XXXX-install.exe" +; !define RELEASE_LBL "${DATE}-${TAG_OR_HASH8}" +; !define RELEASE_DIR "..\..\build\release-$${RELEASE_LBL}" +; !define OUT_FILE "OpenPilotGCS-$${RELEASE_LBL}-install.exe" +; !define FIRMWARE_DIR "firmware-$${RELEASE_LBL}" ; !define PRODUCT_VERSION "0.0.0.0" -; !define FILE_VERSION "0.0.0.0" -; !define BUILD_DESCRIPTION "Unknown revision." +; !define FILE_VERSION "${TAG_OR_BRANCH}:${HASH8} ${DATETIME}" +; !define BUILD_DESCRIPTION "${TAG_OR_BRANCH}:${HASH8} built using ${ORIGIN} as origin, committed ${DATETIME} as ${HASH}" !include "${GCS_PKG_TREE}\openpilotgcs.nsh" Name "${PRODUCT_NAME}" @@ -149,6 +152,8 @@ Section "Core files" InSecCore SectionIn RO SetOutPath "$INSTDIR\bin" File /r "${GCS_BUILD_TREE}\bin\*" + SetOutPath "$INSTDIR\share\${FIRMWARE_DIR}" + File /r "${RELEASE_DIR}\${FIRMWARE_DIR}\*" SectionEnd Section "Plugins" InSecPlugins diff --git a/release/winx86/openpilotgcs.tpl b/release/winx86/openpilotgcs.tpl index a41447e61..023caae31 100644 --- a/release/winx86/openpilotgcs.tpl +++ b/release/winx86/openpilotgcs.tpl @@ -15,6 +15,7 @@ !define RELEASE_LBL "${DATE}-${TAG_OR_HASH8}" !define RELEASE_DIR "..\..\build\release-$${RELEASE_LBL}" !define OUT_FILE "OpenPilotGCS-$${RELEASE_LBL}-install.exe" +!define FIRMWARE_DIR "firmware-$${RELEASE_LBL}" ; Installer version info !define PRODUCT_VERSION "0.0.0.0" From a0fadf739bc6dc5e77da12411cef945e8194e710 Mon Sep 17 00:00:00 2001 From: Oleg Semyonov Date: Thu, 19 May 2011 01:57:35 +0300 Subject: [PATCH 058/488] OP-483: add 'release' target to the top level Makefile Now 'make release' on the top level will build release package. For Windows it will build OpenPilot GCS Installer and all firmware binaries which are now included into the GCS distribution and will be installed into the /OpenPilot/share/firmware- directory. For other systems it will build all firmware files and the GCS, but latter is not packaged yet. --- Makefile | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Makefile b/Makefile index fe95afd9d..0d2700868 100644 --- a/Makefile +++ b/Makefile @@ -575,3 +575,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 $* + +############################## +# +# Release packaging components +# +############################## +.PHONY: release +release: + $(V1) cd $@ && $(MAKE) --no-print-directory $@ From bb423e2520c8e5abe7d99212bda2790651676125 Mon Sep 17 00:00:00 2001 From: Oleg Semyonov Date: Thu, 19 May 2011 02:33:15 +0300 Subject: [PATCH 059/488] OP-483: create a directory for NSIS header file built from template --- release/Makefile.winx86 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/release/Makefile.winx86 b/release/Makefile.winx86 index 0ac24fc33..1984ad58b 100644 --- a/release/Makefile.winx86 +++ b/release/Makefile.winx86 @@ -11,9 +11,10 @@ NSIS_HEADER := $(BUILD_DIR)/ground/openpilotgcs/packaging/openpilotgcs.nsh $(NSIS_HEADER): $(NSIS_TEMPLATE) $(V0) @echo " PY $@" + $(V1) mkdir -p "$(dir $@)" $(V1) $(VERSION_CMD) --template="$<" --outfile="$@" -nsis: $(NSIS_HEADER) gcs release_flight +nsis: gcs release_flight $(NSIS_HEADER) $(NSIS_CMD) $(NSIS_OPTS) $(NSIS_SCRIPT) gcs: uavobjects From cbdba940b5d6bcac1e7d0ceb521bf96f0e0ce7d0 Mon Sep 17 00:00:00 2001 From: Oleg Semyonov Date: Thu, 19 May 2011 13:08:54 +0300 Subject: [PATCH 060/488] OP-483: remove gcs/packaging subdirectory (not required anymore) --- ground/openpilotgcs/{packaging/packaging.pro => copydata.pro} | 2 +- ground/openpilotgcs/openpilotgcs.pro | 4 +++- release/Makefile.winx86 | 2 +- release/winx86/openpilotgcs.nsi | 3 +-- 4 files changed, 6 insertions(+), 5 deletions(-) rename ground/openpilotgcs/{packaging/packaging.pro => copydata.pro} (96%) diff --git a/ground/openpilotgcs/packaging/packaging.pro b/ground/openpilotgcs/copydata.pro similarity index 96% rename from ground/openpilotgcs/packaging/packaging.pro rename to ground/openpilotgcs/copydata.pro index d6bfbcd25..c50ad9330 100644 --- a/ground/openpilotgcs/packaging/packaging.pro +++ b/ground/openpilotgcs/copydata.pro @@ -1,4 +1,4 @@ -include(../openpilotgcs.pri) +include(openpilotgcs.pri) TEMPLATE = subdirs diff --git a/ground/openpilotgcs/openpilotgcs.pro b/ground/openpilotgcs/openpilotgcs.pro index 5c2611a11..22a893f52 100644 --- a/ground/openpilotgcs/openpilotgcs.pro +++ b/ground/openpilotgcs/openpilotgcs.pro @@ -9,5 +9,7 @@ include(openpilotgcs.pri) TEMPLATE = subdirs CONFIG += ordered -SUBDIRS = src share packaging +SUBDIRS = src share copydata unix:!macx:!isEmpty(copydata):SUBDIRS += bin + +copydata.file = copydata.pro diff --git a/release/Makefile.winx86 b/release/Makefile.winx86 index 1984ad58b..b83669432 100644 --- a/release/Makefile.winx86 +++ b/release/Makefile.winx86 @@ -7,7 +7,7 @@ NSIS_OPTS := /V3 NSIS_DIR := $(ROOT_DIR)/release/winx86 NSIS_SCRIPT := $(NSIS_DIR)/openpilotgcs.nsi NSIS_TEMPLATE := $(NSIS_DIR)/openpilotgcs.tpl -NSIS_HEADER := $(BUILD_DIR)/ground/openpilotgcs/packaging/openpilotgcs.nsh +NSIS_HEADER := $(BUILD_DIR)/ground/openpilotgcs/openpilotgcs.nsh $(NSIS_HEADER): $(NSIS_TEMPLATE) $(V0) @echo " PY $@" diff --git a/release/winx86/openpilotgcs.nsi b/release/winx86/openpilotgcs.nsi index 18a08668f..93a61d785 100644 --- a/release/winx86/openpilotgcs.nsi +++ b/release/winx86/openpilotgcs.nsi @@ -35,7 +35,6 @@ ; Tree root locations (relative to this script location) !define NSIS_DATA_TREE "." !define GCS_BUILD_TREE "..\..\build\ground\openpilotgcs" - !define GCS_PKG_TREE "${GCS_BUILD_TREE}\packaging" ; Default installation folder InstallDir "$LOCALAPPDATA\OpenPilot" @@ -58,7 +57,7 @@ ; !define PRODUCT_VERSION "0.0.0.0" ; !define FILE_VERSION "${TAG_OR_BRANCH}:${HASH8} ${DATETIME}" ; !define BUILD_DESCRIPTION "${TAG_OR_BRANCH}:${HASH8} built using ${ORIGIN} as origin, committed ${DATETIME} as ${HASH}" - !include "${GCS_PKG_TREE}\openpilotgcs.nsh" + !include "${GCS_BUILD_TREE}\openpilotgcs.nsh" Name "${PRODUCT_NAME}" OutFile "${RELEASE_DIR}\${OUT_FILE}" From fa7e689e321e61a01035763b1e056f5f656d3698 Mon Sep 17 00:00:00 2001 From: James Cotton Date: Fri, 20 May 2011 17:13:12 -0500 Subject: [PATCH 061/488] Add template for OSX distributable --- release/osx/OpenPilot.dmg | Bin 0 -> 5132990 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 release/osx/OpenPilot.dmg diff --git a/release/osx/OpenPilot.dmg b/release/osx/OpenPilot.dmg new file mode 100644 index 0000000000000000000000000000000000000000..d6c157a3b2e67fc6de84f5910fca3214da8aa08e GIT binary patch literal 5132990 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 z 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

P4$~T5eGoE}Y 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

Z||V{|3#SPS=*`n(lBPs=r-l6waOua(pdLNv++U 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

yP%%xa=RBDlalxw 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�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□F>$#4Pi~l82RH5 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℘;#czNc+5(CNIMb*21o@~ zgWH7@A@>QNO1{%yJ(NVWYL%OWci9SFF#RF4@9;KLf+_EXT=Vw>$-l_o70Ky47>5iw z;rko9XSZALwfjHV?hdt#{8n0xDENPD`+W5Kc4*AZw$-S=Vdd4yxmlP5=V<3iSPsVs3>krE5MI!uW_$`T)vC9W@0BA+S? zRQhz;7k`k&9;rK52TeN?FUFZC6GqA$FZ+z zeUD#uJ<=XRnpKdt4rQ+nlqJ5eul%1-NZL9<|K zZ&^YAy3j-%w>Ip6m?cs*qvCQHT;r-^-XXO}6j#y{>! zv_XCOD|Q;3*L@bUc>>w&Ni_SEzp%;YC01U*OU2o9MyfA*cB~V-k;yqJr{KxPA!i*R zmV@{5R_14AWZaGa6ypkKk(lY@eyViOSBCtWd6JlR?e^aMv{3Tw9r-C3Z%#1uN?O<1 znU~?m9IQU4Jq_Ef`t&kLtm@Nq`mx>vTlg%fLi`~94Cn)Om}9Eekyh76EFJeWE$UWx zL`)Nx=1wl4yO5%MdadMPffm4PksLO44BkjNq93N}9Jr1)fupM0p<9-`b^MwqeQAT; z7{B1j)&dHwl4jeqU&Sy262AH5}ea2*=xr7%8YJ% z3i(r(O3EL0=lHT$f8gC(%{IwaqqXa`PV)u@)z+&6Deu-RwkLy>x%WM(Y@F|d=G(S% z*qnx&678_{vJOk$l*t}dem4E*5TYEaWtGEW+Z_&LG!N;!SEh+aF>6;+QaM~YDL1pf zZRER(*XV&z>WFsx(GF4SmA-p_BW@GN?VlJigYgJs-PLLUF4G-PVSj?E2h;_|g+zD9 z$g}RRM>-c`)&ZZFKE9d}TFF!T{n~L;4*LBXMGN|U9{Sz9seV^)IHBmJW2f*Ag8_ah z#zm8dlgU`gHnKvWDA9#8tp`5n=}e};LZq)VnCL~!!-+#vyOnG_Bw8v1v~Y|z7!)n0 zk0f{GDU;Zi+c%LPcHfE8?x-GC7W>Hl?05~LCPvzLGsp~Sd5rY&R-f$n5fa8L*=(%w zeR4MW;92%icDx$*zWa9XSGye9pWodCUo6))vPt(oWz0xIy5)m;J)_Rr4Qw{hi5?%; zN**bDb#C9Rp}Bf2xCpf$*>@yH>gxU@v2*TI?Tm7bjBlU#RQr+Adz-dzF6M8akmrKu zO6unJ&Bds>YgcZ3#Xd{8*?Bq+wrW$ptXYt?z3@vOlXTZ3I;ln|!{0MU_Sn*!xR2|6 z9b&yZG5(o7GWrJ@=8E(HzJ}2NUx5@YoltSX*p_=_UvMTY=V%xwtUf#4F>;cur{gWB zHqq8L^0a)5ciHPl$NzQ0#%kF~@=R98TW#`YQ#I;+tSi4HElvod^BhQ_jr(bKZuarE zIJkM*akD4JEZmkS@5$!8d{WIX>zW&M1lKS-PNOPZS5=4d)PWz8jC%_Wm+enr<@vVMI0oPAUG zbAHKS%_ZrQDQhnEYA&5r^BcP6Qg9o#bV_~BFKKE%4{a_@mrhx8nO8IRN*8eZlqSxh z;$3Cy-x>dp+|)JamozoUP;*(jY|5I;y_(A>)qJ+Dxg4^6?LqoEzoe=8bktm)E}yz) z>~RU+EIl!P>%=?bS763h-+t!U^+(V)da zdrkTve3bm%8x!MY*ip?><}%o^|2)#gp&+uE4y$c^GFak!Egv9T~5{4zzi4oL!vdOyC$fmNI66 zl6RT&pS=GPXFd@*&CSP(&ycE9eLF_MW>)i7F!&VsEyFL%Rv@BW*0>evTxC?a)I078 zdI2}ed3ov0fK0{POnrslrBT>y_yNB}I}{X4S4qsgSA}#bE~vTn;Og{d@UJ)6ALS_N zfHu&U)aShm0EVragS!XeHMiWohj7VsGfOx>wk*SW5z?GbE-uP*mq( znmI)7hBCynCVLq2DrD4K^@-vf+V~>-QBnkoD?l;!v!__Ej5r}4>fbwqT|uB7d*fyO z)A`#Sk+=KjpihtEyu((k#$eSz^DYA3$uvb1>Ny`Vof51+s5|-=fWqm3uhU#R3gwT& z`z&3ax6CnZZes~!_%npi(LhP$w?RF`p@voVl8Uqcld=UgzaX{@`so@#}Uo zZ5HVJ5mr0qVs>cunjBiYX-5vF-534C+x^mke^k3&^m`rpJ-_{wH*zb~t8(25%w&qvlO@ zq7pDiV+K_xeuAe{&*sw}IhM!8r*Q9Dxt#G$6USgjp?aPxrzz+LrtZi}xJ_YgY85jQI%&h zkhF#~+ugO_|8Si+%-bDpyEEHg*Z1}1=3gq$QxWP3K+P!v#olezP|n(i0W}OxtDV+9 zE}o=Fc~BbwwXZ0Y>mClMdfY|$HH<8r>#N>ngn2Gf@7Ae`CrqtCD%bqD&xOx7;h8%d zn(_P@JV*Ns4oYY>;su7E<|J&mKLXFh!5R!D_*%rI)b9J}AigO9OM}z_>;TZIwS&-4 ztQBCj4129{z8m|lBWuI!9IO``*ocOW4PqRRZOtAH+kc!MIUM17a8V7{Fc@ANSr<)P z;z_w8;G(_~5G=C=Mp^Mk7r49e{^k3yp&U|h~T+D#}mE| zzQGd{zeeoDZ*f(i{k$FU$6hXE0v>aaSA;dXMc9V{tKJnX)~xV#gt+*Hr#o{Vdht!G z3HP$?H`){z|AQ}Dcr6G;GmB)I$GtMsbeXJ|5*NQmzctA=m!Jf{!GQY?z5Ehg;#Dst zj&`s_2)hH+H-J7@_rzJR-E_wpmi6>A_-nDOlb*$2tF`3;y*5rAsKHI1r}V@`7karC zGP52s(~0MJU#;X{TuKCOT1{UKo@0YPFEe*@%{h)fTcuWU&}TL<7Kf_^9Pe#YvgByE z^1-T&wQJ*8NwdU=m+N}DC0_1bN?TAz$jhyIv>fZ+&N{3Qc@h=&a!YX1LggOj$e*)Kt!*sa9xn953iMVHj<6p4SBRDyys{Z_HV&EYo>?Bn68~cwDSTZ z{rOn#1s0Alaq&lurB(WcEU9n-3-rGXzTfY6+L<%X>0E+a9nVRB0(-I2X*@^L1E1h- zIPS!{67|kRy*T^GeHCdJXWF=0A8%U(Zid&z#kWz*;kai}LVz-7IN>lBTi+f*?gPkG z)Z7WKVDH5Y7xaeE$uigiJ?8TpD#kSlDJ@jRTt&8J6d?PC-=sy3Omr^Iz1+2=mklSz{ zxf)B(-5Jg_39FSDZjbb5 zztR8Y>?4t~GV5`&22fH`w;~160MV9pASu&R&N?GU<&Y!#EpfqfAG46FAYW9FF(+dW zC+vkd!Jwc%4XBia??M}uWGz7&rKDa;IJq7{ipskLPYGg;xuC>gIR~jq(>@3+iFPZ) zc3(b;Vq3h8(E=1tqT?7~@TtA|AnmFHq@p^3z~WQfGzEXR0!mT433VwRJ{6$K9=<%#8{hFL`?{tq0iDKt zSXvr6AA;`H!_wS3_WBd1hq(7QIBro+2=V+A{2D7c^539N+2|vUZb+S>4AhAQp52X$ zDC&*&MLm7{l`QG&)?vE*Hz#>_W!MqH+M=)|W3q+hYuS*qmitz0F&&sWI#SC_jHhH% z5B%CE-?4fN^@uhks7rqPphNJet<3XMw|*ma>(~Eq-Ll2dLHhm$w8ixO)H1ydP^#}Y zgIlWaw;(NFw=P49%KI*!CQIvjq$+8}ci;}HTVI?)w>}39KD7sv=}!PsQT$Pl;>(fd z>(+iR{Q{&z|=LEWmwKHB_oYr57geq)8+y+3XR zb?a=|!hGHOJ=#`Ww~FbN@Xn)J@WwiE3zZo&cs7yWVf_!!`}(kM(+saoaj_fpg|Q>F z0oq1ByYmHx@3+OPC#?+ldbloYGlzZIzc4bPj6 zi;dHmM6sLC@Hr*db}j4?O8_E)FTF}g{HF2FFTZk!Sc4v;p8&sSf-8*1 zn?Cq9(v+Nj9egH-qX8;^7O>SPNNNT!b`1dcpvHNJ#+e4rj841B!})2AbC<`{I*|$B zjB5VEmSa{{D}J?~y=%#tU@g8MK#3(^5pR+F;s~PrtstFo@j7~d8fMAaU9EUn;~7-_ zAHcKL!&9bZ?RAf~xY#D~7*4zLZf=ej*`F>+yz=lznhW?1Z(H&kzmnfeK*Lf{|0&Xm zaS5%T3A#Fwwn(S_6={m!ufo%(T`-*N1K0RIa8*8*7mHx|m51dgaz=u_MjaVl$G>^G zkLx;2&n(t;q;(yJDy~NvN)7dt2Sw>>U}5j<^jvP9_@d)@Ev`}F)?#<@m+*i$X8gZEd7nLeLCg=d^uk94}`Q90%U2G5PyPl?;v#O$Bg+7o&;drEy= zEJJT$U!^Qtm1C*$9N|mkUHF!W{^Zqc-6<6^@<#8zX^7q%PyJQPvjWCL?bMu0c$}*f zFME1WD|pvjQxVUP=X=#EUb0zjRe!B2E9)ZqK8f&60Bd`?q?H3jLf`>R3^;bbK|^6}+Qsvc7PMrp|R?7230>)6aEZH%TB z(kep(yqRvT_?DCrIg$cm!kaq-3VZE7ztG)1tvDWB=bQoGM8MNb^tO>b1rtF|19E6_ zz!Okiil~5sanY-#sMowZp1ji1eeXcH-CkRY@)IbhBZ0l^7|Q0 zh_gm;BV81@i}gu*C(eK%I!~%AQ04`cE&=!EhWN&BNbn>bXY@SxNG{Z+(yx`RCH|iP zwhVY{!HGJ|=DD6sh+1eU&!(GIc_pQ+p#-JAiBgnCLOhE*M|{1g6=$Ko5@MA4?aEe{ ztSv(+6%#7J8_<|qe0NA`xGHNnR)=|Wt*DkfVXs`JYnM>iA#HTB7T<9&dK{aolKT5lTTtrBgHqYjF9W8K2dG&~+GNW&*=p5_Yk=c$=m+KJ6L?nou~??E z737YCH^rSx@I>Cq{s4kNeZR=#&e>ks4|v=mpWjWlZXNq1tYV?fbimKteA>**pHO;K z4_s5}5y!=6aT=UtJeM}-q_m7da%Q5W3Ox@ zZDn|Zw$hoPt<3FJzDo^!7ZVfZ88CHj&-Y#8@F>(>hiYy0bFb4HXOB|Wcoe@J3nJ2T z2giaMv0nO3YAmP`yS@2Ya4e`1cS|TW7M$$a|G4<3=VRlW8kjwD?}V~S13ETYm-;1Q zleAK`Q^Y1|&FFU!f<2gSxd3||YGu#KQj?;Y#{T8zGiF8UqKqmF#%Pv$QI2Bb1VxT26@rqg@!0D#0%VeAEGgkcPwIQ`0u8ejwk6 zL9yahv*tmqw5zXq>EyFNTe#&QlyUtdU}GrDMd&wBYM%LB`#mW%^Nw0(XmC_hrE(!>ypJ<_dV=)EY`NK?<`$gC6?;bi}F;gUO()?IS4gY zc8HU#Dse0Ptn$8c&d}u^q>sE-o_Q1!{>Zr{h(tbuRRBgY*%Lk9occi-6R8nD_EKuG z#%ZFpHR3*au)Ntz`Rj35TQy^wtRu!}=U8XFR?diP#f|7wH3t0>PxR!JFTE6R%Kr3# zFBsw1*5KQpjHMY2EZv!n$al&E-!DR`l$5JWP>QW7^=QXF3~ydnBQEsPYvdfN46_${ zJCxy=9NTE^$|3VegVx|4w6|`z%hR}bx;xQzA*6@>MBAxyX*c;!Dyp-zuYNlTlW$*Z z#D4Hjwa)^j^zaGK8tI+#jo1tg)H_QC!3Eqv{LgA0TZuAUDNuP`&^+u7kWsf9kpmWTvqtbdxx%~~X=ZM)$}aaL zzedjg>)XrL)ri-1+iJv1awdV8VxHFeYf%}j2VjRI=IpOMQ4UEC;g$@ph*wNn*D^j} zpGA)gRC3LAuAp46#SQ)kmutD-13Q-0 z*T_1P_Rf!-+XpKX!MC7)--7*&@}xNLP^GQAC_6tD#*QAdZ*A~y#*H|u`4u%oos1eTr0w=hzD`fJHWbO&tgs~61rKFcuR~6u{9-ag-`)2a^c;2}W6y>8j;m3U+4c-6$;N|goyu85UWzyp%=X?J+Uh-T` zP$J9Dtv)CxV=}&{&vc+K{@(I+1?4&4=U0V5Lt`2K4>g*-xsPK%SIby8zSJ1P{n{lJ zGux|w``8=R)>q$%T93WqT90L|M&;@8+yP=C`0g=I+(T-e#n1OsW$c{FO26YjRvaR_6+0;-5U9u2y<{F%gqd53c26 z?D0mI7{+Jc`@0__ji>ot%D$<4S-8GPU9|c?i}l63a9+W}dM>@om{{P|wMy4@kC##_ z)=LkKo=J_k3Nr)Tq@v3m=|Nqu%k_9EwPI#q)N4n%P++$seWw_{rA!|9I}`_z8p7zz zJt698wS0=f*U`HQEVDx{ChqjSgIe)z={c&=_A)ObR3pkzFIV+5z#InV%jC?)#nU2S zj`VS_@iTI@J)er0_(72x&yzK>me{2A|CsoOETM8wm5_{Mg;2wNft*+6v*ISdzZ~t0 zU>9|bh=ZP)h*(DP%-EH($d;rxCVIS5wcxoL; zPb$u)s8H+woml@*U{#a*`3m=#BxaMGBS7>@J4!~L(wj_XasfKF~z+E8w`S~}?3UGd0!yX%eJypY2H0^pb zWaFPt%xm8+ zq{PI0uhcG38x#IMg@ku zuz4$(&%asAcZ?1nPyK8Nt&%N^i9gC-rKM1VI0@Q_JJ@Ky<{EJ9AFS0MdG2~XSheQq-|)DJfPO9viEGWn(U_f_8D@G#mdt!V~35N zJ#h7nuid);;ScFw-1m5=9@mY1y+l*+ZBL47#08$6!?`20!NK?#w8>}dGG7Xmd4He` z&z;Z*Fm;@!;g<*CZ}+4rCe8*t?{E#)@m^i#vOt;cK$-WT48I+sR;|M8V%UGk*&W9x zljLN{MEO$w9=I6x;BfVcZ4TicV)fe~XI~sE7-LZUP^dw?pC*~uNDm=Y}C%3Nzy9jXRN~V_K z=~wcp98WwKp!&wns-=erUQ>-iR*=zFo>6Ag-qk=}pCle&2$6moUH)`X(^itGV(%TxtnvS6?CeomTx=1-wI2L&&?$9{CDuvfw zBNpPROg{DEsT^K#3HtJ0uYd2x6a8UI=@-1d=DM_!=M^ZW>;ZK@;0g-JDqm+%rE6-wkq~KjJju_eh?>qwSR!ZKHz&Rjw)7Y4PP^ZQNqx-&YK7%|ZYet`ayYMvflnhO_ zTi-z*Z24N+)U|SU62gwjbh2wV+;Nn@ro2dDwi~9`dk#)x&llo>WWgH9zi@dE|#$gCsxrt&)ejqLAX$ zmapjbGpnye-kzKr-;$-@>_~5?-nSXKVp$X7k1W{>p&+Zpn-ost*`nZ4Xsp#zYH&wf9&Ayx7DWRy4gKCe#l^5-Fcs(#>} zkjecp-78z_;STmg#LM3UPot@eCsVC$ycm}YE5DJ7$gTNSq?_#D8ChE`ws;a)qv!vW?rL$aH*2XDJK<*%6K}<7 z-w|2+I7V~s3z;lqX*mz5_j)FVwkc|P&Z1Ce%sH28+=Fc3ws>$Au)duVpRwcBdaakO z=Q)d}u0e2U7FN#NcPI}jvi45U)+h6njO0^PEq>wE)C(xT1+*xIwedTCiuz@FR2iJg zqo@}D;=x@i;qH}GIhv{x_)m*LmD*>aq%?tcDM_sspZ7{r?|h0vMJQV4!5)!E5w*ck zwMc3}wYb=WEtjxo4v|On<~{^!Y?(H>%_n=Mgp^g!GXpiI2Gi~)4|V{s!QP!rjarvx z&poGMeeW;~I-%oQke1Gg)>42JB3#d`?E1#O5YHF^Wf|_gPF4W1? zn0<27*Hw#WAvd^L)uZNuqSRDwq*S{&g$$h#zuKeTxs&Ah0vZ<rn9>;K_xV+DyURv7YPOEPxrT;7`4Vk>lDmzdITt|orqDI)9qQVUy|NJyF{6#@ORl<) zW~$teTPD}V?F*}1m3zTyC2|~NOeiIvehdD#WsiikU#TVkO8M+0pMdTb>ho8q&jlLN ztH1PAk6l6!KJ)g0bI*SI1GFdHBjoui(4k$>Hjd(qxklE`|8TW99X*rZx3l`+bFT4E zjspbe|G_B7JfwXNX~C$)9HcQO6z)4|D6)1o-nbuxksPkSJBTkNkjD8x)7p{7(FtfoONDJ1*G~Nk;SuJjzvDW3rFUu-BYMrY0M4gfHzGtIO6(w*Y znclD&9~w}8W;@e3r&OM@$)j%4ldTp9;K$G>;^|yQIUIPv`LN??$>G=^R*3&?q|;-q z7OwzDlPq6?_?Ut-^RjBJKd`*P>!<(5E6+Q~n!3X9I(ery?^WaoZD{=g;OJ}nvuz*8 zBgj+jSPvWu%FGyjPJGRS;(bBfOhJIJEq(ZLpuoTf-O5|8WDE=8NiQlXtk+ zV$S~+6#0@bA>9A3xHkctuAn$$B$V&?yhGNRDY7^&sN}r~Z z9j^bgzdL1L`?c6eSA9K-agz|~0-51?5C!o%Ao8Vw9H#Ubia7r_y;xY&Z;_{{-3B}c zs<5^nc~Fl5%I|BAkHMNA_G)7Mf%5CO>FXYjFL^a__Dd+g7kK_((Q|{WiPi|;;MjsM z9J|kr;Cr0-Y72f5^K9WwDqZH?g$tQqP;QR6WBHuX-VYg)t!0GgGb&Sq-5G%xaVtyNh-)OV(WWGYc5zp$ITyINWo%kx+s5KvVQb zmWuoy&kj5D)b0nb{p$`>T0>z!6KBK0@66fw`c_|Wi*6l$J+AOh>&fYJgj+Pd1>ejp z)?&Z4phe=osJmDiT6I;i^f{w9*A`1}8GWNjI(xHsdBWo`+AXXVR&uQ0aKfj8Eh&l_ zE%DPA0Yimbk{sJ%4ITK4wBYKy1!?f6^|=unCz>mE;Op2u;H>T79u)PAD3>@fcND%P z(K1HKF>t-uEkn4ufa5daX60%Dhc6~*eC5Q~tl(nAhiAf-<@j|3-UV&lN9o|#FX?$# z<2K|)-TX>Z(`Zjq(`fGsez|~SRKtz>i@{irz9>QxkM=GP z!0R`{ldti1?of2_#Y;P7c*~uKs!cX(EkUiF-MX!)xwESjHLH|s$wlyvslm3A$`VPX zsmI_Z%`Wc1Y&$X z=aS1Yk94rJl{GY|8YEAM{h{F|@Z_L1P0${7`R(9%E@FJ)>6q z-Rux|3l-`Zzjn6V6fh28d+9LuD1v43!qEZ)WzZ^iz4 ze3NHVy#`-0Z?0uPBt~pglL^D{0yay8unOic~} zx1V%q++sFpplre2qTC>d_fnG@o=@<@1{5!yqjhe+7HMN##A%sr{1V9V;GGK>I^smZzJ#QCGf^cR%8sy;smE^(_YOX_%T>0r3HJBp`M)YrQC#TY}IixZuZ zfWCx0eev5e6?DUDUti81c~J7Bp?eTI)N_`>k6*~B<=p?}`!{nQdjID1o$SN2N4|Xs z@Qw%Hs^@R$Nl3aH>r5KI_-dXx))_rB`b!?VefUnI#)0pK;f$=U&&V?NBfo=#F)H2i z*B1>GF)3RROi|;g>Kl_T<>NY~V~yXN3SYg7jS_;YwNqe38%K3#80(F2d}Xd^umj z%{(X^`Esg+OC1bO@`bb9=8?98!?kpFahBUWa+!uJXTQnk0DYr9b2_!1p*=P-%IL8g zV-B=72^<5%ypuQTH7tW(W3Jk;RQ)c}zZv~IXwo%YhQIJSt8kA74tb8^qdyoG8>}x zFVqdCzv>$%{Iru0?S$?-vtz@A-aTNlYu-q;9Gj5%q! z?>~s%g`9bto@1|shw$c7=42n?dy1$pFkY5>Gum>*1^9(npAL-T1sH9N>OMxk{eO)X z)pp#%C#53z*4Y(&OXs}}_-|vm<=aP~hl^FrfjoBmOi6k+8GKjR61Vl5H2g|WrUqZq zt?j<{EyuC(m+&x}{0sB)DX9%Nx@qO>xoK5;LD7=;<(2d)H<)+iG4=t!@UGJJ`=8gA4e4x zJ=HNx5z}zb0FKXu`^i3zDu9!{Dr2IeQNuj}I6f2Zd;2)5EXbp;S;M6P$7jNQbst9+ zzyL~_m7sl@E%t{l-!icom#cmQSc_HG3{EC~x z)ixBuD1a{xKp(fInIhkFF$+2S(nP#Ro$b~2Keo>&}`9vx?{(c}*h5sSb-Bqh1zrFdK9 z(fVP~$`zG^(|h9on%)wW4B(eED~c!Q^-{7=h!N8T66 zDc{nTNj+4aK*w0G=hbue9_5-q+|;oFC+p2K?3gU)LKcbJ%rTYs-q;kJW2(6{A{){x zF)@;$uG+AkkpY8qaB0Z%QEcp`l>0KUPJ$VCE9cjssg=+26a!*FPwj4=9fNE(iJm1P zj?0oV{9mPx(;C zs2L?P$T6b?zI6xdZ*8-17loNs@cT!Un#Z$^_zmHAP732!)Ao^@T%NY$w>Z_;HJij4 z$i;4A?%lyTu}}s#{-nhd#|DZdx7DtGfJ>sj$(~3!yv*W9v`f9y$&aY*bLGY!r% zllh#CWa1et?4(IDgWZ};u7prGTle?ARk!-yZnXeAp8uKW|9KwKx9V1%I(6#QsdG-9 zs*9FMv&d%bQ$8HRjN{!n5(mDKko-L;@h~W9mjGRQ<@ZPBn$bME8N2sfE8rhQE1=f> zL-=Ld-z$Gt@pr5z6zL@|N|{XABj+l2139t|uD;mhV=Z;ed@%Y6V@z8uzo$zW%mKfQ zrZW>o?IyZe#`XF4$aJ(KrE!qD=;So!W? z^ay(Rd$RDDmk&m^@0LD8P%!gl?*=dzHaKGlo_(Z$7kzS09^2*q0rpctIo^d{I6w-L*Es_Uu!CqeHP|UU zyI^LIhw#?Zd!O;7l1JQr05_f3JHA(vMDn87o>!2GSglvKz)P6LgSJ1T>4l@(?Ow#c z*jy-PgPVgsoHH9FrSpxqgdpdW8$#}Ua*vhNr#LRa<6ajY6FE6&W}g8ME0Bk0emyDA zp#P8d?~;28YE&ofqlKlNYev>Q`@^KL-D8#Mq1BTI#`@F1aK@{rjbBUe2fqF=*DLq@ zj%+NVEW|smM1q$$l0)UK1zbBP>VNzeH|l_&$#Ca>< zgeGlEIXg69SiQ~zTaL9fU`(B!-uD``T7;FFIx4?Z#8^2(Wqc23xZ^3vkGtECDxtGB z=a(%VHb_5;Q_k`DA;Q&)twzh(bMD8SWP9|zN*rbXah|}&BA%cXm)g;wBhLKZ?ooT@CzfRmnlY{GnP{mv7RQ@X5=;g*MKbb z8I*D)11#+rVbUUm4F;(u?V(Nf-nrygg|WTYf+K6nYX1>Lg`5$pjG7VDb0j`NF_S`B zbI?84Rn2yLC+CaRkbElgWdii52j<&E*x7j7kYVS#=b36(#S5r(JN9B3+sXY{ z#ph-w-d4c^FxQ+_brq~h>y5=$zqfiFE4d!#O3A=26OML++b& zWv9ryxOIHMgZRoaV5&+Y_Oq+dl`cS<7%G^-(VmuEzM$Muz8i}NCYCCXne@YpmQ_te zOJ?$_J6vsJFO|K(3XjMl11)~mdl~SqV=qZXmGb(t07;lRhe25 zcUxl}D`lV(Qml(*3vtyO0*-z`lg6CGjT&0xc`U=%itjH zlvR;e`SolC1HXdHR;=Y&gjIJ+pRA;TT!YJ-RM`mP%ZkoAzD&Ys9xa(bj}5{X&lsl1 zlLeqafmjpd$pg*AFED~GxOppl28Cix*tW~xQx%)61V?b2SQA)It_itiw{2$3QUzm> zde}$RiYiBYVH!N1(vsvUnrZO3^og?aj0^C^{lA=lkT|&e+DXx#g2fgBw!*`q{1S41 zGo5%Tt?E&qtO^0kjZO|Q+L%uKP@I;a&zF0m>BP5ObqvIr*!6m|>h-1*{Wluq>8b!5NvKJ}hn748($`gC$>n_|xr6wx7LRo_${(#?duuQeVWI2~OR!cunV znq8k~3S@oic%-f3J*ON!NQHv?cw@5S?)=)kTr=Hc1UQ1Lw%J_e=9!4iGn2R7ziUXe zF5?_&Unsolgb&NX%L~o69Q^!0fuGthmvL$K{`Q!(Hq(g}r`p7`rl%82PjNpQXLJO& z$~}mlAg$7L;*%_gXO`c2QIPbHmj$?AO5aKzKl4Vk`v}%l z+c%)?ejIa1dN1UD3BU4&Jpo8w-kwe032(7xT7CnN_YNx9K{MN@qr<}vU2GFe5E{RX zYBYMqjhPafgnlo)9{rm!^1?Sm__Sj9?xH65Sl||KoPjIpGr0THP|{~&pC+BCJAp6u zac_Jxd~xfm2TS{*<JS}!M_M`tL@UC#pkoSsT&{PuP*LAQaA%}Y@pjX^%kZqN-&R4adJO- zmS58LD8g&FT6ztIcU%QG*1Z=~J(>*uF`m7{G0-1`xjaoDqvD-PSt_^ShmpI99U zW%elk$UPvgVK}QM#!u}`$i0#i+5TO7op5lGp8JUsi99M-2E&;HqPFC_I<`2by!FyX zRNgpx(d5ZJSxP(0T>%wKuVM}4IMXBN0e{s&c0o?ZK+{L~M5*oG(?AKV^Lc2Ey@8&# zjOX0;YrDPgxn6LofssFR<4)=xmb*ZP;HtA(BNYtpQIHpf=f9WqlJHeuA5RwBoL^%9 zX3qqn)nxd;1pIG8s^y;@K5(Mkuks0PgVX|b1nwmn{lhyz3Oao#&iJf~0lhdw+iX15 zm}KK4N5ko#m}Pbx0rZR(87n5@2s-2%ejDQm@XR&*Bgd{g1aIC*PaC7+7$e42ejV;@ zk?~^b#HWwVKEzmNLgFgVa)w>*c9i2YA$|1NRF-pV4VH|?ODC3~oQ%dxCl(wtWH}c+ z8I6}tT!V5l8ZVugbL_vRCGThVP&}B1#JAvQI5~VulN{a z-=Y1WoYH=@<+8u~lb{HmS?=da#=f^^Q!XIOMOhBdEca6KFHjDV8o*D%>#30Co<%u6 zv)o@L8T&3HI#fAEagfg6Bs{y^)+D18WwfB8bI|Sw;MviFgeRgD1%9d=V?S(ocC=tR zu{FskMHwwn+6iZ=ab5S~rHX-Vamb+j!pSAFda^sB4%mBSWukQk@|_No~>6hG6Q?k ze?}bzy2_uqF|PwWhvNv{p))ads7Z_+nt2e#Qum;Un)x#I2b^>f+9~CM(o84HD#)3~ z^6k=7`>cD6D>-G8Es-G6#TS%px~ONKLMjoOIKN>;-Ab18p&a!!AKyJpjX=I*n)Gzi z???Zy!HBU%uifIRtQO@vMlrGVNLK4&q_Lv2m-1P&M=t^x&gfw@v(nN^pf-qp2mG)J zhB&IAK3WU-H|6ddk}8-N0tfjkc-N+X&W`fw>5p@caA;5KX=1K>M960jN4D5>?y+IE=Yc7y9kfgI=Yen2e6@?_;+dK{qwt8MoAL+q z>%vUyVaRkW?{*3QkEWfk^{&0+XIk|-zFwqTO~Hjfd?D4^ZGVMa7v!$1;#JrU)DuNXzM+SJ zb=b@ECty|T!X9U&(Rc8E1*ArRG;20UYQJ^N>Csn{GIoG=l(toR z72dnQN$-C;*&0yx7uIRSR4RW0Z8)q8#*qEH%Kr7=?<)UC`6EsT2l_%z`+i~fNc)j^ zDf|>(6U$5dMNFvhgQ)g$eGkIU#P|y9Dl4waIp-?le+hxU)ofc8v!efnWGkW--BEC) zY)MSLaU$WqgOU!MN&E=5r6@f^SjFuKM#>Cn3A*A1Gjx&mCg(Q%2(EZR)rLC95B|(p zZzmKrhaV7dGL06k+O^y7lkLV)z7ebFWXbhAG;>9lQcJ*#;uB zdc};w_Y$((kU9~+o?L=?tRQOEheUn(1@fuT@QNT8SZZn$A*yGotE+sj&r_Rthr`r> zzqiPiN!jh?wu5_XC7#0Ppzy?AS{5Y~mMp8<=2<5BjC}-K2lLt^PC7`gBF0h!b})1H zWEC%vXCz0#E&%?T%~{f}r{79q;MhGvm$EGt%0F_fY=>o-B`aP?^(dG zV}JA0gI`>wW{dCUieL7Sknufl;R(W*o`pTZ@u{-Mu!_&XR%xqD*FZN3u4_P831Kk} zuhlxn)XFr+zurx2u>w1^&Zck`#-2P-1MS@Ag-xV*URnx&)mhMC<7sH=zz~`W>5B2P zIU-k2@C!)!aG|DoHe(Vw4K6MiXMu}^lq+X5{?2zDze+!u<5zrd{?2?byh2K4`%L9d zp8>n`O!4~?54rAS!^mEDoc%fF4|L5r*Vxe36yua{&Yfm#q;FL4n$YIo4?Z~^E@#Up zv@A}Ki-eSqXI*^~r-lAly3mF>Jud#Unm@GpC&T4z>2hXV&WCbL4!6 z=ag3S{?O)h_?#VW&K953&<9>7K@&)Jsrz%q%Cm;K{3#RGFc*x|%>%bj=5#Ou_BaXI zo!7>bkn+w07cPpvejQj zi1dO+oi<{$12<F7~+&L^+^FA%oo~joOWkGibsjecO*rdvD%+lzuqP>d;^+!; zU(>x~*EXKLuc>0D^5G%Z=$<_5eD--6wMI)AazB@LB~P4XYXr1gC*K>Da)4fLS@)}1 zy`_yS_vV~^RoQY@yOUU6)UKrknc>+9wxhDzvU|svf-~0zW*edAGqsMk9N&|0YUi&zMPWzDw?W<^2`R&szyEM;^7p(nF6D?I(qt+4N zM@v*#_BqyOjcsScy5&9AnY~BTwO>*@VA^|+h(*urI8Tw0>GmFCp-kC(kCj*pXy;NJ z65bGKL(;Bg)Ceu%sZAAF0a%77y(cS^&+-+q!Fl`{dF}T+J5vswgk=w1hqS@I7WS1S zCa~^d!6UsA@ea@vXw?ha2|c08rWkX*8OzwoeZT3*5u`RpET@8wa>Pi-3Xw}XvdmL< znUXwZNJn@Qga-kh1mQt=FLZS8FiASnMxQ{(h727A?`7zh!+ZauG!q)<1e%FG(i*{g z^wR`Z+oSKMnO#QGEb>RvEPHq8G&Gx+q1go9%g1H;Ir4vi_rwlV9y(%P)HKyd-UF>2 zD@x3!YSiiB7$vjnGn$hT>1+$THJO#2_4^;rDZ7Dppqxy6`c$bM3(e>q zW3Zqf-!8{}QT&2Aaj8Q*dHIkx;zZAGH2kgD!xDFzFygitH;(3iztNQMizAChXRQ3m z=y0`+tX)}68O&ZY&aBP4%fP)NM~X#kEx&-S+N~ZcK?$6n8<}h5LNMV^S3RnVu^jFr z%3H2HQ_iMx?-VCyc5Lbj_q`z)&CH$__1ZQIch8Am#>!HMqz)l>3&ojqP@5;_aJxq) zGMZ|g5k5;sSW&G9*6tZ?thO2Sh+LbMWc zZ%I%wq+fQ~qTJH~bl8OaKlfyOfv^-0(t1P0th5`|sT#}@Ils$&5H@2QP zh`8!y`tGuuvinXM*<#{EtH9`fX`j(Z&CNT_ckRAOBfnfz=O)&R*zZ*N8^@oi_v5Z}m0mjjD!hVRYqQV0srS62QJyMu?C;6Wx-mld z7o+^<7--tU8v<~?(Um7{KbfB^r>F1>1fn*64L~t&vd`bH!ui{L@6_rgdrx@kRu05Z zS^s!vXe>}aBzjLi%U*5Eu{z>AE8SY-;sI6bU?Ysgl^QgY*ee}%_O*axVtiJMqb-h+PX2RHMsNJ;w!3fgTRjB zZrz%pgCjKUxIV(K^wz}AT+SE?h}#6YZ_U1ITU9@_NWIk&s<+k~`i@YXH`_~jF!BC_ zvP|DmSKOddxrY2Ce8P8>#}vfuw~FrSoHG4Po<`r`ve62RA8unAt-$y>cc_%2H@R=b z?JJTqalSxu9{Ef|EJ@pFQk+%ix0!L1!3K`plvvy7n4MeKxqYEi#vCcZT@*6@8+YDh z>JD`W$1e~y+Pfp63lBJN`Z4O~xmw{_xpOjU+#H^Paj?7Zey81bwhLVJ7^Bf@!}$8# zyT-jg2Y241A#o?Hw$cBx`xsf{VDZrhoackxUVLkG%R>8HbOzJ@2eroQ2Y4!)k$+D4 zI^2m})aF(J>mCQh4jid zp4e*;<2i`&{GI44>O%up(Ca$ua7XZZoWi})g?0Obk0+-fZeU82JmEWKK-I46rd~I+ zOQro?z6|6#%ud5PWjOC7gdm`2L(sDzbmu@wxge~?JH?$6QxTnL_vMol-WrWd-2He! zeMyApZXSnElV^0>VfEDwJ&6<}oXwG*7W3$fE&OhbX*HP@jh6v}q!oLcjcYwdF;Bg* z;7Xj9y1nW&H4DJSoL7hd!=J+gb!#}gWP7z?8RJ;7`^(_X?0)kG9o(Rj>7AP|+8;En zUz;oMXA8#>V`<=Pi8#EKfxu`_H&>ENC0G77re-bdBd7cWyo;;>(I&ht3^tSN4XNiF z;yoY}X{W&KeQ`2I--h)W#GK`} zHXZl8$z3Q9)~V^?O^DWhV%H|vp-=3}lnxn3Ukoi8?cp~#*R={At-9k<;2|-5Ih84y z;j;G*H=A?X$vH0hSh%wScgI%j-sIw)_6Nu}97*b1dY+Ml?VV>NO^jroHyBCW$7{=Z zjwkH#P}LjGNRrb^1f}zj@6F&&Ilc`86X8z}FB*>uyU(ULyu(kx=C?7-OY8bPc;=_@ z>ESptvfrjFPf1qrE_R#yvu7M_tb@BS=NxICsmJf6Qoqx-iW?1_+4G3_QcupBp+&ZC zHY3}1y)w)%>qvQRf=>J*c6F;dtI1eyg-KnfIfC2VF|u`=`7PD{POWhc=&3bcK7iC_ zdCyTKq+_PhW7FSB_!Z&pSjTu9yni!q*5he!p4I35v#Uf-bt}`WdcakhZhaD85clI- zywJ-LWs0%3RwEvpQQ*~>yD7Pvj0IOj&VGeet+MtPXZedPhosr%m?A(UD`yK3g z54HdPCiIceye>)5X5sFn`y1>xGcwYSx=A74EEr!dc4sK9{o$5TLtud~4dR?UFu=}w zcKcGEYKU=lS|{yzqeb0jx6G@15Z_A#1+M}3dK#}BY#set1N%|etvA*WzT0+r`?1-l zUcK5ZB8Q`mXRH(M5z86b4DV8> z_TMiecyU(=coBMlxa}=dqP;tdp0-{Qv^Mt`{l&PAIh{C+uN||_58**8XuQNVx(B)8t3CCGQ>pHo1 z@)ncA0h}`h$BR4bqR=et{@nqHdgDi35DtPP&K9B{-#V8NZ^%IWzyz&D$E^}Ze`(_^ z(C7u5Mi)*fWi(czlrAXw-}dc#RieLTsAqx`*ivz(9S`&j!`3&X?pcGGrZnF6H3mjh z$^_P93EbO_Rk#=wrJh4=RZ-XvsD;RX*YhC59g=_4e0CTLjIc5VO$X z1f`({t@*u9Zh!aV$%}#Y#W?3qzEJ%-i0_+TcZm7)MmYI(_{QfIBHx5|G#!vsY@Jn5 zoWaufAp{Q|+yVp-?y`{J65JPu;Ig=D2oT&MxVyvRvN*wgad&rz<;^))U!D4HrnY1mnrh5L}zbLo%QqjKU(VtNJQKUlmh9I?{(DfE4O#349TQGBIn)+mTv$Jg{oAYge zuogcN$*Xqnn&T56*iv{8oPV?AMc8QXUGN$R?0c|jE{b=jMXKzmg7TwtAJh5}>vpek z!E-wL4QL>**9P)Nf`a)0l8Px|)&9*+1zDjWq@5|u_DRgE_CU9dv1!bbQ{TNPG3C3N zAcGfwEFVm?37(bEp|nlwjOA~og9@^xF*)k8+j4{~_zeVYS2Dro^GrQ)&pF2cX{%`F zC^a3iCkD(v8B1z`BU{#C@`!u5iu#hi54~FQc?K`|TN8kZ=ARkIJq0MZ-g8KyRY;x6 zf!-&dG7Hb7o_B;J|Mc{o*NHE;+1QP!`IRp1ta7E|^a%HRJ-Am*-HHD6DMz;>w0i(9IcodxBl)icDKV?V5p7^-ia^T88j3ehF zk9v>EUS}Q&xL(SX95kHpIJctXE|0K6PW$3;u7COcvLUtjqn5(QS>{&K)S`R19IF_a z&EWnm`AOz(xL9(R`~|;_NAEN!e-b#vVe#xfR-wqzd5|8_zFzA%{m{;x#$#a=Hf z7XXsTg6c2Qo=a*J{y0-`t0KtdQR1Jg#4I>0L0!dYVzc(e*IwN>>Hw}fyO|v;-yO;h zLtU-o%ErV2XoSmniI?9tykq~UAZZeBe?Gs@bd;;_%;fG}LChVa@@15>hXQ0yhXaCT zMKw6A$3!>3?k%@WdS1*~65cns6LKp$7bbmiuz^G7pyV!RJG5MJwXqT^uf^}AI6$c3 zsRdrnTWJt3MVJR8LZ?AuZ%Td{EogOqa2{!Sl!$qhd}I?^>{5=rB{$A8-JLE9fEC9ReLvyEI&B)8J;i(3O}CD0tcNiC`8pyO84%ApRW{ByB` z4>uR+&-x4MRW1W^nFN^8Dd@V9?oADmRxB)FYWEjgEqOh@av>tC@|m(ez5$xt`Fl2^ zefKgRJTLK$HIIXF?``I@Ujq!(`iCiQCnaXv-dbPl30hn8M8PaFlsw5f!>?t(Zjv^^ zmAOtID~~q-*Jp9pYIxW6CwwCV>jq&?bTn{SJ!0$^c4dt!@}p{U?;q8XS2- z`BdhK7Yi-Fhs#-yFo+?zMdm&HazjM=U34(iPH9ukmaci0R&nEnHPD?iO(yC}^e0L@8W3U#(eLUxqe|0@S9-WG679{R|)0G`EtQPtonhu_++THDaC1$#wfdYKD#A)j3>W z3-p1lZm+|2=i)?{(x^wwfdxD$ zb*%AyI~>M`epK%`0f3$F)HT!v@Faz@w$s{(pUs)pB(sK~Y0cr_ey!fdovg~k>74Ky zyn{oVuS!R)hi^u*n@xuUS%wH56p03=NM8I5N!+z&dW6{j zR$sPk2aQJ}Q~Lx+V_YzF$zmTg0nj+N{e(>{)VB8Q4=-{A)xNk}5JVy)o(FCt_<6@@ z@2a@(uvRW9X{wL0mV0O=>$7(ghqm2#1_LF9X$>7up56@4tcRppIZVH|iglS`K>-T3fcu#czr#Z;lm~6@zUuq|-YZXYu$w z<(y`dh)Oc8XMXh;09akp*Xf+I_S_sBpSD`8`M(z^ngWWf`Gbsqs@<)Lq-k)CjWd<>R7Jd?o1bVwkUW4fBqeP{6@_Oq0zylKt(Fto9x+kX$X;u5q=wetEPCc^ zF7a<|E40sV9_o?>34Q-HpQ)vrA_BXQmn>{hi}!J&liP|PkF-KDtXTqa55y@}+JCgu zkBbWZyV`UPK3=`;dfxA5juU;A?kAeu$}wpDV!`)MzPqCHFz9rV^vCf$E2wxe?NY!Z ztS}MZ;w&}YlsF|*h|lwB7Qp9toe)bqnk^?ZmP|`A%IQ9#4zRGVD-vEUv*tuf!Ie3B zDLzgmm0#rYoS1pb9#9=xxu3S+dxhO!Rg=mK48Q5_+@(S>`1TT?_ZA3qQ8@`z`7F8y z_oG?=N$Q&C(RJprIfj80nXQ?aNZdQxvA^U%E2r-v zCWcFa0x!QTr=QYtr5pD}$-}X0WSm&)CCX5u!-_hODaqscBP2>*JMy{se1h4YUw1C> zw-_@ZWgS(;Q@qOJjofDy~F@)vvV-A>htEsD3g+MJ9~T<=&Eh{_s>+^1P|jFOd-G1%t$!9^B?L| ztg>Ifr`qD}+nMP$FNd&Dzk%&=OqE*`I?e`X!WFmln?fqD)63(qmt%79_eNk_QpiS` zSrG}_s=d8`F5V;35P-T@bjygL^fkLZvSV+B{2Q__q`# z4mVw5DJ!jnToSLFaBXn3j3qR$F}C(%%~7j6pr~5CeSb&pl?1}J-;i;W>k*W(?fx;h^fiem5wGv~xcWVUy%0Onom)zyjGb)3F+tV(>S%KjSBYW$Yn;@jsOnp=?Mf zzkw1aE-15~J`R))-I-Y-YAwIA+h6UhBpXKeKiZv)9zap33u)YG?4QnLO73_fA2C_- zbl!YFI2*H=gyUfRL!aqZ8-*N2J>}TH+Q>Cw7XKbBBRV|)wpJYn9mTJuE z>8xW%y=VV#sP0fuR7s1^@MW_rHk@+&9v4LM}b#D@s310g%3R3aWY94bQ?G&YBQ)Qv zvsifk;IR<41Fk+%QGa4o()w05R|)_6d2G^o)$5o@`bsY`JX;XigFrHb;dwHjQ!56B zSO{kW=f0Aq`fv=rV7$xa;yQy!0=a}tB6*p~Zhkvfi;Qyy6Wtq9o9uFJB>VsRBAV{# z|CmV6b;j=-a>s_h4a@1Gg*#ag9i=-y{5vxQ7*}N+uI$&G_roD3lWz}8 z3KNKj9BT3>3ABBFpmJ?WyzaUF3? z+6MLGJ%pYw3(@52JlC#m2uwS|d)P3PLmNtHo&C7;QY&P~@dQc^y`yZ1bsg83&}6+L z7Qw(u1Sb}ny&3lNkeZ{})ooCcY6_!?>Dgdfl!cs$j@S_)BJ_{1mJsBvL^oSxC{t=Y z&>2pCs9iF)EV6yFQdK$rS^z*;{skK5H+d?${*hC?f+`V6i9pXv;P4j_H+ttMI;R7s z>F&k@-Z)d2)kI*B@Np1*KSP)YXp49I^B}noZC+&GgQ?GsSINM-=kXrG5Z@tQ*Q0#} zTI?leWDglp3oRMH>inh;`?GnU2UoCk29I`XMuhe*lh41!QV1CD%-kiEpT#tQaaj~~ zqzR}i%g1gvI>!Gk=YNd>Wc|gQtJu4IB3RCD9)}Hat}x0kP&`Mjq__o4u_&QWvi&GL4RcG{CX#*p~y@h$(02vl(Mexuqy4yPaBUV z#DYQ1&I<$cbv5yf{-IxP`%!OyMEjh#CLun#9UtK3QNlFY1}03M`W5Ky@o=-4pFuIs zJn|FUFi5nFr@N9I(#N$j`X`&#hHDQT4=o8#G+*_mETOZ+8Jc#E5Iri_ws(X)+@s3F z0$bng9LWo0Ma^vkwHvG@*GP6QeUB||@D5^Thz=#-H`dc6u~O4A6kBgSXB`KA8M*|K zby=>u=*duCENgXjTtSn6ii`<5W;jXp4pFUbZk_)t&)9|xTkDuNGI%iqX&BG$czHNBgSixKm{8%d%ccO3Z`@PDn#Y(3SO|9&_ zb?hPf9|iFS=Cg6OrHp*Y+3D8*;+zQ5&0{f=o(Jg_59}C8vF1yhJ9Eaded4h+UB$5&wQt{ysFZyHBeL0%h1pJkR{47YpykQ2aZYkkflF8c_ENspI1AwAx*BjNx}JvD@Z9+VU5F z0okL+__GE$)5Jd8nF8+XV-EXJ+7*OVDz9M(%ROq-PiwPSi~XSI26 zv45_)yN)8X&W5Ok{TQZ!Le#fpj`(!Anl~`$PtPC53hGmC1>Dub?BTn|mz?iZu zEtx*bD2mCYL7B)xo^qi}q8vG#n|qGm zJ(==;?7-pM$@RrJ9T66wPP=vW!0t?+?m|_JEHSr}FO3W0MPw3%ua3GI;eYI@4|7y? z`dU<&jcCC%ec1;xrZE{;YF3G6Zn1>O`%`1zX(!c`k~(nmbHf%CHoiRseeX5J_=>Ea zM#Q66MSk!o{G!MdAv-r5IJAC!%uV;gPOmh{bq~s^*GqB)y|*SX6;=l(34i#qvviiI zVx_U?nrJl^sWlbQNq#6W8SfC5Z2tNYRM=-qdUa}-+9WC*2m%!yPNh|YMVFhnn_FqwAQ<+_t8n@NvLUUM)0YOr215p1Ufnm?QB!05H8J$OKY=_s={aJ%du9KkxzusZ;~#LjvtBjt)pE&)8He-GF3&4eMm!5zC(np|5@il|N|bz`&|v|; z7=3;*=PI|(q4lZ$AI}O+UVaGGBlc^YhR$@iaMx|$Nm~~WaECBMpBn{>B5vNH6|2&J zR^wc{SFl~}@A+gdDS+8$0N1}~x?&vfpC&M?U;CD0!kBQYeWe;VOl=TLZC+Kx{D@ae zjGph;I?1}}fbcT{w`dgyX#xv;)^Y+tFy<@TGwtNXrchw0UeubK@#-+g+JHqZ-|oR% z&7*SY1+_b)P|`E)>?b2r#a4>AiJC(R_!k3k;EtvXB` zSQFF3inOe~_5YBcVG);KXa$W%`=6+}zc4Ps4~?scuntR_W!glsG-GWfSGdY~Re(EP zwv@Wy+vP)^;m(pq$^Nwdx;C(;>oc4>R!meo?o3qRlvGr+8}`}7nXEvLIljmskUuwa zv5FwTHZ8Ho?_NtVf0ZA|YscpEpQK^Ax8M`=vxJH&yKS*zaH%T92n)Lh_e8uV;l+bI zb+I~>SEg2fFRq%uCSe+O+){H}4MKhN9_mN!_`_DUs6XqW?!AWz%1??iKCV0#1P~Up z$UVzR9;zk|7+P2rfrYXQJ*UNOK45)B1(`2?QgYBkUG;7wI-YzWsHJ%5g($5gTlbAC zzP~H>eP%t<$j#cZfU>RS+PPYb&|1SpaK0zyXQ>S{*3PgxN|wR-N_Eb1J2WY)^r74E zbMgnrlis&4Ws#`6`@8U*?VQr<|0Zxq7rBadsI*X&-imw&P>?0wR(|X^_jBJ@g}W*{yh(4&?D_eHwI)vX*~VD*+U^+;H<{EEL9eyJCeAdy{4H{& z!&|gQD2YEwlNXXWYW_B(Z8oH0r-`MQTFO1KAjrt5W!8#RcssfrP{Qn4>o5dX1nrME zRbFM$^rv$ynTR^3@)TCsY~IBZG@HdiOI`2CF6}$7k(a7HMcfxXj0&5T9E3le(N!FM zh;sdAvNzP!Dh3u7&HfM#O6DN%F;JlQvpTo-x}QAL<2}Q{o+8a4KJ2m6aMDtn%R?+9 zWumpyNQ#G+$~_9rCQS1E?Z^|=M}KoDXdZ0pTPOAyWU4-BJ|PDwH^eIne>kuC(zI^} znpD7&MW~8f{#pR<2SdavUGe@B)M`D^zo^}(;q7=0sway z^rg?5gRjMwyHW9RWB*$UDK_&2=Q9DPSloSFE=wQg7gE3{xuz(6Y^TEa!75q@n_GU4 zmz@lG!`o!FtI@MNL-QI4xtE4$qW@mZDq1T|6nZFv7L@SYFcLRL=SW0Dt4Y>>pLa@# z=_7xXqFAY5bnNxG@vJep@KY3V4viF|p}QOAr=wY*Qu!kxW{2>b=)`5I%AQ36!=HW| z#Z2J{Fz&tPf{m(w6B4GKa-^BnOyiQw*mXn&#(GFw7K-3{@SrMew@ejca-AHA2poCv zJBf55$iZM6KZ>)Uz*~`xX`BUf3XqrfS}nprQ)dhPo5=4U-3GvagQ&1mE;%h140*SoFr_Bh5m{rZiKj|FYKG@>3Xd-IcUl2 z-?M{VV4XDfOEaU@xtc0)O{LM_2haYfXhadg#8%vB^PZSD@<~#wn)+{tRd)!fvKk95UoR#6qm?9DF|T zU3y?Hyq;{$FKJcUIqx0~l(DW|4W_ecx;mOOuby2-W)7^Jfb73MZJdRR`2>^Gb52s8 zkthYL+Ye^`pom-kNunl!2~p{CB8}S)3#+c(JlTK@gg>Ka^bBmY(5l~hx|D4?S@MCLK=5~0xQ#1W1KJg1( zkZZ8QVuYe0t`maKxe>KF?e%y180VS3`8r)W{e1ECQeI)nhw$-H^<>V;NE*{Fp!$mnl70?4Xoun{SA0>}iO&s6clB2Q&*MiCQJa{>NzKzs zZ?4Y^j-22N4p`1RlY?yl;r5Yk+_kDy@b}pz* zt_{uh-wVW;sJ?bo8*$+0{E!0MyLY5e#8uiO<&$n%Mft@7l-)%wY3KzVP}AVFqd ziAN)mBt~Br%j1j8NQGN>g}`FDwFFyY+-;}8%Sl#=^1Xg1cO;WZrd}=ZVvLW6pKc=8 zH#-4QwOE$2*Vg)i)IXvjfy7KkE(#NQxnA=Bre|7@a!-r4@fG-s9D!S&uD(y~__in} zdQb0dw%q9@&>VvG2sj3yp-WpDw+T@fEva`R-f1{@zg4rr`+Y1Hb0oFw?+f1(Oy-n{ z_5FOLyLzqM8p=A|k(YvVU7aGRZWmw6adFUcH6S_drpVoCIxOyfBvwIl2bqQ>-R-u8 zjmObU?|<-@prmm{SYTn|`EXoJUDd3cDk47?AD+SP73YR#rV-6*n; z#A7c6@9EdQ%sp9m>$|R|prcYdADmz0NieQGv|Y~`W1JCR-lGi+f1Mv(vP$MY^NsLB zGfOG=NWKx40!%~XK);HsIn71TV~Fx#!mo#Yt3*6r5=8Qwhxgym=_x2GjLM;$;hU!j z*1@XB*4Z6ZOI$z5EvPSzf4I|Y@^v`kyv+1f;wKjSv|~fWZ3N~|1@DK}HSSZJyD^|x zJCZD>$@3yn>C$U*Pj@156^qBFJ6`34^f(TNnUn7zn4&9lsi^`26+t$u4HOcUt>PC` z;jXh?QNia}ydwwrw(T+tNWIz`h3)*h6;;>`5t64`ruaXP@U{7VyjTY37*2Y1hAIKK z{jp&BwrD1f%x(pE{%m==l!JuxXjwc>|LS{VOQ=GHb=A1}+ML=KqaSgsSRSu6Ym?g( z5}u9Yytx#+N4rw7))E_Rzedls{B0u>TuG44E#y(Y_T>~{&W8X}+dt=bI7-MHz3n86 z&d8`eW&0ImR3f-qxc)kZkT&NUiN z9LstorS2UWhq!P~0By%a!>09SQvo?+hdlr5-b;ZO`W&B*J=;o8GnPb7X65--?nb> z2)ByG>_G;seGHjJpTM!;U()kjaGlsuX^Q+cEUAOgc4>Kyt~c?6&9xr6uDZ(y#qPAr zDyDV(rv=f}wBrhPu>_f|&H3K)ib{EZ7|so#9IF~7eet7jGpgy}TD&=!c|)L^mArud z^S+BjcYISh7e9GlrAjOfLwQNdk%(N?NMOD_uSxWr>l?BX{ofWSPZTiV0K-P}GUL5H z6)WF}z8R5wuy>3DP4$|8_3of=GTx?;+hK2GjKON|2o(Jp4f~t5)O45uht1!lhhb)^ zx-)c^E_sk3#B_ zJ$OO5A(Ydk+a?vQSWx;CIv=aw<+$c%*zTY3Z;dtZAqJQ7B46rmO^(J|YDjS;%Xr2q zpC6p{A~a55>*gi_haIUbihsd6Gu;4MdUN!c?y~1%F;=gQdQ|ErS>@f!9lrD;kz;sC z4D@o8&ytJ-qo%OC$ytjc5#~L>32!fxNH>2weL@qj{uDna`|V=H6DzLiE*^&pvb+9A zj+}f0u!0R4c{_@W+(a9SVX2yuT6PP{ET^GqCNoJ)&U=3a6;(dAqjDqz!fys|d%x6F zdurq{7amKf4p7G{PST&gKh`5|_2~)LYRd=^bNxt5$HWJyoyMQIN8s-$Q6aE3nl1SFtI#Mc$lt(xbg}Inr)E0t?vHRMRWToS`aZ~IQ~qZFt)XF zJz2H*3VRmlL>f;KPHhKPe3*AYtkDXgn;&MUujkB(5^Cn$NwyGyK}V%tUD##Ack0*3%z$cG797xhb$47|P79j;jTnL+ZL9IymmGkAu z)%D4}*3x;kHB(nhmdh5dHwb4)4(?exx_kaZjR|3wqILt_?<69>b_C9pVvf|2TjD83H`ZIGB<5Qd zJR!8^RV|;vP=k;=9>fWcO~miC2K;6hA1M!pJhH88_g){o=W3RVmTEn8ZL{cj*A@Iq z!hE;ynYoX>CqKSyEy59A+j8ckc366&*j0$N^FQ)CNxugtxrVcgEuK4-D#zyb+_=D7 z_Ib@!+A|TD$t4y=e5J=by@cH=j%jd^+OaDy2mysdlU{u zYrVx4a>V*>?HXLaP8<3)w6sq=SI~jK9tqJ^?CFb@#~#}W%}<}1^ueXp^z)yk;g7Z} zP3Zo_)13a92V-`f4C4`@vi^>URkS}Atkpn9(U50RqEv({#Lg!79G+#C-C#F*9Xj%? z7FJozpzB$d!%c1X^9Vt8iBlT*o|byh(r0x%?&T5vf*!D&)YDkHKt43>U3elaJ$hfd zm4i|xTeN5H-D5lYg4Ss{sf0XXu61`H z{L^$CX!7YC+}qGn>0yen?##VW#X#~5Atcw!%)G=cH2_Gn!>z?MY$cZBpvIio5d&yT99X6giHi`^)bjK9mJ@5g_K7B4!3mfm~U zU~!AHWoIItmb}}2-30y(3RQv=vh*mMvyHG#t8`XyKGd7B%{;d6QhQB9vQfG_jmAsF z-M^VL`aA|7z5h}>eU8%#A>|Gj|C?Oc_e`Inu}E^g!TjA7OD=-4>9s0Q>HfOKGkV@r zqtm^Sjh}Oq+^4S@$N%8^@p56mM?4}k$aRhlsxeR`ms)%_mEgYeh4hsThqkA~#ecqT zs>y5=#Xim`qp8*K7mrooRVVZc?jF6xf8#u_DLKxd2iBF)YEf8HdlA5-Gf!^$!s5=c zF~58LrMB8xKp3a25llHw;WhOBV3|DVd9NbO@z zO5TsJDscO3*t=gk2<8}Q4tx0hjx5eUo128lL25Z9qVzmR`m8u`oZ}#Nka9aeHmCv! z)pPmqlQhpu+ocbiiO?O8@Wvh!QM&j}Q;bir$$kGai)MoIocwjX#tLTnBjoTA6MSb~ zrL>M_GqoRW2@ndsuN+MAHAWo`7vX8Iw%K>6W?qeOsb^k|1fR(r%bd5(Yd{cg^$!gS z()AC`3tY8;(q8MQRZk-->q%#lt&2(aQb6}Y*Mj?omLuf<^^LjDfy8{ZS_u!$wOWa- zR+FG{Ywp42esKRA@PpPX+N^t_cbvUjVR{@?--`Uucem<^;nN+8(ZNQx&X0BgRomcd-0+km z=Z|M^3!t6Z=3 z$p1K83x-0OIzY7lJ$nMy+_U+A9F;T*BI<{}EG6f1_tgK)^Zz%*nE3xML^b?>(=-%% z>@KzBwOtPjBUoE6elT)tro2~f06r|wn=$oHjc89FHHm~Q@BRLtUcJq97` z+)XCT&&GUQYXvvZ+Y@#CMp?j~2S+*TYaN!eEtAB;e~SfTD3bxb6|g1 zoA$UBHZ_v8ymg2eO6EBRdBL0{?%PFh8Pc65`3>CaU>@C;N_N*MidE!n zy=o(uKWQlKSR-ENWO8yo6y7ZU6%}A^o#piLX==JF+FV~N)?NCUH~%fHj!&9x4qz!v(l&<41@TO1HK`}tv<>UD5jz$WR{ z*lnj-ZuqGsjj0)gV8%ui58~nK(?c`%E9MC9?ZN-Jg(afBLfg266>_Xi*|G*{ zFaQ8~Z2Z}s)7b2(2`1K?0T=IC#_T_p_<@V-tgx&)y5xBHVqClZ%d8ZvOkhnYPgY!Q1V0f5z0R&8M{nVz;9)nrq1TY=uiiVJ z$&c8>zu3be-#+h>y%6hj+XdmgR$oFPE8N2Je*#wTWkm zCIx{kVFFeTXYaOMhbrxO&6@_B)_DC-#?HT$bJ)i~4$Gs`oad@JUg&;!bhivoiVwNJ7RFNf17A{1k^)~_0xt6z>EW-1J6+3fm-nKFnC zz0|~g4&{uTG%9nnxCSZ_X&wRtixr6=pRz&~iQZH!t#TJouSH{7gAuhh8og|fEN?-YU!G}- zebV#UD5F-rVgIo0K88gPoiuybTj=)(l=OnKEuii;`pp^;Boakta(NX)=748T1vu5TspZB^E{XS3mB`ziHBvg z@|#C{;Ri0pPDlj%d-wb-F5GpEWtrR1*FSJncymbj~bDg%cph4-k0kn(jcPK@^WOICL?U; zouk7%3E3k1dK-+o&vTo`_AF)PW+CuEIJ=$N|3Rd$R zRF?PYZ*6>F{^LJWd`@2QnU&l&I)e0>TiN3f3zG|rleoBr>?}(ZwsP-=l^$!~HNT&H zs_#9yZZ=ZGJNJEfSr_IE@8J0&D$qm5R!y|~XgUuVR7aIQAHFr!5*fVI6?NNmCR>%q z;?np#)ou-2C_U$>hSl^E9uN9m0SbhV2aAM}6&bWed0#rpdSkKYuOm`w`hE1$AD=f1 z_V=|jYth!7Ni{8H$VKKb4un+J_i0id8PqUpt<{1m1I)WJbn}JSqjkknq_8r)K`%{> zupA@Qsx}Hk2T5PC7rrg8S6E;SEue4~i`SUEnd^nEh z3^~^etj-<0=K+7Uu?k}|L={+-VkyzIR4|EV>GR;m|FESn$?QU%716ySo^3zNWJuFK zJYV!gg&`^_#%hhSp&rH*x$L51S=o@SM&VTk3o!#Xt z2HnlOaatpB%9cka=!uXPLEOwnVqMAAa;da9J3c&4O8SDoR)8u-|AT}5n+Pw&WdHT#U32T?FWa`d#R3^)5gBr zt3&P7Rsu00%j>TxsrVS-mn9@qXAqGxa{L<_C9@J#4|hdLyRUkcq2f|hrHfx>x@#$n zFta!x&49|4!B2lrC$mcA!P@JVQ=8Az;6q~HpJtDex{=wFd|!1Y<*f;udab$HmrEoY zwM8v2rLrjwbx=Vyk5`w2QXTUmfS2Ln@Sw>T#VY%`3(@9*oM^NvVmo49&UPd_T(2S@ zh;V0OTBsMLe|^M5k?+hl0`qw29!IkiX@MFg?2P@d$Gi%UIzI!+6c|4Iv5NH5(V1w8f% zq-KxXAZ_?^${hAz7$PCe2aE%lb+?j|ST4h@ryr&!k@HT0mOE4k$7SbJlZaDpqTY8s z7Ye(CU8D|p2kxY*x{}t+s!E@D7*vB~{!NNLB9<1^|b352dsP_G)JPLp?*WOkBuI`ijyXax#GG9|_7Y(~^q5OxW7M(>LqW!_P z8_40|E$m^{{i(3${9?uDkZS&E4`Urik&<<=^{#%jRTCysVN<=UGY=E6&__2Rmu*No z2i3#g83dFG6&q>H^p$DCkB{h2l}Vjp`}{tTaFDwzBbXjGpsAStP+?MGiJR=rqsCsR z#VwHpB&79?@KDr9w;GU30k1FBt#B3pP#KC>W|>&RU;m9?NR@b_x37G}xUbG%foUZ4S6~x{$l6Sb-cqtNMhX zn@NomC`q`fXr}_Ck<;pIZhy6*i^#)uA%Al`X;E4^&txJ5SlNxYt*em89?G*mPY`*2 z4t%KBC$+{2B;!i((l2gx{O^28kt06q`WOt(j;2Cjf#Qd=O4@b>?sPe}d z^B9aRzu&2UmD2DngI^beprj6B3)2QCOQ)z>?dmh7`d*7&!FmEd`=4*8w-&~+H$Q$z z7V)?8xVaD@$I#!;1$APcUd44Ur7#H!Z#tXo2a`%-7^x1s8)D*PdKsE1HKeAvXt;Zr z{L0n0$LMtC$39!iw@T?quw16VWV;NWKurn0WqD3m8ZVW7MVIU?G&fZB9|n2K4F>wv&^A2ued}5C6*HAJ`y9aMXM*yf8fKwaxN3 zR)D|3tEbs8Th_-=^o!hvqW#tLw#$dlypA zkNpWiggmv-h$#G34c?A$Q;nQ?FuVul2Rk=~o3tm<(wHY%`n5t;PKV=n(}(5piq|sq zmGYoZXX2qc?=I_wj*e}5X^EHKeXBi|Zm{MVev zW}erlNQm(A=hkc9-?x&_m|HsVIOi-eip{N(n&1NzJ ze-NnTqqywzdS3OYDyYAPhWO((EOjvNA>Ghh=XmV!ru*^mCK8K^5|aP$9P@a1Ypy&K ze;qgIdS$H|H~XE|FV$p%_ZMaVHJj?`Px}*e%M75IS}k>u7SpBE5sjODAoKm>tenvO zgREq!`c}1?o!c3uUdwA~q1)NH#M#w_^wd)FEOngxcbR?lE#}f1{WHR%S^8pO(KoKZLea;^pOoWDpxH+KnunxE zHTzA-{Jx>%#FD%&oO{LN*jej@73#~9|TMye{>alZQ~O0m{yIvAZj z23i7`GMZ0KSD(C$Af6m1*1(_5kd&Fi3jcaWa9+p%xs0@*+lGm$%~((g`e{CPMX+_; zM(09qql>%21eE1bR=N+P!ZTvul}A0jPdRQ%h&e8{Dxvhp6`~s81iwW*u66kJS7U&K zPzu(Djoab&osKW=mZ}9f%IaTiE6}3?< zN_+e!qZMmRz<}T2cUxAZKy~zJ(BO)@(^E|dV5!aKcsqE&bCZMvlAt|Tar;LeICJ(D zb5$5*l2kd^5s9(?PXT1{Jf8^XA&dw@J~hV2jCd;LZ3gqfm4$>{x0xt8wpM&X5i=sFLHovE4KC2gvVTJRW38i$HHVC&S(B$i2Wn|Qz zkPd?Bs)!P~osk$!0npyT@SdfL#h~w0jex>ArQq)svfhT1q~OjpTAqmZ_1R}XShPj= z#5xCoN5z`yFB5LqOQzT=*}?l?6XfN-L#CAi0(j+IXBi%Arj;ULZ6!i$Ud0#2!->pLG}x~fm7GWUbSlrS7#)Sr4jL?_D3FY_A&x$Yc&>$%c) ze&4Bu;v>*hV_yK)A;iL7E|veipS0RH@3HVamX;E*+uP3p7FN5mI!JUZ4f3q)TG{Vu zS2l)yF-zs)0rlLw!OP3!f*&@1QAK)>Z5P? z|IjLN(65PGj->F{G}1TFq3+fN7DhC{d3Kc>;?opX8)&QbaXkWSZoIx?kSvdi%#9Iy3X z6vtP1T>l3|K)b&i9*yDFm6@cKv9(0>n~=?axL`?})e#~#geIx<2>SM^0cr&7Zz@qC z&xu=)^W}*(>j@!^_S!QHG>|T z#&e-F%m&|(@9~$0Y=%^hQAYn0Wgqzp+BLLot(cSvg_i(_%K>BdfTZH(=~*wxak?a} zz2L!!RFcO(C3*;he`#81b5-}h9kKM5L$ zUnO2_U(P|XN?8AT>VmBKcdg(r)B1dxGGZR+B5@@~64&3H%$|Fc5uAU{+~cg3WjCF0 z=ALP-5?C%f?nsSA$8D)GVeVZHTrJ!k5LEoddPAQ3FA zv!vTR;6yp5TcIdu*!;-OLTD|z^-t+vC;zfX&D?@;tHAIcNU-^XP5+m@Hvx<4$o_`w z_U(-ZWDyki1_W_K6n7Dt23lHB5R6-r5fl&-1O!ZsaltJyMiZl1T%u#viOWnhiJ35o zkt}BSKagFPNhf9#W+qJ%bDQpl{(h(KZDWn&3Q!8WLoI4rO;z)dvMoQ-mCMr z#3AI@RcDDndnC^1@E&b}{$l$#X2n@9I*i9i%Kaf_m0(0W?$@=B_XBOTmoAkemg};+ z>!NINoK7_8%z=!E<}i;9I*jcvlj+qFy$*+$-nS023DEL6J)*_Nu4r7Y&}3}?LLZv1_0oLBF>9SnDZX*OqSLg(ROnf?-Rh|0Wj|0yWjAxm z`#@RNKMXfP6V_%&a#rT^aTbiu``JE7p$_M`d+G0XBysv)t){(3tGT-5`qN+>g~mj` zH`(_=tG(ffjNWb2?*&z8HugY|RN6~%rGunNJiF?nP$m{h+KQw?wmXX}f-H0F8y56P zU%Ba?H(5WO>X!8rbFsL5uHVA4=Gnq{dReB(1F185Q@?@K!%$Tmh5A=*@h5~i)S)okfY0ne|`hySjuxAp7l9eLk z?ek1f@Gkk_-R&8tKpTCa8$59e^bH^A8q`*7R=4yrhtUW|ZJ*>OORLb+=Re+E{2k4c zX}+wxDJ(Je=?9X$^Jzb+JMhcds+67232SXXSW{-*UwSrf>ys%rr0?u^!)x!RY^>}M zLqGjEg-^$BxRA1SU;LR1FFl{KRM<15T>EXxJG+)X`pp<-${N3G=%|@E>*x6aW9%0+ z=B5xQ9_h9&;)EHGSi7YaSP6I(T!(r#^D6ZLGo0JkRjzQlN1@(2sk{IrJjtt8z~7_uQi3h5Fz%^pq%2KOgAXo|OvJ z&1bzbg%fCX#VFU$Zn-y&#%T0y*9x>yzDm-DStMqSOz4)*EA?VU3Ge6aiAL#e=`&8P zTl&a7Poe(-hh#n0gmg=6BtvSsZ@7sTizO{2Q+$|H#B3DQOL`{3j-iqzaH@acImkRd z>83c6xSZorAO366n()?dTDO$ZGhWI6J{~XUahF?;r_?g#i9Mqfy!AeGs%1atxf}Ok z(0XA2<`|#z)c|S_I&J~6^Z%#Yowr?k+qwL_!rLL)eUlP@NTGAfq?LA@9%y-##`x$w z^USnp%s9Vryz^L{C9VC#>U%7Cu>aXTRMIww`gEIv)fqm2r;};NVinZVuGe0&nA<S`ztlQ%2N7ZYnlsT|*U(IPhb(_|%(puVEZZp@*E4^a8`1u## zYwepikDusY&n8T2%(LEW9@lip9Nr|xkL7V%m7(9vr#`vDGH$WS&l2UiLV5ndCdP*< zxPF0bBrL>?g*G;l#VoK*<|*eXPpfUFb(h)DRFB#aTPE_j6r22mNq zh)Nf=*8ZHH&NfJa7PyA`Zy!b`Zr*T7Wm29EGThIkJe9D# z{zq$pa{WJ+M7F(L&yI{lj6Q11PRj_a+q0%!XY^Pf+TE_#ec@=_GAF~Y^+G2z=sN}d z+;)w@(%!uO^$gvmZs|?lhP$QqZmeAG_^Vml+VJB$b*Ib?_6v2)eplUJaV9djIi)_@ zvfL`zgc&z7?1r@Z+gz%fe8Qq_M)+e_H?7glc#-2L*N?U2&jtQWFaA%eT%WLLn-u=| z)lJp9nORu}&DxexIFlFsbCsBeb8NvjOQvb?h&WwqL#I)^+ceoJ{|5r%u{onuGNy(Po?;?qt8PnEMBZ z*iK;=RhYp>i_KpK2_0#o)^?#ot!7Qz&s+`?J5t3WCZrr3!X~sgc`=2Sq9Oj4n)>qk zoc7iY#<{AF4@9g!3nVYlm`PNM*z+j2)G`n)&%Z^5l09*?uD@ptmXY zzg!-V%I)!F!sfuZvzg&X{d<^Y|LG}qHa84w|M%b|rRsraU<0U{*f?hYal7ikdMj3$ zEcc;iSyNQ~?bclxLTkUKThDl{lL7T?470awUz6FN_hZri=1cghX6bXYYSo7MDMXP7WoiCvIk zvj26vH-3nXjbdYGH7(3Klo8$pF49EEsz2xA(DpoxBAPbR9Cbe)*p6>Zy(0VfZeM82 zMhgEX3X3f_S>|ExaQ7?BXt6GXreBPGrMetd(-MpX)i!h1feZug&%pf!Ed-HEhP&8b zWuqu8?CX&p>lO}er?Gm>*rtitgTUS4XAk5oS%iN?RRR>sH z-H+MZm)Cox$Kp-)^zGEU$?nA(-~^LBX}bm*g4w6PqB{52rK9d9!EA?x3tGO zT1l}JZ@>9tJfU&C(LprxEH~2lg77;I(!nOqRYPxT+n1zUR4t&6y-&FmgHei=&Pw}a z|LxeTJb87~odf5d?9}=Dcf{W4)eaAvE%r@IGJm$|N3{h*ipEwUHX7?CBsX-Sf;r(* zO8OT!JN*B$Fj=I<^?_^RoOJ@gy0V((XGTvO8Y%Xa1dn|1($XB3SGbSvl=* z849pdnV(MUMla&5c&VQBL#CZA(OxCn#Q@vI0Ec zo|n}vZ9vKZq+Hj_kz1+;ObdG`N|B}>IoyKWwIo5*A#u6Fqdv43CndvqiKw6XcZG4k zmv*q5w z#6viHz;iw{7S+UR=#|5l0r z3h{cx|AX7*vOGTT5hhS?7n*_&7|-PJH5FB~Xrna|YR@cotYs44wQ)E2MYa(jPeo)RQ!asT|LnM_AN{V%x;d z6pTJL@%j1_^&`1lWc<5(C_UwfG9j0ZN(o3?z3j|7BnW{mJqAh>E9#Qq=R3-nzD*_jv9%dEVb^Vv{S;CTuC);>=cR7gNJ?U{TRt+@4Hr zGKxH zjB{BjfyWFOIz@$Ta7Qtq|?)td)tH@EawH=fZn z=DMXbCo^*w?`+T5D%BqN4 z+TjD8$T^jByuFuGIgE8hewu($|K&8( z1q!82ZtOTup}dxTc?0rcKXqaKb+bcmZ*uD!j&+foEVoqZ?v|dz`3|@AY`44)M{UC` z$?I%#eJ^rP<&-I<+~PgmBgRv^*0!c(-7-Ai5tVS%Y_dODcOzfH$OE;R?wt16oBRVI zH{nLjje&1;1c6R{a6D87`a&E)i@_M5cx^)&Pg}Y@99^#hg zt9@L&(oKEYEvel^;YPlKM|rzlbi3v?d1G&XV$kT;)0TS6l3sht#Mj*>u3Ry=@P)?N zFt7Ntrb>+8HRy?1+unJ1b;9zm$(ABKevaTy%zJ6A&J{TWHmWUUC-j=UMk>ptrnfA# zn&_7P>LPB*FLU~=OD@YvmwXz9N-C#Z)Ge3xsEf)%l8`YUc98@>M(ZP(x>K)pOS@e+ zBGxVKbW!`IdM;^RiJOL5+RB0&{;Vmu$u==dg%w_Xn?EpXKt&}GB^Hxwn-c!i)vd+a z*`qZzg9l*_?#3BL)W6dH&rq+lT7BB0PZ5&cQXbZ}e{RCM*#4lbF&6zZkyzhO!x~&>7xAvK`1NwGpX@Ee zYIB?=h_6PG-7C)@t5Wp|w64y0-MnTs#vIyq=M3+9!qWLmbFkKd8FZlKRWrS#hZz+t zDz|ikb1ZAWADy8%o!P$?Yu~9M^|T7Tzi#Cj($R9fjobNd>2KYntG3$)g^P`0wvPxK!gR|+aQ4{8yw?|`jK$k-60|V_s5Uml2 zjZHy$jAq_VL2M*F^VpNf5hqAOG9r$cRjs8FHxAjIE=>L;$g0m{1IB59)7ivgF?&d# zXgO^;VAgl2HR_g#riaYJCD9UQ(_jv*=}^;Y#2k$>2V|Xsf!VfNh73MI>jtxOEqO!y z1_@I?2`U0rV?0s4)TFAmfV&cwMp*Sj!EXeACvtOefF(tv>)fnPWdd}v+|{kj?R_&J!RXPoWav|Me`LDCOnJ}}kskX3_HbxRW+0`>%NvFX|b z$lvG@0BgaXN%)s%J2xyZY(CqWx!kY$UW^%G9@>@cmOjQl;0=wMF9|c$u>*9vrGAd> zzz~r-4k4XmD?-j5Im8^B5xUAlZtRn6MChMN=ts|bguYWk9iDYoI;D$o-g6t^mlXIH zo?3)HRzjb9)*$r05^CaHL9Zj6fV?-NJVsEs0AA=>-*W(`PgVBUob+bIrd+r57u;35 zVSyXpUtMHX1LL&k2GDy7=?VY1Cm$hvsU-s-8NeWcI~9Nm)nCT1!}4D(sXycNhJo$~Kuy3O0x6kN)jaJ8PXuDZ6#Ra8hGn`XLl2vf zBDMbo=Y!H|9m#%oOVGP1@#khe|K5+*HToYyrmHvS%(R4zoc)Ype)8VaPbZ%|F(x_w zts}Dw6BAO#FBVKQng*E;9=wCnB(~s8QPo-Wb+lAZ4({=2MXQA@o}*A(1UUM*yU2D1 ztypY2_kEQ~WqHjl{&q>u{Nq+HO|;5j$7C?!Zz%AqA;w9QU)}s#^FoKaKgBN z^CPojveIlZS*dU-Hq|&CV(<-8#Gvn{vFIr_V^$*EL>r}5H?jCr=Z9qt&l+vZ8}eaz z(iov_a3;P#J6hcwid9_!tGZenahB#$*&paq+1EORaaheAr*6!y$5$bs;R9?zklgLv zg2gXWv<1Mwrdx-<<+xifg3d&rN4d$ReEt3a6I=uQCOACbO@TWff9~Z(dSfK`EbcLd zhS?5#nxE!s#(B3K4eX#?)Q4LVJi+HyW|XyLH{$)UAbs;-Ri%BSKb`7#xy3(_yA|uaT7pO|8}D|{k&*N ztnWAX>!3WxNSvAn)=c8l*+NwHE%eTjs&g}=70UGXhTPzDlxyAKd?<(}E$V;ED3t zCCI`m?}OqLZX?Di01mvM{naFOxTvwekK2n&WA;-Q^Y!>_)`{E5@WV`R}%YUC6VX_H4!~}Z(-BIkjr8l8(;Th zzikCJHvSLIYP5UZWum8RV&jFDbPKyo8Yb0}U^|NyLjk9~=EJvPxxR_^Z!|3?dDkX~ z*;l+`f=;^KL7WQ~S|6l*hH*N2i-P`bJwKi;~yp5jgRzi*|wp68~&`kuGH zqBX$_Td4=W{#6cE-VL}9RqO-A}Ax_ctD2l<9~kF##!zCqn%(SG}Z1A>R5 zWkZ{SR}m1>IDXwD5w8WDw1^WHRW4Srp#NP9NK=)>+DB+9WrvF}Ojvotxqe!C3((n! zlSiP5zH?XF2L@;@r#d$Wgk%MDe0!5TgJjyHwBokZ*cOO#3~I$20{Wq_4{2Re@@!7g zvAPt}J?z9wDOFGXb1GwXubw<{B6-${m(H(wb13`t`I{MyqsOl@Kjf%?YHlXZe5e~P zI`n&U+ROa%9C4?ucD9t}^@s6|QJnMIOa1#1@G95He9WQLxYttL=awFX&78SFxLOx^ zPr8+tZL7swy1O6^^#QEuxQGVHr3Ul_^m(^b0cs?HS_P-Xh1>G6j^oBY-vX?(=fYQl zxGi|DaBsAVkgICHTe``8CnUQ7sfpeV?mG~gtAyseX}nBRLUY_SUM49albgoNDZTkm zM=o+*js?aN(3+ssU9@W=xFz0V-NjbbUbi&Zr9Oyu=t9kvC0It=NBGgKYM|Q+8(?_c!t{-HB1E8h_p?3OM%v8&jy)lvYgJ6$PR3oL-w$-JC*Qj2@V zN%_^|uW!41mdBlPQaO$z7s~l5r!b)o>qeTx{m-DD7c<+qoEVI%Mn0mB2F8QViTHaM zZ$Zdo{KJqOrQ8L$JihM1Uffpf%TlY~j58BkAR)55rnjB#yelWD)zTDUrMNZDNZ?To z-lF6_4rgYP8bhqp3FZp2HrwK$>&%_`$u~?YPu4tfFUHLi$$wqll6>gkAe!Hp*!0^{ zj=gbYY7U-8;6}iqt)EXiF+Gvme<7?0eQRJ-Bq&ZpE|l*#?%Xps@jRxxmRXRRUZ{gOE)FtQtQ2#(*#}LL<@Rfk)6`T~y zw2*Ya?!t@-&wn5V#WZ(CLbinag)@X$JReAM61 zJ1G2$BS)eCTGtGOUvO-NKB1Ur9X_=5FX1g

?@sxXsEbp1_%?C49U(?9jnSX&-iw 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

c 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

Z||V{ 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%0AH&%E#xwuVKtD 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%0A$@*@z%xqHY*%ZFr3M`WgKt_rV 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