function _load_config()
    if _is_calibration_loaded() # Not sure this is needed. Is this function ever called multiple times?
        @info "Calibration has already been loaded"
    else
        function_call_root_dir = @__DIR__

        config_file_relative_path = "calibration/config.jl"
        config_file_paths = String[]
        push!(config_file_paths, joinpath(pwd(), config_file_relative_path));
        push!(config_file_paths, joinpath(function_call_root_dir, config_file_relative_path))
        push!(config_file_paths, joinpath(function_call_root_dir, "..", config_file_relative_path))

        for file_path in config_file_paths
            if isfile(file_path)
                @info "Calibration directory found at " * file_path
                include(file_path)
                _set_calibration_loaded()
                return nothing # only load from the first found calibration directory
            end
        end
    end
    return nothing
end



function _is_calibration_loaded()::Bool
    global CALIBRATION_LOADED
    is_loaded = CALIBRATION_LOADED[]::Bool

    return is_loaded
end


function _set_calibration_loaded()
    global CALIBRATION_LOADED
    CALIBRATION_LOADED[] = true
    return nothing
end



function get_calibration(hydro_id, preamp_id = :empty)
    call_calibration(s) = Base.invokelatest(calibration, Val(s))
    return call_calibration(hydro_id), call_calibration(preamp_id)
end


macro calibration(device, calibration_data)
    @eval begin
        """
        `$($device)`
        """
        calibration(::Val{$device}) = $calibration_data
    end
end

calibration(::Val{:empty}) = []
