/*
 * Go2Data.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_DATA_H_INCLUDED
#define LMITECH_GO2_DATA_H_INCLUDED

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

typedef Go2Object Go2Data;          // Represents a data message.

GO2_EXPORT(Go2Status) Go2Data_Destroy(Go2Data data); //
//
//  Description:
//      Destroys a Go2Data object.
//  Arguments:
//      data - Go2Data object. 
//  Returns:
//      Operation status.

GO2_EXPORT(Go2UInt64) Go2Data_Timestamp(Go2Data data); //
//
//  Description:
//      Gets the timestamp associated with this message.
//  Arguments:
//      data - Go2Data object. 
//  Returns: 
//      Timestamp value (microseconds). 

GO2_EXPORT(Go2Int64) Go2Data_Encoder(Go2Data data); //
//
//  Description:
//      Gets the encoder value associated with this message.
//  Arguments:
//      data - Go2Data object. 
//  Returns: 
//      Encoder value (ticks). 

GO2_EXPORT(Go2UInt64) Go2Data_Inputs(Go2Data data); //
//
//  Description:
//      Gets the digital input states associated with this message.
//  Arguments:
//      data - Go2Data object. 
//  Returns: 
//      Digitial input states (bits). 

GO2_EXPORT(Go2Int64) Go2Data_EncoderIndexValue(Go2Data data); //
//
//  Description:
//      Gets the encoder value at the last encoder index.
//  Arguments:
//      data - Go2Data object. 
//  Returns: 
//      Encoder value (ticks).

GO2_EXPORT(Go2UInt64) Go2Data_FrameIndex(Go2Data data); //
//
//  Description:
//      Gets the frame index associated with this message.
//  Arguments:
//      data - Go2Data object. 
//  Returns: 
//      Frame index value. 

GO2_EXPORT(Go2UInt32) Go2Data_ItemCount(Go2Data data); //
//
//  Description:
//      Gets the number of data items contained in this message.
//  Arguments:
//      data - Go2Data object. 
//  Returns: 
//      Item count. 

GO2_EXPORT(Go2Object) Go2Data_ItemAt(Go2Data data, Go2UInt32 index); //
//
//  Description:
//      Gets the data item at the specified index.
//  Arguments:
//      data - Go2Data object. 
//      index - Data item index.
//  Returns: 
//      Data item. 

#include <Go2ApiEnd.h>

#endif      /* #ifndef LMITECH_GO2_DATA_H_INCLUDED */
