Forth小程序:机房工作注意事项提醒

16 views
Skip to first unread message

xiaohao

unread,
May 27, 2011, 9:34:54 AM5/27/11
to Forth中国社区
很简单的程序,目前只是个原型,希望对用得到的人有所启发。

//gforth编译通过

: temperatureOk? cr
." !!!机房温度是否在18度到25度之间? " cr
." !!!空调工作是否正常? " cr
." !!!湿度是否在45%到65%之间? " cr ;

: upsPowerSupplyOk? cr
." 去检查UPS电源状态是否正常吧! " cr ;

: networkOk? cr
." !!!核心网络设备工作是否正常? " cr
." !!!服务器状态 " cr
." !!!交换机状态 " cr
." !!!路由器状态 " cr ;

: machineOk? cr
." !!!接收机是否正常? " cr
." !!!接受数据是否正常? " cr
." !!!时间对比是否一致? " cr ;

: toCheck cr
15 spaces ." | | " cr
15 spaces ." | | " cr
14 spaces ." \| |/ " cr
15 spaces ." \ / " cr
15 spaces ." \/ " cr ;

: time? ( time&date--hour )
time&date drop drop drop ;

: morningCheck temperatureOk? toCheck networkOk? toCheck
upsPowerSupplyOk? ;
: generalCheck temperatureOk? toCheck machineOk? toCheck networkOk? ;

: check time? dup 9 < if morningCheck drop drop drop else
dup 15 < if generalCheck drop drop drop else
then then ;

//执行check去显示这一时段的工作注意事项提醒

胡松涛

unread,
May 27, 2011, 9:52:25 AM5/27/11
to cn...@googlegroups.com
在 Fri, 27 May 2011 21:34:54 +0800,xiaohao <superc...@gmail.com> 写道:

> : time? ( time&date--hour )
> time&date drop drop drop ;

如果只需要小時的話 可以改成這個:


: timeCheck ( time&date--hour )
( s m h d m y ) time&date
( s m h ) 2drop drop
( s h m ) swap
( h m s ) rot
( h ) 2drop
;


--
Hu Songtao
works as an English Teacher in weekends
Skype: idisblueflash
Beijing, China

胡松涛

unread,
May 28, 2011, 9:23:41 AM5/28/11
to cn...@googlegroups.com
在 Fri, 27 May 2011 21:34:54 +0800,xiaohao <superc...@gmail.com> 写道:

> time? dup 9 < if morningCheck

\ 写了一个中文的时间判断
: 点 ( h -- m )
60 * ;
: 分 ( m1 m2 -- m1+m2 )
+ ;
: 现在 ( -- m )
( s m h d m y ) time&date
( s m h ) 2drop drop
( m h ) rot drop
( h*60+m ) 60 * +
;
: 是 ;
: 之前吗? ( m1 m2 -- T/F )
<=
;

\ 用的时候这样用(采用24小时制度)
现在 是 8 点 30 分 之前吗? \ 会返回-1/0

\ time? dup 9 < if morningCheck
\ 可以改写成
\ 现在 是 9 点 之前吗? if morningCheck
Reply all
Reply to author
Forward
0 new messages