ptz模块对外提供libPtz.so动态库,ptz模块对云台操作进行了封装,可以适配不同类型的电机,ptz模块对应的配置文件是 ptz/ptz.json ,这个一般由Product提供人员预先设定好,用户一般不需要关心
Ptz使用示例
class DemoPtz {
public:
void Test() {
Ptz ptz;
auto e = ptz.Init();
if (e != ErrCodeE::Success) {
emxloge("init ptz failed\n");
return;
}
Ptz::Status status = {};
e = ptz.GetStat(Ptz::TypeE::Horizon, true, status);
if (e != ErrCodeE::Success) {
emxloge("ptz Horizon GetStat failed\n");
return;
}
e = ptz.GetStat(Ptz::TypeE::Vertical, false, status);
if (e != ErrCodeE::Success) {
emxloge("ptz Vertical GetStat failed\n");
}
ptz.MoveStep(Ptz::TypeE::Horizon, true, 100);
ptz.MoveStep(Ptz::TypeE::Horizon, true, -500);
bool busy;
do {
busy = ptz.IsBusy(Ptz::TypeE::Horizon);
emxlogd("ptz Horizon Busy = %d\n", busy);
usleep(100000);
} while (busy);
ptz.DeInit();
}
};