4 系统配置
本章介绍系统配置的具体操作。
4.1 编译Camera演示
如何编译启动测试Camera示例。
- 进入到测试文件所在的文件夹。
cd /usr/share/ed-aic-lib/examples
- 编译测试代码
sudo make test_camera.cpp
或python test_camera.py
sudo ./test_camera
4.2 Camera接口
“camera.h“文件提供了如何操作AI Camera Sensor的控制接口,该文件的存放路径为”/usr/include/eda/camera.h“。
"eda-io.h"文件提供了如何操作AI Camera IO的控制接口,该文件的存放路径为”/usr/include/eda/eda-io.h“。
4.3 库文件
“libeda_camera.so”库文件的存放路径为”/usr/lib/libeda_camera.so“。
”libeda_io.so“库文件的存放路径为”/usr/lib/libeda_io.so“。
4.4 Camera API
Camera API提供了AI Camera Sensor的控制函数,支持打开和关闭传感器、设置传感器工作模式、设置曝光时间和设置增益,下文分别按照不同的Camera场景进行说明。
控制函数
Camera API提供的AI Camera Sensor的控制函数如下表,包含获取图像数据、打开摄像头、关闭摄像头、设置工作模式、设置曝光时间和设置增益等。
- AR0234表示230万像素的Camera
- OV2311表示200万像素的Camera
函数 | 功能 | 参数取值 |
---|---|---|
virtual int callback_image_ready(img_Callback callback)=0 | 获取图像数据 | - |
virtual int open(int mode, int width, int height) = 0 | 打开并配置摄像头 | 工作模式取值包含0、1、5
|
virtual int close() = 0 | 关闭摄像头 | - |
virtual int set_exposure(int exp_value) = 0 | 设置曝光时间 |
|
virtual int get_exposure(int *exp_value) = 0 | 获取曝光时间 | - |
virtual int set_gain(int gain_value) = 0 | 设置增益 |
|
virtual int get_gain(int *gain_value) = 0 | 获取增益 | - |
获取AR0234实例
#include "CameraManger.h"
#include "camera_0234.h"
void test()
eda::Camera *t_camera = eda::create_ar0234();
if(t_camera){
eda::Camera_0234 *t_camera_1 = static_cast<eda::Camera_0234*>(t_camera);
}
...
}
4.5 IO API
IO API提供了AI Camera IO的控制函数,支持控制指示灯、控制激光、控制侧灯和控制输出等。
4.5.1 C语言环境
AI Camera IO在C语言环境下的控制函数如下所示:
函数 | 功能 |
---|---|
eda::EdaIo *em = eda::EdaIo::getInstance() | 获取IO控制实例 |
void setup() | 初始化IO设置 |
void openLaser() | 打开激光 |
void closeLaser() | 关闭激光 |
void setScanStat(bool good) | 设置状态指示灯 |
void openAlarm() | 打开警告指示灯 |
void closeAlarm() | 关闭警告指示灯 |
void setDo1High(bool high) | 设置output1输出 |
void setDo2High(bool high) | 设置output2输出 |
void registerInput(IoTrigger callback) | 注册input触发回调函数 |
void registerTrigger(IoTrigger callback) | 注册trigger按键回调函数 |
void registerTune(IoTrigger callback) | 注册Tune按键回调函数 |
void setRgbLight(uint8_t light) | 设置RGB灯光 |
4.5.2 Python3语言环境
AI Camera IO在Python3语言环境下的控制函数如下所示:
函数 | 功能 |
---|---|
eda = EdaIo.singleton() | 获取IO控制实例 |
eda.setup() | 初始化 |
eda.openLaser() | 打开激光 |
eda.closeLaser() | 关闭激光 |
eda.setScanStat(True) | 设置状态指示灯 |
eda.openAlarm() | 打开警告指示灯 |
eda.closeAlarm() | 关闭警告指示灯 |
eda.setDo1High(True) | 设置output1输出 |
eda.setDo2High(False) | 设置output2输出 |
registerInput(func_trigger) | 注册input触发回调函数 |
registerTrigger(func_trigger) | 注册trigger按键回调函数 |
registerTune(func_trigger) | 注册Tune按键回调函数 |
eda.setRgbLight(1) | 设置RGB灯光 |
4.5.3 操作说明
- 初始化
- 操作IO前需要获取IO实例
eda::EdaIo *em = eda::EdaIo::getInstance();
- 对实例初始化
em->setup();
- IO控制支持对事件注册回调函数
- input 输入事件
em->registerInput(trigger_input);
- Trigger 按键
em->registerTrigger(trigger_trigger);
- Tune 按键
em->registerTune(trigger_tune);
- 控制IO(必须先完成初始化)
- 控制激光
em->openLaser()
和em->closeLaser();
- 控制状态指示灯
em->setScanStat(true)
和em->setScanStat(false);
- 控制警报指示灯
em->openAlarm()
和em->openAlarm();
- 控制两路输出
em->setDo1High(false)
和em->setDo2High(false);
- 控制灯光(必须先完成初始化)
- 控制侧灯颜色
em->setRgbLight(1);
- 0: 关闭
- 1: 红色
- 2: 绿色
- 3: 蓝色
- 控制灯源
- 使能灯源(默认已使能)
em->enableLightSection(1)
取值范围1~4,对应不同分区 - 禁用灯源
em->disableLightSection(1)
取值范围1~4,对应不同分区
- 使能灯源(默认已使能)