src.dualinventive.com/fw/dncm/tests/qrd/3.2_dncm_communication_stat...

39 lines
1.4 KiB
PHP

<?php
///////////////////////////////////////////////////////////////////////////////
//require_once(get_cfg_var('COMMON_PATH') . "/ditest-php/test_framework.php");
require_once("../../common/ditest-php/test_framework.php");
require_once("./DNCM.php");
///////////////////////////////////////////////////////////////////////////////
$test = new DiTest("Verify communication status reporting", true, false);
$test->goal("Verify CAN trigger message and reporting of RSSI and BER");
function wait_for_sensor_data($sock, $deviceUID, $uid) {
while (true) {
$msg = $sock->recv($deviceUID);
if (!isset($msg['pub']))
continue;
if ($msg['pub'] != "sensor:data")
continue;
foreach ($msg['result'] as $sensor) {
if ($sensor['uid'] != $uid)
continue;
return $sensor;
}
}
}
$pubsub = new SubscribeSocket($test, $cfgSMPZMQPublishURI);
$dut = new DNCM();
$test->IsTrue($dut->can_raw_dncm_communication_status(true, 5));
$test->step("Wait for sensor:data RSSI uid " . strval(DI_RPC_UID_SENSOR_RSSI) . " publish");
$sensorData = wait_for_sensor_data($pubsub, $cfgDeviceUid, DI_RPC_UID_SENSOR_RSSI);
$test->info("RSSI: " . strval($sensorData['value']));
$test->step("Wait for sensor:data BER uid " . strval(DI_RPC_UID_SENSOR_BER) . " publish");
$sensorData = wait_for_sensor_data($pubsub, $cfgDeviceUid, DI_RPC_UID_SENSOR_BER);
$test->info("BER: " . strval($sensorData['value']));