src.dualinventive.com/dinet/libdi-php/examples/can_rpc_device_ping_reqrep_...

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);