#include "string"
#include "iostream"
#include "windows.h"
using namespace std;
const int COM_RCV_ERR = -1;
const int COM_RCV_EXCEED_MAX_SIZE = -2;
const int COM_NOT_RCV_COMPLETE = -3;
const int MODEM_SENT_COMMAND_STATE = 0;
const int MODEM_RCV_REPORT_STATE = 1;
const int MODEM_COMMAND_STATE = 0;
const int MODEM_RCV_STATE = 1;
const int MODEM_TRAN_STATE = 2;
const int MODEM_FULL_STATE = 3;
class CModem
{
public:
void record();
int RcvCmdResponse(char *rcv, int size);
void RcvProcessReport();
static void RcvReport(void *p);
bool WaitReport();
int RecieveBytes(char *rcv, int size);
bool SendCommand(const char *command);
bool InitalModem(int com_port);
CModem();
virtual ~CModem();
private:
volatile int m_modemState;
volatile int m_modemSendCmdState;
volatile int m_ringNumber;
HANDLE m_handle;
void SetTimeout();
};
#endif __MODEM_H__
// Modem.cpp: implementation of the CModem class.
//
//////////////////////////////////////////////////////////////////////