# Check RX is stable in Host Driven mode

# TESTING_TIME unit is seconds
define!$TESTING_TIME!3600!
define!$DETECT_SEND_CNT!1000!

GetCurrentTime!$START_TIME!
echo!$START_TIME!

wfa_control_agent_dut1!wlan_reset,interface,wl0!ID,$DUT_WTS_VERSION
wfa_control_agent_dut1!wlan_initiation,interface,wl0,mode,hostdriven!ID,$DUT_MAC_ADDR1
wfa_control_agent_dut1!detect_hd_start,send,disable,interval,500,hash,1a2b3c4d5e6f7980,datasize,1000,channel,1!ID,$DUT_WTS_VERSION

wfa_control_agent_dut2!wlan_reset,interface,wl0!ID,$DUT_WTS_VERSION
wfa_control_agent_dut2!wlan_initiation,interface,wl0,mode,hostdriven!ID,$DUT_MAC_ADDR2
wfa_control_agent_dut2!detect_hd_start,send,enable,interval,500,hash,1a2b3c4d5e6f7980,datasize,1000,channel,1!ID,$DUT_WTS_VERSION

wfa_control_agent_dut2!clear_detect_recv_buf!ID,$DUT_WTS_VERSION
wfa_control_agent_dut1!detect_hd_oneshot,cmd,1,hash,1A2B3c4d5e6f7985,datasize,1000,interval,100,count,$DETECT_SEND_CNT,seq_start,0!ID,$DUT_WTS_VERSION
wfa_control_agent_dut2!check_detect_recv_buf,macaddr,$DUT_MAC_ADDR1,hash,1A2B3c4d5e6f7985,datasize,1000!ID,$DETECT_RECV_CNT

define!$DETECT_BASELINE!$DETECT_SEND_CNT!
mexpr!$DETECT_BASELINE!%!90!
echo!$DETECT_RECV_CNT!
if!$DETECT_RECV_CNT!<!$DETECT_BASELINE!
r_info!Background packet loss higher than expected!
endif!

math!$LOOP_COUNTER!+!1!
echo!$LOOP_COUNTER!

GetCurrentTime!$CURRENT_TIME!
math!$CURRENT_TIME!-!$START_TIME!

if!$CURRENT_TIME!<!$TESTING_TIME!
GotoLine!18!
endif!
sleep!1!

wfa_control_agent_dut1!detect_hd_stop,interface,wl0!ID,$DUT_WTS_VERSION
wfa_control_agent_dut1!wlan_uninitiation,interface,wl0!ID,$DUT_WTS_VERSION

wfa_control_agent_dut2!detect_hd_stop,interface,wl0!ID,$DUT_WTS_VERSION
wfa_control_agent_dut2!wlan_uninitiation,interface,wl0!ID,$DUT_WTS_VERSION

sleep!2!

r_info!PASS!