
/*
**********************************************************************
** CMD 48 DEFINES
**********************************************************************
*/

#define ENUMLIST_Status_0 { 0x8, T_C411_Check_ParaDownloadActive_1_go, HARDWARE },\
		  { 0x10, T_C431_Check_Trim_1_go, HARDWARE },\
		  { 0x40, T_C491_Check_SimulationCurrentOutput_1_go, HARDWARE }
#define ENUMLIST_Status_1 { 0x2, T_C485_Check_SimulationFlow_1_go, HARDWARE },\
		  { 0x4, T_F022_Failure_MeasTempCircShort_1_go, HARDWARE },\
		  { 0x20, T_C453_Check_PositiveZeroReturn_1_go, HARDWARE },\
		  { 0x80, T_S842_Out_of_specification_FlowMonitoring_1_go, HARDWARE }
#define ENUMLIST_Status_2 { 0x1, T_S862_Out_of_specification_DensityMonitoring_1_go, HARDWARE },\
		  { 0x2, T_F382_Failure_MemoryHardwareErrorDAT_1_go, HARDWARE },\
		  { 0x4, T_F083_Failure_MemoryContentErrorSensor_1_go, HARDWARE },\
		  { 0x8, T_F242_Failure_IncompatibleSWConfiguration_1_go, HARDWARE },\
		  { 0x10, T_F261_Failure_IOMFailureCurrent_1_go, HARDWARE },\
		  { 0x40, T_F437_Failure_ConfigurationSetIncompatibleToPresentSWVersion_1_go, HARDWARE },\
		  { 0x80, T_M438_Maintenance_LastParaDownloadWithWarnings_1_go, HARDWARE }
#define ENUMLIST_Status_3 { 0x1, T_C484_Check_SimulationFailsafe_1_go, HARDWARE },\
		  { 0x2, T_F803_Failure_ReadBackCurrentIsWrongAlarm_1_go, HARDWARE },\
		  { 0x8, T_M311_Maintenance_MemoryContentErrorReset_1_go, HARDWARE },\
		  { 0x10, T_F410_Failure_LastParaDownloadNotSuccessful_1_go, HARDWARE },\
		  { 0x20, T_F273_Failure_MemoryHardwareError_1_go, HARDWARE },\
		  { 0x80, T_S441_Out_of_specification_BufferCurrentOut_1_go, HARDWARE }
#define ENUMLIST_Status_4 { 0x1, T_S442_Out_of_specification_RangeFrequencyOut_1_go, HARDWARE },\
		  { 0x2, T_S443_Out_of_specification_PulseOutPulsatingBuffer_1_go, HARDWARE },\
		  { 0x4, T_C492_Check_SimulationFrequencyOut_1_go, HARDWARE },\
		  { 0x8, T_C493_Check_SimulationPulseOut_1_go, HARDWARE },\
		  { 0x10, T_C494_Check_SimulationStateOut_1_go, HARDWARE },\
		  { 0x20, T_C496_Check_SimulationStateInput_1_go, HARDWARE }
#define ENUMLIST_Status_14 { 0x8, T_S832_Out_of_specification_ElecTempTooHigh_1_go, HARDWARE },\
		  { 0x10, T_S833_Out_of_specification_ElecTempTooLow_1_go, HARDWARE },\
		  { 0x20, T_S834_Out_of_specification_FluidTempTooHigh_1_go, HARDWARE },\
		  { 0x40, T_S835_Out_of_specification_FluidTempTooLow_1_go, HARDWARE }
#define ENUMLIST_Status_15 { 0x8, T_F252_Failure_IncompatibleHWConfiguration_1_go, HARDWARE },\
		  { 0x10, T_F270_Failure_ROMDefectOnMB_1_go, HARDWARE },\
		  { 0x20, T_F271_Failure_RAMDefectOnMB_1_go, HARDWARE },\
		  { 0x40, T_F272_Failure_InternalCriticalError_1_go, HARDWARE },\
		  { 0x80, T_F201_Failure_UnknownError_1_go, HARDWARE }
#define ENUMLIST_Status_16 { 0x1, T_S004_Out_of_specification_CoilResistance_1_go, HARDWARE },\
		  { 0x2, T_S937_Out_of_specification_CoilSymmetry_1_go, HARDWARE },\
		  { 0x8, T_F990_Failure_Reserved4_1_go, HARDWARE },\
		  { 0x10, T_F222_Failure_ReferenceVoltage_1_go, HARDWARE },\
		  { 0x20, T_S531_Out_of_specification_EPDNotAdjusted_1_go, HARDWARE },\
		  { 0x80, T_S322_Out_of_specification_ElectrodeAmplifierLinearity_1_go, HARDWARE }
#define ENUMLIST_Status_17 { 0x1, T_F283_Failure_MemoryContentErrorDAT_1_go, HARDWARE },\
		  { 0x2, T_F383_Failure_TDAT_ContentIncompatibeOrCorrupt_1_go, HARDWARE },\
		  { 0x4, T_S043_Out_of_specification_CoilBalance_1_go, HARDWARE },\
		  { 0x10, T_F062_Failure_CoilOpen_1_go, HARDWARE },\
		  { 0x20, T_F273_Failure_MemoryHardwareErrorPWD_1_go, HARDWARE },\
		  { 0x40, T_F537_Failure_IPAddressConflict_1_go, HARDWARE }
#define ENUMLIST_Status_18 { 0x1, T_C302_Check_VerificationActive_1_go, HARDWARE },\
		  { 0x2, T_F262_Failure_ISMDiagCommunicationError_1_go, HARDWARE },\
		  { 0x10, T_C530_Check_ElectrodeCleaningCircuitry_1_go, HARDWARE },\
		  { 0x20, T_F500_Failure_Electrode1Potential_1_go, HARDWARE },\
		  { 0x40, T_F500_Failure_Electrode2Potential_1_go, HARDWARE },\
		  { 0x80, T_F500_Failure_DifferenceVoltage_1_go, HARDWARE }
#define ENUMLIST_Status_19 { 0x1, T_F281_Failure_ElectronicInitialization_1_go, HARDWARE }
/*****************************************************************************
Import Common Tables
*****************************************************************************/
IMPORT STANDARD _TABLES, DEVICE_REVISION 16, DD_REVISION 2
{
    EVERYTHING;
}

