|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
×
如果你不总是守在机房的话,线路出了故障用电话通知你是件很有帮助的事情
所需设备:
1,一个外置的MODEM,就是早年用电话线拨号上网的东东,如果你能在仓库找到一台586的机子做ros的话,也很有希望能找到一个MODEM, 二手电脑商店里也很容易找到,或者花几十元买一个新的也可以,特别注意:要外置的,PIC内置MODEM在LINUX下,不装驱动基本不能识别,这点非常遗憾
2,一条能拨通你的电话的电话线路,内线分机也可以
步骤:
1,把外置把MODEM的数据线接在ROS的串口2上,就两个串口,不是1就是2,不对的话,换一下就可以了,选串口2的目的是与脚本里面使用的相一致,把电话线插在MODEM上,你的电话机也可以插在上面共用一个电话号码,接通MODEM电源
2,用WinBox登陆ROS,在系统-->调度里面新建一调度任务,把脚本代码输入在里面,如图设置好就可以了,
脚本:
#指定被检测的ADSL接口
:set DSL-NAME "CNC-ADSL"
#指定用来拨电话的PPP接口
:set PPP-NAME "PPP-TEL"
#指定拨打的电话号码,若是内线拨外线号码,可使用逗号来暂停,以便等待拨号音
:set TEL-NUM "0,13212345678"
#拨号的PPP接口不存在的话,就创建它
:if([/int ppp-client find name=$PPP-NAME]="") do={
# 用串口COM2创建拨号接口,不对的话,换一个口就是了
/int ppp-client add name=$PPP-NAME port=serial1 disabled=yes
}
#从PPP接口的注释里,取得待检线路的故障标志,0正常,1检测到一次错误
#由于没有找到更好的方法来保存故障标志,就用接口的注释来变通保存
:set A ([:tonum([/int get $PPP-NAME comment])]+1)
/interface
:if([/int get [/int find name=$DSL-NAME] running]) do={
#如果检测到ADSL正常而原来的标志是故障的话,就复位故障标志
:if($A>1) do={/int set $PPP-NAME comment="0"}
} else={
# 如果连续10次检测到故障的话,复位故障标志为第一次
:if($A>10) do={:set A 1}
# 如果是初次发现故障,就拨打指定的电话
:if($A=1) do={
# 设置电话号码
ppp-client set [/int find name=$PPP-NAME] phone=$TEL-NUM
# 开始拨号
ppp-client enable $PPP-NAME
# 等待响铃60秒钟,遗憾的是,如果你挂断电话,还会再次拨响
# 不能做到挂断电话就停止
:delay 60s
ppp-client disable $PPP-NAME
}
/int set $PPP-NAME comment=[:tostr($A)]
}
延伸:
类似的,可以检测多条ADSL线路或者固定IP线路的故障电话报警
也可以做成一个电话闹钟,结合我的计算星期几的脚本,免除周六周日的干扰休息
期望:
1,要是ROS能支持PCI内置MODEM就好了
2,如果谁能够做到当电话接通的时候,有语音提示就好了,可以根据不同的故障播放不同的语音 |
-
评分
-
查看全部评分
|