📄 hwmobile.h
字号:
// HwMobile.h: interface for the CHwMobile class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_HWMOBILE_H__799F4BF1_E829_4BFB_A78C_EB4642F19C1C__INCLUDED_)
#define AFX_HWMOBILE_H__799F4BF1_E829_4BFB_A78C_EB4642F19C1C__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// 添加 [多语言] 模块连接库信息
#define _USE_DllMultiLanguage 1
// 添加 [PublicFunc] 模块连接库信息
#define _USE_DllPublicFunc 1
// 添加 [DllHwCOM] 模块连接库信息
#define _USE_DllHwCOM 1
// 添加 [HwMysql] 模块连接库信息
#define _USE_DllMysqlConn 1
#undef PUBPRET_H
#include "global.h"
#include "PubPret.h"
#include <Afxtempl.h>
// 手机工作线程休息时间(毫秒)
#ifdef _DEBUG
#define MOBILE_THREAD_SLEEP_TIME 1000
#else
#define MOBILE_THREAD_SLEEP_TIME (3*1000)
#endif
#ifndef _2Lines
// 应答状态
#define GSM_UNKNOWN 0 // 不确定
#define GSM_OK 1 // OK
#define GSM_ERR -1 // ERROR
// 最大允许读写错误次数,超过这个次数就认为设备不存在了
#define MAX_RWERROR_TIMES 3
// 等待 GSM 模块回应数据的时间
#define WAIT_GSM_DATA_TIME_SLOW (10*WAIT_DATA_TIMEOUT)
#define WAIT_GSM_DATA_TIME_QUICK (3*WAIT_DATA_TIMEOUT)
// 最小手机号码长度
#define MIN_MOBILENO_LENGTH 7
// 当从手机中取到短信中心号码时调用这个回调函数来保存
typedef void (*FUNC_SaveSMSCFromGSM) ( LPCTSTR lpszSMSC );
//
// 电话本信息
//
typedef struct _phone_book
{
int nIndex;
char szName[16];
char szPhoneNO[PHONENO_LENGTH];
char szPhoneBookName[8];
} t_PhoneBook;
typedef CArray<t_PhoneBook, t_PhoneBook&> t_Ary_PhoneBook;
class DLL_INTERNAL CHwMobile : public CHwCOM
{
public:
FUNC_SaveSMSCFromGSM m_Proc_SaveSMSCFromGSM;
BOOL InsertPhoneBook ( LPCTSTR lpszName, LPCTSTR lpszPhoneNO, LPCTSTR lpszPhoneBookName );
char* Convert_SCTS2Standard ( char *szSCTS, char *szStandardTime, int nTimeSize );
BOOL Init ();
CHwMobile(LOG_FUNC ExternLog);
virtual ~CHwMobile();
inline void Enable_SoundPrompt ( BOOL bSoundPrompt=TRUE )
{
m_bSoundPrompt = bSoundPrompt;
}
char *DemandMobileInfo ( LPCTSTR lpszCmd, char *szOutBuf, int nOutSize );
BOOL GetSMSCNO ();
inline void SetModulePara ( int nComNO, int nBaudRate=0 )
{
if ( nComNO > 0 )
m_nComNO = nComNO;
if ( nBaudRate > 0 )
m_nBaudRate = nBaudRate;
}
inline CString RetrievesSMSC ()
{
return m_csSMSC;
}
protected:
BOOL QueryDeviceExist ();
CUIntArray m_UIntAry_NeedDelSMS;
virtual BOOL HandleRecvSMS ( SM_PARAM *pSMRecv );
virtual int Write ( LPCTSTR lpszData );
virtual int Read ( char *data, int size );
BOOL gsmReadMessageContent ( const char *szSMSFlag, char *szSupplement=NULL, const int nSupplementSize=0 );
BOOL gsmDeleteSMS ( int nIndex );
BOOL SendOneSMSPkt ( SM_PARAM *pSMSend );
virtual int HandleCOMRW(int nRet);
BOOL gsmReadPhoneBook ( LPCTSTR lpszPhoneBookName, t_Ary_PhoneBook *pAry_PhoneBook);
LOG_FUNC Log;
BOOL m_nInitOK;
// 接口信息
int m_nComNO;
int m_nBaudRate;
// 短信中心号码
CString m_csSMSC;
private:
BOOL QueryExistByRWCmd ();
BOOL m_bSoundPrompt;
void SMSBeep ( BOOL bRecv );
BOOL gmsGetPhoneBookInfo (
int &nStoreStartPos,
int &nStoreEndPos,
int &nMaxPhoneNOSize,
int &nMaxInfoSize,
int &nMaxRecSize
);
BOOL gsmGetAllPhoneBookRec ( int nMaxRecSize, int nMaxRecNum, LPCTSTR lpszPhoneBookName, OUT t_Ary_PhoneBook *pAry_PhoneBook );
BOOL gsmDecodeOnePhoneBook ( char *szPhoneBookRec, t_PhoneBook &PhoneBook );
int gsmDecodePhoneBook (
LPCTSTR lpszPhoneBookName,
char *szPhoneBookRec,
OUT t_Ary_PhoneBook *pAry_PhoneBook,
OUT char *szRemainData, // 处理后剩下的数据放到这里
const int nRemainSize
);
int gsmPhoneBookEncode (
OUT char *szPhoneBookRec,
int nPhoneBookRecSize,
IN LPCTSTR lpszType,
IN t_PhoneBook &PhoneBook
);
BOOL gsmSelectPhoneBook ( LPCTSTR lpszPhoneBookName );
int gsmParseOneMessage ( const char *szSMSFlag, char *szRecvedData, int nRecvedDataLen, SM_PARAM *pSMRecv );
int gsmParseMessage ( IN const char *szSMSFlag, IN char *szRecvedData, int nRecvedDataLen );
int gsmSerializeNumbers(const char* pSrc, char* szDst, int nSrcLength, int nDstSize);
int gsmDecodePdu ( char* pSrc, int &nHandleBytes, SM_PARAM* pDst);
BOOL ReadResponse ( LPCTSTR lpszResponse, BOOL bQuick=TRUE, char *szAns=NULL, int nSize=0 );
BOOL gsmInit();
int gsmString2Bytes(const char* pSrc, unsigned char* szDst, int nSrcLength, int nDstSize);
int gsmEncode8bit(const char* pSrc, unsigned char* szDst, int nSrcLength, int nDstSize);
int gsmDecode8bit(const unsigned char* pSrc, char* szDst, int nSrcLength, int nDstSize);
int gsmEncodeUcs2(const char *pSrcByte, unsigned char *szDst, int nSrcLength, int nDstSize, WCHAR *wzSrc=NULL );
int gsmDecodeUcs2(
const unsigned char* pSrc,
char* szDst,
int nSrcLength,
int nDstSize,
WCHAR* wzSMSContent_Wide=NULL,
int nWideSize=0
);
int gsmEncode7bit(const char* pSrc, unsigned char* szDst, int nSrcLength, int nDstSize);
int gsmDecode7bit(const unsigned char* pSrc, char* szDst, int nSrcLength, int nDstSize);
int gsmInvertNumbers(const char* pSrc, char* szDst, int nSrcLength, int nDstSize);
int gsmBytes2String(const unsigned char *pSrc, char *szDst, int nSrcLength, int nDstSize);
int gsmEncodePdu(const SM_PARAM *pSrc, char *szDst, int nDstSize );
int gsmSendMessage(SM_PARAM* pSrc);
};
#endif
#endif // !defined(AFX_HWMOBILE_H__799F4BF1_E829_4BFB_A78C_EB4642F19C1C__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -