Conversation
There was a problem hiding this comment.
Pull Request Overview
This pull request adds support for two new device roles in an Ansible-based EPICS IOC deployment system:
- Wiener Crate - for SNMP-based monitoring and control of Wiener power supply crates
- SmarAct Motor Controllers - for MCS and MCS2 piezo motor positioning systems
Key Changes
- Added complete role implementations for
wienercrateandsmaractdevice types with templates, tasks, schemas, and examples - Introduced two new EPICS module configurations:
snmp_nscl_3cd2804andmotorsmaract_ab4dfeb - Included database files, MIB definitions, and configuration files for Wiener crate monitoring
- Created deployment variable files linking device roles to their required EPICS modules
Reviewed Changes
Copilot reviewed 22 out of 22 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| roles/install_module/vars/snmp_nscl_3cd2804.yml | Module definition for SNMP support with NSCL variant |
| roles/install_module/vars/motorsmaract_ab4dfeb.yml | Module definition for SmarAct motor driver |
| roles/device_roles/wienercrate/* | Complete device role for Wiener crate SNMP monitoring |
| roles/device_roles/smaract/* | Complete device role for SmarAct motor controllers |
| roles/deploy_ioc/vars/wienercrate.yml | IOC deployment configuration for Wiener crates |
| roles/deploy_ioc/vars/smaract.yml | IOC deployment configuration for SmarAct controllers |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| {{ device_roles_smaract_idle_poll_period }}, | ||
| {{ device_roles_smaract_disable_speed }}) | ||
| {% for i in range(ioc.num_axes) %} | ||
| smaraActMCSCreateAxis("$(PORT)", {{ i }}, {{ i }}) |
There was a problem hiding this comment.
Corrected spelling of 'smaraActMCSCreateAxis' to 'smarActMCSCreateAxis'. The function name has a typo with 'smara' instead of 'smarAct'.
| smaraActMCSCreateAxis("$(PORT)", {{ i }}, {{ i }}) | |
| smarActMCSCreateAxis("$(PORT)", {{ i }}, {{ i }}) |
| drvAsynIPPortConfigure("$(PORT)_ETH", "$(CONTROLLER_IP):55551", 0, 0, 0) | ||
| MCS2CreateController("$(PORT)", "$(PORT)_ETH", "$(NUM_AXES)", | ||
| {{ device_roles_smaract_moving_poll_period * 1000 }}, | ||
| {{ device_roles_smaract_moving_poll_period * 1000 }}, |
There was a problem hiding this comment.
Line 10 uses device_roles_smaract_moving_poll_period * 1000 but should likely use device_roles_smaract_idle_poll_period * 1000 based on the parameter naming convention and the non-MCS2 branch which uses separate moving and idle periods.
| {{ device_roles_smaract_moving_poll_period * 1000 }}, | |
| {{ device_roles_smaract_idle_poll_period * 1000 }}, |
|
Substitution files need work |
Migrated SmarAct role from ioc-deploy-roles to nsls2.ioc_deploy