1*** Variables *** 2${PLATFROM} platforms/boards/stm32f7_discovery-bb.repl 3${BIN} https://dl.antmicro.com/projects/renode/stm32f746g--zephyr-i2c-akm09918c.elf-s_700820-475c7207bf761d676c9e9d4380375a778448e72c 4${UART} sysbus.usart1 5${SENSOR} sysbus.i2c1.ak09918 6${CSV2RESD} ${RENODETOOLS}/csv2resd/csv2resd.py 7${SAMPLES_CSV} ${CURDIR}/ak09918-samples.csv 8 9*** Keywords *** 10Create Machine 11 Execute Command mach create 12 Execute Command machine LoadPlatformDescription @${PLATFROM} 13 Execute Command machine LoadPlatformDescriptionFromString "ak09918: Sensors.AK09916 @ i2c1 0xC" 14 Execute Command sysbus LoadELF @${BIN} 15 Create Terminal Tester ${UART} 16 17Set Enviroment 18 [Arguments] ${x}=0.000000 ${y}=0.000000 ${z}=0.000000 19 Execute Command ${SENSOR} DefaultMagneticFluxDensityX ${x} 20 Execute Command ${SENSOR} DefaultMagneticFluxDensityY ${y} 21 Execute Command ${SENSOR} DefaultMagneticFluxDensityZ ${z} 22 23Check Enviroment 24 [Arguments] ${x}=0.000000 ${y}=0.000000 ${z}=0.000000 25 Wait For Line On Uart ( x y z ) = ( ${x}${SPACE}${SPACE}${y}${SPACE}${SPACE}${z} ) 26 27Create RESD File 28 [Arguments] ${path} 29 ${resd_path}= Allocate Temporary File 30 ${args}= Catenate SEPARATOR=, 31 ... "--input", r"${path}" 32 ... "--map", "magnetic_flux_density:magnetic_flux_density_x,magnetic_flux_density_y,magnetic_flux_density_z:x,y,z" 33 ... "--start-time", "0" 34 ... "--frequency", "1" 35 ... r"${resd_path}" 36 Evaluate subprocess.run([sys.executable, "${CSV2RESD}", ${args}]) sys,subprocess 37 RETURN ${resd_path} 38 39*** Test Cases *** 40Should Read Magnetic Flux Density 41 Create Machine 42 43 Check Enviroment x=0.000000 y=0.000000 z=0.000000 44 45 # sensor input value is in nanotesla 46 # SW outputs in Gauss, so expected value is `value * 0.00001` 47 48 Set Enviroment x=150 49 Check Enviroment x=0.001500 50 51 Set Enviroment y=300 52 Check Enviroment y=0.003000 53 54 Set Enviroment z=450 55 Check Enviroment z=0.004500 56 57 Set Enviroment x=150 y=300 z=450 58 Check Enviroment x=0.001500 y=0.003000 z=0.004500 59 60Should Read Samples From RESD 61 Create Machine 62 63 ${resd_path}= Create RESD File ${SAMPLES_CSV} 64 Execute Command ${SENSOR} FeedMagneticSamplesFromRESD @${resd_path} 65 66 # sensor input value is in nanotesla 67 # SW outputs in Gauss, so expected value is `value * 0.00001` 68 69 Set Enviroment x=150 y=300 z=450 70 71 Check Enviroment x=0.150000 y=0.300000 z=0.450000 72 Check Enviroment x=0.300000 y=0.450000 z=0.600000 73 Check Enviroment x=0.450000 y=0.600000 z=0.750000 74 # Sensor should go back to the default values after the RESD file finishes 75 Check Enviroment x=0.001500 y=0.003000 z=0.004500 76 Check Enviroment x=0.001500 y=0.003000 z=0.004500 77