DiamondLightSource / ethercat

EPICS support to read/write to ethercat based hardware
24 stars 12 forks source link

build instructions for patched etherlab #6

Open ronaldomercado opened 2 years ago

ronaldomercado commented 2 years ago

The documentation needs updating because etherlab migrated to git at gitlab https://gitlab.com/etherlab.org/ethercat and the instructions to build the module in etc/makeDocumentation/building.src still refer to mercurial

wduckitt commented 8 months ago

Is anyone ever going to update this documentation? Why can't the source be converted to markdown?

ronaldomercado commented 8 months ago

Thanks for your interest

Not an answer to your question, but I created this repository with the patches needed https://github.com/ronaldomercado/igh-ethercat

See the branch ‘patches’ for the patches applies to version 1-5-2 of etherlab

wduckitt commented 8 months ago

Hi, thank you for that link, this repository is in need some maintenance. I have managed to patch this repo, such that it uses Python 3.12, uses the latest version of the Etherlab master, runs EPICS 7.0.8, the latest asyn and runs on the latest kernel in Ubuntu 22.04. I have it working and communicating with an ethercat chain. Interestingly the patch changes from 1.5.2 are not needed as they the etherlab master has moved away from the printf error messages to kernal error messaging which get's logged.

I need some guidnace in solving an issue which builds the the chain.xml file from the slaveinfo automatically, for now I just manually edited it to build the scanner.xml. Where does one find the source for the iocbuilder. if i look at the https://github.com/dls-controls/ethercat/blob/master/etc/builder/build_iocbuilder_descriptions.py it requires in line 36: pkg_resources.require('iocbuilder==3.70')

slaveinfo currently complains it needs some text file, but this is built by the iocbuilder.

where are sources for this project? I don't recall this from the orignal project documentaion we used back in 2017... Has iocbuilder become python softIOC? any help would be appreciated. My repo is still private, currently I am not sure if I will submitt it as a pull request as it may effect your internal projects?

wduckitt commented 8 months ago

Hi

Following my last comment I realised that one can remove the dependancy iocbuider by changing a few lines in python scripts in the etc/builder folder such that it imports the scripts directly.

The updates for the repo are available in this branch here: https://github.com/wduckitt/epics-ethercat/tree/updateToLatest

You can compare the changes at this link: https://github.com/dls-controls/ethercat/compare/master...wduckitt:epics-ethercat:updateToLatest

Effectively it runs the latest python 3, Etherlab master, EPICS 7.0.8 and Asyn 4.44.2

You will notice that the environment variables have also been cleaned up such that everthing either points to /epics/base ... or /etherlab/ethercat

and not to a users home directory. This makes the repo portable accross sites

The only thing left to do is create the markdown documentation.

My question to you though is are you willing to receive a pull request to update your repo or should I just keep an upstream version?

Regards,

William

gilesknap commented 8 months ago

@wduckitt - thanks for doing this work.

I would like to see this cleaned up version that does not use builder available publicly. This would be more appropriate for our future direction towards containers and open source vanilla support modules. (https://github.com/epics-containers)

@ronaldomercado - what do you think? I guess this means having our internal and external versions diverge for now, or maintaining a separate branch for the vanilla version and the builder version.