【C语言项目】多臂井径电子测井成像项目(一)

2023-10-27

1、目的和意义

本项目为获取矿藏地层的油气当量和及时精确地测量含油、含气层的压力及温度值的需求,辅助生产管理人员完成对油井的温度、压强、流量监控功能。通过油井井压力器对地层进行探测,通过串口通信将数据从井温压力器发至解析中心端,解析中心解包完成后利用 Lagrange 插值算法对数据进行处理,让数据看着更加流畅。通过 OpenGl 图形技术将地层的数据模拟成折线图和柱形图呈现。
在这里插入图片描述

2、本章概述

本章主要介绍了多臂井径电子测井成像项目中的项目来源,应用场景。所需相关的技术栈及环境配置。

3、串口R232

1、 串口通讯协议简介
串口:串口是一个泛称,UART,TTL,RS232,RS485都遵循类似的通信时序协议,因此都被通称为串口。
串行接口 (Serial Interface)是指数据一位一位地顺序传送。其特点是通信线路简单,只要一对传输线就可以实现双向通信(可以直接利用电话线作为传输线),从而大大降低了成本,特别适用于远距离通信,但传送速度较慢。
在这里插入图片描述
2、RS-232标准接口
RS232:是电子工业协会(Electronic Industries Association,EIA) 制定的异步传输标准接口,同时对应着电平标准和通信协议(时序),其电平标准:+3V~+15V对应0,-3V~-15V对应1。rs232 的逻辑电平和TTL 不一样但是协议一样。
RS-232标准接口(又称EIA RS-232)是常用的串行通信接口标准之一,全名是“数据终端设备( DTE)和数据通信设备(DCE)之间串行二进制数据交换接口技术标准。

3、Rs-232 特点
信号线少使用3条~9条信号线就可以实现全双工通信,采用三条信号线(接收线、发送线和信号地)能实现简单的全双工通信过程
波特率是指从一设备发到另一设备的波特率,即每秒钟多少比特bits per second (bit/s)。典型的波特率是110, 300, 600, 1200, 2400, 4800,9600, 14400, 19200,等bit/s。一般通信两端设备都要设为相同的波特率,但有些设备也可以设置为自动检测波特率。
奇偶效验Parity是用来验证数据的正确性。奇偶校验一般不使用,如果使用,那么既可以做奇校验(Odd Parity)也可以做偶校验(Even Parity)。
停止位是在每个字节传输之后发送的,它用来帮助接受信号方硬件重同步。
字节大小

4、OpenGL

OpenGL(英语:Open Graphics Library,译名:开放图形库或者“开放式图形库”)是用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程接口(API)。这个接口由近350个不同的函数调用组成,用来绘制从简单的图形到比较复杂的三维景象。而另一种程序接口系统是仅用于Microsoft Windows上的Direct3D。OpenGL常用于CAD、虚拟现实、科学可视化程序和电子游戏开发。
OpenGL的高效实现(利用了图形加速硬件)存在于Windows,部分UNIX平台和Mac OS。这些实现一般由显示设备厂商提供,而且非常依赖于该厂商提供的硬件。开放源代码库Mesa是一个纯基于软件的图形API,它的代码兼容于OpenGL。但是,由于许可证的原因,它只声称是一个“非常相似”的API。
当今,OpenGL是视频行业领域中用于处理2D/3D图形的最为广泛接纳的API,在此基础上,为了用于计算机视觉技术的研究,从而催生了各种计算机平台上的应用功能以及设备上的许多应用程序。其是独立于视窗操作系统以及操作系统平台,可以进行多种不同领域的开发和内容创作,简而言之,其帮助研发人员能够实现PC、工作站、超级计算机以及各种工控机等硬件设备上实现高性能、对于视觉要求极高的高视觉图形处理软件的开发。

5、开发环境

1、Windows10或更高
2、VS2019或更高
3、Virtual Serial Port Driver Pro
4、OpengGL

6、环境配置

6.1、VS安装OpenGL

1、创建任意一个项目,然后点击【项目】->【管理NuGet程序包…】。
在这里插入图片描述
2、在搜索框内搜索nupengl,然后点击右侧的安装,随便安装那一个另一个都会一起安装。
在这里插入图片描述
3、创建一个*.c文件,包含一下代码,编译看能够通过。则表示环境配置成功。

#include <GL/glut.h>
int main()
{
		glLoadIdentity();
		return 0;
}

6.2、虚拟串口生成工具

下载Virtual Serial Port Driver Pro,官网直达

打开是下面这个界面,有14天的试用期。
在这里插入图片描述

