如何从Java以编程方式在116i上使用BMW JSDK来限制速度?
我正在新的BMW 116i创新包上试验BMW Java SDK。基本的事情,如打开和关闭灯,启动和停止电机工作正常。我现在试图做的是编写一个carlet,它将速度限制在驾驶员配置文件中配置的最大值。驾驶员身份将像往常一样通过RFID读取器进行检测。
我的问题是,虽然我可以从转速表读取速度,但我不能真正限制速度。以下是我到目前为止所做的工作:
public class SpeenControllingCarlet extends GenericCarlet {
public void start(final VehicleModel model) throws CarletException {
RfidReader rfidReader = (RfidReader) model
.getDevice(Devices.DRIVER_RFID_READER);
Rfid rfid = rfidReader.getRfid();
DriverProfile driverProfile = model.getDriverProfileRegistry()
.getDriverProfile(rfid.toString());
if (driverProfile == null) {
return;
}
final Double maxAllowedSpeed = Double.valueOf(driverProfile
.getCustomAttribute("maxAllowedSpeed", "190"));
Tachometer tachometer = (Tachometer) mode.getDevice(Devices.TACHOMETER);
tachometer.addSpeedListener(new SpeedListener() {
public void onSpeedChanged(SpeedChangedEvent speedChangedEvent) {
if (speedChangedEvent.getCurrentSpeed() > maxAllowedSpeed)
{
Horn horn = (Horn) mode.getDevice(Devices.HORN);
horn.beep(440, 2000);
}
}
});
}
}
如果驱动程序的速度快于驱动程序配置文件允许的速度,则只会发出两秒钟的蜂鸣音。
我的问题是 - 是否有可能实际限制速度(不仅仅是愚蠢的哔哔声)?