#ifndef SCPI_NUMERIC_H
#define SCPI_NUMERIC_H
    #include <stdbool.h>    
    #include "app/scpi/scpi_base.h" // eScpiStatus_t 
    #include "app/scpi/scpi_numeric_types.h" // sProcessNumericEntry_t, sStrToken_t, sNumericRange_t

    // @processNumericArgument
    // Numeric argument validation and conversion function.
    // Processes specified SCPI Numeric Parameter (Numeric Program Data) with the most length SCPI_MAX_NUMBER_LENGTH.
    // References:
    //     "7.7.2 <DECIMAL NUMERIC PROGRAM DATA>", [1]
    //     "7.7.2.2 Encoding Syntax", [1]
    //     "7.7.4 <NONDECIMAL NUMERIC PROGRAM DATA>", [1]
    //     "7.7.4.2 Encoding Syntax", [1]
    // Parameters:
    //  @pObj - numeric conversion context;
    //  @argToken - numeric argument token to process;
    //  @entityType - SCPI entity type [eScpiEntityType_t] (see @getParsedEntityDetails, 'peEntityType' argument)
    //  @range - allowed values range structure
    // Return:
    //  - true: parameter processed successfully, the result is stored inside numeric conversion context
    //  - false: paramenter processing failed.
    bool processNumericArgument( sProcessNumericEntry_t * pObj, const sStrToken_t * argToken, uint8_t entityType, const sNumericRange_t * range );
#endif
 