Skip to content

Address some issues of the example apps - #59

Open
pheest wants to merge 1 commit into
epics-modules:masterfrom
pheest:Example-apps
Open

Address some issues of the example apps#59
pheest wants to merge 1 commit into
epics-modules:masterfrom
pheest:Example-apps

Conversation

@pheest

@pheest pheest commented Sep 7, 2026

Copy link
Copy Markdown
Collaborator

When I open the box on a module like pyDevSup, the first thing I'm going to seek to do is run the example apps.
These do not currently work for the reasons outlined below.
This tends to give a less than ideal first impression.
In my view, the examples need maintenance and upgrade.

I deem it reasonable to assume that 64-bit Linux and Windows will be used.

For Windows use, I have written batch script(s) that extract PY_VER and PY_LIBDIRS by parsing the CONFIG_PY.Common.windows-x64 file.
PY_VER is used for launching the IOC irrespective of which Python version has been used to build the code.
PY_LIBDIRS is then used to find the Python install directory, in my case e.g. C:\Python313(\libs removed). This is used to provide the PATH to python.dll.
I lack the Linux/bash skill to do something similar for use there.
Users can of course edit the st.cmd file to launch the desired softIocPy%PY_VER%

In disect.py, InstanceType is imported is imported for Python2 usage.
This will fail with Python3 and the exception is caught.
The value of InstanceType is checked for None later.
However in these circumstances the value is not None but undefined, causing the application to fail.
disect.py is used by iocFPM and iocweatherbnl.
I have removed the Python2 usage altogether.

Of the 5 example apps:
The iocapplmon module is dependant on archApp\bplreport.py which I updated to use Python 3 rather than Python 2.
It is also dependant on the bplstorage.db. It needed to be added to the makefile.
The module now runs (on Windows and Linux), but it cannot work because the address capp02.cs.nsls2.local:17665 is not accessible.
I also tried arcapp01.cs.nsls2.local:17665.
This address may have been changed, or possibly is not accessible to unauthenticated users?
@mdavidsaver would you be able to advise about this? Thanks.

iocarchivemon operates normally, on Windows and Linux.

ioccaputlog requires a module '_inotify' to operate, which does not exist on Windows.
The module operates normally on Linux.

iocFPM is dependant on the iocStats and autoSave modules.
autoSave works on Windows, but I was unable to build the iocStats module there.
This application operates normally on Linux.

iocweatherbnl operates normally, on Windows and Linux

Changed Python files to work with Python3.
Added bplstorage.db to the relevant makefile.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant