Skip to content

Commit 1dde6de

Browse files
hadiTabshalinmehtalgsvl
authored andcommitted
AUTO-5174: Add support for setting date as well as time
1 parent fa09146 commit 1dde6de

File tree

2 files changed

+33
-0
lines changed

2 files changed

+33
-0
lines changed

lgsvl/simulator.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313

1414
from collections import namedtuple
1515
from environs import Env
16+
from datetime import datetime
17+
import re
1618

1719
RaycastHit = namedtuple("RaycastHit", "distance point normal")
1820

@@ -177,10 +179,29 @@ def weather(self, state):
177179
def time_of_day(self):
178180
return self.remote.command("environment/time/get")
179181

182+
@property
183+
def current_datetime(self):
184+
date_time_str = self.remote.command("simulator/datetime/get")
185+
date_time_arr = list(map(int, re.split('[. :]', date_time_str)))
186+
date_time = datetime(
187+
date_time_arr[2],
188+
date_time_arr[1],
189+
date_time_arr[0],
190+
date_time_arr[3],
191+
date_time_arr[4],
192+
date_time_arr[5]
193+
)
194+
return date_time
195+
180196
@accepts((int, float), bool)
181197
def set_time_of_day(self, time, fixed=True):
182198
self.remote.command("environment/time/set", {"time": time, "fixed": fixed})
183199

200+
@accepts(datetime, bool)
201+
def set_date_time(self, date_time, fixed=True):
202+
date_time = date_time.__str__()
203+
self.remote.command("environment/datetime/set", {"datetime": date_time, "fixed": fixed})
204+
184205
def get_spawn(self):
185206
spawns = self.remote.command("map/spawn/get")
186207
return [Spawn.from_json(spawn) for spawn in spawns]

quickstart/19-time-of-day.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
from environs import Env
99
import lgsvl
10+
from datetime import datetime
1011

1112
env = Env()
1213

@@ -40,3 +41,14 @@
4041
sim.run(5)
4142

4243
print(sim.time_of_day)
44+
45+
input("Press Enter to set date to July 1 2020 and time to 19:00")
46+
dt = datetime(2020, 7, 1, 19, 0, 0, 0)
47+
sim.set_date_time(dt, False)
48+
print(sim.time_of_day)
49+
print(sim.current_datetime)
50+
51+
sim.run(5)
52+
53+
print(sim.time_of_day)
54+
print(sim.current_datetime)

0 commit comments

Comments
 (0)