void AhrsInitHandles(void) { int idx = 0; //Note: the first item in this list has the highest priority //the last has the lowest priority ADDHANDLE(idx++, AttitudeRaw); ADDHANDLE(idx++, AttitudeActual); ADDHANDLE(idx++, AHRSCalibration); ADDHANDLE(idx++, AhrsStatus); ADDHANDLE(idx++, BaroAltitude); ADDHANDLE(idx++, GPSPosition); ADDHANDLE(idx++, PositionActual); ADDHANDLE(idx++, VelocityActual); ADDHANDLE(idx++, HomeLocation); ADDHANDLE(idx++, AHRSSettings); if (idx != MAX_AHRS_OBJECTS) { PIOS_DEBUG_Assert(0); } //Note: Only connect objects that the AHRS needs to read //When the AHRS writes to these the data does a round trip //AHRS->OP->AHRS due to these events #ifndef IN_AHRS AHRSSettingsConnectCallback(ObjectUpdatedCb); BaroAltitudeConnectCallback(ObjectUpdatedCb); GPSPositionConnectCallback(ObjectUpdatedCb); HomeLocationConnectCallback(ObjectUpdatedCb); AHRSCalibrationConnectCallback(ObjectUpdatedCb); #endif }
void CLuaCallInHandler::AddHandle(CLuaHandle* lh) { ListInsert(handles, lh); #define ADDHANDLE(name) \ if (lh->HasCallIn(#name)) { ListInsert(list ## name, lh); } ADDHANDLE(GamePreload); ADDHANDLE(GameStart); ADDHANDLE(GameOver); ADDHANDLE(TeamDied); ADDHANDLE(UnitCreated); ADDHANDLE(UnitFinished); ADDHANDLE(UnitFromFactory); ADDHANDLE(UnitDestroyed); ADDHANDLE(UnitTaken); ADDHANDLE(UnitGiven); ADDHANDLE(UnitIdle); ADDHANDLE(UnitCmdDone); ADDHANDLE(UnitDamaged); ADDHANDLE(UnitExperience); ADDHANDLE(UnitSeismicPing); ADDHANDLE(UnitEnteredRadar); ADDHANDLE(UnitEnteredLos); ADDHANDLE(UnitLeftRadar); ADDHANDLE(UnitLeftLos); ADDHANDLE(UnitLoaded); ADDHANDLE(UnitUnloaded); ADDHANDLE(UnitCloaked); ADDHANDLE(UnitDecloaked); ADDHANDLE(FeatureCreated); ADDHANDLE(FeatureDestroyed); ADDHANDLE(Explosion); ADDHANDLE(StockpileChanged); ADDHANDLE(Update); ADDHANDLE(DefaultCommand); ADDHANDLE(DrawGenesis); ADDHANDLE(DrawWorld); ADDHANDLE(DrawWorldPreUnit); ADDHANDLE(DrawWorldShadow); ADDHANDLE(DrawWorldReflection); ADDHANDLE(DrawWorldRefraction); ADDHANDLE(DrawScreenEffects); ADDHANDLE(DrawScreen); ADDHANDLE(DrawInMiniMap); }