1
0
mirror of https://bitbucket.org/librepilot/librepilot.git synced 2025-02-19 09:54:15 +01:00

Start initializing objects in the modules that consume them. Shouldn't affect

OP yet but not tested.
This commit is contained in:
James Cotton 2011-06-18 11:59:02 -05:00
parent 9720a8444f
commit 5044ea36de
15 changed files with 79 additions and 24 deletions

View File

@ -65,7 +65,9 @@ endif
FLASH_TOOL = OPENOCD FLASH_TOOL = OPENOCD
# List of modules to include # List of modules to include
MODULES = Telemetry Attitude Stabilization Actuator ManualControl FirmwareIAP MODULES = Attitude Stabilization Actuator ManualControl FirmwareIAP
# Telemetry must be last to grab the optional modules
MODULES += Telemetry
# Paths # Paths
OPSYSTEM = ./System OPSYSTEM = ./System

View File

@ -694,7 +694,6 @@ void PIOS_Board_Init(void) {
/* Initialize UAVObject libraries */ /* Initialize UAVObject libraries */
EventDispatcherInitialize(); EventDispatcherInitialize();
UAVObjInitialize(); UAVObjInitialize();
UAVObjectsInitializeAll();
/* Initialize the alarms library */ /* Initialize the alarms library */
AlarmsInitialize(); AlarmsInitialize();

View File

@ -72,6 +72,10 @@ static void ahrscommsTask(void *parameters);
int32_t AHRSCommsInitialize(void) int32_t AHRSCommsInitialize(void)
{ {
// Start main task // Start main task
AHRSStatusInitialize();
AHRSCalibrationInitialize();
AttitudeRawInitialize();
xTaskCreate(ahrscommsTask, (signed char *)"AHRSComms", STACK_SIZE, NULL, TASK_PRIORITY, &taskHandle); xTaskCreate(ahrscommsTask, (signed char *)"AHRSComms", STACK_SIZE, NULL, TASK_PRIORITY, &taskHandle);
TaskMonitorAdd(TASKINFO_RUNNING_AHRSCOMMS, taskHandle); TaskMonitorAdd(TASKINFO_RUNNING_AHRSCOMMS, taskHandle);
PIOS_WDG_RegisterFlag(PIOS_WDG_AHRS); PIOS_WDG_RegisterFlag(PIOS_WDG_AHRS);

View File

@ -95,6 +95,13 @@ int32_t ActuatorInitialize()
// Create object queue // Create object queue
queue = xQueueCreate(MAX_QUEUE_SIZE, sizeof(UAVObjEvent)); queue = xQueueCreate(MAX_QUEUE_SIZE, sizeof(UAVObjEvent));
ActuatorSettingsInitialize();
ActuatorDesiredInitialize();
MixerSettingsInitialize();
#if defined(DIAGNOSTICS)
MixerStatusInitialize();
#endif
// Listen for ExampleObject1 updates // Listen for ExampleObject1 updates
ActuatorDesiredConnectQueue(queue); ActuatorDesiredConnectQueue(queue);

View File

@ -68,6 +68,12 @@ static void altitudeTask(void *parameters);
*/ */
int32_t AltitudeInitialize() int32_t AltitudeInitialize()
{ {
BaroAltitudeInitialize();
#if defined(PIOS_INCLUDE_HCSR04)
SonarAltitudeInitialze();
#endif
// Start main task // Start main task
xTaskCreate(altitudeTask, (signed char *)"Altitude", STACK_SIZE_BYTES/4, NULL, TASK_PRIORITY, &taskHandle); xTaskCreate(altitudeTask, (signed char *)"Altitude", STACK_SIZE_BYTES/4, NULL, TASK_PRIORITY, &taskHandle);
TaskMonitorAdd(TASKINFO_RUNNING_ALTITUDE, taskHandle); TaskMonitorAdd(TASKINFO_RUNNING_ALTITUDE, taskHandle);

View File

@ -96,6 +96,10 @@ static bool zero_during_arming = false;
*/ */
int32_t AttitudeInitialize(void) int32_t AttitudeInitialize(void)
{ {
AttitudeActualInitialize();
AttitudeRawInitialize();
AttitudeSettingsInitialize();
// Initialize quaternion // Initialize quaternion
AttitudeActualData attitude; AttitudeActualData attitude;
AttitudeActualGet(&attitude); AttitudeActualGet(&attitude);

View File

@ -77,6 +77,9 @@ static void onTimer(UAVObjEvent* ev);
*/ */
int32_t BatteryInitialize(void) int32_t BatteryInitialize(void)
{ {
BatteryStateInitialze();
BatterySettingsInitialize();
static UAVObjEvent ev; static UAVObjEvent ev;
memset(&ev,0,sizeof(UAVObjEvent)); memset(&ev,0,sizeof(UAVObjEvent));

View File

@ -91,6 +91,9 @@ static void resetTask(UAVObjEvent *);
int32_t FirmwareIAPInitialize() int32_t FirmwareIAPInitialize()
{ {
FirmwareIAPObjInitialize();
const struct pios_board_info * bdinfo = &pios_board_info_blob; const struct pios_board_info * bdinfo = &pios_board_info_blob;
data.BoardType= bdinfo->board_type; data.BoardType= bdinfo->board_type;

View File

@ -111,6 +111,10 @@ static uint32_t numParsingErrors;
int32_t GPSInitialize(void) int32_t GPSInitialize(void)
{ {
GPSPositionInitialize();
GPSTimeInitialize();
HomeLocationInitialize();
signed portBASE_TYPE xReturn; signed portBASE_TYPE xReturn;
// TODO: Get gps settings object // TODO: Get gps settings object

View File

@ -149,6 +149,13 @@ int32_t ManualControlInitialize()
/* Check the assumptions about uavobject enum's are correct */ /* Check the assumptions about uavobject enum's are correct */
if(!assumptions) if(!assumptions)
return -1; return -1;
AccessoryDesiredInitialize();
ManualControlSettingsInitialize();
ManualControlCommandInitialize();
FlightStatusInitialize();
StabilizationDesiredInitialize();
// Start main task // Start main task
xTaskCreate(manualControlTask, (signed char *)"ManualControl", STACK_SIZE_BYTES/4, NULL, TASK_PRIORITY, &taskHandle); xTaskCreate(manualControlTask, (signed char *)"ManualControl", STACK_SIZE_BYTES/4, NULL, TASK_PRIORITY, &taskHandle);
TaskMonitorAdd(TASKINFO_RUNNING_MANUALCONTROL, taskHandle); TaskMonitorAdd(TASKINFO_RUNNING_MANUALCONTROL, taskHandle);

View File

@ -40,8 +40,6 @@
#include "attitudeactual.h" #include "attitudeactual.h"
#include "attituderaw.h" #include "attituderaw.h"
#include "flightstatus.h" #include "flightstatus.h"
#include "systemsettings.h"
#include "ahrssettings.h"
#include "manualcontrol.h" // Just to get a macro #include "manualcontrol.h" // Just to get a macro
#include "CoordinateConversions.h" #include "CoordinateConversions.h"
@ -92,6 +90,11 @@ static void SettingsUpdatedCb(UAVObjEvent * ev);
int32_t StabilizationInitialize() int32_t StabilizationInitialize()
{ {
// Initialize variables // Initialize variables
StabilizationSettingsInitialize();
ActuatorDesiredInitialize();
#if defined(DIAGNOSTICS)
RateDesiredInitialize();
#endif
// Create object queue // Create object queue
queue = xQueueCreate(MAX_QUEUE_SIZE, sizeof(UAVObjEvent)); queue = xQueueCreate(MAX_QUEUE_SIZE, sizeof(UAVObjEvent));
@ -125,7 +128,6 @@ static void stabilizationTask(void* parameters)
RateDesiredData rateDesired; RateDesiredData rateDesired;
AttitudeActualData attitudeActual; AttitudeActualData attitudeActual;
AttitudeRawData attitudeRaw; AttitudeRawData attitudeRaw;
SystemSettingsData systemSettings;
FlightStatusData flightStatus; FlightStatusData flightStatus;
SettingsUpdatedCb((UAVObjEvent *) NULL); SettingsUpdatedCb((UAVObjEvent *) NULL);
@ -153,7 +155,6 @@ static void stabilizationTask(void* parameters)
StabilizationDesiredGet(&stabDesired); StabilizationDesiredGet(&stabDesired);
AttitudeActualGet(&attitudeActual); AttitudeActualGet(&attitudeActual);
AttitudeRawGet(&attitudeRaw); AttitudeRawGet(&attitudeRaw);
SystemSettingsGet(&systemSettings);
#if defined(DIAGNOSTICS) #if defined(DIAGNOSTICS)
RateDesiredGet(&rateDesired); RateDesiredGet(&rateDesired);

View File

@ -43,7 +43,9 @@
#include "objectpersistence.h" #include "objectpersistence.h"
#include "flightstatus.h" #include "flightstatus.h"
#include "systemstats.h" #include "systemstats.h"
#include "systemsettings.h"
#include "i2cstats.h" #include "i2cstats.h"
#include "taskinfo.h"
#include "watchdogstatus.h" #include "watchdogstatus.h"
#include "taskmonitor.h" #include "taskmonitor.h"
#include "pios_config.h" #include "pios_config.h"
@ -78,11 +80,12 @@ static int32_t stackOverflow;
// Private functions // Private functions
static void objectUpdatedCb(UAVObjEvent * ev); static void objectUpdatedCb(UAVObjEvent * ev);
static void updateStats(); static void updateStats();
static void updateI2Cstats();
static void updateWDGstats();
static void updateSystemAlarms(); static void updateSystemAlarms();
static void systemTask(void *parameters); static void systemTask(void *parameters);
#if defined(DIAGNOSTICS)
static void updateI2Cstats();
static void updateWDGstats();
#endif
/** /**
* Initialise the module, called on startup. * Initialise the module, called on startup.
* \returns 0 on success or -1 if initialisation failed * \returns 0 on success or -1 if initialisation failed
@ -106,6 +109,16 @@ static void systemTask(void *parameters)
// System initialization // System initialization
OpenPilotInit(); OpenPilotInit();
// Must registers objects here for system thread because ObjectManager started in OpenPilotInit
SystemSettingsInitialize();
SystemStatsInitialize();
ObjectPersistenceInitialize();
#if defined(DIAGNOSTICS)
TaskInfoInitialize();
I2CStatsInitialize();
WatchdogStatusInitialize();
#endif
// Register task // Register task
TaskMonitorAdd(TASKINFO_RUNNING_SYSTEM, systemTaskHandle); TaskMonitorAdd(TASKINFO_RUNNING_SYSTEM, systemTaskHandle);
@ -124,9 +137,10 @@ static void systemTask(void *parameters)
// Update the system alarms // Update the system alarms
updateSystemAlarms(); updateSystemAlarms();
#if defined(DIAGNOSTICS)
updateI2Cstats(); updateI2Cstats();
updateWDGstats(); updateWDGstats();
#endif
// Update the task status object // Update the task status object
TaskMonitorUpdateAll(); TaskMonitorUpdateAll();
@ -228,9 +242,7 @@ static void objectUpdatedCb(UAVObjEvent * ev)
/** /**
* Called periodically to update the I2C statistics * Called periodically to update the I2C statistics
*/ */
#if defined(ARCH_POSIX) || defined(ARCH_WIN32) #if defined(DIAGNOSTICS)
static void updateI2Cstats() {} //Posix and win32 don't have I2C
#else
static void updateI2Cstats() static void updateI2Cstats()
{ {
#if defined(PIOS_INCLUDE_I2C) #if defined(PIOS_INCLUDE_I2C)
@ -250,7 +262,6 @@ static void updateI2Cstats()
I2CStatsSet(&i2cStats); I2CStatsSet(&i2cStats);
#endif #endif
} }
#endif
static void updateWDGstats() static void updateWDGstats()
{ {
@ -259,6 +270,8 @@ static void updateWDGstats()
watchdogStatus.ActiveFlags = PIOS_WDG_GetActiveFlags(); watchdogStatus.ActiveFlags = PIOS_WDG_GetActiveFlags();
WatchdogStatusSet(&watchdogStatus); WatchdogStatusSet(&watchdogStatus);
} }
#endif
/** /**
* Called periodically to update the system stats * Called periodically to update the system stats

View File

@ -89,6 +89,10 @@ int32_t TelemetryInitialize(void)
{ {
UAVObjEvent ev; UAVObjEvent ev;
FlightTelemetryStatsInitialize();
GCSTelemetryStatsInitialize();
TelemetrySettingsInitialize();
// Initialize vars // Initialize vars
timeOfLastObjectUpdate = 0; timeOfLastObjectUpdate = 0;

View File

@ -45,10 +45,8 @@ static int32_t hasSeverity(SystemAlarmsAlarmOptions severity);
*/ */
int32_t AlarmsInitialize(void) int32_t AlarmsInitialize(void)
{ {
SystemAlarmsInitialize();
lock = xSemaphoreCreateRecursiveMutex(); lock = xSemaphoreCreateRecursiveMutex();
//do not change the default states of the alarms, let the init code generated by the uavobjectgenerator handle that
//AlarmsClearAll();
//AlarmsDefaultAll();
return 0; return 0;
} }

View File

@ -2677,7 +2677,6 @@
65C35E7912EFB2F3004811C2 /* watchdogstatus.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = watchdogstatus.xml; sourceTree = "<group>"; }; 65C35E7912EFB2F3004811C2 /* watchdogstatus.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = watchdogstatus.xml; sourceTree = "<group>"; };
65C35E9E12F0A834004811C2 /* uavobjecttemplate.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = uavobjecttemplate.c; sourceTree = "<group>"; }; 65C35E9E12F0A834004811C2 /* uavobjecttemplate.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = uavobjecttemplate.c; sourceTree = "<group>"; };
65C35E9F12F0A834004811C2 /* uavobjectsinittemplate.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = uavobjectsinittemplate.c; sourceTree = "<group>"; }; 65C35E9F12F0A834004811C2 /* uavobjectsinittemplate.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = uavobjectsinittemplate.c; sourceTree = "<group>"; };
65C35EA012F0A834004811C2 /* uavobjectsinit_cc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = uavobjectsinit_cc.c; sourceTree = "<group>"; };
65C35EA112F0A834004811C2 /* uavobjectmanager.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = uavobjectmanager.c; sourceTree = "<group>"; }; 65C35EA112F0A834004811C2 /* uavobjectmanager.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = uavobjectmanager.c; sourceTree = "<group>"; };
65C35EA312F0A834004811C2 /* eventdispatcher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = eventdispatcher.h; sourceTree = "<group>"; }; 65C35EA312F0A834004811C2 /* eventdispatcher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = eventdispatcher.h; sourceTree = "<group>"; };
65C35EA412F0A834004811C2 /* uavobjectmanager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = uavobjectmanager.h; sourceTree = "<group>"; }; 65C35EA412F0A834004811C2 /* uavobjectmanager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = uavobjectmanager.h; sourceTree = "<group>"; };
@ -2689,6 +2688,7 @@
65C35F6812F0DC2D004811C2 /* attitude.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = attitude.h; sourceTree = "<group>"; }; 65C35F6812F0DC2D004811C2 /* attitude.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = attitude.h; sourceTree = "<group>"; };
65C9903C13A871B90082BD60 /* camerastab.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = camerastab.c; sourceTree = "<group>"; }; 65C9903C13A871B90082BD60 /* camerastab.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = camerastab.c; sourceTree = "<group>"; };
65C9903E13A871B90082BD60 /* camerastab.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = camerastab.h; sourceTree = "<group>"; }; 65C9903E13A871B90082BD60 /* camerastab.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = camerastab.h; sourceTree = "<group>"; };
65C9908E13AC5D8D0082BD60 /* uavobjectsinit_linker.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = uavobjectsinit_linker.c; sourceTree = "<group>"; };
65D2CA841248F9A400B1E7D6 /* mixersettings.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = mixersettings.xml; sourceTree = "<group>"; }; 65D2CA841248F9A400B1E7D6 /* mixersettings.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = mixersettings.xml; sourceTree = "<group>"; };
65D2CA851248F9A400B1E7D6 /* mixerstatus.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = mixerstatus.xml; sourceTree = "<group>"; }; 65D2CA851248F9A400B1E7D6 /* mixerstatus.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = mixerstatus.xml; sourceTree = "<group>"; };
65E410AE12F65AEA00725888 /* attitudesettings.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = attitudesettings.xml; sourceTree = "<group>"; }; 65E410AE12F65AEA00725888 /* attitudesettings.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = attitudesettings.xml; sourceTree = "<group>"; };
@ -3515,9 +3515,9 @@
650D8E6A12DFE17500D05CC9 /* UAVObjects */ = { 650D8E6A12DFE17500D05CC9 /* UAVObjects */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
65C9908E13AC5D8D0082BD60 /* uavobjectsinit_linker.c */,
65C35E9E12F0A834004811C2 /* uavobjecttemplate.c */, 65C35E9E12F0A834004811C2 /* uavobjecttemplate.c */,
65C35E9F12F0A834004811C2 /* uavobjectsinittemplate.c */, 65C35E9F12F0A834004811C2 /* uavobjectsinittemplate.c */,
65C35EA012F0A834004811C2 /* uavobjectsinit_cc.c */,
65C35EA112F0A834004811C2 /* uavobjectmanager.c */, 65C35EA112F0A834004811C2 /* uavobjectmanager.c */,
65C35EA212F0A834004811C2 /* inc */, 65C35EA212F0A834004811C2 /* inc */,
65C35EA812F0A834004811C2 /* eventdispatcher.c */, 65C35EA812F0A834004811C2 /* eventdispatcher.c */,