#pragma once

#ifndef __cplusplus
	#define __cplusplus
#endif

#ifndef WIN32
#define WIN32
#endif


#include "VL_OSALib.h"

#define VL_MAXAIN 0x08
#define VL_MAXDIO 0x03
#define VL_DIODIRUNSET 0x02

// DEFINE ERRORS
#define ERROR_OSALIBOPEN -1



class VersalogicMMPEEAX
{
public:
	VersalogicMMPEEAX();
	~VersalogicMMPEEAX();

	int open();
	int initialize();
	int close();

	int getVersion(); 
	int getADCType();
	int printVersion(char *);
	
	int setAIRange(unsigned char channel, unsigned char Range);
	int readAI(unsigned char channel, double &voltage);
	int readAllAIChannels();


	int setDIODirection(unsigned char channel, unsigned char val);
	int setDIOOutputLevel(unsigned char channel, unsigned char level);
	int setAllDIOLevels(unsigned char level);
	int getDIOChannelLevel(unsigned char channel, unsigned char &level);

	bool isConnected();
	double dAINValues[VL_MAXAIN];
	unsigned char ucDIODirections[VL_MAXDIO];

private:
	
	unsigned char verMajor;
	unsigned char verMinor;
	unsigned char revision;
	unsigned char adcType;
	bool isOpen;
	


};