/*****************************************************************************
Universal Commmands
*****************************************************************************/
IMPORT STANDARD _UNIVERSAL, DEVICE_REVISION 6, DD_REVISION 1
{
    /* All HART devices must support all Universal Commands */
    EVERYTHING;

    REDEFINITIONS
    {
        VARIABLE device_type
        {
            REDEFINE TYPE ENUMERATED
            {
				{ 103, "Promag 400" }
			}
		}

		VARIABLE manufacturer_id
		{
			REDEFINE TYPE ENUMERATED
			{
				COMPANY_IDENTIFICATION_CODE (17)
			}
		}
	}
}

    /*****************************************************************************
    Common Practice Commands
    *****************************************************************************/    
    IMPORT STANDARD _COMMON_PRACTICE, DEVICE_REVISION 8, DD_REVISION 1
    {
    COMMAND set_pv_upper_range_value;                 		/* Command 36 */
    COMMAND set_pv_lower_range_value;               	 		/* Command 37 */
    COMMAND reset_configuration_change_flag;        		/* Command 38 */
    COMMAND enter_exit_fixed_pv_current_mode;       		/* Command 40 */
    COMMAND perform_self_test;                      				/* Command 41 */
    COMMAND perform_device_reset;                   			/* Command 42 */
    COMMAND set_pv_zero;                            				/* Command 43 */
    COMMAND write_pv_units;                         				/* Command 44 */
    COMMAND trim_pv_current_dac_zero;               			/* Command 45 */
    COMMAND trim_pv_current_dac_gain;               			/* Command 46 */
    COMMAND read_additional_device_status;          		/* Command 48 */
    COMMAND read_device_variable_information;       		/* Command 54 */
    COMMAND write_number_of_response_preambles;     	/* Command 59 */
    COMMAND squawk;                                 					/* Command 72 */
    /*COMMAND read_device_variable_trim_point; */       	/* Command 80 */
    /*COMMAND read_device_variable_trim_guidelines; */  /* Command 81 */
    COMMAND write_device_variable_trim_point;       		/* Command 82 */
    COMMAND reset_device_variable_trim;             			/* Command 83 */

    METHOD applied_rerange;
    METHOD zero_trim;
    METHOD return_to_normal;
    METHOD warning_message;
    METHOD device_self_test;
    METHOD device_master_reset;
    METHOD transmitter_loop_test;
    METHOD leave_fixed_current_mode;
    METHOD transmitter_dac_trim;
    METHOD makeItSquawk;
    METHOD device_variable_trim;
    METHOD trim_warning;
    METHOD device_variable_trim_reset;


    VARIABLE device_specific_status_0;
    VARIABLE device_specific_status_1;
    VARIABLE device_specific_status_2;
    VARIABLE device_specific_status_3;
    VARIABLE device_specific_status_4;
    VARIABLE device_specific_status_5;
    VARIABLE device_specific_status_14;
    VARIABLE device_specific_status_15;
    VARIABLE device_specific_status_16;
    VARIABLE device_specific_status_17;
    VARIABLE device_specific_status_18;
    VARIABLE device_specific_status_19;
    VARIABLE device_specific_status_20;
    VARIABLE device_specific_status_21;
    VARIABLE device_specific_status_22;
    VARIABLE device_specific_status_23;
    VARIABLE device_specific_status_24;
    VARIABLE device_variable_code;
    VARIABLE device_variable_trim_code;
    VARIABLE primary_variable_code;
    VARIABLE secondary_variable_code;
    VARIABLE tertiary_variable_code;
    VARIABLE quaternary_variable_code;

    REDEFINITIONS
    {
    
    
		VARIABLE primary_variable_code
          {
          REDEFINE LABEL "|en|SET PRIMARY VARIABLE";
          REDEFINE TYPE INDEX deviceVariables;
          DELETE POST_EDIT_ACTIONS;
          }
    
        VARIABLE secondary_variable_code
          {
          REDEFINE LABEL "|en|SET SECONDARY VARIABLE";
          REDEFINE TYPE INDEX deviceVariables_ext;
          DELETE POST_EDIT_ACTIONS;
          }
          
        VARIABLE tertiary_variable_code
          {
          REDEFINE LABEL "|en|SET TERTIARY VARIABLE";
          REDEFINE TYPE INDEX deviceVariables_ext;
          DELETE POST_EDIT_ACTIONS;
          }
    
        VARIABLE quaternary_variable_code
          {
          REDEFINE LABEL "|en|SET QUATERNARY VARIABLE";
          REDEFINE TYPE INDEX deviceVariables_ext;
          DELETE POST_EDIT_ACTIONS;
          }
    
VARIABLE device_specific_status_0 
{
    REDEFINE	STYLE "MULTILINE 32 9";
REDEFINE	TYPE BIT_ENUMERATED(1)
	{				
		ENUMLIST_Status_0
	}
}
	
VARIABLE device_specific_status_1 
{
    REDEFINE	STYLE "MULTILINE 32 9";
REDEFINE	TYPE BIT_ENUMERATED(1)
	{				
		ENUMLIST_Status_1
	}
}
	
VARIABLE device_specific_status_2 
{
    REDEFINE	STYLE "MULTILINE 32 9";
REDEFINE	TYPE BIT_ENUMERATED(1)
	{				
		ENUMLIST_Status_2
	}
}
	
VARIABLE device_specific_status_3 
{
    REDEFINE	STYLE "MULTILINE 32 9";
REDEFINE	TYPE BIT_ENUMERATED(1)
	{				
		ENUMLIST_Status_3
	}
}
	
VARIABLE device_specific_status_4 
{
    REDEFINE	STYLE "MULTILINE 32 9";
REDEFINE	TYPE BIT_ENUMERATED(1)
	{				
		ENUMLIST_Status_4
	}
}
	
VARIABLE device_specific_status_14 
{
    REDEFINE	STYLE "MULTILINE 32 9";
REDEFINE	TYPE BIT_ENUMERATED(1)
	{				
		ENUMLIST_Status_14
	}
}
	
VARIABLE device_specific_status_15 
{
    REDEFINE	STYLE "MULTILINE 32 9";
REDEFINE	TYPE BIT_ENUMERATED(1)
	{				
		ENUMLIST_Status_15
	}
}
	
VARIABLE device_specific_status_16 
{
    REDEFINE	STYLE "MULTILINE 32 9";
REDEFINE	TYPE BIT_ENUMERATED(1)
	{				
		ENUMLIST_Status_16
	}
}
	
VARIABLE device_specific_status_17 
{
    REDEFINE	STYLE "MULTILINE 32 9";
REDEFINE	TYPE BIT_ENUMERATED(1)
	{				
		ENUMLIST_Status_17
	}
}
	
VARIABLE device_specific_status_18 
{
    REDEFINE	STYLE "MULTILINE 32 9";
REDEFINE	TYPE BIT_ENUMERATED(1)
	{				
		ENUMLIST_Status_18
	}
}
	
VARIABLE device_specific_status_19 
{
    REDEFINE	STYLE "MULTILINE 32 9";
REDEFINE	TYPE BIT_ENUMERATED(1)
	{				
		ENUMLIST_Status_19
	}
}
	
	
        VARIABLE device_variable_trim_code
        {
            REDEFINE TYPE INDEX trimDeviceVariables; 
        }
    }
}


