// UTS 2000 - Fichier 'serial_port.h' - V3.3 - Le 23/05/2009
class cSerialPort
{
    public:
    DCB     dcb;                   // description de la liaison série
    HANDLE  hCom;                  // handler sur la liaison série
    int     card0_ok;              // la carte 0 est présente
    int     card1_ok;              // la carte 1 est présente
    int     card2_ok;              // la carte 2 est présente
    int     card3_ok;              // la carte 3 est présente
    int     enable;                // le module rs232 est actif
            cSerialPort(void);           // constructeur (désactive le module rs232)
    int     simple_write(int data);      // effectue une écriture sur la rs232
    int     ecriture_trame_rs232(DWORD* pdata);	// effectue une écriture sur la rs232
    int     simple_read(int* pdata);			// effectue une lecture securisée sur la rs232
    int     lecture_trame_rs232(DWORD* pdata);	// effectue une lecture securisée sur la rs232
    int     read(int* pdata);            // effectue une lecture securisée sur la rs232 et une reinit si PB
    void    dtr(int state);              // permet de mettre un état sur la ligne DTR
    void    rts(int state);              // permet de mettre un état sur la ligne RTS
    int     init(void);                  // cherche les cartes branchées sur le PC
    void    close(void);                 // close serial port
	void	purge_rs232_rx(void); 		 // Supprime les caractères dans le tampon de réception
	void	purge_rs232_rxtx(void); 	 // Envoi de '0x00' + supprime les caractères dans le tampon de réception 
}; //Ne pas oublier le ';' 

class cSerial
{
    public:
    int     card_adr;     // adresse de la carte
    DCB     dcb;          // description de la liaison série
    HANDLE  hCom;         // handler sur la liaison série
    COMSTAT Status;       // pour voir si rx ok
    DWORD   buff[60];    // buffer pour la liaison série
    int     enable;       // le module rs232 est actif
    DWORD   tab_out[255]; // buffers images des registres du PIC
    DWORD   tab_in[255];  // "
            cSerial(void);                         // constructeur (desactive le module rs232)
    int     init(int card_adr_, int card_enable);  // cherche la carte
    void    import_tab_out(void);                  // copie les variables utilisateurs dans le registre image out
    void    maj(void);                             // enchaine: import, transfert, export
    int     transfer(void);                        // fait un transfert entre la carte et les registres images
    void    export_tab_in(void);                   // met à jour les variables utilisateurs en fonction du registre image in
}; //Ne pas oublier le ';'