example_test.py 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. from __future__ import print_function
  2. import os
  3. import sys
  4. EXPECT_TIMEOUT = 20
  5. try:
  6. import IDF
  7. from IDF.IDFDUT import ESP32DUT
  8. except ImportError:
  9. test_fw_path = os.getenv("TEST_FW_PATH")
  10. if test_fw_path and test_fw_path not in sys.path:
  11. sys.path.insert(0, test_fw_path)
  12. import IDF
  13. @IDF.idf_example_test(env_tag='Example_I2C_CCS811_SENSOR')
  14. def test_i2ctools_example(env, extra_data):
  15. # Get device under test, flash and start example. "i2ctool" must be defined in EnvConfig
  16. dut = env.get_dut('i2ctools', 'examples/peripherals/i2c/i2c_tools', dut_class=ESP32DUT)
  17. dut.start_app()
  18. dut.expect("esp32>", timeout=EXPECT_TIMEOUT)
  19. # Get i2c address
  20. dut.write("i2cdetect")
  21. dut.expect("5b", timeout=EXPECT_TIMEOUT)
  22. # Get chip ID
  23. dut.write("i2cget -c 0x5b -r 0x20 -l 1")
  24. dut.expect("0x81", timeout=EXPECT_TIMEOUT)
  25. # Reset sensor
  26. dut.write("i2cset -c 0x5b -r 0xFF 0x11 0xE5 0x72 0x8A")
  27. dut.expect("OK", timeout=EXPECT_TIMEOUT)
  28. # Get status
  29. dut.write("i2cget -c 0x5b -r 0x00 -l 1")
  30. dut.expect_any("0x10", timeout=EXPECT_TIMEOUT)
  31. # Change work mode
  32. dut.write("i2cset -c 0x5b -r 0xF4")
  33. dut.expect("OK", timeout=EXPECT_TIMEOUT)
  34. dut.write("i2cset -c 0x5b -r 0x01 0x10")
  35. dut.expect("OK", timeout=EXPECT_TIMEOUT)
  36. # Get new status
  37. dut.write("i2cget -c 0x5b -r 0x00 -l 1")
  38. dut.expect_any("0x98", "0x90", timeout=EXPECT_TIMEOUT)
  39. if __name__ == '__main__':
  40. test_i2ctools_example()