/*****************************************************************************
 PV, when the primary variable is not mappable we can import the PV
 standard DD to take care of the dynamic variable array, loop current
 and ranging functions
*****************************************************************************/
IMPORT STANDARD _PV, DEVICE_REVISION 1, DD_REVISION 1
{
	EVERYTHING;
	
	REDEFINITIONS
	{
		COLLECTION OF COLLECTION primary_variable
		{
			MEMBERS
			{
				REDEFINE DEVICE_VARIABLE,        deviceVariables[primary_variable_code];
			}
		}
            
		COLLECTION OF COLLECTION secondary_variable
		{
			MEMBERS
			{
				REDEFINE DEVICE_VARIABLE,        deviceVariables_ext[secondary_variable_code];
			}
		}
            
		COLLECTION OF COLLECTION tertiary_variable
		{
			MEMBERS
			{
				REDEFINE DEVICE_VARIABLE,        deviceVariables_ext[tertiary_variable_code];
			}
		}
            
		COLLECTION OF COLLECTION quaternary_variable
		{
			MEMBERS
			{
				REDEFINE DEVICE_VARIABLE,        deviceVariables_ext[quaternary_variable_code];
			}
		}

		ARRAY OF COLLECTION dynamic_variables
		{
			HELP [transmitter_variable_help];
			ELEMENTS
			{
				REDEFINE PRIMARY, deviceVariables[primary_variable_code], [pv], [primary_variable_help];
				REDEFINE SECONDARY, deviceVariables_ext[secondary_variable_code], [sv], [secondary_variable_help];
				REDEFINE TERTIARY, deviceVariables_ext[tertiary_variable_code], [tv], [tertiary_variable_help];
				REDEFINE QUATERNARY, deviceVariables_ext[quaternary_variable_code], [qv], [fourth_variable_help];
			}
		}

		
			/*
			* Most devices use the same data item for range units (command 15) and
			* the sensor units. When this is true the following should be added.
			* If your device uses a different variable for range units you should
			* reference it here.
			*/
			COLLECTION OF VARIABLE scaling
			{
				MEMBERS
				{
				ADD RANGE_UNITS, deviceVariables[0].DIGITAL_UNITS, [range_units], [range_units_help];
				}
			}
		}
    }
    

/*
* Rosemount generic flow-meter
*/

IMPORT STANDARD _RMTFLOW, DEVICE_REVISION 5, DD_REVISION 3
{
VARIABLE flow_percent_range;
VARIABLE flow_sensor_serial_number;
}


/*
* Generic variables
*/

VARIABLE LOWERRANGEVALDUMMY {
CLASS LOCAL;
LABEL "|en|LOW RANGE VALUE (dummy)";
HANDLING READ;
TYPE FLOAT;
}

VARIABLE UPPERRANGEVALDUMMY {
CLASS LOCAL;
LABEL "|en|UP RANGE VALUE (dummy)";
HANDLING READ;
TYPE FLOAT;
}

VARIABLE MINIMUMSPANDUMMY {
CLASS LOCAL;
LABEL "|en|MIN SPAN VALUE (dummy)";
HANDLING READ;
TYPE FLOAT;
}

VARIABLE DEVICEFAMILYDUMMY
{
LABEL "Device family";
HELP [device_family_help];
CLASS LOCAL;
HANDLING READ;
TYPE ENUMERATED
{
/*
* We have declared that the distance device variable supports the Level Family,
* however, this DD is not complete because there are no Level Family commands in it
*/
DEVICE_VARIABLE_FAMILY_CODE(11)      // This is the macro from above macros.h
}
}

VARIABLE CLASSIFICATIONDUMMY
{
LABEL "Classification";
HELP [classification_help];
CLASS LOCAL;
HANDLING READ;
TYPE ENUMERATED
{
// This is the macro from above macros.h
DEVICE_VARIABLE_CLASSIFICATION_CODE(92)
}
}

VARIABLE DEVICEFAMILYSTATUSDUMMY
{
LABEL "Device family status";
HELP [family_status_help];
CLASS LOCAL;
HANDLING READ;
TYPE BIT_ENUMERATED
{
{ 0x08, device_family_status(0x08), MORE }
} 
}

VARIABLE DATAQUALITYDUMMY
{
LABEL "Process data quality";
HELP [process_data_quality_help];
CLASS LOCAL;
HANDLING READ;
TYPE ENUMERATED
{
{0 , process_data_status(0)},
{1 , process_data_status(1)},
{2 , process_data_status(2)},
{3 , process_data_status(3)}

// PROCESS_DATA_STATUS_CODES      // if preferred, use this macro */         
}
}

VARIABLE LIMITSTATUSDUMMY
{
LABEL "Limit status";
HELP [limit_status_help];
CLASS LOCAL;
HANDLING READ;
TYPE ENUMERATED
{
// This is the macro from above macros.h
{0 , limit_status(0)}, 
{1 , limit_status(1)}, 
{2 , limit_status(2)}, 
{3 , limit_status(3)}
}
}

VARIABLE LOWERTRIMPOINTDUMMY
{
LABEL "Lower trim";
HELP [lower_trim_help];
CLASS LOCAL;
HANDLING READ;
TYPE FLOAT
{
DISPLAY_FORMAT ".3f";
}
}

VARIABLE UPPERTRIMPOINTDUMMY
{
LABEL "Upper trim";
HELP [upper_trim_help];
CLASS LOCAL;
HANDLING READ;
TYPE FLOAT
{
DISPLAY_FORMAT ".3f";
}
}

VARIABLE TRIMPOINTSUPPORTDUMMY
{
LABEL "Trim support";
HELP [trim_support_help];
CLASS LOCAL;
HANDLING READ;
TYPE ENUMERATED (1)
{
TRIM_POINT_CODE(1),   // Lower Trim Point Supported  
TRIM_POINT_CODE(2),   // Upper Trim Point Supported
TRIM_POINT_CODE(3)    // Lower and Upper Trim Point Supported
}
}

VARIABLE MINIMUMLTPDUMMY
{
LABEL "Level Min lower trim";
HELP [minimum_lower_trim_help];
CLASS LOCAL;
HANDLING READ;
TYPE FLOAT
{
DISPLAY_FORMAT ".3f";
}
}

VARIABLE MAXIMUMLTPDUMMY
{
LABEL "Level Max lower trim";
HELP [maximum_lower_trim_help];
CLASS LOCAL;
HANDLING READ;
TYPE FLOAT
{
DISPLAY_FORMAT ".3f";
}
}

VARIABLE MINIMUMUTPDUMMY
{
LABEL "Level Min upper trim";
HELP [minimum_upper_trim_help];
CLASS LOCAL;
HANDLING READ;
TYPE FLOAT
{
DISPLAY_FORMAT ".3f";
}
}

VARIABLE MAXIMUMUTPDUMMY
{
LABEL "Level Max upper trim";
HELP [maximum_upper_trim_help];
CLASS LOCAL;
HANDLING READ;
TYPE FLOAT
{
DISPLAY_FORMAT ".3f";
}
}

VARIABLE MINIMUMTRIMDIFFDUMMY
{
LABEL "Level Min trim diff";
HELP [minimum_trim_diff_help];
CLASS LOCAL;
HANDLING READ;
TYPE FLOAT
{
DISPLAY_FORMAT ".3f";
}
}

VARIABLE Dummy
{
LABEL "Dummy";
HELP [seconds_damping_value_help];
CLASS LOCAL;
HANDLING READ;
TYPE FLOAT
{
DISPLAY_FORMAT ".3f";
}
}

ARRAY OF COLLECTION deviceVariables
{
HELP [transmitter_variable_help];
ELEMENTS
{
		0,  FLOW_Out1Value_1_collection, T_VolumeFlow;
		1,  FLOW_Out2Value_1_collection, T_MassFlow;
		2,  MID_VelocityValue_1_collection, T_FlowVelocity;
		3,  FLOW_Out3Value_1_collection, T_Conductivity;
		4,  MID_ElectronicsTemperature_1_collection, T_ElectronicTemperature;
}
}

ARRAY OF COLLECTION deviceVariables_ext
{
HELP [transmitter_variable_help];
ELEMENTS
{
		0,  FLOW_Out1Value_1_collection, T_VolumeFlow;
		1,  FLOW_Out2Value_1_collection, T_MassFlow;
		2,  MID_VelocityValue_1_collection, T_FlowVelocity;
		3,  FLOW_Out3Value_1_collection, T_Conductivity;
		4,  MID_ElectronicsTemperature_1_collection, T_ElectronicTemperature;
		5,  TIC_Value_1_collection, T_TotalizerValueX_1;
		6,  TIC_Value_2_collection, T_TotalizerValueX_2;
		7,  TIC_Value_3_collection, T_TotalizerValueX_3;
}
}

ARRAY OF COLLECTION trimDeviceVariables 
{
HELP [transmitter_variable_help];
ELEMENTS
{
		0,  FLOW_Out1Value_1_collection, T_VolumeFlow;
		1,  FLOW_Out2Value_1_collection, T_MassFlow;
		2,  MID_VelocityValue_1_collection, T_FlowVelocity;
		3,  FLOW_Out3Value_1_collection, T_Conductivity;
		4,  MID_ElectronicsTemperature_1_collection, T_ElectronicTemperature;
}
}


COLLECTION OF VARIABLE FLOW_Out1Value_1_collection
  {
  LABEL T_VolumeFlow;
  MEMBERS
    {
    /* Measurement */
    DIGITAL_UNITS, units_code, [units], [digital_units_help];
    DIGITAL_VALUE, FLOW_Out1Value_1, [blank], [digital_value_help];
    ANALOG_VALUE, Dummy, [analog_output_value], [analog_value_help];
    PERCENT_RANGE, flow_percent_range, [percent_of_range], [percent_of_range_help];

    DATA_QUALITY,   DATAQUALITYDUMMY, [process_data_quality], [process_data_quality_help];
    LIMIT_STATUS,   LIMITSTATUSDUMMY, [limit_status],         [limit_status_help];
    DEVICE_FAMILY_STATUS, DEVICEFAMILYSTATUSDUMMY, [family_status], [family_status_help];
    CLASSIFICATION, CLASSIFICATIONDUMMY, [classification], [classification_help];
    DEVICE_FAMILY,  DEVICEFAMILYDUMMY,   [device_family],  [device_family_help];

    /* Sensor Information */
    SENSOR_SERIAL_NUMBER, flow_sensor_serial_number, [sensor_serial_number], [sensor_serial_number_help];
    SENSOR_UNITS, units_code, [sensor_unit], [sensor_minspan_unit_help];
    UPPER_SENSOR_LIMIT, UPPERRANGEVALDUMMY, [usl], [upper_sensor_limit_help];
    LOWER_SENSOR_LIMIT, LOWERRANGEVALDUMMY, [lsl], [lower_sensor_limit_help];
    MINIMUM_SPAN, MINIMUMSPANDUMMY, [minimum_span], [minimum_span_help];

    /* Output Information */
    ALARM_CODE, alarm_selection_code, [alarm_select], [alarm_code_help];
    TRANSFER_FUNCTION, transfer_function, [transfer_function], [transfer_function_help];
    RANGE_UNITS, units_code, [range_units], [range_units_help];
    UPPER_RANGE_VALUE, Dummy, [urv], [upper_range_value_help];
    LOWER_RANGE_VALUE, Dummy, [lrv], [lower_range_value_help];
    DAMPING_VALUE, Dummy, [damping_value], [seconds_damping_value_help];

    /* Calibration Information */
    TRIM_POINT_UNITS, units_code, [trim_unit], [sensor_trim_unit_help];
    }
  }

