-
Notifications
You must be signed in to change notification settings - Fork 30
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
database support for VME-300 cards and optimization of selection records #164
Conversation
I am not sure why the failed check happened. In my fork, the same check was successful. |
evgMrmApp/Db/evgMrm.db
Outdated
@@ -157,9 +157,29 @@ record(mbbiDirect, "$(P)PpsInp-MbbiDir_") { | |||
field(ASG, "private") | |||
field(DESC, "EVG Pps Input") | |||
field(INP, "$(P)PpsInp-Sel.RVAL NPP") | |||
field(FLNK, "$(P)PpsInp-SQ_") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think a race condition exists here.
For example, currently PpsInp2 is used and one want to set PpsInp,
the logic here is to first set PpsInp, then clear PpsInp1 and PpsInp2.
During this short period, there are still two Pps sources enabled.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You are right about the order of record processing. If it is better to have a short period with no source selected rather than 2 sources are selected, I can change my code in the following way.
- Let the TrigSrcN-Sel FLNK field be the seq, not the MbbiDir_.
- In the seq record, after the other sources are switched off, write to the PROC field of the MbbiDir_ to process it and make the new setting effective.
Does this sound good to you?
@hongran , could you split this MR in 2 ? one for the substitution files and another for the selection of records ? |
Yes, I will. |
This will be replaced by 2 separate MRs. |
1: Added substitution files for the EVM-VME-300 and EVR-VME-300
2: Because the VME boards support rear transition boards, it has more I/O options. I expanded the selection records for dbus, trigEvt and Pps Selection. I have a mechanism to prevent selecting from multiple sources. If one is selected, the others are changed automatically to "OFF"