1、点击创建Pair创建串口
在这里插入图片描述
2、使用默认生成的串口名称即可,然后点击Create即可完成。
在这里插入图片描述
3、如果有数据交互和程序占用将会在这里显示
在这里插入图片描述

下面这张图就是程序绑定串口后的效果。
在这里插入图片描述

7、成品速览

主要分为三个软件,一个软件为数据采集这里担当数据发送占用一个串口。第二个软件是数据解析担当数据接收占用另一个串口,第三个软件是通过和第二个软件实现共享内存来进行绘制井壁情况。
在这里插入图片描述

参考文献

1、浅谈井下电子压力计的现状和应用:yjbys.com/bylw/lunwenfanwen/48405.html
2、中油测井国产三维感应成像仪推广应用: http://news.cnpc.com.cn/system/2022/09/13/030079670.shtml
3、百度百科 OpenGL:https://baike.baidu.com/item/OpenGL/238984
4、sl4209三臂井径测井仪https://www.docin.com/p-2583333820.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【C语言项目】多臂井径电子测井成像项目(一) 的相关文章

  • openGL转png

    我正在尝试将包含大量纹理 没有移动 的 openGL 编辑 我画的卡片 thx unwind 转换为一个 PNG 文件 我可以在框架的另一部分中使用该文件我正在与 有 C 库可以做到这一点吗 thanks 如果您的意思只是 获取由 Open
  • 如何安装适用于 Windows C++ 的最新版本 OpenGL?

    我正在使用 Visual Studio 2010 运行 Windows 7 包含的 OpenGL 版本 include 是版本 1 1 我希望使用合理的当前版本 某种版本 3 或 4 我需要做什么才能达到该状态 OpenGL SDK 页面位
  • OpenGL 中连续暂停

    void keyPress unsigned char key int x int y int i switch key case f i 3 while i x pos 3 sleep 100 glutPostRedisplay 上面是在
  • PyQt5 的 OpenGL 模块和版本控制问题(调用不正确的 _QOpenGLFunctions_(ver))

    我一直在努力得到PyQt5 helloGL 示例代码 https github com baoboa pyqt5 blob master examples opengl hellogl py编译 当我尝试构建解决方案时 我得到 Traceb
  • 将四元数旋转转换为旋转矩阵?

    基本上 给定一个四元数 qx qy qz qw 我如何将其转换为OpenGL旋转矩阵 我也对哪个矩阵行是 向上 向右 向前 等感兴趣 我有一个四元数的相机旋转 我需要在向量中 以下代码基于四元数 qw qx qy qz 其中顺序基于 Boo
  • GL_CULL_FACE使所有对象消失

    我正在尝试在 openGL3 3 中创建一些简单的多边形 我有两种类型的对象 具有以下属性 对象 1 10 个顶点 按顺序在下面列出 存储在GL ARRAY BUFFER并使用GL TRIANGLE FAN v x y z w v 0 0
  • OpenGL缓冲区更新[重复]

    这个问题在这里已经有答案了 目前我正在编写一个模拟水的程序 以下是我所做的步骤 创建水面 平面 创建VAO 创建顶点缓冲区对象 在其中存储法线和顶点 将指针绑定到此 VBO 创建索引缓冲区对象 然后我使用 glDrawElements 渲染
  • Visual Studio 2010 中的 SOIL 设置

    我无法得到SOIL http www lonesock net soil html正确使用 Visual Studio 2010 我远非 VS 专家 但据我所知 只需执行以下步骤即可使环境正常运行 属性 gt gt C C gt 常规 gt
  • 如何仅剪切剪切平面的交集(而不是并集)?

    在 OpenGL JOGL 中 当使用多个剪切平面时 似乎会应用所有剪切平面的并集 我想要的是路口要应用的所有剪裁平面 这可能吗 请参阅下面的简化二维示例 Edit An example of clipping by vertex shad
  • OpenGL:仅获取模板缓冲区而没有深度缓冲区?

    我想获取一个模板缓冲区 但如果可能的话 不要承受附加深度缓冲区的开销 因为我不会使用它 我发现的大多数资源表明 虽然模板缓冲区是可选的 例如 排除它以利于获得更高的深度缓冲区精度 但我还没有看到任何请求并成功获取仅 8 位模板缓冲区的代码
  • 使用 pyclutter 进行编程

    我是混乱 和 pyclutter 的新手 我一直在尝试使用 pyclutter 到目前为止我还没有找到任何好的教程 我的意思是没有真正正确解释的内容 我看到了几个示例程序 但是当我尝试使用 pyclutter 时 我没有得到任何好的结果 这
  • SSBO 是更大的 UBO?

    我目前正在 OpenGL 4 3 中使用 UBO 进行渲染 以将所有常量数据存储在 GPU 上 诸如材料描述 矩阵等内容 它可以工作 但是 UBO 的小尺寸 我的实现为 64kB 迫使我多次切换缓冲区 减慢渲染速度 我正在寻找类似的方法来存
  • OpenGL:如何检查用户是否支持glGenBuffers()?

    我检查了文档 它说 OpenGL 版本必须至少为 1 5 才能制作glGenBuffers 工作 用户使用的是1 5版本但是函数调用会导致崩溃 这是文档中的错误 还是用户的驱动程序问题 我正在用这个glGenBuffers 对于VBO 我如
  • LWJGL3:重载的 glBufferData 方法

    我正在使用 LWJGL 调用 OpenGL 函数 方法org lwjgl opengl GL15 glBufferData http javadoc lwjgl org org lwjgl opengl GL15 html glBuffer
  • 纹理映射 C++ OpenGL

    我已经阅读了相关内容 包括 Nehe 和此处的解决方案 但我找不到具体的答案 我正在尝试加载一张名为stars jpg 的照片 我想通过使用 uv 坐标映射它来使其成为场景的背景 方法是 glBegin GL QUADS glTexCoor
  • 如何使用现代 OpenGL 在透视投影中绘制对象的正交轴? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我有带有透视投影的 3D 场景 我还可以选择场景中的一个对象 我需要为选定的对象绘制轴 问题是轴不会在透视投影中保存其大小 如果物体远离眼睛
  • 如何在 SceneKit 中以编程方式将 png 纹理包裹在立方体周围

    我是 SceneKit 的新手 试图让一些基本的东西工作 但到目前为止还没有取得多大成功 由于某种原因 当我尝试将 png 纹理应用于 CNBox 时 我最终除了黑色之外什么也没有 这是我在 viewDidLoad 中的简单代码片段 let
  • 云或烟雾的粒子系统

    我正在尝试使用 OpenGL 和 CUDA 制作一个简单的用于云和烟雾模拟的粒子系统 如何使粒子系统中的粒子表现得像真正的云或烟雾在低湍流风中的表现 我现在遇到的一些问题是 颗粒聚集成一个大球 粒子扩散到无限远 粒子突然弹射离开 我已经完成
  • LibGDX纹理混合与OpenGL混合功能

    在 libGdx 中 我试图创建一个成形纹理 采用完全可见的矩形纹理并将其遮罩以获得成形纹理 如下所示 在这里我在矩形上测试它 但我想在任何形状上使用它 我调查过本教程 http www learnopengles com tag addi
  • MATLAB 图形渲染:OpenGL 与 Painters?

    当谈到使用哪个渲染器来处理 MATLAB 图形或何时它很重要时 我一无所知 但我遇到过某些示例 其中does matter plot 0 0 ko markersize 50 linewidth 8 set gcf renderer ope

