Implement Booster BPM ACNET device 0x0013.
#1 Updated by John Diamond almost 3 years ago
In the existing (old) Booster BPM system the positions are calculated by electronics before the signal is digitized . So the meaning of "raw" in this device is not the same as in our case where we have 2 signals (an A and B plate) to digitize per BPM and the raw data is actually not used for position calculations. In our version of this device we will return the DDC magnitude data, which most closely resembles what was returned by the existing system. Each BPM will have two devices for "raw" data with the plate coded in the SSDN type field with 00 = plate A and 01 = plate B. The SSDN channel field will identify the BPM by it's index in the BPM table.
#2 Updated by John Diamond almost 3 years ago
- Status changed from Assigned to Work in progress
- % Done changed from 0 to 100
In the course of working on this device I refactored the Crate and BPM ACNET devices into two separate cdev drivers: boosterbpm_acsys (for BPM specific devices) and boostercrate_acsys (for crate wide devices). The BPM-specific devices are mapped directly to a BPM (by name) from the erlang/ACSYS configuration file (see: bpmd.config).
Implemented the raw data device as BoosterBPMDevice::rawDataRead(..) and the setting property as ::rawDataOffsetRead()/rawDataOffsetWrite().Created two test stand devices:
- Z:BTA900 (plate A)
- Z:BTB900 (plate B)