/******************************************************************************* * Copyright (c) 2010 * Andreas Engelbredt Dalsgaard * Casper Jensen * Christian Frost * Kasper Søe Luckow. * * All rights reserved. This program and the accompanying materials * are made available under the terms of the GNU Public License v3.0 * which accompanies this distribution, and is available at * http://www.gnu.org/licenses/gpl.html * * Contributors: * Andreas Engelbredt Dalsgaard <andreas.dalsgaard@gmail.com> - Changes to run on jop SCJ implementation * Casper Jensen <semadk@gmail.com> - Initial implementation * Christian Frost <thecfrost@gmail.com> - Initial implementation * Kasper Søe Luckow <luckow@cs.aau.dk> - Initial implementation ******************************************************************************/ package minepump.scj; import javax.realtime.PriorityParameters; import javax.realtime.PeriodicParameters; import javax.safetycritical.PeriodicEventHandler; import javax.safetycritical.StorageParameters; import minepump.actuators.WaterpumpActuator; import minepump.sensors.MethaneSensor; public class PeriodicMethaneDetectionEventHandler extends PeriodicEventHandler { protected MethaneSensor methaneSensor; protected WaterpumpActuator waterpumpActuator; public PeriodicMethaneDetectionEventHandler(PriorityParameters priority, PeriodicParameters parameters, StorageParameters storage, int memorySize, MethaneSensor methaneSensor, WaterpumpActuator waterpumpActuator) { super(priority, parameters, storage, memorySize); this.methaneSensor = methaneSensor; this.waterpumpActuator = waterpumpActuator; } public void handleAsyncEvent() { if (methaneSensor.isCriticalMethaneLevelReached()) { waterpumpActuator.emergencyStop(true); } else { waterpumpActuator.emergencyStop(false); } } }