Files
sics/site_ansto/hardsup/Digital/hdio.h
Douglas Clowes 60124655d0 Initial
r1113 | dcl | 2006-09-12 15:00:46 +1000 (Tue, 12 Sep 2006) | 2 lines
2012-11-15 12:47:19 +11:00

92 lines
2.1 KiB
C

/*
* This is an encapsulation of a National Instruments counter.
*
* It presents a simple 64-bit counter abstraction. When the counter is
* created, it commences counting at zero until it is destroyed.
*
* The counter can be read and returns a 64-bit unsigned value.
*/
#ifndef _HDIO_H_
#define _HDIO_H_
#include <stdbool.h>
struct counter_private_t;
typedef struct counter_private_t* pHDIO;
/**
* Create a 64-bit counter and start it counting
*
* \param device_name the name of the device (e.g. "dev1/ctr0")
* \param ptr address of pointer to opaque private data structure
*
* \return
* 0 OK
* !0 Error
*/
int hdio_ctor(const char* device_name, pHDIO* ptr);
/**
* Read the value of the 64-bit counter
*
* \param hdio pointer to opaque private data structure
* \param value address of unsigned 64-bit value to receive the output
*
* \return
* 0 OK
* !0 Error
*/
int hdio_read(pHDIO hdio, unsigned long long* value);
/**
* Enables external sync on designated (up/down) line
*
* \param hdio pointer to opaque private data structure
* \param value to be written to the associated line
* < 0 disconnect
* = 0 logic low
* > 0 logic high
*/
int hdio_outp(pHDIO hdio, int value);
/**
* Enables external sync on designated (up/down) line
*
* \param hdio pointer to opaque private data structure
* \param external true for external sync, false for internal
*/
void hdio_sync(pHDIO hdio, bool external);
/**
* Destroy the 64-bit counter
*
* \param ptr address of pointer to opaque private data structure
*
* \return
* 0 OK
* !0 Error
*/
int hdio_dtor(pHDIO* hdio);
/**
* Tests returned error value to see if it represents failure
*
* \param error a value returned from another hdio function
*
* \return
* true the error was a failure
* false the error was not a failure (warning)
*/
bool hdio_failed(int error);
/**
* Retrieves a textual representation of the most recent error
*
* \param buff a pointer to the buffer to receive the text
* \param len the length of the provided buffer
*/
void hdio_errmsg(char* buff, int len);
#endif