File Applications/SimpleGameClient/SimpleGameClient.ned

Contains:

//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
// of the License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
//

// @file SimpleGameClient.ned
// @author Helge Backhaus
//

simple SimpleGameClient
    parameters:
        debugOutput: bool,
        movementRate: numeric,      // movement updates per second
        areaDimension: numeric,     // movement range from [0.0, 0.0] to [areaDimension, areaDimension]
        AOIWidth: numeric,
        movementSpeed: numeric,     // movement speed in m/s
        movementGenerator: string,  // responsible for different movement models
        groupSize: numeric,         // clients per group
        mtu: numeric;               // maximum transmission unit

    gates:
        in: from_lowerTier;         // gate from the lower tier
        in: rpc_in;                 // gate for RPC sendDirect
        in: trace_in;               // gate for trace file commands
        out: to_lowerTier;          // gate to the lower tier
endsimple

module SimpleGameClientModules
    parameters:
        debugOutput: bool,
        movementRate: numeric,      // movement updates per second
        areaDimension: numeric,     // movement range from [0.0, 0.0] to [areaDimension, areaDimension]
        AOIWidth: numeric,
        movementSpeed: numeric,     // movement speed in m/s
        movementGenerator: string,  // responsible for different movement models
        groupSize: numeric,         // clients per group
        mtu: numeric;               // maximum transmission unit

    gates:
        in: from_udp;               // gate from the UDP layer
        in: from_lowerTier;         // gate from the lower tier
        in: from_upperTier;         // gate from the upper tier
        in: trace_in;               // gate for trace file commands
        out: to_udp;                // gate to the UDP layer
        out: to_lowerTier;          // gate to the lower tier
        out: to_upperTier;          // gate to the upper tier

    submodules:
        simpleGameClient: SimpleGameClient;
            parameters:
                debugOutput=debugOutput,
                movementRate=movementRate,              // movement updates per second
                areaDimension=areaDimension,            // movement range from [0.0, 0.0] to [areaDimension, areaDimension]
                AOIWidth=AOIWidth,
                movementSpeed=movementSpeed,            // movement speed in m/s
                movementGenerator=movementGenerator,    // responsible for different movement models
                groupSize=groupSize,                    // clients per group
                mtu=mtu;                                // maximum transmission unit
            display:
                "i=block/app";

    connections nocheck:
        from_lowerTier --> simpleGameClient.from_lowerTier;
        to_lowerTier <-- simpleGameClient.to_lowerTier;
        trace_in --> simpleGameClient.trace_in;
endmodule