docs: cleanup of some of the emane demos, added antennaprofile demo example
This commit is contained in:
parent
ce7736a95e
commit
93a5d1fb01
6 changed files with 785 additions and 10 deletions
435
docs/emane/antenna.md
Normal file
435
docs/emane/antenna.md
Normal file
|
@ -0,0 +1,435 @@
|
|||
# EMANE Antenna Profiles
|
||||
* Table of Contents
|
||||
{:toc}
|
||||
|
||||
## Overview
|
||||
Introduction to using the EMANE antenna profile in CORE, based on the example
|
||||
EMANE Demo linked below.
|
||||
|
||||
[EMANE Demo 6](https://github.com/adjacentlink/emane-tutorial/wiki/Demonstration-6)
|
||||
for more specifics.
|
||||
|
||||
## Demo Setup
|
||||
We will need to create some files in advance of starting this session.
|
||||
|
||||
Create directory to place antenna profile files.
|
||||
```shell
|
||||
mkdir /tmp/emane
|
||||
```
|
||||
|
||||
Create `/tmp/emane/antennaprofile.xml` with the following contents.
|
||||
```xml
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE profiles SYSTEM "file:///usr/share/emane/dtd/antennaprofile.dtd">
|
||||
<profiles>
|
||||
<profile id="1"
|
||||
antennapatternuri="/tmp/emane/antenna30dsector.xml"
|
||||
blockagepatternuri="/tmp/emane/blockageaft.xml">
|
||||
<placement north="0" east="0" up="0"/>
|
||||
</profile>
|
||||
<profile id="2"
|
||||
antennapatternuri="/tmp/emane/antenna30dsector.xml">
|
||||
<placement north="0" east="0" up="0"/>
|
||||
</profile>
|
||||
</profiles>
|
||||
```
|
||||
|
||||
Create `/tmp/emane/antenna30dsector.xml` with the following contents.
|
||||
```xml
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE antennaprofile SYSTEM "file:///usr/share/emane/dtd/antennaprofile.dtd">
|
||||
|
||||
<!-- 30degree sector antenna pattern with main beam at +6dB and gain decreasing by 3dB every 5 degrees in elevation or bearing.-->
|
||||
<antennaprofile>
|
||||
<antennapattern>
|
||||
<elevation min='-90' max='-16'>
|
||||
<bearing min='0' max='359'>
|
||||
<gain value='-200'/>
|
||||
</bearing>
|
||||
</elevation>
|
||||
<elevation min='-15' max='-11'>
|
||||
<bearing min='0' max='5'>
|
||||
<gain value='0'/>
|
||||
</bearing>
|
||||
<bearing min='6' max='10'>
|
||||
<gain value='-3'/>
|
||||
</bearing>
|
||||
<bearing min='11' max='15'>
|
||||
<gain value='-6'/>
|
||||
</bearing>
|
||||
<bearing min='16' max='344'>
|
||||
<gain value='-200'/>
|
||||
</bearing>
|
||||
<bearing min='345' max='349'>
|
||||
<gain value='-6'/>
|
||||
</bearing>
|
||||
<bearing min='350' max='354'>
|
||||
<gain value='-3'/>
|
||||
</bearing>
|
||||
<bearing min='355' max='359'>
|
||||
<gain value='0'/>
|
||||
</bearing>
|
||||
</elevation>
|
||||
<elevation min='-10' max='-6'>
|
||||
<bearing min='0' max='5'>
|
||||
<gain value='3'/>
|
||||
</bearing>
|
||||
<bearing min='6' max='10'>
|
||||
<gain value='0'/>
|
||||
</bearing>
|
||||
<bearing min='11' max='15'>
|
||||
<gain value='-3'/>
|
||||
</bearing>
|
||||
<bearing min='16' max='344'>
|
||||
<gain value='-200'/>
|
||||
</bearing>
|
||||
<bearing min='345' max='349'>
|
||||
<gain value='-3'/>
|
||||
</bearing>
|
||||
<bearing min='350' max='354'>
|
||||
<gain value='0'/>
|
||||
</bearing>
|
||||
<bearing min='355' max='359'>
|
||||
<gain value='3'/>
|
||||
</bearing>
|
||||
</elevation>
|
||||
<elevation min='-5' max='-1'>
|
||||
<bearing min='0' max='5'>
|
||||
<gain value='6'/>
|
||||
</bearing>
|
||||
<bearing min='6' max='10'>
|
||||
<gain value='3'/>
|
||||
</bearing>
|
||||
<bearing min='11' max='15'>
|
||||
<gain value='0'/>
|
||||
</bearing>
|
||||
<bearing min='16' max='344'>
|
||||
<gain value='-200'/>
|
||||
</bearing>
|
||||
<bearing min='345' max='349'>
|
||||
<gain value='0'/>
|
||||
</bearing>
|
||||
<bearing min='350' max='354'>
|
||||
<gain value='3'/>
|
||||
</bearing>
|
||||
<bearing min='355' max='359'>
|
||||
<gain value='6'/>
|
||||
</bearing>
|
||||
</elevation>
|
||||
<elevation min='0' max='5'>
|
||||
<bearing min='0' max='5'>
|
||||
<gain value='6'/>
|
||||
</bearing>
|
||||
<bearing min='6' max='10'>
|
||||
<gain value='3'/>
|
||||
</bearing>
|
||||
<bearing min='11' max='15'>
|
||||
<gain value='0'/>
|
||||
</bearing>
|
||||
<bearing min='16' max='344'>
|
||||
<gain value='-200'/>
|
||||
</bearing>
|
||||
<bearing min='345' max='349'>
|
||||
<gain value='0'/>
|
||||
</bearing>
|
||||
<bearing min='350' max='354'>
|
||||
<gain value='3'/>
|
||||
</bearing>
|
||||
<bearing min='355' max='359'>
|
||||
<gain value='6'/>
|
||||
</bearing>
|
||||
</elevation>
|
||||
<elevation min='6' max='10'>
|
||||
<bearing min='0' max='5'>
|
||||
<gain value='3'/>
|
||||
</bearing>
|
||||
<bearing min='6' max='10'>
|
||||
<gain value='0'/>
|
||||
</bearing>
|
||||
<bearing min='11' max='15'>
|
||||
<gain value='-3'/>
|
||||
</bearing>
|
||||
<bearing min='16' max='344'>
|
||||
<gain value='-200'/>
|
||||
</bearing>
|
||||
<bearing min='345' max='349'>
|
||||
<gain value='-3'/>
|
||||
</bearing>
|
||||
<bearing min='350' max='354'>
|
||||
<gain value='0'/>
|
||||
</bearing>
|
||||
<bearing min='355' max='359'>
|
||||
<gain value='3'/>
|
||||
</bearing>
|
||||
</elevation>
|
||||
<elevation min='11' max='15'>
|
||||
<bearing min='0' max='5'>
|
||||
<gain value='0'/>
|
||||
</bearing>
|
||||
<bearing min='6' max='10'>
|
||||
<gain value='-3'/>
|
||||
</bearing>
|
||||
<bearing min='11' max='15'>
|
||||
<gain value='-6'/>
|
||||
</bearing>
|
||||
<bearing min='16' max='344'>
|
||||
<gain value='-200'/>
|
||||
</bearing>
|
||||
<bearing min='345' max='349'>
|
||||
<gain value='-6'/>
|
||||
</bearing>
|
||||
<bearing min='350' max='354'>
|
||||
<gain value='-3'/>
|
||||
</bearing>
|
||||
<bearing min='355' max='359'>
|
||||
<gain value='0'/>
|
||||
</bearing>
|
||||
</elevation>
|
||||
<elevation min='16' max='90'>
|
||||
<bearing min='0' max='359'>
|
||||
<gain value='-200'/>
|
||||
</bearing>
|
||||
</elevation>
|
||||
</antennapattern>
|
||||
</antennaprofile>
|
||||
```
|
||||
|
||||
Create `/tmp/emane/blockageaft.xml` with the following contents.
|
||||
```xml
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE antennaprofile SYSTEM "file:///usr/share/emane/dtd/antennaprofile.dtd">
|
||||
|
||||
<!-- blockage pattern: 1) entire aft in bearing (90 to 270) blocked 2) elevation below -10 blocked, 3) elevation from -10 to -1 is at -10dB to -1 dB 3) elevation from 0 to 90 no blockage-->
|
||||
<antennaprofile>
|
||||
<blockagepattern>
|
||||
<elevation min='-90' max='-11'>
|
||||
<bearing min='0' max='359'>
|
||||
<gain value='-200'/>
|
||||
</bearing>
|
||||
</elevation>
|
||||
<elevation min='-10' max='-10'>
|
||||
<bearing min='0' max='89'>
|
||||
<gain value='-10'/>
|
||||
</bearing>
|
||||
<bearing min='90' max='270'>
|
||||
<gain value='-200'/>
|
||||
</bearing>
|
||||
<bearing min='271' max='359'>
|
||||
<gain value='-10'/>
|
||||
</bearing>
|
||||
</elevation>
|
||||
<elevation min='-9' max='-9'>
|
||||
<bearing min='0' max='89'>
|
||||
<gain value='-9'/>
|
||||
</bearing>
|
||||
<bearing min='90' max='270'>
|
||||
<gain value='-200'/>
|
||||
</bearing>
|
||||
<bearing min='271' max='359'>
|
||||
<gain value='-9'/>
|
||||
</bearing>
|
||||
</elevation>
|
||||
<elevation min='-8' max='-8'>
|
||||
<bearing min='0' max='89'>
|
||||
<gain value='-8'/>
|
||||
</bearing>
|
||||
<bearing min='90' max='270'>
|
||||
<gain value='-200'/>
|
||||
</bearing>
|
||||
<bearing min='271' max='359'>
|
||||
<gain value='-8'/>
|
||||
</bearing>
|
||||
</elevation>
|
||||
<elevation min='-7' max='-7'>
|
||||
<bearing min='0' max='89'>
|
||||
<gain value='-7'/>
|
||||
</bearing>
|
||||
<bearing min='90' max='270'>
|
||||
<gain value='-200'/>
|
||||
</bearing>
|
||||
<bearing min='271' max='359'>
|
||||
<gain value='-7'/>
|
||||
</bearing>
|
||||
</elevation>
|
||||
<elevation min='-6' max='-6'>
|
||||
<bearing min='0' max='89'>
|
||||
<gain value='-6'/>
|
||||
</bearing>
|
||||
<bearing min='90' max='270'>
|
||||
<gain value='-200'/>
|
||||
</bearing>
|
||||
<bearing min='271' max='359'>
|
||||
<gain value='-6'/>
|
||||
</bearing>
|
||||
</elevation>
|
||||
<elevation min='-5' max='-5'>
|
||||
<bearing min='0' max='89'>
|
||||
<gain value='-5'/>
|
||||
</bearing>
|
||||
<bearing min='90' max='270'>
|
||||
<gain value='-200'/>
|
||||
</bearing>
|
||||
<bearing min='271' max='359'>
|
||||
<gain value='-5'/>
|
||||
</bearing>
|
||||
</elevation>
|
||||
<elevation min='-4' max='-4'>
|
||||
<bearing min='0' max='89'>
|
||||
<gain value='-4'/>
|
||||
</bearing>
|
||||
<bearing min='90' max='270'>
|
||||
<gain value='-200'/>
|
||||
</bearing>
|
||||
<bearing min='271' max='359'>
|
||||
<gain value='-4'/>
|
||||
</bearing>
|
||||
</elevation>
|
||||
<elevation min='-3' max='-3'>
|
||||
<bearing min='0' max='89'>
|
||||
<gain value='-3'/>
|
||||
</bearing>
|
||||
<bearing min='90' max='270'>
|
||||
<gain value='-200'/>
|
||||
</bearing>
|
||||
<bearing min='271' max='359'>
|
||||
<gain value='-3'/>
|
||||
</bearing>
|
||||
</elevation>
|
||||
<elevation min='-2' max='-2'>
|
||||
<bearing min='0' max='89'>
|
||||
<gain value='-2'/>
|
||||
</bearing>
|
||||
<bearing min='90' max='270'>
|
||||
<gain value='-200'/>
|
||||
</bearing>
|
||||
<bearing min='271' max='359'>
|
||||
<gain value='-2'/>
|
||||
</bearing>
|
||||
</elevation>
|
||||
<elevation min='-1' max='-1'>
|
||||
<bearing min='0' max='89'>
|
||||
<gain value='-1'/>
|
||||
</bearing>
|
||||
<bearing min='90' max='270'>
|
||||
<gain value='-200'/>
|
||||
</bearing>
|
||||
<bearing min='271' max='359'>
|
||||
<gain value='-1'/>
|
||||
</bearing>
|
||||
</elevation>
|
||||
<elevation min='0' max='90'>
|
||||
<bearing min='0' max='89'>
|
||||
<gain value='0'/>
|
||||
</bearing>
|
||||
<bearing min='90' max='270'>
|
||||
<gain value='-200'/>
|
||||
</bearing>
|
||||
<bearing min='271' max='359'>
|
||||
<gain value='0'/>
|
||||
</bearing>
|
||||
</elevation>
|
||||
</blockagepattern>
|
||||
</antennaprofile>
|
||||
```
|
||||
|
||||
## Run Demo
|
||||
1. Select `Open...` within the GUI
|
||||
1. Load `emane-demo-antenna.xml`
|
||||
1. Click 
|
||||
1. After startup completes, double click n1 to bring up the nodes terminal
|
||||
|
||||
## Example Demo
|
||||
This demo will cover running an EMANE event service to feed in antenna,
|
||||
location, and pathloss events to demonstrate how antenna profiles
|
||||
can be used.
|
||||
|
||||
### EMANE Event Dump
|
||||
On n1 lets dump EMANE events, so when we later run the EMANE event service
|
||||
you can monitor when and what is sent.
|
||||
|
||||
```shell
|
||||
root@n1:/tmp/pycore.44917/n1.conf# emaneevent-dump -i ctrl0
|
||||
```
|
||||
|
||||
### Send EMANE Events
|
||||
On the host machine create the following to send EMANE events.
|
||||
|
||||
> **WARNING:** make sure to set the `eventservicedevice` to the proper control
|
||||
> network value
|
||||
|
||||
Create `eventservice.xml` with the following contents.
|
||||
```xml
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE eventservice SYSTEM "file:///usr/share/emane/dtd/eventservice.dtd">
|
||||
<eventservice>
|
||||
<param name="eventservicegroup" value="224.1.2.8:45703"/>
|
||||
<param name="eventservicedevice" value="b.9001.da"/>
|
||||
<generator definition="eelgenerator.xml"/>
|
||||
</eventservice>
|
||||
```
|
||||
|
||||
Create `eelgenerator.xml` with the following contents.
|
||||
```xml
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE eventgenerator SYSTEM "file:///usr/share/emane/dtd/eventgenerator.dtd">
|
||||
<eventgenerator library="eelgenerator">
|
||||
<param name="inputfile" value="scenario.eel" />
|
||||
<paramlist name="loader">
|
||||
<item value="commeffect:eelloadercommeffect:delta"/>
|
||||
<item value="location,velocity,orientation:eelloaderlocation:delta"/>
|
||||
<item value="pathloss:eelloaderpathloss:delta"/>
|
||||
<item value="antennaprofile:eelloaderantennaprofile:delta"/>
|
||||
</paramlist>
|
||||
</eventgenerator>
|
||||
```
|
||||
|
||||
Create `scenario.eel` with the following contents.
|
||||
```shell
|
||||
0.0 nem:1 antennaprofile 1,0.0,0.0
|
||||
0.0 nem:4 antennaprofile 2,0.0,0.0
|
||||
#
|
||||
0.0 nem:1 pathloss nem:2,60 nem:3,60 nem:4,60
|
||||
0.0 nem:2 pathloss nem:3,60 nem:4,60
|
||||
0.0 nem:3 pathloss nem:4,60
|
||||
#
|
||||
0.0 nem:1 location gps 40.025495,-74.315441,3.0
|
||||
0.0 nem:2 location gps 40.025495,-74.312501,3.0
|
||||
0.0 nem:3 location gps 40.023235,-74.315441,3.0
|
||||
0.0 nem:4 location gps 40.023235,-74.312501,3.0
|
||||
0.0 nem:4 velocity 180.0,0.0,10.0
|
||||
#
|
||||
30.0 nem:1 velocity 20.0,0.0,10.0
|
||||
30.0 nem:1 orientation 0.0,0.0,10.0
|
||||
30.0 nem:1 antennaprofile 1,60.0,0.0
|
||||
30.0 nem:4 velocity 270.0,0.0,10.0
|
||||
#
|
||||
60.0 nem:1 antennaprofile 1,105.0,0.0
|
||||
60.0 nem:4 antennaprofile 2,45.0,0.0
|
||||
#
|
||||
90.0 nem:1 velocity 90.0,0.0,10.0
|
||||
90.0 nem:1 orientation 0.0,0.0,0.0
|
||||
90.0 nem:1 antennaprofile 1,45.0,0.0
|
||||
```
|
||||
|
||||
Run the EMANE event service, monitor what is output on n1 for events
|
||||
dumped and see the link changes within the CORE GUI.
|
||||
```shell
|
||||
emaneeventservice -l 3 eventservice.xml
|
||||
```
|
||||
|
||||
### Stages
|
||||
The events sent will trigger 4 different states.
|
||||
|
||||
* State 1
|
||||
* n2 and n3 see each other
|
||||
* n4 and n3 are pointing away
|
||||
* State 2
|
||||
* n2 and n3 see each other
|
||||
* n1 and n2 see each other
|
||||
* n4 and n3 see each other
|
||||
* State 3
|
||||
* n2 and n3 see each other
|
||||
* n4 and n3 are pointing at each other but blocked
|
||||
* State 4
|
||||
* n2 and n3 see each other
|
||||
* n4 and n3 see each other
|
|
@ -8,7 +8,7 @@ Introduction to using the EMANE event service and eel files to provide events.
|
|||
[EMANE Demo 1](https://github.com/adjacentlink/emane-tutorial/wiki/Demonstration-1)
|
||||
for more specifics.
|
||||
|
||||
### Run Demo
|
||||
## Run Demo
|
||||
1. Select `Open...` within the GUI
|
||||
1. Load `emane-demo-eel.xml`
|
||||
1. Click 
|
||||
|
@ -32,7 +32,7 @@ EMANE event service targeting the control network.
|
|||
> network value
|
||||
|
||||
Create `eventservice.xml` with the following contents.
|
||||
```shell
|
||||
```xml
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE eventservice SYSTEM "file:///usr/share/emane/dtd/eventservice.dtd">
|
||||
<eventservice>
|
||||
|
@ -57,7 +57,7 @@ These configuration items tell the EEL Generator which sentences to map to
|
|||
which plugin and whether to issue delta or full updates.
|
||||
|
||||
Create `eelgenerator.xml` with the following contents.
|
||||
```shell
|
||||
```xml
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE eventgenerator SYSTEM "file:///usr/share/emane/dtd/eventgenerator.dtd">
|
||||
<eventgenerator library="eelgenerator">
|
||||
|
|
|
@ -23,7 +23,7 @@ gpsd server and make EMANE location events available to gpsd clients.
|
|||
|
||||
### EMANE GPSD Event Daemon
|
||||
First create an `eventdaemon.xml` file on n1 with the following contents.
|
||||
```shell
|
||||
```xml
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE eventdaemon SYSTEM "file:///usr/share/emane/dtd/eventdaemon.dtd">
|
||||
<eventdaemon nemid="1">
|
||||
|
@ -34,7 +34,7 @@ First create an `eventdaemon.xml` file on n1 with the following contents.
|
|||
```
|
||||
|
||||
Then create the `gpsdlocationagent.xml` file on n1 with the following contents.
|
||||
```shell
|
||||
```xml
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE eventagent SYSTEM "file:///usr/share/emane/dtd/eventagent.dtd">
|
||||
<eventagent library="gpsdlocationagent">
|
||||
|
@ -59,12 +59,11 @@ EEL Events will be played out from the actual host machine over the designated
|
|||
control network interface. Create the following files in the same directory
|
||||
somewhere on your host.
|
||||
|
||||
Create `eventservice.xml` on the host machine with the following contents.
|
||||
|
||||
> **NOTE:** make sure the below eventservicedevice matches the control network
|
||||
> device being used on the host for EMANE
|
||||
|
||||
```shell
|
||||
Create `eventservice.xml` on the host machine with the following contents.
|
||||
```xml
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE eventservice SYSTEM "file:///usr/share/emane/dtd/eventservice.dtd">
|
||||
<eventservice>
|
||||
|
@ -75,7 +74,7 @@ Create `eventservice.xml` on the host machine with the following contents.
|
|||
```
|
||||
|
||||
Create `eelgenerator.xml` on the host machine with the following contents.
|
||||
```shell
|
||||
```xml
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE eventgenerator SYSTEM "file:///usr/share/emane/dtd/eventgenerator.dtd">
|
||||
<eventgenerator library="eelgenerator">
|
||||
|
|
|
@ -8,7 +8,7 @@ Introduction to using the precomputed propagation model.
|
|||
[EMANE Demo 1](https://github.com/adjacentlink/emane-tutorial/wiki/Demonstration-1)
|
||||
for more specifics.
|
||||
|
||||
### Run Demo
|
||||
## Run Demo
|
||||
1. Select `Open...` within the GUI
|
||||
1. Load `emane-demo-precomputed.xml`
|
||||
1. Click 
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue