void IsoMonitor_c::close() { isoaglib_assert (initialized()); isoaglib_assert( m_arrClientC1.empty() ); isoaglib_assert( mvec_saClaimHandler.empty() ); getSchedulerInstance().deregisterTask( *this ); // We can clear the list of remote nodes. /// NOTE: We do currently NOT call "internalIsoItemErase", /// because the list of SaClaimHandlers is empty anyway. /// But if the erase does some more stuff, it may be needed /// to call "internalIsoItemErase" for each item instead /// of just clearing the container of isoMembers. mvec_isoMember.clear(); getIsoRequestPgnInstance4Comm().unregisterPGN (mt_handler, ADDRESS_CLAIM_PGN); #ifdef USE_WORKING_SET getIsoRequestPgnInstance4Comm().unregisterPGN (mt_handler, WORKING_SET_MASTER_PGN); getIsoRequestPgnInstance4Comm().unregisterPGN (mt_handler, WORKING_SET_MEMBER_PGN); #endif getIsoBusInstance4Comm().deleteFilter( mt_customer, IsoAgLib::iMaskFilter_c( 0x3FFFF00UL, ((ADDRESS_CLAIM_PGN+0xFF) << 8) ) ); #ifdef USE_WORKING_SET getIsoBusInstance4Comm().deleteFilter( mt_customer, IsoAgLib::iMaskFilter_c( 0x3FFFF00UL, ((WORKING_SET_MASTER_PGN) << 8) ) ); getIsoBusInstance4Comm().deleteFilter( mt_customer, IsoAgLib::iMaskFilter_c( 0x3FFFF00UL, ((WORKING_SET_MEMBER_PGN) << 8) ) ); #endif setClosed(); }
void FsManager_c::init() { isoaglib_assert (!initialized()); m_commands.init(); getSchedulerInstance().registerTask( *this, 0 ); getIsoMonitorInstance4Comm().registerControlFunctionStateHandler(mc_saClaimHandler); setInitialized(); }
void BaseCommon_c::init() { isoaglib_assert (!initialized()); getSchedulerInstance().registerTask(mt_task, 0); // set configure values with call for config config_base (NULL, IsoAgLib::IdentModeImplement, 0 /* No individual PGN disabling */); // now let concrete specialized classes init their part... init_specialized(); setInitialized(); }
void BaseCommon_c::close( ) { isoaglib_assert (initialized()); isoaglib_assert( mvec_msgEventHandlers.empty() ); close_specialized(); getSchedulerInstance().deregisterTask(mt_task); // actually the filters aren't getting removed, but this is just a quick workaround until the Trac-classes-redesign! clearFilterCreated(); setClosed(); };
void FsManager_c::close() { isoaglib_assert (initialized()); m_commands.close(); getIsoMonitorInstance4Comm().deregisterControlFunctionStateHandler (mc_saClaimHandler); getSchedulerInstance().deregisterTask(*this); STL_NAMESPACE::for_each( m_commands.ml_initializingCommands.begin(), m_commands.ml_initializingCommands.end(), delete_object()); m_commands.ml_initializingCommands.clear(); STL_NAMESPACE::for_each( mv_communications.begin(), mv_communications.end(), delete_object()); mv_communications.clear(); STL_NAMESPACE::for_each( m_servers.m_serverInstances.begin(), m_servers.m_serverInstances.end(), delete_object()); m_servers.m_serverInstances.clear(); setClosed(); }
IsoMonitor_c::IsoMonitor_c() : SchedulerTask_c( 125, true ), mvec_isoMember(), mt_handler(*this), mt_customer(*this), CONTAINER_CLIENT1_CTOR_INITIALIZER_LIST { } void IsoMonitor_c::init() { isoaglib_assert (!initialized()); isoaglib_assert (mvec_isoMember.empty()); mi32_lastSaRequest = -1; // not yet requested. Do NOT use 0, as the first "setLastRequest()" could (and does randomly) occur at time0 as it's called at init() time. mc_tempIsoMemberItem.set( 0, IsoName_c::IsoNameUnspecified(), 0xFE, IState_c::Active, getMultitonInst() ); setPeriod( 125, false ); getSchedulerInstance().registerTask( *this, 0 ); CNAMESPACE::memset( &m_isoItems, 0x0, sizeof( m_isoItems ) ); // add filter REQUEST_PGN_MSG_PGN via IsoRequestPgn_c getIsoRequestPgnInstance4Comm().registerPGN (mt_handler, ADDRESS_CLAIM_PGN); #ifdef USE_WORKING_SET getIsoRequestPgnInstance4Comm().registerPGN (mt_handler, WORKING_SET_MASTER_PGN); getIsoRequestPgnInstance4Comm().registerPGN (mt_handler, WORKING_SET_MEMBER_PGN); #endif getIsoBusInstance4Comm().insertFilter( mt_customer, IsoAgLib::iMaskFilter_c( 0x3FFFF00UL, ((ADDRESS_CLAIM_PGN)+0xFF)<<8 ), 8 ); #ifdef USE_WORKING_SET getIsoBusInstance4Comm().insertFilter( mt_customer, IsoAgLib::iMaskFilter_c( 0x3FFFF00UL, (WORKING_SET_MASTER_PGN<<8) ), 8 ); getIsoBusInstance4Comm().insertFilter( mt_customer, IsoAgLib::iMaskFilter_c( 0x3FFFF00UL, (WORKING_SET_MEMBER_PGN<<8) ), 8 ); #endif setInitialized(); }