src.dualinventive.com/fw/dncm/tests/qrd/2.1_periodic_publish.php

43 lines
1.6 KiB
PHP

<?php
// TODO(jjacobs): We need a recv loop with a timeout instead of infinite
// TODO(jjacobs): We need to measure time between publishes and validate against requirement
///////////////////////////////////////////////////////////////////////////////
//require_once(get_cfg_var('COMMON_PATH') . "/ditest-php/test_framework.php");
require_once("../../common/ditest-php/test_framework.php");
require_once("./config.php");
///////////////////////////////////////////////////////////////////////////////
$test = new DiTest("Verify periodic sensor publish", 1);
$test->goal("Verify device ping requests");
$pubsub = new SubscribeSocket($test, $cfgSMPZMQPublishURI);
$test->step("Wait for device:ping publish");
while (true) {
$msg = $pubsub->recv();
if ($msg['pub'] == "device:ping")
break;
}
$test->step("Wait for sensor:data GPS uid 13 publish");
while (true) {
$msg = $pubsub->recv();
if ($msg['pub'] == "sensor:data" && $msg['result'][0]['uid'] == 13)
break;
}
$test->info("GPS: " . json_encode($msg['result'][0]['value']));
$test->equal(true, isset($msg['result'][0]['time']));
$test->equal(true, isset($msg['result'][0]['value']['fix']));
$test->equal(true, isset($msg['result'][0]['value']['latitude']));
$test->equal(true, isset($msg['result'][0]['value']['longitude']));
$test->equal(true, isset($msg['result'][0]['value']['siv']));
$test->equal(true, isset($msg['result'][0]['value']['hdop']));
$test->step("Wait for sensor:data RSSI uid 14 publish");
while (true) {
$msg = $pubsub->recv();
if ($msg['pub'] == "sensor:data" && $msg['result'][0]['uid'] == 14)
break;
}
$test->info("RSSI: " . $msg['result'][0]['value']);