Skip to main content

get_psim_version_name

Usage

% Import the module
psim_module = py.importlib.import_module('psimapipy');

% Create the PSIM object (empty string = auto-detect from registry)
psim = psim_module.PSIM('');

% Verify it loaded correctly
if ~psim.IsValid()
error('PSIM failed to load');
end

ver = psim.get_psim_version_name();
ver_cell = cell(ver);
fprintf('PSIM version: %d.%d.%d.%d\n', ...
int32(ver_cell{1}), int32(ver_cell{2}), int32(ver_cell{3}), int32(ver_cell{4}));


disp(char(psim.get_psim_version_name()));

Python Help

py.help(psim.get_psim_version_name)

Python def

def get_psim_version_name(self):
if not self.IsValid():
print("PSIM object was not loaded.")
return None;

GetPSIMVersion = getattr(self.psimHandle, "GetPSIMVersion")
if not GetPSIMVersion:
raise AttributeError(self.VersionErrorMessage)

# Create variables for the version info
nVersion = ctypes.c_int()
nSubVersion = ctypes.c_int()
nSubSubVersion = ctypes.c_int()
nSubSubSubVersion = ctypes.c_int()
nVertical = ctypes.c_int()

# Call the DLL function
ver = GetPSIMVersion(ctypes.byref(nVersion),
ctypes.byref(nSubVersion),
ctypes.byref(nSubSubVersion),
ctypes.byref(nSubSubSubVersion),
ctypes.byref(nVertical))

# print(f"PSIM version {nVersion.value}.{nSubVersion.value}.{nSubSubVersion.value}.{nSubSubSubVersion.value} ({nVertical.value})")
# vertical: 564:Windows_GUI, 864:Windows_PSIMSolver 800:Linux_PSIMSolver
if nVertical.value == 564:
return f"PSIM {nVersion.value}.{nSubVersion.value}.{nSubSubVersion.value}.{nSubSubSubVersion.value} (WindowsGUI)"
elif nVertical.value == 864:
return f"PSIMSolver {nVersion.value}.{nSubVersion.value}.{nSubSubVersion.value}.{nSubSubSubVersion.value} (Windows)"
elif nVertical.value == 800:
return f"PSIMSolver {nVersion.value}.{nSubVersion.value}.{nSubSubVersion.value}.{nSubSubSubVersion.value} (Linux)"

return f"PSIM {nVersion.value}.{nSubVersion.value}.{nSubSubVersion.value}.{nSubSubSubVersion.value} Vertical:{nVertical.value}"