// NuDAM.h: interface for the CNuDAM class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_NUDAM_H__5A82BCB0_D32F_44F1_8945_5E8F4BCC2D1B__INCLUDED_)
#define AFX_NUDAM_H__5A82BCB0_D32F_44F1_8945_5E8F4BCC2D1B__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "Scanner.h"
#include "Utility.h"
#include "SerialPort.h"

#ifdef  BUILD_COMMDLL
#define     COMMDLL_DLLCLASS    __declspec(dllexport)
#else
#define     COMMDLL_DLLCLASS    __declspec(dllimport)
#endif

class COMMDLL_DLLCLASS CNuDAM : public CScanner, CMyWait
{
public:
    bool    AO_6024_Readback(int nModuleID, int nPort, double &dOutput);
    bool    AO_6024(int nModuleID, int nPort, double dOutput);
    void    ReceiveComm(const char *cpcBuffer, int nSize);
    CString GetReceiveData();
    CNuDAM();
    virtual ~CNuDAM();

protected:
    CMutex m_mutexNuDAM;
    bool         SendMsg(CString csMsg, DWORD dwTimeout);
    virtual void DecodeReceiveData();

    HANDLE  m_hAck;
    CString m_csModuleID;   // ID for NuDAM module
    CString m_cs6024AOPort; // Analog output port (A, B, C, D) for 6024 module
    CString m_csCommand;
    CString m_csReplyAdd;
    CString m_csReplyData;
};

#endif // !defined(AFX_NUDAM_H__5A82BCB0_D32F_44F1_8945_5E8F4BCC2D1B__INCLUDED_)
