Skip to content

Commit f1fdefd

Browse files
committed
[MINOR] Use new time-based events
1 parent c5403d4 commit f1fdefd

File tree

5 files changed

+19
-20
lines changed

5 files changed

+19
-20
lines changed

examples/fault_environment.ipynb

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -69,9 +69,9 @@
6969
" satellite.simulator.createNewEvent(\n",
7070
" f\"add{self.name}Fault\",\n",
7171
" satellite.dynamics.dyn_rate,\n",
72-
" True,\n",
73-
" [f\"self.TotalSim.CurrentNanos>={self.time}\"],\n",
74-
" [\n",
72+
" eventActive=True,\n",
73+
" conditionTime=self.time,\n",
74+
" actionList=[\n",
7575
" f\"self.faultList[{self.uniqueFaultIdx}].execute({satellite._satellite_command})\",\n",
7676
" f\"self.faultList[{self.uniqueFaultIdx}].print({satellite._satellite_command})\",\n",
7777
" ],\n",
@@ -114,9 +114,9 @@
114114
"\n",
115115
" def print(self, satellite):\n",
116116
" if self.wheelIdx == \"all\":\n",
117-
" self.message = f\"RW Power Fault: all RW's power limit reduced to {self.reducedLimit} Watts at {self.time*macros.NANO2MIN} minutes!\"\n",
117+
" self.message = f\"RW Power Fault: all RW's power limit reduced to {self.reducedLimit} Watts at {self.time * macros.NANO2MIN} minutes!\"\n",
118118
" else:\n",
119-
" self.message = f\"RW Power Fault: RW{self.wheelIdx}'s power limit reduced to {self.reducedLimit} Watts at {self.time*macros.NANO2MIN} minutes!\"\n",
119+
" self.message = f\"RW Power Fault: RW{self.wheelIdx}'s power limit reduced to {self.reducedLimit} Watts at {self.time * macros.NANO2MIN} minutes!\"\n",
120120
" super().print_message(self.message, satellite)"
121121
]
122122
},
@@ -135,7 +135,6 @@
135135
"outputs": [],
136136
"source": [
137137
"class CustomDynModel(dyn.FullFeaturedDynModel):\n",
138-
"\n",
139138
" @property\n",
140139
" def solar_angle_norm(self) -> float:\n",
141140
" sun_vec_N = (\n",
@@ -283,8 +282,8 @@
283282
" for i in range(4):\n",
284283
" rwConfigElementMsg = messaging.RWConfigElementMsgPayload()\n",
285284
" rwConfigElementMsg.gsHat_B = self.dynamics.Gs[:, i]\n",
286-
" rwConfigElementMsg.Js = self.dynamics.rwFactory.rwList[f\"RW{i+1}\"].Js\n",
287-
" rwConfigElementMsg.uMax = self.dynamics.rwFactory.rwList[f\"RW{i+1}\"].u_max\n",
285+
" rwConfigElementMsg.Js = self.dynamics.rwFactory.rwList[f\"RW{i + 1}\"].Js\n",
286+
" rwConfigElementMsg.uMax = self.dynamics.rwFactory.rwList[f\"RW{i + 1}\"].u_max\n",
288287
" rwConfigElementList.append(rwConfigElementMsg)\n",
289288
" rwConstellationConfig.reactionWheels = rwConfigElementList\n",
290289
" self.rwConstellationConfigInMsg = messaging.RWConstellationMsg().write(\n",
@@ -544,7 +543,6 @@
544543
"source": [
545544
"total_reward = 0.0\n",
546545
"while True:\n",
547-
"\n",
548546
" observation, reward, terminated, truncated, info = env.step(\n",
549547
" env.action_space.sample()\n",
550548
" )\n",
@@ -558,6 +556,11 @@
558556
}
559557
],
560558
"metadata": {
559+
"kernelspec": {
560+
"display_name": ".venv",
561+
"language": "python",
562+
"name": "python3"
563+
},
561564
"language_info": {
562565
"codemirror_mode": {
563566
"name": "ipython",
@@ -568,7 +571,7 @@
568571
"name": "python",
569572
"nbconvert_exporter": "python",
570573
"pygments_lexer": "ipython3",
571-
"version": "3.11.12"
574+
"version": "3.12.10"
572575
}
573576
},
574577
"nbformat": 4,

src/bsk_rl/gym.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -132,10 +132,10 @@ def __init__(
132132
self._configure_logging(log_level, log_dir)
133133
if vizard_dir is not None:
134134
vizard.VIZARD_PATH = vizard_dir
135-
if vizard_settings is not None:
136-
logger.warning(
137-
"Vizard settings provided but Vizard is not enabled. Ignoring settings."
138-
)
135+
if vizard_settings is not None and vizard_dir is None:
136+
logger.warning(
137+
"Vizard settings provided but Vizard is not enabled. Ignoring settings."
138+
)
139139
self.vizard_settings = vizard_settings if vizard_settings is not None else {}
140140

141141
if isinstance(satellites, Satellite):

src/bsk_rl/sats/satellite.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -362,7 +362,7 @@ def side_effect(sim):
362362
self._timed_terminal_event_name,
363363
macros.sec2nano(self.simulator.sim_rate),
364364
True,
365-
conditionFunction=lambda sim: sim.sim_time >= t_close,
365+
conditionTime=macros.sec2nano(t_close),
366366
actionFunction=side_effect,
367367
terminal=self.variable_interval,
368368
)

src/bsk_rl/sim/simulator.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ def run(self) -> None:
179179
"max_step_duration",
180180
mc.sec2nano(self.sim_rate),
181181
True,
182-
conditionFunction=lambda sim: sim.sim_time >= step_end_time,
182+
conditionTime=mc.sec2nano(step_end_time),
183183
actionFunction=lambda sim: sim.logger.info("Max step duration reached"),
184184
terminal=True,
185185
)
@@ -193,8 +193,6 @@ def delete_event(self, event_name) -> None:
193193
necessary to remove created for tasks that are no longer needed (even if it is
194194
inactive), or else significant time is spent processing the event at each step.
195195
"""
196-
event = self.eventMap[event_name]
197-
self.eventList.remove(event)
198196
del self.eventMap[event_name]
199197

200198
def get_satellite(self, name: str) -> "Satellite":

tests/unittest/sim/test_simulator.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,8 @@ def test_delete_event(self, simbase_init):
5454
sim = self.mock_sim()
5555
event = MagicMock()
5656
sim.eventMap = {"event": event, "other": MagicMock()}
57-
sim.eventList = [MagicMock(), event, MagicMock()]
5857
sim.delete_event("event")
5958
assert "event" not in sim.eventMap
60-
assert event not in sim.eventList
6159

6260
@pytest.mark.parametrize(
6361
"start_time,step_duration,time_limit,stop_time",

0 commit comments

Comments
 (0)