Skip to content

Commit 6eba515

Browse files
Merge pull request #304 from ie3-institute/ms/#303-adapt-to-recent-changes-in-api
Adapting to recent changes in the API.
2 parents 21df118 + 0b3b7ba commit 6eba515

File tree

10 files changed

+43
-53
lines changed

10 files changed

+43
-53
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1919
- MobSim informs EVCS in SIMONA about estimated next arrivals [#254](https://github.com/ie3-institute/MobilitySimulator/issues/254)
2020
- Updated `Gradle` to version V8.10 [#282](https://github.com/ie3-institute/MobilitySimulator/issues/282)
2121
- Changed Spotless to format with trailing commas [#301](https://github.com/ie3-institute/MobilitySimulator/issues/301)
22+
- Adapting to recent changes in the API [#303](https://github.com/ie3-institute/MobilitySimulator/issues/303)
2223

2324
### Fixed
2425
- Adapting to SIMONA-API changes introduced by [PR#37](https://github.com/ie3-institute/simonaAPI/pull/37) [[#7](https://github.com/ie3-institute/MobilitySimulator/issues/7)]

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ dependencies {
5151
exclude group: 'com.github.ie3-institute'
5252
}
5353

54-
implementation 'com.github.ie3-institute:simonaAPI:0.5.0'
54+
implementation 'com.github.ie3-institute:simonaAPI:0.6.0'
5555

5656
implementation 'tech.units:indriya:2.2.1' // Physical units
5757
implementation "org.typelevel:squants_${scalaVersion}:1.8.3"

src/main/scala/edu/ie3/mobsim/ExtLink.scala

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -7,25 +7,14 @@
77
package edu.ie3.mobsim
88

99
import edu.ie3.simona.api.ExtLinkInterface
10-
import edu.ie3.simona.api.data.ExtDataSimulation
11-
import edu.ie3.simona.api.simulation.ExtSimulation
12-
13-
import java.util
10+
import edu.ie3.simona.api.simulation.{ExtSimAdapterData, ExtSimulation}
1411

1512
class ExtLink extends ExtLinkInterface {
1613

17-
private val simulator: MobilitySimulator.type = MobilitySimulator
18-
1914
@Override
20-
def getExtSimulation: ExtSimulation = {
21-
simulator
22-
}
15+
override def getExtSimulation: ExtSimulation = MobilitySimulator
2316

2417
@Override
25-
def getExtDataSimulations: util.List[ExtDataSimulation] = {
26-
val list = new util.ArrayList[ExtDataSimulation]()
27-
list.add(simulator)
28-
list
29-
}
30-
18+
override def setup(extSimAdapterData: ExtSimAdapterData): Unit =
19+
MobilitySimulator.setAdapterData(extSimAdapterData)
3120
}

src/main/scala/edu/ie3/mobsim/MobilitySimulator.scala

Lines changed: 22 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -31,24 +31,25 @@ import edu.ie3.mobsim.model.{
3131
EvType,
3232
}
3333
import edu.ie3.mobsim.utils.{IoUtils, PathsAndSources}
34-
import edu.ie3.simona.api.data.ExtDataSimulation
34+
import edu.ie3.simona.api.data.ExtDataConnection
35+
import edu.ie3.simona.api.data.ev.ExtEvDataConnection
3536
import edu.ie3.simona.api.data.ev.model.EvModel
36-
import edu.ie3.simona.api.data.ev.{ExtEvData, ExtEvSimulation}
3737
import edu.ie3.simona.api.simulation.ExtSimulation
3838
import edu.ie3.util.TimeUtil
3939
import squants.Length
4040
import squants.space.{Kilometers, Meters}
4141

4242
import java.time.temporal.ChronoUnit
4343
import java.time.{ZoneId, ZonedDateTime}
44+
import java.util
4445
import java.util.{Optional, UUID}
4546
import scala.collection.parallel.CollectionConverters._
4647
import scala.jdk.CollectionConverters._
4748
import scala.jdk.OptionConverters._
4849
import scala.util.Random
4950

5051
final class MobilitySimulator(
51-
evData: ExtEvData,
52+
evDataConnection: ExtEvDataConnection,
5253
chargingStations: Seq[ChargingStation],
5354
poisWithSizes: Map[
5455
CategoricalLocationDictionary.Value,
@@ -64,6 +65,14 @@ final class MobilitySimulator(
6465
thresholdChargingHubDistance: Length,
6566
round15: Boolean,
6667
) extends LazyLogging {
68+
69+
/** Activities to be performed every time the mobility simulator is triggered.
70+
*
71+
* @param tick
72+
* Current time tick
73+
* @return
74+
* Next time tick when simulation should be triggered again
75+
*/
6776
private def doActivity(tick: Long): Optional[java.lang.Long] = {
6877
/* Update current time */
6978
val currentTime = startTime.plusSeconds(tick)
@@ -73,15 +82,15 @@ final class MobilitySimulator(
7382
)
7483

7584
/* Receive available charging points of evcs from SIMONA and converting them to scala values */
76-
val availableChargingPoints = evData
85+
val availableChargingPoints = evDataConnection
7786
.requestAvailablePublicEvcs()
7887
.asScala
7988
.view
8089
.mapValues(_.toInt)
8190
.toMap
8291

8392
/* Receive current prices for public evcs situation and converting them to scala values */
84-
val currentPricesAtChargingStations = evData
93+
val currentPricesAtChargingStations = evDataConnection
8594
.requestCurrentPrices()
8695
.asScala
8796
.view
@@ -160,7 +169,7 @@ final class MobilitySimulator(
160169
val (departures, updatedChargingPoints) =
161170
handleDepartures(departingEvs, availableChargingPoints)
162171

163-
val departedEvs = evData
172+
val departedEvs = evDataConnection
164173
.requestDepartingEvs(
165174
EvMovement.buildMovementsUuidMap(departures)
166175
)
@@ -203,7 +212,7 @@ final class MobilitySimulator(
203212
.getTimeUntilNextDeparture(electricVehicles, currentTime)
204213
)
205214
.map(_ + tick)
206-
evData.provideArrivingEvs(
215+
evDataConnection.provideArrivingEvs(
207216
EvMovement.buildMovementsMap(arrivals),
208217
timeUntilNextEvent.map(long2Long).toJava,
209218
)
@@ -537,9 +546,7 @@ final class MobilitySimulator(
537546
}
538547

539548
object MobilitySimulator
540-
extends ExtSimulation
541-
with ExtEvSimulation
542-
with ExtDataSimulation
549+
extends ExtSimulation("MobilitySimulator")
543550
with LazyLogging {
544551

545552
private var simulator: Option[MobilitySimulator] = None
@@ -551,12 +558,10 @@ object MobilitySimulator
551558
/* random seed */
552559
val seed: Random = new scala.util.Random(6)
553560

554-
private var evData: Option[ExtEvData] = None
561+
private val evDataConnection: ExtEvDataConnection = new ExtEvDataConnection()
555562

556-
/** Set external EvAdapter during simulation setup */
557-
override def setExtEvData(evAdapter: ExtEvData): Unit = {
558-
this.evData = Some(evAdapter)
559-
}
563+
override def getDataConnections: util.Set[ExtDataConnection] =
564+
util.Set.of(evDataConnection)
560565

561566
/** Activities to be performed every time the mobility simulator is triggered.
562567
*
@@ -582,12 +587,6 @@ object MobilitySimulator
582587

583588
val initTick = -1L
584589

585-
val availableEvData = evData.getOrElse(
586-
throw InitializationException(
587-
"Unable to access external ev data, although setup should have provided them."
588-
)
589-
)
590-
591590
logger.info("Starting setup...")
592591

593592
logger.debug("Parsing config")
@@ -797,7 +796,7 @@ object MobilitySimulator
797796
)
798797

799798
val mobSim = new MobilitySimulator(
800-
availableEvData,
799+
evDataConnection,
801800
chargingStations,
802801
poisWithSizes,
803802
startTime,
@@ -822,7 +821,7 @@ object MobilitySimulator
822821
val firstArrivalTick = initTick + timeUntilFirstArrival
823822

824823
// Also provide first tick to the data service
825-
availableEvData.provideArrivingEvs(
824+
evDataConnection.provideArrivingEvs(
826825
Map.empty[UUID, java.util.List[EvModel]].asJava,
827826
Some(long2Long(firstArrivalTick)).toJava,
828827
)

src/main/scala/edu/ie3/mobsim/model/ChargingStation.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ object ChargingStation extends LazyLogging {
210210
cs.evcsType.getElectricCurrentType match {
211211
case ElectricCurrentType.AC =>
212212
Kilowatts(
213-
ev.getSRatedAC
213+
ev.getPRatedAC
214214
.min(
215215
cs.evcsType
216216
.getsRated()
@@ -222,7 +222,7 @@ object ChargingStation extends LazyLogging {
222222

223223
case ElectricCurrentType.DC =>
224224
Kilowatts(
225-
ev.getSRatedDC
225+
ev.getPRatedDC
226226
.min(cs.evcsType.getsRated())
227227
.to(KILOWATT)
228228
.getValue

src/main/scala/edu/ie3/mobsim/model/ElectricVehicle.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,10 +99,10 @@ final case class ElectricVehicle(
9999
PowerSystemUnits.KILOWATTHOUR,
100100
)
101101

102-
def getSRatedAC: ComparableQuantity[Power] = Quantities
102+
def getPRatedAC: ComparableQuantity[Power] = Quantities
103103
.getQuantity(evType.acPower.toKilowatts, PowerSystemUnits.KILOWATT)
104104

105-
def getSRatedDC: ComparableQuantity[Power] = Quantities
105+
def getPRatedDC: ComparableQuantity[Power] = Quantities
106106
.getQuantity(evType.dcPower.toKilowatts, PowerSystemUnits.KILOWATT)
107107

108108
def getStoredEnergy: ComparableQuantity[Energy] = storedEnergy

src/main/scala/edu/ie3/mobsim/model/TripSimulation.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1102,9 +1102,9 @@ object TripSimulation extends LazyLogging {
11021102
val availableChargingPowerForEV =
11031103
chargingHub.evcsType.getElectricCurrentType match {
11041104
case ElectricCurrentType.AC =>
1105-
ev.getSRatedAC.min(chargingPowerOfChargingHub).to(KILOWATT)
1105+
ev.getPRatedAC.min(chargingPowerOfChargingHub).to(KILOWATT)
11061106
case ElectricCurrentType.DC =>
1107-
ev.getSRatedDC.min(chargingPowerOfChargingHub).to(KILOWATT)
1107+
ev.getPRatedDC.min(chargingPowerOfChargingHub).to(KILOWATT)
11081108
}
11091109

11101110
val energyUntilFullCharge: Energy = KilowattHours(

src/main/scala/edu/ie3/mobsim/utils/IoUtils.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,9 +87,9 @@ final case class IoUtils private (
8787
"battery_capacity" ->
8888
ev.getEStorage.to(KILOWATTHOUR).getValue.doubleValue().toString,
8989
"max_charging_power_ac" ->
90-
ev.getSRatedAC.to(KILOWATT).getValue.doubleValue().toString,
90+
ev.getPRatedAC.to(KILOWATT).getValue.doubleValue().toString,
9191
"max_charging_power_dc" ->
92-
ev.getSRatedDC.to(KILOWATT).getValue.doubleValue().toString,
92+
ev.getPRatedDC.to(KILOWATT).getValue.doubleValue().toString,
9393
"consumption" ->
9494
ev.evType.consumption.toKilowattHoursPerKilometer.toString,
9595
"home_poi" -> ev.homePoi.id,

src/test/scala/edu/ie3/mobsim/MobilitySimulatorTestData.scala

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,17 @@
66

77
package edu.ie3.mobsim
88

9-
import org.apache.pekko.actor.ActorRef
109
import edu.ie3.mobsim.io.geodata.PoiEnums.PoiTypeDictionary
1110
import edu.ie3.mobsim.model.ElectricVehicle
1211
import edu.ie3.mobsim.utils.IoUtilsTestData
13-
import edu.ie3.simona.api.data.ev.ExtEvData
12+
import edu.ie3.simona.api.data.ev.ExtEvDataConnection
13+
import org.apache.pekko.actor.ActorRef
1414

1515
import java.util.UUID
1616

1717
trait MobilitySimulatorTestData extends IoUtilsTestData {
18-
val evData: ExtEvData = new ExtEvData(ActorRef.noSender, ActorRef.noSender)
18+
val evDataConnection: ExtEvDataConnection = new ExtEvDataConnection()
19+
evDataConnection.setActorRefs(ActorRef.noSender, ActorRef.noSender)
1920

2021
def setEvsAsParking(
2122
evs: Seq[ElectricVehicle]
@@ -83,7 +84,7 @@ trait MobilitySimulatorTestData extends IoUtilsTestData {
8384
}
8485

8586
def mobSim(): MobilitySimulator = new MobilitySimulator(
86-
evData = evData,
87+
evDataConnection = evDataConnection,
8788
chargingStations = chargingStations,
8889
poisWithSizes = poisWithSizes,
8990
startTime = givenSimulationStart,

src/test/scala/edu/ie3/mobsim/model/ElectricVehicleSpec.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ class ElectricVehicleSpec extends UnitSpec with TripSimulationTestData {
3232
) match {
3333
case ElectricVehicle(
3434
simulationStart,
35-
uuid,
35+
_,
3636
id,
3737
evType,
3838
homePoi,
@@ -86,7 +86,7 @@ class ElectricVehicleSpec extends UnitSpec with TripSimulationTestData {
8686
isChargingAtHomePossible = true,
8787
) match {
8888
case model: ElectricVehicle =>
89-
model.getSRatedDC shouldBe Quantities.getQuantity(
89+
model.getPRatedDC shouldBe Quantities.getQuantity(
9090
givenModel.acPower.toKilowatts,
9191
PowerSystemUnits.KILOWATT,
9292
)

0 commit comments

Comments
 (0)