example_test.py 1.2 KB

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