From 6dada937e2dd2fb2f6aa175fa38096da13d4f083 Mon Sep 17 00:00:00 2001
From: tbavl <tbavl@MSI.ern.nps.edu>
Date: Mon, 16 Sep 2024 11:28:01 -0700
Subject: [PATCH] Bavlsik Viskit Assignment (Working)

---
 .../AnalystReports/Viskit.ico                 | Bin 0 -> 2238 bytes
 .../dis7/ArrivalProcessOpenDis7Assembly.xml   |  29 ++++
 .../dis7/SimpleServerDis7Assembly.xml         |  42 ++++++
 .../dis7/ArrivalProcessOpenDis7.xml           |  56 ++++++++
 .../EventGraphs/dis7/SimpleServer.xml         |  46 +++++++
 .../build/classes/dis7/SimpleServer.class     | Bin 0 -> 3035 bytes
 .../src/dis7/ArrivalProcessOpenDis7.java      | 113 ++++++++++++++++
 .../build/src/dis7/SimpleServer.java          | 127 ++++++++++++++++++
 .../src/dis7/SimpleServerDis7Assembly.java    | 111 +++++++++++++++
 .../BavlsikViskitOpenDis7/viskitProject.xml   |  18 +++
 10 files changed, 542 insertions(+)
 create mode 100644 assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/AnalystReports/Viskit.ico
 create mode 100644 assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/Assemblies/dis7/ArrivalProcessOpenDis7Assembly.xml
 create mode 100644 assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/Assemblies/dis7/SimpleServerDis7Assembly.xml
 create mode 100644 assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/EventGraphs/dis7/ArrivalProcessOpenDis7.xml
 create mode 100644 assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/EventGraphs/dis7/SimpleServer.xml
 create mode 100644 assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/build/classes/dis7/SimpleServer.class
 create mode 100644 assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/build/src/dis7/ArrivalProcessOpenDis7.java
 create mode 100644 assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/build/src/dis7/SimpleServer.java
 create mode 100644 assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/build/src/dis7/SimpleServerDis7Assembly.java
 create mode 100644 assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/viskitProject.xml

diff --git a/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/AnalystReports/Viskit.ico b/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/AnalystReports/Viskit.ico
new file mode 100644
index 0000000000000000000000000000000000000000..c9d5908c91e327600695feac75e406ee99fbb30a
GIT binary patch
literal 2238
zcmeHHNs`+z3<M+^qBOQ=&z{sAbJqv*8vThs$Yb;;rkfDyrD}4Vli{MRZm=8RVu>g|
zZ*PL{D1W2KClUFL0ZRU0kbf_7&XV&gc}<e|ysok){$k9t<diTL$qU9TvM#_2_<6xR
z>iCO+`75*;g;wOU%#sRT;0w<Me$XcRCg^i|ucaG*+kx8-eB=)B1!9*4Nwo+P07J!B
zkS`eOTb}bc=Pa0ShBUkIm-8&`NO-6M1%sX96V!IQZ#%@Ga4E?$neJYYNyL|`hfsf+
zLL2a{>gnCU=~bgL^nK6QrpT6m1;HLr9ok2rzVB3R%ikBGuBa=hzi;}z6OX<yqdUXQ
zy#CQ~UzRE|I{ZQX_i5Vi@0@^PDWMJr<`Gz|6Qg5MBmTT0c@pcsf~fOhqG1Z{KnxB;
zJk~AtCRL7A|BMZvw$>^~_~O8V?V+uU2kFO&-Smpj!_(RMPd~?ToW?sppKzF_I7UF%
zTj)Fn^cTQYh$B~H&l_=I5>fNDe$^jB#6g+WJfANNd67=~T3?$X?iag0>3O?O4IRAy
zHoeu4F?QWU<b@2_me|Gk5F?he5va-AS-eUIji~54%MIm!qy@F7(<=0Z9V!>eCb)ur
NKL7uJwo)Jc@DGr|N>2a)

literal 0
HcmV?d00001

