diff --git a/.gitignore b/.gitignore index 5c1ecd0..df5ac9c 100644 --- a/.gitignore +++ b/.gitignore @@ -31,3 +31,6 @@ calab/Debug/ calab/Release/ libcalab.so /vis/CaLab.aliases +batch/copyFiles.bat +copy*.bat +post_install* diff --git a/README.md b/README.md index f119f79..4bb0a22 100644 --- a/README.md +++ b/README.md @@ -43,4 +43,4 @@ CA Lab library builds an internal PV cache and monitors PVs to improve the read CA Lab includes a EPICS Base package (caget, caput, camonitor, softIOC and more). 🔗download Windows® setups and source code releases
-🔗more info and examples +🔗more info and examples diff --git a/caLab32.iss b/caLab32.iss index d656672..3014d69 100644 --- a/caLab32.iss +++ b/caLab32.iss @@ -1,162 +1,42 @@ // Setup build script for Windows [Files] -Source: "Release\calab.dll"; DestDir: "{userappdata}\calab"; Flags: confirmoverwrite; Components: caLab -Source: "src\calab.cpp"; DestDir: "{userappdata}\calab\src"; Flags: confirmoverwrite; Components: sources -Source: "..\..\..\epics\current-epics-base\bin\win32-x86\ca.dll"; DestDir: "{userappdata}\calab"; Flags: confirmoverwrite; Components: caLab or caTools -Source: "..\..\..\epics\current-epics-base\bin\win32-x86\caget.exe"; DestDir: "{userappdata}\calab"; Flags: confirmoverwrite; Components: caTools -Source: "..\..\..\epics\current-epics-base\bin\win32-x86\cainfo.exe"; DestDir: "{userappdata}\calab"; Flags: confirmoverwrite; Components: caTools -Source: "..\..\..\epics\current-epics-base\bin\win32-x86\camonitor.exe"; DestDir: "{userappdata}\calab"; Flags: confirmoverwrite; Components: caTools -Source: "..\..\..\epics\current-epics-base\bin\win32-x86\caput.exe"; DestDir: "{userappdata}\calab"; Flags: confirmoverwrite; Components: caTools -Source: "..\..\..\epics\current-epics-base\bin\win32-x86\caRepeater.exe"; DestDir: "{userappdata}\calab"; Flags: confirmoverwrite; Components: caLab or caTools -Source: "..\..\..\epics\current-epics-base\bin\win32-x86\Com.dll"; DestDir: "{userappdata}\calab"; Flags: confirmoverwrite; Components: caLab or caTools -Source: "..\..\..\epics\current-epics-base\bin\win32-x86\dbCore.dll"; DestDir: "{userappdata}\calab"; Flags: confirmoverwrite; Components: caLab or caTools -Source: "..\..\..\epics\current-epics-base\bin\win32-x86\dbRecStd.dll"; DestDir: "{userappdata}\calab"; Flags: confirmoverwrite; Components: caLab or caTools -Source: "..\..\..\epics\current-epics-base\bin\win32-x86\softIoc.exe"; DestDir: "{userappdata}\calab"; Flags: confirmoverwrite; Components: caLab or caTools -Source: "..\..\..\epics\current-epics-base\dbd\softIoc.dbd"; DestDir: "{userappdata}\calab"; Flags: confirmoverwrite; Components: caLab or caTools +// General Installation Files +Source: "Release\calab.dll"; DestDir: "{app}\lib"; Flags: confirmoverwrite; Components: caLab +Source: "src\calab.cpp"; DestDir: "{app}\src"; Flags: confirmoverwrite; Components: sources + +// EPICS Dependencies +Source: "..\..\..\epics\current-epics-base\bin\win32-x86\*.dll"; DestDir: "{app}\lib"; Flags: confirmoverwrite; Components: caLab or caTools +Source: "..\..\..\epics\current-epics-base\bin\win32-x86\*.exe"; DestDir: "{app}\lib"; Flags: confirmoverwrite; Components: caLab or caTools +Source: "..\..\..\epics\current-epics-base\dbd\softIoc.dbd"; DestDir: "{app}\lib"; Flags: confirmoverwrite; Components: caLab or caTools + +// Visual Studio Redistributable Source: "..\VC_redist.x86.exe"; DestDir: "{tmp}"; Flags: deleteafterinstall -Source: "vis\caLab-errors.txt"; DestDir: "{userappdata}\calab"; Flags: confirmoverwrite; Components: caLab -Source: "vis\CaLab.lvlib"; DestDir: "{userappdata}\calab"; Flags: confirmoverwrite; Components: caLab -Source: "vis\CaLab.lvlps"; DestDir: "{userappdata}\calab"; Flags: confirmoverwrite; Components: caLab -Source: "vis\CaLab.lvproj"; DestDir: "{userappdata}\calab"; Flags: confirmoverwrite; Components: caLab -Source: "vis\calab.mnu"; DestDir: "{userappdata}\calab"; Flags: confirmoverwrite; Components: caLab -Source: "vis\CaLabDisconnect.vi"; DestDir: "{userappdata}\calab"; Flags: confirmoverwrite; Components: caLab -Source: "vis\CaLabEvent.vi"; DestDir: "{userappdata}\calab"; Flags: confirmoverwrite; Components: caLab -Source: "vis\CaLabEventUnregister.vi"; DestDir: "{userappdata}\calab"; Flags: confirmoverwrite; Components: caLab -Source: "vis\CaLabFilter.vi"; DestDir: "{userappdata}\calab"; Flags: confirmoverwrite; Components: caLab -Source: "vis\CaLabGet.vi"; DestDir: "{userappdata}\calab"; Flags: confirmoverwrite; Components: caLab -Source: "vis\CaLabInfo.vi"; DestDir: "{userappdata}\calab"; Flags: confirmoverwrite; Components: caLab -Source: "vis\CaLabInit.vi"; DestDir: "{userappdata}\calab"; Flags: confirmoverwrite; Components: caLab -Source: "vis\CaLabPut.vi"; DestDir: "{userappdata}\calab"; Flags: confirmoverwrite; Components: caLab -Source: "vis\CaLabSoftIOC.vi"; DestDir: "{userappdata}\calab"; Flags: confirmoverwrite; Components: caLab -Source: "vis\PV Info.ctl"; DestDir: "{userappdata}\calab"; Flags: confirmoverwrite; Components: caLab -Source: "vis\PV Info.vi"; DestDir: "{userappdata}\calab"; Flags: confirmoverwrite; Components: caLab -Source: "vis\PV.ctl"; DestDir: "{userappdata}\calab"; Flags: confirmoverwrite; Components: caLab -Source: "vis\demo\db\demo.db"; DestDir: "{userappdata}\calab\Demo\db"; Flags: confirmoverwrite; Components: caLab -Source: "vis\demo\db\TestPV_ai100000.db"; DestDir: "{userappdata}\calab\Demo\db"; Flags: confirmoverwrite; Components: caLab -Source: "vis\demo\DemoIOC.cmd"; DestDir: "{userappdata}\calab\Demo"; Flags: confirmoverwrite; Components: caLab -Source: "vis\demo\TestPV_ai100000.cmd"; DestDir: "{userappdata}\calab\Demo"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Examples\caLab.db"; DestDir: "{userappdata}\calab\Examples"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Examples\Event Demo.vi"; DestDir: "{userappdata}\calab\Examples"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Examples\Parallel Event Demo Sub\Parallel Event Close.vi"; DestDir: "{userappdata}\calab\Examples\Parallel Event Demo Sub\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Examples\Parallel Event Demo Sub\Parallel Event Indicator.vi"; DestDir: "{userappdata}\calab\Examples\Parallel Event Demo Sub\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Examples\Parallel Event Demo Sub\Parallel Event Init.vi"; DestDir: "{userappdata}\calab\Examples\Parallel Event Demo Sub\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Examples\Parallel Event Demo Sub\Parallel Event Struct.vi"; DestDir: "{userappdata}\calab\Examples\Parallel Event Demo Sub\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Examples\Parallel Event Demo Sub\Parallel Event Task.vi"; DestDir: "{userappdata}\calab\Examples\Parallel Event Demo Sub\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Examples\Parallel Event Demo.vi"; DestDir: "{userappdata}\calab\Examples"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Examples\pvList.txt"; DestDir: "{userappdata}\calab\Examples"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Examples\Read Demo 1.vi"; DestDir: "{userappdata}\calab\Examples"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Examples\Read Demo 2.vi"; DestDir: "{userappdata}\calab\Examples"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Examples\SoftIOC Demo Sub.vi"; DestDir: "{userappdata}\calab\Examples"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Examples\SoftIOC Demo.vi"; DestDir: "{userappdata}\calab\Examples"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Examples\Write Demo - Looping.vi"; DestDir: "{userappdata}\calab\Examples"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Examples\Write Demo - Timed.vi"; DestDir: "{userappdata}\calab\Examples"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Examples\Write Demo.vi"; DestDir: "{userappdata}\calab\Examples"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Examples\Write Random TestPV_ai.vi"; DestDir: "{userappdata}\calab\Examples"; Flags: confirmoverwrite; Components: caLab -Source: "vis\utilities\add CaLab palette.vi"; DestDir: "{userappdata}\calab\utilities"; Flags: confirmoverwrite; Components: caLab -Source: "vis\utilities\remove CaLab palette.vi"; DestDir: "{userappdata}\calab\utilities"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\CaLabDisconnect_PV-1D.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\CaLabDisconnect_PV.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\CaLabEvent_PV-1D.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\CaLabEvent_PV.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\CaLabGet_Main_Initialized.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\CaLabGet_Main.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\CaLabGet_Result_Filter.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\CaLabInit_PV-1D.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\CaLabInit_PV.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\CaLabPut_Main_Initialized.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\CaLabPut_Main.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\CaLabSoftIocEnd.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\CaLabSoftIocStart.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\CheckWindows.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\ConfigurationSet.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\DbdPathName.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\DbPathName.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Get_PV-1D-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Get_PV-1D.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Get_PV-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Get_PV.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Ioc_Config.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\ioc_mbbi_config.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\port5064free.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_Boolean_PV-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_Boolean_PV.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_Boolean-1D_PV-1D-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_Boolean-1D_PV-1D.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_Boolean-1D_PV-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_Boolean-1D_PV.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_Boolean-2D_PV-1D-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_Boolean-2D_PV-1D.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_DBL_PV-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_DBL_PV.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_DBL-1D_PV-1D-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_DBL-1D_PV-1D.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_DBL-1D_PV-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_DBL-1D_PV.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_DBL-2D_PV-1D-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_DBL-2D_PV-1D.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_I16_PV-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_I16_PV.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_I16-1D_PV-1D-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_I16-1D_PV-1D.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_I16-1D_PV-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_I16-1D_PV.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_I16-2D_PV-1D-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_I16-2D_PV-1D.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_I32_PV-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_I32_PV.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_I32-1D_PV-1D-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_I32-1D_PV-1D.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_I32-1D_PV-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_I32-1D_PV.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_I32-2D_PV-1D-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_I32-2D_PV-1D.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_I64_PV-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_I64_PV.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_I64-1D_PV-1D-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_I64-1D_PV-1D.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_I64-1D_PV-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_I64-1D_PV.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_I64-2D_PV-1D-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_I64-2D_PV-1D.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_I8_PV-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_I8_PV.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_I8-1D_PV-1D-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_I8-1D_PV-1D.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_I8-1D_PV-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_I8-1D_PV.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_I8-2D_PV-1D-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_I8-2D_PV-1D.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_SGL_PV-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_SGL_PV.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_SGL-1D_PV-1D-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_SGL-1D_PV-1D.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_SGL-1D_PV-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_SGL-1D_PV.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_SGL-2D_PV-1D-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_SGL-2D_PV-1D.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_String_PV-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_String_PV.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_String-1D_PV-1D-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_String-1D_PV-1D.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_String-1D_PV-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_String-1D_PV.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_String-2D_PV-1D-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_String-2D_PV-1D.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\RestartCounter.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\SET_EPICS_CA_ADDR_LIST.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\SoftIocPathName.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "batch\startDemo.bat"; DestDir: "{userappdata}\calab\batch\"; Flags: confirmoverwrite; Components: caLab -Source: "batch\startTestPV_ai100000.bat"; DestDir: "{userappdata}\calab\batch\"; Flags: confirmoverwrite; Components: caLab -Source: "ReadMeFirst.txt"; DestDir: "{userappdata}\calab"; DestName: "ReadMeFirst.txt"; Flags: confirmoverwrite; Components: caLab -Source: "changelog.txt"; DestDir: "{userappdata}\calab"; DestName: "changelog.txt" -Source: "post_install.html"; DestDir: "{userappdata}\calab"; DestName: "post_install.html" + +// LabVIEW VIs +Source: "vis\*.txt"; DestDir: "{app}"; Flags: confirmoverwrite; Components: caLab +Source: "vis\*.vi"; DestDir: "{app}"; Flags: confirmoverwrite; Components: caLab +Source: "vis\*.ctl"; DestDir: "{app}"; Flags: confirmoverwrite; Components: caLab +Source: "vis\*.mnu"; DestDir: "{app}"; Flags: confirmoverwrite; Components: caLab +Source: "vis\*.lvlib"; DestDir: "{app}"; Flags: confirmoverwrite; Components: caLab +Source: "vis\*.lvproj"; DestDir: "{app}"; Flags: confirmoverwrite; Components: caLab +Source: "vis\private\*"; DestDir: "{app}\private"; Flags: confirmoverwrite; Components: caLab +Source: "vis\utilities\*"; DestDir: "{app}\utilities"; Flags: confirmoverwrite; Components: caLab + +// Demo Files +Source: "vis\demo\*.*"; DestDir: "{app}\demo"; Flags: confirmoverwrite; Components: caLab +Source: "vis\demo\db\*.*"; DestDir: "{app}\demo\db"; Flags: confirmoverwrite; Components: caLab +Source: "vis\examples\*.*"; DestDir: "{app}\examples"; Flags: confirmoverwrite; Components: caLab +Source: "vis\examples\Parallel Event Demo Sub\*.*"; DestDir: "{app}\examples\Parallel Event Demo Sub"; Flags: confirmoverwrite; Components: caLab + +// Documentation +Source: "readMeFirst.txt"; DestDir: "{app}\docs"; DestName: "readMeFirst.txt"; Flags: confirmoverwrite; Components: caLab +Source: "changelog.txt"; DestDir: "{app}\docs"; DestName: "changelog.txt" [Dirs] -Name: "{userappdata}\calab\Examples"; Components: caLab -Name: "{userappdata}\calab"; Components: caLab or caTools -Name: "{userappdata}\calab\Private"; Components: caLab -Name: "{userappdata}\calab\src"; Components: sources +Name: "{app}\examples"; Components: caLab +Name: "{app}\private"; Components: caLab +Name: "{app}\src"; Components: sources [Types] Name: full; Description: Full installation @@ -167,8 +47,7 @@ Name: custom; Description: Custom installation; Flags: iscustom Name: caLab; Description: LabVIEW™️ VIs for get PVs, put PVs and create new PVs at EPICS; Types: full vis Name: catools; Description: native tools (caget.exe, camonitor.exe, caput.exe, cainfo.exe); Types: full Name: sources; Description: sources; Types: full -Name: vcruntimeadmin; Description: "Check if bundled VS runtime install is necessary? (admin may be required)"; Types: full custom; Check: IsAdminInstallMode -Name: vcruntimeuser; Description: "Check if bundled VS runtime install is necessary? (admin may be required)"; Types: full custom; Check: not IsAdminInstallMode +Name: vcruntime; Description: "Check if bundled VS runtime install is necessary?"; Types: full custom; Check: IsAdminInstallMode [Languages] Name: en; MessagesFile: compiler:Default.isl; LicenseFile: "LICENSE" @@ -186,17 +65,17 @@ AppComments=Before un/installing CA Lab, you should close all EPICS applications AppContact=carsten.winkler@helmholtz-berlin.de AppCopyright=HZB GmbH AppendDefaultGroupName=true -AppId={{A9194CD2-4489-4268-B21B-7E622C31267F} +AppId={{B6C731D9-DF80-4C2E-8A3D-25A4FC5DFB76} AppName=CA Lab 32-bit AppPublisher=HZB GmbH AppPublisherURL=www.helmholtz-berlin.de AppSupportURL=https://hz-b.de/calab AppUpdatesURL=https://hz-b.de/calab -AppVersion=1.7.3.3 +AppVersion=1.7.4.1 ChangesEnvironment=true -DefaultDirName={userappdata}\calab +DefaultDirName={autopf}\user.lib\calab DefaultGroupName=National Instruments\caLab DirExistsWarning=no DisableStartupPrompt=true @@ -204,42 +83,43 @@ InfoAfterFile= InfoBeforeFile="changelog.txt" LanguageDetectionMethod=none LicenseFile="LICENSE" -OutputBaseFilename=caLabSetup_1733x86 +OutputBaseFilename=caLabSetup_1741x86 OutputDir=. PrivilegesRequired=none +PrivilegesRequiredOverridesAllowed=dialog SetupIconFile=res\caLab.ico ShowLanguageDialog=no UninstallDisplayIcon={userappdata}\calab\caLab.dll,1 UninstallDisplayName=CA Lab 32-bit UninstallLogMode=append +UsePreviousAppDir=no VersionInfoCompany=HELMHOLTZ-ZENTRUM BERLIN VersionInfoCopyright=HZB VersionInfoDescription=CA Lab Setup VersionInfoProductName=CA Lab -VersionInfoProductVersion=1.7.3.3 -VersionInfoTextVersion=1.7.3.3 -VersionInfoVersion=1.7.3.3 +VersionInfoProductVersion=1.7.4.1 +VersionInfoTextVersion=1.7.4.1 +VersionInfoVersion=1.7.4.1 WizardImageFile="res\WizardImage-IS.bmp" WizardSmallImageFile=res\WizardSmallImage-IS2.bmp -MinVersion=0,6.1 -UsePreviousAppDir=False -VersionInfoProductTextVersion=Version: 1.7.3.3 -VersionInfoOriginalFileName=caLabSetup_1733x86.exe +MinVersion=0,6.1sp1 +VersionInfoProductTextVersion=Version: 1.7.4.1 +VersionInfoOriginalFileName=caLabSetup_1741x86.exe [Icons] -Name: {group}\CA Lab project; Filename: {userappdata}\calab; IconFilename: {userappdata}\calab\caLab.dll; IconIndex: 0 +Name: {group}\CA Lab project; Filename: {app}; IconFilename: {app}\caLab.dll; IconIndex: 0 Name: {group}\Online documentation; Filename: https://hz-b.de/calab -Name: {group}\Start Demo; Filename: {userappdata}\calab\batch\startDemo.bat; Flags: createonlyiffileexists; Components: ; WorkingDir: {userappdata}\calab; IconFilename: {userappdata}\calab\caLab.dll; IconIndex: 2 -Name: {group}\Demo SoftIOC; Filename: {userappdata}\calab\Demo\DemoIOC.cmd; Flags: createonlyiffileexists; Components: ; WorkingDir: {userappdata}\calab\Demo; IconFilename: {userappdata}\calab\caLab.dll; IconIndex: 2 -Name: {group}\Uninstall; Filename: {uninstallexe}; IconFilename: {userappdata}\calab\caLab.dll; IconIndex: 1 +Name: {group}\Start Demo; Filename: {app}\batch\startDemo.bat; Flags: createonlyiffileexists; WorkingDir: {app}; IconFilename: {app}\caLab.dll; IconIndex: 2 +Name: {group}\Demo SoftIOC; Filename: {app}\Demo\DemoIOC.cmd; Flags: createonlyiffileexists; Components: ; WorkingDir: {app}\Demo; IconFilename: {app}\caLab.dll; IconIndex: 2 +Name: {group}\Uninstall; Filename: {uninstallexe}; IconFilename: {app}\caLab.dll; IconIndex: 1 [Run] // install redistributable packages for Visual Studio 2015, 2017, 2019, and 2022 // https://docs.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170 // latest version: https://aka.ms/vs/17/release/VC_redist.x86.exe -Components: vcruntimeadmin; Filename: {tmp}\VC_redist.x86.exe; Check: IsAdminInstallMode and NeedsVCRedistInstall; Parameters: "/passive /norestart /Q:a /c:""msiexec /qb /i vcredist.msi"" "; StatusMsg: Checking for VC++ RunTime ... -Components: vcruntimeuser; Filename: {tmp}\VC_redist.x86.exe; Check: (not IsAdminInstallMode) and NeedsVCRedistInstall; Parameters: "/passive /norestart /Q:a /c:""msiexec /qb /i vcredist.msi"" "; Flags: runasoriginaluser; StatusMsg: Checking for VC++ RunTime ... -Filename: "{userappdata}\calab\post_install.html"; Description: "Launch post installation checklist"; Flags: postinstall shellexec +Components: vcruntime; Filename: {tmp}\VC_redist.x86.exe; Check: IsAdminInstallMode and NeedsVCRedistInstall; Parameters: "/passive /norestart /Q:a /c:""msiexec /qb /i vcredist.msi"" "; StatusMsg: Checking for VC++ RunTime ... +Filename: "{app}\docs\post_install.html"; Description: "Important: Open the post installation checklist"; \ + Flags: postinstall shellexec [UninstallRun] RunOnceId: "UninstallEntry1"; Filename: cmd; Parameters: /c taskkill /f /im camonitor.exe; Flags: RunHidden; @@ -247,7 +127,128 @@ RunOnceId: "UninstallEntry2"; Filename: cmd; Parameters: /c taskkill /f /im soft RunOnceId: "UninstallEntry3"; Filename: cmd; Parameters: /c taskkill /f /im caRepeater.exe; Flags: RunHidden; [Code] +procedure CreateNextStepsHtml(); +var + Content: String; + AppPathEscaped: String; + PaletteSection: String; +begin + AppPathEscaped := ExpandConstant('{app}'); + StringChange(AppPathEscaped, '\', '\\'); + PaletteSection := ''; + if not IsAdminInstallMode then + begin + PaletteSection := + '
' + + '
' + + '' + + '
' + + '
' + + '
' + + '
' + + '' + + '
' + + '
'; + end; + + Content := ' CA Lab Post Installation' + + ' ' + + '
' + + 'CA Lab Logo' + + '' + + '' + + '' + + '' + + 'N' + + 'e' + + 'x' + + 't' + + ' ' + + 'S' + + 't' + + 'e' + + 'p' + + 's' + + '
' + + '
' + + '
' + + '
0%
' + + '
' + + '
' + + '
' + + '
' + + '' + + '
' + + '' + + '' + + '
' + + '' + + '
' + + '
' + + PaletteSection + + '
' + + '
' + + '

