//////////////////////////////////////////////////////////////// // Technomaint 2004 (c) SofTech di Germinara Francesco 2000,2004 // www.germinara.it info@germinara.it // Story: // //////////////////////////////////////////////////////////////// // Checked Version: 6/5/2004 //////////////////////////////////////////////////////////////// #pragma once #include "sicommctrl1.h" #include"CGsmAtCommand.h" #include"CGsmAtCommands.h" #include "afxcmn.h" #include "CMclMutex.h" #include "CMclSharedMemory.h" //************************************************************************ // Comm Port Constants //************************************************************************ const int COMM1 = 0; const int COMM2 = 1; const int COMM3 = 2; const int COMM4 = 3; const int COMM5 = 4; const int COMM6 = 5; const int COMM7 = 6; const int COMM8 = 7; const int COMM9 = 8; const int COMM10 = 9; const int COMM11 = 10; const int COMM12 = 11; const int COMM13 = 12; const int COMM14 = 13; const int COMM15 = 14; const int COMM16 = 15; //************************************************************************ // Baud Rate Constants //************************************************************************ const int Baud150 = 0; const int Baud300 = 1; const int Baud600 = 2; const int Baud1200 = 3; const int Baud2400 = 4; const int Baud4800 = 5; const int Baud9600 = 6; const int Baud192K = 7; const int Baud384K = 8; const int Baud576K = 9; const int Baud1152K = 10; //************************************************************************ // Parity Constants //************************************************************************ const int ParityNone = 0; const int ParityOdd = 2; const int ParityEven = 1; const int ParityMark = 3; const int ParitySpace = 4; //************************************************************************ // Stopbit Constants //************************************************************************ const int StopBit1 = 0; const int StopBit2 = 1; //************************************************************************ // Wordlength Constants //************************************************************************ const int WordLen5 = 0; const int WordLen6 = 1; const int WordLen7 = 2; const int WordLen8 = 3; //************************************************************************ // Handshaking Constants //************************************************************************ const int NoHandShaking = 0; //No handshaking const int XonHandShaking = 1; //XON / XOFF handshaking const int CTSHandShaking = 2; //CTS / RTS handshaking const int DSRHandShaking = 3; //DSR / DTR handshaking const int LocalCtsRemoteXon = 4; //Local uses CTS/RTS Remote uses XON/XOFF const int LocalCtsRemoteDsr = 5; //Local uses CTS/RTS Remote uses DSR/DTR const int LocalCtsRemoteNon = 6; //Local uses CTS/RTS Remote uses None const int LocalXonRemoteCts = 7; //Local uses XON/XOFF Remote uses CTS/RTS const int LocalXonRemoteDsr = 8; //Local uses XON/XOFF Remote uses DSR/DTR const int LocalXonRemoteNon = 9; //Local uses XON/XOFF Remote uses None const int LocalDsrRemoteCts = 10; //Local uses DSR/DTR Remote uses CTS/RTS const int LocalDsrRemoteXon = 11; //Local uses DSR/DTR Remote uses XON/XOFF const int LocalDsrRemoteNon = 12; //Local uses DSR/DTR Remote uses None const int LocalNonRemoteCts = 13; //Local uses None Remote uses CTS/RTS const int LocalNonRemoteDsr = 14; //Local uses None Remote uses DSR/DTR const int LocalNonRemoteXon = 15; //Local uses None Remote uses XON/XOFF //************************************************************************ // File Transfer Protocol Constants //************************************************************************ const int Xmodem = 0; const int Xmodem1K = 1; const int Ymodem = 2; const int YmodemBatch = 3; const int YmodemG = 4; const int YmodemGBatch = 5; const int Zmodem = 6; const int XmodemChkSum = 7; //************************************************************************ // Modem Handling Constants //************************************************************************ const int ModemConnectSuccess = 0; const int ModemNoResponse = -2; const int ModemNoDialTone = -3; const int ModemNumberBusy = -4; //************************************************************************ // DTR/RTS Open Port Constants //************************************************************************ const int SignalRaise = 0; const int SignalDrop = 1; const int SignalNoChange = 2; //************************************************************************ // CardType Constants //************************************************************************ const int CardWinApi = 0; const int CardWcscVxD = 1; //************************************************************************ // CommTick Constants //************************************************************************ const int CommTickDefault = 0; const int CommTickMilliSecond = 1; //************************************************************************ // CommEvent Codes //************************************************************************ const int BreakEvt = 0; const int FrameErr = 1; const int ParityErr = 2; const int OverRunErr = 3; const int DCDEvt = 4; const int CTSEvt = 5; const int RIEvt = 6; const int DSREvt = 7; const int RxAlertEvt = 8; const int TxAlertEvt = 9; const int WaitDCDOn = 10; const int WaitDCDOff = 11; const int WaitCTSOn = 12; const int WaitCTSOff = 13; const int WaitDSROn = 14; const int WaitDSROff = 15; const int WaitRIOn = 16; const int WaitRIOff = 17; const int WaitRxChar = 18; const int WaitTxChar = 19; const int WaitDCDOnTimeOut = 0x1000 | WaitDCDOn; const int WaitDCDOffTimeOut = 0x1000 | WaitDCDOff; const int WaitCTSOnTimeOut = 0x1000 | WaitCTSOn; const int WaitCTSOffTimeOut = 0x1000 | WaitCTSOff; const int WaitDSROnTimeOut = 0x1000 | WaitDSROn; const int WaitDSROffTimeOut = 0x1000 | WaitDSROff; const int WaitRIOnTimeOut = 0x1000 | WaitRIOn; const int WaitRIOffTimeOut = 0x1000 | WaitRIOff; const int WaitRxCharTimeOut = 0x1000 | WaitRxChar; const int WaitTxCharTimeOut = 0x1000 | WaitTxChar; // CDlgModemGSM dialog class CDlgModemGSM : public CDialog { DECLARE_DYNAMIC(CDlgModemGSM) public: CDlgModemGSM(CWnd* pParent = NULL); // standard constructor virtual ~CDlgModemGSM(); int m_nDelay; BOOL m_bComOk; int nCntCheckMsg; //Counter for send SMS int nFireSMS; //When the value is 0 Send SMS int m_tmCheckSMS; //Timer CGsmAtCommands m_GsmAtCommands; //Commandi AT GSM Supportati // Dialog Data enum { IDD = IDD_DLG_MODEM_GSM }; protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support DECLARE_MESSAGE_MAP() public: BOOL m_bModemOK; CString ReceiveData(); //Receive Command String Result BOOL SendData(CString strCmd); //FALSe=Data transmitted TRUE=Fail to transmit data void CheckResult(CString strResult,CString& strCmdId,CString& strValue,CString& strErr); //Check return code after a AT command is issue CString GetStrVal(CString& strResult); //Parse single value void CloseComPort(); BOOL OpenComPort(); BOOL SendSimpleCmdToPhone(CString cmd,CString& result); void InitModem(); void SendSMS(CString numTel,CString text); void ReadSMS(CString& numTel,CString& text); void StartUp(); //CALL BEFORE USE ANY MODEM COMMAND!!! CString rxGetCommand(); //Leggo il comando... CString rxGetData(); //Leggo i dati ... CString rxGetCRLF(); //Leggo CRLF CString NewReceiveData(); BOOL m_bTimeOut; //TRUE=Time Out occurred BOOL CheckDataInRX(); //TRUE=There are data in rx buffer void UpdateDataBuffer(CString str, CString& txBuffer); CMclMutex *pMutex; //Semaforo void AcquireMUX(); //Temp variables CString strID; CString strSTS; CString strNumTel; CString strDate; CString strTime; // //Comunicazione Seriale CSicommctrl1 m_siComm; CString m_strProduttore; CString m_strModello; CString m_strCommand; CString m_strResponse; CString m_strError; CString m_strTxBuffer; CString m_strRxBuffer; afx_msg void OnBnClickedBtnInvia(); virtual BOOL OnInitDialog(); CProgressCtrl m_prgBarIndSegnale; CString m_strOperatore; CString m_strInfoSeriale; protected: virtual void OnOK(); virtual void OnCancel(); public: afx_msg void OnTimer(UINT nIDEvent); };