ads-deploy bridges the gap between your PLC project in TwinCAT XAE + Visual Studio and the Python/EPICS tools we use for development and deployment (PyTMC, ads-ioc) by providing a full EPICS and Python environment in a containerized Docker image.
- pytmc pragma linting / verification
- Build and run ads-based EPICS IOCs directly from Windows
- Generate batch files to run the IOC outside of Visual Studio
- Auto-generate and run simple Typhon screens directly from Windows
- No need to transfer your project and files to a Linux machine just to generate the IOC
Note: this is partly outdated - Docker is no longer required and conda may be used in place of it
Step-by-step notes are available here: https://confluence.slac.stanford.edu/display/PCDS/Installing+ads-deploy+on+Windows
Using just the Docker container is simple on all platforms. Run the following to check it out:
Windows
C:\> docker run -it pcdshub/ads-deploy:latest /bin/bash
OSX / Linux
$ eval $(docker-machine env)
$ docker run -it pcdshub/ads-deploy:latest /bin/bash
Steps to update ads-deploy:
- Update ads-ioc-docker (follow its README)
- Tag and release pytmc (use v0.0.0 style as usual)
- Update the
FROM
pcdshub/ads-ioc version - Update environment variables:
PYTMC_VERSION
,ADS_IOC_VERSION
- Rebuild. Match the
ADS_DEPLOY_VERSION
with the pytmc version, as it tends to change the most:$ export ADS_DEPLOY_VERSION={pytmc version} $ docker build -t pcdshub/ads-deploy:${ADS_DEPLOY_VERSION} . $ docker build -t pcdshub/ads-deploy:latest .
- Push to DockerHub
$ docker push pcdshub/ads-deploy:${ADS_DEPLOY_VERSION} $ docker push pcdshub/ads-deploy:latest
- Commit, tag, and push to GitHub
$ git tag ${ADS_DEPLOY_VERSION} $ git push $ git push --tags