Wiselib
Public Types | Public Member Functions
wiselib::LocalizationSumDistModule< OsModel_P, Radio_P, Clock_P, Distance_P, Debug_P, SharedData_P, Arithmatic_P > Class Template Reference

Module implementing Sum-dist. More...

#include <localization_sum_dist_module.h>

Inherits wiselib::LocalizationModule< OsModel_P, Radio_P, SharedData_P >.

List of all members.

Public Types

typedef OsModel_P OsModel
typedef Radio_P Radio
typedef Clock_P Clock
typedef Distance_P Distance
typedef Debug_P Debug
typedef SharedData_P SharedData
typedef Arithmatic_P Arithmatic
typedef
LocalizationSumDistModule
< OsModel, Radio, Clock,
Distance, Debug, SharedData,
Arithmatic
self_type
typedef LocalizationModule
< OsModel, Radio, SharedData
base_type
typedef Radio::size_t size_t
typedef Radio::node_id_t node_id_t
typedef Radio::block_data_t block_data_t
typedef Clock_P::time_t time_t
typedef
LocalizationSumDistMessage
< OsModel, Radio, Arithmatic
SumDistMessage
typedef
SharedData::Neighborhood::NeighborhoodIterator 
NeighborhoodIterator
typedef SharedData::Neighborhood Neighborhood
typedef
SharedData::LocalCoordinateSystem 
LocalCoordinateSystem

Public Member Functions

void rollback (void)
void init (Radio &radio, Clock &clock, Debug &debug, SharedData &shared_data, Distance &distance)
construction / destruction
 LocalizationSumDistModule ()
 ~LocalizationSumDistModule ()
standard methods startup/simulation steps
void receive (node_id_t from, size_t len, block_data_t *data)
 Handling of Sum-dist-Messages.
void work (void)
 Check, whether state can be set to finished or not.
module status info
bool finished (void)
basic access to owner, observer, neighborhood and local coordinate system
void set_shared_data (SharedData &shared_data)
 This method sets the shared data object, which can be accessed by all available modules.
SharedDatashared_data (void)
Neighborhoodneighborhood (void)
LocalCoordinateSystemlocal_coord_sys (void)

Protected Member Functions

message handling methods
bool process_sum_dist_message (node_id_t from, size_t len, block_data_t *data)
 Message handling by unknowns such as described above.

Detailed Description

template<typename OsModel_P, typename Radio_P, typename Clock_P, typename Distance_P, typename Debug_P, typename SharedData_P, typename Arithmatic_P>
class wiselib::LocalizationSumDistModule< OsModel_P, Radio_P, Clock_P, Distance_P, Debug_P, SharedData_P, Arithmatic_P >

Module implementing Sum-dist.

This module implements Sum-dist. Distance to anchors is get by simply flooding the network beginning at the anchors. Then the unknowns adding the distance estimated each hop and broadcast this information again.

Each unknown takes the minimal distance to at most 'floodlimit' anchors, where the floodlimit is taken from the LocalizationObserver.


Member Typedef Documentation

