Releases: pcdshub/pytmc
v2.18.0 (2024-12-19)
Changes
- Adds support for arrays of strings. Previously, using a pv pragma on an array of
strings would result in pytmc attempting and failing to create waveform record with
FTVL set to STRING, which was specifically disallowed. Now it will create a separate
string pv for each element of the array, similar to arrays of enums or complex types
Maintenance
- Add
setuptools_scm
to conda recipe build section
Contributors
- tangkong
- KaushikMalapati
Full Changelog: v2.17.0...v2.18.0
v2.17.0
This version fixes an issue where there was no way for ads-ioc
to enforce read-only behavior on the _RBV
variants. This led to confusing behavior because the IOC will accept these writes and not respond to them in an intuitive way.
pytmc
will now generate input/rbv records as having the NO_WRITE
ASG.
This will affect all PVs that represent data read from the PLC code. It will not affect the setpoints.
ads-ioc
can now implement a NO_WRITE
ASG and it will be applied to all of these PVs.
This is expected in ads-ioc
at R0.7.0
.
What's Changed
- DEV: Making _RBV PVs read-only by @KaushikMalapati in #328
New Contributors
- @KaushikMalapati made their first contribution in #328
Full Changelog: v2.16.0...v2.17.0
v2.16.0
What's Changed
Changes
-
pytmc template
, which takes a TwinCAT project and jinja template source code to generate project-specific output, now expects all platforms to use the same delimiter (":"
) for template filename patterns. Examples include:- Read template from
a.template
and write expanded version toa.txt
:
pytmc template my.tsproj --template a.template:a.txt
- Read template from
a.template
and write results to standard output:
pytmc template my.tsproj --template a.template
- Read template from standard input and write results to standard output:
pytmc template my.tsproj --template -
- Read template from standard input and write results to
/path/to/a.txt
:
pytmc template my.tsproj --template -:/path/to/a.txt
- Read template from
-
Extended support for projects not correctly configured in TwinCAT with "Independent Files" for all supported options. Generating EPICS IOCs from such projects that also include NC axes should succeed with a number of loud warnings to the user.
Maintenance
- Fixed old release note syntax.
Pull Requests
- MNT: warn on misconfiguration of TwinCAT IDE/project settings by @klauer in #318
- REF: always use colon delimiter for
pytmc template
by @klauer in #320 - MNT: back-compat for 'pytmc template' delimiter-less filename by @klauer in #321
Full Changelog: v2.15.1...v2.16.0
v2.15.1 (2023-06-30)
Bugfixes
- Type aliases will now find pytmc pragmas defined on their base types.
Previously these were ignored. - ST_MotionStage is now the canonical name for the motor struct,
matching our twincat style guide. Backwards compatibility is retained
for projects using DUT_MotionStage. - Fix an issue where macro substitution did not load properly for
motor base PVs in the st.cmd file generation. - Fix an issue where the version could fail to load in an edge case
where a git clone was included via symbolic link.
Maintenance
- Ensure workflow secrets are used properly.
- Fix issues related to documention building on the Github actions CI.
v2.15.0 (2023-04-04)
Python 3.9 is now the minimum supported version for pytmc.
Maintenance
- Fixes pre-commit repository settings for flake8.
- Migrates from Travis CI to GitHub Actions for continuous integration testing, and documentation deployment.
- Updates pytmc to use setuptools-scm, replacing versioneer, as its version-string management tool of choice.
- Syntax has been updated to Python 3.9+ via
pyupgrade
. - pytmc has migrated to modern
pyproject.toml
, replacingsetup.py
. - Sphinx 6.0 now supported for documentation building.
docs-versions-menu
is now used for documentation deployment on GitHub Actions.
Contributors
v2.14.1
v2.14.0
What's Changed
- REF: sort generated records by TwinCAT symbol name (tcname) by @klauer in #293
- The order of records in EPICS process database (
.db
) files will change for most users after this release. After the initial rebuild, users should expect to see smaller diffs on subsequent PLC project rebuilds.
- The order of records in EPICS process database (
- FIX: safety PLC files loaded from
_Config/SPLC
by @klauer in #289 - ENH: add all hooks required to allow transition of pytmc stcmd -> template by @klauer in #290
- Adds helper commands to
pytmc template
, which can be used in Jinja templates:generate_records
(create .db and .archive files)get_plc_by_name
get_symbols_by_type
- Adds variables to
pytmc template
environment, which can be used in Jinja templates:pytmc_version
- Adds
--macro
option topytmc template
- Fixes some annotations + uncovered/untested functionality
- Allows
pytmc template
to read/write multiple templates with parsing a project only once
- Adds helper commands to
Full Changelog: v2.13.0...v2.14.0
v2.13.0
What's Changed
- ENH: autosave field additions by @klauer in #287
- Adds description field to autosave for all records, input and output
- Adds alarm severity and limit fields to autosave for all relevant input and output records
- Adds control limit (drive low/high) fields to autosave for relevant output records
Full Changelog: v2.12.0...v2.13.0