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)?)