diff --git a/ADCore/ADCore.ibek.support.yaml b/ADCore/ADCore.ibek.support.yaml index 4d8d0ff..67c5756 100644 --- a/ADCore/ADCore.ibek.support.yaml +++ b/ADCore/ADCore.ibek.support.yaml @@ -382,7 +382,7 @@ defs: databases: - file: $(ADCORE)/db/NDStats.template - args: + args: # TODO - MISSING ARGS: SCANRATE, TS_PORT NDARRAY_PORT: ADDR: SCANRATE: @@ -397,7 +397,6 @@ defs: XSIZE: TS_PORT: PORT: - warning: 'Database Args missing: SCANRATE, TS_PORT' pre_init: - type: text @@ -412,7 +411,7 @@ defs: # NDTimeSeriesConfigure(portName, queueSize, blockingCallbacks, NDArrayPort, NDArrayAddr, maxSignals) NDTimeSeriesConfigure("{{PORT}}_TS", {{QUEUE}}, {{BLOCK}}, "{{PORT}}", 1, 23) # Load time series records - dbLoadRecords("$(ADCORE)/db/NDTimeSeries.template", "P={P},R={R}, PORT={PORT} ,ADDR={ADDR},TIMEOUT={TIMEOUT},NDARRAY_PORT={NDARRAY_PORT},NDARRAY_ADDR={NDARRAY_ADDR},NCHANS={NCHANS},ENABLED={ENABLED}") + dbLoadRecords("$(ADCORE)/db/NDTimeSeries.template", "P={{P}},R={{R}}, PORT={{PORT}} ,ADDR={{ADDR}},TIMEOUT={{TIMEOUT}},NDARRAY_PORT={{NDARRAY_PORT}},NDARRAY_ADDR={{NDARRAY_ADDR}},NCHANS={{NCHANS}},ENABLED={{ENABLED}}") - name: NDOverlay description: |- @@ -466,7 +465,7 @@ defs: databases: - file: $(ADCORE)/db/NDOverlayN.template - args: + args: # TODO - MISSING ARGS: XPOS, NAME, YWIDTH, YSIZE, YPOS, O, SHAPE, XSIZE, XCENT, YCENT, XWIDTH XPOS: NAME: YWIDTH: @@ -483,8 +482,6 @@ defs: XSIZE: PORT: ADDR: - warning: 'Database Args missing: XPOS, NAME, YWIDTH, YSIZE, YPOS, O, SHAPE, XSIZE, - XCENT, XWIDTH, YCENT' - file: $(ADCORE)/db/NDOverlay.template args: SCANRATE: @@ -502,7 +499,7 @@ defs: value: | # NDOverlayConfigure(portName, queueSize, blockingCallbacks, NDArrayPort, NDArrayAddr, NOverlays, maxBuffers, maxMemory, priority, stackSize, maxThreads) NDOverlayConfigure("{{PORT}}", {{QUEUE}}, {{BLOCK}}, "{{NDARRAY_PORT}}", {{NDARRAY_ADDR}}, {{NOverlays}}, 0, 0, 0, 0, {{MAX_THREADS}}) - warning: 'function Args missing: NOverlays' + # TODO - MISSING ARGS: NOverlays - name: NDFileNetCDF description: |- @@ -1080,7 +1077,7 @@ defs: TIMEOUT: PORT: - file: $(ADCORE)/db/NDTimeSeriesN.template - args: + args: # TODO - MISSING ARGS: NAME ADDR: NCHANS: P: @@ -1088,7 +1085,6 @@ defs: TIMEOUT: PORT: NAME: - warning: 'Database Args missing: NAME' pre_init: - type: text @@ -1148,12 +1144,11 @@ defs: databases: - file: $(ADCORE)/db/NDAttrPlotAttr.template - args: + args: # TODO - MISSING ARGS: ATTR_IND P: R: PORT: ATTR_IND: - warning: 'Database Args missing: ATTR_IND' - file: $(ADCORE)/db/NDAttrPlot.template args: SCANRATE: @@ -1166,7 +1161,7 @@ defs: TIMEOUT: PORT: - file: $(ADCORE)/db/NDAttrPlotData.template - args: + args: # TODO - MISSING ARGS: DATA_IND, DATA_ADDR, AXIS DATA_ADDR: P: DATA_IND: @@ -1174,13 +1169,12 @@ defs: N_CACHE: PORT: AXIS: - warning: 'Database Args missing: DATA_IND, AXIS, DATA_ADDR' pre_init: - type: text value: | NDAttrPlotConfig("{{PORT}}", {{N_ATTRS}}, {{N_CACHE}}, - warning: 'function Args missing: N_ATTRS' + # TODO - MISSING ARGS: N_ATTRS - name: NDFileTIFF description: |- @@ -1447,7 +1441,7 @@ defs: databases: - file: $(ADCORE)/db/NDAttributeN.template - args: + args: # TODO - MISSING ARGS: TS_PORT ADDR: NCHANS: P: @@ -1455,7 +1449,6 @@ defs: TIMEOUT: TS_PORT: PORT: - warning: 'Database Args missing: TS_PORT' - file: $(ADCORE)/db/NDAttribute.template args: SCANRATE: @@ -1477,11 +1470,12 @@ defs: - type: text value: | # NDAttrConfigure(portName, queueSize, blockingCallbacks, - NDAttrConfigure("{PORT}", {QUEUE}, {BLOCK}, + NDAttrConfigure("{{PORT}}", {{QUEUE}}, {{BLOCK}}, # NDTimeSeriesConfigure(portName, queueSize, blockingCallbacks, NDArrayPort, NDArrayAddr, maxSignals) - NDTimeSeriesConfigure("{PORT:s}_TS", {QUEUE:d}, {BLOCK:d}, "{PORT:s}", 1, {MAX_ATTRIBUTES:d}) + NDTimeSeriesConfigure("{{PORT}}_TS", {{QUEUE}}, {{BLOCK}}, "{{PORT}}", 1, {{MAX_ATTRIBUTES}}) # Load time series records - dbLoadRecords("$(ADCORE)/db/NDTimeSeries.template","P={P},R={R_TS},PORT={PORT}_TS,ADDR=0,TIMEOUT={TIMEOUT},NDARRAY_PORT={PORT},NDARRAY_ADDR=1,NCHANS={MAX_ATTRIBUTES},ENABLED=1") + dbLoadRecords("$(ADCORE)/db/NDTimeSeries.template","P={{P}},R={{R_TS}},PORT={{PORT}}_TS,ADDR=0,TIMEOUT={{TIMEOUT}},NDARRAY_PORT={{PORT}},NDARRAY_ADDR=1,NCHANS={{MAX_ATTRIBUTES}},ENABLED=1") + # TODO - MISSING ARGS: R_TS - name: NDPosPlugin description: |- @@ -1832,7 +1826,7 @@ defs: databases: - file: $(ADCORE)/db/NDGatherN.template - args: + args: # TODO - MISSING ARGS: N NDARRAY_PORT: ADDR: NDARRAY_ADDR: @@ -1841,9 +1835,8 @@ defs: R: TIMEOUT: PORT: - warning: 'Database Args missing: N' - file: $(ADCORE)/db/NDGather.template - args: + args: # TODO - MISSING ARGS: MAX_PORTS SCANRATE: ADDR: NDARRAY_PORT: @@ -1854,7 +1847,6 @@ defs: R: TIMEOUT: PORT: - warning: 'Database Args missing: MAX_PORTS' - name: NDROIStat description: |- @@ -1940,4 +1932,4 @@ defs: - type: text value: | # NDROIStatConfigure(portName, queueSize, blockingCallbacks, - NDROIStatConfigure("{PORT}", {QUEUE}, {BLOCK}, + NDROIStatConfigure("{{PORT}}", {{QUEUE}}, {{BLOCK}}, diff --git a/asyn/asyn.ibek.support.yaml b/asyn/asyn.ibek.support.yaml index f63802a..de2f7cd 100644 --- a/asyn/asyn.ibek.support.yaml +++ b/asyn/asyn.ibek.support.yaml @@ -1,110 +1,220 @@ -# yaml-language-server: $schema=../_global/ibek.defs.schema.json + # yaml-language-server: $schema=https://github.com/epics-containers/ibek/releases/download/0.0.13/ibek.support.schema.json + module: asyn defs: - - name: AsynSerial - description: defines a serial port asyn device - args: - - type: str - name: port - description: The port name for this asyn object - - type: str - name: input_eos - description: Input end of string (terminator) - default: null - - type: str - name: output_eos - description: Output end of string (terminator) - default: null - - type: int - name: priority - description: Priority - default: 100 - - type: bool - name: no_auto_connect - description: Set to stop auto connect - default: - - type: bool - name: no_process_eos - description: Set to avoid processing end of string - default: null - - type: str - name: simulation - description: IP port to connect to if in simulation mode - default: null - - type: int - name: baud - description: Baud Rate - default: null - - type: int - name: bits - # TODO we should add enums to ibek's allowed data types - # TODO this would require we define the enum values int 'type:' too - description: Bits [8,7,6,5] - default: null - - type: str - name: parity - description: Parity [null,even,odd] - default: null - - type: int - name: stop - description: Stop Bits [1,2] - default: null - # note the Asyn API uses Y, N but we will tidy anomalies like this and - # hide them in the Jinja instead - - type: bool - name: crtscts - description: Set hardware flow control on - default: null - pre_init: - - type: comment - value: | - ASYNSerial Startup ENTRY - TODO provide Jinja to generate ASYN Startup Entries - note this is interesting because builder.py has a few if clauses - for generating the necessary script - # TODO potentially we could break out the common arguments into another object - # TODO like AsynPort in builder.py. This would require a change that allows - # TODO us to embed definition of one object within another - # TODO the above change is done - need to revisit this YAML. - - name: AsynIP - description: defines an asyn device for IP communication - args: - - type: str - name: port - description: Serial port tty name / IP address optionally followed by protocol - - type: str - name: name - description: Name for the Asyn Port - - type: str - name: input_eos - description: Input end of string (terminator) - default: null - - type: str - name: output_eos - description: Output end of string (terminator) - default: null - - type: int - name: priority - description: Priority - default: 100 - - type: bool - name: no_auto_connect - description: Set to stop auto connect - default: - - type: bool - name: no_process_eos - description: Set to avoid processing end of string - default: null - - type: str - name: simulation - description: IP port to connect to if in simulation mode - default: null - pre_init: - - type: comment - value: | - ASYNSerial Startup ENTRY - TODO provide Jinja to generate ASYN Startup Entries - note this is interesting because builder.py has a few if clauses - for generating the necessary script +- name: Vxi11 + description: |- + Asyn vxi11 Port + + args: + - type: str + name: port + description: IP address + - type: bool + name: noAutoConnect + description: Set to stop autoconnect + - type: int + name: priority + description: Priority + - type: str + name: simulation + description: IP port to connect to if in simulation mode + - type: id + name: name + description: Asyn Port name + - type: int + name: flags + description: 'flags (lock devices : recover with IFC)' + default: 0 + - type: float + name: timeout + description: default timeout + default: '0.0' + - type: str + name: vxiName + description: vxi name + default: gpib0 + + pre_init: + - type: text + value: | + vxi11Configure("%s", "%s", %d, %s, "%s", %d, %d) + +- name: AsynSerial + description: |- + Asyn Serial Port + + args: + - type: str + name: port + description: Serial port tty name / IP address optionally followed by protocol + - type: int + name: baud + description: Baud Rate + - type: str + name: parity + description: Parity + - type: str + name: crtscts + description: Set hardware flow control on + - type: int + name: stop + description: Stop Bits + - type: str + name: disconnectOnReadTimeout + description: Disconnect when a read times out + - type: int + name: bits + description: Bits + - type: id + name: name + description: Override name + - type: str + name: input_eos + description: Input end of string (terminator) + - type: str + name: output_eos + description: Output end of string (terminator) + - type: int + name: priority + description: Priority + default: 100 + - type: bool + name: noAutoConnect + description: Set to stop autoconnect + default: false + - type: bool + name: noProcessEos + description: Set to avoid processing end of string + default: false + - type: str + name: simulation + description: IP port to connect to if in simulation mode + + pre_init: + - type: text + value: | + %sConfigure("%s", "%s", %d, %d, %d) + asynSetOption("%s", 0, "%s", "%s") + asynOctetSetInputEos("%s", 0, %s) + asynOctetSetOutputEos("%s", 0, %s) + +- name: AsynIP + description: |- + Asyn IP Port + + args: + - type: str + name: port + description: Serial port tty name / IP address optionally followed by protocol + - type: int + name: baud + description: Baud Rate + - type: str + name: parity + description: Parity + - type: str + name: crtscts + description: Set hardware flow control on + - type: int + name: stop + description: Stop Bits + - type: str + name: disconnectOnReadTimeout + description: Disconnect when a read times out + - type: int + name: bits + description: Bits + - type: id + name: name + description: Override name + - type: str + name: input_eos + description: Input end of string (terminator) + - type: str + name: output_eos + description: Output end of string (terminator) + - type: int + name: priority + description: Priority + default: 100 + - type: bool + name: noAutoConnect + description: Set to stop autoconnect + default: false + - type: bool + name: noProcessEos + description: Set to avoid processing end of string + default: false + - type: str + name: simulation + description: IP port to connect to if in simulation mode + + pre_init: + - type: text + value: | + %sConfigure("%s", "%s", %d, %d, %d) + asynSetOption("%s", 0, "%s", "%s") + asynOctetSetInputEos("%s", 0, %s) + asynOctetSetOutputEos("%s", 0, %s) + +- name: AsynIPServer + description: |- + Asyn IP Server Port + + args: + - type: str + name: port + description: Serial port tty name / IP address optionally followed by protocol + - type: int + name: baud + description: Baud Rate + - type: str + name: parity + description: Parity + - type: str + name: crtscts + description: Set hardware flow control on + - type: int + name: stop + description: Stop Bits + - type: str + name: disconnectOnReadTimeout + description: Disconnect when a read times out + - type: int + name: bits + description: Bits + - type: id + name: name + description: Override name + - type: str + name: input_eos + description: Input end of string (terminator) + - type: str + name: output_eos + description: Output end of string (terminator) + - type: int + name: priority + description: Priority + default: 100 + - type: bool + name: noAutoConnect + description: Set to stop autoconnect + default: false + - type: bool + name: noProcessEos + description: Set to avoid processing end of string + default: false + - type: str + name: simulation + description: IP port to connect to if in simulation mode + + pre_init: + - type: text + value: | + %sConfigure("%s", "%s", %d, %d, %d) + asynSetOption("%s", 0, "%s", "%s") + asynOctetSetInputEos("%s", 0, %s) + asynOctetSetOutputEos("%s", 0, %s) diff --git a/pmac/pmac.ibek.support.yaml b/pmac/pmac.ibek.support.yaml index 9da36fa..b04834d 100644 --- a/pmac/pmac.ibek.support.yaml +++ b/pmac/pmac.ibek.support.yaml @@ -82,7 +82,7 @@ defs: - type: text value: | pmacSetCoordStepsPerUnit("{{Ref}}", {{Axis}}, {{Scale}}) - warning: 'function Args missing: Ref' + # TODO - MISSING ARGS: Ref - name: RunPlc description: |- @@ -104,13 +104,12 @@ defs: databases: - file: $(PMAC)/db/run_plc.template - args: + args: # TODO - MISSING ARGS: P, PORT P: DESC: PLC: name: PORT: - warning: 'Database Args missing: P, PORT' - name: CS_zform description: |- @@ -232,7 +231,7 @@ defs: - type: text value: | pmacSetOpenLoopEncoderAxis("{{ControllerPort}}", {{Axis}}, {{Encoder_axis}}) - warning: 'function Args missing: ControllerPort' + # TODO - MISSING ARGS: ControllerPort - name: dls_pmac_cs_asyn_motor description: |- @@ -418,7 +417,7 @@ defs: databases: - file: $(PMAC)/db/dls_pmac_cs_asyn_motor.template - args: + args: # TODO - MISSING ARGS: CS, PMAC VELO: HOMEVISSTR: SCALE: @@ -471,7 +470,6 @@ defs: NTM: TWV: gda_desc: - warning: 'Database Args missing: CS, PMAC' - name: pmacDisableLimitsCheck description: |- @@ -489,7 +487,7 @@ defs: - type: text value: | pmacDisableLimitsCheck("{{ControllerPort}}", {{Axis}}, 0) - warning: 'function Args missing: ControllerPort' + # TODO - MISSING ARGS: ControllerPort - name: pmacAsynSSHPort description: |- @@ -735,7 +733,7 @@ defs: databases: - file: $(PMAC)/db/autohome.template - args: + args: # TODO - MISSING ARGS: CTRL CTRL: GRP10: PORT: @@ -767,7 +765,6 @@ defs: PLC: STATUSSV14: STATUS14: - warning: 'Database Args missing: CTRL' - name: CS_IDT_sagittal_dcm description: |- @@ -922,7 +919,7 @@ defs: - type: text value: | pmacMonitorVariables("{{ControllerPort}}", "{{Variables}}") - warning: 'function Args missing: ControllerPort' + # TODO - MISSING ARGS: ControllerPort - name: CS_gap_and_centre_slits description: |- @@ -987,7 +984,7 @@ defs: databases: - file: $(PMAC)/db/symetrie_hexapod.template - args: + args: # TODO - MISSING ARGS: BRICK name: RX: RY: @@ -997,7 +994,6 @@ defs: COORD: BRICK: PORT: - warning: 'Database Args missing: BRICK' pre_init: - type: text @@ -1321,7 +1317,7 @@ defs: databases: - file: $(PMAC)/db/dls_pmac_asyn_motor.template - args: + args: # TODO - MISSING ARGS: PMAC VELO: HOMEVISSTR: SCALE: @@ -1376,7 +1372,6 @@ defs: NTM: TWV: gda_desc: - warning: 'Database Args missing: PMAC' - name: PowerPMAC description: |- @@ -1420,7 +1415,7 @@ defs: databases: - file: $(PMAC)/db/pmacController.template - args: + args: # TODO - MISSING ARGS: CSG7, CSG6, CSG5, CSG4, CSG3, CSG2, CSG1, CSG0, PORT FEEDRATE: CSG7: CSG6: @@ -1434,19 +1429,15 @@ defs: TIMEOUT: NAXES: PORT: - warning: 'Database Args missing: CSG7, CSG6, CSG5, CSG4, CSG3, CSG2, CSG1, CSG0, - PORT' - file: $(PMAC)/db/pmacStatusAxis.template - args: + args: # TODO - MISSING ARGS: PORT, PMAC, AXIS PMAC: PORT: AXIS: - warning: 'Database Args missing: PORT, PMAC, AXIS' - file: $(PMAC)/db/powerPmacStatus.template - args: + args: # TODO - MISSING ARGS: PORT P: PORT: - warning: 'Database Args missing: PORT' pre_init: - type: text @@ -1455,7 +1446,7 @@ defs: pmacCreateController("{{name}}", "{{PortName}}", 0, {{NAxes}}, {{MovingPoll}}, {{IdlePoll}}) # Configure Model 3 Axes Driver (Controler Port, Axis Count) pmacCreateAxes("{{name}}", {{NAxes}}) - warning: 'function Args missing: PortName' + # TODO - MISSING ARGS: PortName - name: pmacVmeConfig description: |- @@ -1564,13 +1555,12 @@ defs: databases: - file: $(PMAC)/db/pmacCsController.template - args: + args: # TODO - MISSING ARGS: PMAC, PORT CS: PARENTPORT: PMAC: TIMEOUT: PORT: - warning: 'Database Args missing: PMAC, PORT' pre_init: - type: text @@ -1579,7 +1569,7 @@ defs: pmacCreateCS("{{name}}", "{{PortName}}", {{CS}}, {{Program}}) # Configure Model 3 CS Axes Driver (CSPortName, CSAxisCount) pmacCreateCSAxes("{{name}}", {{NAxes}}) - warning: 'function Args missing: PortName' + # TODO - MISSING ARGS: PortName - name: CS_3jack description: |- @@ -1666,14 +1656,13 @@ defs: databases: - file: $(PMAC)/db/pmacControllerTrajectory.template - args: + args: # TODO - MISSING ARGS: NAxes, PMAC PMAC: PREC: NPOINTS: MAXPOINTS: NAxes: PORT: - warning: 'Database Args missing: NAxes, PMAC' - name: CS_blade_slits description: |- @@ -1786,13 +1775,12 @@ defs: databases: - file: $(PMAC)/db/pmacStatusAxis.template - args: + args: # TODO - MISSING ARGS: PORT, PMAC, AXIS PMAC: PORT: AXIS: - warning: 'Database Args missing: PORT, PMAC, AXIS' - file: $(PMAC)/db/pmacController.template - args: + args: # TODO - MISSING ARGS: CSG7, CSG6, CSG5, CSG4, CSG3, CSG2, CSG1, CSG0, PORT FEEDRATE: CSG7: CSG6: @@ -1806,8 +1794,6 @@ defs: TIMEOUT: NAXES: PORT: - warning: 'Database Args missing: CSG7, CSG6, CSG5, CSG4, CSG3, CSG2, CSG1, CSG0, - PORT' pre_init: - type: text @@ -1816,7 +1802,7 @@ defs: pmacCreateController("{{name}}", "{{PortName}}", 0, {{NAxes}}, {{MovingPoll}}, {{IdlePoll}}) # Configure Model 3 Axes Driver (Controler Port, Axis Count) pmacCreateAxes("{{name}}", {{NAxes}}) - warning: 'function Args missing: PortName' + # TODO - MISSING ARGS: PortName - name: moveAxesToSafeSlave description: |- @@ -1907,27 +1893,24 @@ defs: databases: - file: $(PMAC)/db/pmacStatus.template - args: + args: # TODO - MISSING ARGS: PORT P: PORT: - warning: 'Database Args missing: PORT' - file: $(PMAC)/db/pmacCSS.template - args: + args: # TODO - MISSING ARGS: NAME Description: ControlPort: ControlIP: P: ControlMode: NAME: - warning: 'Database Args missing: NAME' - file: $(PMAC)/db/pmacStatusAxis.template - args: + args: # TODO - MISSING ARGS: PORT, PMAC, AXIS PMAC: PORT: AXIS: - warning: 'Database Args missing: PORT, PMAC, AXIS' - file: $(PMAC)/db/pmacController.template - args: + args: # TODO - MISSING ARGS: CSG7, CSG6, CSG5, CSG4, CSG3, CSG2, CSG1, CSG0, PORT FEEDRATE: CSG7: CSG6: @@ -1941,8 +1924,6 @@ defs: TIMEOUT: NAXES: PORT: - warning: 'Database Args missing: CSG7, CSG6, CSG5, CSG4, CSG3, CSG2, CSG1, CSG0, - PORT' pre_init: - type: text @@ -1951,7 +1932,7 @@ defs: pmacCreateController("{{name}}", "{{PortName}}", 0, {{NAxes}}, {{MovingPoll}}, {{IdlePoll}}) # Configure Model 3 Axes Driver (Controler Port, Axis Count) pmacCreateAxes("{{name}}", {{NAxes}}) - warning: 'function Args missing: PortName, NAxes' + # TODO - MISSING ARGS: PortName, NAxes - name: CS_aperture_slits description: |- @@ -2180,14 +2161,13 @@ defs: databases: - file: $(PMAC)/db/run_command.template - args: + args: # TODO - MISSING ARGS: PORT name: P: R: COMMAND: PORT: DESC: - warning: 'Database Args missing: PORT' - name: pmacVariableReadLED description: |-