随机推荐

  • 查看svn账号密码

    参考他人链接 https blog csdn net Amnesiac666 article details 121355958 1 找到svn存放目录 窝的本地 C Users lenovo AppData Roaming Subvers
  • 编写高质量代码:改善Java程序的151个建议(第9章:多线程和并发___建议118~124)

    多线程技术可以更好地利用系统资源 减少用户的响应时间 提高系统的性能和效率 但同时也增加了系统的复杂性和运维难度 特别是在高并发 大压力 高可靠性的项目中 线程资源的同步 抢占 互斥都需要谨慎考虑 以避免产生性能损耗和线程死锁 建议118
  • TOPSIS算法与熵权法

    TOPSIS算法 英文全称Technique for Order Preference by Similarity to Ideal Solution 翻译为逼近理想解排序法 使用层次分析法进行评价时 n不能很大 最多就15个 再多就没有随
  • GPT,GPT-2,GPT-3,InstructGPT的进化之路

    ChatGPT 火遍圈内外 突然之间 好多人开始想要了解 NLP 这个领域 想知道 ChatGPT 到底是个什么 作为在这个行业奋斗5年的从业者 真的很开心让人们知道有一群人在干着这么样的一件事情 这也是我结合各位大佬的文章 总结下GPT
  • Encode and Decode TinyURL

    TinyURL is a URL shortening service where you enter a URL such as https leetcode com problems design tinyurl and it retu
  • 服务器运维基础知识,IDC机房服务器运维基础知识

    机房的服务器的维护是机房运维工作的重点 合理的机房环境对于服务器来说是非常的重要的 随着这年经济的发展 机房也在不断的在很多的方面进行调整 今天我们学习IDC机房服务器运维基础知识 1 关于电力 1 定期检测机房内市电及 UPS 电源是否稳
  • 目标跟踪检测算法(二)——检测与跟踪

    第二阶段 2010年 2012年 检测与跟踪相结合的方法出现 在该阶段 对已存的目标追踪算法出现了两种比较公认的分类 一种是基于生成模型的方法 一种是基于判别模型的方法 在第一阶段中的方法都属于前一种 而基于判别的方法是指通过分类来做跟踪
  • 深入梯度下降(Gradient Descent)

    深入梯度下降 Gradient Descent 算法 1 问题的引出 对于吴恩达的线性回归 先化一个为一个特征 1 0为偏置项 最后列出的误差函数如下图所示 手动求解 目标是优化J 1 其实就是神经网络里面的loss函数 使得loss值最小
  • 事件响应步骤:安全响应的6个步骤

    当发生安全事件时 每一秒都很重要 恶意软件感染迅速蔓延 勒索软件可能造成灾难性破坏 被破坏的帐户可用于特权升级 从而使攻击者获得更敏感的资产 无论您的组织规模大小 您都应该拥有一支训练有素的事件响应团队 负责在事件发生时立即采取行动 请继续
  • 关于vue中的Pinia的介绍

    Pinia是什么 Pinia是vue的专属状态库 允许开发者跨组件或页面共享状态 他是一个拥有组合式API的Vue状态管理库 支持vue2和vue3 有三个概念 state getter 和 action 我们可以假设这些概念相当于组件中的
  • (c语言)输入两个数字,分别计算并输出这两个数字的和、差、乘积、商

    include
  • 【机器学习 - 3】:数据归一化(最值归一化、均值方差归一化)

    文章目录 数据归一化的使用 最值归一化 均值方差归一化 常用 在sklearn中调用归一化 鸢尾花数据归一化 数据归一化的使用 为什么要使用数据归一化 举个例子 例如我们要使用KNN算法来预测肿瘤为良性肿瘤或恶性肿瘤 以下是一些数据 肿瘤大
  • JetBrains IntelliJ IDEA 20191.1中文版

    JetBrains IntelliJ IDEA 20191 1中文版推荐给大家 JetBrains IntelliJ IDEA 20191 1版本更新 修复了几个重要的修复程序 例如 KT 30117 KT 29427 KT 30137和K
  • 八大常用排序

    目录 前言 一 插入排序 二 希尔排序 三 选择排序 四 堆排序 五 冒泡排序 六 快速排序 七 归并排序 八 计数排序 九 稳定性 前言 此篇博客都是以升序为例 降序只需更改部分地方即可 所以只排一个 一 插入排序 单趟排序 如上图 在一
  • JAVA IO流综合案例

    需求 d aaa 3 jpg 复制到 d bbb 1 jpg 思路分析 先读去3 jpg 然后读的同时写入1 jpg package com yang import java io 需求 d aaa 3 jpg 复制到 d bbb 1 jp
  • 【CyberSecurityLearning 40】网络地址配置(Kali/CentOS)

    目录 一 关闭networkmanager服务 二 查看IP 三 配置IP 路由 DNS kali设置root用户登录 一 关闭networkmanager服务 因为这个 小电脑 开启后会替你管理网络 帮你去配 只要它开着会产生很多副作用
  • 背包问题,硬币问题

    至少有4种背包问题 1 01背包 2 部分背包 3 完全背包 4 多重背包 只有部分背包是个贪心问题 其他的都是以01背包为基础的动归问题 部分背包问题 把物品按价值密度从大到小排序 W i V i 然后从第一种物品开始 尽可能多拿当前物品
  • 小程序,Taro,生成图片并保存本地相册

    注意 不能在子组件里使用 import Taro Component Config from tarojs taro import index scss import View from tarojs components class Au
  • 什么是编译器宏?

    在阅读vue的官方文档时 提到了defineProps defineEmits defineExpose withDefaults都是编译器宏 那什么是宏定义 什么又是编译器宏呢 1 什么是宏定义 宏定义是一种将一段代码或值 进行简单替换的
  • 【C语言项目】多臂井径电子测井成像项目(一)

    目录 1 目的和意义 2 本章概述 3 串口R232 4 OpenGL 5 开发环境 6 环境配置 6 1 VS安装OpenGL 6 2 虚拟串口生成工具 7 成品速览 参考文献 1 目的和意义 本项目为获取矿藏地层的油气当量和及时精确地测