diff --git a/openpilot/cereal/gen/cpp/custom.capnp.c++ b/openpilot/cereal/gen/cpp/custom.capnp.c++ index 9fcfe0dba7..960755722b 100644 --- a/openpilot/cereal/gen/cpp/custom.capnp.c++ +++ b/openpilot/cereal/gen/cpp/custom.capnp.c++ @@ -3741,7 +3741,7 @@ const ::capnp::_::RawSchema s_da96579883444c35 = { 0, 5, i_da96579883444c35, nullptr, nullptr, { &s_da96579883444c35, nullptr, nullptr, 0, 0, nullptr }, false }; #endif // !CAPNP_LITE -static const ::capnp::_::AlignedData<1013> b_a1680744031fdb2d = { +static const ::capnp::_::AlignedData<1030> b_a1680744031fdb2d = { { 0, 0, 0, 0, 5, 0, 6, 0, 45, 219, 31, 3, 68, 7, 104, 161, 13, 0, 0, 0, 1, 0, 18, 0, @@ -3751,7 +3751,7 @@ static const ::capnp::_::AlignedData<1013> b_a1680744031fdb2d = { 21, 0, 0, 0, 178, 0, 0, 0, 29, 0, 0, 0, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 117, 0, 0, 0, 239, 12, 0, 0, + 117, 0, 0, 0, 39, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 117, 115, 116, 111, 109, 46, 99, @@ -3781,420 +3781,427 @@ static const ::capnp::_::AlignedData<1013> b_a1680744031fdb2d = { 67, 111, 110, 100, 105, 116, 105, 111, 110, 97, 108, 77, 111, 100, 101, 83, 116, 97, 116, 101, 0, 0, 0, 0, - 236, 0, 0, 0, 3, 0, 4, 0, + 240, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 101, 6, 0, 0, 58, 0, 0, 0, + 129, 6, 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 96, 6, 0, 0, 3, 0, 1, 0, - 108, 6, 0, 0, 2, 0, 1, 0, + 124, 6, 0, 0, 3, 0, 1, 0, + 136, 6, 0, 0, 2, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 105, 6, 0, 0, 74, 0, 0, 0, + 133, 6, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 104, 6, 0, 0, 3, 0, 1, 0, - 116, 6, 0, 0, 2, 0, 1, 0, + 132, 6, 0, 0, 3, 0, 1, 0, + 144, 6, 0, 0, 2, 0, 1, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 113, 6, 0, 0, 66, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 108, 6, 0, 0, 3, 0, 1, 0, - 120, 6, 0, 0, 2, 0, 1, 0, - 3, 0, 0, 0, 3, 0, 0, 0, - 0, 0, 1, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 117, 6, 0, 0, 106, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 116, 6, 0, 0, 3, 0, 1, 0, - 128, 6, 0, 0, 2, 0, 1, 0, - 4, 0, 0, 0, 4, 0, 0, 0, - 0, 0, 1, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 125, 6, 0, 0, 58, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 120, 6, 0, 0, 3, 0, 1, 0, - 132, 6, 0, 0, 2, 0, 1, 0, - 5, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 5, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 129, 6, 0, 0, 114, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 128, 6, 0, 0, 3, 0, 1, 0, - 140, 6, 0, 0, 2, 0, 1, 0, - 6, 0, 0, 0, 5, 0, 0, 0, - 0, 0, 1, 0, 6, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 137, 6, 0, 0, 82, 0, 0, 0, + 141, 6, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 136, 6, 0, 0, 3, 0, 1, 0, 148, 6, 0, 0, 2, 0, 1, 0, - 7, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 1, 0, 7, 0, 0, 0, + 3, 0, 0, 0, 3, 0, 0, 0, + 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 145, 6, 0, 0, 114, 0, 0, 0, + 145, 6, 0, 0, 106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 144, 6, 0, 0, 3, 0, 1, 0, 156, 6, 0, 0, 2, 0, 1, 0, - 8, 0, 0, 0, 128, 0, 0, 0, - 0, 0, 1, 0, 8, 0, 0, 0, + 4, 0, 0, 0, 4, 0, 0, 0, + 0, 0, 1, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 153, 6, 0, 0, 66, 0, 0, 0, + 153, 6, 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 148, 6, 0, 0, 3, 0, 1, 0, 160, 6, 0, 0, 2, 0, 1, 0, - 9, 0, 0, 0, 129, 0, 0, 0, - 0, 0, 1, 0, 9, 0, 0, 0, + 5, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 157, 6, 0, 0, 98, 0, 0, 0, + 157, 6, 0, 0, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 156, 6, 0, 0, 3, 0, 1, 0, 168, 6, 0, 0, 2, 0, 1, 0, - 10, 0, 0, 0, 6, 0, 0, 0, - 0, 0, 1, 0, 10, 0, 0, 0, + 6, 0, 0, 0, 5, 0, 0, 0, + 0, 0, 1, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 165, 6, 0, 0, 130, 0, 0, 0, + 165, 6, 0, 0, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 164, 6, 0, 0, 3, 0, 1, 0, 176, 6, 0, 0, 2, 0, 1, 0, - 11, 0, 0, 0, 7, 0, 0, 0, - 0, 0, 1, 0, 11, 0, 0, 0, + 7, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 173, 6, 0, 0, 58, 0, 0, 0, + 173, 6, 0, 0, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 168, 6, 0, 0, 3, 0, 1, 0, - 180, 6, 0, 0, 2, 0, 1, 0, - 12, 0, 0, 0, 5, 0, 0, 0, - 0, 0, 1, 0, 12, 0, 0, 0, + 172, 6, 0, 0, 3, 0, 1, 0, + 184, 6, 0, 0, 2, 0, 1, 0, + 8, 0, 0, 0, 128, 0, 0, 0, + 0, 0, 1, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 177, 6, 0, 0, 90, 0, 0, 0, + 181, 6, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 176, 6, 0, 0, 3, 0, 1, 0, 188, 6, 0, 0, 2, 0, 1, 0, - 13, 0, 0, 0, 6, 0, 0, 0, - 0, 0, 1, 0, 13, 0, 0, 0, + 9, 0, 0, 0, 129, 0, 0, 0, + 0, 0, 1, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 185, 6, 0, 0, 154, 0, 0, 0, + 185, 6, 0, 0, 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 188, 6, 0, 0, 3, 0, 1, 0, - 200, 6, 0, 0, 2, 0, 1, 0, - 14, 0, 0, 0, 130, 0, 0, 0, - 0, 0, 1, 0, 14, 0, 0, 0, + 184, 6, 0, 0, 3, 0, 1, 0, + 196, 6, 0, 0, 2, 0, 1, 0, + 10, 0, 0, 0, 6, 0, 0, 0, + 0, 0, 1, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 197, 6, 0, 0, 98, 0, 0, 0, + 193, 6, 0, 0, 130, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 192, 6, 0, 0, 3, 0, 1, 0, + 204, 6, 0, 0, 2, 0, 1, 0, + 11, 0, 0, 0, 7, 0, 0, 0, + 0, 0, 1, 0, 11, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 201, 6, 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 196, 6, 0, 0, 3, 0, 1, 0, 208, 6, 0, 0, 2, 0, 1, 0, - 15, 0, 0, 0, 7, 0, 0, 0, - 0, 0, 1, 0, 15, 0, 0, 0, + 12, 0, 0, 0, 5, 0, 0, 0, + 0, 0, 1, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 205, 6, 0, 0, 58, 0, 0, 0, + 205, 6, 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 200, 6, 0, 0, 3, 0, 1, 0, - 212, 6, 0, 0, 2, 0, 1, 0, - 16, 0, 0, 0, 8, 0, 0, 0, - 0, 0, 1, 0, 16, 0, 0, 0, + 204, 6, 0, 0, 3, 0, 1, 0, + 216, 6, 0, 0, 2, 0, 1, 0, + 13, 0, 0, 0, 6, 0, 0, 0, + 0, 0, 1, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 209, 6, 0, 0, 106, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 208, 6, 0, 0, 3, 0, 1, 0, - 220, 6, 0, 0, 2, 0, 1, 0, - 17, 0, 0, 0, 131, 0, 0, 0, - 0, 0, 1, 0, 17, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 217, 6, 0, 0, 90, 0, 0, 0, + 213, 6, 0, 0, 154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 216, 6, 0, 0, 3, 0, 1, 0, 228, 6, 0, 0, 2, 0, 1, 0, - 18, 0, 0, 0, 9, 0, 0, 0, - 0, 0, 1, 0, 18, 0, 0, 0, + 14, 0, 0, 0, 130, 0, 0, 0, + 0, 0, 1, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 225, 6, 0, 0, 146, 0, 0, 0, + 225, 6, 0, 0, 98, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 224, 6, 0, 0, 3, 0, 1, 0, + 236, 6, 0, 0, 2, 0, 1, 0, + 15, 0, 0, 0, 7, 0, 0, 0, + 0, 0, 1, 0, 15, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 233, 6, 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 6, 0, 0, 3, 0, 1, 0, 240, 6, 0, 0, 2, 0, 1, 0, - 19, 0, 0, 0, 132, 0, 0, 0, - 0, 0, 1, 0, 19, 0, 0, 0, + 16, 0, 0, 0, 8, 0, 0, 0, + 0, 0, 1, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 237, 6, 0, 0, 90, 0, 0, 0, + 237, 6, 0, 0, 106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, 6, 0, 0, 3, 0, 1, 0, 248, 6, 0, 0, 2, 0, 1, 0, - 20, 0, 0, 0, 5, 0, 0, 0, - 0, 0, 1, 0, 20, 0, 0, 0, + 17, 0, 0, 0, 131, 0, 0, 0, + 0, 0, 1, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, 6, 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 244, 6, 0, 0, 3, 0, 1, 0, 0, 7, 0, 0, 2, 0, 1, 0, - 21, 0, 0, 0, 6, 0, 0, 0, - 0, 0, 1, 0, 21, 0, 0, 0, + 18, 0, 0, 0, 9, 0, 0, 0, + 0, 0, 1, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 253, 6, 0, 0, 122, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 252, 6, 0, 0, 3, 0, 1, 0, - 8, 7, 0, 0, 2, 0, 1, 0, - 22, 0, 0, 0, 8, 0, 0, 0, - 0, 0, 1, 0, 22, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 5, 7, 0, 0, 58, 0, 0, 0, + 253, 6, 0, 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 3, 0, 1, 0, 12, 7, 0, 0, 2, 0, 1, 0, + 19, 0, 0, 0, 132, 0, 0, 0, + 0, 0, 1, 0, 19, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 9, 7, 0, 0, 90, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 8, 7, 0, 0, 3, 0, 1, 0, + 20, 7, 0, 0, 2, 0, 1, 0, + 20, 0, 0, 0, 5, 0, 0, 0, + 0, 0, 1, 0, 20, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 17, 7, 0, 0, 90, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 16, 7, 0, 0, 3, 0, 1, 0, + 28, 7, 0, 0, 2, 0, 1, 0, + 21, 0, 0, 0, 6, 0, 0, 0, + 0, 0, 1, 0, 21, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 25, 7, 0, 0, 122, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 24, 7, 0, 0, 3, 0, 1, 0, + 36, 7, 0, 0, 2, 0, 1, 0, + 22, 0, 0, 0, 8, 0, 0, 0, + 0, 0, 1, 0, 22, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 33, 7, 0, 0, 58, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 28, 7, 0, 0, 3, 0, 1, 0, + 40, 7, 0, 0, 2, 0, 1, 0, 23, 0, 0, 0, 7, 0, 0, 0, 0, 0, 1, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 9, 7, 0, 0, 138, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 12, 7, 0, 0, 3, 0, 1, 0, - 24, 7, 0, 0, 2, 0, 1, 0, - 24, 0, 0, 0, 9, 0, 0, 0, - 0, 0, 1, 0, 24, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 21, 7, 0, 0, 106, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 20, 7, 0, 0, 3, 0, 1, 0, - 32, 7, 0, 0, 2, 0, 1, 0, - 25, 0, 0, 0, 10, 0, 0, 0, - 0, 0, 1, 0, 25, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 29, 7, 0, 0, 194, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 32, 7, 0, 0, 3, 0, 1, 0, - 44, 7, 0, 0, 2, 0, 1, 0, - 26, 0, 0, 0, 16, 0, 0, 0, - 0, 0, 1, 0, 26, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 41, 7, 0, 0, 114, 0, 0, 0, + 37, 7, 0, 0, 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 7, 0, 0, 3, 0, 1, 0, 52, 7, 0, 0, 2, 0, 1, 0, - 27, 0, 0, 0, 9, 0, 0, 0, - 0, 0, 1, 0, 27, 0, 0, 0, + 24, 0, 0, 0, 9, 0, 0, 0, + 0, 0, 1, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 49, 7, 0, 0, 186, 0, 0, 0, + 49, 7, 0, 0, 106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 52, 7, 0, 0, 3, 0, 1, 0, - 64, 7, 0, 0, 2, 0, 1, 0, - 28, 0, 0, 0, 10, 0, 0, 0, - 0, 0, 1, 0, 28, 0, 0, 0, + 48, 7, 0, 0, 3, 0, 1, 0, + 60, 7, 0, 0, 2, 0, 1, 0, + 25, 0, 0, 0, 10, 0, 0, 0, + 0, 0, 1, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 61, 7, 0, 0, 202, 0, 0, 0, + 57, 7, 0, 0, 194, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 60, 7, 0, 0, 3, 0, 1, 0, + 72, 7, 0, 0, 2, 0, 1, 0, + 26, 0, 0, 0, 16, 0, 0, 0, + 0, 0, 1, 0, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 69, 7, 0, 0, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 7, 0, 0, 3, 0, 1, 0, 80, 7, 0, 0, 2, 0, 1, 0, - 29, 0, 0, 0, 11, 0, 0, 0, - 0, 0, 1, 0, 29, 0, 0, 0, + 27, 0, 0, 0, 9, 0, 0, 0, + 0, 0, 1, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 77, 7, 0, 0, 82, 0, 0, 0, + 77, 7, 0, 0, 186, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 76, 7, 0, 0, 3, 0, 1, 0, - 88, 7, 0, 0, 2, 0, 1, 0, - 30, 0, 0, 0, 11, 0, 0, 0, - 0, 0, 1, 0, 30, 0, 0, 0, + 80, 7, 0, 0, 3, 0, 1, 0, + 92, 7, 0, 0, 2, 0, 1, 0, + 28, 0, 0, 0, 10, 0, 0, 0, + 0, 0, 1, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 85, 7, 0, 0, 114, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 84, 7, 0, 0, 3, 0, 1, 0, - 96, 7, 0, 0, 2, 0, 1, 0, - 31, 0, 0, 0, 12, 0, 0, 0, - 0, 0, 1, 0, 31, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 93, 7, 0, 0, 50, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 88, 7, 0, 0, 3, 0, 1, 0, - 100, 7, 0, 0, 2, 0, 1, 0, - 32, 0, 0, 0, 13, 0, 0, 0, - 0, 0, 1, 0, 32, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 97, 7, 0, 0, 130, 0, 0, 0, + 89, 7, 0, 0, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 7, 0, 0, 3, 0, 1, 0, 108, 7, 0, 0, 2, 0, 1, 0, - 33, 0, 0, 0, 14, 0, 0, 0, - 0, 0, 1, 0, 33, 0, 0, 0, + 29, 0, 0, 0, 11, 0, 0, 0, + 0, 0, 1, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 105, 7, 0, 0, 98, 0, 0, 0, + 105, 7, 0, 0, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 104, 7, 0, 0, 3, 0, 1, 0, 116, 7, 0, 0, 2, 0, 1, 0, - 34, 0, 0, 0, 15, 0, 0, 0, - 0, 0, 1, 0, 34, 0, 0, 0, + 30, 0, 0, 0, 11, 0, 0, 0, + 0, 0, 1, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 113, 7, 0, 0, 122, 0, 0, 0, + 113, 7, 0, 0, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 112, 7, 0, 0, 3, 0, 1, 0, 124, 7, 0, 0, 2, 0, 1, 0, - 35, 0, 0, 0, 16, 0, 0, 0, - 0, 0, 1, 0, 35, 0, 0, 0, + 31, 0, 0, 0, 12, 0, 0, 0, + 0, 0, 1, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 121, 7, 0, 0, 122, 0, 0, 0, + 121, 7, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 120, 7, 0, 0, 3, 0, 1, 0, - 132, 7, 0, 0, 2, 0, 1, 0, - 36, 0, 0, 0, 17, 0, 0, 0, - 0, 0, 1, 0, 36, 0, 0, 0, + 116, 7, 0, 0, 3, 0, 1, 0, + 128, 7, 0, 0, 2, 0, 1, 0, + 32, 0, 0, 0, 13, 0, 0, 0, + 0, 0, 1, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 129, 7, 0, 0, 114, 0, 0, 0, + 125, 7, 0, 0, 130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 128, 7, 0, 0, 3, 0, 1, 0, - 140, 7, 0, 0, 2, 0, 1, 0, - 37, 0, 0, 0, 17, 0, 0, 0, - 0, 0, 1, 0, 37, 0, 0, 0, + 124, 7, 0, 0, 3, 0, 1, 0, + 136, 7, 0, 0, 2, 0, 1, 0, + 33, 0, 0, 0, 14, 0, 0, 0, + 0, 0, 1, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 137, 7, 0, 0, 186, 0, 0, 0, + 133, 7, 0, 0, 98, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 132, 7, 0, 0, 3, 0, 1, 0, + 144, 7, 0, 0, 2, 0, 1, 0, + 34, 0, 0, 0, 15, 0, 0, 0, + 0, 0, 1, 0, 34, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 141, 7, 0, 0, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 140, 7, 0, 0, 3, 0, 1, 0, 152, 7, 0, 0, 2, 0, 1, 0, - 38, 0, 0, 0, 133, 0, 0, 0, - 0, 0, 1, 0, 38, 0, 0, 0, + 35, 0, 0, 0, 16, 0, 0, 0, + 0, 0, 1, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 149, 7, 0, 0, 210, 0, 0, 0, + 149, 7, 0, 0, 122, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 148, 7, 0, 0, 3, 0, 1, 0, + 160, 7, 0, 0, 2, 0, 1, 0, + 36, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 1, 0, 36, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 157, 7, 0, 0, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 156, 7, 0, 0, 3, 0, 1, 0, 168, 7, 0, 0, 2, 0, 1, 0, - 39, 0, 0, 0, 134, 0, 0, 0, - 0, 0, 1, 0, 39, 0, 0, 0, + 37, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 1, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 165, 7, 0, 0, 138, 0, 0, 0, + 165, 7, 0, 0, 186, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 168, 7, 0, 0, 3, 0, 1, 0, 180, 7, 0, 0, 2, 0, 1, 0, + 38, 0, 0, 0, 133, 0, 0, 0, + 0, 0, 1, 0, 38, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 177, 7, 0, 0, 210, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 184, 7, 0, 0, 3, 0, 1, 0, + 196, 7, 0, 0, 2, 0, 1, 0, + 39, 0, 0, 0, 134, 0, 0, 0, + 0, 0, 1, 0, 39, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 193, 7, 0, 0, 138, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 196, 7, 0, 0, 3, 0, 1, 0, + 208, 7, 0, 0, 2, 0, 1, 0, 40, 0, 0, 0, 135, 0, 0, 0, 0, 0, 1, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 177, 7, 0, 0, 170, 0, 0, 0, + 205, 7, 0, 0, 170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 180, 7, 0, 0, 3, 0, 1, 0, - 192, 7, 0, 0, 2, 0, 1, 0, + 208, 7, 0, 0, 3, 0, 1, 0, + 220, 7, 0, 0, 2, 0, 1, 0, 41, 0, 0, 0, 18, 0, 0, 0, 0, 0, 1, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 189, 7, 0, 0, 122, 0, 0, 0, + 217, 7, 0, 0, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 188, 7, 0, 0, 3, 0, 1, 0, - 216, 7, 0, 0, 2, 0, 1, 0, + 216, 7, 0, 0, 3, 0, 1, 0, + 244, 7, 0, 0, 2, 0, 1, 0, 42, 0, 0, 0, 24, 0, 0, 0, 0, 0, 1, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 213, 7, 0, 0, 178, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 216, 7, 0, 0, 3, 0, 1, 0, - 228, 7, 0, 0, 2, 0, 1, 0, - 43, 0, 0, 0, 136, 0, 0, 0, - 0, 0, 1, 0, 43, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 225, 7, 0, 0, 202, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 232, 7, 0, 0, 3, 0, 1, 0, - 244, 7, 0, 0, 2, 0, 1, 0, - 44, 0, 0, 0, 25, 0, 0, 0, - 0, 0, 1, 0, 44, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 241, 7, 0, 0, 170, 0, 0, 0, + 241, 7, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 244, 7, 0, 0, 3, 0, 1, 0, 0, 8, 0, 0, 2, 0, 1, 0, - 45, 0, 0, 0, 137, 0, 0, 0, - 0, 0, 1, 0, 45, 0, 0, 0, + 43, 0, 0, 0, 136, 0, 0, 0, + 0, 0, 1, 0, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 253, 7, 0, 0, 194, 0, 0, 0, + 253, 7, 0, 0, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 8, 0, 0, 3, 0, 1, 0, - 12, 8, 0, 0, 2, 0, 1, 0, - 46, 0, 0, 0, 26, 0, 0, 0, - 0, 0, 1, 0, 46, 0, 0, 0, + 4, 8, 0, 0, 3, 0, 1, 0, + 16, 8, 0, 0, 2, 0, 1, 0, + 44, 0, 0, 0, 25, 0, 0, 0, + 0, 0, 1, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 9, 8, 0, 0, 210, 0, 0, 0, + 13, 8, 0, 0, 170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 8, 0, 0, 3, 0, 1, 0, 28, 8, 0, 0, 2, 0, 1, 0, + 45, 0, 0, 0, 137, 0, 0, 0, + 0, 0, 1, 0, 45, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 25, 8, 0, 0, 194, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 28, 8, 0, 0, 3, 0, 1, 0, + 40, 8, 0, 0, 2, 0, 1, 0, + 46, 0, 0, 0, 26, 0, 0, 0, + 0, 0, 1, 0, 46, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 37, 8, 0, 0, 210, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 44, 8, 0, 0, 3, 0, 1, 0, + 56, 8, 0, 0, 2, 0, 1, 0, 47, 0, 0, 0, 138, 0, 0, 0, 0, 0, 1, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 25, 8, 0, 0, 234, 0, 0, 0, + 53, 8, 0, 0, 234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 32, 8, 0, 0, 3, 0, 1, 0, - 44, 8, 0, 0, 2, 0, 1, 0, + 60, 8, 0, 0, 3, 0, 1, 0, + 72, 8, 0, 0, 2, 0, 1, 0, 48, 0, 0, 0, 19, 0, 0, 0, 0, 0, 1, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 41, 8, 0, 0, 114, 0, 0, 0, + 69, 8, 0, 0, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 40, 8, 0, 0, 3, 0, 1, 0, - 52, 8, 0, 0, 2, 0, 1, 0, + 68, 8, 0, 0, 3, 0, 1, 0, + 80, 8, 0, 0, 2, 0, 1, 0, 49, 0, 0, 0, 139, 0, 0, 0, 0, 0, 1, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 49, 8, 0, 0, 138, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 52, 8, 0, 0, 3, 0, 1, 0, - 64, 8, 0, 0, 2, 0, 1, 0, - 50, 0, 0, 0, 14, 0, 0, 0, - 0, 0, 1, 0, 50, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 61, 8, 0, 0, 194, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 64, 8, 0, 0, 3, 0, 1, 0, - 76, 8, 0, 0, 2, 0, 1, 0, - 51, 0, 0, 0, 140, 0, 0, 0, - 0, 0, 1, 0, 51, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 73, 8, 0, 0, 202, 0, 0, 0, + 77, 8, 0, 0, 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 8, 0, 0, 3, 0, 1, 0, 92, 8, 0, 0, 2, 0, 1, 0, - 52, 0, 0, 0, 15, 0, 0, 0, - 0, 0, 1, 0, 52, 0, 0, 0, + 50, 0, 0, 0, 14, 0, 0, 0, + 0, 0, 1, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 89, 8, 0, 0, 170, 0, 0, 0, + 89, 8, 0, 0, 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 8, 0, 0, 3, 0, 1, 0, 104, 8, 0, 0, 2, 0, 1, 0, + 51, 0, 0, 0, 140, 0, 0, 0, + 0, 0, 1, 0, 51, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 101, 8, 0, 0, 202, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 108, 8, 0, 0, 3, 0, 1, 0, + 120, 8, 0, 0, 2, 0, 1, 0, + 52, 0, 0, 0, 15, 0, 0, 0, + 0, 0, 1, 0, 52, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 117, 8, 0, 0, 170, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 120, 8, 0, 0, 3, 0, 1, 0, + 132, 8, 0, 0, 2, 0, 1, 0, 53, 0, 0, 0, 27, 0, 0, 0, 0, 0, 1, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 101, 8, 0, 0, 186, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 104, 8, 0, 0, 3, 0, 1, 0, - 116, 8, 0, 0, 2, 0, 1, 0, - 54, 0, 0, 0, 20, 0, 0, 0, - 0, 0, 1, 0, 54, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 113, 8, 0, 0, 154, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 116, 8, 0, 0, 3, 0, 1, 0, - 128, 8, 0, 0, 2, 0, 1, 0, - 55, 0, 0, 0, 32, 0, 0, 0, - 0, 0, 1, 0, 55, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 125, 8, 0, 0, 210, 0, 0, 0, + 129, 8, 0, 0, 186, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 132, 8, 0, 0, 3, 0, 1, 0, 144, 8, 0, 0, 2, 0, 1, 0, - 56, 0, 0, 0, 17, 0, 0, 0, - 0, 0, 1, 0, 56, 0, 0, 0, + 54, 0, 0, 0, 20, 0, 0, 0, + 0, 0, 1, 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 141, 8, 0, 0, 138, 0, 0, 0, + 141, 8, 0, 0, 154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 144, 8, 0, 0, 3, 0, 1, 0, 156, 8, 0, 0, 2, 0, 1, 0, + 55, 0, 0, 0, 32, 0, 0, 0, + 0, 0, 1, 0, 55, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 153, 8, 0, 0, 210, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 160, 8, 0, 0, 3, 0, 1, 0, + 172, 8, 0, 0, 2, 0, 1, 0, + 56, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 1, 0, 56, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 169, 8, 0, 0, 138, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 172, 8, 0, 0, 3, 0, 1, 0, + 184, 8, 0, 0, 2, 0, 1, 0, 57, 0, 0, 0, 33, 0, 0, 0, 0, 0, 1, 0, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 153, 8, 0, 0, 154, 0, 0, 0, + 181, 8, 0, 0, 154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 156, 8, 0, 0, 3, 0, 1, 0, - 168, 8, 0, 0, 2, 0, 1, 0, + 184, 8, 0, 0, 3, 0, 1, 0, + 196, 8, 0, 0, 2, 0, 1, 0, 58, 0, 0, 0, 21, 0, 0, 0, 0, 0, 1, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 165, 8, 0, 0, 154, 0, 0, 0, + 193, 8, 0, 0, 154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 168, 8, 0, 0, 3, 0, 1, 0, - 180, 8, 0, 0, 2, 0, 1, 0, + 196, 8, 0, 0, 3, 0, 1, 0, + 208, 8, 0, 0, 2, 0, 1, 0, + 59, 0, 0, 0, 141, 0, 0, 0, + 0, 0, 1, 0, 59, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 205, 8, 0, 0, 146, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 208, 8, 0, 0, 3, 0, 1, 0, + 220, 8, 0, 0, 2, 0, 1, 0, 115, 108, 111, 116, 73, 100, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -4753,6 +4760,16 @@ static const ::capnp::_::AlignedData<1013> b_a1680744031fdb2d = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 97, 99, 99, 101, 112, 116, 101, 100, + 73, 115, 80, 114, 101, 118, 105, 101, + 119, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } }; @@ -4765,11 +4782,11 @@ static const ::capnp::_::RawSchema* const d_a1680744031fdb2d[] = { &s_f58695a93b568caf, &s_fb41e1a738d832cb, }; -static const uint16_t m_a1680744031fdb2d[] = {42, 56, 35, 13, 23, 24, 51, 50, 29, 30, 32, 31, 20, 9, 40, 16, 37, 8, 7, 14, 43, 17, 38, 19, 45, 47, 39, 55, 54, 53, 10, 15, 48, 44, 52, 36, 18, 46, 21, 4, 49, 6, 0, 1, 11, 26, 27, 25, 41, 28, 12, 22, 34, 33, 58, 57, 2, 3, 5}; -static const uint16_t i_a1680744031fdb2d[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58}; +static const uint16_t m_a1680744031fdb2d[] = {42, 59, 56, 35, 13, 23, 24, 51, 50, 29, 30, 32, 31, 20, 9, 40, 16, 37, 8, 7, 14, 43, 17, 38, 19, 45, 47, 39, 55, 54, 53, 10, 15, 48, 44, 52, 36, 18, 46, 21, 4, 49, 6, 0, 1, 11, 26, 27, 25, 41, 28, 12, 22, 34, 33, 58, 57, 2, 3, 5}; +static const uint16_t i_a1680744031fdb2d[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59}; const ::capnp::_::RawSchema s_a1680744031fdb2d = { - 0xa1680744031fdb2d, b_a1680744031fdb2d.words, 1013, d_a1680744031fdb2d, m_a1680744031fdb2d, - 5, 59, i_a1680744031fdb2d, nullptr, nullptr, { &s_a1680744031fdb2d, nullptr, nullptr, 0, 0, nullptr }, false + 0xa1680744031fdb2d, b_a1680744031fdb2d.words, 1030, d_a1680744031fdb2d, m_a1680744031fdb2d, + 5, 60, i_a1680744031fdb2d, nullptr, nullptr, { &s_a1680744031fdb2d, nullptr, nullptr, 0, 0, nullptr }, false }; #endif // !CAPNP_LITE static const ::capnp::_::AlignedData<81> b_a7940385bedd1d4c = { diff --git a/openpilot/cereal/gen/cpp/custom.capnp.h b/openpilot/cereal/gen/cpp/custom.capnp.h index bedf1f4c5e..20d21945a5 100644 --- a/openpilot/cereal/gen/cpp/custom.capnp.h +++ b/openpilot/cereal/gen/cpp/custom.capnp.h @@ -4366,6 +4366,8 @@ public: inline bool hasUpcomingBoundaryId() const; inline ::capnp::Text::Reader getUpcomingBoundaryId() const; + inline bool getAcceptedIsPreview() const; + private: ::capnp::_::StructReader _reader; template @@ -4659,6 +4661,9 @@ public: inline void adoptUpcomingBoundaryId(::capnp::Orphan< ::capnp::Text>&& value); inline ::capnp::Orphan< ::capnp::Text> disownUpcomingBoundaryId(); + inline bool getAcceptedIsPreview(); + inline void setAcceptedIsPreview(bool value); + private: ::capnp::_::StructBuilder _builder; template @@ -19713,6 +19718,20 @@ inline ::capnp::Orphan< ::capnp::Text> SlcState::Builder::disownUpcomingBoundary ::capnp::bounded<21>() * ::capnp::POINTERS)); } +inline bool SlcState::Reader::getAcceptedIsPreview() const { + return _reader.getDataField( + ::capnp::bounded<141>() * ::capnp::ELEMENTS); +} + +inline bool SlcState::Builder::getAcceptedIsPreview() { + return _builder.getDataField( + ::capnp::bounded<141>() * ::capnp::ELEMENTS); +} +inline void SlcState::Builder::setAcceptedIsPreview(bool value) { + _builder.setDataField( + ::capnp::bounded<141>() * ::capnp::ELEMENTS, value); +} + inline bool SlcState::SourceReading::Reader::hasSource() const { return !_reader.getPointerField( ::capnp::bounded<0>() * ::capnp::POINTERS).isNull(); diff --git a/openpilot/cereal/libcereal.a b/openpilot/cereal/libcereal.a index 0848fb00d3..1d44f32500 100644 Binary files a/openpilot/cereal/libcereal.a and b/openpilot/cereal/libcereal.a differ diff --git a/openpilot/cereal/libsocketmaster.a b/openpilot/cereal/libsocketmaster.a index d08eb28e56..86fc515a95 100644 Binary files a/openpilot/cereal/libsocketmaster.a and b/openpilot/cereal/libsocketmaster.a differ diff --git a/openpilot/common/libcommon.a b/openpilot/common/libcommon.a index 3c4ccb498f..cff0ad7eda 100644 Binary files a/openpilot/common/libcommon.a and b/openpilot/common/libcommon.a differ diff --git a/openpilot/common/libparams_c.so b/openpilot/common/libparams_c.so index 240363a02b..b9fc0e1203 100755 Binary files a/openpilot/common/libparams_c.so and b/openpilot/common/libparams_c.so differ diff --git a/openpilot/starpilot/speed_limits/advance.py b/openpilot/starpilot/speed_limits/advance.py index ee7f2e13d0..211442ca98 100644 --- a/openpilot/starpilot/speed_limits/advance.py +++ b/openpilot/starpilot/speed_limits/advance.py @@ -140,16 +140,17 @@ class Advance: eligible = (can_offer and not (pending_current or current_first) and type(seconds) is int and 0 < seconds <= 10 and not standstill and speed_mps is not None and type(speed_mps) in (int, float) and math.isfinite(speed_mps) and speed_mps > 0 and upcoming is not None and upcoming.distance_m <= speed_mps * seconds) - if eligible and (encounter is None or replaced and not (encounter.crossed and pending_preview)): - proposed = dict(observations) - proposed[sel.Source.MAP] = upcoming.observation - if sel.select_limit(proposed, policy).selected_source is sel.Source.MAP: - assert upcoming.observation.candidate is not None - encounter = self.encounter = Encounter(upcoming.boundary_id, current.speed_mps, - upcoming.observation.candidate.speed_mps, upcoming.way_id, now_ns, current_way_id, - applied_preview=previous.applied_preview if previous is not None else None) - elif eligible and not encounter.crossed: - encounter.boundary_id = upcoming.boundary_id + if eligible: + if encounter is None or replaced and not (encounter.crossed and pending_preview): + proposed = dict(observations) + proposed[sel.Source.MAP] = upcoming.observation + if sel.select_limit(proposed, policy).selected_source is sel.Source.MAP: + assert upcoming.observation.candidate is not None + encounter = self.encounter = Encounter(upcoming.boundary_id, current.speed_mps, + upcoming.observation.candidate.speed_mps, upcoming.way_id, now_ns, current_way_id, + applied_preview=previous.applied_preview if previous is not None else None) + elif not encounter.crossed: + encounter.boundary_id = upcoming.boundary_id if encounter is None: return None if encounter.retired: diff --git a/openpilot/starpilot/speed_limits/planner_host.py b/openpilot/starpilot/speed_limits/planner_host.py index 990be0dc5b..db488c4e2f 100644 --- a/openpilot/starpilot/speed_limits/planner_host.py +++ b/openpilot/starpilot/speed_limits/planner_host.py @@ -60,6 +60,7 @@ class SavedSlcLifecycle: timing_only = configuration == (old_admitted, retimed, *old_display) preserve_runtime |= configuration[:-1] == (old_admitted, replace(retimed, offsets=settings.offsets), *old_display[:-1]) if preserve_runtime: + assert self.runtime is not None and self.configuration is not None # Policy/source edits renew choices without releasing the engaged speed cap. choices_changed = (settings.selection != self.runtime.settings.selection or settings.acceptance != self.runtime.settings.acceptance or configuration[2:5] != self.configuration[2:5]) diff --git a/openpilot/starpilot/speed_limits/tests/test_speed_domain.py b/openpilot/starpilot/speed_limits/tests/test_speed_domain.py index d7b3f3449e..60153900ec 100644 --- a/openpilot/starpilot/speed_limits/tests/test_speed_domain.py +++ b/openpilot/starpilot/speed_limits/tests/test_speed_domain.py @@ -27,8 +27,10 @@ class SpeedDomainTests(unittest.TestCase): def test_offset_and_ego_delta_apply_once(self): selected = sd.selected_pair_from_kph(30., 31. * 3.6, session_id=SESSION, timestamp_ns=0) + assert selected.cluster_mps is not None self.assertAlmostEqual(selected.cluster_mps, 31.) domain = sd.resolve(self.accepted, SCHEDULE, selected, self.pair(25., 26.)) + assert domain.context is not None coordinate = sd.to_planner_coordinate(domain.context) self.assertEqual(coordinate.cap_mps, 21.) self.assertEqual(coordinate.cluster_target_mps, 22.) @@ -39,6 +41,7 @@ class SpeedDomainTests(unittest.TestCase): with self.subTest(offset=offset, delta=delta): domain = sd.resolve(self.accepted, sd.OffsetSchedule((sd.OffsetBand(0., None, offset),)), self.pair(), self.pair(20., 20. + delta)) + assert domain.context is not None coordinate = sd.to_planner_coordinate(domain.context) self.assertEqual(coordinate.cluster_target_mps, 20.) self.assertEqual(coordinate.cap_mps, 20. - delta) @@ -66,6 +69,7 @@ class SpeedDomainTests(unittest.TestCase): missing = acc.step(self.accepted.state, acc.Observation(acc.ObservationKind.UNKNOWN), ACTIVE, POLICY, now_ns=1) pair = self.pair(now=1) result = sd.resolve(missing, SCHEDULE, pair, pair) + assert result.context is not None self.assertEqual(result.context.accepted_raw_mps, 20.) self.assertEqual(sd.to_planner_coordinate(result.context).cap_mps, 22.) self.assertEqual(sd.resolve(replace(missing, control_target_mps=21.), SCHEDULE, pair, pair).status, sd.DomainStatus.INVALID) @@ -74,6 +78,7 @@ class SpeedDomainTests(unittest.TestCase): def test_cluster_measurements_below_raw_do_not_add_a_delta(self): domain = sd.resolve(self.accepted, SCHEDULE, self.pair(20., 19.), self.pair(20., 19.)) + assert domain.context is not None coordinate = sd.to_planner_coordinate(domain.context) self.assertEqual(coordinate.cap_mps, 22.) self.assertEqual(coordinate.ego_delta_mps, 0.) @@ -96,7 +101,9 @@ class SpeedDomainTests(unittest.TestCase): accepted = acc.step(acc.new_session(SESSION), acc.Observation(acc.ObservationKind.VALID, candidate(15.)), ACTIVE, POLICY, now_ns=0) domain = sd.resolve(accepted, SCHEDULE, self.pair(25., 26.), self.pair(20., 21.)) + assert domain.context is not None coordinate = sd.to_planner_coordinate(domain.context) + assert coordinate.cap_mps is not None self.assertEqual(coordinate.cap_mps, 16.) cp = CarInterface.get_non_essential_params(CAR.HONDA_CIVIC) ordinary, composed = LongitudinalPlanner(cp, init_v=V_EGO), LongitudinalPlanner(cp, init_v=V_EGO) diff --git a/openpilot/starpilot/speed_limits/vision/tests/test_vision.py b/openpilot/starpilot/speed_limits/vision/tests/test_vision.py index 7f19352875..501651af99 100644 --- a/openpilot/starpilot/speed_limits/vision/tests/test_vision.py +++ b/openpilot/starpilot/speed_limits/vision/tests/test_vision.py @@ -478,5 +478,6 @@ class TestVision(unittest.TestCase): missing = fallback.step(sm, cp, now_ns=2_350_000_000, now_boot_ns=6_350_000_000) self.assertTrue(missing.message.slcState.hasCeiling) self.assertEqual(missing.result.acceptance.basis, 'unknown') + assert missing.result.acceptance.control_target_mps is not None self.assertAlmostEqual(missing.result.acceptance.control_target_mps, dashboard.speedMps) self.assertEqual(missing.result.acceptance.state.accepted, chosen_accepted.result.acceptance.state.accepted) diff --git a/openpilot/starpilot/ui/feature_settings_owner.py b/openpilot/starpilot/ui/feature_settings_owner.py index fc01b608a0..ddbbadb040 100644 --- a/openpilot/starpilot/ui/feature_settings_owner.py +++ b/openpilot/starpilot/ui/feature_settings_owner.py @@ -38,8 +38,8 @@ from openpilot.starpilot.ui.feature_settings_state import ( ) from openpilot.starpilot.speed_limits.offset_document import MPH_TO_MPS from openpilot.starpilot.speed_limits.runtime_settings import ( - ADVANCE_BYTES, ADVANCE_KEYS, ADVANCE_SECONDS, CONFIRMATION_BYTES, CONFIRMATION_CHOICES, - PEDAL_OVERRIDE_BYTES, PEDAL_OVERRIDE_CHOICES, PEDAL_OVERRIDE_KEY, SOURCE_PRIORITY_KEYS, PedalOverride, + ADVANCE_BYTES, ADVANCE_KEYS, CONFIRMATION_CHOICES, + PEDAL_OVERRIDE_BYTES, PEDAL_OVERRIDE_CHOICES, PEDAL_OVERRIDE_KEY, SOURCE_PRIORITY_KEYS, ) from openpilot.starpilot.aol.vehicle import policy_for as aol_policy_for from openpilot.starpilot.feature_capabilities import longitudinal_supported as feature_longitudinal_supported @@ -47,6 +47,7 @@ from openpilot.starpilot.lateral.torque_settings import DOCUMENT_KEY, LEGACY_KEY from openpilot.starpilot.ui.torque_feature import TorqueFeature from openpilot.starpilot.ui.controller_feature import ControllerFeature, SETUP_ACTION from openpilot.starpilot.ui.slc_offset_feature import SlcOffsetOwner +from openpilot.starpilot.ui.slc_policy_feature import SLC_ADVANCE_CHOICES, policy_rows from openpilot.starpilot.longitudinal.profile_preferences import read_document_value, read_profile_health from openpilot.starpilot.ui.long_profile_feature import (LongProfileFeature, is_long_confirm_action, VALUE_HELP, CATEGORY_HELP, preset_label, preset_value) @@ -114,7 +115,6 @@ FLOAT_SPECS = { for suffix in ("JerkAcceleration", "JerkDeceleration", "JerkDanger", "JerkSpeedDecrease", "JerkSpeed")}, } SLC_PRIORITY, SLC_SECONDARY, SLC_TERTIARY = SOURCE_PRIORITY_KEYS -SLC_ADVANCE_CHOICES = ('Off', *(f'{seconds} s' for seconds in ADVANCE_SECONDS[1:])) LONG_PREFIX = "profile:" PRESETS = {"acceleration": ACCELERATION_PRESETS, "braking": BRAKING_PRESETS, "following": FOLLOWING_PRESETS} PROFILE_NAMES = ("aggressive", "standard", "relaxed") @@ -1128,31 +1128,7 @@ class FeatureSettingsOwner: reason="Start SET at the SLC limit plus offset. RES restores your previous SET")) rows.append(self._bool_row("ShowSpeedLimits", "Show speed limit signs", self.authority("preferences"), reason="Display signs independently of Speed Limit Controller; does not change cruise speed")) - _, raw_confirmation, readable_confirmation = self._value('SLCConfirmation') - valid_confirmation = readable_confirmation and raw_confirmation in (None, *CONFIRMATION_BYTES) - confirmation = CONFIRMATION_CHOICES[int(raw_confirmation or b'0')] if valid_confirmation else 'Invalid' - rows.append(FeatureRow('SLCConfirmation', 'Confirm limits', confirmation, raw_confirmation, - tuple(CONFIRMATION_CHOICES.values()), available=allowed and self._readable('SLCConfirmation'), default_value='Off', - repair_value='' if valid_confirmation else 'Both', - reason='Off adopts limits automatically. For prompts, + accepts and − declines within 30 seconds' - if valid_confirmation else 'Invalid saved confirmation mode; choose a confirmation policy')) - for key, direction in zip(ADVANCE_KEYS, ('higher', 'lower'), strict=True): - advance, raw_advance, readable_advance = self._value(key) - valid_advance = readable_advance and (raw_advance is None or raw_advance in ADVANCE_BYTES) - rows.append(FeatureRow(key, f'Adopt {direction} limits early', - SLC_ADVANCE_CHOICES[int(advance)] if valid_advance else f'Saved {advance}', raw_advance, - SLC_ADVANCE_CHOICES if valid_advance else ('Off',), available=allowed, default_value='Off', - reason=f'Offer or adopt {direction} mapped limits this many seconds early at the current speed' - if valid_advance else 'Invalid saved advance time; restore Off')) - _, raw_override, readable_override = self._value(PEDAL_OVERRIDE_KEY) - default_override = PEDAL_OVERRIDE_CHOICES[PedalOverride.SPEED_REACHED] - valid_override = readable_override and (raw_override is None or raw_override in PEDAL_OVERRIDE_BYTES) - rows.append(FeatureRow(PEDAL_OVERRIDE_KEY, 'Gas pedal override', - default_override if raw_override is None else PEDAL_OVERRIDE_CHOICES[int(raw_override)] if valid_override else 'Invalid', - raw_override, PEDAL_OVERRIDE_CHOICES if valid_override else ('Off',), - available=allowed and self._readable(PEDAL_OVERRIDE_KEY), default_value=default_override, - repair_value='' if valid_override else 'Off', - reason='Choose what cruise holds after you press the gas past the adjusted speed limit')) + rows.extend(policy_rows(self._value, self._readable, allowed=allowed)) source_capability = self._source_capability() vision_dev, maps_available = source_capability source_allowed = configurable and self.authority("preferences") diff --git a/openpilot/starpilot/ui/slc_policy_feature.py b/openpilot/starpilot/ui/slc_policy_feature.py new file mode 100644 index 0000000000..4e02c22ca6 --- /dev/null +++ b/openpilot/starpilot/ui/slc_policy_feature.py @@ -0,0 +1,37 @@ +from openpilot.starpilot.speed_limits.runtime_settings import ( + ADVANCE_BYTES, ADVANCE_KEYS, ADVANCE_SECONDS, CONFIRMATION_BYTES, CONFIRMATION_CHOICES, + PEDAL_OVERRIDE_BYTES, PEDAL_OVERRIDE_CHOICES, PEDAL_OVERRIDE_KEY, PedalOverride, +) +from openpilot.starpilot.ui.feature_settings_state import FeatureRow + +SLC_ADVANCE_CHOICES = ('Off', *(f'{seconds} s' for seconds in ADVANCE_SECONDS[1:])) + + +def policy_rows(read_value, readable, *, allowed): + rows = [] + _, raw_confirmation, readable_confirmation = read_value('SLCConfirmation') + valid_confirmation = readable_confirmation and raw_confirmation in (None, *CONFIRMATION_BYTES) + confirmation = CONFIRMATION_CHOICES[int(raw_confirmation or b'0')] if valid_confirmation else 'Invalid' + rows.append(FeatureRow('SLCConfirmation', 'Confirm limits', confirmation, raw_confirmation, + tuple(CONFIRMATION_CHOICES.values()), available=allowed and readable('SLCConfirmation'), default_value='Off', + repair_value='' if valid_confirmation else 'Both', + reason='Off adopts limits automatically. For prompts, + accepts and − declines within 30 seconds' + if valid_confirmation else 'Invalid saved confirmation mode; choose a confirmation policy')) + for key, direction in zip(ADVANCE_KEYS, ('higher', 'lower'), strict=True): + advance, raw_advance, readable_advance = read_value(key) + valid_advance = readable_advance and (raw_advance is None or raw_advance in ADVANCE_BYTES) + rows.append(FeatureRow(key, f'Adopt {direction} limits early', + SLC_ADVANCE_CHOICES[int(advance)] if valid_advance else f'Saved {advance}', raw_advance, + SLC_ADVANCE_CHOICES if valid_advance else ('Off',), available=allowed, default_value='Off', + reason=f'Offer or adopt {direction} mapped limits this many seconds early at the current speed' + if valid_advance else 'Invalid saved advance time; restore Off')) + _, raw_override, readable_override = read_value(PEDAL_OVERRIDE_KEY) + default_override = PEDAL_OVERRIDE_CHOICES[PedalOverride.SPEED_REACHED] + valid_override = readable_override and (raw_override is None or raw_override in PEDAL_OVERRIDE_BYTES) + rows.append(FeatureRow(PEDAL_OVERRIDE_KEY, 'Gas pedal override', + default_override if raw_override is None else PEDAL_OVERRIDE_CHOICES[int(raw_override)] if valid_override else 'Invalid', + raw_override, PEDAL_OVERRIDE_CHOICES if valid_override else ('Off',), + available=allowed and readable(PEDAL_OVERRIDE_KEY), default_value=default_override, + repair_value='' if valid_override else 'Off', + reason='Choose what cruise holds after you press the gas past the adjusted speed limit')) + return rows diff --git a/openpilot/starpilot/ui/tests/test_appearance_settings.py b/openpilot/starpilot/ui/tests/test_appearance_settings.py index 43333e30db..995dc3d982 100644 --- a/openpilot/starpilot/ui/tests/test_appearance_settings.py +++ b/openpilot/starpilot/ui/tests/test_appearance_settings.py @@ -565,7 +565,7 @@ class AppearanceSettingsTests(unittest.TestCase): UnifiedSpeedWidget(fonts).render(rl.Rectangle(30, 30, 1800, 1020), base) card.assert_not_called() from openpilot.starpilot.ui.tests.test_unified_speed_native import foreground_calls - self.assertEqual(foreground_calls(fonts.draw)[0].args[3:5], (192, 90)) + self.assertEqual(foreground_calls(fonts.draw)[0].args[3:5], (192, 89)) for profile in (Profile.LARGE, Profile.COMPACT): view = onroad.OnroadView.__new__(onroad.OnroadView) view.personality = Mock() diff --git a/openpilot/starpilot/ui/tests/test_dinish_speed.py b/openpilot/starpilot/ui/tests/test_dinish_speed.py index 71d3b65f4f..ede20bae41 100644 --- a/openpilot/starpilot/ui/tests/test_dinish_speed.py +++ b/openpilot/starpilot/ui/tests/test_dinish_speed.py @@ -85,7 +85,7 @@ def test_large_sign_is_secondary_to_set_speed_at_the_saved_position(): current = sample_state('engaged', document) factor = 3.6 if metric else 2.2369362921 observation = replace(current.speed_limit, speed_limit_mps=120 / factor, - presentation_adjusted_limit_mps=130 / factor) + presentation_adjusted_limit_mps=130 / factor, effective_cluster_target_mps=130 / factor) current = replace(current, metric=metric, cruise_kph=value / factor * 3.6 if value else None, speed_limit=observation) calls = []