Hello,
I need help for Background task. I would like to activate the Red Led of the mediaFlange & flexfellow when one of the emergency stop is push.
I intended to create a background task for that. My problem is that the background task seems to be never active (there is always a red led on the smartpad).
Could you help me, guys ?
So far i created a new package in my project : "backgroundTask" with an automatic cyclic task inside it "Test".
Here the code :
Java
package backgroundTask;
import javax.inject.Inject;
import java.util.concurrent.TimeUnit;
import com.kuka.common.ThreadUtil;
import com.kuka.generated.ioAccess.FlexFellowIOIOGroup;
import com.kuka.generated.ioAccess.MediaFlangeIOGroup;
import com.kuka.roboticsAPI.applicationModel.tasks.CycleBehavior;
import com.kuka.roboticsAPI.applicationModel.tasks.RoboticsAPICyclicBackgroundTask;
import com.kuka.roboticsAPI.controllerModel.Controller;
import com.kuka.roboticsAPI.controllerModel.sunrise.ISafetyState;
import com.kuka.roboticsAPI.controllerModel.sunrise.SunriseSafetyState.EmergencyStop;
import com.kuka.roboticsAPI.deviceModel.LBR;
public class Test extends RoboticsAPICyclicBackgroundTask {
@Inject
Controller kUKA_Sunrise_Cabinet_1;
LBR lbr;
private FlexFellowIOIOGroup flexfellow;
private MediaFlangeIOGroup MediaFlange;
@Override
public void initialize() {
// initialize your task here
initializeCyclic(0, 400, TimeUnit.MILLISECONDS,
CycleBehavior.BestEffort);
}
@Override
public void runCyclic() {
// your task execution starts here
ISafetyState safetyState = lbr.getSafetyState();
EmergencyStop arretUrgenceInt = safetyState.getEmergencyStopInt();
EmergencyStop arretUrgenceExt = safetyState.getEmergencyStopEx();
if (arretUrgenceInt == EmergencyStop.ACTIVE || arretUrgenceExt == EmergencyStop.ACTIVE ) {
flexfellow.setOut9_LedRouge(true);
flexfellow.setOut10_LedJaune(false);
flexfellow.setOut11_LedVerte(false);
flexfellow.setOut12_LedBleu(false);
MediaFlange.setLEDRed(true);
MediaFlange.setLEDGreen(false);
MediaFlange.setLEDBlue(false);
}
}
}
Display More