11607|21

4996

帖子

19

TA的资源

裸片初长成(初级)

楼主
 

德国西门子工业GSM模块TC35i 发短信上位机和详细资料 加开发 [复制链接]

德国西门子工业GSM模块TC35i 发短信上位机和详细资料 加开发.rar

2.13 MB, 下载次数: 2399

最新回复

好到西  详情 回复 发表于 2015-5-30 12:06
点赞 关注
个人签名我的博客
 

回复
举报

2641

帖子

0

TA的资源

五彩晶圆(中级)

沙发
 
谢谢分享,看来 zhaojun_xf最近都在找短信方面的资料哈
 
 

回复

4996

帖子

19

TA的资源

裸片初长成(初级)

板凳
 
是的,一种一种找,不过大家有的,能共享就好了。
个人签名我的博客
 
 
 

回复

640

帖子

0

TA的资源

五彩晶圆(初级)

4
 

可以先找到可用的短信模块,一般都是串口的。然后学习一下短信模块的命令就可以用了。

我以前是直接接到PC上用的。

[ 本帖最后由 zhdphao 于 2010-7-25 08:10 编辑 ]
 
 
 

回复

640

帖子

0

TA的资源

五彩晶圆(初级)

5
 
这是我以前写的短信程序,VC++的,简单改动一下MCU应该没问题。
int CChangefiberDlg::sendmessage(int cmd,char *message,char *telephone)
{        //cmd=0,短信发送;=1,得中心号码;
        try
        {
                if (cmd==0)
                {
                        if (centertype<=2)
                        {        //如果centertype为零说明还没有初始化短信猫,为1说明正在初始化短信猫
                                //为2说明无法无法找到短消息中心!
                                return -1;
                        }

                        //获得短消息中心号码头
                        char tmpchar[640];
                        strcpy(tmpchar,"08");
                        itoa(centertype,tmpchar+strlen(tmpchar),16);
                        if (*messagecenter=='+')
                        {
                                strcpy(messagecenter,messagecenter+1);
                        }
                        int tmpint = gsmInvertNumbers(messagecenter,tmpchar+strlen(tmpchar),strlen(messagecenter));
                        int touchang=strlen(tmpchar);
                        strcpy(tmpchar+strlen(tmpchar),"11000d91");

                        char ttmp[32];
                        if (strlen(telephone)<13)
                        {
                                strcpy(ttmp,"86");
                                strcpy(ttmp+strlen(ttmp),telephone);
                               
                                strcpy(telephone,ttmp);
                        }
                       
                        gsmInvertNumbers(telephone,tmpchar+strlen(tmpchar),strlen(telephone));
                        strcpy(tmpchar+strlen(tmpchar),"000800");

                        CString neirong=message;
                        BSTR bstr1=neirong.AllocSysString();

                        //char my[64];
                        char *p=(char*)bstr1;
                        int nLen = SysStringLen(bstr1);
                        if (nLen*2<16)
                                        strcpy(tmpchar+strlen(tmpchar),"0");
                        itoa(nLen*2,tmpchar+strlen(tmpchar),16);
                        for (int i=0;i                         {
                                if ((BYTE)*(p+i*2+1)<16)
                                        strcpy(tmpchar+strlen(tmpchar),"0");
                                itoa((BYTE)*(p+i*2+1),tmpchar+strlen(tmpchar),16);
                                if ((BYTE)*(p+i*2)<16)
                                        strcpy(tmpchar+strlen(tmpchar),"0");
                                itoa((BYTE)*(p+i*2),tmpchar+strlen(tmpchar),16);
                        }
                        *(tmpchar+strlen(tmpchar)+1)=0;
                        *(tmpchar+strlen(tmpchar))=0x1a;

                        //int nlene=WideCharToMultiByte(CP_ACP,0,bstr1,nLen,NULL,NULL,NULL,NULL);
                        //memcpy(my,p,nLen*2);
                        //FreeSysString(bstr1);
                        SysFreeString(bstr1);
                        int pdulength=strlen(tmpchar)-1-touchang;

                        char tmppdu[512];
                        strcpy(tmppdu,tmpchar);

                        CString aaa="";
                        m_com.SetPortOpen(TRUE);
                        //m_com.SetSettings("9600,n,8,1");
                        VARIANT rcv;
                        rcv.vt = VT_BSTR;
                        strcpy(tmpchar,"AT+CMGS=");
                        itoa(pdulength/2,tmpchar+strlen(tmpchar),10);
                        strcpy(tmpchar+strlen(tmpchar),"\r");
                        aaa=tmpchar;
                        rcv.bstrVal = aaa.AllocSysString(); //,strlen(tmpchar));
                        //SysAllocStringByteLen("set pointer error",18);
                        m_com.SetOutput(rcv);

                        tmpint=0;
                        while (aaa.Find(">")<0 && tmpint<50)
                        {
                                Sleep(20);
                                rcv = m_com.GetInput();
                                aaa = aaa + CString(rcv.bstrVal);
                                tmpint++;
                        }
                        aaa=tmppdu;
                        rcv.bstrVal = aaa.AllocSysString();
                        m_com.SetOutput(rcv);

                        tmpint=0;
                        while (aaa.Find("OK")<0 && aaa.Find("ERROR")<0 && tmpint<200)
                        {
                                Sleep(20);
                                rcv = m_com.GetInput();
                                aaa = aaa + CString(rcv.bstrVal);
                                tmpint++;
                        }
                        if (aaa.Find("OK")>0)
                        {
                                strcpy(tmpchar,"短信发送成功");
                                m_msgstatus.SetWindowText(tmpchar);
                        }
                        else
                        {
                                strcpy(tmpchar,"短信发送失败");
                                m_msgstatus.SetWindowText(tmpchar);
                        }

                       
                        m_com.SetPortOpen(FALSE);
                        return 0;
                }
                else if (cmd==1)
                {
                        int tmpint=0;
                        CString aaa="";
                        m_com.SetPortOpen(TRUE);
                        m_com.SetSettings("9600,n,8,1");
                        VARIANT rcv;
                        rcv.vt = VT_BSTR;
                        rcv.bstrVal  =  ::SysAllocString(L"AT+CSCA?\r");
                        m_com.SetOutput(rcv);
                        //Sleep(1000);
                        while (aaa.Find("OK")<0 && aaa.Find("ERROR")<0 && tmpint<50)
                        {
                                Sleep(20);
                                rcv = m_com.GetInput();
                                aaa = aaa + CString(rcv.bstrVal);
                                tmpint++;
                        }


                        //rcv.vt
                        int a=aaa.Find("+CSCA: \"");
                        char aaaa[640];
                        strcpy(aaaa,aaa);
                        if (a>=0)
                        {
                                strcpy(aaaa,aaaa+a+8);
                                aaa=aaaa;
                                a=aaa.Find("\",");
                                aaaa[a]=0;
                                //已找到短消息中心
                                strcpy(messagecenter,aaaa);
                                strcpy(aaaa,aaaa+a+2);
                                aaa=aaaa;
                                a=aaa.Find("\r");
                                aaaa[a]=0;
                                //短消息中心格式(国内(A1)国际(91)
                                centertype=atoi(aaaa);
                                m_msgstatus.SetWindowText(messagecenter);
                        }       
                        else
                        {
                                m_msgstatus.SetWindowText("无法找到短消息中心!");
                                centertype=2;
                        }

                        m_com.SetPortOpen(FALSE);
                        return 0;
                }
                else
                {
                        return -1;
                }
               
        }
        catch(COleDispatchException* e)
        {
                //m_msgstatus.SetWindowText("无法打开串口");
                m_msgstatus.SetWindowText(e->m_strDescription);
                return -1;
        }
        return -1;
}
 
 
 

回复

107

帖子

0

TA的资源

一粒金砂(中级)

6
 
这个是好东西啊。。
个人签名haha
 
 
 

回复

21

帖子

0

TA的资源

一粒金砂(初级)

7
 
感谢!
个人签名学习是我一生的追求!
 
 
 

回复

4138

帖子

0

TA的资源

五彩晶圆(中级)

8
 

回复 楼主 zhaojun_xf 的帖子

谢谢楼主俺收了哈哈哈,好东西呼呼呼
 
 
 

回复

21

帖子

0

TA的资源

一粒金砂(高级)

9
 
最近也在弄这个,和单片机一起用的,谢了,呵呵
 
 
 

回复

17

帖子

0

TA的资源

一粒金砂(初级)

10
 
最近对此感兴趣。下载了。谢谢lz
 
 
 

回复

888

帖子

3

TA的资源

五彩晶圆(初级)

11
 
在学校已经申报了一个项目,是基于GSM的防盗报警系统,感谢楼主啊!
个人签名邮箱:ternence.hsu@foxmail.com
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

12
 
好东西,非常感谢分享!
 
 
 

回复

273

帖子

0

TA的资源

纯净的硅(中级)

13
 
感谢分享,收了!
 
 
 

回复

888

帖子

3

TA的资源

五彩晶圆(初级)

14
 
前几天玩的时候,用电脑串口调试Ok,但是用单片机串口测试失败了,麻烦啊
个人签名邮箱:ternence.hsu@foxmail.com
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

15
 
谢谢楼主分享
 
 
 

回复

9

帖子

0

TA的资源

一粒金砂(初级)

16
 
谢谢楼主,最近看智能家居通信方面,谢谢,哈哈
 
 
 

回复

9

帖子

0

TA的资源

一粒金砂(初级)

17
 

HUIFU

HAODONGXI

 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

18
 
感谢!
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

19
 
好东西
 
 
 

回复

176

帖子

0

TA的资源

一粒金砂(中级)

20
 
谢谢共享,
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表