@@ -22,7 +22,8 @@ def headers(self):
22
22
23
23
def load_cim (self , fp ):
24
24
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 )
26
27
files = list (map (lambda x : f'{ fp } /{ x } ' ,os .listdir (fp )))
27
28
freq = self .params .get ("system-freq" ,50 )
28
29
duration = self .params .get ("duration" ,10 )
@@ -43,13 +44,13 @@ def load_cim(self, fp):
43
44
solver = dpsimpy .Solver .NRP
44
45
45
46
system = reader .loadCIM (freq , files , domain , dpsimpy .PhaseType .Single , dpsimpy .GeneratorType .PVNode )
46
- self .sim = dpsimpy .Simulation (fp )
47
+ self .sim = dpsimpy .Simulation (name )
47
48
self .sim .set_system (system )
48
49
self .sim .set_domain (domain )
49
50
self .sim .set_solver (solver )
50
51
self .sim .set_time_step (timestep )
51
52
self .sim .set_final_time (duration )
52
- logger = dpsimpy .Logger (fp )
53
+ logger = dpsimpy .Logger (name )
53
54
for node in system .nodes :
54
55
logger .log_attribute (node .name ()+ '.V' , 'v' , node )
55
56
self .sim .add_logger (logger )
@@ -74,10 +75,25 @@ def start(self, payload):
74
75
self .change_to_error ('failed to start simulation' )
75
76
self .logger .warn ('Attempt to start simulator failed.'
76
77
'State is %s' , self ._state )
78
+
79
+ self .upload_results ()
80
+ self .change_state ('stopping' )
77
81
except Exception as e :
78
82
self .logger .warn ('Attempted to start non-stopped simulator.'
79
83
'State is %s' , self ._state )
80
84
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
+
81
97
def stop (self , payload ):
82
98
if self ._state == 'running' :
83
99
self .logger .info ('Stopping simulation...' )
0 commit comments