## # 数字入力 # def state_INPUT_event_DIGIT( digit ) @input_str << digit.to_s set_value( "display_digit", format_count(@input_str) ) @msg.send( :value=>format_count(@input_str) ) end ## # カウント開始 # def state_INPUT_event_START() s = "0000#{@input_str}" @timer_counter = s[-4,2].to_i * 60 + s[-2,2].to_i return if @timer_counter == 0 @input_str = "" @timer.run() { timer_work() } next_state( "COUNTDOWN" ) end ## # 入力値クリア # def state_INPUT_event_STOP() @input_str = "" set_value( "display_digit", format_count(@input_str) ) @msg.send( :value=>format_count(@input_str) ) end na :state_INPUT_event_TIMER na :state_INPUT_event_TIMEUP na :state_COUNTDOWN_event_DIGIT na :state_COUNTDOWN_event_START ## # カウント中断 # def state_COUNTDOWN_event_STOP() @timer.stop() set_value( "display_digit", format_count(0) ) @msg.send( :value=>format_count(0) ) next_state( "INPUT" ) end ## # カウントダウン中 表示更新 # def state_COUNTDOWN_event_TIMER() set_value( "display_digit", format_count(@timer_counter) ) @msg.send( :value=>format_count(@timer_counter) ) end ## # タイムアップ # def state_COUNTDOWN_event_TIMEUP() set_value( "display_digit", "TIMEUP!" ) @msg.send( :value => "TIMEUP!" ) @msg.send( :sound => "play" ) next_state( "ALERM" ) end na :state_ALERM_event_DIGIT na :state_ALERM_event_START ## # アラーム停止 # def state_ALERM_event_STOP() @timer.stop() set_value( "display_digit", format_count(0) ) @msg.send( :value=>format_count(0) ) next_state( "INPUT" ) end ## # アラームを鳴らす # def state_ALERM_event_TIMER() @msg.send( :sound => "play" ) end na :state_ALERM_event_TIMEUP