' + + '
' + + '
' + + '' + + '
' + + '
' + + '' + + 'More documentation' + + ' '; + SaveStringToFile(ExpandConstant('{app}\docs\post_install.html'), Content, False); +end; + +// Function to split a string into an array of strings by a delimiter function SplitString(const S, Delimiter: string): TArrayOfString; +{ Function for Inno Setup Compiler } +{ Returns array of strings split by the given delimiter } var I, Start, DelimLen: Integer; begin @@ -265,7 +266,10 @@ begin Result[Length(Result)-1] := Copy(S, Start, MaxInt); end; +// Function to check if a file exists in system PATH function SearchPath(FileName: string): Boolean; +{ Function for Inno Setup Compiler } +{ Returns True if file is found in any PATH directory, False otherwise } var I: Integer; FoldersArray: TArrayOfString; @@ -291,13 +295,13 @@ begin Result := False; end; +// Function to perform pre-installation checks function InitializeSetup(): Boolean; -var - foundPath: string; +{ Function for Inno Setup Compiler } +{ Returns True if setup can proceed, False if conflicting files are found } begin - if (SearchPath('caRepeater.exe') or - SearchPath('ca.dll') or - SearchPath('Com.dll')) then + // Check for conflicting files on the system + if (SearchPath('caRepeater.exe') or SearchPath('ca.dll') or SearchPath('Com.dll')) then begin MsgBox('The files caRepeater.exe, ca.dll or Com.dll have already been found on the computer. To avoid incompatibility with CA Lab libraries, the setup will be cancelled.', mbError, MB_OK); Result := False; @@ -306,11 +310,124 @@ begin Result := True; end; +// Function to initialize the installation wizard +procedure InitializeWizard(); +{ Function for Inno Setup Compiler } +{ Sets up initial directory paths based on LabVIEW installation } +var + lvPath : String; +begin + if IsAdminInstallMode then + begin + lvPath := ''; + RegQueryStringValue(HKEY_LOCAL_MACHINE, 'Software\National Instruments\LabVIEW\CurrentVersion\', 'Path', lvPath); + WizardForm.DirEdit.Text := AddBackslash(lvPath) + 'user.lib\calab'; + end + else + WizardForm.DirEdit.Text := ExpandConstant('{userappdata}\calab'); +end; + +// Function to add installation directory to system PATH +procedure ModifyPath; +{ Function for Inno Setup Compiler } +{ Adds application lib directory to system PATH environment variable } +var + RegKey: string; + CurrentPath: string; + NewPath: string; + AppLibPath: string; + RootKey: Integer; +begin + // Pre-calculate registry root key + RootKey := HKEY_CURRENT_USER; + if IsAdminInstallMode then + RootKey := HKEY_LOCAL_MACHINE; + + // Set appropriate registry key based on install mode + if IsAdminInstallMode then + RegKey := 'SYSTEM\CurrentControlSet\Control\Session Manager\Environment' + else + RegKey := 'Environment'; + + // Get the current PATH using pre-calculated root key + if not RegQueryStringValue(RootKey, RegKey, 'Path', CurrentPath) then + CurrentPath := ''; + + // Prepare path to add + AppLibPath := ExpandConstant('{app}\lib'); + + // Check if path already exists + if Pos(Uppercase(AppLibPath), Uppercase(CurrentPath)) = 0 then + begin + // Add the new path with semicolon separator if needed + if CurrentPath <> '' then + NewPath := CurrentPath + ';' + AppLibPath + else + NewPath := AppLibPath; + + // Write the new PATH using pre-calculated root key + RegWriteExpandStringValue(RootKey, RegKey, 'Path', NewPath); + end; + RegWriteExpandStringValue(RootKey, RegKey, 'CALAB_HOME', ExpandConstant('{app}')); +end; + +// Function to remove installation directory from system PATH +procedure RemovePath; +{ Function for Inno Setup Compiler } +{ Removes application lib directory from system PATH environment variable } +var + RegKey: string; + CurrentPath, NewPath: string; + AppLibPath: string; + RootKey: Integer; + PathParts: TArrayOfString; + I: Integer; +begin + // Pre-calculate registry root key + RootKey := HKEY_CURRENT_USER; + if IsAdminInstallMode then + RootKey := HKEY_LOCAL_MACHINE; + + // Set appropriate registry key based on install mode + if IsAdminInstallMode then + RegKey := 'SYSTEM\CurrentControlSet\Control\Session Manager\Environment' + else + RegKey := 'Environment'; + + // Get the current PATH + if RegQueryStringValue(RootKey, RegKey, 'Path', CurrentPath) then + begin + AppLibPath := ExpandConstant('{app}\lib'); + + // Split path into parts + PathParts := SplitString(CurrentPath, ';'); + NewPath := ''; + + // Rebuild path excluding our entry + for I := 0 to GetArrayLength(PathParts)-1 do + begin + if Uppercase(PathParts[I]) <> Uppercase(AppLibPath) then + begin + if NewPath <> '' then + NewPath := NewPath + ';'; + NewPath := NewPath + PathParts[I]; + end; + end; + + // Write back cleaned path + if NewPath <> CurrentPath then + RegWriteExpandStringValue(RootKey, RegKey, 'Path', NewPath); + end; + + // remove CALAB_HOME if it exists + if RegValueExists(RootKey, RegKey, 'CALAB_HOME') then + RegDeleteValue(RootKey, RegKey, 'CALAB_HOME'); +end; + +// Function to compare version strings function CompareVersion(V1, V2: string): Integer; -// Compare version strings -// Returns 0, if the versions are equal. -// Returns -1, if the V1 is older than the V2. -// Returns 1, if the V1 is newer than the V2. +{ Function for Inno Setup Compiler } +{ Returns 0 if versions equal, -1 if V1 older than V2, 1 if V1 newer than V2 } var P, N1, N2: Integer; begin @@ -357,6 +474,7 @@ begin end; end; +// Function to check if Visual C++ Redistributable is installed function VCinstalled(const regKey: string): Boolean; { Function for Inno Setup Compiler } { Returns True if same or later Microsoft Visual C++ 2015 Redistributable is installed, otherwise False. } @@ -390,51 +508,48 @@ begin end; end; +// Function to check if VC++ redistributable installation is needed function NeedsVCRedistInstall: Boolean; +{ Function for Inno Setup Compiler } +{ Returns True if VC++ redistributable needs to be installed, False otherwise } begin if NOT IsWin64 then - { 32-bit OS, 32-bit installer } Result := not (VCinstalled('SOFTWARE\Microsoft\VisualStudio\14.0\VC\Runtimes\X86')) else if Is64BitInstallMode then - { 64-bit OS, 64-bit installer } Result := not (VCinstalled('SOFTWARE\WOW6432Node\Microsoft\VisualStudio\14.0\VC\Runtimes\x64')) else - { 64-bit OS, 32-bit installer } Result := not (VCinstalled('SOFTWARE\WOW6432Node\Microsoft\VisualStudio\14.0\VC\Runtimes\x86')); end; -procedure CurPageChanged(CurPageID: Integer); +// Procedure called after installation steps +procedure CurStepChanged(CurStep: TSetupStep); +{ Function for Inno Setup Compiler } +{ Handles post-installation PATH modifications } begin - if CurPageID = wpSelectComponents then - if (not IsAdminInstallMode) then - begin - // Runtime query/install component unchecked by default - // in User mode installs. Checked in Admin installs. - WizardForm.ComponentsList.Checked[3] := False; - //WizardForm.ComponentsList.ItemEnabled[4] := False; - end; + if CurStep = ssPostInstall then + CreateNextStepsHtml(); + ModifyPath(); end; -function NextButtonClick(CurPageID: Integer): Boolean; +procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep); +{ Function for Inno Setup Compiler } +{ Handles PATH cleanup and file removal during uninstallation } var - msg: String; + VersionFile: string; begin - Result := True; - msg := 'The option to check for/install the VS' + #13#10 + - 'runtime is unchecked. Please make sure a' + #13#10 + - 'compatible version of the Visual Studio' + #13#10 + - 'VC++ runtime is already installed (by you' + #13#10 + - 'or an admin), or click "No" and check' + #13#10 + - 'the box before proceeding.' + #13#10 + #13#10 + - 'You will need admin privileges to' + #13#10 + - 'to install the runtime.' + #13#10 + #13#10 + - 'Do you wish to proceed as is?'; - if CurPageID = wpSelectComponents then begin - if IsAdminInstallMode then begin - if (not WizardIsComponentSelected('vcruntimeadmin')) then - Result := SuppressibleMsgBox(msg, mbInformation, MB_YESNO, IDYES) = IDYES - end else - if (not WizardIsComponentSelected('vcruntimeuser')) then - Result := SuppressibleMsgBox(msg, mbInformation, MB_YESNO, IDYES) = IDYES; + if CurUninstallStep = usPostUninstall then + begin + // Delete version file if it exists + VersionFile := ExpandConstant('{app}\docs\post_install.html'); + if FileExists(VersionFile) then + DeleteFile(VersionFile); + VersionFile := ExpandConstant('{app}\CaLab.aliases'); + if FileExists(VersionFile) then + DeleteFile(VersionFile); + // Remove docs directory + RemoveDir(ExpandConstant('{app}\docs')); + + // Remove PATH entry + RemovePath; end; -end; +end; \ No newline at end of file diff --git a/caLab64.iss b/caLab64.iss index 8da86e4..d92d59e 100644 --- a/caLab64.iss +++ b/caLab64.iss @@ -1,162 +1,42 @@ // Setup build script for Windows [Files] -Source: "x64\Release\calab.dll"; DestDir: "{userappdata}\calab"; Flags: confirmoverwrite; Components: caLab -Source: "src\calab.cpp"; DestDir: "{userappdata}\calab\src"; Flags: confirmoverwrite; Components: sources -Source: "..\..\..\epics\current-epics-base\bin\windows-x64\ca.dll"; DestDir: "{userappdata}\calab"; Flags: confirmoverwrite; Components: caLab or caTools -Source: "..\..\..\epics\current-epics-base\bin\windows-x64\caget.exe"; DestDir: "{userappdata}\calab"; Flags: confirmoverwrite; Components: caTools -Source: "..\..\..\epics\current-epics-base\bin\windows-x64\cainfo.exe"; DestDir: "{userappdata}\calab"; Flags: confirmoverwrite; Components: caTools -Source: "..\..\..\epics\current-epics-base\bin\windows-x64\camonitor.exe"; DestDir: "{userappdata}\calab"; Flags: confirmoverwrite; Components: caTools -Source: "..\..\..\epics\current-epics-base\bin\windows-x64\caput.exe"; DestDir: "{userappdata}\calab"; Flags: confirmoverwrite; Components: caTools -Source: "..\..\..\epics\current-epics-base\bin\windows-x64\caRepeater.exe"; DestDir: "{userappdata}\calab"; Flags: confirmoverwrite; Components: caLab or caTools -Source: "..\..\..\epics\current-epics-base\bin\windows-x64\Com.dll"; DestDir: "{userappdata}\calab"; Flags: confirmoverwrite; Components: caLab or caTools -Source: "..\..\..\epics\current-epics-base\bin\windows-x64\dbCore.dll"; DestDir: "{userappdata}\calab"; Flags: confirmoverwrite; Components: caLab or caTools -Source: "..\..\..\epics\current-epics-base\bin\windows-x64\dbRecStd.dll"; DestDir: "{userappdata}\calab"; Flags: confirmoverwrite; Components: caLab or caTools -Source: "..\..\..\epics\current-epics-base\bin\windows-x64\softIoc.exe"; DestDir: "{userappdata}\calab"; Flags: confirmoverwrite; Components: caLab or caTools -Source: "..\..\..\epics\current-epics-base\dbd\softIoc.dbd"; DestDir: "{userappdata}\calab"; Flags: confirmoverwrite; Components: caLab or caTools +// General Installation Files +Source: "x64\Release\calab.dll"; DestDir: "{app}\lib"; Flags: confirmoverwrite; Components: caLab +Source: "src\calab.cpp"; DestDir: "{app}\src"; Flags: confirmoverwrite; Components: sources + +// EPICS Dependencies +Source: "..\..\..\epics\current-epics-base\bin\windows-x64\*.dll"; DestDir: "{app}\lib"; Flags: confirmoverwrite; Components: caLab or caTools +Source: "..\..\..\epics\current-epics-base\bin\windows-x64\*.exe"; DestDir: "{app}\lib"; Flags: confirmoverwrite; Components: caTools +Source: "..\..\..\epics\current-epics-base\dbd\softIoc.dbd"; DestDir: "{app}\lib"; Flags: confirmoverwrite; Components: caLab or caTools + +// Visual Studio Redistributable Source: "..\VC_redist.x64.exe"; DestDir: "{tmp}"; Flags: deleteafterinstall -Source: "vis\caLab-errors.txt"; DestDir: "{userappdata}\calab"; Flags: confirmoverwrite; Components: caLab -Source: "vis\CaLab.lvlib"; DestDir: "{userappdata}\calab"; Flags: confirmoverwrite; Components: caLab -Source: "vis\CaLab.lvlps"; DestDir: "{userappdata}\calab"; Flags: confirmoverwrite; Components: caLab -Source: "vis\CaLab.lvproj"; DestDir: "{userappdata}\calab"; Flags: confirmoverwrite; Components: caLab -Source: "vis\calab.mnu"; DestDir: "{userappdata}\calab"; Flags: confirmoverwrite; Components: caLab -Source: "vis\CaLabDisconnect.vi"; DestDir: "{userappdata}\calab"; Flags: confirmoverwrite; Components: caLab -Source: "vis\CaLabEvent.vi"; DestDir: "{userappdata}\calab"; Flags: confirmoverwrite; Components: caLab -Source: "vis\CaLabEventUnregister.vi"; DestDir: "{userappdata}\calab"; Flags: confirmoverwrite; Components: caLab -Source: "vis\CaLabFilter.vi"; DestDir: "{userappdata}\calab"; Flags: confirmoverwrite; Components: caLab -Source: "vis\CaLabGet.vi"; DestDir: "{userappdata}\calab"; Flags: confirmoverwrite; Components: caLab -Source: "vis\CaLabInfo.vi"; DestDir: "{userappdata}\calab"; Flags: confirmoverwrite; Components: caLab -Source: "vis\CaLabInit.vi"; DestDir: "{userappdata}\calab"; Flags: confirmoverwrite; Components: caLab -Source: "vis\CaLabPut.vi"; DestDir: "{userappdata}\calab"; Flags: confirmoverwrite; Components: caLab -Source: "vis\CaLabSoftIOC.vi"; DestDir: "{userappdata}\calab"; Flags: confirmoverwrite; Components: caLab -Source: "vis\PV Info.ctl"; DestDir: "{userappdata}\calab"; Flags: confirmoverwrite; Components: caLab -Source: "vis\PV Info.vi"; DestDir: "{userappdata}\calab"; Flags: confirmoverwrite; Components: caLab -Source: "vis\PV.ctl"; DestDir: "{userappdata}\calab"; Flags: confirmoverwrite; Components: caLab -Source: "vis\demo\db\demo.db"; DestDir: "{userappdata}\calab\Demo\db"; Flags: confirmoverwrite; Components: caLab -Source: "vis\demo\db\TestPV_ai100000.db"; DestDir: "{userappdata}\calab\Demo\db"; Flags: confirmoverwrite; Components: caLab -Source: "vis\demo\DemoIOC.cmd"; DestDir: "{userappdata}\calab\Demo"; Flags: confirmoverwrite; Components: caLab -Source: "vis\demo\TestPV_ai100000.cmd"; DestDir: "{userappdata}\calab\Demo"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Examples\caLab.db"; DestDir: "{userappdata}\calab\Examples"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Examples\Event Demo.vi"; DestDir: "{userappdata}\calab\Examples"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Examples\Parallel Event Demo Sub\Parallel Event Close.vi"; DestDir: "{userappdata}\calab\Examples\Parallel Event Demo Sub\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Examples\Parallel Event Demo Sub\Parallel Event Indicator.vi"; DestDir: "{userappdata}\calab\Examples\Parallel Event Demo Sub\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Examples\Parallel Event Demo Sub\Parallel Event Init.vi"; DestDir: "{userappdata}\calab\Examples\Parallel Event Demo Sub\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Examples\Parallel Event Demo Sub\Parallel Event Struct.vi"; DestDir: "{userappdata}\calab\Examples\Parallel Event Demo Sub\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Examples\Parallel Event Demo Sub\Parallel Event Task.vi"; DestDir: "{userappdata}\calab\Examples\Parallel Event Demo Sub\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Examples\Parallel Event Demo.vi"; DestDir: "{userappdata}\calab\Examples"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Examples\pvList.txt"; DestDir: "{userappdata}\calab\Examples"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Examples\Read Demo 1.vi"; DestDir: "{userappdata}\calab\Examples"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Examples\Read Demo 2.vi"; DestDir: "{userappdata}\calab\Examples"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Examples\SoftIOC Demo Sub.vi"; DestDir: "{userappdata}\calab\Examples"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Examples\SoftIOC Demo.vi"; DestDir: "{userappdata}\calab\Examples"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Examples\Write Demo - Looping.vi"; DestDir: "{userappdata}\calab\Examples"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Examples\Write Demo - Timed.vi"; DestDir: "{userappdata}\calab\Examples"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Examples\Write Demo.vi"; DestDir: "{userappdata}\calab\Examples"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Examples\Write Random TestPV_ai.vi"; DestDir: "{userappdata}\calab\Examples"; Flags: confirmoverwrite; Components: caLab -Source: "vis\utilities\add CaLab palette.vi"; DestDir: "{userappdata}\calab\utilities"; Flags: confirmoverwrite; Components: caLab -Source: "vis\utilities\remove CaLab palette.vi"; DestDir: "{userappdata}\calab\utilities"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\CaLabDisconnect_PV-1D.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\CaLabDisconnect_PV.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\CaLabEvent_PV-1D.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\CaLabEvent_PV.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\CaLabGet_Main_Initialized.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\CaLabGet_Main.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\CaLabGet_Result_Filter.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\CaLabInit_PV-1D.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\CaLabInit_PV.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\CaLabPut_Main_Initialized.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\CaLabPut_Main.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\CaLabSoftIocEnd.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\CaLabSoftIocStart.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\CheckWindows.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\ConfigurationSet.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\DbdPathName.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\DbPathName.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Get_PV-1D-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Get_PV-1D.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Get_PV-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Get_PV.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Ioc_Config.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\ioc_mbbi_config.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\port5064free.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_Boolean_PV-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_Boolean_PV.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_Boolean-1D_PV-1D-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_Boolean-1D_PV-1D.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_Boolean-1D_PV-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_Boolean-1D_PV.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_Boolean-2D_PV-1D-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_Boolean-2D_PV-1D.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_DBL_PV-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_DBL_PV.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_DBL-1D_PV-1D-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_DBL-1D_PV-1D.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_DBL-1D_PV-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_DBL-1D_PV.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_DBL-2D_PV-1D-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_DBL-2D_PV-1D.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_I16_PV-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_I16_PV.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_I16-1D_PV-1D-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_I16-1D_PV-1D.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_I16-1D_PV-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_I16-1D_PV.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_I16-2D_PV-1D-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_I16-2D_PV-1D.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_I32_PV-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_I32_PV.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_I32-1D_PV-1D-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_I32-1D_PV-1D.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_I32-1D_PV-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_I32-1D_PV.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_I32-2D_PV-1D-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_I32-2D_PV-1D.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_I64_PV-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_I64_PV.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_I64-1D_PV-1D-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_I64-1D_PV-1D.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_I64-1D_PV-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_I64-1D_PV.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_I64-2D_PV-1D-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_I64-2D_PV-1D.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_I8_PV-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_I8_PV.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_I8-1D_PV-1D-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_I8-1D_PV-1D.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_I8-1D_PV-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_I8-1D_PV.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_I8-2D_PV-1D-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_I8-2D_PV-1D.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_SGL_PV-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_SGL_PV.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_SGL-1D_PV-1D-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_SGL-1D_PV-1D.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_SGL-1D_PV-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_SGL-1D_PV.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_SGL-2D_PV-1D-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_SGL-2D_PV-1D.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_String_PV-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_String_PV.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_String-1D_PV-1D-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_String-1D_PV-1D.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_String-1D_PV-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_String-1D_PV.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_String-2D_PV-1D-I.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\Put_String-2D_PV-1D.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\RestartCounter.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\SET_EPICS_CA_ADDR_LIST.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "vis\Private\SoftIocPathName.vi"; DestDir: "{userappdata}\calab\Private\"; Flags: confirmoverwrite; Components: caLab -Source: "batch\startDemo.bat"; DestDir: "{userappdata}\calab\batch\"; Flags: confirmoverwrite; Components: caLab -Source: "batch\startTestPV_ai100000.bat"; DestDir: "{userappdata}\calab\batch\"; Flags: confirmoverwrite; Components: caLab -Source: "ReadMeFirst.txt"; DestDir: "{userappdata}\calab"; DestName: "ReadMeFirst.txt"; Flags: confirmoverwrite; Components: caLab -Source: "changelog.txt"; DestDir: "{userappdata}\calab"; DestName: "changelog.txt" -Source: "post_install.html"; DestDir: "{userappdata}\calab"; DestName: "post_install.html" + +// LabVIEW VIs +Source: "vis\*.txt"; DestDir: "{app}"; Flags: confirmoverwrite; Components: caLab +Source: "vis\*.vi"; DestDir: "{app}"; Flags: confirmoverwrite; Components: caLab +Source: "vis\*.ctl"; DestDir: "{app}"; Flags: confirmoverwrite; Components: caLab +Source: "vis\*.mnu"; DestDir: "{app}"; Flags: confirmoverwrite; Components: caLab +Source: "vis\*.lvlib"; DestDir: "{app}"; Flags: confirmoverwrite; Components: caLab +Source: "vis\*.lvproj"; DestDir: "{app}"; Flags: confirmoverwrite; Components: caLab +Source: "vis\private\*"; DestDir: "{app}\private"; Flags: confirmoverwrite; Components: caLab +Source: "vis\utilities\*"; DestDir: "{app}\utilities"; Flags: confirmoverwrite; Components: caLab + +// Demo Files +Source: "vis\demo\*.*"; DestDir: "{app}\demo"; Flags: confirmoverwrite; Components: caLab +Source: "vis\demo\db\*.*"; DestDir: "{app}\demo\db"; Flags: confirmoverwrite; Components: caLab +Source: "vis\examples\*.*"; DestDir: "{app}\examples"; Flags: confirmoverwrite; Components: caLab +Source: "vis\examples\Parallel Event Demo Sub\*.*"; DestDir: "{app}\examples\Parallel Event Demo Sub"; Flags: confirmoverwrite; Components: caLab + +// Documentation +Source: "readMeFirst.txt"; DestDir: "{app}\docs"; DestName: "readMeFirst.txt"; Flags: confirmoverwrite; Components: caLab +Source: "changelog.txt"; DestDir: "{app}\docs"; DestName: "changelog.txt" [Dirs] -Name: "{userappdata}\calab\Examples"; Components: caLab -Name: "{userappdata}\calab"; Components: caLab or caTools -Name: "{userappdata}\calab\Private"; Components: caLab -Name: "{userappdata}\calab\src"; Components: sources +Name: "{app}\examples"; Components: caLab +Name: "{app}\private"; Components: caLab +Name: "{app}\src"; Components: sources [Types] Name: full; Description: Full installation @@ -167,8 +47,7 @@ Name: custom; Description: Custom installation; Flags: iscustom Name: caLab; Description: LabVIEW™️ VIs for get PVs, put PVs and create new PVs at EPICS; Types: full vis Name: catools; Description: native tools (caget.exe, camonitor.exe, caput.exe, cainfo.exe); Types: full Name: sources; Description: sources; Types: full -Name: vcruntimeadmin; Description: "Check if bundled VS runtime install is necessary? (admin may be required)"; Types: full custom; Check: IsAdminInstallMode -Name: vcruntimeuser; Description: "Check if bundled VS runtime install is necessary? (admin may be required)"; Types: full custom; Check: not IsAdminInstallMode +Name: vcruntime; Description: "Check if bundled VS runtime install is necessary?"; Types: full custom; Check: IsAdminInstallMode [Languages] Name: en; MessagesFile: compiler:Default.isl; LicenseFile: "LICENSE" @@ -186,17 +65,17 @@ AppComments=Before un/installing CA Lab, you should close all EPICS applications AppContact=carsten.winkler@helmholtz-berlin.de AppCopyright=HZB GmbH AppendDefaultGroupName=true -AppId={{A9194CD2-4489-4268-B21B-7E622C31267F} +AppId={{BE88DBDA-488E-43D8-866D-FA2D2DE3F952} AppName=CA Lab 64-bit AppPublisher=HZB GmbH AppPublisherURL=www.helmholtz-berlin.de AppSupportURL=https://hz-b.de/calab AppUpdatesURL=https://hz-b.de/calab -AppVersion=1.7.3.3 -ArchitecturesAllowed=x64 -ArchitecturesInstallIn64BitMode=x64 +AppVersion=1.7.4.1 +ArchitecturesAllowed=x64compatible +ArchitecturesInstallIn64BitMode=x64compatible ChangesEnvironment=true -DefaultDirName={userappdata}\calab +DefaultDirName={autopf}\user.lib\calab DefaultGroupName=National Instruments\caLab DirExistsWarning=no DisableStartupPrompt=true @@ -204,42 +83,43 @@ InfoAfterFile= InfoBeforeFile="changelog.txt" LanguageDetectionMethod=none LicenseFile="LICENSE" -OutputBaseFilename=caLabSetup_1733x64 +OutputBaseFilename=caLabSetup_1741x64 OutputDir=. PrivilegesRequired=none +PrivilegesRequiredOverridesAllowed=dialog SetupIconFile=res\caLab.ico ShowLanguageDialog=no UninstallDisplayIcon={userappdata}\calab\caLab.dll,1 UninstallDisplayName=CA Lab 64-bit UninstallLogMode=append +UsePreviousAppDir=no VersionInfoCompany=HELMHOLTZ-ZENTRUM BERLIN VersionInfoCopyright=HZB VersionInfoDescription=CA Lab Setup VersionInfoProductName=CA Lab -VersionInfoProductVersion=1.7.3.3 -VersionInfoTextVersion=1.7.3.3 -VersionInfoVersion=1.7.3.3 +VersionInfoProductVersion=1.7.4.1 +VersionInfoTextVersion=1.7.4.1 +VersionInfoVersion=1.7.4.1 WizardImageFile="res\WizardImage-IS.bmp" WizardSmallImageFile=res\WizardSmallImage-IS2.bmp -MinVersion=0,6.1 -UsePreviousAppDir=False -VersionInfoProductTextVersion=Version: 1.7.3.3 -VersionInfoOriginalFileName=caLabSetup_1733x64.exe +MinVersion=0,6.1sp1 +VersionInfoProductTextVersion=Version: 1.7.4.1 +VersionInfoOriginalFileName=caLabSetup_1741x64.exe [Icons] -Name: {group}\CA Lab project; Filename: {userappdata}\calab; IconFilename: {userappdata}\calab\caLab.dll; IconIndex: 0 +Name: {group}\CA Lab project; Filename: {app}; IconFilename: {app}\caLab.dll; IconIndex: 0 Name: {group}\Online documentation; Filename: https://hz-b.de/calab -Name: {group}\Start Demo; Filename: {userappdata}\calab\batch\startDemo.bat; Flags: createonlyiffileexists; Components: ; WorkingDir: {userappdata}\calab; IconFilename: {userappdata}\calab\caLab.dll; IconIndex: 2 -Name: {group}\Demo SoftIOC; Filename: {userappdata}\calab\Demo\DemoIOC.cmd; Flags: createonlyiffileexists; Components: ; WorkingDir: {userappdata}\calab\Demo; IconFilename: {userappdata}\calab\caLab.dll; IconIndex: 2 -Name: {group}\Uninstall; Filename: {uninstallexe}; IconFilename: {userappdata}\calab\caLab.dll; IconIndex: 1 +Name: {group}\Start Demo; Filename: {app}\batch\startDemo.bat; Flags: createonlyiffileexists; WorkingDir: {app}; IconFilename: {app}\caLab.dll; IconIndex: 2 +Name: {group}\Demo SoftIOC; Filename: {app}\Demo\DemoIOC.cmd; Flags: createonlyiffileexists; Components: ; WorkingDir: {app}\Demo; IconFilename: {app}\caLab.dll; IconIndex: 2 +Name: {group}\Uninstall; Filename: {uninstallexe}; IconFilename: {app}\caLab.dll; IconIndex: 1 [Run] // install redistributable packages for Visual Studio 2015, 2017, 2019, and 2022 // https://docs.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170 // latest version: https://aka.ms/vs/17/release/vc_redist.x64.exe -Components: vcruntimeadmin; Filename: {tmp}\vc_redist.x64.exe; Check: IsAdminInstallMode and NeedsVCRedistInstall; Parameters: "/passive /norestart /Q:a /c:""msiexec /qb /i vcredist.msi"" "; StatusMsg: Checking for VC++ RunTime ... -Components: vcruntimeuser; Filename: {tmp}\vc_redist.x64.exe; Check: (not IsAdminInstallMode) and NeedsVCRedistInstall; Parameters: "/passive /norestart /Q:a /c:""msiexec /qb /i vcredist.msi"" "; Flags: runasoriginaluser; StatusMsg: Checking for VC++ RunTime ... -Filename: "{userappdata}\calab\post_install.html"; Description: "Launch post installation checklist"; Flags: postinstall shellexec +Components: vcruntime; Filename: {tmp}\vc_redist.x64.exe; Check: NeedsVCRedistInstall; Parameters: "/passive /norestart"; StatusMsg: Checking for VC++ RunTime ... +Filename: "{app}\docs\post_install.html"; Description: "Important: Open the post installation checklist"; \ + Flags: postinstall shellexec [UninstallRun] RunOnceId: "UninstallEntry1"; Filename: cmd; Parameters: /c taskkill /f /im camonitor.exe; Flags: RunHidden; @@ -247,7 +127,128 @@ RunOnceId: "UninstallEntry2"; Filename: cmd; Parameters: /c taskkill /f /im soft RunOnceId: "UninstallEntry3"; Filename: cmd; Parameters: /c taskkill /f /im caRepeater.exe; Flags: RunHidden; [Code] +procedure CreateNextStepsHtml(); +var + Content: String; + AppPathEscaped: String; + PaletteSection: String; +begin + AppPathEscaped := ExpandConstant('{app}'); + StringChange(AppPathEscaped, '\', '\\'); + PaletteSection := ''; + if not IsAdminInstallMode then + begin + PaletteSection := + '
' + + '
' + + '' + + '
' + + '
' + + '
' + + '
' + + '' + + '
' + + '
'; + end; + + Content := ' CA Lab Post Installation' + + ' ' + + '
' + + 'CA Lab Logo' + + '' + + '' + + '' + + '' + + 'N' + + 'e' + + 'x' + + 't' + + ' ' + + 'S' + + 't' + + 'e' + + 'p' + + 's' + + '
' + + '
' + + '
' + + '
0%
' + + '
' + + '
' + + '
' + + '
' + + '' + + '
' + + '' + + '' + + '
' + + '' + + '
' + + '
' + + PaletteSection + + '
' + + '
' + + '