COLLECTION OF VARIABLE FLOW_Out2Value_1_collection
  {
  LABEL T_MassFlow;
  MEMBERS
    {
    /* Measurement */
    DIGITAL_UNITS, units_code, [units], [digital_units_help];
    DIGITAL_VALUE, FLOW_Out2Value_1, [blank], [digital_value_help];
    ANALOG_VALUE, Dummy, [analog_output_value], [analog_value_help];
    PERCENT_RANGE, flow_percent_range, [percent_of_range], [percent_of_range_help];

    DATA_QUALITY,   DATAQUALITYDUMMY, [process_data_quality], [process_data_quality_help];
    LIMIT_STATUS,   LIMITSTATUSDUMMY, [limit_status],         [limit_status_help];
    DEVICE_FAMILY_STATUS, DEVICEFAMILYSTATUSDUMMY, [family_status], [family_status_help];
    CLASSIFICATION, CLASSIFICATIONDUMMY, [classification], [classification_help];
    DEVICE_FAMILY,  DEVICEFAMILYDUMMY,   [device_family],  [device_family_help];

    /* Sensor Information */
    SENSOR_SERIAL_NUMBER, flow_sensor_serial_number, [sensor_serial_number], [sensor_serial_number_help];
    SENSOR_UNITS, units_code, [sensor_unit], [sensor_minspan_unit_help];
    UPPER_SENSOR_LIMIT, UPPERRANGEVALDUMMY, [usl], [upper_sensor_limit_help];
    LOWER_SENSOR_LIMIT, LOWERRANGEVALDUMMY, [lsl], [lower_sensor_limit_help];
    MINIMUM_SPAN, MINIMUMSPANDUMMY, [minimum_span], [minimum_span_help];

    /* Output Information */
    ALARM_CODE, alarm_selection_code, [alarm_select], [alarm_code_help];
    TRANSFER_FUNCTION, transfer_function, [transfer_function], [transfer_function_help];
    RANGE_UNITS, units_code, [range_units], [range_units_help];
    UPPER_RANGE_VALUE, Dummy, [urv], [upper_range_value_help];
    LOWER_RANGE_VALUE, Dummy, [lrv], [lower_range_value_help];
    DAMPING_VALUE, Dummy, [damping_value], [seconds_damping_value_help];

    /* Calibration Information */
    TRIM_POINT_UNITS, units_code, [trim_unit], [sensor_trim_unit_help];
    }
  }

COLLECTION OF VARIABLE MID_VelocityValue_1_collection
  {
  LABEL T_FlowVelocity;
  MEMBERS
    {
    /* Measurement */
    DIGITAL_UNITS, units_code, [units], [digital_units_help];
    DIGITAL_VALUE, MID_VelocityValue_1, [blank], [digital_value_help];

    DATA_QUALITY,   DATAQUALITYDUMMY, [process_data_quality], [process_data_quality_help];
    LIMIT_STATUS,   LIMITSTATUSDUMMY, [limit_status],         [limit_status_help];
    DEVICE_FAMILY_STATUS, DEVICEFAMILYSTATUSDUMMY, [family_status], [family_status_help];
    CLASSIFICATION, CLASSIFICATIONDUMMY, [classification], [classification_help];
    DEVICE_FAMILY,  DEVICEFAMILYDUMMY,   [device_family],  [device_family_help];

    /* Calibration Information */
    TRIM_POINT_UNITS, units_code, [trim_unit], [sensor_trim_unit_help];
    }
  }

COLLECTION OF VARIABLE FLOW_Out3Value_1_collection
  {
  LABEL T_Conductivity;
  MEMBERS
    {
    /* Measurement */
    DIGITAL_UNITS, units_code, [units], [digital_units_help];
    DIGITAL_VALUE, FLOW_Out3Value_1, [blank], [digital_value_help];
    ANALOG_VALUE, Dummy, [analog_output_value], [analog_value_help];
    PERCENT_RANGE, flow_percent_range, [percent_of_range], [percent_of_range_help];

    DATA_QUALITY,   DATAQUALITYDUMMY, [process_data_quality], [process_data_quality_help];
    LIMIT_STATUS,   LIMITSTATUSDUMMY, [limit_status],         [limit_status_help];
    DEVICE_FAMILY_STATUS, DEVICEFAMILYSTATUSDUMMY, [family_status], [family_status_help];
    CLASSIFICATION, CLASSIFICATIONDUMMY, [classification], [classification_help];
    DEVICE_FAMILY,  DEVICEFAMILYDUMMY,   [device_family],  [device_family_help];

    /* Sensor Information */
    SENSOR_SERIAL_NUMBER, flow_sensor_serial_number, [sensor_serial_number], [sensor_serial_number_help];
    SENSOR_UNITS, units_code, [sensor_unit], [sensor_minspan_unit_help];
    UPPER_SENSOR_LIMIT, UPPERRANGEVALDUMMY, [usl], [upper_sensor_limit_help];
    LOWER_SENSOR_LIMIT, LOWERRANGEVALDUMMY, [lsl], [lower_sensor_limit_help];
    MINIMUM_SPAN, MINIMUMSPANDUMMY, [minimum_span], [minimum_span_help];

    /* Output Information */
    ALARM_CODE, alarm_selection_code, [alarm_select], [alarm_code_help];
    TRANSFER_FUNCTION, transfer_function, [transfer_function], [transfer_function_help];
    RANGE_UNITS, units_code, [range_units], [range_units_help];
    UPPER_RANGE_VALUE, Dummy, [urv], [upper_range_value_help];
    LOWER_RANGE_VALUE, Dummy, [lrv], [lower_range_value_help];
    DAMPING_VALUE, Dummy, [damping_value], [seconds_damping_value_help];

    /* Calibration Information */
    TRIM_POINT_UNITS, units_code, [trim_unit], [sensor_trim_unit_help];
    }
  }

