/*******************************************************************************
*                                                                              *
* Société de Transports de Montréal.                                    	   *
* 2012                                                                         *
*                                                                              *
* Projet Zones Tests                                                           *
*                                                                              *
*                                                                              *
*                                                                              *
*******************************************************************************/
/*
    Description:
    Description du fichier si nécessaire.
    
*/

/* ************************************************************************** */
/* Revision:
### 20121213 JFM
    Verision d'origine.
    
### YYYYMMDD Description du besoin ou du bug
    Description du changement.
 */

/* ************************************************************************** */

#ifndef SEAIO430DRIVER_H
#define SEAIO430DRIVER_H

#include "GlobalDefine.h"
#include "Externaliomodule.h"
#include "seamaxlin.h"
#include "InputModule.h"
#include <QMutex>


class CSeaIO430Module : public CExternalIOModule, public CInputModule
{
public:
  CSeaIO430Module(CSeaMaxLin *ModuleInterfacePtr = 0);

  virtual unsigned int GetInputs();
  virtual unsigned int GetInputBuf();
  unsigned int ReadInputs(void);
  unsigned int ReadAndGetInputs(unsigned char *DataBuf);

private:
  unsigned char mInputBuffer[4];  //Buffer de données pour les entrées discrètes.
									  //On utilise un array simple pour éviter l'allocation dynamique.
  unsigned int GetInputs(unsigned char *DataBuf);
  QMutex mMutex;
};

#endif // SEAIO430DRIVER_H