template<typename OsModel_P , typename Radio_P , typename Clock_P , typename Distance_P , typename Debug_P , typename SharedData_P , typename Arithmatic_P >
typedef Arithmatic_P wiselib::LocalizationSumDistModule< OsModel_P, Radio_P, Clock_P, Distance_P, Debug_P, SharedData_P, Arithmatic_P >::Arithmatic
template<typename OsModel_P , typename Radio_P , typename Clock_P , typename Distance_P , typename Debug_P , typename SharedData_P , typename Arithmatic_P >
typedef LocalizationModule<OsModel, Radio, SharedData> wiselib::LocalizationSumDistModule< OsModel_P, Radio_P, Clock_P, Distance_P, Debug_P, SharedData_P, Arithmatic_P >::base_type
template<typename OsModel_P , typename Radio_P , typename Clock_P , typename Distance_P , typename Debug_P , typename SharedData_P , typename Arithmatic_P >
typedef Radio::block_data_t wiselib::LocalizationSumDistModule< OsModel_P, Radio_P, Clock_P, Distance_P, Debug_P, SharedData_P, Arithmatic_P >::block_data_t
template<typename OsModel_P , typename Radio_P , typename Clock_P , typename Distance_P , typename Debug_P , typename SharedData_P , typename Arithmatic_P >
typedef Clock_P wiselib::LocalizationSumDistModule< OsModel_P, Radio_P, Clock_P, Distance_P, Debug_P, SharedData_P, Arithmatic_P >::Clock
template<typename OsModel_P , typename Radio_P , typename Clock_P , typename Distance_P , typename Debug_P , typename SharedData_P , typename Arithmatic_P >
typedef Debug_P wiselib::LocalizationSumDistModule< OsModel_P, Radio_P, Clock_P, Distance_P, Debug_P, SharedData_P, Arithmatic_P >::Debug
template<typename OsModel_P , typename Radio_P , typename Clock_P , typename Distance_P , typename Debug_P , typename SharedData_P , typename Arithmatic_P >
typedef Distance_P wiselib::LocalizationSumDistModule< OsModel_P, Radio_P, Clock_P, Distance_P, Debug_P, SharedData_P, Arithmatic_P >::Distance
template<typename OsModel_P , typename Radio_P , typename SharedData_P >
typedef SharedData::LocalCoordinateSystem wiselib::LocalizationModule< OsModel_P, Radio_P, SharedData_P >::LocalCoordinateSystem [inherited]
template<typename OsModel_P , typename Radio_P , typename SharedData_P >
typedef SharedData::Neighborhood wiselib::LocalizationModule< OsModel_P, Radio_P, SharedData_P >::Neighborhood [inherited]
template<typename OsModel_P , typename Radio_P , typename Clock_P , typename Distance_P , typename Debug_P , typename SharedData_P , typename Arithmatic_P >
typedef SharedData::Neighborhood::NeighborhoodIterator wiselib::LocalizationSumDistModule< OsModel_P, Radio_P, Clock_P, Distance_P, Debug_P, SharedData_P, Arithmatic_P >::NeighborhoodIterator
template<typename OsModel_P , typename Radio_P , typename Clock_P , typename Distance_P , typename Debug_P , typename SharedData_P , typename Arithmatic_P >
typedef Radio::node_id_t wiselib::LocalizationSumDistModule< OsModel_P, Radio_P, Clock_P, Distance_P, Debug_P, SharedData_P, Arithmatic_P >::node_id_t
template<typename OsModel_P , typename Radio_P , typename Clock_P , typename Distance_P , typename Debug_P , typename SharedData_P , typename Arithmatic_P >
typedef OsModel_P wiselib::LocalizationSumDistModule< OsModel_P, Radio_P, Clock_P, Distance_P, Debug_P, SharedData_P, Arithmatic_P >::OsModel
template<typename OsModel_P , typename Radio_P , typename Clock_P , typename Distance_P , typename Debug_P , typename SharedData_P , typename Arithmatic_P >
typedef Radio_P wiselib::LocalizationSumDistModule< OsModel_P, Radio_P, Clock_P, Distance_P, Debug_P, SharedData_P, Arithmatic_P >::Radio
template<typename OsModel_P , typename Radio_P , typename Clock_P , typename Distance_P , typename Debug_P , typename SharedData_P , typename Arithmatic_P >
typedef LocalizationSumDistModule<OsModel, Radio, Clock, Distance, Debug, SharedData, Arithmatic> wiselib::LocalizationSumDistModule< OsModel_P, Radio_P, Clock_P, Distance_P, Debug_P, SharedData_P, Arithmatic_P >::self_type
template<typename OsModel_P , typename Radio_P , typename Clock_P , typename Distance_P , typename Debug_P , typename SharedData_P , typename Arithmatic_P >
typedef SharedData_P wiselib::LocalizationSumDistModule< OsModel_P, Radio_P, Clock_P, Distance_P, Debug_P, SharedData_P, Arithmatic_P >::SharedData
template<typename OsModel_P , typename Radio_P , typename Clock_P , typename Distance_P , typename Debug_P , typename SharedData_P , typename Arithmatic_P >
typedef Radio::size_t wiselib::LocalizationSumDistModule< OsModel_P, Radio_P, Clock_P, Distance_P, Debug_P, SharedData_P, Arithmatic_P >::size_t
template<typename OsModel_P , typename Radio_P , typename Clock_P , typename Distance_P , typename Debug_P , typename SharedData_P , typename Arithmatic_P >
typedef LocalizationSumDistMessage<OsModel, Radio, Arithmatic> wiselib::LocalizationSumDistModule< OsModel_P, Radio_P, Clock_P, Distance_P, Debug_P, SharedData_P, Arithmatic_P >::SumDistMessage
template<typename OsModel_P , typename Radio_P , typename Clock_P , typename Distance_P , typename Debug_P , typename SharedData_P , typename Arithmatic_P >
typedef Clock_P::time_t wiselib::LocalizationSumDistModule< OsModel_P, Radio_P, Clock_P, Distance_P, Debug_P, SharedData_P, Arithmatic_P >::time_t

Constructor & Destructor Documentation

template<typename OsModel_P , typename Radio_P , typename Clock_P , typename Distance_P , typename Debug_P , typename SharedData_P , typename Arithmatic_P >
wiselib::LocalizationSumDistModule< OsModel_P, Radio_P, Clock_P, Distance_P, Debug_P, SharedData_P, Arithmatic_P >::LocalizationSumDistModule ( )
template<typename OsModel_P , typename Radio_P , typename Clock_P , typename Distance_P , typename Debug_P , typename SharedData_P , typename Arithmatic_P >
wiselib::LocalizationSumDistModule< OsModel_P, Radio_P, Clock_P, Distance_P, Debug_P, SharedData_P, Arithmatic_P >::~LocalizationSumDistModule ( )

Member Function Documentation

template<typename OsModel_P , typename Radio_P , typename Clock_P , typename Distance_P , typename Debug_P , typename SharedData_P , typename Arithmatic_P >
bool wiselib::LocalizationSumDistModule< OsModel_P, Radio_P, Clock_P, Distance_P, Debug_P, SharedData_P, Arithmatic_P >::finished ( void  )
Returns:
true, if module is finished. false otherwise
See also:
LocalizationModule::finished()
template<typename OsModel_P , typename Radio_P , typename Clock_P , typename Distance_P , typename Debug_P , typename SharedData_P , typename Arithmatic_P >
void wiselib::LocalizationSumDistModule< OsModel_P, Radio_P, Clock_P, Distance_P, Debug_P, SharedData_P, Arithmatic_P >::init ( Radio radio,
Clock clock,
Debug debug,
SharedData shared_data,
Distance distance 
) [inline]
template<typename OsModel_P , typename Radio_P , typename SharedData_P >
LocalCoordinateSystem& wiselib::LocalizationModule< OsModel_P, Radio_P, SharedData_P >::local_coord_sys ( void  ) [inline, inherited]
Returns:
Writable shared LocalizationLocalCoordinateSystem.
template<typename OsModel_P , typename Radio_P , typename SharedData_P >
Neighborhood& wiselib::LocalizationModule< OsModel_P, Radio_P, SharedData_P >::neighborhood ( void  ) [inline, inherited]
Returns:
Writable shared LocalizationNeighborhood.
template<typename OsModel_P , typename Radio_P , typename Clock_P , typename Distance_P , typename Debug_P , typename SharedData_P , typename Arithmatic_P >
bool wiselib::LocalizationSumDistModule< OsModel_P, Radio_P, Clock_P, Distance_P, Debug_P, SharedData_P, Arithmatic_P >::process_sum_dist_message ( node_id_t  from,
size_t  len,
block_data_t data 
) [protected]

Message handling by unknowns such as described above.

See also:
LocalizationSumDistMessage
template<typename OsModel_P , typename Radio_P , typename Clock_P , typename Distance_P , typename Debug_P , typename SharedData_P , typename Arithmatic_P >
void wiselib::LocalizationSumDistModule< OsModel_P, Radio_P, Clock_P, Distance_P, Debug_P, SharedData_P, Arithmatic_P >::receive ( node_id_t  from,
size_t  len,
block_data_t data 
)

Handling of Sum-dist-Messages.

See also:
LocalizationModule::process_message()
template<typename OsModel_P , typename Radio_P , typename Clock_P , typename Distance_P , typename Debug_P , typename SharedData_P , typename Arithmatic_P >
void wiselib::LocalizationSumDistModule< OsModel_P, Radio_P, Clock_P, Distance_P, Debug_P, SharedData_P, Arithmatic_P >::rollback ( void  )
template<typename OsModel_P , typename Radio_P , typename SharedData_P >
void wiselib::LocalizationModule< OsModel_P, Radio_P, SharedData_P >::set_shared_data ( SharedData shared_data) [inline, inherited]

This method sets the shared data object, which can be accessed by all available modules.

Parameters:
LocalizationSharedDataShared data between all modules.
template<typename OsModel_P , typename Radio_P , typename SharedData_P >
SharedData& wiselib::LocalizationModule< OsModel_P, Radio_P, SharedData_P >::shared_data ( void  ) [inline, inherited]
Returns:
LocalizationSharedData shared by all modules.
writable LocalizationSharedData shared by all modules.
template<typename OsModel_P , typename Radio_P , typename Clock_P , typename Distance_P , typename Debug_P , typename SharedData_P , typename Arithmatic_P >
void wiselib::LocalizationSumDistModule< OsModel_P, Radio_P, Clock_P, Distance_P, Debug_P, SharedData_P, Arithmatic_P >::work ( void  )

Check, whether state can be set to finished or not.

Moreover, if owner is an anchor, initial message is send.

See also:
LocalizationModule::work()

The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines