|
DESERT 4.0.0
|
#include <uwmulti-stack-controller-phy.h>


Public Member Functions | |
| UwMultiStackControllerPhy () | |
| virtual | ~UwMultiStackControllerPhy () |
| virtual int | command (int, const char *const *) |
| virtual int | recvSyncClMsg (ClMessage *m) |
| virtual void | recv (Packet *p, int idSrc) |
Public Member Functions inherited from UwMultiStackController | |
| UwMultiStackController () | |
| virtual | ~UwMultiStackController () |
| virtual void | addLayer (int id, int order) |
| virtual void | addThreshold (int i, int j, double thres_ij) |
| virtual void | recv (Packet *p) |
| int | getOrder (int layer_id) |
| int | getId (int layer_order) |
Protected Types | |
| enum | UWPHY_CONTROLLER_STATE { UWPHY_CONTROLLER_STATE_IDLE = 1 , UWPHY_CONTROLLER_STATE_BUSY_2_TX , UWPHY_CONTROLLER_STATE_BUSY_2_RX } |
Protected Types inherited from UwMultiStackController | |
| enum | Mode { UW_MANUAL_SWITCH = 0 , UW_AUTOMATIC_SWITCH } |
Protected Member Functions | |
| virtual void | initInfo () |
| virtual void | stateIdle () |
| virtual void | stateBusy2Rx (int id) |
| virtual void | stateBusy2Tx (Packet *p) |
Protected Member Functions inherited from UwMultiStackController | |
| virtual void | recvFromUpperLayers (Packet *p) |
| virtual int | getBestLayer (Packet *p) |
| virtual bool | isLayerAvailable (int id) |
| virtual double | getMetricFromSelectedLowerLayer (int id, Packet *p) |
| virtual bool | getThreshold (int i, int j, double &thres_ij) |
| virtual void | eraseThreshold (int i, int j) |
| void | setThreshold (int i, int j, double thres_ij) |
Protected Attributes | |
| int | receiving_id |
| UWPHY_CONTROLLER_STATE | current_state |
Protected Attributes inherited from UwMultiStackController | |
| int | debug_ |
| double | min_delay_ |
| Mode | switch_mode_ |
| int | lower_id_active_ |
| std::map< int, int > | id2order |
| ThresMatrix | threshold_map |
| std::map< int, int > | order2id |
| int | signaling_pktSize_ |
Static Protected Attributes | |
| static map< UWPHY_CONTROLLER_STATE, string > | state_info |
Additional Inherited Members | |
Static Public Attributes inherited from UwMultiStackController | |
| static int const | layer_not_exist = -1 |
|
protected |
| UwMultiStackControllerPhy::UwMultiStackControllerPhy | ( | ) |
|
inlinevirtual |
Destructor of UwMultiPhy class.
|
virtual |
TCL command interpreter. It implements the following OTcl methods:
| argc | Number of arguments in argv. |
| argv | Array of strings which are the command parameters (Note that argv[0] is the name of the object). |
Reimplemented from UwMultiStackController.
Reimplemented in UwMultiStackControllerPhyMaster, and UwMultiStackControllerPhySlave.
References UwMultiStackController::command(), and current_state.
Referenced by UwMultiStackControllerPhyMaster::command(), and UwMultiStackControllerPhySlave::command().

|
protectedvirtual |
This function is used to initialize the UwMultiStackControllerPhy debugging info.
References state_info, UWPHY_CONTROLLER_STATE_BUSY_2_RX, UWPHY_CONTROLLER_STATE_BUSY_2_TX, and UWPHY_CONTROLLER_STATE_IDLE.
Referenced by UwMultiStackControllerPhy().
|
virtual |
It manages each packet reception, either from the upper and the lower layer
| p | pointer to the packet will be received |
| idSrc | unique id of the module that has sent the packet |
Reimplemented in UwMultiStackControllerPhyMaster, and UwMultiStackControllerPhySlave.
References current_state, UwMultiStackController::debug_, UwMultiStackController::min_delay_, receiving_id, stateBusy2Tx(), stateIdle(), UWPHY_CONTROLLER_STATE_BUSY_2_RX, and UWPHY_CONTROLLER_STATE_IDLE.
Referenced by UwMultiStackControllerPhyMaster::recv(), and UwMultiStackControllerPhySlave::recv().

|
virtual |
Cross-Layer messages synchronous interpreter. It has to be properly extended in order to interpret custom cross-layer messages used by this particular plug-in. This type of communication need to be directly answered in the message exchanged in order to be synchronous with the source.
| m | an instance of ClMessage that represent the message received and used for the answer |
Reimplemented in UwMultiStackControllerPhyMaster, and UwMultiStackControllerPhySlave.
References current_state, UwMultiStackController::debug_, UwMultiStackController::lower_id_active_, state_info, stateBusy2Rx(), stateIdle(), UWPHY_CONTROLLER_STATE_BUSY_2_TX, and UWPHY_CONTROLLER_STATE_IDLE.
Referenced by UwMultiStackControllerPhyMaster::recvSyncClMsg(), and UwMultiStackControllerPhySlave::recvSyncClMsg().

|
protectedvirtual |
Called when a node is receiving correctely a packet from the lower layer. It sets the state busy due to the reception.
| id | the identifier of the lower layer |
References current_state, UwMultiStackController::debug_, receiving_id, state_info, and UWPHY_CONTROLLER_STATE_BUSY_2_RX.
Referenced by recvSyncClMsg().
|
protectedvirtual |
Called when a node is transmitting a packet. The state is set busy due to the transmitting operation.
| p | pointer to the packet will be received |
References current_state, UwMultiStackController::debug_, UwMultiStackController::recvFromUpperLayers(), state_info, UWPHY_CONTROLLER_STATE_BUSY_2_TX, and UWPHY_CONTROLLER_STATE_IDLE.
Referenced by recv().

|
protectedvirtual |
Node is in Idle state. It changes its state only when it has to manage a packet reception.
References current_state, UwMultiStackController::debug_, receiving_id, state_info, and UWPHY_CONTROLLER_STATE_IDLE.
Referenced by recv(), and recvSyncClMsg().
|
protected |
Referenced by command(), recv(), recvSyncClMsg(), stateBusy2Rx(), stateBusy2Tx(), and stateIdle().
|
protected |
current receiving PHY ID
Referenced by recv(), stateBusy2Rx(), and stateIdle().
|
staticprotected |
Referenced by initInfo(), recvSyncClMsg(), stateBusy2Rx(), stateBusy2Tx(), and stateIdle().