package org.cowboycoders.turbotrainers.bushido.brake;
import org.cowboycoders.turbotrainers.Mode;
import org.fluxoid.utils.SimpleCsvLogger;
import java.io.File;
public class ConstantResistanceController extends AbstractController {
// Doesn't support any of the current modes
private static final Mode SUPPORTED_MODE = Mode.TARGET_SLOPE;
private SimpleCsvLogger logger;
private int resistance = 0;
@Override
public double onSpeedChange(double speed) {
getDataModel().setAbsoluteResistance(resistance);
logToCsv(ABSOLUTE_RESISTANCE_HEADING, getDataModel().getAbsoluteResistance());
logToCsv(ACTUAL_SPEED_HEADING, speed);
return speed;
}
@Override
public double onPowerChange(double power) {
synchronized (this) {
if (logger != null) {
logger.update(POWER_HEADING, power);
}
}
return power;
}
public void setAbsoluteResistance(int newVal) {
this.resistance = newVal;
}
@Override
public Mode getMode() {
return SUPPORTED_MODE;
}
@Override
public void onStart() {
getDataModel().setAbsoluteResistance(resistance);
}
@Override
protected SimpleCsvLogger getCsvLogger(File file) {
SimpleCsvLogger logger = new SimpleCsvLogger(file, ACTUAL_SPEED_HEADING, POWER_HEADING,
ABSOLUTE_RESISTANCE_HEADING);
logger.addTime(false);
logger.append(true);
return logger;
}
@Override
public void onStop() {
// do nothing
}
}