diff --git a/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/Assemblies/dis7/ArrivalProcessOpenDis7Assembly.xml b/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/Assemblies/dis7/ArrivalProcessOpenDis7Assembly.xml
new file mode 100644
index 0000000000..597e3466d1
--- /dev/null
+++ b/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/Assemblies/dis7/ArrivalProcessOpenDis7Assembly.xml
@@ -0,0 +1,29 @@
+<?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>
diff --git a/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/Assemblies/dis7/SimpleServerDis7Assembly.xml b/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/Assemblies/dis7/SimpleServerDis7Assembly.xml
new file mode 100644
index 0000000000..e8bee49d22
--- /dev/null
+++ b/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/Assemblies/dis7/SimpleServerDis7Assembly.xml
@@ -0,0 +1,42 @@
+<?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
diff --git a/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/EventGraphs/dis7/ArrivalProcessOpenDis7.xml b/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/EventGraphs/dis7/ArrivalProcessOpenDis7.xml
new file mode 100644
index 0000000000..54be5a93d6
--- /dev/null
+++ b/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/EventGraphs/dis7/ArrivalProcessOpenDis7.xml
@@ -0,0 +1,56 @@
+<?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>
diff --git a/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/EventGraphs/dis7/SimpleServer.xml b/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/EventGraphs/dis7/SimpleServer.xml
new file mode 100644
index 0000000000..3af2241915
--- /dev/null
+++ b/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/EventGraphs/dis7/SimpleServer.xml
@@ -0,0 +1,46 @@
+<?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>
diff --git a/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/build/classes/dis7/SimpleServer.class b/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/build/classes/dis7/SimpleServer.class
new file mode 100644
index 0000000000000000000000000000000000000000..c41ce06056b3119b15c53eda820beaae2193b9f6
GIT binary patch
literal 3035
zcma)8YgZFj6x{=XKpa6L_zI|49~cyDeYM6HPl-lF60wR^2XcjxWG0=NL}_c^ub<FQ
ze(J}5Xk8_3U90^8{Y_n6-6u1UK(bg}EHZcQJ!jv2_C4p^`TO5De*qZ9_YpLqIgF5w
z7PM;UcFp{<=?$mN{DkG1-pZ)qDh;g{P0REyYiJ%gJ{v(B+QW$G*alrgSJrgTi$fu&
z(#k0*M?;6JJQ<q{Dr4peaBv_MAUlSYwe!O>mB*~%n1-hkK4^!IPVCUoL+_038M#}<
z{Je5}P*+1}ASs4Ti0arWY+D>f({}Rd(Xk7=HEg#kE=lW7Q5CtbmXy`KI`+wG)T=|4
z<z5|qvb@W89w`}S&X`||#%;qc3HhLoejL)UV^MiNvGrZ3N-~1OI1<KD9mg<0Rh}6o
zV>oA6i^ECFQ;VWXxMbvt>h@Fa#7I(g775uVu451<$n~k|sA<P8D92kFTOts{IW|z^
zmG&IdT1?c;+@61?7CfrihCaa>)^SQG?_H<7Ikqs~VMJ9XK7#n35gunXr2f~I^(5x%
zr-ave4SL!$oVE05$9uRCMncC$T++}PWXZH++78o?qK!{Xj@(UUDCt@Xtu0pcx}xJM
zMl`fPH%xC_<qY~<Z@_uH&btxAH6zLYlCr!+JH{{`#)OVZT-zX3dd2lro+V)yJ?5+*
zu4xaGo#pXtl#x$FS!78a*KtF`?!2+A#%ycB@a~!35=X9QSRV7bXJa-5=NiFH+zR8i
zj%nP{u(NVV8}X@5L3Ybo0#YM*03m{>HAE(?Y*3Ao?ss*};+}?WZf%A3t%csOK)2yO
z9)vNc;~_rK5Zj`dHMA`%OF69TO1~JFBYv#oiJWg}DtT>6(raGF0<sK1QqzzY(LGRG
z5<vv?7_+ln?M#`L^2;tGwaKKODY8T5)vW27oEWhz7Pn_oRymE5=}I4)HXMR`%DHJ2
z5^NY2-?-l5trX-L#4+T@JhY)Hkvyf<(7$!-VoM@k)+QS!Vb&gT9Fuj<R>U-4SmwR~
z-;S(ZoA|7QtX(}A_Dm|Vp=TbTAY16naC+#{s8P0g+)A1Q&pvGzodq>%iez0(>-8=@
zBnicg9<^=H^&F#cQ+Z2vmhJ9iCTrtXsCBmDWdxt%voJoFy#7MN;cE9Vt&+X0hW)+$
zRG%~!JlkPS{!p8rfuX<S6t9Auau26$d%0Ms?Poy})Fk!>#|#g#fqBEat|K{S<Z@|~
zcMlIDX)#~Na)#?FH;k_}9H}#JL^X_WHSFKoly|2e7cY-CUR^+lzpOuwn&eih%<%52
zJb4ZA*#Tx0TDh+H*3UPM&zAUa(0<`S!&CmsJqR2mTt5~$>gD_r=gc`YxtMi{{j4%v
zc9G*+3-bIGz|*v9=Ce}(<AY^{<Gp2UuR=!&3SMU+96>vdlFu=^^2QAS&JjQuMG4Rq
zZ(c=rJpL>8tRl7<V~`jph;b5K7^080j*%b*!HC79`{QLC_#JPRaXcP9$(JGjr3%(j
z;d>g}afV@?qochJ^pfzR#Dt(+6e8WBCqgN@KSrDYyZKMNUB+py#$KT}9zECb8t;ZU
zdB0iaXqYbJ@;%wIsUq(_ZU7`G+eLnqT%sCRcpqNHI6s;ST%i{KU|de-L+s$M2>T;v
zMY-H-jK<zz3MeBb1TOisvOcZedRmP6ve?8zw4o#?`+OTwVvTxqh6b5G@V*9e_h)^^
zenK3j5WqF)xIwj3i1Ge7#k=Dy?vVQoGW=V{U2=8S#dA3l@e-nXMZB1ZCkz7dY8g=4
zS3LBJc#moc)Jpb%lFd=Fhm`CQC3}nuFshPWU>B0_#z3+|++GN@#s^oCsh+r>-C1HO
zTDtH8`#wJXVxSg3)6tJzG80VyF8P4uSWcq~9b3ho&Ct1^Ad0l}?Q5a;{Im(WKqG$r
zH8AboY${aw)z!c>w%POrjY`PYnU-N}j_oB&;5kV(;RROsY@^dB{Qn4F@-4#ASNI0s
GVefzY-NhjQ

literal 0
HcmV?d00001

diff --git a/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/build/src/dis7/ArrivalProcessOpenDis7.java b/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/build/src/dis7/ArrivalProcessOpenDis7.java
new file mode 100644
index 0000000000..9a7dc529eb
--- /dev/null
+++ b/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/build/src/dis7/ArrivalProcessOpenDis7.java
@@ -0,0 +1,113 @@
+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 */
+}
diff --git a/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/build/src/dis7/SimpleServer.java b/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/build/src/dis7/SimpleServer.java
new file mode 100644
index 0000000000..f253f8f984
--- /dev/null
+++ b/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/build/src/dis7/SimpleServer.java
@@ -0,0 +1,127 @@
+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();
+    }
+}
diff --git a/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/build/src/dis7/SimpleServerDis7Assembly.java b/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/build/src/dis7/SimpleServerDis7Assembly.java
new file mode 100644
index 0000000000..6ee77507af
--- /dev/null
+++ b/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/build/src/dis7/SimpleServerDis7Assembly.java
@@ -0,0 +1,111 @@
+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();
+    }
+}
diff --git a/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/viskitProject.xml b/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/viskitProject.xml
new file mode 100644
index 0000000000..27d7970fdf
--- /dev/null
+++ b/assignments/src/MV3500Cohort2024JulySeptember/projects/Bavlsik/BavlsikViskitOpenDis7/viskitProject.xml
@@ -0,0 +1,18 @@
+<?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>
+
-- 
GitLab