diff --git a/deploy/api/copylot.py b/deploy/api/copylot.py index 7eda0e4..f939a65 100644 --- a/deploy/api/copylot.py +++ b/deploy/api/copylot.py @@ -93,6 +93,8 @@ class CoPylot: Modify attributes of a subset of heliostats in the current layout save_from_script(p_data: int, sp_fname: str) -> bool Save the current case as a SolarPILOT .spt file + load_from_script(p_data: int, sp_fname: str) -> bool + Load a SolarPILOT .spt file dump_varmap_tofile(p_data: int, fname: str) -> bool Dump the variable structure to a text csv file """ @@ -1031,6 +1033,26 @@ def save_from_script(self, p_data: int, sp_fname: str) -> bool: self.pdll.sp_save_from_script.restype = c_bool return self.pdll.sp_save_from_script( c_void_p(p_data), c_char_p(sp_fname.encode())) + #SPEXPORT bool sp_load_from_script(sp_data_t p_data, const char* sp_fname) + def load_from_script(self, p_data: int, sp_fname: str) -> bool: + """Load a SolarPILOT .spt file + + Parameters + ---------- + p_data : int + memory address of SolarPILOT instance + sp_fname : str + filename to load SolarPILOT case + + Returns + ------- + bool + True if successful, False otherwise + """ + + self.pdll.sp_load_from_script.restype = c_bool + return self.pdll.sp_load_from_script( c_void_p(p_data), c_char_p(sp_fname.encode())) + #SPEXPORT bool sp_dump_varmap(sp_data_t p_data, const char* sp_fname) def dump_varmap_tofile(self, p_data: int, fname: str) -> bool: """Dump the variable structure to a text csv file diff --git a/deploy/api/test_script.py b/deploy/api/test_script.py index d664dcb..b6abb4a 100644 --- a/deploy/api/test_script.py +++ b/deploy/api/test_script.py @@ -290,4 +290,19 @@ assert cp.dump_varmap_tofile(r, os.path.join(cwd, "varmap.csv")) assert cp.save_from_script(r, os.path.join(cwd, "case_study_v2.spt")) +# Testing load_from script - Pass +if True: + cp.reset_vars(r) + cp_var = "receiver.0.rec_width" + cp_value = 2.5 + filename = "test_load_file.spt" + def_cp_value = cp.data_get_number(r, cp_var) + assert cp.data_set_number(r, cp_var, cp_value) + assert cp.save_from_script(r, os.path.join(cwd, filename)) + assert cp.data_free(r) + r = cp.data_create() + assert cp.data_get_number(r, cp_var) == def_cp_value + assert cp.load_from_script(r, os.path.join(cwd, filename)) + assert cp.data_get_number(r, cp_var) == cp_value + assert cp.data_free(r) # Works - free memory