extend dfanout record to 16 outputs

This commit is contained in:
2025-07-15 09:12:03 +02:00
parent 12d24d3108
commit 60277e0980
2 changed files with 54 additions and 14 deletions

View File

@@ -90,7 +90,7 @@ static void checkAlarms(dfanoutRecord *);
static void monitor(dfanoutRecord *);
static void push_values(dfanoutRecord *);
#define OUT_ARG_MAX 8
#define OUT_ARG_MAX 16
static long init_record(struct dbCommon *pcommon, int pass)
@@ -303,7 +303,7 @@ static void push_values(dfanoutRecord *prec)
struct link *plink; /* structure of the link field */
int i;
long status;
unsigned short state;
epicsUInt16 state;
switch (prec->selm){
case (dfanoutSELM_All):

View File

@@ -10,7 +10,7 @@
=title Data Fanout Record (dfanout)
The Data Fanout or "dfanout" record is used to forward data to up to
eight other records. It's similar to the fanout record except that the
16 other records. It's similar to the fanout record except that the
capability to forward data has been added to it. If has no associated
device support.
@@ -58,7 +58,7 @@ undergoes no conversions before it is sent out to the output links.
=head3 Write Parameters
The OUTA-OUTH fields specify where VAL is to be sent. Each field that is to
The OUTA-OUTP fields specify where VAL is to be sent. Each field that is to
forward data must specify an address to another record. See L<Address
Specification|https://docs.epics-controls.org/en/latest/guides/EPICS_Process_Database_Concepts.html#address-specification>
for information on specifying links.
@@ -88,7 +88,7 @@ If SELM is C<Mask>, then SELN will be treated as a bit mask. If bit zero
OUTB will be written to, and so on. Thus when SELN==5, both OUTC and OUTA
will be written to.
=fields SELL, SELM, SELN, OUTA - OUTH
=fields SELL, SELM, SELN, OUTA - OUTP
=head3 Operator Display Parameters
@@ -194,42 +194,82 @@ hysteresis factors for monitor callbacks.
}
field(OUTA,DBF_OUTLINK) {
prompt("Output Spec A")
promptgroup("50 - Output")
promptgroup("50 - Outputs A-H")
interest(1)
}
field(OUTB,DBF_OUTLINK) {
prompt("Output Spec B")
promptgroup("50 - Output")
promptgroup("50 - Outputs A-H")
interest(1)
}
field(OUTC,DBF_OUTLINK) {
prompt("Output Spec C")
promptgroup("50 - Output")
promptgroup("50 - Outputs A-H")
interest(1)
}
field(OUTD,DBF_OUTLINK) {
prompt("Output Spec D")
promptgroup("50 - Output")
promptgroup("50 - Outputs A-H")
interest(1)
}
field(OUTE,DBF_OUTLINK) {
prompt("Output Spec E")
promptgroup("50 - Output")
promptgroup("50 - Outputs A-H")
interest(1)
}
field(OUTF,DBF_OUTLINK) {
prompt("Output Spec F")
promptgroup("50 - Output")
promptgroup("50 - Outputs A-H")
interest(1)
}
field(OUTG,DBF_OUTLINK) {
prompt("Output Spec G")
promptgroup("50 - Output")
promptgroup("50 - Outputs A-H")
interest(1)
}
field(OUTH,DBF_OUTLINK) {
prompt("Output Spec H")
promptgroup("50 - Output")
promptgroup("50 - Outputs A-H")
interest(1)
}
field(OUTI,DBF_OUTLINK) {
prompt("Output Spec I")
promptgroup("51 - Outputs I-P")
interest(1)
}
field(OUTJ,DBF_OUTLINK) {
prompt("Output Spec J")
promptgroup("51 - Outputs I-P")
interest(1)
}
field(OUTK,DBF_OUTLINK) {
prompt("Output Spec K")
promptgroup("51 - Outputs I-P")
interest(1)
}
field(OUTL,DBF_OUTLINK) {
prompt("Output Spec L")
promptgroup("51 - Outputs I-P")
interest(1)
}
field(OUTM,DBF_OUTLINK) {
prompt("Output Spec M")
promptgroup("51 - Outputs I-P")
interest(1)
}
field(OUTN,DBF_OUTLINK) {
prompt("Output Spec N")
promptgroup("51 - Outputs I-P")
interest(1)
}
field(OUTO,DBF_OUTLINK) {
prompt("Output Spec O")
promptgroup("51 - Outputs I-P")
interest(1)
}
field(OUTP,DBF_OUTLINK) {
prompt("Output Spec P")
promptgroup("51 - Outputs I-P")
interest(1)
}
field(DOL,DBF_INLINK) {
@@ -445,7 +485,7 @@ Alarms ranges are checked against the contents of the VAL field.
=item 5.
Check severity and then send the value through the OUTA-OUTH links, depending
Check severity and then send the value through the OUTA-OUTP links, depending
on the setting of SELM and the value in SELN.
See L<Invalid Output Action Fields|dbCommonOutput/Invalid Output Action Fields>
for information on how INVALID alarms affect output records.