问题标签 [iio]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
159 浏览

linux-device-driver - 基于软链接从传感器读取

我如何从这些传感器中读取数据?我刚刚找到了他们的位置,但该文件夹似乎包含指向另一个位置的软链接。我的目标是监控陀螺仪。

0 投票
1 回答
1620 浏览

c - Linux & C: System() 命令

我目前正在从事一个需要我在 C 代码期间调用 Linux 命令的项目。我在其他来源上发现可以使用 system() 命令执行此操作,然后将 Linux shell 的值保存到我的 C 程序中。

例如,我需要将目录更改为

然后输入

作为命令。这应该将双精度输出到 C 中。

所以我的示例代码是:

我知道这可能不是最好的方法,因此非常感谢任何信息。

0 投票
1 回答
2026 浏览

linux-kernel - 带 mpu9250 的飞思卡尔 imx6

我正在尝试将飞思卡尔 imx6 SoC 与 mpu92/65 传感器设备连接。我从 android ( https://github.com/NoelMacwan/Kernel-10.4.1.B.0.101/tree/master/drivers/staging/iio/imu ) 获取了 mpu92/65 设备驱动程序,并对驱动程序和设备树。

设备树修改:

inv_mpu_iio 驱动修改:

我已经以上述方式从设备树中检索了平台数据。在探测功能中,我得到了client->irq=0. 但是我已经提到了设备树中的 IRQ。请有人告诉我我还需要做什么才能提到 gpio2-9 (linux pad) 作为这个 i2c 设备的中断线。

0x68 是 i2c 设备的从地址。驱动程序探测功能正在尝试写入设备以验证最初的芯片类型。因此,从站的数据和地址被发送到适配器驱动程序,在适配器驱动程序启动函数中,对控制和状态寄存器的写入和读取成功执行。

然后适配器驱动程序写入数据寄存器

在此之后生成适配器中断(总线中断得到 i2c3:291)。

在读取状态寄存器后的 ISR 中,该值应为162(最后一位应0表示已确认),但对于我的设备,我得到此值163(最后一位为 1,因此未确认)。然后在确认成功函数-EIO中抛出错误。对于连接到该总线的所有其他设备,写入数据寄存器后的状态寄存器为162

我不知道为什么我会得到上述行为。还有一件事是,即使我没有连接设备,启动功能也能够写入和读取状态和控制寄存器。我不确定正在读取和写入哪个状态寄存器。如果我假设这会写入和读取适配器寄存器,那么我是否也可以假设适配器硬件自动读取和写入连接的设备。如果是这样,那么如果我不连接设备,我将如何获得相同的行为?

请帮帮我。

0 投票
1 回答
4010 浏览

linux - 从用户空间读取 IIO 设备数据

我正在使用 MPU-9250 Invensense 传感器,并从 android 内核中获取其驱动程序并与 linux 内核集成。驱动程序工作正常,对内核和节点进行了一些修改,/dev/iio:\device0,并且还生成了 sys 文件系统下的文件。所以我假设驱动程序工作正常。

现在我想通过使用 /dev/iio:\device0 节点的应用程序从用户空间读取传感器数据。为此,我需要在 MPU-9250 驱动程序中打开读取关闭功能。但是驱动程序中没有可用的文件操作。

我试图从 sys 文件系统中读取数据,即

在此之后,它应该填充从传感器读取的数据。但是什么都没有显示。所以在此之后我尝试从开发文件系统中读取数据

即便如此,什么也没有显示。

请有人告诉我如何读取数据。

问候

0 投票
2 回答
766 浏览

linux - Linux 内核 IIO 事件 sysfs 文件仅可读

我有一个问题,我为上升和下降阈值注册了 IIO 事件。我可以在 events 子文件夹中看到 sysfs 文件并可以读取它们,但是当我尝试编写新阈值时,它显示“权限被拒绝”。

以下设置:

0 投票
2 回答
1709 浏览

linux - IIO Linux:如何知道缓冲区何时已满?

我正在使用来自用户空间的 IIO 驱动程序来读取 ADC (AD7924) 的值。我已经完成了触发采集工作的所有步骤(创建触发器、分配它、启用 ADC 通道、设置缓冲区的尺寸并启用它)。这是此的代码:

像这样配置的系统将处理采集,并填充完整的缓冲区。一旦它已满,采集停止。

我的问题是:我怎么知道缓冲区何时已满?我尝试在/dev/中的文件iio:device0上使用 poll 或 select 函数来检查文件描述符的变化,但我只能知道采集何时开始(通过检查 POLLIN 事件)。

0 投票
1 回答
976 浏览

linux - IIO(字符)设备输出没有输出 - IIO 缓冲区

我正在为 ADC ADS1243 开发 Linux 驱动程序并使用 IIO 框架。我想添加从 ADC 读取数据并将数据存储到 IIO 缓冲区的功能。

我添加了 iio_triggered_buffer_setup() 来探测驱动程序的功能。

我正在使用 sysfs 触发器并ads1243_trigger_handler成功调用。

}

在处理程序中,我只使用了一些推送到 iio 缓冲区的测试数据。

然后我设置触发器

启用一些扫描元素,设置并启用 iio 设备的缓冲区

触发触发器

然后尝试读取设备(缓冲区)

但是我没有输出。我错过了什么重要的东西吗?

谢谢您的回复!

0 投票
1 回答
717 浏览

c - IIO 设备缓冲区始终为空

我在 iio 驱动程序中使用了一个名为 LSM6DSL 的 IMU 传感器。如果我使用以下命令显示原始值,它们可以正常工作:

然后我决定使用 libiio,这样我就可以从 C 程序中读取所有这些值:

这是结果:

我错过了什么吗?如果您需要更多信息,请告诉我。

0 投票
0 回答
1156 浏览

c - IIO 缓冲区重新填充超时

我想从 C 项目中读取 IMU 传感器的值。有问题的设备是 LSM6DSL,我使用的是 IIO 内核驱动程序。它们工作正常,因为我可以使用以下命令读取值:

问题是,当我想使用函数iio_buffer_refill(struct iio_buffer *buffer)重新填充缓冲区时,它会返回错误代码 110,这是一个超时。在此之前,我启用了一些可以读取的通道,并且缓冲区已成功创建。我对这个问题进行了一些研究,我相信它与设备树中的中断参数有关。

这是我的 i2c 协议的设备树(我从这个链接中举了一个例子):

它真的与设备树有关还是我错过了其他东西?提前谢谢你。

[编辑] 这是创建缓冲区并尝试从中读取的源代码:

0 投票
1 回答
1291 浏览

events - Android IIO 传感器

如何在Android Nougatiio_events上捕获应用级别和本机级别(例如来自 adb shell 或通过现有守护程序)的 iio 传感器生成的?(例如环境光传感器的 in_intensity_falling_threshold 事件)

我尝试了经典的方法:SensorManager Listener(我自己编写了一个测试应用程序,但也尝试了来自应用商店的几个传感器测试应用程序)。

但是,似乎 iio 传感器不会触发任何事件(尽管我可以从 sysfs 读取不断变化的数据)。

iio 设备是否也会创建与 Android 中的输入设备相同类型的事件?我应该能够通过 getevent 命令查看事件吗?(如果需要,我可以提供更具体的系统/传感器信息。)