pytest_examples_i2c_tools.py 1.1 KB

1234567891011121314151617181920212223242526272829303132
  1. # SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
  2. # SPDX-License-Identifier: Unlicense OR CC0-1.0
  3. import pytest
  4. from pytest_embedded_idf import IdfDut
  5. EXPECT_TIMEOUT = 20
  6. @pytest.mark.esp32
  7. @pytest.mark.ccs811
  8. def test_i2ctools_example(dut: IdfDut) -> None:
  9. dut.expect_exact('i2c-tools>', timeout=EXPECT_TIMEOUT)
  10. # Get i2c address
  11. dut.write('i2cdetect')
  12. dut.expect_exact('5b', timeout=EXPECT_TIMEOUT)
  13. # Get chip ID
  14. dut.write('i2cget -c 0x5b -r 0x20 -l 1')
  15. dut.expect_exact('0x81', timeout=EXPECT_TIMEOUT)
  16. # Reset sensor
  17. dut.write('i2cset -c 0x5b -r 0xFF 0x11 0xE5 0x72 0x8A')
  18. dut.expect_exact('OK', timeout=EXPECT_TIMEOUT)
  19. # Get status
  20. dut.write('i2cget -c 0x5b -r 0x00 -l 1')
  21. dut.expect_exact('0x10', timeout=EXPECT_TIMEOUT)
  22. # Change work mode
  23. dut.write('i2cset -c 0x5b -r 0xF4')
  24. dut.expect_exact('OK', timeout=EXPECT_TIMEOUT)
  25. dut.write('i2cset -c 0x5b -r 0x01 0x10')
  26. dut.expect_exact('OK', timeout=EXPECT_TIMEOUT)
  27. # Get new status
  28. dut.write('i2cget -c 0x5b -r 0x00 -l 1')
  29. dut.expect_exact(['0x98', '0x90'], timeout=EXPECT_TIMEOUT)