MultidropNetwork

Package: inet.examples.ethernet.TenBaseT1S

MultidropNetwork

network

This module contains a single 10BASE-T1S multidrop link with a separate controller node and a configurable number of additional nodes. The network node type can be configured for all network nodes on the multidrop link.

controller : like IEthernetNetworkNode

IEthernetNetworkNode: Interface for all network nodes that have Ethernet connectivity.

Source:
controller: <> like IEthernetNetworkNode {
    parameters:
        eth[*].plca.plca_node_count = default(parent.numNodes + 1);
        eth[*].plca.local_nodeID = default(0);
        @display("p=150,150;i=device/card");
} node[numNodes] : like IEthernetNetworkNode

IEthernetNetworkNode: Interface for all network nodes that have Ethernet connectivity.

Source:
node[numNodes]: <> like IEthernetNetworkNode {
    parameters:
        eth[*].plca.plca_node_count = default(parent.numNodes + 1);
        eth[*].plca.local_nodeID = default(this.index + 1);
        @display("p=300,300,row,150;i=device/card");
} j[numNodes] : WireJunction

Models a generic wiring hub.

Source:
j[numNodes]: WireJunction {
    parameters:
        @display("p=300,150,row,150");
} visualizer : IntegratedCanvasVisualizer

Integrates all canvas visualizers into a single module.

Source:
visualizer: IntegratedCanvasVisualizer {
    parameters:
        @display("p=100,300;is=s");
}

Usage diagram

The following diagram shows usage relationships between types. Unresolved types are missing from the diagram.

Parameters

Name Type Default value Description
numNodes int

Properties

Name Value Description
isNetwork

Unassigned submodule parameters

Name Type Default value Description
controller.numEthInterfaces int
node.numEthInterfaces int
j.displayStringTextFormat string ""

Determines the text that is written on top of the submodule, supports displaying pars, watches, and module-specific information

visualizer.sceneVisualizer.visualizationTargetModule string
visualizer.sceneVisualizer.visualizationSubjectModule string
visualizer.physicalEnvironmentVisualizer.visualizationTargetModule string
visualizer.physicalEnvironmentVisualizer.visualizationSubjectModule string
visualizer.networkNodeVisualizer.visualizationTargetModule string
visualizer.networkNodeVisualizer.visualizationSubjectModule string
visualizer.networkConnectionVisualizer.visualizationTargetModule string
visualizer.networkConnectionVisualizer.visualizationSubjectModule string
visualizer.mobilityVisualizer.visualizationTargetModule string
visualizer.mobilityVisualizer.visualizationSubjectModule string
visualizer.statisticVisualizer.visualizationTargetModule string
visualizer.statisticVisualizer.visualizationSubjectModule string
visualizer.infoVisualizer.visualizationTargetModule string
visualizer.infoVisualizer.visualizationSubjectModule string
visualizer.energyStorageVisualizer.visualizationTargetModule string
visualizer.energyStorageVisualizer.visualizationSubjectModule string
visualizer.mediumVisualizer.visualizationTargetModule string
visualizer.mediumVisualizer.visualizationSubjectModule string
visualizer.obstacleLossVisualizer.visualizationTargetModule string
visualizer.obstacleLossVisualizer.visualizationSubjectModule string
visualizer.packetDropVisualizer.visualizationTargetModule string
visualizer.packetDropVisualizer.visualizationSubjectModule string
visualizer.packetFlowVisualizer.visualizationTargetModule string
visualizer.packetFlowVisualizer.visualizationSubjectModule string
visualizer.queueVisualizer.visualizationTargetModule string
visualizer.queueVisualizer.visualizationSubjectModule string
visualizer.gateScheduleVisualizer.visualizationTargetModule string
visualizer.gateScheduleVisualizer.visualizationSubjectModule string
visualizer.radioVisualizer.visualizationTargetModule string
visualizer.radioVisualizer.visualizationSubjectModule string
visualizer.physicalLinkVisualizer.visualizationTargetModule string
visualizer.physicalLinkVisualizer.visualizationSubjectModule string
visualizer.interfaceTableVisualizer.visualizationTargetModule string
visualizer.interfaceTableVisualizer.visualizationSubjectModule string
visualizer.dataLinkVisualizer.visualizationTargetModule string
visualizer.dataLinkVisualizer.visualizationSubjectModule string
visualizer.linkBreakVisualizer.visualizationTargetModule string
visualizer.linkBreakVisualizer.visualizationSubjectModule string
visualizer.ieee80211Visualizer.visualizationTargetModule string
visualizer.ieee80211Visualizer.visualizationSubjectModule string
visualizer.networkRouteVisualizer.visualizationTargetModule string
visualizer.networkRouteVisualizer.visualizationSubjectModule string
visualizer.routingTableVisualizer.visualizationTargetModule string
visualizer.routingTableVisualizer.visualizationSubjectModule string
visualizer.transportRouteVisualizer.visualizationTargetModule string
visualizer.transportRouteVisualizer.visualizationSubjectModule string
visualizer.transportConnectionVisualizer.visualizationTargetModule string
visualizer.transportConnectionVisualizer.visualizationSubjectModule string
visualizer.failureProtectionConfigurationVisualizer.visualizationTargetModule string
visualizer.failureProtectionConfigurationVisualizer.visualizationSubjectModule string
visualizer.streamRedundancyConfigurationVisualizer.visualizationTargetModule string
visualizer.streamRedundancyConfigurationVisualizer.visualizationSubjectModule string

Source code

//
// This module contains a single 10BASE-T1S multidrop link with a separate
// controller node and a configurable number of additional nodes. The network
// node type can be configured for all network nodes on the multidrop link.
//
network MultidropNetwork
{
    parameters:
        int numNodes;
    submodules:
        controller: <> like IEthernetNetworkNode {
            parameters:
                eth[*].plca.plca_node_count = default(parent.numNodes + 1);
                eth[*].plca.local_nodeID = default(0);
                @display("p=150,150;i=device/card");
        }
        node[numNodes]: <> like IEthernetNetworkNode {
            parameters:
                eth[*].plca.plca_node_count = default(parent.numNodes + 1);
                eth[*].plca.local_nodeID = default(this.index + 1);
                @display("p=300,300,row,150;i=device/card");
        }
        j[numNodes]: WireJunction {
            parameters:
                @display("p=300,150,row,150");
        }
        visualizer: IntegratedCanvasVisualizer {
            parameters:
                @display("p=100,300;is=s");
        }
    connections:
        controller.ethg++ <--> EthernetMultidropLink {  length = 100cm; } <--> j[0].port++;
        for i=0..numNodes-1 {
            j[i].port++ <--> EthernetMultidropLink {  length = 100cm; } <--> j[i + 1].port++ if i < numNodes - 1;
            j[i].port++ <--> EthernetMultidropLink {  length = 50cm; } <--> node[i].ethg++;
        }
}
File: examples/ethernet/TenBaseT1S/MultidropNetwork.ned