' + + '
' + + '
' + + '' + + '
' + + '
' + + '' + + 'More documentation' + + ' '; + SaveStringToFile(ExpandConstant('{app}\docs\post_install.html'), Content, False); +end; + +// Function to split a string into an array of strings by a delimiter function SplitString(const S, Delimiter: string): TArrayOfString; +{ Function for Inno Setup Compiler } +{ Returns array of strings split by the given delimiter } var I, Start, DelimLen: Integer; begin @@ -265,7 +266,10 @@ begin Result[Length(Result)-1] := Copy(S, Start, MaxInt); end; +// Function to check if a file exists in system PATH function SearchPath(FileName: string): Boolean; +{ Function for Inno Setup Compiler } +{ Returns True if file is found in any PATH directory, False otherwise } var I: Integer; FoldersArray: TArrayOfString; @@ -291,13 +295,13 @@ begin Result := False; end; +// Function to perform pre-installation checks function InitializeSetup(): Boolean; -var - foundPath: string; +{ Function for Inno Setup Compiler } +{ Returns True if setup can proceed, False if conflicting files are found } begin - if (SearchPath('caRepeater.exe') or - SearchPath('ca.dll') or - SearchPath('Com.dll')) then + // Check for conflicting files on the system + if (SearchPath('caRepeater.exe') or SearchPath('ca.dll') or SearchPath('Com.dll')) then begin MsgBox('The files caRepeater.exe, ca.dll or Com.dll have already been found on the computer. To avoid incompatibility with CA Lab libraries, the setup will be cancelled.', mbError, MB_OK); Result := False; @@ -306,11 +310,124 @@ begin Result := True; end; +// Function to initialize the installation wizard +procedure InitializeWizard(); +{ Function for Inno Setup Compiler } +{ Sets up initial directory paths based on LabVIEW installation } +var + lvPath : String; +begin + if IsAdminInstallMode then + begin + lvPath := ''; + RegQueryStringValue(HKEY_LOCAL_MACHINE, 'Software\National Instruments\LabVIEW\CurrentVersion\', 'Path', lvPath); + WizardForm.DirEdit.Text := AddBackslash(lvPath) + 'user.lib\calab'; + end + else + WizardForm.DirEdit.Text := ExpandConstant('{userappdata}\calab'); +end; + +// Function to add installation directory to system PATH +procedure ModifyPath; +{ Function for Inno Setup Compiler } +{ Adds application lib directory to system PATH environment variable } +var + RegKey: string; + CurrentPath: string; + NewPath: string; + AppLibPath: string; + RootKey: Integer; +begin + // Pre-calculate registry root key + RootKey := HKEY_CURRENT_USER; + if IsAdminInstallMode then + RootKey := HKEY_LOCAL_MACHINE; + + // Set appropriate registry key based on install mode + if IsAdminInstallMode then + RegKey := 'SYSTEM\CurrentControlSet\Control\Session Manager\Environment' + else + RegKey := 'Environment'; + + // Get the current PATH using pre-calculated root key + if not RegQueryStringValue(RootKey, RegKey, 'Path', CurrentPath) then + CurrentPath := ''; + + // Prepare path to add + AppLibPath := ExpandConstant('{app}\lib'); + + // Check if path already exists + if Pos(Uppercase(AppLibPath), Uppercase(CurrentPath)) = 0 then + begin + // Add the new path with semicolon separator if needed + if CurrentPath <> '' then + NewPath := CurrentPath + ';' + AppLibPath + else + NewPath := AppLibPath; + + // Write the new PATH using pre-calculated root key + RegWriteExpandStringValue(RootKey, RegKey, 'Path', NewPath); + end; + RegWriteExpandStringValue(RootKey, RegKey, 'CALAB_HOME', ExpandConstant('{app}')); +end; + +// Function to remove installation directory from system PATH +procedure RemovePath; +{ Function for Inno Setup Compiler } +{ Removes application lib directory from system PATH environment variable } +var + RegKey: string; + CurrentPath, NewPath: string; + AppLibPath: string; + RootKey: Integer; + PathParts: TArrayOfString; + I: Integer; +begin + // Pre-calculate registry root key + RootKey := HKEY_CURRENT_USER; + if IsAdminInstallMode then + RootKey := HKEY_LOCAL_MACHINE; + + // Set appropriate registry key based on install mode + if IsAdminInstallMode then + RegKey := 'SYSTEM\CurrentControlSet\Control\Session Manager\Environment' + else + RegKey := 'Environment'; + + // Get the current PATH + if RegQueryStringValue(RootKey, RegKey, 'Path', CurrentPath) then + begin + AppLibPath := ExpandConstant('{app}\lib'); + + // Split path into parts + PathParts := SplitString(CurrentPath, ';'); + NewPath := ''; + + // Rebuild path excluding our entry + for I := 0 to GetArrayLength(PathParts)-1 do + begin + if Uppercase(PathParts[I]) <> Uppercase(AppLibPath) then + begin + if NewPath <> '' then + NewPath := NewPath + ';'; + NewPath := NewPath + PathParts[I]; + end; + end; + + // Write back cleaned path + if NewPath <> CurrentPath then + RegWriteExpandStringValue(RootKey, RegKey, 'Path', NewPath); + end; + + // remove CALAB_HOME if it exists + if RegValueExists(RootKey, RegKey, 'CALAB_HOME') then + RegDeleteValue(RootKey, RegKey, 'CALAB_HOME'); +end; + +// Function to compare version strings function CompareVersion(V1, V2: string): Integer; -// Compare version strings -// Returns 0, if the versions are equal. -// Returns -1, if the V1 is older than the V2. -// Returns 1, if the V1 is newer than the V2. +{ Function for Inno Setup Compiler } +{ Returns 0 if versions equal, -1 if V1 older than V2, 1 if V1 newer than V2 } var P, N1, N2: Integer; begin @@ -357,6 +474,7 @@ begin end; end; +// Function to check if Visual C++ Redistributable is installed function VCinstalled(const regKey: string): Boolean; { Function for Inno Setup Compiler } { Returns True if same or later Microsoft Visual C++ 2015 Redistributable is installed, otherwise False. } @@ -390,51 +508,48 @@ begin end; end; +// Function to check if VC++ redistributable installation is needed function NeedsVCRedistInstall: Boolean; +{ Function for Inno Setup Compiler } +{ Returns True if VC++ redistributable needs to be installed, False otherwise } begin if NOT IsWin64 then - { 32-bit OS, 32-bit installer } Result := not (VCinstalled('SOFTWARE\Microsoft\VisualStudio\14.0\VC\Runtimes\X86')) else if Is64BitInstallMode then - { 64-bit OS, 64-bit installer } Result := not (VCinstalled('SOFTWARE\WOW6432Node\Microsoft\VisualStudio\14.0\VC\Runtimes\x64')) else - { 64-bit OS, 32-bit installer } Result := not (VCinstalled('SOFTWARE\WOW6432Node\Microsoft\VisualStudio\14.0\VC\Runtimes\x86')); end; -procedure CurPageChanged(CurPageID: Integer); +// Procedure called after installation steps +procedure CurStepChanged(CurStep: TSetupStep); +{ Function for Inno Setup Compiler } +{ Handles post-installation PATH modifications } begin - if CurPageID = wpSelectComponents then - if (not IsAdminInstallMode) then - begin - // Runtime query/install component unchecked by default - // in User mode installs. Checked in Admin installs. - WizardForm.ComponentsList.Checked[3] := False; - //WizardForm.ComponentsList.ItemEnabled[4] := False; - end; + if CurStep = ssPostInstall then + CreateNextStepsHtml(); + ModifyPath(); end; -function NextButtonClick(CurPageID: Integer): Boolean; +procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep); +{ Function for Inno Setup Compiler } +{ Handles PATH cleanup and file removal during uninstallation } var - msg: String; + VersionFile: string; begin - Result := True; - msg := 'The option to check for/install the VS' + #13#10 + - 'runtime is unchecked. Please make sure a' + #13#10 + - 'compatible version of the Visual Studio' + #13#10 + - 'VC++ runtime is already installed (by you' + #13#10 + - 'or an admin), or click "No" and check' + #13#10 + - 'the box before proceeding.' + #13#10 + #13#10 + - 'You will need admin privileges to' + #13#10 + - 'to install the runtime.' + #13#10 + #13#10 + - 'Do you wish to proceed as is?'; - if CurPageID = wpSelectComponents then begin - if IsAdminInstallMode then begin - if (not WizardIsComponentSelected('vcruntimeadmin')) then - Result := SuppressibleMsgBox(msg, mbInformation, MB_YESNO, IDYES) = IDYES - end else - if (not WizardIsComponentSelected('vcruntimeuser')) then - Result := SuppressibleMsgBox(msg, mbInformation, MB_YESNO, IDYES) = IDYES; + if CurUninstallStep = usPostUninstall then + begin + // Delete version file if it exists + VersionFile := ExpandConstant('{app}\docs\post_install.html'); + if FileExists(VersionFile) then + DeleteFile(VersionFile); + VersionFile := ExpandConstant('{app}\CaLab.aliases'); + if FileExists(VersionFile) then + DeleteFile(VersionFile); + // Remove docs directory + RemoveDir(ExpandConstant('{app}\docs')); + + // Remove PATH entry + RemovePath; end; -end; +end; \ No newline at end of file diff --git a/changelog.txt b/changelog.txt index 99e50b5..dfcdfcb 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,4 +1,17 @@ Changelog of CA Lab +V1.7.4.1 (Released: December 2024) + # Resolved Windows Setup Issues + - Added "Install for all users" + - Fixed issues with the custom installation location + - Automated PATH variable configuration + - Enhanced the post-installation page + # Improved path search for EPICS components in certain VIs + # Updated VC Redist to Version 14.42.34433.0 + # Updated EPICS Base to Version 7.0.8.2 + # The C++ source code for CA Lab remains unchanged + Fixed crash when enabling field values without field names enabled + +---------------------------------------------------------------------- V1.7.3.3 (Released: June 2024) + When the PREC field is queried, the string output of the values is formatted accordingly in CaLabGet.vi. This enhancement applies diff --git a/post_install.html b/post_install.html deleted file mode 100644 index b572e32..0000000 --- a/post_install.html +++ /dev/null @@ -1,132 +0,0 @@ - - - - CA Lab Post Installation - - - - -
- - - - - Y - o - u - r -   - N - e - x - t -   - S - t - e - p - s - - - - CA Lab Logo -
-
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
-
- - - \ No newline at end of file diff --git a/res/calab.rc b/res/calab.rc index e3995ae..c17ef27 100644 Binary files a/res/calab.rc and b/res/calab.rc differ diff --git a/src/calab.cpp b/src/calab.cpp index 56e4bb2..2778478 100644 --- a/src/calab.cpp +++ b/src/calab.cpp @@ -12,7 +12,7 @@ //================================================================================================== // Name : caLab.cpp // Authors : Carsten Winkler, Brian Powell -// Version : 1.7.3.3 +// Version : 1.7.4.1 // Copyright : HZB // Description : library for reading, writing and handle events of EPICS variables (PVs) in LabVIEW // GitHub : https://github.com/epics-extensions/CALab @@ -56,7 +56,7 @@ void __attribute__((destructor)) caLabUnload(void); void* caLibHandle = 0x0; void* comLibHandle = 0x0; #endif -#define CALAB_VERSION "1.7.3.3" +#define CALAB_VERSION "1.7.4.1" #define ERROR_OFFSET 7000 // User defined error codes of LabVIEW start at this number #define MAX_ERROR_SIZE 255 @@ -2216,6 +2216,11 @@ void wait4value(uInt32& maxNumberOfValues, sLongArrayHdl* PvIndexArray, time_t T // NoMDEL: indicator for ignoring monitor dead band (TRUE: use caget instead of camonitor) extern "C" EXPORT void getValue(sStringArrayHdl * PvNameArray, sStringArrayHdl * FieldNameArray, sLongArrayHdl * PvIndexArray, double Timeout, sResultArrayHdl * ResultArray, sStringArrayHdl * FirstStringValue, sDoubleArrayHdl * FirstDoubleValue, sDoubleArray2DHdl * DoubleValueArray, LVBoolean * CommunicationStatus, LVBoolean * FirstCall, LVBoolean * NoMDEL = 0, LVBoolean * IsInitialized = 0, int filter = 0) { epicsMutexLock(getLock); + // Add validation for field values requiring field names + if ((filter & out_filter::pviFieldValues) && !(filter & out_filter::pviFieldNames)) { + // Disable field values if field names not enabled + filter &= ~out_filter::pviFieldValues; + } if (filter <= 0) { filter = 0xffff; } @@ -2532,7 +2537,7 @@ extern "C" EXPORT void getValue(sStringArrayHdl * PvNameArray, sStringArrayHdl * memcpy((*(*currentResult->FieldNameArray)->elt[l])->str, (*(**FieldNameArray)->elt[l])->str, (*(**FieldNameArray)->elt[l])->cnt); } } - if (filter & out_filter::pviFieldValues && (*FirstCall || currentItem->fieldModified[PvNameArray].load()) && (FieldNameArray && *FieldNameArray && **FieldNameArray && (**FieldNameArray)->dimSize)) { + if (filter & out_filter::pviFieldValues && (*FirstCall || currentItem->fieldModified[PvNameArray].load()) && (FieldNameArray && *FieldNameArray && **FieldNameArray && (**FieldNameArray)->dimSize) && currentResult->FieldNameArray) { if (currentResult->FieldValueArray) err += DeleteStringArray(currentResult->FieldValueArray); currentResult->FieldValueArray = (sStringArrayHdl)DSNewHClr(sizeof(size_t) + (**FieldNameArray)->dimSize * sizeof(LStrHandle[1])); diff --git a/vis/CaLab.lvlib b/vis/CaLab.lvlib index 87d9e89..b3133c7 100644 --- a/vis/CaLab.lvlib +++ b/vis/CaLab.lvlib @@ -13,105 +13,106 @@ Key Features: '1#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!,V!!!*Q(C=T:1^<BN"$%;ZA1WYD)#512T)2_!*\+BSFU*N3P9S!LC*A68FB9M9+>GE3+EL#%AO1"^"6^!.AMH<W:'M@[7)A=S)O^K01`).>\!C?:S*H%A[.KK$)`PTMLQU6>W^7M2V$V6X38FW^UZ=RK`Z&S(L];GM7&OQFL`;HT]^1WTT(>Z@[=,O:L4_J[?HVH^[?PIS`C0VK]W?\9L@^X*X\T]NL_GZ^SM^4UOM:@V6DN&IB/@CYC*N]+8$`H4!HZYL<.6@(K$N&PT6_>X;]YK[S\^3;-/@SAH<&\]&OO\@W/C[0SU0^]\]_`:X:0!>K)]O?O%B5EH\)=)#=]QQF>;6!DX1!TX1!TX1(>X2(>X2(>X2$>X1$>X1$>X1&6X2&6X2&6X2]U18>%%8>,I3&!]+"5G$"-&C5#3Y"$Q"4]!4]0!I!5`!%`!%0!%03S4A#8A#HI!HY#&-!J[!*_!*?!)?5G73S"->HI#(^/,Q/$Q/D]0D]&"3("Y(Q#HG*(;3A#'/U`HD]$A]$A^`R?&R?"Q?B]@BQ3U/D]0D]$A]$A]BO3O?;>K*$A^JR/!R?!Q?A]@A)<590!;0Q70Q'$S5%Y0(Y$%AD)*'=B$%#$)7'!]'D]($41Q?A]@A-8A-(FTZ$6HO4%P44H2Y&"[&2_&2?"1?5ID#I`!I0!K0QE.;58A5(I6(Y6&Y+#5+D]+D]#AA3F(+CZ*-#617+9,#QS_@&MVPS4/*ZCF3$K_51SHFM%EZ2&)/BZ38,O6F3HF*5JIPJ;F3GC7F#6)W*Q6;#IS5)F+#WY5SZTL$JNA%;\"<<)A.M$\7;U0`]=,Z@#[TW5SGU[F-*B.JGE:O<W^F/"T+9$#1@L]PP6Z0&O-^MRP6YLN5]``R:D2OLB]OPV[0K_;G(D>8$Z?06[.R[`PZ"2OM'-`.;[F_J@3\FJ0?`>HZ8>0U\JIXW&PMR`H>@6_K.L;_@)@VKPLK?V6`_&<6AY^6`@F4^H8@J@`BWSCPJ,MP?`1()3PNNA!!!!! + locked 419463168 - 1.7.3.3 + 1.7.4.0 true 50 51 51 50 56 48 48 50 13 0 0 0 0 1 23 21 76 111 97 100 32 38 32 85 110 108 111 97 100 46 108 118 99 108 97 115 115 0 0 1 0 0 0 0 0 9 0 0 12 234 1 100 1 100 80 84 72 48 0 0 0 4 0 0 0 0 0 0 12 158 0 40 0 0 12 152 0 0 12 0 0 0 0 0 0 32 0 32 0 24 0 0 0 0 0 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 0 0 0 0 0 0 248 252 200 248 252 200 248 252 200 0 0 0 0 0 0 0 0 0 0 0 0 248 252 200 0 0 0 0 0 0 0 0 0 248 252 200 248 252 200 0 0 0 248 252 200 248 252 200 0 0 0 0 0 0 0 0 0 248 252 200 248 252 200 248 252 200 0 0 0 0 0 0 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 0 0 0 0 0 0 248 252 200 248 252 200 248 252 200 0 0 0 248 252 200 248 252 200 248 252 200 248 252 200 0 0 0 248 252 200 248 252 200 0 0 0 248 252 200 0 0 0 248 252 200 0 0 0 248 252 200 248 252 200 248 252 200 0 0 0 248 252 200 0 0 0 248 252 200 248 252 200 0 0 0 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 0 0 0 0 0 0 248 252 200 248 252 200 248 252 200 0 0 0 0 0 0 0 0 0 248 252 200 248 252 200 0 0 0 248 252 200 248 252 200 0 0 0 248 252 200 0 0 0 248 252 200 0 0 0 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 0 0 0 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 0 0 0 0 0 0 248 252 200 248 252 200 248 252 200 0 0 0 248 252 200 248 252 200 248 252 200 248 252 200 0 0 0 0 0 0 0 0 0 248 252 200 248 252 200 0 0 0 248 252 200 0 0 0 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 0 0 0 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 0 0 0 0 0 0 248 252 200 248 252 200 248 252 200 0 0 0 248 252 200 248 252 200 248 252 200 248 252 200 0 0 0 248 252 200 248 252 200 248 252 200 248 252 200 0 0 0 248 252 200 0 0 0 248 252 200 248 252 200 248 252 200 0 0 0 248 252 200 0 0 0 248 252 200 248 252 200 0 0 0 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 0 0 0 0 0 0 248 252 200 248 252 200 248 252 200 0 0 0 0 0 0 0 0 0 0 0 0 248 252 200 0 0 0 248 252 200 248 252 200 248 252 200 248 252 200 0 0 0 248 252 200 248 252 200 0 0 0 0 0 0 0 0 0 248 252 200 248 252 200 248 252 200 0 0 0 0 0 0 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 0 0 0 0 0 0 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 0 0 0 0 0 0 248 252 200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 252 200 248 252 200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 0 0 0 0 0 0 248 252 200 0 0 0 0 48 200 0 48 200 0 48 200 0 0 0 248 252 200 248 252 200 0 0 0 248 252 0 248 252 0 248 252 0 0 0 0 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 0 0 0 0 0 0 248 252 200 0 0 0 0 48 200 0 48 200 0 48 200 0 0 0 248 252 200 248 252 200 0 0 0 248 252 0 248 252 0 248 252 0 0 0 0 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 0 0 0 0 0 0 248 252 200 0 0 0 0 48 200 0 48 200 0 48 200 0 0 0 248 252 200 248 252 200 0 0 0 248 252 0 248 252 0 248 252 0 0 0 0 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 0 0 0 0 0 0 248 252 200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 252 200 248 252 200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 0 0 0 0 0 0 248 252 200 248 252 200 248 252 200 0 0 0 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 0 0 0 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 0 0 0 0 0 0 248 252 200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 252 200 0 0 0 0 0 0 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 0 0 0 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 0 0 0 248 252 200 248 252 200 248 252 200 0 0 0 0 0 0 248 252 200 248 252 200 248 252 200 248 252 200 0 0 0 0 0 0 0 0 0 248 252 200 248 252 200 248 252 200 248 252 200 0 0 0 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 252 200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 252 200 0 0 0 0 0 0 248 252 200 248 252 200 248 252 200 0 0 0 248 252 200 248 252 200 248 252 200 0 0 0 248 252 200 248 252 200 248 252 200 0 0 0 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 0 0 0 96 252 0 96 252 0 96 252 0 0 0 0 248 252 200 0 0 0 248 0 0 248 0 0 248 0 0 0 0 0 248 252 200 0 0 0 0 0 0 248 252 200 248 252 200 248 252 200 0 0 0 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 0 0 0 248 252 200 0 0 0 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 0 0 0 96 252 0 96 252 0 96 252 0 0 0 0 248 252 200 0 0 0 248 0 0 248 0 0 248 0 0 0 0 0 248 252 200 0 0 0 0 0 0 248 252 200 248 252 200 248 252 200 0 0 0 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 0 0 0 0 0 0 0 0 0 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 0 0 0 96 252 0 96 252 0 96 252 0 0 0 0 248 252 200 0 0 0 248 0 0 248 0 0 248 0 0 0 0 0 248 252 200 0 0 0 0 0 0 248 252 200 248 252 200 248 252 200 0 0 0 248 252 200 248 252 200 248 252 200 0 0 0 248 252 200 0 0 0 248 252 200 248 252 200 248 252 200 0 0 0 248 252 200 248 252 200 248 252 200 248 252 200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 252 200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 252 200 0 0 0 0 0 0 248 252 200 248 252 200 248 252 200 248 252 200 0 0 0 0 0 0 0 0 0 248 252 200 248 252 200 0 0 0 248 252 200 248 252 200 248 252 200 0 0 0 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 0 0 0 0 0 0 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 0 0 0 0 0 0 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 0 0 0 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 0 0 0 248 252 200 248 252 200 248 252 200 0 0 0 0 0 0 0 0 0 0 0 0 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 0 0 0 0 0 0 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 0 0 0 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 0 0 0 248 252 200 248 252 200 248 252 200 0 0 0 248 252 200 248 252 200 248 252 200 0 0 0 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 0 0 0 0 0 0 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 0 0 0 248 252 200 248 252 200 248 252 200 248 252 200 0 0 0 248 252 200 0 0 0 248 252 200 248 252 200 0 0 0 0 0 0 0 0 0 0 0 0 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 0 0 0 0 0 0 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 0 0 0 248 252 200 248 252 200 248 252 200 248 252 200 0 0 0 0 0 0 0 0 0 248 252 200 248 252 200 0 0 0 248 252 200 248 252 200 248 252 200 0 0 0 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 0 0 0 0 0 0 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 0 0 0 248 252 200 248 252 200 248 252 200 0 0 0 248 252 200 248 252 200 248 252 200 0 0 0 248 252 200 0 0 0 248 252 200 248 252 200 248 252 200 0 0 0 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 0 0 0 0 0 0 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 0 0 0 0 0 0 0 0 0 248 252 200 0 0 0 248 252 200 248 252 200 248 252 200 0 0 0 248 252 200 0 0 0 0 0 0 0 0 0 0 0 0 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 0 0 0 0 0 0 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 248 252 200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 83 109 97 108 108 32 70 111 110 116 115 0 1 8 1 1 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vis/CaLab.lvproj b/vis/CaLab.lvproj index b36ecfc..fbdc4a1 100644 --- a/vis/CaLab.lvproj +++ b/vis/CaLab.lvproj @@ -27,23 +27,23 @@ This project serves as a practical guide for engineers and researchers looking t false - - - - - + + + + + - - + + - - - - - - - + + + + + + + @@ -106,6 +106,7 @@ This project serves as a practical guide for engineers and researchers looking t true + diff --git a/vis/CaLabDisconnect.vi b/vis/CaLabDisconnect.vi index 3e40227..e1443fa 100644 Binary files a/vis/CaLabDisconnect.vi and b/vis/CaLabDisconnect.vi differ diff --git a/vis/CaLabEvent.vi b/vis/CaLabEvent.vi index a2af01b..737eb40 100644 Binary files a/vis/CaLabEvent.vi and b/vis/CaLabEvent.vi differ diff --git a/vis/CaLabEventUnregister.vi b/vis/CaLabEventUnregister.vi index 34eb8f7..4c68d69 100644 Binary files a/vis/CaLabEventUnregister.vi and b/vis/CaLabEventUnregister.vi differ diff --git a/vis/CaLabFilter.vi b/vis/CaLabFilter.vi index 6bdbc07..bd12879 100644 Binary files a/vis/CaLabFilter.vi and b/vis/CaLabFilter.vi differ diff --git a/vis/CaLabGet.vi b/vis/CaLabGet.vi index d3e5d7f..fef49dc 100644 Binary files a/vis/CaLabGet.vi and b/vis/CaLabGet.vi differ diff --git a/vis/CaLabInfo.vi b/vis/CaLabInfo.vi index 968098e..ad303ed 100644 Binary files a/vis/CaLabInfo.vi and b/vis/CaLabInfo.vi differ diff --git a/vis/CaLabInit.vi b/vis/CaLabInit.vi index e307446..ca405e8 100644 Binary files a/vis/CaLabInit.vi and b/vis/CaLabInit.vi differ diff --git a/vis/CaLabPut.vi b/vis/CaLabPut.vi index d9695fe..e63b5b5 100644 Binary files a/vis/CaLabPut.vi and b/vis/CaLabPut.vi differ diff --git a/vis/CaLabSoftIOC.vi b/vis/CaLabSoftIOC.vi index ef008f5..990042d 100644 Binary files a/vis/CaLabSoftIOC.vi and b/vis/CaLabSoftIOC.vi differ diff --git a/vis/Examples/Event Demo.vi b/vis/Examples/Event Demo.vi index 79d718b..3b4dd42 100644 Binary files a/vis/Examples/Event Demo.vi and b/vis/Examples/Event Demo.vi differ diff --git a/vis/Examples/Parallel Event Demo Sub/Parallel Event Close.vi b/vis/Examples/Parallel Event Demo Sub/Parallel Event Close.vi index 089325e..e11a8aa 100644 Binary files a/vis/Examples/Parallel Event Demo Sub/Parallel Event Close.vi and b/vis/Examples/Parallel Event Demo Sub/Parallel Event Close.vi differ diff --git a/vis/Examples/Parallel Event Demo Sub/Parallel Event Indicator.vi b/vis/Examples/Parallel Event Demo Sub/Parallel Event Indicator.vi index 9ef7b2e..b3336c7 100644 Binary files a/vis/Examples/Parallel Event Demo Sub/Parallel Event Indicator.vi and b/vis/Examples/Parallel Event Demo Sub/Parallel Event Indicator.vi differ diff --git a/vis/Examples/Parallel Event Demo Sub/Parallel Event Init.vi b/vis/Examples/Parallel Event Demo Sub/Parallel Event Init.vi index 9d6f6d6..3e21522 100644 Binary files a/vis/Examples/Parallel Event Demo Sub/Parallel Event Init.vi and b/vis/Examples/Parallel Event Demo Sub/Parallel Event Init.vi differ diff --git a/vis/Examples/Parallel Event Demo Sub/Parallel Event Struct.vi b/vis/Examples/Parallel Event Demo Sub/Parallel Event Struct.vi index 6797a45..979ef27 100644 Binary files a/vis/Examples/Parallel Event Demo Sub/Parallel Event Struct.vi and b/vis/Examples/Parallel Event Demo Sub/Parallel Event Struct.vi differ diff --git a/vis/Examples/Parallel Event Demo Sub/Parallel Event Task.vi b/vis/Examples/Parallel Event Demo Sub/Parallel Event Task.vi index 96c95fd..29319e6 100644 Binary files a/vis/Examples/Parallel Event Demo Sub/Parallel Event Task.vi and b/vis/Examples/Parallel Event Demo Sub/Parallel Event Task.vi differ diff --git a/vis/Examples/Parallel Event Demo.vi b/vis/Examples/Parallel Event Demo.vi index bb6e9ba..d1b550a 100644 Binary files a/vis/Examples/Parallel Event Demo.vi and b/vis/Examples/Parallel Event Demo.vi differ diff --git a/vis/Examples/Read Demo 1.vi b/vis/Examples/Read Demo 1.vi index 9a4d370..f5a5f4f 100644 Binary files a/vis/Examples/Read Demo 1.vi and b/vis/Examples/Read Demo 1.vi differ diff --git a/vis/Examples/Read Demo 2.vi b/vis/Examples/Read Demo 2.vi index c43bdaa..945f89a 100644 Binary files a/vis/Examples/Read Demo 2.vi and b/vis/Examples/Read Demo 2.vi differ diff --git a/vis/Examples/SoftIOC Demo Sub.vi b/vis/Examples/SoftIOC Demo Sub.vi index 368fe35..6c6d723 100644 Binary files a/vis/Examples/SoftIOC Demo Sub.vi and b/vis/Examples/SoftIOC Demo Sub.vi differ diff --git a/vis/Examples/SoftIOC Demo.vi b/vis/Examples/SoftIOC Demo.vi index 2924e40..4c1d592 100644 Binary files a/vis/Examples/SoftIOC Demo.vi and b/vis/Examples/SoftIOC Demo.vi differ diff --git a/vis/Examples/Write Demo - Looping.vi b/vis/Examples/Write Demo - Looping.vi index 677ccf2..2565aa7 100644 Binary files a/vis/Examples/Write Demo - Looping.vi and b/vis/Examples/Write Demo - Looping.vi differ diff --git a/vis/Examples/Write Demo - Timed.vi b/vis/Examples/Write Demo - Timed.vi index 4054cf0..58aaa9f 100644 Binary files a/vis/Examples/Write Demo - Timed.vi and b/vis/Examples/Write Demo - Timed.vi differ diff --git a/vis/Examples/Write Demo.vi b/vis/Examples/Write Demo.vi index 471dda6..c6420e2 100644 Binary files a/vis/Examples/Write Demo.vi and b/vis/Examples/Write Demo.vi differ diff --git a/vis/Examples/Write Random TestPV_ai.vi b/vis/Examples/Write Random TestPV_ai.vi index e629e57..cf4b241 100644 Binary files a/vis/Examples/Write Random TestPV_ai.vi and b/vis/Examples/Write Random TestPV_ai.vi differ diff --git a/vis/PV Info.ctl b/vis/PV Info.ctl index 51c6357..242a657 100644 Binary files a/vis/PV Info.ctl and b/vis/PV Info.ctl differ diff --git a/vis/PV Info.vi b/vis/PV Info.vi index 1e6c7f3..aae2737 100644 Binary files a/vis/PV Info.vi and b/vis/PV Info.vi differ diff --git a/vis/PV.ctl b/vis/PV.ctl index 131a3fc..3908d7c 100644 Binary files a/vis/PV.ctl and b/vis/PV.ctl differ diff --git a/vis/Private/CaLabDisconnect_PV-1D.vi b/vis/Private/CaLabDisconnect_PV-1D.vi index 4f80e1a..46506b4 100644 Binary files a/vis/Private/CaLabDisconnect_PV-1D.vi and b/vis/Private/CaLabDisconnect_PV-1D.vi differ diff --git a/vis/Private/CaLabDisconnect_PV.vi b/vis/Private/CaLabDisconnect_PV.vi index 54cfc31..b53da8f 100644 Binary files a/vis/Private/CaLabDisconnect_PV.vi and b/vis/Private/CaLabDisconnect_PV.vi differ diff --git a/vis/Private/CaLabEvent_PV-1D.vi b/vis/Private/CaLabEvent_PV-1D.vi index 3567106..5e1f99f 100644 Binary files a/vis/Private/CaLabEvent_PV-1D.vi and b/vis/Private/CaLabEvent_PV-1D.vi differ diff --git a/vis/Private/CaLabEvent_PV.vi b/vis/Private/CaLabEvent_PV.vi index e065893..887e3b9 100644 Binary files a/vis/Private/CaLabEvent_PV.vi and b/vis/Private/CaLabEvent_PV.vi differ diff --git a/vis/Private/CaLabGet_Main.vi b/vis/Private/CaLabGet_Main.vi index 34ce631..867a84f 100644 Binary files a/vis/Private/CaLabGet_Main.vi and b/vis/Private/CaLabGet_Main.vi differ diff --git a/vis/Private/CaLabGet_Main_Initialized.vi b/vis/Private/CaLabGet_Main_Initialized.vi index 0d279dc..eb7662c 100644 Binary files a/vis/Private/CaLabGet_Main_Initialized.vi and b/vis/Private/CaLabGet_Main_Initialized.vi differ diff --git a/vis/Private/CaLabGet_Result_Filter.vi b/vis/Private/CaLabGet_Result_Filter.vi index 9388d62..d2b7b03 100644 Binary files a/vis/Private/CaLabGet_Result_Filter.vi and b/vis/Private/CaLabGet_Result_Filter.vi differ diff --git a/vis/Private/CaLabInit_PV-1D.vi b/vis/Private/CaLabInit_PV-1D.vi index d4531d8..5b6e903 100644 Binary files a/vis/Private/CaLabInit_PV-1D.vi and b/vis/Private/CaLabInit_PV-1D.vi differ diff --git a/vis/Private/CaLabInit_PV.vi b/vis/Private/CaLabInit_PV.vi index d6a79f1..ecfd192 100644 Binary files a/vis/Private/CaLabInit_PV.vi and b/vis/Private/CaLabInit_PV.vi differ diff --git a/vis/Private/CaLabPut_Main.vi b/vis/Private/CaLabPut_Main.vi index 21b13a6..1ad2361 100644 Binary files a/vis/Private/CaLabPut_Main.vi and b/vis/Private/CaLabPut_Main.vi differ diff --git a/vis/Private/CaLabPut_Main_Initialized.vi b/vis/Private/CaLabPut_Main_Initialized.vi index c725d62..1f1427c 100644 Binary files a/vis/Private/CaLabPut_Main_Initialized.vi and b/vis/Private/CaLabPut_Main_Initialized.vi differ diff --git a/vis/Private/CaLabSoftIocEnd.vi b/vis/Private/CaLabSoftIocEnd.vi index 717b820..c1e78f5 100644 Binary files a/vis/Private/CaLabSoftIocEnd.vi and b/vis/Private/CaLabSoftIocEnd.vi differ diff --git a/vis/Private/CaLabSoftIocStart.vi b/vis/Private/CaLabSoftIocStart.vi index 55d8246..c4befce 100644 Binary files a/vis/Private/CaLabSoftIocStart.vi and b/vis/Private/CaLabSoftIocStart.vi differ diff --git a/vis/Private/CheckWindows.vi b/vis/Private/CheckWindows.vi index e161bf0..a0d4c05 100644 Binary files a/vis/Private/CheckWindows.vi and b/vis/Private/CheckWindows.vi differ diff --git a/vis/Private/ConfigurationSet.vi b/vis/Private/ConfigurationSet.vi index dc1f377..629cd7e 100644 Binary files a/vis/Private/ConfigurationSet.vi and b/vis/Private/ConfigurationSet.vi differ diff --git a/vis/Private/DbPathName.vi b/vis/Private/DbPathName.vi index c88ac8f..3d29a7c 100644 Binary files a/vis/Private/DbPathName.vi and b/vis/Private/DbPathName.vi differ diff --git a/vis/Private/DbdPathName.vi b/vis/Private/DbdPathName.vi index d82235b..9f481e0 100644 Binary files a/vis/Private/DbdPathName.vi and b/vis/Private/DbdPathName.vi differ diff --git a/vis/Private/Get_PV-1D-I.vi b/vis/Private/Get_PV-1D-I.vi index 6276a94..6e102de 100644 Binary files a/vis/Private/Get_PV-1D-I.vi and b/vis/Private/Get_PV-1D-I.vi differ diff --git a/vis/Private/Get_PV-1D.vi b/vis/Private/Get_PV-1D.vi index 9e7edf7..fb4decb 100644 Binary files a/vis/Private/Get_PV-1D.vi and b/vis/Private/Get_PV-1D.vi differ diff --git a/vis/Private/Get_PV-I.vi b/vis/Private/Get_PV-I.vi index 84d0ab8..4960ed0 100644 Binary files a/vis/Private/Get_PV-I.vi and b/vis/Private/Get_PV-I.vi differ diff --git a/vis/Private/Get_PV.vi b/vis/Private/Get_PV.vi index 22d7459..55bebd4 100644 Binary files a/vis/Private/Get_PV.vi and b/vis/Private/Get_PV.vi differ diff --git a/vis/Private/Ioc_Config.vi b/vis/Private/Ioc_Config.vi index ce7758d..4cd7ff9 100644 Binary files a/vis/Private/Ioc_Config.vi and b/vis/Private/Ioc_Config.vi differ diff --git a/vis/Private/Put_Boolean-1D_PV-1D-I.vi b/vis/Private/Put_Boolean-1D_PV-1D-I.vi index b3ba68b..72a178e 100644 Binary files a/vis/Private/Put_Boolean-1D_PV-1D-I.vi and b/vis/Private/Put_Boolean-1D_PV-1D-I.vi differ diff --git a/vis/Private/Put_Boolean-1D_PV-1D.vi b/vis/Private/Put_Boolean-1D_PV-1D.vi index d028ed0..b7d4659 100644 Binary files a/vis/Private/Put_Boolean-1D_PV-1D.vi and b/vis/Private/Put_Boolean-1D_PV-1D.vi differ diff --git a/vis/Private/Put_Boolean-1D_PV-I.vi b/vis/Private/Put_Boolean-1D_PV-I.vi index 7645e37..1106b97 100644 Binary files a/vis/Private/Put_Boolean-1D_PV-I.vi and b/vis/Private/Put_Boolean-1D_PV-I.vi differ diff --git a/vis/Private/Put_Boolean-1D_PV.vi b/vis/Private/Put_Boolean-1D_PV.vi index 467d517..c59edd8 100644 Binary files a/vis/Private/Put_Boolean-1D_PV.vi and b/vis/Private/Put_Boolean-1D_PV.vi differ diff --git a/vis/Private/Put_Boolean-2D_PV-1D-I.vi b/vis/Private/Put_Boolean-2D_PV-1D-I.vi index 1422bff..224cbd5 100644 Binary files a/vis/Private/Put_Boolean-2D_PV-1D-I.vi and b/vis/Private/Put_Boolean-2D_PV-1D-I.vi differ diff --git a/vis/Private/Put_Boolean-2D_PV-1D.vi b/vis/Private/Put_Boolean-2D_PV-1D.vi index 9781b6a..16c0744 100644 Binary files a/vis/Private/Put_Boolean-2D_PV-1D.vi and b/vis/Private/Put_Boolean-2D_PV-1D.vi differ diff --git a/vis/Private/Put_Boolean_PV-I.vi b/vis/Private/Put_Boolean_PV-I.vi index 710b8bd..4486da9 100644 Binary files a/vis/Private/Put_Boolean_PV-I.vi and b/vis/Private/Put_Boolean_PV-I.vi differ diff --git a/vis/Private/Put_Boolean_PV.vi b/vis/Private/Put_Boolean_PV.vi index a641c7c..4a94a58 100644 Binary files a/vis/Private/Put_Boolean_PV.vi and b/vis/Private/Put_Boolean_PV.vi differ diff --git a/vis/Private/Put_DBL-1D_PV-1D-I.vi b/vis/Private/Put_DBL-1D_PV-1D-I.vi index f5e0eaf..52bd062 100644 Binary files a/vis/Private/Put_DBL-1D_PV-1D-I.vi and b/vis/Private/Put_DBL-1D_PV-1D-I.vi differ diff --git a/vis/Private/Put_DBL-1D_PV-1D.vi b/vis/Private/Put_DBL-1D_PV-1D.vi index c35cd16..baef596 100644 Binary files a/vis/Private/Put_DBL-1D_PV-1D.vi and b/vis/Private/Put_DBL-1D_PV-1D.vi differ diff --git a/vis/Private/Put_DBL-1D_PV-I.vi b/vis/Private/Put_DBL-1D_PV-I.vi index c5e93c0..f985c0c 100644 Binary files a/vis/Private/Put_DBL-1D_PV-I.vi and b/vis/Private/Put_DBL-1D_PV-I.vi differ diff --git a/vis/Private/Put_DBL-1D_PV.vi b/vis/Private/Put_DBL-1D_PV.vi index 804fb49..c7fa154 100644 Binary files a/vis/Private/Put_DBL-1D_PV.vi and b/vis/Private/Put_DBL-1D_PV.vi differ diff --git a/vis/Private/Put_DBL-2D_PV-1D-I.vi b/vis/Private/Put_DBL-2D_PV-1D-I.vi index 1bf7434..584e1a5 100644 Binary files a/vis/Private/Put_DBL-2D_PV-1D-I.vi and b/vis/Private/Put_DBL-2D_PV-1D-I.vi differ diff --git a/vis/Private/Put_DBL-2D_PV-1D.vi b/vis/Private/Put_DBL-2D_PV-1D.vi index 7ad0ed8..53d3dd5 100644 Binary files a/vis/Private/Put_DBL-2D_PV-1D.vi and b/vis/Private/Put_DBL-2D_PV-1D.vi differ diff --git a/vis/Private/Put_DBL_PV-I.vi b/vis/Private/Put_DBL_PV-I.vi index 7d63546..8a37306 100644 Binary files a/vis/Private/Put_DBL_PV-I.vi and b/vis/Private/Put_DBL_PV-I.vi differ diff --git a/vis/Private/Put_DBL_PV.vi b/vis/Private/Put_DBL_PV.vi index a6fbe13..05efea0 100644 Binary files a/vis/Private/Put_DBL_PV.vi and b/vis/Private/Put_DBL_PV.vi differ diff --git a/vis/Private/Put_I16-1D_PV-1D-I.vi b/vis/Private/Put_I16-1D_PV-1D-I.vi index 0627e13..470c5cf 100644 Binary files a/vis/Private/Put_I16-1D_PV-1D-I.vi and b/vis/Private/Put_I16-1D_PV-1D-I.vi differ diff --git a/vis/Private/Put_I16-1D_PV-1D.vi b/vis/Private/Put_I16-1D_PV-1D.vi index 679c0a6..a093c4f 100644 Binary files a/vis/Private/Put_I16-1D_PV-1D.vi and b/vis/Private/Put_I16-1D_PV-1D.vi differ diff --git a/vis/Private/Put_I16-1D_PV-I.vi b/vis/Private/Put_I16-1D_PV-I.vi index 6e99e7e..16d7193 100644 Binary files a/vis/Private/Put_I16-1D_PV-I.vi and b/vis/Private/Put_I16-1D_PV-I.vi differ diff --git a/vis/Private/Put_I16-1D_PV.vi b/vis/Private/Put_I16-1D_PV.vi index 9b7415e..4d365fc 100644 Binary files a/vis/Private/Put_I16-1D_PV.vi and b/vis/Private/Put_I16-1D_PV.vi differ diff --git a/vis/Private/Put_I16-2D_PV-1D-I.vi b/vis/Private/Put_I16-2D_PV-1D-I.vi index 35c3db0..e550d75 100644 Binary files a/vis/Private/Put_I16-2D_PV-1D-I.vi and b/vis/Private/Put_I16-2D_PV-1D-I.vi differ diff --git a/vis/Private/Put_I16-2D_PV-1D.vi b/vis/Private/Put_I16-2D_PV-1D.vi index 731bae4..279933a 100644 Binary files a/vis/Private/Put_I16-2D_PV-1D.vi and b/vis/Private/Put_I16-2D_PV-1D.vi differ diff --git a/vis/Private/Put_I16_PV-I.vi b/vis/Private/Put_I16_PV-I.vi index 2d195ba..bbe8409 100644 Binary files a/vis/Private/Put_I16_PV-I.vi and b/vis/Private/Put_I16_PV-I.vi differ diff --git a/vis/Private/Put_I16_PV.vi b/vis/Private/Put_I16_PV.vi index 8e98fe7..26db81a 100644 Binary files a/vis/Private/Put_I16_PV.vi and b/vis/Private/Put_I16_PV.vi differ diff --git a/vis/Private/Put_I32-1D_PV-1D-I.vi b/vis/Private/Put_I32-1D_PV-1D-I.vi index e2dd8d2..4607f8c 100644 Binary files a/vis/Private/Put_I32-1D_PV-1D-I.vi and b/vis/Private/Put_I32-1D_PV-1D-I.vi differ diff --git a/vis/Private/Put_I32-1D_PV-1D.vi b/vis/Private/Put_I32-1D_PV-1D.vi index c6fc4a4..240e1be 100644 Binary files a/vis/Private/Put_I32-1D_PV-1D.vi and b/vis/Private/Put_I32-1D_PV-1D.vi differ diff --git a/vis/Private/Put_I32-1D_PV-I.vi b/vis/Private/Put_I32-1D_PV-I.vi index a96980d..07ecf3c 100644 Binary files a/vis/Private/Put_I32-1D_PV-I.vi and b/vis/Private/Put_I32-1D_PV-I.vi differ diff --git a/vis/Private/Put_I32-1D_PV.vi b/vis/Private/Put_I32-1D_PV.vi index 5220dfc..66189a7 100644 Binary files a/vis/Private/Put_I32-1D_PV.vi and b/vis/Private/Put_I32-1D_PV.vi differ diff --git a/vis/Private/Put_I32-2D_PV-1D-I.vi b/vis/Private/Put_I32-2D_PV-1D-I.vi index 1eed4de..e903617 100644 Binary files a/vis/Private/Put_I32-2D_PV-1D-I.vi and b/vis/Private/Put_I32-2D_PV-1D-I.vi differ diff --git a/vis/Private/Put_I32-2D_PV-1D.vi b/vis/Private/Put_I32-2D_PV-1D.vi index f90d5b6..a7cb4fd 100644 Binary files a/vis/Private/Put_I32-2D_PV-1D.vi and b/vis/Private/Put_I32-2D_PV-1D.vi differ diff --git a/vis/Private/Put_I32_PV-I.vi b/vis/Private/Put_I32_PV-I.vi index 405e386..7c2984d 100644 Binary files a/vis/Private/Put_I32_PV-I.vi and b/vis/Private/Put_I32_PV-I.vi differ diff --git a/vis/Private/Put_I32_PV.vi b/vis/Private/Put_I32_PV.vi index 41cedf2..624c97d 100644 Binary files a/vis/Private/Put_I32_PV.vi and b/vis/Private/Put_I32_PV.vi differ diff --git a/vis/Private/Put_I64-1D_PV-1D-I.vi b/vis/Private/Put_I64-1D_PV-1D-I.vi index d279b49..dc3a64e 100644 Binary files a/vis/Private/Put_I64-1D_PV-1D-I.vi and b/vis/Private/Put_I64-1D_PV-1D-I.vi differ diff --git a/vis/Private/Put_I64-1D_PV-1D.vi b/vis/Private/Put_I64-1D_PV-1D.vi index 4bbcdc1..cd5267a 100644 Binary files a/vis/Private/Put_I64-1D_PV-1D.vi and b/vis/Private/Put_I64-1D_PV-1D.vi differ diff --git a/vis/Private/Put_I64-1D_PV-I.vi b/vis/Private/Put_I64-1D_PV-I.vi index 3acab77..930da09 100644 Binary files a/vis/Private/Put_I64-1D_PV-I.vi and b/vis/Private/Put_I64-1D_PV-I.vi differ diff --git a/vis/Private/Put_I64-1D_PV.vi b/vis/Private/Put_I64-1D_PV.vi index 107465e..efa9fb7 100644 Binary files a/vis/Private/Put_I64-1D_PV.vi and b/vis/Private/Put_I64-1D_PV.vi differ diff --git a/vis/Private/Put_I64-2D_PV-1D-I.vi b/vis/Private/Put_I64-2D_PV-1D-I.vi index 6ed2ef0..08d1b62 100644 Binary files a/vis/Private/Put_I64-2D_PV-1D-I.vi and b/vis/Private/Put_I64-2D_PV-1D-I.vi differ diff --git a/vis/Private/Put_I64-2D_PV-1D.vi b/vis/Private/Put_I64-2D_PV-1D.vi index 151ca9d..41e14c1 100644 Binary files a/vis/Private/Put_I64-2D_PV-1D.vi and b/vis/Private/Put_I64-2D_PV-1D.vi differ diff --git a/vis/Private/Put_I64_PV-I.vi b/vis/Private/Put_I64_PV-I.vi index ed4953f..97f7373 100644 Binary files a/vis/Private/Put_I64_PV-I.vi and b/vis/Private/Put_I64_PV-I.vi differ diff --git a/vis/Private/Put_I64_PV.vi b/vis/Private/Put_I64_PV.vi index d267a90..649b83b 100644 Binary files a/vis/Private/Put_I64_PV.vi and b/vis/Private/Put_I64_PV.vi differ diff --git a/vis/Private/Put_I8-1D_PV-1D-I.vi b/vis/Private/Put_I8-1D_PV-1D-I.vi index b9a6f59..56d6d25 100644 Binary files a/vis/Private/Put_I8-1D_PV-1D-I.vi and b/vis/Private/Put_I8-1D_PV-1D-I.vi differ diff --git a/vis/Private/Put_I8-1D_PV-1D.vi b/vis/Private/Put_I8-1D_PV-1D.vi index e142a08..1192ac8 100644 Binary files a/vis/Private/Put_I8-1D_PV-1D.vi and b/vis/Private/Put_I8-1D_PV-1D.vi differ diff --git a/vis/Private/Put_I8-1D_PV-I.vi b/vis/Private/Put_I8-1D_PV-I.vi index ccfcf8e..0cef685 100644 Binary files a/vis/Private/Put_I8-1D_PV-I.vi and b/vis/Private/Put_I8-1D_PV-I.vi differ diff --git a/vis/Private/Put_I8-1D_PV.vi b/vis/Private/Put_I8-1D_PV.vi index 394b847..6e7136e 100644 Binary files a/vis/Private/Put_I8-1D_PV.vi and b/vis/Private/Put_I8-1D_PV.vi differ diff --git a/vis/Private/Put_I8-2D_PV-1D-I.vi b/vis/Private/Put_I8-2D_PV-1D-I.vi index c07d699..1693164 100644 Binary files a/vis/Private/Put_I8-2D_PV-1D-I.vi and b/vis/Private/Put_I8-2D_PV-1D-I.vi differ diff --git a/vis/Private/Put_I8-2D_PV-1D.vi b/vis/Private/Put_I8-2D_PV-1D.vi index 8a4592f..ba76ae1 100644 Binary files a/vis/Private/Put_I8-2D_PV-1D.vi and b/vis/Private/Put_I8-2D_PV-1D.vi differ diff --git a/vis/Private/Put_I8_PV-I.vi b/vis/Private/Put_I8_PV-I.vi index fc5f8bb..ae6b41a 100644 Binary files a/vis/Private/Put_I8_PV-I.vi and b/vis/Private/Put_I8_PV-I.vi differ diff --git a/vis/Private/Put_I8_PV.vi b/vis/Private/Put_I8_PV.vi index 389dfe3..f4cf802 100644 Binary files a/vis/Private/Put_I8_PV.vi and b/vis/Private/Put_I8_PV.vi differ diff --git a/vis/Private/Put_SGL-1D_PV-1D-I.vi b/vis/Private/Put_SGL-1D_PV-1D-I.vi index 692a733..72de65a 100644 Binary files a/vis/Private/Put_SGL-1D_PV-1D-I.vi and b/vis/Private/Put_SGL-1D_PV-1D-I.vi differ diff --git a/vis/Private/Put_SGL-1D_PV-1D.vi b/vis/Private/Put_SGL-1D_PV-1D.vi index fd6a625..f007b82 100644 Binary files a/vis/Private/Put_SGL-1D_PV-1D.vi and b/vis/Private/Put_SGL-1D_PV-1D.vi differ diff --git a/vis/Private/Put_SGL-1D_PV-I.vi b/vis/Private/Put_SGL-1D_PV-I.vi index 646e856..c1cb4e9 100644 Binary files a/vis/Private/Put_SGL-1D_PV-I.vi and b/vis/Private/Put_SGL-1D_PV-I.vi differ diff --git a/vis/Private/Put_SGL-1D_PV.vi b/vis/Private/Put_SGL-1D_PV.vi index b5efd29..bee5a56 100644 Binary files a/vis/Private/Put_SGL-1D_PV.vi and b/vis/Private/Put_SGL-1D_PV.vi differ diff --git a/vis/Private/Put_SGL-2D_PV-1D-I.vi b/vis/Private/Put_SGL-2D_PV-1D-I.vi index ec546a5..75d76eb 100644 Binary files a/vis/Private/Put_SGL-2D_PV-1D-I.vi and b/vis/Private/Put_SGL-2D_PV-1D-I.vi differ diff --git a/vis/Private/Put_SGL-2D_PV-1D.vi b/vis/Private/Put_SGL-2D_PV-1D.vi index 778588a..7fe58cd 100644 Binary files a/vis/Private/Put_SGL-2D_PV-1D.vi and b/vis/Private/Put_SGL-2D_PV-1D.vi differ diff --git a/vis/Private/Put_SGL_PV-I.vi b/vis/Private/Put_SGL_PV-I.vi index 86838d4..f872cb6 100644 Binary files a/vis/Private/Put_SGL_PV-I.vi and b/vis/Private/Put_SGL_PV-I.vi differ diff --git a/vis/Private/Put_SGL_PV.vi b/vis/Private/Put_SGL_PV.vi index fa92db9..de84822 100644 Binary files a/vis/Private/Put_SGL_PV.vi and b/vis/Private/Put_SGL_PV.vi differ diff --git a/vis/Private/Put_String-1D_PV-1D-I.vi b/vis/Private/Put_String-1D_PV-1D-I.vi index 86b9154..8d8ce55 100644 Binary files a/vis/Private/Put_String-1D_PV-1D-I.vi and b/vis/Private/Put_String-1D_PV-1D-I.vi differ diff --git a/vis/Private/Put_String-1D_PV-1D.vi b/vis/Private/Put_String-1D_PV-1D.vi index 24b42b5..f0b0c4b 100644 Binary files a/vis/Private/Put_String-1D_PV-1D.vi and b/vis/Private/Put_String-1D_PV-1D.vi differ diff --git a/vis/Private/Put_String-1D_PV-I.vi b/vis/Private/Put_String-1D_PV-I.vi index c68765f..e7bbfa4 100644 Binary files a/vis/Private/Put_String-1D_PV-I.vi and b/vis/Private/Put_String-1D_PV-I.vi differ diff --git a/vis/Private/Put_String-1D_PV.vi b/vis/Private/Put_String-1D_PV.vi index 0e882e9..e31f8e2 100644 Binary files a/vis/Private/Put_String-1D_PV.vi and b/vis/Private/Put_String-1D_PV.vi differ diff --git a/vis/Private/Put_String-2D_PV-1D-I.vi b/vis/Private/Put_String-2D_PV-1D-I.vi index d39475a..dd0254d 100644 Binary files a/vis/Private/Put_String-2D_PV-1D-I.vi and b/vis/Private/Put_String-2D_PV-1D-I.vi differ diff --git a/vis/Private/Put_String-2D_PV-1D.vi b/vis/Private/Put_String-2D_PV-1D.vi index 171cfe9..8855f2a 100644 Binary files a/vis/Private/Put_String-2D_PV-1D.vi and b/vis/Private/Put_String-2D_PV-1D.vi differ diff --git a/vis/Private/Put_String_PV-I.vi b/vis/Private/Put_String_PV-I.vi index c63447c..301754c 100644 Binary files a/vis/Private/Put_String_PV-I.vi and b/vis/Private/Put_String_PV-I.vi differ diff --git a/vis/Private/Put_String_PV.vi b/vis/Private/Put_String_PV.vi index c7c0d91..538694f 100644 Binary files a/vis/Private/Put_String_PV.vi and b/vis/Private/Put_String_PV.vi differ diff --git a/vis/Private/RestartCounter.vi b/vis/Private/RestartCounter.vi index a0cf40c..8c85fec 100644 Binary files a/vis/Private/RestartCounter.vi and b/vis/Private/RestartCounter.vi differ diff --git a/vis/Private/SET_EPICS_CA_ADDR_LIST.vi b/vis/Private/SET_EPICS_CA_ADDR_LIST.vi index d6d33e9..6d635ca 100644 Binary files a/vis/Private/SET_EPICS_CA_ADDR_LIST.vi and b/vis/Private/SET_EPICS_CA_ADDR_LIST.vi differ diff --git a/vis/Private/SoftIocPathName.vi b/vis/Private/SoftIocPathName.vi index fe8548b..3c7acf7 100644 Binary files a/vis/Private/SoftIocPathName.vi and b/vis/Private/SoftIocPathName.vi differ diff --git a/vis/Private/ioc_mbbi_config.vi b/vis/Private/ioc_mbbi_config.vi index 6499b8c..44c433a 100644 Binary files a/vis/Private/ioc_mbbi_config.vi and b/vis/Private/ioc_mbbi_config.vi differ diff --git a/vis/Private/port5064free.vi b/vis/Private/port5064free.vi index a006c94..17dd3f6 100644 Binary files a/vis/Private/port5064free.vi and b/vis/Private/port5064free.vi differ diff --git a/vis/demo/DemoIOC.cmd b/vis/demo/DemoIOC.cmd index af053a3..2bcecec 100644 --- a/vis/demo/DemoIOC.cmd +++ b/vis/demo/DemoIOC.cmd @@ -5,6 +5,6 @@ echo Type 'dbl' to get a list of all available records. echo Type 'exit' to terminate this session. echo --- -%APPDATA%\calab\softIoc.exe -D %APPDATA%\calab\softIoc.dbd -d %APPDATA%\calab\Demo\db\demo.db +"%CALAB_HOME%\lib\softIoc.exe" -D "%CALAB_HOME%\lib\softIoc.dbd" -d "%CALAB_HOME%\Demo\db\demo.db" :end diff --git a/vis/demo/TestPV_ai100000.cmd b/vis/demo/TestPV_ai100000.cmd index 833d367..db2875a 100644 --- a/vis/demo/TestPV_ai100000.cmd +++ b/vis/demo/TestPV_ai100000.cmd @@ -5,6 +5,6 @@ echo Type 'dbl' to get a list of all available records. echo Type 'exit' to terminate this session. echo --- -%APPDATA%\calab\softIoc.exe -D %APPDATA%\calab\softIoc.dbd -d %APPDATA%\calab\Demo\db\TestPV_ai100000.db +"%CALAB_HOME%\lib\softIoc.exe" -D "%CALAB_HOME%\lib\softIoc.dbd" -d "%CALAB_HOME%\Demo\db\TestPV_ai100000.db" :end diff --git a/vis/development/Get VI Revision.vi b/vis/development/Get VI Revision.vi index 05034ab..2110a08 100644 Binary files a/vis/development/Get VI Revision.vi and b/vis/development/Get VI Revision.vi differ diff --git a/vis/development/Get VI Versions List.vi b/vis/development/Get VI Versions List.vi index 68d28e0..27be974 100644 Binary files a/vis/development/Get VI Versions List.vi and b/vis/development/Get VI Versions List.vi differ diff --git a/vis/development/Protect VIs.vi b/vis/development/Protect VIs.vi index bc26a86..eb203f5 100644 Binary files a/vis/development/Protect VIs.vi and b/vis/development/Protect VIs.vi differ diff --git a/vis/development/RemoveCompiledCodeV2.vi b/vis/development/RemoveCompiledCodeV2.vi new file mode 100644 index 0000000..7de9cde Binary files /dev/null and b/vis/development/RemoveCompiledCodeV2.vi differ diff --git a/vis/development/Set Documentation Properties.vi b/vis/development/Set Documentation Properties.vi index f4fe788..62edb68 100644 Binary files a/vis/development/Set Documentation Properties.vi and b/vis/development/Set Documentation Properties.vi differ diff --git a/vis/development/Set VIs History Properties.vi b/vis/development/Set VIs History Properties.vi index ac13ea7..6a7efbe 100644 Binary files a/vis/development/Set VIs History Properties.vi and b/vis/development/Set VIs History Properties.vi differ diff --git a/vis/development/Unprotect VIs.vi b/vis/development/Unprotect VIs.vi index d6e5031..8ad7c8c 100644 Binary files a/vis/development/Unprotect VIs.vi and b/vis/development/Unprotect VIs.vi differ diff --git a/vis/private/Get_EPICS_binaries_path.vi b/vis/private/Get_EPICS_binaries_path.vi new file mode 100644 index 0000000..a44a069 Binary files /dev/null and b/vis/private/Get_EPICS_binaries_path.vi differ diff --git a/vis/utilities/add CaLab palette.vi b/vis/utilities/add CaLab palette.vi index c1f991b..ab89ec6 100644 Binary files a/vis/utilities/add CaLab palette.vi and b/vis/utilities/add CaLab palette.vi differ diff --git a/vis/utilities/remove CaLab palette.vi b/vis/utilities/remove CaLab palette.vi index 6094dca..0e4b71b 100644 Binary files a/vis/utilities/remove CaLab palette.vi and b/vis/utilities/remove CaLab palette.vi differ