Closed jacomago closed 1 month ago
It's a myriad of changes and difficult to understand where and how changes come into play. Content in link in associated GitHub ticket, https://github.com/archiver-appliance/epicsarchiverap/issues/192, will be lost looking in repository after a merge.
I would like
Architecture of tool is complex and so understanding is complex..
Allow usage of field Modifiers.
Essentially allows the archiving of pvs, or channels with path "pvName.fieldName.fieldModifier". Field Modifiers are documented at https://epics.anl.gov/base/R7-0/8-docs/filters.html .
Examples of Field Modifiers are Channel Filters, such as
PVNAME.{'dbnd':{'rel':0.1}}
Which filters all changes that have a change < 0.1 from being sent along the connection.
Fixes #192
Implementation notes:
Have to update 3 main places.
PVNames.java now splits up a channel name into a pvName, Field and FieldModifier. Then uses these to check a channelName is valid, or if it is a field channel.
PVsMatchingParameter is refactored to simplify and becomes the main place to handle multiple pvs as input to a BPLAction. In addition a new api accepting a list of pvs of the form [{"pv": "pvName"}, {"pv": "pvName2"}], this is to allow fieldModifiers with "," character. Which would have failed using the www-form-encoded input api.
mgmt.js and reportable.js are then updated to use the new json api, to support channel names with field modifiers.
Note
Note the filters support many different special characters. So filenames may be strange.