COLLECTION OF VARIABLE MID_ElectronicsTemperature_1_collection
  {
  LABEL T_ElectronicTemperature;
  MEMBERS
    {
    /* Measurement */
    DIGITAL_UNITS, units_code, [units], [digital_units_help];
    DIGITAL_VALUE, MID_ElectronicsTemperature_1, [blank], [digital_value_help];

    DATA_QUALITY,   DATAQUALITYDUMMY, [process_data_quality], [process_data_quality_help];
    LIMIT_STATUS,   LIMITSTATUSDUMMY, [limit_status],         [limit_status_help];
    DEVICE_FAMILY_STATUS, DEVICEFAMILYSTATUSDUMMY, [family_status], [family_status_help];
    CLASSIFICATION, CLASSIFICATIONDUMMY, [classification], [classification_help];
    DEVICE_FAMILY,  DEVICEFAMILYDUMMY,   [device_family],  [device_family_help];

    /* Calibration Information */
    TRIM_POINT_UNITS, units_code, [trim_unit], [sensor_trim_unit_help];
    }
  }

COLLECTION OF VARIABLE TIC_Value_1_collection
  {
  LABEL T_TotalizerValueX_1;
  MEMBERS
    {
    /* Measurement */
    DIGITAL_UNITS, units_code, [units], [digital_units_help];
    DIGITAL_VALUE, TIC_Value_1, [blank], [digital_value_help];

    DATA_QUALITY,   DATAQUALITYDUMMY, [process_data_quality], [process_data_quality_help];
    LIMIT_STATUS,   LIMITSTATUSDUMMY, [limit_status],         [limit_status_help];
    DEVICE_FAMILY_STATUS, DEVICEFAMILYSTATUSDUMMY, [family_status], [family_status_help];
    CLASSIFICATION, CLASSIFICATIONDUMMY, [classification], [classification_help];
    DEVICE_FAMILY,  DEVICEFAMILYDUMMY,   [device_family],  [device_family_help];

    /* Calibration Information */
    TRIM_POINT_UNITS, units_code, [trim_unit], [sensor_trim_unit_help];
    }
  }

COLLECTION OF VARIABLE TIC_Value_2_collection
  {
  LABEL T_TotalizerValueX_2;
  MEMBERS
    {
    /* Measurement */
    DIGITAL_UNITS, units_code, [units], [digital_units_help];
    DIGITAL_VALUE, TIC_Value_2, [blank], [digital_value_help];

    DATA_QUALITY,   DATAQUALITYDUMMY, [process_data_quality], [process_data_quality_help];
    LIMIT_STATUS,   LIMITSTATUSDUMMY, [limit_status],         [limit_status_help];
    DEVICE_FAMILY_STATUS, DEVICEFAMILYSTATUSDUMMY, [family_status], [family_status_help];
    CLASSIFICATION, CLASSIFICATIONDUMMY, [classification], [classification_help];
    DEVICE_FAMILY,  DEVICEFAMILYDUMMY,   [device_family],  [device_family_help];

    /* Calibration Information */
    TRIM_POINT_UNITS, units_code, [trim_unit], [sensor_trim_unit_help];
    }
  }

COLLECTION OF VARIABLE TIC_Value_3_collection
  {
  LABEL T_TotalizerValueX_3;
  MEMBERS
    {
    /* Measurement */
    DIGITAL_UNITS, units_code, [units], [digital_units_help];
    DIGITAL_VALUE, TIC_Value_3, [blank], [digital_value_help];

    DATA_QUALITY,   DATAQUALITYDUMMY, [process_data_quality], [process_data_quality_help];
    LIMIT_STATUS,   LIMITSTATUSDUMMY, [limit_status],         [limit_status_help];
    DEVICE_FAMILY_STATUS, DEVICEFAMILYSTATUSDUMMY, [family_status], [family_status_help];
    CLASSIFICATION, CLASSIFICATIONDUMMY, [classification], [classification_help];
    DEVICE_FAMILY,  DEVICEFAMILYDUMMY,   [device_family],  [device_family_help];

    /* Calibration Information */
    TRIM_POINT_UNITS, units_code, [trim_unit], [sensor_trim_unit_help];
    }
  }
