def Schematic_to_Buffer(self, SchematicFilePath):
if not self.IsValid():
print("PSIM object was not loaded.")
return 0;
Sch_to_buf = getattr(self.psimHandle, "Schematic_to_Buffer")
if not Sch_to_buf:
raise AttributeError(self.VersionErrorMessage)
Sch_to_buf.argtypes = [ctypes.c_wchar_p, ctypes.POINTER(ctypes.c_void_p), ctypes.POINTER(ctypes.c_size_t)]
Sch_to_buf.restype = ctypes.c_int
out_ptr = ctypes.c_void_p()
out_len = ctypes.c_size_t()
res = Sch_to_buf(ctypes.c_wchar_p(SchematicFilePath), ctypes.byref(out_ptr), ctypes.byref(out_len))
if res != 1:
raise AttributeError(f"Schematic_to_Buffer failed: {res}")
buf_t = (ctypes.c_ubyte * out_len.value).from_address(out_ptr.value)
br = ByteReader(buf_t)
sub_new = PSIM_Sub();
sub_new.ReadFromBuffer(br)
free_buf = getattr(self.psimHandle, "Free_SchematicBuffer")
if free_buf:
free_buf.argtypes = [ctypes.c_void_p]
free_buf.restype = None
free_buf(out_ptr)
return sub_new