【技术应用案例】如何通过世纪星发送飞信
作者:技术部 刘月新
引言
在工业自动化控制中,许多的现场参数(如水位、温度、压力等)都需要进行严格的控制并进行全过程监控。世纪星7.50版本已具有完善的报警系统,包括实时报警和历史报警,并可以打印成历史报警报表,供相关人员进行数据统计和分析。在许多需要报警的重要环节,用户需要向特定的手机发送报警短信,世纪星7.50版本支持标准短信MODEM向指定的手机发送报警信息。
世纪星组态软件是通过表准短信MODEM的AT命令集控制短信MODEM,当然所有这一切,我们都已经为用户集成好,用户只需要进行简单的配置就可实现短信报警功能。
世纪星7.5版本在短信报警方面尚未完全实现智能,可能用户会感觉配置上略微有些繁琐。在未来的世纪星8.0版本中,我们会将报警系统和短信报警、MSN报警、邮件报警、飞信报警等重要的信息传输手段相结合,实现报警系统的完全智能化。
众所周知,“飞信”是中国移动公司推出的免费PC短信业务,它不需要其他发送短信的硬件来支持。因此,短信免费、无需硬件成为飞信最具吸引力的地方。在世纪星8.0未推出之前,世纪长秋的技术人员经过研究,做出一套简易实现世纪星飞信报警的方案。
1 世纪星与飞信
1.1由于世纪星7.50版本尚未将飞信功能进行集成,所以目前我们使用外挂驱动程序发送飞信。为了让用户迅速掌握发送飞信外挂程序的开发过程,我们采用通过第三方发送平台发送飞信。
1.2发送程序开发
A. 用VC++6.0新建MFC对话框工程。
B. 将DBComm.OCX控件添加的工程。(DBComm使用方法请参考世纪星帮助)
C. 初始化DBComm.OCX并启动扫描定时器。(如下程序)
m_dbcomm.InitComm();
SetTimer(1,200,NULL);
D. 定时器响应,飞信发送。
void CMsgDlg::OnTimer(UINT nIDEvent)
{
CString uid; //飞信号或手机号
CString pwd; //飞信号密码
CString toUid;//目标手机号
CString msg; //发送的信息
CString link;
int sendFlag; //信息发送标志,世纪星通过给sendFlag置1来告诉外挂程序开
//始发送短信。
CInternetSession Internet;
switch (nIDEvent)
{
case 1:
sendFlag=m_dbcomm.tagReadInt("发送标志位");
uid=m_dbcomm.tagReadMess("飞信号");
pwd=m_dbcomm.tagReadMess("飞信密码");
toUid=m_dbcomm.tagReadMess("目标号码");
msg=m_dbcomm.tagReadMess("飞信信息");
if (sendFlag)
{
link="https://sms.api.bz/fetion.php?username="+uid+"&password="+pwd+"&sendto="+toUid+"&message="+msg;
link=_T(link);
Internet.OpenURL(link. GetBuffer(0));
m_dbcomm.tagWriteInt("发送标志位",0);
}
break;
}
CDialog::OnTimer(nIDEvent);
}
1.3世纪星工程
在世纪星工程中添加如下变量
发送标志位 内存整数
飞信号 内存信息
飞信密码 内存信息
目标号码 内存信息
飞信信息 内存信息
创建世纪星画面如下图所示。
1.4启动工程
在世纪星启动时同时启动外挂程序,那么就可以通过世纪星控制外挂程序发送飞信。
2 小结
综上所述,世纪星组态软件使用灵活,提供各种外部接口,在不能满足您需求的时候,您可以使用灵活的外挂程序。当然,世纪星组态软件会在未来的8.0版本中完善它的报警系统,我们共同期待!■