ClassTwo.h
上传用户:glass0516
上传日期:2010-01-11
资源大小:104k
文件大小:3k
源码类别:

传真(Fax)编程

开发平台:

Visual C++

  1. /*****************************************************************************
  2. * RelayFax Open Source Project
  3. * Copyright 1996-2004 Alt-N Technologies, Ltd.
  4. * All rights reserved.
  5. *
  6. * Redistribution and use in source and binary forms, with or without
  7. * modification, are permitted only as authorized by the RelayFax Open 
  8. * Source License.  A copy of this license is available in file LICENSE 
  9. * in the top-level directory of the distribution.
  10. *
  11. * RelayFax is a registered trademark of Alt-N Technologies, Ltd.
  12. *
  13. * Individual files and/or contributed packages may be copyright by
  14. * other parties and subject to additional restrictions.
  15. *****************************************************************************/
  16. ////////////////////////////////////////////////////////////////////////////////
  17. //
  18. // The purpose of CClassTwo is contain the protocol specifics of EIA
  19. // fax modem class 2
  20. //
  21. ////////////////////////////////////////////////////////////////////////////////
  22. #ifndef CLASSTWO_H
  23. #define CLASSTWO_H
  24. #include "Modem.h"
  25. class CClassTwo : public CModem  
  26. {
  27. public:
  28. CClassTwo();
  29. virtual ~CClassTwo();
  30. enum PhaseAStates { STATE_SET_PARAMS, // sending states
  31. STATE_SET_CSID,
  32.     STATE_DIALING };
  33. enum PhaseBStates { STATE_SENDING, // sending states
  34.     STATE_RECEIVING,
  35. STATE_RESET_PARAMS };
  36. enum PhaseEStates { STATE_WAIT_FOR_OK,
  37.                     STATE_WAIT_FOR_FK_RESP };
  38. virtual bool OnWaitTimeout( void );
  39. // methods overridden from CCommPort
  40. virtual void OnConnect(void);
  41. virtual bool OnDisconnect(void);
  42. virtual void OnWrite(void);
  43. virtual void OnReadLine(void);
  44. // methods overridden from CModem
  45. virtual void OnSendFaxMsg(MSG* pMsg);
  46. virtual void OnRecvFaxMsg(MSG* pMsg);
  47. virtual void OnAbortFaxMsg(void);
  48. virtual void OnHDLCFrame(void);
  49. virtual void OnPartialHDLCFrame(void);
  50. virtual void OnTimer( UINT nID );
  51. virtual void Abort( bool bUserCancelled );
  52. virtual void CheckTimeouts( DWORD dwInActive );
  53. void SetState( int nNewState, int nNewPhaseState = 0 );
  54. // int ParseFaxParams( int nMaxParams );
  55. protected:
  56. void PhaseInit(void);
  57. void PhaseIdle(void);
  58. void PhaseRinging(void);
  59. void PhaseA(void);
  60. void PhaseB(void);
  61. void PhaseC(void);
  62. void PhaseD(void);
  63. void PhaseE(void);
  64. void OnDIS(void);
  65. void OnCSI(void);
  66. // void OnCFR(void);
  67. // void OnMCF(void);
  68. // void OnRTP(void);
  69. // void OnRTN(void);
  70. // void OnFTT(void);
  71. void OnDCS(void);
  72. void OnTSI(void);
  73. void OnEOP(void);
  74. void OnEOM(void);
  75. void OnMPS(void);
  76. // void OnDCN(void);
  77. // void OnPPS(void);
  78. // void OnPPR(void);
  79. // void OnRNR(void);
  80. // void OnRR(void);
  81. // void OnCRP(void);
  82. void OnNSF(void);
  83. void OnNSS(void);
  84. // void OnCTC(void);
  85. // void OnCTR(void);
  86. // void OnEOR(void);
  87. // void OnERR(void);
  88. void OnFPTS(void);
  89. void OnFET(void);
  90. void OnFHNG(void);
  91. int m_nPhaseState;
  92. int m_nLoopCtr;
  93. int m_nPPRCtr;
  94. // Init sequence
  95. void SetLocalID(void);
  96. void SetRecv(void);
  97. void SetBitOrder(void);
  98. void SetFaxParams( bool bSending );
  99. void VerifyOptions(void);
  100. bool m_bGotEOP;
  101. bool m_bGotMPS;
  102. bool m_bGotEOM;
  103. bool m_bGotDIS;
  104. bool m_bGotDCS;
  105. bool m_bResendFaxParams;
  106. bool m_bFirstFrame;
  107. int m_nScanTime;
  108. WORD m_wMinLineChars;
  109. };
  110. #endif // CLASSTWO_H