CFDRangeNodeData
Synopsis
The CFDRangeNodeData module processes multi-block data, setting the min/max elements of each block to either the true global values or to user-defined values.
module CFDRangeNodeData <src_file="cfdrange.c"> {
Node_Data+read+notify+req &in <NEportLevels={2,0}>[];
CFDRangeParams &CFDRangeParams <NEportLevels={2,0}>;
double+read+notify+req min => CFDRangeParams.min;
double+read+notify+req max => CFDRangeParams.max;
int+read+notify+req lock_mode => CFDRangeParams.lock_mode;
int nblocks => array_size(in);
Node_Data+write+nonotify+OPort2 out[nblocks] => in;
omethod+notify_val+notify_inst update <status=1> = "cfd_range_update";
};
Description
The CFDRangeNodeData module is a true multi-block module, the C code
takes an array of blocks in and out. Actually, the output
is CONNECTED to the input in V, so this is a pure reference
pass-through module. It modifies the data inplace.
If locked mode is off, it scans ALL the data in ALL the blocks,
and finds each data component range. It then SETS the min/max
subelement in EACH block to be this value, to force global
consistancy. The first data element in the first component is
shown on the user-interface.
If lock mode is on, then the user type-in values on the interface or
parameter block are used to force this range on all data components.
This is likely to work best on just a single component, and is
intended to have extract_component_ARR upstream.
Inputs
&in
The input mult-block array of NodeData.
&CFDRangeParams
Reference to the parameter block, which contains real instances of the min, max and lock_mode parameters.
min
User-defined min value for data if lock_mode is on.
max
User-defined max value for data if lock_mode is on.
lock_mode
Toggle the lock_mode. If on, the min/max values of the multi-block data is set to the user-defined values. If off, the true global value from the input blocks is used.
Outputs
out
The output multi-block node data array with the min/max subelements set accordingly.
Utility Macros
The user interface is provided in the CFDRangeUI macro, and this is combined with the low-level CFDRangeNodeData module to form the User Macro cfd_range.
Example
An example application is not provided.
Files
iac_proj/cfdrange/cfdrmods.v contains the CFDRangeParams group and the CFDRangeNodeData module V definitions.
Other Notes
The low-level CFDRangeMods library containing the module CDFRangeNodeData does not specify a process. By default the express process will be used.
Authors
Ian Curington
Modifications
Paul G. Lever
Contact
International AVS Centre
Manchester Visualization Centre
Manchester Computing
University of Manchester
Oxford Road
Manchester
United Kingdom
M13 9PL
See Also
CFDRangeParams, CFDRangeUI, cfd_range
|