Skip to content

Commit 0ec6070

Browse files
committed
Added simple dpsim simulator reset
Signed-off-by: SystemsPurge <[email protected]>
1 parent 412be7b commit 0ec6070

File tree

2 files changed

+20
-4
lines changed

2 files changed

+20
-4
lines changed

villas/controller/components/simulator.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ def start(self, payload):
108108
self.sim_workdir = os.path.join(self.workdir, 'simulation',
109109
str(self.simuuid))
110110

111-
self.sim_logdir = self.sim_workdir + '/logs/'
111+
self.sim_logdir = self.sim_workdir + '/Logs/'
112112
self.logger.info('Simulation working directory: %s' % self.sim_workdir)
113113

114114
try:

villas/controller/components/simulators/dpsim.py

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@ def headers(self):
2222

2323
def load_cim(self, fp):
2424
if fp is not None:
25-
reader = dpsimpy.CIMReader(fp)
25+
name = self.params.get("name",str(os.urandom(6).hex()))
26+
reader = dpsimpy.CIMReader(name)
2627
files = list(map(lambda x: f'{fp}/{x}',os.listdir(fp)))
2728
freq = self.params.get("system-freq",50)
2829
duration = self.params.get("duration",10)
@@ -43,13 +44,13 @@ def load_cim(self, fp):
4344
solver = dpsimpy.Solver.NRP
4445

4546
system = reader.loadCIM(freq, files, domain, dpsimpy.PhaseType.Single, dpsimpy.GeneratorType.PVNode)
46-
self.sim = dpsimpy.Simulation(fp)
47+
self.sim = dpsimpy.Simulation(name)
4748
self.sim.set_system(system)
4849
self.sim.set_domain(domain)
4950
self.sim.set_solver(solver)
5051
self.sim.set_time_step(timestep)
5152
self.sim.set_final_time(duration)
52-
logger = dpsimpy.Logger(fp)
53+
logger = dpsimpy.Logger(name)
5354
for node in system.nodes:
5455
logger.log_attribute(node.name()+'.V', 'v', node)
5556
self.sim.add_logger(logger)
@@ -74,10 +75,25 @@ def start(self, payload):
7475
self.change_to_error('failed to start simulation')
7576
self.logger.warn('Attempt to start simulator failed.'
7677
'State is %s', self._state)
78+
79+
self.upload_results()
80+
self.change_state('stopping')
7781
except Exception as e:
7882
self.logger.warn('Attempted to start non-stopped simulator.'
7983
'State is %s', self._state)
8084

85+
def reset(self,payload):
86+
self.sim = None
87+
self.params = None
88+
self.model = None
89+
self.results = None
90+
try:
91+
self.change_state('resetting')
92+
except Exception as e:
93+
self.change_state('error')
94+
else:
95+
self.change_state('idle')
96+
8197
def stop(self, payload):
8298
if self._state == 'running':
8399
self.logger.info('Stopping simulation...')

0 commit comments

Comments
 (0)