public static void SetSpeedLimit(ushort limit)
{
if (limit <= 0)
{
SetSpeedLimitOff();
return;
}
if (limit < 10) // TODO check mph
{
limit = 10;
}
if (limit > 300) // TODO fix region settings
{
limit = 300;
}
var refresh = SpeedLimit == 0;
if (limit != _lastSpeedLimit)
{
if (refresh)
{
_lastSpeedLimit = limit;
}
Manager.EnqueueMessage(new Message(DeviceAddress.GraphicsNavigationDriver, DeviceAddress.InstrumentClusterElectronics, "Set speed limit", 0x40, 0x09, (byte)(limit >> 8), (byte)(limit & 0xFF)));
}
if (refresh)
{
Manager.EnqueueMessage(MessageSpeedLimitOn);
}
}