回调函数方法连续采集和发送软触发采集
相机两种连续采集方式
第一种:回调机制
第一步,注册回调函数(头文件需要声明好)
// 注册采集回调函数emStatus = GXRegisterCaptureCallback(m_hDevice, this, OnFrameCallbackFun);GX_VERIFY(emStatus);
第二步,发送连续采集命令
// 发开始采集命令emStatus = GXSendCommand(m_hDevice, GX_COMMAND_ACQUISITION_START);GX_VERIFY(emStatus);
第三步,编写回调函数(在这里面就可以获取RAW资源进行处理,这里只是为了计算曝光时间就没有处理)
//---------------------------------------------------------------------------------
/**
\brief 采集回调函数
\param pFrame 回调参数\return void
*/
//----------------------------------------------------------------------------------
void __stdcall CGxCameraEventsDlg::OnFrameCallbackFun(GX_FRAME_CALLBACK_PARAM *pFrame)
{CGxCameraEventsDlg *pDlg = (CGxCameraEventsDlg*)(pFrame->pUserParam);double dElapsedtime = 0;char chTemp[8] = "ms";// 结束计时dElapsedtime = pDlg->m_objImageTime.Stop();pDlg->PrintInfotoWnd(MsgComposer("开始发送软触发命令到成功收到图像历时:%0.2f %s", dElapsedtime, chTemp));pDlg->m_bIsTrigValid = true;
}
发送软触发命令:
void CGxCameraEventsDlg::OnSendSoftCommand()
{// TODO: Add your control notification handler code here// 如果当触发回调正在执行的过程中,再次点击触发按键后,此次点击会被屏蔽掉if (!m_bIsTrigValid){return;}else{m_bIsTrigValid = false;}SYSTEMTIME system;CString strTime = "";GX_STATUS emStatus = GX_STATUS_SUCCESS;// 开始发送软触发命令的时间(此代码若放到两个计时开始之前,导致打印时间大于进入回调时间,出现问题)GetLocalTime(&system);strTime.Format("%02dh:%02dm:%02ds:%03dms ", system.wHour, system.wMinute, system.wSecond, system.wMilliseconds);PrintInfotoWnd(MsgComposer("\r\n开始发送软触发命令的时间点:" + strTime));// 到收到图像历时时间:计时开始m_objImageTime.Start();// 到曝光结束事件历时时间:计时开始m_objShutterTime.Start();// 发送软触发命令emStatus = GXSendCommand(m_hDevice,GX_COMMAND_TRIGGER_SOFTWARE);if(emStatus != GX_STATUS_SUCCESS){ShowErrorString(emStatus); m_bIsTrigValid = true;return;}
}
如果是回调函数机制,GXSendCommand(m_hDevice,GX_COMMAND_TRIGGER_SOFTWARE);
发送采集之后同样是进入回调函数。
回调函数方法连续采集和发送软触发采集相关推荐
- GXGetImage方式连续采集和发送软触发采集
相机两种连续采集方式 第一种:回调机制 第一步,不用注册回调函数,直接GXSendCommand(m_hDevice,GX_COMMAND_ACQUISITION_START)发送开采命令 //--- ...
- Linux C 函数指针应用---回调函数
(这里引用了知乎上一些知友的回答,感觉不错,有助于理解,这里引用作为借鉴,如有冒犯,烦请告知) 我们先来回顾一下函数指针,函数指针是专门用来存放函数地址的指针,函数地址是一个函数的入口地址,函数名代表 ...
- 如何理解android的函数,通过Android源码理解回调函数
概述 我们先看一下维基百科对回调函数的定义: 在计算机程序设计中,回调函数,或简称回调(Callback 即call then back 被主函数调用运算后会返回主函数),是指通过函数参数传递到其它代 ...
- RTX5 | 消息队列04 - (实战技巧)串口中断回调函数ISR同步线程
文章目录 一.前言 二.实验目的 三.API 3.2.osMessageQueueGet 四.代码 4.1.main.h 4.2.stm32f1xx.it.c 4.3.main.c 五.Event R ...
- Linux C 函数指针应用---回调函数
(这里引用了知乎上一些知友的回答,感觉不错,有助于理解,这里引用作为借鉴,如有冒犯,烦请告知) 我们先来回顾一下函数指针,函数指针是专门用来存放函数地址的指针,函数地址是一个函数的入口地址,函数名代表 ...
- 基于c++和asio的网络编程框架asio2教程基础篇:2、各个回调函数的触发顺序和执行流程
基于c++和asio的网络编程框架asio2教程基础篇:2.各个回调函数的触发顺序和执行流程 以tcp举例: tcp服务端流程: #include <asio2/asio2.hpp>int ...
- C语言之回调函数(非常重要)附带回调函数版本实现整型的加减乘除四则运算
对于回调函数!想必大家的第一想法,想必就是函数吧!其实这个也是笔者的第一想法,毕竟之前没有见过回调函数,所以就不怎么知道细节!默认为直接调用函数,就是回调函数,但等学会了回调函数,其实就不是这样想了! ...
- mysql timespec重定义_MySQL:半同步(二)主库端回调函数
源码版本5.7.29 主库端的回调函数比较多,比较复杂 一.回调函数:repl_semi_binlog_dump_start 调用线程:dump线程 #0 repl_semi_binlog_dump_ ...
- C-Lodop回调函数的触发
高版本的火狐和谷歌不再支持np插件之后,Lodop公司推出了C-Lodop,解决了这些浏览器不能用Lodop插件方式打印的问题,相比较Lodop插件,C-Lodop由于是以服务的形式出现,返回值不能直 ...
最新文章
- 当前linux环境做出镜像,把当前ubuntu系统做成镜像
- 机器人~TCP/IP通信
- 致研究者:2018 AI 研究趋势
- Linux 之 Kickstart
- android视频闪退,安卓 app 视频闪退问题
- 全排列函数、组合函数
- HTML标签的书写和嵌套规范
- 两个按钮间设置空格(间距)
- linux Enterprise5 添加删除程序无法正常使用 解决
- AI能让全球车厂每年多赚2150亿美元 | 麦肯锡报告
- 图解MySQL的各种 JOIN,看完不懂来找我!
- 关于ubuntu下无线网卡经常连不上网络的问题
- ICMP数据包结构(转)
- PHP字符串转换函数
- 从快感到成就感:多巴胺vs内啡肽
- 力扣刷题 DAY_64 回溯
- java获取usb设备的相关信息
- Airflow Python工作流引擎的重要概念介绍
- java obd_obd-java-api-master 读取ELM 327 OBD数据的 API Develop 247万源代码下载- www.pudn.com...
- U3D-常用的插件整理