📄 tstdemdlg.cpp
字号:
int i=0;
//for(i=0;i<18;i++)
{
//-----Normal test--------
sprintf(szHeader,"%s,1,1,1,0,1",m_Phone);
sprintf(szMsg,"%s,%02d",m_ShortMsg,i);
MessageBox(szHeader);
MessageBox(szMsg);
int nRc=fnSendMsg(PortNo,szHeader,szMsg);
//-----WapPush test--------
//sprintf(szHeader,"%s,1,1,1,1,1",m_Phone);
//memset(szMsg,0,sizeof(szMsg));
//fnWapPushCvt("恭喜发财","wap.163.com",szMsg);
//int nRc=fnSendMsg(PortNo,szHeader,szMsg);
if((nRc>=0)&&(nRc<8)) {
csTmp.Format("提交成功,发送端口为:%d",nRc+1);
MessageBox(csTmp);
}else {
csTmp.Format("提交失败,错误代码 %d",nRc);
MessageBox(csTmp);
}
}
}
void CTstDemDlg::OnButRead()
{
int PortNo;
CString csTmp;
char szHeader[100]={0};
char szMsg[500]={0};
UpdateData(TRUE);
if(m_iComPort==8) PortNo=-1; //所有端口
else PortNo=m_iComPort; //端口1-8
int nRc=fnReadMsgEx(PortNo,szHeader,szMsg); //读信息
if((nRc==0)) {
int nRecType=atoi(szHeader);
int pno=atoi(szHeader+2);
switch(nRecType){
case 0:csTmp.Format("端口:%d, 类型:接收信息,参数:%s,信息:%s",pno+1,szHeader,szMsg); break;
case 1:csTmp.Format("端口:%d, 类型:发送成功报告,参数:%s,信息:%s",pno+1,szHeader,szMsg); break;
case 2:csTmp.Format("端口:%d, 类型:发送失败报告,参数:%s,信息:%s",pno+1,szHeader,szMsg); break;
case 3:csTmp.Format("端口:%d, 类型:发送失败超时1,参数:%s,信息:%s",pno+1,szHeader,szMsg); break;
case 4:csTmp.Format("端口:%d, 类型:发送失败超时2,参数:%s,信息:%s",pno+1,szHeader,szMsg); break;
case 5:csTmp.Format("端口:%d, 类型:取消发送,参数:%s,信息:%s",pno+1,szHeader,szMsg); break;
case 6:csTmp.Format("端口:%d, 类型:接收状态报告,参数:%s,信息:%s",pno+1,szHeader,szMsg); break;
default:
csTmp.Format("端口:%d, 类型:未知状态,参数:%s,信息:%s",pno+1,szHeader,szMsg); break;
break;
}
MessageBox(csTmp);
}else if(nRc==-1){
MessageBox("无信息");
}else{
csTmp.Format("接收失败,错误代码 %d",nRc);
MessageBox(csTmp);
}
}
CString GetSubStr(char *str, int nItem)
{
CString cst;
char szBuf[2048]={0};
int j;
int i=0;
int pos=0;
while(pos<nItem){
if(str[i]==0) return "";
if(str[i++]==',') pos++;
}
j=0;
while(str[i]){
if(str[i]==',')break;
szBuf[j++]=str[i++];
if(j>=2047) break;
}
cst=szBuf;
return cst;
}
void CTstDemDlg::OnButRead2()
{
int PortNo;
CString csTmp;
char szHeader[100]={0};
char szMsg[500]={0};
UpdateData(TRUE);
//AfxMessageBox("safds");
if(m_iComPort==8) PortNo=-1; //所有端口
else PortNo=m_iComPort; //端口1-8
int nRc=fnReadMsgExNotDelete(PortNo,szHeader,szMsg); //读信息
if((nRc==0)) {
int nRecType=atoi(szHeader);
int pno=atoi(szHeader+2);
int idx;
switch(nRecType){
case 0:{
csTmp.Format("端口:%d, 类型:接收信息,参数:%s,信息:%s",pno+1,szHeader,szMsg);
idx=atoi(GetSubStr(szHeader,10));
int rcc=fnDeleteSimMsg(pno,idx);
CString cst;
cst.Format("delete idx=%d,rcc=%d",idx,rcc);
AfxMessageBox(cst);
}
break;
case 1:csTmp.Format("端口:%d, 类型:发送成功报告,参数:%s,信息:%s",pno+1,szHeader,szMsg); break;
case 2:csTmp.Format("端口:%d, 类型:发送失败报告,参数:%s,信息:%s",pno+1,szHeader,szMsg); break;
case 3:csTmp.Format("端口:%d, 类型:发送失败超时1,参数:%s,信息:%s",pno+1,szHeader,szMsg); break;
case 4:csTmp.Format("端口:%d, 类型:发送失败超时2,参数:%s,信息:%s",pno+1,szHeader,szMsg); break;
case 5:csTmp.Format("端口:%d, 类型:取消发送,参数:%s,信息:%s",pno+1,szHeader,szMsg); break;
case 6:{
csTmp.Format("端口:%d, 类型:接收状态报告,参数:%s,信息:%s",pno+1,szHeader,szMsg);
idx=atoi(GetSubStr(szHeader,10));
int rcc=fnDeleteSimMsg(pno,idx);
CString cst;
cst.Format("delete idx=%d,rcc=%d",idx,rcc);
AfxMessageBox(cst);
}
break;
default:
csTmp.Format("端口:%d, 类型:未知状态,参数:%s,信息:%s",pno+1,szHeader,szMsg); break;
break;
}
MessageBox(csTmp);
}else if(nRc==-1){
MessageBox("无信息");
}else{
csTmp.Format("接收失败,错误代码 %d",nRc);
MessageBox(csTmp);
}
}
void CTstDemDlg::OnButClose()
{
int PortNo;
UpdateData(TRUE);
if(m_iComPort==8) PortNo=-1; //所有端口
else PortNo=m_iComPort; //端口1-8
int nRc=fnCloseModem(PortNo); //关闭端口
if(nRc==0) MessageBox("释放成功");
else {
CString csTmp;
csTmp.Format("释放失败,错误代码 %d",nRc);
MessageBox(csTmp);
}
}
void CTstDemDlg::OnDestroy()
{
//====------------------------------------------------
//释放DLL动态库
if(hInsDLL!=NULL)
FreeLibrary(hInsDLL);
//====------------------------------------------------
CDialog::OnDestroy();
}
void CTstDemDlg::OnTimer(UINT nIDEvent)
{
//====------------------------------------------------
//读取端口状态定时器
CString csTmp;
if(nIDEvent==1){
for(int i=0;i<8;i++){
int rc=fnGetStatus(i);
csTmp.Format("COM%d:%d",i+1,rc);
GetDlgItem(IDC_STS1+i)->SetWindowText(csTmp);
}
}
//====------------------------------------------------
CDialog::OnTimer(nIDEvent);
}
void CTstDemDlg::OnButReadQue()
{
//====------------------------------------------------
//读取发送缓冲区信息条数
int PortNo;
CString csTmp;
UpdateData(TRUE);
if(m_iComPort==8) PortNo=-1; //所有端口
else PortNo=m_iComPort; //端口1-8
int nRc=fnGetSndCount(PortNo); //
if(nRc>=0) csTmp.Format("发送缓冲区:%d",nRc);
else {
csTmp.Format("读取错误,端口号码错 %d",nRc);
}
MessageBox(csTmp);
//====------------------------------------------------
}
void CTstDemDlg::OnButReadRec()
{
//====------------------------------------------------
//读取接收缓冲区信息条数(包含发送结果)
int PortNo;
CString csTmp;
UpdateData(TRUE);
if(m_iComPort==8) PortNo=-1; //所有端口
else PortNo=m_iComPort; //端口1-8
int nRc=fnGetRecCount(PortNo); //
if(nRc>=0) csTmp.Format("接收缓冲区:%d",nRc);
else {
csTmp.Format("读取错误,端口号码错 %d",nRc);
}
MessageBox(csTmp);
//====------------------------------------------------
}
void CTstDemDlg::OnButClearQue()
{
//====------------------------------------------------
//清除发送缓冲区信息
int PortNo;
CString csTmp;
UpdateData(TRUE);
if(m_iComPort==8) PortNo=-1; //所有端口
else PortNo=m_iComPort; //端口1-8
int nRc=fnClrSndBuf(PortNo); //
if(nRc>=0) csTmp.Format("清除发送缓冲区:%d",nRc);
else {
csTmp.Format("清除错误,端口号码错 %d",nRc);
}
MessageBox(csTmp);
//====------------------------------------------------
}
void CTstDemDlg::OnButClearRec()
{
//====------------------------------------------------
//清除接收缓冲区信息
int PortNo;
CString csTmp;
UpdateData(TRUE);
if(m_iComPort==8) PortNo=-1; //所有端口
else PortNo=m_iComPort; //端口1-8
int nRc=fnClrRecBuf(PortNo); //
if(nRc>=0) csTmp.Format("清除接收缓冲区:%d",nRc);
else {
csTmp.Format("清除错误,端口号码错 %d",nRc);
}
MessageBox(csTmp);
//====------------------------------------------------
}
void CTstDemDlg::OnChangeSmsg()
{
// TODO: If this is a RICHEDIT control, the control will not
// send this notification unless you override the CDialog::OnInitDialog()
// function and call CRichEditCtrl().SetEventMask()
// with the ENM_CHANGE flag ORed into the mask.
// TODO: Add your control notification handler code here
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -