/*
 * Go2Range.h
 * 
 * Gocator system communication library
 * Copyright (C) 2010 by LMI Technologies Inc.
 * 
 * Licensed under The MIT License.
 * Redistributions of files must retain the above copyright notice.
 */
#ifndef LMITECH_GO2_RANGE_H_INCLUDED
#define LMITECH_GO2_RANGE_H_INCLUDED

#include <Go2Object.h>
#include <Go2Measurement.h>
#include <Go2ApiBegin.h>

typedef Go2Object Go2Range;              // Represents range measurement configuration.

GO2_EXPORT(Go2UInt32) Go2Range_MeasurementCount(Go2Range range); //
//
//  Description:
//      Gets the current count of range measurements. 
//  Arguments:
//      range - Go2Range object.
//  Returns:
//      Count of range measurements.

GO2_EXPORT(Go2Measurement) Go2Range_MeasurementAt(Go2Range range, Go2UInt32 index); //
//
//  Description:
//      Gets the range measurement at the specified index; 
//  Arguments:
//      range - Go2Range object.
//      index - Range measurement index. 
//  Returns:
//      Measurement configuration object.

GO2_EXPORT(Go2Status) Go2Range_AddMeasurement(Go2Range range, Go2Type type, Go2UInt32 id, Go2Measurement* measurement); //
//
//  Description:
//      Creates a new range measurement and adds it to the list of measurements. 
//  Arguments:
//      range - Go2Range object.
//      type - Range measurement type. 
//      id - Unique measurement identifier. 
//      measurement - Receives the new measurement object. 
//  Returns:
//      Operation status.

GO2_EXPORT(Go2Status) Go2Range_RemoveMeasurement(Go2Range range, Go2UInt32 index); //
//
//  Description:
//      Removes the range measurement at the specified index.
//  Arguments:
//      range - Go2Range object.
//      index - Index of range measurement to be removed.
//  Returns:
//      Operation status.

GO2_EXPORT(Go2Status) Go2Range_ClearMeasurements(Go2Range range); //
//
//  Description:
//      Removes all range measurements. 
//  Arguments:
//      range - Go2Range object.
//  Returns:
//      Operation status.

#include <Go2ApiEnd.h>

#endif      /* #ifndef LMITECH_GO2_RANGE_H_INCLUDED */
