Php 获取错误:调用OBD网关的未定义函数dio_fcntl()
这里我想在PHPV7.0中实现OBD网关。为此,我使用了图书馆。在这个库中使用了一个函数Php 获取错误:调用OBD网关的未定义函数dio_fcntl(),php,error-handling,obd-ii,Php,Error Handling,Obd Ii,这里我想在PHPV7.0中实现OBD网关。为此,我使用了图书馆。在这个库中使用了一个函数dio\u fcntl(),我遇到了错误,无法使用它。我还从php.ini文件中启用了php_dio扩展名。但我还是犯了如下的致命错误 “致命错误:调用未定义的函数serial\dio_fcntl()” 有人能帮我整理一下吗?看一下PHP文档,它告诉您这个方法在Windows系统上不可用 你能分享你的代码吗?主要问题应该是为什么从名称空间调用dio_fcntlserial@NicoHaase我已经编辑了我的
dio\u fcntl()
,我遇到了错误,无法使用它。我还从php.ini文件中启用了php_dio扩展名。但我还是犯了如下的致命错误
“致命错误:调用未定义的函数serial\dio_fcntl()”
有人能帮我整理一下吗?看一下PHP文档,它告诉您这个方法在Windows系统上不可用 你能分享你的代码吗?主要问题应该是为什么从名称空间调用dio_fcntlserial@NicoHaase我已经编辑了我的问题。这不是有效的PHP代码:它是否包含在类中?第131行是什么?@NicoHaase是的,整个代码都是在一个“串行”类中编写的。我在
dio\u fcntl($this->serial,F\u SETFL,O\u SYNC)中出错代码>这是第131行,windows系统上还有其他选项吗?
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;
}