Qualify queued Ioniq 6 blind-spot warnings

This commit is contained in:
firestar5683
2026-11-07 17:25:43 -06:00
parent c5f6a854c5
commit db987be5c8
2 changed files with 7 additions and 50 deletions
-41
View File
@@ -42,44 +42,3 @@ jobs:
name: bsm-host-native
path: bsm-results/
if-no-files-found: error
firmware:
strategy:
fail-fast: false
matrix:
variant: [debug, release]
runs-on: ubuntu-24.04
timeout-minutes: 30
env:
PYTHONPATH: ${{ github.workspace }}
BSM_VARIANT: ${{ matrix.variant }}
steps:
- uses: actions/checkout@v7
- run: ./tools/op.sh setup
- name: Build and verify all firmware variants
shell: bash
run: |
if [[ "$BSM_VARIANT" == release ]]; then
export RELEASE=1
export CERT="$PWD/panda/board/crypto/certs/debug"
else
unset RELEASE
fi
.venv/bin/python .github/bsm-qualification.py firmware
- uses: actions/upload-artifact@v4
if: always()
with:
name: bsm-firmware-${{ matrix.variant }}
path: bsm-results/
if-no-files-found: error
arm64-helper:
runs-on: ubuntu-24.04-arm
timeout-minutes: 15
steps:
- uses: actions/checkout@v7
- run: python3 .github/bsm-qualification.py helper
- uses: actions/upload-artifact@v4
if: always()
with:
name: bsm-arm64-helper
path: bsm-results/
if-no-files-found: error
@@ -185,7 +185,6 @@ class TestIoniq6BlindspotStatus(unittest.TestCase):
self.assertFalse(any(addr in (0x1BA, 0x1E5) for addr, _, _ in skipped))
ci.CS.out = out
def test_controller_requires_a_matching_queued_lane_change_for_escalation(self):
cp = long_params()
ci = CarInterface(cp)
@@ -231,9 +230,8 @@ class TestIoniq6BlindspotStatus(unittest.TestCase):
packer = CANPacker(DBC[cp.carFingerprint][Bus.pt])
state = structs.CarState(vEgo=20.0, leftBlinker=left, rightBlinker=not left)
helper = DesireHelper(LaneChangePolicy(auto_lane_change=True))
control = structs.CarControl()
def check(expected):
def check(expected, helper, *, controller=controller, ci=ci, packer=packer, left=left):
control = structs.CarControl()
t = 10_000_000_000 + controller.frame * 10_000_000
ci.update([(t, [packer.make_can_msg('BLINDSPOTS_FRONT_CORNER_2', 1,
{'SIDE_DETECT_STATE': 0x10 if left else 0x08}),
@@ -258,20 +256,20 @@ class TestIoniq6BlindspotStatus(unittest.TestCase):
helper.update(state, True, 1.0, auto_evidence=False, engaged=True)
self.assertEqual(helper.auto_status, 'laneUnavailable')
self.assertEqual(helper.lane_change_state, log.LaneChangeState.preLaneChange)
check(BlindspotStatus(2, 0) if left else BlindspotStatus(0, 2))
check(BlindspotStatus(2, 0) if left else BlindspotStatus(0, 2), helper)
state.steeringPressed = True
state.steeringTorque = 1.0 if left else -1.0
helper.update(state, True, 1.0, engaged=True)
self.assertEqual(helper.lane_change_state, log.LaneChangeState.laneChangeStarting)
check(BlindspotStatus(2, 0) if left else BlindspotStatus(0, 2))
check(BlindspotStatus(2, 0) if left else BlindspotStatus(0, 2), helper)
state.steeringPressed = False
for _ in range(12):
helper.update(state, True, 0.0, engaged=True)
self.assertEqual(helper.lane_change_state, log.LaneChangeState.off)
check(BlindspotStatus(0, 0))
check(BlindspotStatus(0, 0), helper)
helper.update(state, True, 0.0, engaged=True)
check(BlindspotStatus(0, 0))
check(BlindspotStatus(0, 0), helper)
helper = DesireHelper()
helper.update(state, True, 1.0, navigation_turn=True)
self.assertEqual(helper.lane_change_state, log.LaneChangeState.off)
check(BlindspotStatus(0, 0))
check(BlindspotStatus(0, 0), helper)