最近想自己做一下DLP4500的类封装。官方给的库是基于C函数的DLPC控制,以及GUI源码。
在GUI源码中 注意到了在给投影仪发送信息的时候,是将GUI中的颜色列表,进行解析,并转为一些USB发送包发送给投影仪,解析过程中注意到了输入的最后一个参数,
if(DLPC350_AddToPatLut(ui->listWidget_PatSeqLUT->item(i)->data(Qt::UserRole+TrigType).toInt(), \ui->listWidget_PatSeqLUT->item(i)->data(Qt::UserRole+PatNum).toInt(), \ui->listWidget_PatSeqLUT->item(i)->data(Qt::UserRole+BitDepth).toInt(), \ui->listWidget_PatSeqLUT->item(i)->data(Qt::UserRole+LEDSelect).toInt(), \ui->listWidget_PatSeqLUT->item(i)->data(Qt::UserRole+InvertPat).toBool(), \ui->listWidget_PatSeqLUT->item(i)->data(Qt::UserRole+InsertBlack).toBool(), \ui->listWidget_PatSeqLUT->item(i)->data(Qt::UserRole+BufSwap).toBool(), \ui->listWidget_PatSeqLUT->item(i)->data(Qt::UserRole+trigOutPrev).toBool()) < 0){ShowError("Error Updating LUT");return;}
其中tirgOutPrev不论在变曝光模式下,还是在固定曝光模式下,它都将被设为0
例如在曝光模式下,给图像上的结果为
UpdateSeqItemData(trigger_type, pat_num, ui->comboBox_PatSeqPatBitDepthSel->currentIndex()+1, ui->comboBox_PatSeqSelPatColor->currentIndex(),g_FrameIdx, ui->checkBox_PatSeqInvPatData->isChecked(), ui->checkBox_PatSeqInsBlackPat->isChecked(), bufSwap, 0);
查询了DLPC350_AddToPatLut函数的说明,发现tirgOutPrev可以用来控制TrigOut1信号。
那么如何在官方的GUI软件里,改变这个变量,还是说只是DLPC的库函数留给开发人员的接口?
一般我们都用它的触发信号触发相机,抑或是有接收其他类型触发信号的相机或者其他设备?
希望能详细介绍一下这个变量的作用,以及这个变量和TrigerType之间的区别和联系,谢谢!
Kevin Shi:
您好!
感谢使用TI的DLP产品。
Trig_out_1在不同的pattern模式下具有不同的含义,通常是与pattern的曝光同步的,用于触发相机等sensor实现同步。
所有寄存器的配置都是开放的,具体请参考DLPC350 Programmer Guide,有这些寄存器的说明。
http://www.ti.com.cn/cn/lit/ug/dlpu010g/dlpu010g.pdf
谢谢
user5861336:
回复 Kevin Shi:
希望能详细介绍一下这个变量trigOutPrev的作用,以及这个变量和TrigerType之间的区别和联系,谢谢!
并且想说明,由于官方已经有了一个现成的DLPC350的库(dlpc350_api.h等),它将底层的(也就是您提到的DLPC350 Pro Guide) 寄存器操作全部封装起来,调用hid_USB去传输指令信息。个人认为如果每一个官方的回答都是直接或者间接要参照DLPC350 Pro Guide,是没有必要的,是十分不方便的,也是对开发者十分不友好的,因为我们除非涉及到定制操作,基本上不会去改变官方的控制库,也不会详细的去了解官方库的凝练且难以理解缺少注释的实现过程和寄存器的详细配置。
我的问题仅仅是想了解
1、GUI中是否有改变trigOutPrev的方法。因为我发现不论是何种模式下,添加到LUT中的数据trigOutPrev一直都是0,(根本没有使用这个变量,直接输入了0)。
2、这个trigOutPrev到底对投影起到了什么效果。设定为true的时候会影响哪些特性(这里附上代码中的注释,没有明白所以才请教)
* @paramtrigOutPrev- I - true = Trigger Out 1 will continue to be high. There will be no falling edge*between the end of the previous pattern and the start of the current pattern. w*Exposure time is shared between all patterns defined under a common*trigger out). This setting cannot be combined with the black-fill pattern*false = Trigger Out 1 has a rising edge at the start of a pattern, and a falling*edge at the end of the pattern我是否能理解为,它值得设定为true的时候,trig_out_1信号将失效,假设trig_out_1接了相机,相机是否要在一个曝光周期内对多张投影图像进行曝光?
我找到了DLPC Pro Guide里的一个图
如上图中的trig_out_1,如果trigOutPrev置位为true,我是否可以理解为会产生p5.2~p6之间的效果?还是p5.1~p5.2之间的效果?也许前者是由于clear_DMD没选中造成的。