因为公司现在需要开发一套CallCenter系统,需要客户来电的时候能够自动从数据库中检索出相关的资料,所以我打算用C#+MSCOMM来开发,但是由于是第一次开发所以有些不知道怎么下手。
比如:
在Form_Load里面我是这么写的
axMSComm1.CommPort = System.Convert.ToInt16(1);
axMSComm1.Settings = "9600,N,8,1";
if (!axMSComm1.PortOpen)
axMSComm1.PortOpen = true; //打开串口
axMSComm1.InputLen = 0; //清除接收缓冲区
axMSComm1.DTREnable = true; //置DTR有效
axMSComm1.RTSEnable = true; //置RTS有效
axMSComm1.InputMode = MSCommLib.InputModeConstants.comInputModeText;
axMSComm1.RThreshold = 1; //设置为接收缓冲区每接收一个字符将引发一次OnComm事件
这样的话是不是设置就ok了?
每次只要Modem所在的Com1口有信号进来,我如下来处理
private void axMSComm1_OnComm(object sender, System.EventArgs e)
{
string strTel=this.axMSComm1.Input;
}
就可以提取到每次相应的信息了??可是我做的时候怎么老是不成功呢?有的时候在axMSComm1.Settings = "9600,N,8,1";地方也有异常发生,或者是根本截获不到任何信息,我测试的环境是Winxp+VS.Net2003,电脑上现在没有modem我就是用下Com1端口测试,按说我的网卡应该走的是COM1端口吧?不可能网卡上从来接受不到数据的吧?郁闷中,各位帮帮忙啊
设置MSComm控件属性
InBufferSize=1024;
Inputlen=0;
InputMode=0;
Rthreshold=1;
RTSEnable=True;
Settings=“9600,N,8,1";
Sthreshold=0。
首先初始化Modem,然后等待来电。当有来电时,MSComm产生OnComm事件。
Modem送出的信息格式为“DATE = 月日回车换行TIME = 时分回车换行NMBR = 电话号码回车换行”。在OnComm事件处理程序中对读入信息进行截取
"AT#CID=1" + 回车
是初始化Modem的指令,以字符方式发给Modem
当有来电时在OnComm事件中接收就行了