Purpose of this presentation Overview of the current version of the fesa class for the BIC, Why do we need a change of this class? Through the design of the new fesa class : CIBM, The SMP GUI way to deal with fesa subscription, Conclusion
Overview of the current Bic Fesa Class Current Bic fesa class contains: 30 properties : including 11 set properties, 3 users of the set properties : Diamon, SIS, and the main user : Java Supervision. 38 instantiated FEC’s: And growing (3 MeV test stand / Linac 4)
Why do we need a change? Upgrades upon upgrades -> no longer homogeneous, Some Fesa properties now deprecated, A lot of field redundancy on multiple properties, A clear need to redefine the BIS GUI -> CIBM Fesa class is the first step, New version of the CISX Fesa class -> Introduce generic design.
What’s new?! CIBM fesa class will contain: 14 properties : including 9 set properties, Post Mortem test : no longer used, CIBT Monitoring : only used as get by DIAMON, 2 properties to get the values of the CIBM registers: RegisterConfiguration / RegisterValues, Inspired from the new CISX fesa class wrote by Nikolai Trofimov, The thought : Java Supervision oriented.
GET properties RegisterConfiguration property: Use an excel file to retrieve the list of CIBM registers, 4 fields (Array type): Access : access mode of a register (0: read only / 1: read + write for operators with special RBAC roles), Offset : the physical address of the register, Name, Description. RegisterValue property: Used to read the register list stored in register configuration, One field (Array type): registerValue, the value of a register
GET properties How to get a register value (from a java program for example): Get the index of the register for a given NAME from RegisterConfiguration property, Get the VALUE of this register using the retrieved index from RegisterValue property. Pros : generic / only 2 properties, Cons : require 2 properties access to get a value / SET trough dedicated properties for special roles.
GET properties PostMortemStatus the same as the current Post Mortem property. HistoryBuffer Renamed ExpertHistoryBuffer property, the same as this current property. LastTimingCycle Renamed ExpertLastTimingCycle property, Remove the old historybuffer / lastTimingCycle properties.
SET properties UTCcorrected: Used by DIAMON as a trigger if the UTC has been corrected, the same as the current UTCcorrected property, 2 fields : utcSecError (long) : UTC register time – UTC from GMT, utcSecCorrected (boolean) : True if the time has been corrected. GET access provided as those info are not stored in a register. BeamPermitGlitchesReset: Used by DIAMON to reset the BP glitches, Current name : FrequencyIntegrityReset, One field : bpGlitchesReset (boolean): set to true to reset the BP glitches.
SET properties UserPermitGlitchesReset: Used by DIAMON to reset the UP glitches, Current name : ClearReg, One field : upGlitchesReset (boolean): set to true to reset the UP glitches CibuTest: Used by the Java supervision to test the CIBUs of a BIC, the same as the current CibuTest property, NO GET : still accessible via RegConf/RegVal
SET properties TimeoutConfiguration: Used by SPS-BIS monitor to set the timeout for the SIS software permit (protect against SIS failures), Current name : ExpertTimeoutConfiguration, One field: timeoutConfigValue GET access provided as this info is not stored in a register. SISsoftwarePermit: Used by SIS to set the software permit, the same as the current SettingPermit property, sisSoftPermitReset (bool) : set to true to reset the software permit GET access provided
SET properties ExpertSoftwarePermit: Used by the Java supervision to set the software permit, Current name : SwInput, One field: ExpertSoftPermitReset (bool) : set to true to reset the software permit. Rearm: Used by the Java supervision to send a re-arm command to a BIC, rearm (bool) : set to true to rearm.
SET properties Mask: Used by the Java supervision to mask/unmask some inputs of a BIC One field: maskValue (long) NO GET : still accessible via RegConf/RegVal
SMP GUI way to deal with subscriptions GUI Screen Formatted data Format the raw data from properties Return texts to be printed in screens Data formatters Listeners - Create subscriptions - Listen to property changes Adapters JAPC Interface CISX Fesa class
Conclusion Milestones: Couple of weeks to finalize the design, Can be implemented + tested by the end of the year More generic -> add a new register to CIBM, Less c++ code -> more maintainable, It works -> current CISX fesa class.
The End Thank you for your time! If you have questions?