DLP 控制指令流程图

2024-02-25 16:10
文章标签 流程图 dlp 控制指令

本文主要是介绍DLP 控制指令流程图,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

按照上面的流程来一步步搭建属于自己的程序流程图.  这里,我是在QT上搭建的类.

创建一个类.我们姑且为 DLPControl{};

class DLPControl : public QObject
{Q_OBJECTPublic:DLPControl();~DLPControl();}

//接下来,创建上诉需要用到的各个寄存器指令接口以及接口需要用到的功能.

class DLPControl : public QObject
{Q_OBJECTpublic://控制DLP 状态指令.enum class StartOrStopEnum :int{Start,Pause,Stop};//控制DLP 显示模式指令.enum class DisplayModeEnum :int{Video,Pattern};//控制DLP 投影来源指令.enum class DisplaySourceEnum :int{RgbOrFpd,Flash};enum class TrrigerModeEnum :int{Mode0_Vsyn,Mode1_Internally,Mode2_TwoPattern,Mode3_Variable,Mode4_VsynForVariable};enum class MainBoxAccessEnum :unsigned int{Close,Image,Pattern,VariableExP //可变曝光.};enum  BitEnum :unsigned int{BIT1 = 1,BIT2 = 2,BIT3 = 3,BIT4 = 4,BIT5 = 5,BIT6 = 6,BIT7 = 7,BIT8 = 8,};enum  LEDEnum : unsigned int{NOLED = 0,RED = 1,GREEN = 2,YELLOW = 3, //green+redBLUE = 4,MAGENTA = 5,//blue+redCYAN = 6,	//blue+greenWHITE = 7	//blue+green+red};//0:1  bitenum class PatternTriggerEnum : unsigned int{Internal = 0,ExternalPositive = 1,ExternalNegative = 2,NoInputTrigger = 3 //不设置触发,对这一张pattern,DLP内部依旧有充分的曝光时间.};enum InvertPatternEnum :unsigned int{NoInvertPattern = 0,InvertPattern = 1};enum InsertPatternEnum : unsigned int{NoInsertPostPattern = 0,InsertBlackPattern = 1};enum SwapBufferEnum : unsigned int{NoSwapBuffer = 0,SwapBuffer = 1};enum TriggerOutEnum : unsigned int{TirgOut1Rise = 0,TrigOut1Continue = 1};DLPControl();~DLPControl();protected://封装一系列DLP指令集合.并设置成API可供调用的函数.//设置DLP状态开关WR 0x65//设置视频模式,或者显示模式WR 0x69//设置投影来源WR 0x6F//设置触发模式WR 0x70//设置访问模式W 0x77//设置曝光时间WR 0x66//设置imageIndex entries W 0x78//write an byte 0x00  0x7D//read an byte from  R 0x7D //HardWare status R 0x20//弹射硬件错误信息.//System status R 0x21//获取系统错误信息.//Main Status R 0x22//获取main 主状态命令提供了DMD park和DLPC350音序器、帧缓冲区和伽马校正的状态//计算0x5D寄存器  13byte 设计方式.};

以上只是定义了我们投影需要用到的操作DLP寄存器指令的接口,

这里就使用一个简单的例子,来作为如何对应GUI指导书里面的来书写指令.

比如GUI里开启 以及 关闭DLP投影的功能.

在类中定义.

//控制DLP 状态指令.

enum class StartOrStopEnum :int{Start,Pause,Stop};

声明

bool setDLPStartorStop(StartOrStopEnum _status = StartOrStopEnum::Start);

实现的方式.

bool DLPControl::setDLPStartorStop(StartOrStopEnum _status)
{//调用指令函数,bool commandStatus = false;switch (_status){case DLPControl::StartOrStopEnum::Start:{byte writei2cCommand[2] = { 0xE5,0x02 };if (_cameraApiControl != nullptr){commandStatus = _cameraApiControl->sendDLPCommand(writei2cCommand, 0x65);}break;}case DLPControl::StartOrStopEnum::Pause:{byte writei2cCommand[2] = { 0xE5,0x01 };if (_cameraApiControl != nullptr){commandStatus = _cameraApiControl->sendDLPCommand(writei2cCommand, 0x65);}break;}case DLPControl::StartOrStopEnum::Stop:{byte writei2cCommand[2] = { 0xE5,0x00 };if (_cameraApiControl != nullptr){commandStatus = _cameraApiControl->sendDLPCommand(writei2cCommand, 0x65);}break;}default:break;}return commandStatus;
}这里
_cameraApiControl->sendDLPCommand(writei2cCommand, 0x65);

这行代码是将上诉指令通过I2c发送到DLP的方式, 具体大家的主从设备是如何通信的, 这里大家各有各的实现方式,

byte writei2cCommand[2] = { 0xE5,0x00 };

writei2cCommand[0] :寄存器地址.

writei2cCommand[1]: 写入的控制指令.

注意:  0xE5 是 写的指令, 0x65是读取的指令, 这个地址之间的转换就是 0xE5 = 0x65|0x80 得到的,

切记这里的寄存器地址不要写错了.

再来说说,控制指令如何写 ,这里是告诉大家,要控制其启动,停止,需要写入一个字节的指令, 那么这里就需要 0x00 0x01(0000 0001) 这样的16进制来设计了.希望大家明白这里的区别..

以此类推,其它指令相信大家可以很快的设计出来其它基础指令..

实际上,这里只是一小步, 麻烦的是在后面的整套指令设计理解上,

基于在这个基础上,

这篇关于DLP 控制指令流程图的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/745996

相关文章

240907-Gradio插入Mermaid流程图并自适应浏览器高度

A. 最终效果 B. 示例代码 import gradio as grmermaid_code = """<iframe srcdoc='<!DOCTYPE html><html><head><meta charset="utf-8" /><meta name="viewport" content="width=device-width" /><title>My static Spa

Mysql 安装的步骤详解,安装流程图详文(每步都 带图 详解)

Mysql的安装流程----详细安装步骤,带图详细。 MySQL5.0版本的安装图解教程是给新手学习的,当前mysql5.0.96是最新的稳定版本。 mysql 下载地址 http://www.jb51.net/softs/2193.html 下面的是MySQL安装的图解,用的可执行文件安装的,详细说明了一下!打开下载的mysql安装文件mysql-5.0.27-win32.zip,双

【流程图】流程图符号

1、常用符号 2、例子(胡乱画的)

流程图符号速查:快速掌握流程图绘制要点

流程图是一种以图形化方式表示算法或过程的步骤和逻辑关系的图表,它通过使用一系列标准的符号和连接线来清晰地展示流程的顺序和决策点。这种表示方法不仅使得复杂的过程更加易于理解,而且也便于跟踪和优化。以下是对流程图的进一步扩写,包括其制作步骤、应用场景和一些实用技巧。流程图常常用来表示一些动态过程,通常会有一个“起点”, 可以有一个或多个终点,流程图可以直观、明确地表示动态过程从开始到结束的全部步骤,在

svg/webvowl 流程图创建

项目链接:https://code.csdn.net/u013372487/webvowl/tree/master

游戏启动器(更新器)流程图

在一个大型的端游项目中做了个启动器,流程是结合其他游戏的流程改进后。我以前也没有做过端游,算是新手吧,欢迎大家指出其中的不足指出!

flowable 根据xml 字符串生成流程图

//获取xml         InputStream stream = repositoryService.getProcessModel(processDefinitionId);                String result = IOUtils.toString(stream, StandardCharsets.UTF_8);         // 创建 X

24年一级消防工程师报名流程图解(建议电脑)

报考流程: 1、登录中国人事考试网,点击网上报名,登录帐户和密.码,找到“一级消防工程师”的报考入口,选择报考省份,进入在线报名界面。 2、报考人员阅读《承诺制告知书》和《报名须知》后,点击“已阅读并知晓”进入报考信息录入界面。 3、报考人员选择考试地点,核查点、报考级别、学历、学位、身份証、单位信息,系统显示相应的科目名称,正面打勾代表本人报考某门考试科目。 4、报考人员填写相关信息后,系统将生

@antv/g6 业务场景:流程图

1、流程图是流经一个系统的信息流、观点流或部件流的图形代表。在企业中,流程图主要用来说明某一过程。这种过程既可以是生产线上的工艺流程,也可以是完成一项任务必需的管理过程。业务场景流程图如下: 2、绘制流程图的 Tips 流程图一般是用标准的符号绘制的,并非严格要求使用这些方框,圆圈,菱形或其它标准的符号来制作一个流程图,但是标准符号确实能更清晰地展示事件的类别。以下是大多数情况常用的一组标

软件设计文档绘图:流程图、数据流图、UML

摘要: 在软件设计过程中,编写详尽的文档是不可或缺的一环,而图形化表达则是这些文档中至关重要的组成部分。为了清晰、直观地展示系统结构、数据处理流程以及设计思想,设计师们常常运用多种图表来辅助说明。其中,最为常用且高效的图形包括流程图、数据流图以及统一建模语言(UML)图。 流程图:流程图是描述一系列顺序性操作步骤的经典工具,它通过图形化的方式展示了从起点到终点的流程逻辑。在软件设计中,流程图