/// <summary>
        /// Utiliza el miembro m_scale_distance para la distancia, y crea un objeto de datos del laser (LMSAPI_DATA) si la medición tuvo exito
        /// </summary>
        /// <returns>Un objeto LMSAPI_DATA con los datos de medición, o null si hubo un error</returns>
        public LMSAPI_DATA request_measurement()
        {
            IntPtr laserdata = LMSAPI_LIB.lmsapi_laser_data_create();

            if (laserdata == IntPtr.Zero)
            {
                return(null);                         // ?? fallo de memoria
            }
            if (LMSAPI_LIB.lmsapi_request_measurement(m_handle, laserdata, m_scale_distance) == 0)
            {
                //operación exitosa
                LMSAPI_DATA newdata = new LMSAPI_DATA(laserdata);
                return(newdata);
            }
            LMSAPI_LIB.lmsapi_laser_data_destroy(laserdata);
            return(null);
        }
 /// <summary>
 /// Obtiene un valor de intensidad del arreglo de intensidades
 /// </summary>
 public uint get_intensity(int index)
 {
     return(LMSAPI_LIB.lmsapi_laser_data_get_intensity(m_handle, index));
 }
 /// <summary>
 /// Obtiene el número de intensidades. 0 Si no hay intensidades
 /// </summary>
 public uint get_intensity_count()
 {
     return(LMSAPI_LIB.lmsapi_laser_data_get_intensity_count(m_handle));
 }
 /// <summary>
 /// Obtiene una distancia del arreglo de distancias
 /// </summary>
 public float get_distance(int index)
 {
     return(LMSAPI_LIB.lmsapi_laser_data_get_distance(m_handle, index));
 }
 /// <summary>
 /// Obtiene el número de distancias
 /// </summary>
 public uint get_distance_count()
 {
     return(LMSAPI_LIB.lmsapi_laser_data_get_distance_count(m_handle));
 }
 /// <summary>
 /// Obtiene la escala de distancias.
 /// </summary>
 public float get_scale_distance()
 {
     return(LMSAPI_LIB.lmsapi_laser_data_get_scale_distance(m_handle));
 }
 /// <summary>
 /// Obtiene el rango de distancia
 /// </summary>
 public float get_max_range()
 {
     return(LMSAPI_LIB.lmsapi_laser_data_get_max_range(m_handle));
 }
 /// <summary>
 /// Accede al miembro resolucion angular
 /// </summary>
 public float get_resolution()
 {
     return(LMSAPI_LIB.lmsapi_laser_data_get_resolution(m_handle));
 }
 /// <summary>
 /// Establece la resolución angular del sensor.
 /// </summary>
 /// <param name="res">Resolución angular, uno de los siguientes valores: 25, 50, 100 (Cada valor es un porcentaje de grado, 1/100).</param>
 /// <param name="width">Rango angular del barrido. Los valores válidos son: 100 y 180 grados de circunferencia.</param>
 /// <returns>0 si la operación fué exitosa, o un valor de error.</returns>
 public int set_resolution(int width, int res)
 {
     return(LMSAPI_LIB.lmsapi_set_resolution(m_handle, width, res));
 }
 /// <summary>
 /// Configura el rango de distancias y habilita el manejo de intensidades en las mediciones.
 /// </summary>
 /// <param name="distance_range">Rango de distancias en Metros. Una de las constantes de distancias: 8, 80 o 150 metros respectivamente.</param>
 /// <param name="handle_intensity">Booleano con el cual se habilita la medición de distancias.Asignese 1 o 0.</param>
 /// <returns>0 si la operacion fue exitosa, o un codigo de error.</returns>
 public int config(int distance_range, int handle_intensity)
 {
     return(LMSAPI_LIB.lmsapi_config(m_handle, distance_range, handle_intensity));
 }