Skip to content
Snippets Groups Projects
Commit 41704d97 authored by Terry D. Norbraten's avatar Terry D. Norbraten
Browse files

Merge origin/master

parents 0451b67a 6dada937
No related branches found
No related tags found
No related merge requests found
Showing
with 542 additions and 0 deletions
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<SimkitAssembly name="ArrivalProcessOpenDis7Assembly" version="1.0" package="dis7" xsi:noNamespaceSchemaLocation="http://diana.nps.edu/Simkit/assembly.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SimEntity name="aPOpenDis7" type="dis7.ArrivalProcessOpenDis7" description="">
<TerminalParameter name="address" value="" type="java.lang.String"/>
<TerminalParameter name="port" value="-1" type="int"/>
<FactoryParameter factory="simkit.random.RandomVariateFactory" type="simkit.random.RandomVariate">
<TerminalParameter name="" value="Exponential" type="String"/>
<TerminalParameter name="" value="1.7" type="Object..."/>
</FactoryParameter>
<Coordinate x="220.0" y="210.0"/>
</SimEntity>
<PropertyChangeListener name="numArrivalsStat" type="simkit.stat.SimpleStatsTimeVarying" mode="replicationStat" meanStatistics="false" countStatistics="true" description="">
<TerminalParameter name="p[0] : " value="N" type="java.lang.String"/>
<Coordinate x="220.0" y="330.0"/>
</PropertyChangeListener>
<PropertyChangeListener name="numEntityCreationsStat" type="simkit.stat.SimpleStatsTimeVarying" mode="replicationStat" meanStatistics="false" countStatistics="true" description="">
<TerminalParameter name="p[0] : " value="C" type="java.lang.String"/>
<Coordinate x="220.0" y="80.0"/>
</PropertyChangeListener>
<PropertyChangeListener name="numEntityRemovalsStat" type="simkit.stat.SimpleStatsTimeVarying" mode="replicationStat" meanStatistics="false" countStatistics="true" description="">
<TerminalParameter name="p[0] : " value="R" type="java.lang.String"/>
<Coordinate x="380.0" y="210.0"/>
</PropertyChangeListener>
<PropertyChangeListenerConnection property="N" listener="numArrivalsStat" source="aPOpenDis7" description=""/>
<PropertyChangeListenerConnection property="C" listener="numEntityCreationsStat" source="aPOpenDis7" description=""/>
<PropertyChangeListenerConnection property="R" listener="numEntityRemovalsStat" source="aPOpenDis7" description=""/>
<Output entity="aPOpenDis7"/>
<Schedule stopTime="100.0" verbose="false" saveReplicationData="false"/>
</SimkitAssembly>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<SimkitAssembly name="SimpleServerDis7Assembly" version="1.0" package="dis7" xsi:noNamespaceSchemaLocation="http://diana.nps.edu/Simkit/assembly.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SimEntity name="arrivalProcessOpenDis7" type="SimkitOpenDis7Examples.ArrivalProcessOpenDis7" description="">
<FactoryParameter factory="simkit.random.RandomVariateFactory" type="simkit.random.RandomVariate">
<TerminalParameter name="" value="Uniform" type="String"/>
<TerminalParameter name="" value="0.9, 2.2" type="Object..."/>
</FactoryParameter>
<Coordinate x="90.0" y="200.0"/>
</SimEntity>
<SimEntity name="simpleServer" type="SimkitOpenDis7Examples.SimpleServer" description="">
<TerminalParameter name="p[0] : " value="1" type="int"/>
<FactoryParameter factory="simkit.random.RandomVariateFactory" type="simkit.random.RandomVariate">
<TerminalParameter name="" value="Gamma" type="String"/>
<TerminalParameter name="" value="1.7, 1.8" type="Object..."/>
</FactoryParameter>
<Coordinate x="310.0" y="200.0"/>
</SimEntity>
<PropertyChangeListener name="numInQueueStat" type="simkit.stat.SimpleStatsTimeVarying" mode="replicationStat" meanStatistics="true" countStatistics="false" description="">
<TerminalParameter name="p[0] : " value="numberInQueue" type="java.lang.String"/>
<Coordinate x="310.0" y="80.0"/>
</PropertyChangeListener>
<PropertyChangeListener name="numAvailServersStat" type="simkit.stat.SimpleStatsTimeVarying" mode="replicationStat" meanStatistics="true" countStatistics="false" description="">
<TerminalParameter name="p[0] : " value="numberAvailableServers" type="java.lang.String"/>
<Coordinate x="510.0" y="200.0"/>
</PropertyChangeListener>
<PropertyChangeListener name="numArrivalsStat" type="simkit.stat.SimpleStatsTimeVarying" mode="replicationStat" meanStatistics="false" countStatistics="true" description="">
<TerminalParameter name="p[0] : " value="numberArrivals" type="java.lang.String"/>
<Coordinate x="90.0" y="80.0"/>
</PropertyChangeListener>
<PropertyChangeListener name="numServedStat" type="simkit.stat.SimpleStatsTimeVarying" mode="replicationStat" meanStatistics="false" countStatistics="true" description="">
<TerminalParameter name="p[0] : " value="numberServed" type="java.lang.String"/>
<Coordinate x="310.0" y="350.0"/>
</PropertyChangeListener>
<SimEventListenerConnection listener="simpleServer" source="arrivalProcessOpenDis7"/>
<PropertyChangeListenerConnection property="numberInQueue" listener="numInQueueStat" source="simpleServer" description=""/>
<PropertyChangeListenerConnection property="numberAvailableServers" listener="numAvailServersStat" source="simpleServer" description=""/>
<PropertyChangeListenerConnection property="numberArrivals" listener="numArrivalsStat" source="arrivalProcessOpenDis7" description=""/>
<PropertyChangeListenerConnection property="numberServed" listener="numServedStat" source="simpleServer" description=""/>
<Output entity="arrivalProcessOpenDis7"/>
<Output entity="simpleServer"/>
<Schedule stopTime="100000.0" verbose="false" saveReplicationData="false"/>
</SimkitAssembly>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<SimEntity name="ArrivalProcessOpenDis7" package="dis7" version="1.0" author="terry" extend="SimkitOpenDis7Examples.run.OpenDisHelper" xsi:noNamespaceSchemaLocation="http://diana.nps.edu/Simkit/simkit.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Parameter name="address" type="java.lang.String">
<Comment>An other than default network address</Comment>
</Parameter>
<Parameter name="port" type="int">
<Comment>An other than default network port</Comment>
</Parameter>
<Parameter name="tA" type="simkit.random.RandomVariate">
<Comment>Inter arrival time</Comment>
</Parameter>
<StateVariable name="N" type="int">
<Comment>Number of arrivals</Comment>
</StateVariable>
<StateVariable name="C" type="int">
<Comment>Number of entity creations</Comment>
</StateVariable>
<StateVariable name="R" type="int">
<Comment>Number of entity removals</Comment>
</StateVariable>
<Event name="Run" description="This event is fired first to facilitate initialization of all simulation state variables">
<Comment>Initialize all state variables</Comment>
<StateTransition state="N">
<Assignment value="0"/>
</StateTransition>
<StateTransition state="C">
<Assignment value="1"/>
</StateTransition>
<StateTransition state="R">
<Assignment value="0"/>
</StateTransition>
<Schedule delay="tA.generate()" event="Arrival" priority="DEFAULT"/>
<Code></Code>
<Coordinate x="60.0" y="60.0"/>
</Event>
<Event name="Arrival">
<Comment>Tallys the number of arrivals and schedules future arrival events with time tA</Comment>
<StateTransition state="N">
<Assignment value="N + 1"/>
</StateTransition>
<Schedule delay="tA.generate()" event="Arrival" priority="DEFAULT"/>
<Code>int everyTen = 10;
int oldC = C;
int oldR = R;
if ((N % everyTen) == 0) {
disChannel.removeEntity(entityStatePdu_1.getEntityID());
firePropertyChange("R", oldR, R+1);
} else {
disChannel.addEntity(entityStatePdu_1.getEntityID());
firePropertyChange("C", oldC, C+1);
}</Code>
<Coordinate x="270.0" y="50.0"/>
</Event>
<Code></Code>
</SimEntity>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<SimEntity name="SimpleServer" package="dis7" version="0.1" extend="SimEntityBase" xsi:noNamespaceSchemaLocation="http://diana.nps.edu/Simkit/simkit.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Parameter name="serviceTime" type="simkit.random.RandomVariate"/>
<Parameter name="totalNumberServers" type="int"/>
<StateVariable name="numberInQueue" type="int"/>
<StateVariable name="numberAvailableServers" type="int"/>
<Event name="Run">
<StateTransition state="numberInQueue">
<Assignment value="0"/>
</StateTransition>
<StateTransition state="numberAvailableServers">
<Assignment value="totalNumberServers"/>
</StateTransition>
<Coordinate x="20.0" y="30.0"/>
</Event>
<Event name="Arrival">
<StateTransition state="numberInQueue">
<Assignment value="numberInQueue + 1"/>
</StateTransition>
<Schedule delay="0.0" event="StartService" condition="numberAvailableServers &gt; 0" priority="DEFAULT">
<Comment></Comment>
<EdgeParameter value="numberAvailableServers"/>
</Schedule>
<Coordinate x="20.0" y="130.0"/>
</Event>
<Event name="StartService">
<Comment></Comment>
<Argument name="arg_0" type="int"/>
<StateTransition state="numberInQueue">
<Assignment value="numberInQueue - 1"/>
</StateTransition>
<StateTransition state="numberAvailableServers">
<Assignment value="numberAvailableServers - 1"/>
</StateTransition>
<Schedule delay="serviceTime.generate()" event="EndService" priority="DEFAULT"/>
<Code>System.out.println("numberAvailableServers"+arg_0);</Code>
<Coordinate x="160.0" y="130.0"/>
</Event>
<Event name="EndService">
<StateTransition state="numberAvailableServers">
<Assignment value="numberAvailableServers + 1"/>
</StateTransition>
<Schedule delay="0.0" event="StartService" condition="numberInQueue &gt; 0" priority="HIGH"/>
<Coordinate x="330.0" y="130.0"/>
</Event>
</SimEntity>
package dis7;
// Standard library imports
import java.util.*;
// Application specific imports
import simkit.*;
import simkit.random.*;
public class ArrivalProcessOpenDis7 extends SimkitOpenDis7Examples.run.OpenDisHelper {
/* Simulation Parameters */
/* inherited parameter java.lang.String address */
/* inherited parameter int port */
/** Inter arrival time */
private simkit.random.RandomVariate tA;
/* Simulation State Variables */
/** Number of arrivals */
protected int N;
/** Number of entity creations */
protected int C;
/** Number of entity removals */
protected int R;
@viskit.ParameterMap (
names = {"address",
"port",
"tA"},
types = {"java.lang.String",
"int",
"simkit.random.RandomVariate"}
)
public ArrivalProcessOpenDis7(java.lang.String address,
int port,
simkit.random.RandomVariate tA) {
super(address, port);
setTA(tA);
}
@Override
public void reset() {
super.reset();
N = 0;
C = 1;
R = 0;
}
/** Bootstraps the first simulation event */
public void doRun() {
firePropertyChange("N", getN());
firePropertyChange("C", getC());
firePropertyChange("R", getR());
waitDelay("Arrival", tA.generate(), Priority.DEFAULT);
}
public void doArrival() {
/* Code insertion for Event Arrival */
int everyTen = 10;
int oldC = C;
int oldR = R;
if ((N % everyTen) == 0) {
disChannel.removeEntity(entityStatePdu_1.getEntityID());
firePropertyChange("R", oldR, R+1);
} else {
disChannel.addEntity(entityStatePdu_1.getEntityID());
firePropertyChange("C", oldC, C+1);
}
/* End Code insertion */
/* StateTransition for N */
int _old_N = getN();
N = N + 1;
firePropertyChange("N", _old_N, getN());
waitDelay("Arrival", tA.generate(), Priority.DEFAULT);
}
public final void setTA(simkit.random.RandomVariate tA) {
this.tA = tA;
}
public simkit.random.RandomVariate getTA() {
return tA;
}
public int getN() {
return N;
}
public int getC() {
return C;
}
public int getR() {
return R;
}
/* Inserted code for ArrivalProcessOpenDis7 */
/* End inserted code */
}
package dis7;
// Standard library imports
import java.util.*;
// Application specific imports
import simkit.*;
import simkit.random.*;
public class SimpleServer extends SimEntityBase {
/* Simulation Parameters */
private simkit.random.RandomVariate serviceTime;
private int totalNumberServers;
/* Simulation State Variables */
protected int numberInQueue;
protected int numberAvailableServers;
@viskit.ParameterMap (
names = {"serviceTime",
"totalNumberServers"},
types = {"simkit.random.RandomVariate",
"int"}
)
/** Creates a new default instance of SimpleServer */
public SimpleServer() {
}
public SimpleServer(simkit.random.RandomVariate serviceTime,
int totalNumberServers) {
setServiceTime(serviceTime);
setTotalNumberServers(totalNumberServers);
}
@Override
public void reset() {
super.reset();
numberInQueue = 0;
numberAvailableServers = totalNumberServers;
}
/** Bootstraps the first simulation event */
public void doRun() {
firePropertyChange("numberInQueue", getNumberInQueue());
firePropertyChange("numberAvailableServers", getNumberAvailableServers());
}
public void doArrival() {
/* StateTransition for numberInQueue */
int _old_NumberInQueue = getNumberInQueue();
numberInQueue = numberInQueue + 1;
firePropertyChange("numberInQueue", _old_NumberInQueue, getNumberInQueue());
if (numberAvailableServers > 0) {
waitDelay("StartService", 0.0, Priority.DEFAULT, (Object) numberAvailableServers);
}
}
public void doStartService(int arg_0) {
/* Code insertion for Event StartService */
System.out.println("numberAvailableServers"+arg_0);
/* End Code insertion */
/* StateTransition for numberInQueue */
int _old_NumberInQueue = getNumberInQueue();
numberInQueue = numberInQueue - 1;
firePropertyChange("numberInQueue", _old_NumberInQueue, getNumberInQueue());
/* StateTransition for numberAvailableServers */
int _old_NumberAvailableServers = getNumberAvailableServers();
numberAvailableServers = numberAvailableServers - 1;
firePropertyChange("numberAvailableServers", _old_NumberAvailableServers, getNumberAvailableServers());
waitDelay("EndService", serviceTime.generate(), Priority.DEFAULT);
}
public void doEndService() {
/* StateTransition for numberAvailableServers */
int _old_NumberAvailableServers = getNumberAvailableServers();
numberAvailableServers = numberAvailableServers + 1;
firePropertyChange("numberAvailableServers", _old_NumberAvailableServers, getNumberAvailableServers());
if (numberInQueue > 0) {
waitDelay("StartService", 0.0, Priority.HIGH);
}
}
public final void setServiceTime(simkit.random.RandomVariate serviceTime) {
this.serviceTime = serviceTime;
}
public simkit.random.RandomVariate getServiceTime() {
return serviceTime;
}
public final void setTotalNumberServers(int totalNumberServers) {
this.totalNumberServers = totalNumberServers;
}
public int getTotalNumberServers() {
return totalNumberServers;
}
public int getNumberInQueue() {
return numberInQueue;
}
public int getNumberAvailableServers() {
return numberAvailableServers;
}
@Override
public String toString() {
return getName();
}
}
package dis7;
public class SimpleServerDis7Assembly extends viskit.assembly.ViskitAssembly {
public SimpleServerDis7Assembly() {
super();
setStopTime(100000.0);
setVerbose(false);
setNumberReplications(1);
setPrintReplicationReports(true);
setPrintSummaryReport(true);
setSaveReplicationData(false);
}
@Override
protected void createSimEntities() {
addSimEntity( "arrivalProcessOpenDis7",
new SimkitOpenDis7Examples.ArrivalProcessOpenDis7(
simkit.random.RandomVariateFactory.getInstance(
"Uniform",
0.9, 2.2
)
)
);
addSimEntity( "simpleServer",
new SimkitOpenDis7Examples.SimpleServer(
1,
simkit.random.RandomVariateFactory.getInstance(
"Gamma",
1.7, 1.8
)
)
);
addSimEventListenerConnection("simpleServer", "arrivalProcessOpenDis7");
super.createSimEntities();
}
@Override
public void createPropertyChangeListeners() {
addPropertyChangeListenerConnection("numInQueueStat", "numberInQueue", "simpleServer");
addPropertyChangeListenerConnection("numAvailServersStat", "numberAvailableServers", "simpleServer");
addPropertyChangeListenerConnection("numArrivalsStat", "numberArrivals", "arrivalProcessOpenDis7");
addPropertyChangeListenerConnection("numServedStat", "numberServed", "simpleServer");
super.createPropertyChangeListeners();
}
@Override
public void createReplicationStats() {
addReplicationStats("numInQueueStat",
new simkit.stat.SimpleStatsTimeVarying(
"numberInQueue"
)
);
addReplicationStatsListenerConnection("numInQueueStat", "numberInQueue", "simpleServer");
addReplicationStats("numAvailServersStat",
new simkit.stat.SimpleStatsTimeVarying(
"numberAvailableServers"
)
);
addReplicationStatsListenerConnection("numAvailServersStat", "numberAvailableServers", "simpleServer");
addReplicationStats("numArrivalsStat",
new simkit.stat.SimpleStatsTimeVarying(
"numberArrivals"
)
);
addReplicationStatsListenerConnection("numArrivalsStat", "numberArrivals", "arrivalProcessOpenDis7");
addReplicationStats("numServedStat",
new simkit.stat.SimpleStatsTimeVarying(
"numberServed"
)
);
addReplicationStatsListenerConnection("numServedStat", "numberServed", "simpleServer");
super.createReplicationStats();
}
@Override
public void createDesignPointStats() {
super.createDesignPointStats();
}
@Override
public void printInfo() {
System.out.println();
System.out.println("Entity Details");
System.out.println("--------------");
System.out.println(getSimEntityByName("arrivalProcessOpenDis7"));
System.out.println(getSimEntityByName("simpleServer"));
System.out.println("--------------");
}
public static void main(String[] args) {
SimpleServerDis7Assembly simpleServerDis7Assembly = new SimpleServerDis7Assembly();
new Thread(simpleServerDis7Assembly).start();
}
}
<?xml version="1.0" encoding="UTF-8"?>
<ViskitProject name="BavlsikViskitOpenDis7">
<AnalystReports name="AnalystReports" />
<AssembliesDirectory name="Assemblies" />
<EventGraphsDirectory name="EventGraphs" />
<BuildDirectory name="build">
<ClassesDirectory name="classes" />
<SourceDirectory name="src" />
</BuildDirectory>
<DistDirectory name="dist" />
<LibDirectory name="lib" />
<Project name="BavlsikViskitOpenDis7" />
<Cached>
<EventGraphs xml="C:/Users/tbavl/Documents/NetworkedGraphicsMV3500/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/EventGraphs/dis7/SimpleServer.xml" />
<EventGraphs class="C:/Users/tbavl/Documents/NetworkedGraphicsMV3500/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/build/classes/dis7/SimpleServer.class" digest="-679a97428288e5d644ede38d9ac1dfaa" xml="C:/Users/tbavl/Documents/NetworkedGraphicsMV3500/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/EventGraphs/dis7/SimpleServer.xml" />
</Cached>
</ViskitProject>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment