OMNET++ COGNITIVE NETWORK PROJECTS

OMNET++ COGNITIVE NETWORK PROJECTS

Cognitive networks have the ability to think, to learn and to remember.

In general, a cognitive network is formed of a set of distributed cognitive entities (agents), which are somehow ‘‘smart” in the way that they have certain reasoning capabilities and are connected in a network.

Research on cognitive network:

  • Wireless resource management
  • Qos aware routing
  • Wireless service selection

OMNET++ COGNITIVE NETWORK PROJECTS

OMNeT++ Cognitive Radio Network

Advantages of cognitive network:

  • Providing Quality of Services.
  • Improve the performance of resource management.
  • Security.
  • Access control.
  • Achieve network goals.

Elements of cognitive network:

There are two different elements are considered as well as essential for developing cognitive network. There are,

  • Cognition loop
  • Knowledge representation

Sample code for cognitive network:

[code lang="js"]
class BaseCognitiveEngine : public cSimpleModule
{
    public:
        BaseCognitiveEngine();
        virtual ~BaseCognitiveEngine();
    protected:
        virtual void initialize();
        virtual void handleMessage(cMessage *msg);
};
void MobilityComponent::initialize()
{
    // Statistics
    scanChannelMapRequest = registerSignal("scanChannelMapRequest");
    scanChannelMapReply = registerSignal("scanChannelMapReply");
    rendezvousSuccess = registerSignal("rendezvousSuccess");
    rendezvousFail = registerSignal("rendezvousFail");
    broadcastTimerCount = registerSignal("broadcastTimerCount");
    stateSignal = registerSignal("stateSignal");
    txMobilitySignal = registerSignal("txMobilitySignal");
    rxMobilitySignal = registerSignal("rxMobilitySignal");
    stateMachineVector = registerSignal("stateMachineVector");
    eventSignal = registerSignal("eventSignal");

    broadcastTimerDuration = par("broadcastTimerDuration");
    myAddress = getParentModule()->par("address");
    broadcastAddress = getParentModule()->par("broadcastAddress");
    state = State_INIT;
    stateMachineStepTimer = new cMessage("StateMachineStepTimer");
    broadcastTimer = new cMessage("BroadcastTimer");
    updateGUI();
}

void MobilityComponent::updateGUI()
{
    // GUI changes
    std::stringstream sstr;
    sstr << this->getDisplayString().str()
        << ";t=" << StateMachine_StateNames[state] << "\n"
        << "MyCH:" << printChannelSet(&nodeChannelsMap[myAddress]) << "\n"
        << "BCSet:" << printChannelSet(&channelSet); std::string str1 = sstr.str(); this->setDisplayString(str1.c_str());
}
[/code]