diff --git a/WHATSNEW.txt b/WHATSNEW.txt index 5bfddcace..2cb236948 100644 --- a/WHATSNEW.txt +++ b/WHATSNEW.txt @@ -1,12 +1,5 @@ ---- RELEASE-14.01-RC3 --- Cruising Ratt --- -this issue includes the following fixes to previous RC2: -OP-1088 OP-1141 OP-1166 OP-1187 OP-1191 OP-1195 OP-1211 OP-1218 - -Full list of bug fixed in this release is accessible here -http://progress.openpilot.org/issues/?filter=11361 - ---- RELEASE-14.01-RC2 --- Cruising Ratt --- -This is the RC2 for the first 2014 software release. +--- RELEASE-14.01 --- Cruising Ratt --- +This is the first 2014 software release. This version still supports the CopterControl and CC3D. It includes some major "under the hood" changes like migration to Qt5.1 and QtQuick2 widgets, an overhaul of UAVTalk to improve @@ -20,12 +13,119 @@ Some additions in this release: the full list of features, improvements and bufixes shipping in this release is accessible here: -http://progress.openpilot.org/browse/OP/fixforversion/10220 +http://progress.openpilot.org/issues/?filter=11260 -Issues fixes since RC1 release -http://progress.openpilot.org/issues/?jql=labels%20%3D%20%2214.01-rc1%22 -OP-1166 OP-1168 OP-1169 OP-1176 OP-1177 OP-1178 OP-1179 OP-1180 -OP-1182 OP-1183 OP-1184 OP-1187 OP-1188 OP-1192 +** Improvement + * [OP-771] - Change Wizard wording for better usability + * [OP-791] - Integrate About Authors, OpenPilot GCS, Plugins dialogs into a single dialog window + * [OP-803] - Gadgets get their configuration set twice when restoring workspaces during GCS startup + * [OP-835] - Upgrade GCS to use Qt 5.1.0 + * [OP-883] - Make system and flight targets cleanup, pass 01 + * [OP-913] - Poor UAVObject data structure alignment on flight side causes performance degradation + * [OP-951] - Add -Wshadow to flight CFLAGS and fix compilation breakage that results + * [OP-966] - Scope Plugin Cleanup + * [OP-984] - Provide multi PID banks, these should be assignable per flight mode. + * [OP-996] - Add GCS option to remember the last selected workspace + * [OP-1022] - Additional improvements for altitude hold + * [OP-1036] - Improvements to Fixed Wing PathFollower and Nav + * [OP-1059] - Typo (2x) in OpenPilot Setup Wizard - Output Calibration Window + * [OP-1063] - Multirotor Configuration + * [OP-1071] - Make map "emergency" lines less strong and dashed + * [OP-1079] - Update to FreeRTOS v7.5.2 + * [OP-1082] - Add a ticker on the Welcome page showing Jira activity alongside the 'Project News' + * [OP-1083] - Fix minor English spelling errors in stabilization tooltips + * [OP-1085] - Upgrade GCS to use Qt 5.1.1 + * [OP-1094] - Turn on Progress for large SDK downloads / remove for MD5 files + * [OP-1104] - Create BL version 6 to support larger firmware + * [OP-1105] - If firmware .info blob is missing, test string is too long + * [OP-1107] - Convert About dialog to QTQuick 2.0 and cleanup code. + * [OP-1110] - Move Welcome screen to QtQuick 2 + * [OP-1111] - Move About to QtQuick2 + * [OP-1112] - Update contributors in GCS + * [OP-1113] - Convert new PFD design to QtQuik2 + * [OP-1117] - Implement Horizon mode + * [OP-1120] - Waypoint upload to board should be transacted + * [OP-1133] - UAVTalk - expose send/request all instances of multi instance uav objects + related uavtalk fixes + * [OP-1137] - Make Configuration Checkbox checked by default during uninstall + * [OP-1141] - Add a further bias correction to barometer to better handle thermal variations + * [OP-1143] - Missing Linux udev rules for Revolution boards + * [OP-1153] - Provide a mean to instrument SystemMod stack utilization + * [OP-1154] - Config Option to Automatically Increase Copter Throttle per 1/cos(bank_angle) + * [OP-1158] - Add flight plan consistency checks + * [OP-1160] - Some dev Env improvements, git hooks for messages, make prepare etc. + +** Task + * [OP-775] - Add ARM DSP library to OP codebase + * [OP-813] - Manage merge of translation work to French + * [OP-839] - Disable pyMyte dependency until really used + * [OP-901] - Update STM32 StdPeriphLib to current + * [OP-1087] - Update Qt used from Makefile to 5.1.1 for Windows and Mac + * [OP-1109] - Created share Qt5 QtQuick2 port branch + * [OP-1115] - Remove old artwork from the Artwork folder in Git + * [OP-1119] - Write GCS plugin to access and display on board logs through uavtalk and export .opl files from logged uavobjects + * [OP-1058] - UAVO:Implement a structured named accessors for multielement fields (Flight side) + +** Bug + * [OP-844] - Fix header comments in altitudehold.c + * [OP-845] - Fix reading serial number from USB device on mac platform + * [OP-846] - make qt_sdk_install fails + * [OP-865] - PWM output 6 does not work on RM + * [OP-887] - Provide some standard method of calibrating CPU speed and load measurement for boards + * [OP-924] - PPM output does not have failsafe + * [OP-934] - Incorrect timeout handling in rfm22b receiver + * [OP-971] - Add UI to set AccellTau with revo board + * [OP-1004] - UAVObjectBrowser, buttons don't work when scientific display is turned on + * [OP-1014] - Com port connections are not working on OPLink + * [OP-1018] - Zero point initialization in ETASv3 Airspeed sensor buggy + * [OP-1027] - Segfault in UAVObjectBrowser when "Request"ing a UAVObjectCategory + * [OP-1042] - Revo firmware version isn't read correctly through OPLink + * [OP-1046] - Waypoint upload incomplete, no visual confirmation of failed uploads in uavobjectbrowser and waypoint editor + * [OP-1048] - Attitude is not working with AccelTau > 0 + * [OP-1049] - CC3D attitude estimation failure after multiple settings changes and reboots + * [OP-1067] - Invalid value for "LinkState" + * [OP-1076] - CF Attitude filter in next randomly re-initializes on arming. + * [OP-1078] - GCS segfaults if you close it after playing a log file + * [OP-1080] - Unreliable detection of board through OPLink + * [OP-1095] - GCS crashing on macosx 10.9 upon connection of oplink mini + * [OP-1098] - CDC driver fails installation in Windows 8 or 8.1 + * [OP-1099] - Hidden icons in Configuration tab + * [OP-1101] - Tools.mk has a few tabs and they need to be converted to spaces + * [OP-1102] - OP GCS registers some file types is should not + * [OP-1103] - GCS can not be compiled on OSX 10.8 after update to Qt5.1.1 + * [OP-1108] - Minor bugs found while reading the code + * [OP-1114] - QGLWidget prohibits QListWidgetItem, set AA_DontCreateNativeWidgetSiblings as work around + * [OP-1118] - QComboBox in UAVObjectBrowser does not stay in focus on Mac OSX + * [OP-1121] - GCS will not exit if the Waypoint editor/PathPlanner dialog is open + * [OP-1123] - GCS assertion failure when loading a waypoint file + * [OP-1125] - UAVTalk - acking/nacking multi instance uavobjects is broken (when sending individual instances) + * [OP-1132] - LIBEAY32.dll missing from installer + * [OP-1139] - Add higher order correction to MS5611 driver for low and very low temperature compensation + * [OP-1142] - No yaw in Horizon mode + * [OP-1145] - OPLM to GCS link not reliable + * [OP-1148] - Futaba R7008SB S.Bus protocol not supported + * [OP-1151] - PFD display - inverted flight + * [OP-1152] - Check Stack usage for CopterControl & CC3D + * [OP-1155] - Fix OSX Packaging for GCS + * [OP-1157] - sin_lookup_deg() returns garbage for negative angles + * [OP-1166] - GCS misses yaw neutral setting on sync from initial connection + * [OP-1167] - New flight mode switch position UAVO to work better with SITL, HITL + * [OP-1168] - GCS Reload Board Data button doesn't work + * [OP-1169] - GCS UAVO object titles off by one + * [OP-1176] - Cruise Control checkboxes use wrong Default button + * [OP-1177] - AltHold - Need a setting to allow disabling of bank angle throttle compensation in AH + * [OP-1178] - After re-factoring of ConfigTaskWidget code the OPLink config page does not work reliably. + * [OP-1179] - About box not working in Linux64 build (but probably the same is for Linux32) + * [OP-1180] - GCS AltHold Tab - Reload button and update in real time + * [OP-1181] - on radio configuration the pitch slider has maxed out on its own three times randomly + * [OP-1182] - Telemetry monitor widget is too small on Mac + * [OP-1183] - UAVBrowser displays hex string as decimal + * [OP-1184] - Scope gadget - Stack monitor configurations need a cleanup + * [OP-1188] - Optimize Stabilization Module stack size usage + * [OP-1191] - Revo OPLink bug in GCS + * [OP-1192] - Even though Throttle is off there is motor movement in some situations. + * [OP-1211] - dT calculation in Stabilization and other modules unsafe + * [OP-1218] - PIOS_COM is not thread safe + * [OP-1228] - GCS Quits unexpectedly --- RELEASE-13.06.04 --- This maintenance release includes the following fixes missing in (previously not released to public) RELEASE-13.06.03. diff --git a/flight/modules/RadioComBridge/RadioComBridge.c b/flight/modules/RadioComBridge/RadioComBridge.c index 7c1416e81..2be3764cb 100644 --- a/flight/modules/RadioComBridge/RadioComBridge.c +++ b/flight/modules/RadioComBridge/RadioComBridge.c @@ -518,7 +518,7 @@ static void serialRxTask(__attribute__((unused)) void *parameters) int32_t ret = -2; uint8_t count = 5; while (count-- > 0 && ret < -1) { - PIOS_COM_SendBufferNonBlocking(PIOS_COM_RADIO, data->serialRxBuf, bytes_to_process); + ret = PIOS_COM_SendBufferNonBlocking(PIOS_COM_RADIO, data->serialRxBuf, bytes_to_process); } } } else { diff --git a/flight/modules/Telemetry/telemetry.c b/flight/modules/Telemetry/telemetry.c index ef1ab9ea4..b07bb85a5 100644 --- a/flight/modules/Telemetry/telemetry.c +++ b/flight/modules/Telemetry/telemetry.c @@ -45,7 +45,6 @@ #define TASK_PRIORITY_RX (tskIDLE_PRIORITY + 2) #define TASK_PRIORITY_TX (tskIDLE_PRIORITY + 2) #define TASK_PRIORITY_RADRX (tskIDLE_PRIORITY + 2) -#define TASK_PRIORITY_TXPRI (tskIDLE_PRIORITY + 2) #define REQ_TIMEOUT_MS 250 #define MAX_RETRIES 2 #define STATS_UPDATE_PERIOD_MS 4000 @@ -59,8 +58,6 @@ static xQueueHandle queue; #if defined(PIOS_TELEM_PRIORITY_QUEUE) static xQueueHandle priorityQueue; -static xTaskHandle telemetryTxPriTaskHandle; -static void telemetryTxPriTask(void *parameters); #else #define priorityQueue queue #endif @@ -119,11 +116,6 @@ int32_t TelemetryStart(void) PIOS_TASK_MONITOR_RegisterTask(TASKINFO_RUNNING_RADIORX, radioRxTaskHandle); #endif -#if defined(PIOS_TELEM_PRIORITY_QUEUE) - xTaskCreate(telemetryTxPriTask, (signed char *)"TelPriTx", STACK_SIZE_BYTES / 4, NULL, TASK_PRIORITY_TXPRI, &telemetryTxPriTaskHandle); - PIOS_TASK_MONITOR_RegisterTask(TASKINFO_RUNNING_TELEMETRYTXPRI, telemetryTxPriTaskHandle); -#endif - return 0; } @@ -276,7 +268,12 @@ static void updateObject(UAVObjHandle obj, int32_t eventType) eventMask |= EV_LOGGING_MANUAL; break; } - UAVObjConnectQueue(obj, priorityQueue, eventMask); + // note that all setting objects have implicitly IsPriority=true + if (UAVObjIsPriority(obj)) { + UAVObjConnectQueue(obj, priorityQueue, eventMask); + } else { + UAVObjConnectQueue(obj, queue, eventMask); + } } /** @@ -374,32 +371,24 @@ static void telemetryTxTask(__attribute__((unused)) void *parameters) // Loop forever while (1) { - // Wait for queue message - if (xQueueReceive(queue, &ev, portMAX_DELAY) == pdTRUE) { - // Process event - processObjEvent(&ev); - } - } -} - -/** - * Telemetry transmit task, high priority - */ + /** + * Tries to empty the high priority queue before handling any standard priority item + */ #if defined(PIOS_TELEM_PRIORITY_QUEUE) -static void telemetryTxPriTask(__attribute__((unused)) void *parameters) -{ - UAVObjEvent ev; - - // Loop forever - while (1) { + // Loop forever + while (xQueueReceive(priorityQueue, &ev, 1) == pdTRUE) { + // Process event + processObjEvent(&ev); + } +#endif // Wait for queue message - if (xQueueReceive(priorityQueue, &ev, portMAX_DELAY) == pdTRUE) { + if (xQueueReceive(queue, &ev, 0) == pdTRUE) { // Process event processObjEvent(&ev); } } } -#endif + /** * Telemetry receive task. Processes queue events and periodic updates. @@ -488,9 +477,11 @@ static int32_t setUpdatePeriod(UAVObjHandle obj, int32_t updatePeriodMs) ev.instId = UAVOBJ_ALL_INSTANCES; ev.event = EV_UPDATED_PERIODIC; - ret = EventPeriodicQueueUpdate(&ev, queue, updatePeriodMs); + xQueueHandle targetQueue = UAVObjIsPriority(obj) ? priorityQueue : queue; + + ret = EventPeriodicQueueUpdate(&ev, targetQueue, updatePeriodMs); if (ret == -1) { - ret = EventPeriodicQueueCreate(&ev, queue, updatePeriodMs); + ret = EventPeriodicQueueCreate(&ev, targetQueue, updatePeriodMs); } return ret; } @@ -512,9 +503,11 @@ static int32_t setLoggingPeriod(UAVObjHandle obj, int32_t updatePeriodMs) ev.instId = UAVOBJ_ALL_INSTANCES; ev.event = EV_LOGGING_PERIODIC; - ret = EventPeriodicQueueUpdate(&ev, queue, updatePeriodMs); + xQueueHandle targetQueue = UAVObjIsPriority(obj) ? priorityQueue : queue; + + ret = EventPeriodicQueueUpdate(&ev, targetQueue, updatePeriodMs); if (ret == -1) { - ret = EventPeriodicQueueCreate(&ev, queue, updatePeriodMs); + ret = EventPeriodicQueueCreate(&ev, targetQueue, updatePeriodMs); } return ret; } diff --git a/flight/pios/common/pios_com.c b/flight/pios/common/pios_com.c index e5adc5b7c..e80ad9a91 100644 --- a/flight/pios/common/pios_com.c +++ b/flight/pios/common/pios_com.c @@ -346,6 +346,7 @@ int32_t PIOS_COM_SendBufferNonBlocking(uint32_t com_id, const uint8_t *buffer, u * \param[in] len buffer length * \return -1 if port not available * \return -2 if mutex can't be taken; + * \return -3 if data cannot be sent in the max allotted time of 5000msec * \return number of bytes transmitted on success */ int32_t PIOS_COM_SendBuffer(uint32_t com_id, const uint8_t *buffer, uint16_t len) @@ -358,7 +359,7 @@ int32_t PIOS_COM_SendBuffer(uint32_t com_id, const uint8_t *buffer, uint16_t len } PIOS_Assert(com_dev->has_tx); #if defined(PIOS_INCLUDE_FREERTOS) - if (xSemaphoreTake(com_dev->sendbuffer_sem, 0) != pdTRUE) { + if (xSemaphoreTake(com_dev->sendbuffer_sem, 5) != pdTRUE) { return -2; } #endif /* PIOS_INCLUDE_FREERTOS */ diff --git a/flight/uavobjects/inc/uavobject.h.template b/flight/uavobjects/inc/uavobject.h.template index 599ba4fb8..a17a657a6 100644 --- a/flight/uavobjects/inc/uavobject.h.template +++ b/flight/uavobjects/inc/uavobject.h.template @@ -44,6 +44,7 @@ #define $(NAMEUC)_OBJID $(OBJIDHEX) #define $(NAMEUC)_ISSINGLEINST $(ISSINGLEINST) #define $(NAMEUC)_ISSETTINGS $(ISSETTINGS) +#define $(NAMEUC)_ISPRIORITY $(ISPRIORITY) #define $(NAMEUC)_NUMBYTES sizeof($(NAME)Data) /* Generic interface functions */ diff --git a/flight/uavobjects/inc/uavobjectmanager.h b/flight/uavobjects/inc/uavobjectmanager.h index c3813ef74..c50c14d76 100644 --- a/flight/uavobjects/inc/uavobjectmanager.h +++ b/flight/uavobjects/inc/uavobjectmanager.h @@ -147,8 +147,7 @@ typedef struct { int32_t UAVObjInitialize(); void UAVObjGetStats(UAVObjStats *statsOut); void UAVObjClearStats(); -UAVObjHandle UAVObjRegister(uint32_t id, - int32_t isSingleInstance, int32_t isSettings, uint32_t numBytes, UAVObjInitializeCallback initCb); +UAVObjHandle UAVObjRegister(uint32_t id, bool isSingleInstance, bool isSettings, bool isPriority, uint32_t num_bytes, UAVObjInitializeCallback initCb); UAVObjHandle UAVObjGetByID(uint32_t id); uint32_t UAVObjGetID(UAVObjHandle obj); uint32_t UAVObjGetNumBytes(UAVObjHandle obj); @@ -158,6 +157,7 @@ uint16_t UAVObjCreateInstance(UAVObjHandle obj_handle, UAVObjInitializeCallback bool UAVObjIsSingleInstance(UAVObjHandle obj); bool UAVObjIsMetaobject(UAVObjHandle obj); bool UAVObjIsSettings(UAVObjHandle obj); +bool UAVObjIsPriority(UAVObjHandle obj); int32_t UAVObjUnpack(UAVObjHandle obj_handle, uint16_t instId, const uint8_t *dataIn); int32_t UAVObjPack(UAVObjHandle obj_handle, uint16_t instId, uint8_t *dataOut); uint8_t UAVObjUpdateCRC(UAVObjHandle obj_handle, uint16_t instId, uint8_t crc); diff --git a/flight/uavobjects/uavobject.c.template b/flight/uavobjects/uavobject.c.template index b9f45b5ae..395279bd1 100644 --- a/flight/uavobjects/uavobject.c.template +++ b/flight/uavobjects/uavobject.c.template @@ -65,7 +65,7 @@ int32_t $(NAME)Initialize(void) // Register object with the object manager handle = UAVObjRegister($(NAMEUC)_OBJID, - $(NAMEUC)_ISSINGLEINST, $(NAMEUC)_ISSETTINGS, $(NAMEUC)_NUMBYTES, &$(NAME)SetDefaults); + $(NAMEUC)_ISSINGLEINST, $(NAMEUC)_ISSETTINGS, $(NAMEUC)_ISPRIORITY, $(NAMEUC)_NUMBYTES, &$(NAME)SetDefaults); // Done return handle ? 0 : -1; diff --git a/flight/uavobjects/uavobjectmanager.c b/flight/uavobjects/uavobjectmanager.c index f5077c982..02441a44e 100644 --- a/flight/uavobjects/uavobjectmanager.c +++ b/flight/uavobjects/uavobjectmanager.c @@ -108,6 +108,7 @@ struct UAVOBase { bool isMeta : 1; bool isSingle : 1; bool isSettings : 1; + bool isPriority : 1; } flags; } __attribute__((packed)); @@ -339,7 +340,7 @@ static struct UAVOData *UAVObjAllocMulti(uint32_t num_bytes) * \return */ UAVObjHandle UAVObjRegister(uint32_t id, - int32_t isSingleInstance, int32_t isSettings, + bool isSingleInstance, bool isSettings, bool isPriority, uint32_t num_bytes, UAVObjInitializeCallback initCb) { @@ -368,8 +369,11 @@ UAVObjHandle UAVObjRegister(uint32_t id, uavo_data->instance_size = num_bytes; if (isSettings) { uavo_data->base.flags.isSettings = true; + // settings defaults to being sent with priority + uavo_data->base.flags.isPriority = true; + } else { + uavo_data->base.flags.isPriority = isPriority; } - /* Initialize the embedded meta UAVO */ UAVObjInitMetaData(&uavo_data->metaObj); @@ -605,6 +609,22 @@ bool UAVObjIsSettings(UAVObjHandle obj_handle) return uavo_base->flags.isSettings; } +/** + * Is this a prioritized object? + * \param[in] obj The object handle + * \return True (1) if this is a prioritized object + */ +bool UAVObjIsPriority(UAVObjHandle obj_handle) +{ + PIOS_Assert(obj_handle); + + /* Recover the common object header */ + struct UAVOBase *uavo_base = (struct UAVOBase *)obj_handle; + + return uavo_base->flags.isPriority; +} + + /** * Unpack an object from a byte array * \param[in] obj The object handle diff --git a/ground/openpilotgcs/share/openpilotgcs/default_configurations/Developer.xml b/ground/openpilotgcs/share/openpilotgcs/default_configurations/Developer.xml index 430eeac3f..da68bae35 100644 --- a/ground/openpilotgcs/share/openpilotgcs/default_configurations/Developer.xml +++ b/ground/openpilotgcs/share/openpilotgcs/default_configurations/Developer.xml @@ -2252,49 +2252,29 @@ 1000 240 - 4294945280 + 4294901760 None StackRemaining-System TaskInfo - 1.02360527502876e-306 + 0 1 - 6.92921153577169e-310 + 0 0 4294945280 None - StackRemaining-Actuator + StackRemaining-CallbackScheduler0 TaskInfo 0 1 0 0 - - 4294945280 - None - StackRemaining-Guidance - TaskInfo - 6.92921442421083e-310 - 1 - -1.29073709209104e-231 - 0 - - - 4294945280 - None - StackRemaining-Watchdog - TaskInfo - 6.92920724098472e-310 - 1 - 3.91299991506267e-321 - 0 - - 4294945280 + 4278190335 None - StackRemaining-TelemetryTx + StackRemaining-CallbackScheduler1 TaskInfo 0 1 @@ -2302,43 +2282,43 @@ 0 - 4294945280 - None - StackRemaining-TelemetryTxPri - TaskInfo - 1.72723371101889e-77 - 1 - 1.72723371101889e-77 - 0 - - - 4294945280 - None - StackRemaining-TelemetryRx - TaskInfo - 6.92921438535612e-310 - 1 - 1.72723371101889e-77 - 0 - - - 4294945280 - None - StackRemaining-GPS - TaskInfo - 1.72723371101889e-77 - 1 - 1.03979250816176e-312 - 0 - - - 4294945280 + 4294967040 None StackRemaining-ManualControl TaskInfo - 6.92921438705062e-310 + 0 1 - 6.92921152810932e-310 + 0 + 0 + + + 4278255615 + None + StackRemaining-Stabilization + TaskInfo + 0 + 1 + 0 + 0 + + + 4294923775 + None + StackRemaining-Actuator + TaskInfo + 0 + 1 + 0 + 0 + + + 4289331327 + None + StackRemaining-Sensors + TaskInfo + 0 + 1 + 0 0 @@ -2346,32 +2326,42 @@ None StackRemaining-Altitude TaskInfo - 7.4109846876187e-323 + 0 1 - 1.72723371101889e-77 + 0 0 - 4294945280 + 4283760767 None - StackRemaining-AHRSComms + StackRemaining-TelemetryTx TaskInfo - 5.43472210425371e-323 + 0 1 - 1.72723371101889e-77 + 0 0 - 4294945280 + 4294901760 None - StackRemaining-Stabilization + StackRemaining-TelemetryRx TaskInfo - 1.72723371101889e-77 + 0 1 - 1.72723371101889e-77 + 0 0 - 12 + + 4283782527 + None + StackRemaining-RadioRx + TaskInfo + 0 + 1 + 0 + 0 + + 11 1 1000 diff --git a/ground/openpilotgcs/share/openpilotgcs/default_configurations/OpenPilotGCS.xml b/ground/openpilotgcs/share/openpilotgcs/default_configurations/OpenPilotGCS.xml index decf3135b..a070aafb2 100644 --- a/ground/openpilotgcs/share/openpilotgcs/default_configurations/OpenPilotGCS.xml +++ b/ground/openpilotgcs/share/openpilotgcs/default_configurations/OpenPilotGCS.xml @@ -2375,16 +2375,6 @@ 0 - 4289331327 - None - StackRemaining-TelemetryTxPri - TaskInfo - 0 - 1 - 0 - 0 - - 4294901760 None StackRemaining-TelemetryRx @@ -2393,8 +2383,8 @@ 1 0 0 - - + + 4283782527 None StackRemaining-RadioRx @@ -2403,7 +2393,7 @@ 1 0 0 - + 12 1 1000 diff --git a/ground/openpilotgcs/share/openpilotgcs/default_configurations/OpenPilotGCS_wide.xml b/ground/openpilotgcs/share/openpilotgcs/default_configurations/OpenPilotGCS_wide.xml index c66b7188a..065fd0813 100644 --- a/ground/openpilotgcs/share/openpilotgcs/default_configurations/OpenPilotGCS_wide.xml +++ b/ground/openpilotgcs/share/openpilotgcs/default_configurations/OpenPilotGCS_wide.xml @@ -2260,7 +2260,7 @@ 1000 240 - 4294945280 + 4294901760 None StackRemaining-System TaskInfo @@ -2272,37 +2272,17 @@ 4294945280 None - StackRemaining-Actuator + StackRemaining-CallbackScheduler0 TaskInfo 0 1 0 0 - - 4294945280 - None - StackRemaining-Guidance - TaskInfo - 0 - 1 - 0 - 0 - - - 4294945280 - None - StackRemaining-Watchdog - TaskInfo - 0 - 1 - 0 - 0 - - 4294945280 + 4278190335 None - StackRemaining-TelemetryTx + StackRemaining-CallbackScheduler1 TaskInfo 0 1 @@ -2310,9 +2290,9 @@ 0 - 4294945280 + 4294967040 None - StackRemaining-TelemetryTxPri + StackRemaining-ManualControl TaskInfo 0 1 @@ -2320,9 +2300,9 @@ 0 - 4294945280 + 4278255615 None - StackRemaining-TelemetryRx + StackRemaining-Stabilization TaskInfo 0 1 @@ -2330,9 +2310,9 @@ 0 - 4294945280 + 4294923775 None - StackRemaining-GPS + StackRemaining-Actuator TaskInfo 0 1 @@ -2340,9 +2320,9 @@ 0 - 4294945280 + 4289331327 None - StackRemaining-ManualControl + StackRemaining-Sensors TaskInfo 0 1 @@ -2360,9 +2340,9 @@ 0 - 4294945280 + 4283760767 None - StackRemaining-AHRSComms + StackRemaining-TelemetryTx TaskInfo 0 1 @@ -2370,16 +2350,26 @@ 0 - 4294945280 + 4294901760 None - StackRemaining-Stabilization + StackRemaining-TelemetryRx TaskInfo 0 1 0 0 - 12 + + 4283782527 + None + StackRemaining-RadioRx + TaskInfo + 0 + 1 + 0 + 0 + + 11 1 1000 diff --git a/ground/openpilotgcs/src/app/Info.plist b/ground/openpilotgcs/src/app/Info.plist index 297c81b5c..fd048113f 100644 --- a/ground/openpilotgcs/src/app/Info.plist +++ b/ground/openpilotgcs/src/app/Info.plist @@ -2,175 +2,6 @@ - CFBundleDocumentTypes - - - CFBundleTypeRole - Editor - CFBundleTypeIconFile - profile.icns - CFBundleTypeExtensions - - pro - - CFBundleTypeName - Qt Project File - LSHandlerRank - Default - - - CFBundleTypeRole - Editor - CFBundleTypeIconFile - prifile.icns - CFBundleTypeExtensions - - pri - - CFBundleTypeName - Qt Project Include File - LSHandlerRank - Default - - - CFBundleTypeRole - Editor - CFBundleTypeExtensions - - qrc - - CFBundleTypeName - Qt Resource File - LSHandlerRank - Default - - - CFBundleTypeRole - Editor - CFBundleTypeExtensions - - ui - - CFBundleTypeName - Qt UI File - - - CFBundleTypeExtensions - - h - hpp - - CFBundleTypeName - Header File - CFBundleTypeOSTypes - - TEXT - utxt - - CFBundleTypeRole - Editor - - - CFBundleTypeExtensions - - cc - CC - cp - CP - cpp - CPP - cxx - CXX - c++ - C++ - - CFBundleTypeName - C++ Source File - CFBundleTypeOSTypes - - TEXT - utxt - - CFBundleTypeRole - Editor - - - CFBundleTypeExtensions - - mm - MM - - CFBundleTypeName - Objective-C++ Source File - CFBundleTypeOSTypes - - TEXT - utxt - - CFBundleTypeRole - Editor - - - CFBundleTypeExtensions - - m - - CFBundleTypeName - Objective-C Source File - CFBundleTypeOSTypes - - TEXT - utxt - - CFBundleTypeRole - Editor - - - CFBundleTypeExtensions - - c - C - - CFBundleTypeName - C Source File - CFBundleTypeOSTypes - - TEXT - utxt - - CFBundleTypeRole - Editor - - - CFBundleTypeExtensions - - txt - text - - CFBundleTypeName - Text File - CFBundleTypeOSTypes - - TEXT - - CFBundleTypeRole - Editor - - - CFBundleTypeExtensions - - * - - CFBundleTypeName - NSStringPboardType - CFBundleTypeOSTypes - - **** - - CFBundleTypeRole - Editor - - CFBundleGetInfoString OpenPilot GCS; Copyright OpenPilot CFBundleIconFile diff --git a/ground/openpilotgcs/src/plugins/config/configinputwidget.cpp b/ground/openpilotgcs/src/plugins/config/configinputwidget.cpp index ecd7ec93f..acb1ea601 100644 --- a/ground/openpilotgcs/src/plugins/config/configinputwidget.cpp +++ b/ground/openpilotgcs/src/plugins/config/configinputwidget.cpp @@ -92,6 +92,7 @@ ConfigInputWidget::ConfigInputWidget(QWidget *parent) : addWidgetBinding("ManualControlSettings", "ChannelGroups", inpForm->ui->channelGroup, index); addWidgetBinding("ManualControlSettings", "ChannelNeutral", inpForm->ui->channelNeutral, index); addWidgetBinding("ManualControlSettings", "ChannelNeutral", inpForm->ui->neutralValue, index); + addWidgetBinding("ManualControlSettings", "ChannelMax", inpForm->ui->channelMax, index); addWidgetBinding("ManualControlSettings", "ChannelMin", inpForm->ui->channelMin, index); addWidgetBinding("ManualControlSettings", "ChannelMax", inpForm->ui->channelMax, index); diff --git a/ground/openpilotgcs/src/plugins/telemetry/monitorgadgetfactory.cpp b/ground/openpilotgcs/src/plugins/telemetry/monitorgadgetfactory.cpp index bdd675458..62526cd1d 100644 --- a/ground/openpilotgcs/src/plugins/telemetry/monitorgadgetfactory.cpp +++ b/ground/openpilotgcs/src/plugins/telemetry/monitorgadgetfactory.cpp @@ -81,5 +81,5 @@ IUAVGadgetConfiguration *MonitorGadgetFactory::createConfiguration(QSettings *qS IOptionsPage *MonitorGadgetFactory::createOptionsPage(IUAVGadgetConfiguration *config) { - return new MonitorGadgetOptionsPage(qobject_cast(config)); + return 0; // new MonitorGadgetOptionsPage(qobject_cast(config)); } diff --git a/ground/uavobjgenerator/generators/generator_common.cpp b/ground/uavobjgenerator/generators/generator_common.cpp index 3a96ca982..83ce1dd13 100644 --- a/ground/uavobjgenerator/generators/generator_common.cpp +++ b/ground/uavobjgenerator/generators/generator_common.cpp @@ -72,6 +72,9 @@ void replaceCommonTags(QString & out, ObjectInfo *info) // Replace $(ISSETTINGS) tag out.replace(QString("$(ISSETTINGS)"), boolTo01String(info->isSettings)); out.replace(QString("$(ISSETTINGSTF)"), boolToTRUEFALSEString(info->isSettings)); + // Replace $(ISPRIORITY) tag + out.replace(QString("$(ISPRIORITY)"), boolTo01String(info->isPriority)); + out.replace(QString("$(ISPRIORITYTF)"), boolToTRUEFALSEString(info->isPriority)); // Replace $(GCSACCESS) tag value = accessModeStr[info->gcsAccess]; out.replace(QString("$(GCSACCESS)"), value); diff --git a/ground/uavobjgenerator/uavobjectparser.cpp b/ground/uavobjgenerator/uavobjectparser.cpp index d0cfb0449..a8534088c 100644 --- a/ground/uavobjgenerator/uavobjectparser.cpp +++ b/ground/uavobjgenerator/uavobjectparser.cpp @@ -623,9 +623,19 @@ QString UAVObjectParser::processObjectAttributes(QDomNode & node, ObjectInfo *in } else if (attr.nodeValue().compare(QString("false")) == 0) { info->isSettings = false; } else { - return QString("Object:settings attribute value is invalid"); + return QString("Object:settings attribute value is invalid (true|false)"); } + // Get priority attribute + attr = attributes.namedItem("priority"); + info->isPriority = false; + if (!attr.isNull()) { + if (attr.nodeValue().compare(QString("true")) == 0) { + info->isPriority = true; + } else if (attr.nodeValue().compare(QString("false")) != 0) { + return QString("Object:priority attribute value is invalid (true|false)"); + } + } // Settings objects can only have a single instance if (info->isSettings && !info->isSingleInst) { diff --git a/ground/uavobjgenerator/uavobjectparser.h b/ground/uavobjgenerator/uavobjectparser.h index d6ae4b60c..9028af325 100644 --- a/ground/uavobjgenerator/uavobjectparser.h +++ b/ground/uavobjgenerator/uavobjectparser.h @@ -84,6 +84,7 @@ typedef struct { quint32 id; bool isSingleInst; bool isSettings; + bool isPriority; AccessMode gcsAccess; AccessMode flightAccess; bool flightTelemetryAcked; diff --git a/shared/uavobjectdefinition/firmwareiapobj.xml b/shared/uavobjectdefinition/firmwareiapobj.xml index f83c8aa67..c9b82f98e 100644 --- a/shared/uavobjectdefinition/firmwareiapobj.xml +++ b/shared/uavobjectdefinition/firmwareiapobj.xml @@ -1,5 +1,5 @@ - + Queries board for SN, model, revision, and sends reset command diff --git a/shared/uavobjectdefinition/flighttelemetrystats.xml b/shared/uavobjectdefinition/flighttelemetrystats.xml index aa22bb097..09ae7515c 100644 --- a/shared/uavobjectdefinition/flighttelemetrystats.xml +++ b/shared/uavobjectdefinition/flighttelemetrystats.xml @@ -1,5 +1,5 @@ - + Maintains the telemetry statistics from the OpenPilot flight computer. diff --git a/shared/uavobjectdefinition/gcstelemetrystats.xml b/shared/uavobjectdefinition/gcstelemetrystats.xml index 540861c11..087a6de6f 100644 --- a/shared/uavobjectdefinition/gcstelemetrystats.xml +++ b/shared/uavobjectdefinition/gcstelemetrystats.xml @@ -1,5 +1,5 @@ - + The telemetry statistics from the ground computer diff --git a/shared/uavobjectdefinition/objectpersistence.xml b/shared/uavobjectdefinition/objectpersistence.xml index 9b29721df..4f0c146a0 100644 --- a/shared/uavobjectdefinition/objectpersistence.xml +++ b/shared/uavobjectdefinition/objectpersistence.xml @@ -1,6 +1,6 @@ - - Someone who knows please enter this + + Used by gcs to handle object persistence to flash memory diff --git a/shared/uavobjectdefinition/oplinkstatus.xml b/shared/uavobjectdefinition/oplinkstatus.xml index bcceb3751..07fda4375 100644 --- a/shared/uavobjectdefinition/oplinkstatus.xml +++ b/shared/uavobjectdefinition/oplinkstatus.xml @@ -1,5 +1,5 @@ - + OPLink device status. diff --git a/shared/uavobjectdefinition/systemalarms.xml b/shared/uavobjectdefinition/systemalarms.xml index f3763ad53..1dae9b7d5 100644 --- a/shared/uavobjectdefinition/systemalarms.xml +++ b/shared/uavobjectdefinition/systemalarms.xml @@ -1,5 +1,5 @@ - + Alarms from OpenPilot to indicate failure conditions or warnings. Set by various modules. Some modules may have a module defined Status and Substatus fields that details its condition. diff --git a/shared/uavobjectdefinition/taskinfo.xml b/shared/uavobjectdefinition/taskinfo.xml index 981054a2c..b270c22f6 100644 --- a/shared/uavobjectdefinition/taskinfo.xml +++ b/shared/uavobjectdefinition/taskinfo.xml @@ -24,7 +24,6 @@ FlightPlan TelemetryTx - TelemetryTxPri TelemetryRx RadioRx @@ -111,8 +110,8 @@ - - + +