Здесь я хочу реализовать шлюз OBD в php v7.0. Для этого я использовал https://github.com/mdlayher/obd библиотека. В этой библиотеке есть одна функция dio_fcntl()
используется, и я получаю ошибку и не могу ее использовать. Я также включаю расширение php_dio из файла php.ini. Тем не менее я получил фатальную ошибку, как показано ниже.
Msgstr «Неустранимая ошибка: вызов неопределённой функции serial \ dio_fcntl ()».
public function __construct($device, $flags = 02)
{
// Attempt to set device...
if (!$this->set_device($device))
{
throw new \Exception("Unable to set device for serial connection");
}
// Check if Direct IO extension installed
if (!function_exists("dio_open"))
{
throw new \Exception("PHP Direct IO is not installed, cannot open serial connection!");
}
// $device : /dev/pts/ELM327
// Create direct IO file handle with specified flags
$this->serial = dio_open("C:/wamp/www/obd-master/".$device, $flags);
// Set synchronous IO
dio_fcntl($this->serial, F_SETFL, O_SYNC);
// Set options default
$options = array(
"baud" => self::DEFAULT_BAUD,
"bits" => self::DEFAULT_BITS,
"stop" => self::DEFAULT_STOP,
"parity" => self::DEFAULT_PARITY,
);
$this->set_options($options);
return;
}
Может кто-нибудь, пожалуйста, помогите мне разобраться?
Посмотрите на документацию по PHP, она говорит вам на http://php.net/dio-fcntl что этот метод недоступен в системах Windows.
Других решений пока нет …