30 lines
634 B
PHP
30 lines
634 B
PHP
<?php
|
|
$fd = di_can_open("can0");
|
|
|
|
$msg = [];
|
|
$msg['msgtype'] = DI_CAN_MSGTYPE_RPC;
|
|
$msg['ttype'] = DI_CAN_TRANSFERTYPE_REQUEST;
|
|
$msg['dtype'] = DI_RPC_TYPE_DEVICE_PING;
|
|
$msg['dst_id'] = DI_CAN_NODEID_BROADCAST;
|
|
|
|
$start = microtime(true) * 1000;
|
|
di_can_send($fd, $msg);
|
|
unset($msg);
|
|
|
|
while (true) {
|
|
$x = di_can_recv($fd);
|
|
if ($x) {
|
|
if ($x['msgtype'] == DI_CAN_MSGTYPE_RPC &&
|
|
$x['ttype'] == DI_CAN_TRANSFERTYPE_REPLY &&
|
|
$x['dtype'] == DI_RPC_TYPE_DEVICE_PING) {
|
|
$dt = round((microtime(true) * 1000) - $start, 3);
|
|
print "$dt msec" . PHP_EOL;
|
|
break;
|
|
}
|
|
unset($x);
|
|
}
|
|
}
|
|
|
|
di_can_close($fd);
|
|
unset($fd);
|