HART is NOT conditional.
At no time may a command be deleted from any device (see Command Summary Spec, #3 below)
INCORRECT
#if __TOKVER__ >= 600 COMMAND command128 { NUMBER 128; OPERATION READ; TRANSACTION { REQUEST { } REPLY { response_code, device_status someVariable } } RESPONSE_CODES { 0, SUCCESS, [no_command_specific_errors]; 2, DATA_ENTRY_ERROR, [invalid_selection]; 3, DATA_ENTRY_ERROR, [passed_parameter_too_large]; 4, DATA_ENTRY_ERROR, [passed_parameter_too_small]; 5, DATA_ENTRY_ERROR, [too_few_data_bytes_recieved]; 6, DATA_ENTRY_ERROR, [xmtr_specific_command_error]; 7, MODE_ERROR, [in_write_protect_mode]; 16, MODE_ERROR, [access_restricted]; 32, MODE_ERROR, [busy]; } } #endif
------------------------------------------------------------------------------------------------------------------------------------
CORRECT
VARIABLE variable1 { LABEL "variable1"; HELP ""; HANDLING READ; #if __TOKVER__ >= 800 DEFAULT_VALUE 20.4; #endif TYPE FLOAT; }
INCORRECT
#if __TOKVER__ >= 800 VARIABLE variable1 { LABEL "variable1"; HELP ""; HANDLING READ; DEFAULT_VALUE 20.4; TYPE FLOAT; } #endif
Similar issue (see May I use Conditional on VARIABLE's TYPE (HART EDD)?)