首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • MC55连接TCP 发送数据的问题 [已结贴,结贴人:zheng11117]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zheng11117
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 揭帖率:
    发表于:2008-08-18 16:45:00 楼主
    请教有关MC55连接TCP 发送数据的问题:
    各位大侠,我在用西门子的MC55做数据传输,现在首先要进行TCP连接,已经可以登陆GPRS网了(因为已经可以获得从网络分配的ip),我测试的步骤如下

    at^sics=0,conType,GPRS0

    at^sics=0,passwd,gprs

    at^sics=0,user,cm

    at^sics=0,apn,cmnet

    at^siss=1,srvType,socket

    at^siss=1,conId,0

    at^siss=1,address,"socktcp://116.217.160.243:6000"

    AT^SISO=1

    在建立了TCP,连接,在超级终端里测试成功如:
    ^SISW: 0, 1
    at^SISW=0,15
    A
    ^SISW: 0, 15
    123456789012345

    OK
    向服务器写数据,然后服务器接收到的数据是123456789012345,表示成功:
    但我用代码写AT命令模拟超级终端测试.
    但不知怎的,服务器总是接收不到123456789012345数据.

    write(fd,"at^SISW=0,15\r",13);
    char send_data = "123456789012345\r"
    write(fd,send_data,15);
    我能确实write(fd,"at^SISW=0,15\r",13);这步能成功,并返回^SISW: 0, 15,但服务器接收不到123456789012345数据,
    那位高手帮我指点一下,看是那里的问题? 急急要解决..

    给上100分.


    100  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • wxf0204
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 2

    发表于:2008-08-19 09:19:151楼 得分:0
    你命令之间要有一些延时。。。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zheng11117
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-19 09:30:432楼 得分:0
    不是这个原因,我从sleep(1),一直试过十都不行.结果是一样.是不是要转回数据模式的?或是有什么特定格式.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zheng11117
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-20 09:13:183楼 得分:0
    怎么没人回答的,狂晕..
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jeffery223
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-20 11:26:234楼 得分:10
    char send_data = "123456789012345\r"
    write(fd,send_data,15);
    这个不对吧?
    加上\r应该是16个字符!
    char send_data = "123456789012345\r"
    write(fd,send_data,16);
    你在请求发送空间时最好开辟大一点比如256.
    at^SISW=0,256
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zheng11117
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-20 13:48:215楼 得分:0
    问题不是在你这,对字数进行调整了很多次,多于,小于,等于,都不行.是不是后面不是'\r'的,还其它格式的.
    at^SISW=0,256 他要发送256个数据,在终端里必须要到达256个数据才能发送的,不是空间开的大小问题.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zheng11117
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-21 09:13:376楼 得分:0
    怎么人气那么差.高手都跑去那里了?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • wxf0204
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 2

    发表于:2008-08-21 09:21:367楼 得分:10
    你先单独发送那15个数据然后延时一下再来发送回车看看行不行。。。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • leitianjun
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-21 17:45:588楼 得分:0
    帮顶,路过!!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zheng11117
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-25 16:36:279楼 得分:0
    晕..
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jeffery223
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-25 18:34:0410楼 得分:80
    你需要定义一个接收MC55模块返回数据的数组比如GprsBuf,然后修改如下:

    char send_data = "123456789012345\r"
    write(fd,"at^SISW=0,15\r",13);
    delay();
    if(strstr((char*)GprsBuf, "^SISW: 0,15"))
      //strstr()为库函数,字符串索引函数,如何MC55返回^SISW: 0,  15 ,说明可以写数据了
    write(fd,send_data,15);
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • xinyios
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-09-23 15:00:5711楼 得分:0
    通信模块应用
    大家一起交流,MSN;pualhuang@hotmail.com
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved