QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 725|回复: 9

求助!!!!

[复制链接]
发表于 2004-7-29 15:19:48 | 显示全部楼层 |阅读模式
从终端设备向蜂窝电话发送短消息

使用Visual Basic来发送SMS文本到Nokia电话
Set up the communications port
MSComm1.CommPort = 1 ' Com Port 1

' Set for 9600 baud, no parity, 8 data, and 1 stop bit.
MSComm1.Settings = "9600,N,8,1"

' Tell the control to read entire buffer when Input is used
MSComm1.InputLen = 0

' Open the port
MSComm1.PortOpen = True

' Send an 'AT' command to the phone
MSComm1.Output = "AT" & Chr$(13) & Chr(10)
' The phone will respond with an 'OK'

' Set up the phone for a text message
MSComm1.Output = "AT+CMGF=1" & Chr$(13) & Chr(10)
' The phone will respond with an 'OK'

' Prep for SMS, give destination type and destination address.
' Enter the destination type and destination address to prep for SMS
' e.g. AT+CMGS="+2145551212",129
MSComm1.Output = "AT+CMGS= " & Chr(34) & "+2145551212" & Chr(34) & ",129" & Chr$(13) & Chr(10)
' The phone will return a'>' prompt, and await entry of the SMS message text.

' Now send the text to the phone and terminate with (Ctrl-Z)
MSComm1.Output = "This is a test. WOW! "
' The phone will respond with a conformation containing the 'message reference number' eg. +CMGS:

' Close the port
MSComm1.PortOpen = False


怎么用C语言写啊!!!
发表于 2004-7-29 15:43:04 | 显示全部楼层
VC还是linux下的C?
回复

使用道具 举报

 楼主| 发表于 2004-7-29 15:56:27 | 显示全部楼层
linux下的C
回复

使用道具 举报

 楼主| 发表于 2004-7-29 15:57:08 | 显示全部楼层
[quote:b5a94a1ed4="llc"]VC还是linux下的C?[/quote]
兄弟帮帮忙
回复

使用道具 举报

发表于 2004-7-29 17:13:56 | 显示全部楼层
打开串口:
fd = open("/dev/ttyS0", O_RDWR | O_NOCTTY | O_NDELAY ); //打开COM1


初始化串口:
int setup_com(int fd){
struct termios options;
tcgetattr(fd, &options);
/* Set the baud rates to 9600...*/
cfsetispeed(&options, B9600);
cfsetospeed(&options, B9600);
/* Enable the receiver and set local mode...*/
options.c_cflag |= (CLOCAL | CREAD);
/* Set c_cflag options.*/
options.c_cflag &= ~PARENB; //无校验
options.c_cflag &= ~PARODD;
options.c_cflag &= ~CSTOPB; //1个停止位
options.c_cflag &= ~CSIZE;
options.c_cflag |= CS8; //8个数据位
/* Set c_iflag input options */
options.c_iflag &=~(IXON | IXOFF | IXANY);
options.c_iflag &=~(INLCR | IGNCR | ICRNL);
options.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG);
/* Set c_oflag output options */
options.c_oflag &= ~OPOST; //RAW数据模式
/* Set the timeout options */
options.c_cc[VMIN] = 0;
options.c_cc[VTIME] = 0;
tcsetattr(fd, TCSANOW, &options); //设置COM参数并立即生效
return 1;
}

其中:
c_cflag : 控制选项
c_lflag : 线选项
c_iflag : 输入选项
c_oflag :输出选项
c_cc :控制字符
c_ispeed :输入数据波特率
c_ospeed :输出数据波特率
c_cflag: CLOCAL 本地模式,不改变端口的所有者
CREAD 表示使能数据接收器
PARENB 表示偶校验
PARODD 表示奇校验
CSTOPB 使用两个停止位
CSIZE 对数据的bit使用掩码
CS8 数据宽度是8bit
c_lflag: ICANON 使能规范输入,否则使用原始数据(本文使用)
ECHO 回送(echo)输入数据
ECHOE 回送擦除字符
ISIG 使能SIGINTR,SIGSUSP, SIGDSUSP和 SIGQUIT 信号
c_iflag: IXON 使能输出软件控制
IXOFF 使能输入软件控制
IXANY 允许任何字符再次开启数据流
INLCR 把字符NL(0A)映射到CR(0D)
IGNCR 忽略字符CR(0D)
ICRNL 把CR(0D)映射成字符NR(0A)
c_oflag: OPOST 输出后处理,如果不设置表示原始数据(本文使用原始数据raw)
c_cc[VMIN]: 最少可读数据
c_cc[VTIME]: 等待数据时间(10秒的倍数)

write(fd,"AT\015\012",4 );
write(fd,"AT+CMGF=1\015\012",11 );
write(fd,"AT+CMGS=\042+2145551212\042,129\015\012", 27);
write(fd,"This is a test. WOW!",19);

close(fd);

大概是这样
回复

使用道具 举报

 楼主| 发表于 2004-7-29 17:39:24 | 显示全部楼层
谢谢啊!!
以后多多请教了。
兄弟的QQ是多少啊!
以后还有很多问题问你呢!!1
回复

使用道具 举报

 楼主| 发表于 2004-7-29 17:42:33 | 显示全部楼层
[quote:f2f845e465="25065290"]linux下的C[/quote]
但还是有写看不懂。
回复

使用道具 举报

 楼主| 发表于 2004-7-29 17:45:54 | 显示全部楼层
高手  nwrite为什么不用这个呢!!
回复

使用道具 举报

 楼主| 发表于 2004-7-29 18:18:47 | 显示全部楼层
O_RDWR | O_NOCTTY | O_NDELAY怎么解释
回复

使用道具 举报

 楼主| 发表于 2004-7-30 00:55:01 | 显示全部楼层
用C编程啊!!
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-11-7 17:53 , Processed in 0.090977 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表