/*                                                                     *
*   3333   CCCC      CCCC  OOOO  N     N  CCCC  EEEEE  PPPP  TTTTTTT   *
*       3 C         C     O    O NN    N C      E      P   P    T      *
*       3 C         C     O    O N N   N C      E      P   P    T      *
*   3333  C         C     O    O N  N  N C      EEEE   PPPP     T      *
*       3 C         C     O    O N   N N C      E      P        T      *
*       3 C         C     O    O N    NN C      E      P        T      *
*   3333   CCCC      CCCC  OOOO  N     N  CCCC  EEEEE  P        T      *
*                                                                      *
*                   HEADER FILE POUR .so/linux TCUSB18A                *
*                                                                      *
* (c)2009 3C CONCEPT S.A.                			       *
*   01/10/09: V1.01: Creation DB
*   03/11/15: V1.02: Inc Num version en accord modif Dll
*                                                                      *
* -------------------------------------------------------------------- */

 

/*----------------------------------------------------------------------------
**  Multi-inclusion support.
**--------------------------------------------------------------------------*/

#ifndef	__TCUSB18A__
#define	__TCUSB18A__

/*----------------------------------------------------------------------------
**  Constants definition.
**--------------------------------------------------------------------------*/

#define maxmodule     8   /* N° de carte de 1 à 8 */
#define DLLVersion    2   /* N° de version de la DLL */

/* Codes d'erreur générés par les fonctions de base ci-dessous */

#define erNoError     0   /* OK */
#define erNumSerie    1   /* Numero de serie incorrect*/
#define erModule      2   /* N° de module incorrect  */
#define erNoModule    3   /* Pas de module TC/USB-18A détecté */
#define erNoInit      4   /* Module non initialisé */
#define erWrite       5   /* Nb d'octets ecrits incorrects */
#define erRead   	  6   /* Nb d'octets lus incorrects  */
#define erClose       7   /* erreur à la fermeture */
#define erVoie        8	  /* erreur mauvais n° voie analogique */
#define erOpen        9   /* erreur lors de la fonction Open  */
#define erConsigne    10  /* erreur mauvaise consigne */
#define erConfig      11  /* erreur fichier etc/CONF absent */
#define erPurge       12  /* erreur sur la fonction 'purge' */
#define erRxBytes     13  /* Nb d'octets lus incorrects, Fonction refresh*/



/*----------------------------------------------------------------------------
** Multi-language support
**--------------------------------------------------------------------------*/

#ifdef	__cplusplus
extern	"C"	{
#endif


#include "ftd2xx.h"      //header des fonctions FTDI

//prototypes des fonctions publiques
//operation de base:

 long  TCUSB18A_Refresh(long NModule);

 long  TCUSB18A_GetParams(long NModule);
 long TCUSB18A_GetConfig(long NModule,long voie,float *Gain,float *Offset);
//NOT AVAIBLE IN LINUX VERSION
//long  TCUSB18A_SetParams(long NModule);
//long  TCUSB18A_ModifyParams(long NModule, BYTE Voie,float A_Gain,float A_Offset);


 long  TCUSB18A_Open (long NModule,char ** NumSerie);
 long  TCUSB18A_OpenN(long NModule,DWORD * NumSerie);
 long  TCUSB18A_Close(long NModule);

 long  TCUSB18A_Input (long NModule, DWORD * Data);
 long  TCUSB18A_Output(long NModule, BYTE Data);

 long  TCUSB18A_BitInput   (long NModule,long entree,BYTE * Data);
 long  TCUSB18A_BitOutput  (long NModule,long Sortie,long etat);
 long  TCUSB18A_BitReadBack(long NModule,long Sortie,BYTE *etat);

 long  TCUSB18A_Counter (long NModule,long Entree,BYTE * Data);
 long  TCUSB18A_Config  (long NModule, BYTE Data);
 long  TCUSB18A_Pos     (long NModule,long * Data);
 long  TCUSB18A_ResetPos(long NModule);

 long  TCUSB18A_AnaIn      (long NModule,BYTE Voie,short int *Data);
 long  TCUSB18A_AnaInVolts (long NModule,BYTE Voie,double *Data);
 long  TCUSB18A_AnaInmA    (long NModule,BYTE Voie,double *Data);
 long  TCUSB18A_AnaOut     (long NModule,BYTE Voie,short int Data);
 long  TCUSB18A_AnaOutVolts(long NModule,BYTE Voie,double data);

 void  TCUSB18A_WdgRun  (long NModule);
 void  TCUSB18A_WdgStop (long NModule);
 void  TCUSB18A_WdgRearm(long NModule);
 long  TCUSB18A_Version (long NModule,BYTE * Data1,BYTE * Data2);

  
// Fin TCUSB18A.h }
#ifdef __cplusplus
}
#endif

/*----------------------------------------------------------------------------
**  Multi-inclusion support.
**--------------------------------------------------------------------------*/
#endif
