我在带有Raspbian内核版本4.1.6-v7 +的Raspberry Pi 2上运行一个简单的c / c ++代码,以便查看我的新FLIR Lepton相机的热图像。我也想看到我指向它的物体的实际温度,但是当温度表示为相对于相机的内部温度时,我需要调用一个函数 lepton_temperature() 这需要 I2C-dev的 要激活的模块。当我激活它并运行该功能时,程序从大约9fps减慢到大约两帧每分钟。我没有真正修改提供的代码中的任何内容,所以我不明白为什么会发生这种情况。这是功能:
int lepton_temperature() {
if(!_connected) {
lepton_connect();
}
result = ((LEP_GetSysFpaTemperatureKelvin(&_port, &fpa_temp_kelvin)));
return ( fpa_temp_kelvin);
}
如果没有打开i2c-dev,程序就能正常工作,但当然我得到零而不是温度值。任何人都可能知道发生了什么以及如何解决它/加快速度?
答案 0 :(得分:0)
听起来可能很明显,但是你的问题告诉我你忽略了它:为lepton_temperature
电话使用一个单独的线程。
答案 1 :(得分:0)
原来Alex是对的,因为i2c命令是由同步的ioctl
完成的,在每个加载的帧使得程序太慢之后使用命令。我并没有考虑到这一点,因为每一帧的每个像素值都是根据该温度计算的,所以我确信不可能是这种情况。事实证明我错了。
无论如何,感谢所有人,抱歉发布问题而不先检查一个非常明显的解决方案!