TractorMobility

Package: inet.mobility.single

simple module TractorMobility

Moves a tractor through a field with a certain number of rows. Since the tractor also moves around the field, the tractor travels the number of rows PLUS one row. Consider the following piece of ascii-art for rows=2.

>>>>>>>>>>>>>>>v
^              v
^              v
<<<<<<<<<<<<<<<<
v              ^
v              ^
>>>>>>>>>>>>>>>^

NOTE: Does not yet support 3-dimensional movement.

Author: Peterpaul Klein Haneveld

inet.mobility.single.TractorMobilityTractorMobilitysimple

Inheritance diagram

Extends

Name

Type

Description

MovingMobilityBase

simple module

Abstract base module for mobility models.

Parameters

Name

Type

Default value

Description

displayStringTextFormat

string

“p: {position}\nv: {velocity}”

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

subjectModule

string

“^”

The module path that determines the subject module, the motion of which this mobility model describes. The default value is the parent module

coordinateSystemModule

string

“”

The module path of the geographic coordinate system module; optional, empty disables geographic conversion (and the {geo_position} directive)

updateDisplayString

bool

true

Enables continuous update of the subject module’s position by modifying its display string

constraintAreaMinX

double

-inf m

The minimum x position of the constraint area. It is unconstrained by default (negative infinity)

constraintAreaMinY

double

-inf m

The minimum y position of the constraint area. It is unconstrained by default (negative infinity)

constraintAreaMinZ

double

-inf m

The minimum z position of the constraint area. It is unconstrained by default (negative infinity)

constraintAreaMaxX

double

inf m

The maximum x position of the constraint area. It is unconstrained by default (positive infinity)

constraintAreaMaxY

double

inf m

The maximum y position of the constraint area. It is unconstrained by default (positive infinity)

constraintAreaMaxZ

double

inf m

The maximum z position of the constraint area. It is unconstrained by default (positive infinity)

updateInterval

double

0.1s

The simulation time interval used to regularly signal mobility state changes and update the display

faceForward

bool

true

speed

double

x1

double

y1

double

x2

double

y2

double

rowCount

int

The number of rows on the field

Properties

Name

Value

Description

class

TractorMobility

display

i=block/cogwheel

Signals

Name

Type

Unit

Description

mobilityStateChanged

inet::MobilityBase

It works in inet, but not in the extended module in another namespace

Source code

//
// Moves a tractor through a field with a certain number of rows.
// Since the tractor also moves around the field, the tractor travels
// the number of rows PLUS one row. Consider the following piece of
// ascii-art for rows=2.
//
// <pre>
// >>>>>>>>>>>>>>>v
// ^              v
// ^              v
// <<<<<<<<<<<<<<<<
// v              ^
// v              ^
// >>>>>>>>>>>>>>>^
// </pre>
//
// NOTE: Does not yet support 3-dimensional movement.
// @author Peterpaul Klein Haneveld
//
simple TractorMobility extends MovingMobilityBase
{
    parameters:
        double speed @unit(mps);
        double x1 @unit(m);
        double y1 @unit(m);
        double x2 @unit(m);
        double y2 @unit(m);
        int rowCount; // The number of rows on the field
        @class(TractorMobility);
}

File: src/inet/mobility/single/TractorMobility.ned