WIN大恒工业相机SDK开发
大恒工业相机SDK开发概览
- 一、开发环境搭建
- 1、C# 环境配置(VS2019)
- 2、C++ 环境配置(VS2019)
- 3、python 环境配置(Pycharm)
- 二、相机二次开发流程
- 三、相机相机属性参数配置
- 四、图像采集
- 单帧采集
- 回调采集
- 注意事项
- 千兆网相机心跳包
- HDR相机
一、开发环境搭建
1、Galaxy的安装
Galaxy_windows2023年5月版本
下载完成后对软件进行安装,切记自己的安装目录
安装完成后,检查自己的相机是否是网口相机,如果是网口相机则需要进行IP配置,当相机与计算及网口处于同一网段下才可以打开相机并控制相机。
IPConfig工具可以查找到所有网段的设备,通过自动配置的方式配置相机IP,此时网口必须为固定IP
复位设备 功效等同于给设备掉电上电一次,相机内程序全部重新加载
重连设备 功效等同于软件接口关闭设备,执行此操作后,允许用户重新打开设备
打开GalaxyViewer,软件中可以实现正常采集图像,表示SDK的系统环境正常。
Windows环境下当Galaxy安装完成后,会在安装目录下生成APIDll、示例程序、驱动、开发文档等
1、C# 环境配置(VS2019)
(1)新建一个C#控制台应用,工程》引用》右键》添加引用。点击浏览,在安装目录中选择dll
(2)在安装目录下》GalaxySDK》APIDll》根据工程架构不同,选择不同的dll文件,x64选择Win64,其他选择Win32
(3)根据目标框架不同,选择.NET3.5或者.NET4.0
选择项目菜单,点击属性,查看目标框架,
小于4.0版本,则使用.NET3.5大于4.0版本,则使用.NET4.0版本
(4)选择GxIAPINET.dll文件,点击添加,点击确定
(5)引用中显示已添加GxIAPINET后,在程序中添加using GxIAPINET
至此大恒工业相机C#的开发环境已经配置完毕
2、C++ 环境配置(VS2019)
(1)新建一个C++控制台项目
(2)打开项目菜单,选择工程属性
(3)配置头文件 选择C/C++》常规》包含附加目录
添加安装目录下GalaxySDK》Samples》C++SDK》inc文件夹
(4)配置链接器 选择链接器》常规》包含附加目录
查看自己的工程是x86还是x64
根据工程的不同,添加安装目录下GalaxySDK》Samples》C++SDK》lib》x86文件夹或者x64文件夹
(5)配置链接器 选择链接器》输入》附加依赖项,输入GxIAPICPPEx.lib
添加完链接库的名称后,再我们cpp工程中引用一下GalaxyIncludes库,就可以对我们的库进行调用了
至此大恒工业相机C++的开发环境已经配置完毕
3、python 环境配置(Pycharm)
(1)新建一个工程,将GalaxySDK》Samples》Python SDK中的gxipy文件夹拷贝到工程目录下
(2)添加PIL库,打开文件》Settings,选择Project:》Python Interpreter后,点击 + 号
(2)搜索pillow,选择这个库,点击Install Package进行安装
(3)安装numpy,搜索numpy选择这个库,点击Install Package进行安装
同样可以对我们的GalaxyAPI进行调用了
至此大恒工业相机python的开发环境已经配置完毕
二、相机二次开发流程
相机的初始化相关接口及功能
- IGXFactory接口类实现对全局资源的初始化
- IGXFactory接口类实现对所有设备的枚举
- IGXDeviceInfo接口类实现接收所有枚举出的设备信息
C++示例程序
IGXFactory::GetInstance().Init();//初始化
GxIAPICPP::gxdeviceinfo_vector deviceInfo; //定义设备列表
IGXFactory::GetInstance().UpdateDeviceList(1000, deviceInfo);//枚举设备
size_t num = deviceInfo.size();
std::cout <<"检测到相机" << num<<"台\n";//显示设备数量
C#示例程序
IGXFactory.GetInstance().Init();//初始化
List<IGXDeviceInfo> deviceInfo = new List<IGXDeviceInfo>();//创建一个设备列表
IGXFactory.GetInstance().UpdateDeviceList(1000, deviceInfo);//枚举所有设备
//IGXFactory.GetInstance().UpdateAllDeviceList(1000, deviceInfo);//枚举所有设备
int num = deviceInfo.Count;//获取设备数量
Console.WriteLine("检测到相机"+num+"台");
4. IGXDeviceInfo接口类获取设备的类型、厂商名称、 设备展示名称、设备SN号、 IP地址、用户id、mac地址等信息
GX_DEVICE_CLASS_LIST deviceclass = deviceInfo[0].GetDeviceClass();//获取设备类型USB3.0、USB2.0、Gige
string vendorname = deviceInfo[0].GetVendorName();//获取设备厂商名称
string displayname = deviceInfo[0].GetDisplayName();//获取设备展示名称
string ip = deviceInfo[0].GetIP();//获取设备ip地址
string sn = deviceInfo[0].GetSN();//获取设备SN号
string userid = deviceInfo[0].GetUserID();//获取设备用户id
string mac = deviceInfo[0].GetMAC();//获取设备mac地址
Python示例程序
DeviceManager接口类实现对设备的枚举、获取设备数量信息以及通过关键字获取设备的sn号、IP地址、Mac地址、厂商名称、设备名称等信息
大恒相机设备控制等功能
2. IGXFactory接口类通过sn、ip、userid、mac等方式打开设备,获取IGXDevice设备对象
CGXDevicePointer Cam;
/通过SN打开第一台设备
Cam = IGXFactory::GetInstance().OpenDeviceBySN(sn, GX_ACCESS_EXCLUSIVE);//通过IP打开第一台设备
Cam = IGXFactory::GetInstance().penDeviceByIP(ip,GX_ACCESS_EXCLUSIVE);//通过UserID打开第一台设备
Cam = IGXFactory::GetInstance().OpenDeviceByUserID(userid, GX_ACCESS_EXCLUSIVE);
Cam = IGXFactory::GetInstance().OpenDeviceByMAC(mac,GX_ACCESS_EXCLUSIVE);//通MAC地址打开第一台设备
IGXDevice Cam = null;
//通过SN打开第一台设备
Cam = IGXFactory.GetInstance().OpenDeviceBySN(sn, GX_ACCESS_MODE.GX_ACCESS_EXCLUSIVE);//通过IP打开第一台设备
Cam = IGXFactory.GetInstance().OpenDeviceByIP(ip, GX_ACCESS_MODE.GX_ACCESS_EXCLUSIVE);//通过UserID打开第一台设备
cam = IGXFactory.GetInstance().OpenDeviceByUserID(userid,GX_ACCESS_MODE.GX_ACCESS_EXCLUSIVE)//
Cam = IGXFactory.GetInstance().OpenDeviceByMAC(mac, GX_ACCESS_MODE.GX_ACCESS_EXCLUSIVE);//通MAC地址打开第一台设备
- GX_ACCESS_CONTROL以控制的方式打开相机
- GX_ACCESS_EXCLUSIVE以独占的方式发开相机
- GX_ACCESS_READONLY以只读的方式打开相机
IGXDevice接口类 获取流通到个数 获取IGXStream流通道对象获取IGXFeatureControl、GetRemoteFeatureControl 属性控制器
C++
//获取流通个数
int stream_num = Cam->GetStreamCount();
//打开第一台设备以及设备下面第一个流
CGXStreamPointer Cam_stream = Cam->OpenStream(0);
//获取远端设备属性控制器
CXFeatureControlpointer Cam RemoteControl = Cam->GetRemoteFeatureControl();
//获取本地属性控制器
CGXFeatureControlPointer Cam_Control = Cam->GetFeatureControl();
//关闭设备
Cam->Close();
C#
//获取流通道个数
uint stream_num = Cam.GetStreamCount();
//打开设备的流
IGXStream Cam_Stream = Cam.OpenStream();
//获取远端设备属性控制器
IGXFeatureControl Cam_RemoteControl = Cam.GetRemoteFeatureControl();
//获取本地属性控制器
IGXFeatureControl Cam_Control = Cam.GetFeatureControl();
//关闭设备
Cam.Close();
Python
DeviceManager接口类通过序号、sn、ip、userid、mac等方式打开设备,获取Device设备对象
# 通过索引序号打开设备
cam = device_manager.open_device_by_index(1)
# 通过SN号打开设备
cam = device_manager.open_device_by_sn(sn)
#通过ip地址开设备
cam = device_manager.open_device_by_ip(_ip)
# 通过mac地址打开设备
cam = device_manager .open_device_by_mac(mac)
# 通过user id打开设备
cam = device_manager.open_device_by_user_id(user_id)
Device接口类设置触发模式、曝光、增益、获取流通道个数、打开流通道、获取流通道对象、关闭设备
# set continuous acquisition
cam.TriggerMode.set(gx .GxSwitchEntry .0FF)
# set exposure
cam.ExposureTime.set(10000)
# set gain
cam.Gain.set(10.0)
stream_num = cam.get_stream_channel_num()
# start data acquisition
cam.stream_on()
cam_stream = cam.data_stream[0]
cam.close_device()
IGXStream、DataStream 接口对象注册、注销回调采集函数。
C++
//注册回调采集
pCaptureEventHandler = new CSampleCaptureEventHandler();
Cam_stream->RegisterCaptureCallback(pCaptureEventHandler,NULL);
//注销回调采集
Cam_stream->UnregisterCaptureCallback();
C#
//注册回调采集
Cam_Stream.RegisterCaptureCallback(Cam,OnFrameCallbackFun)
//注销回调采集
Cam_Stream.UnregisterCaptureCallback();
python
#注册采集回调函数
cam_stream.register_capture_callback(capture_callback)
# 注销采集回调函数
cam_stream.unregister_capture_caltback()
IGXStream、DataStream 接口对象进行单帧采集
C++
//单采集
CImageDataPointer image = Cam_stream->GetImage(2000);//超时ms
C#
//单采集
IImageData image = Cam_Stream.GetImage(2000);//超时ms
Python
# 单帧采集
raw_image = cam_stream.get_image()
三、相机相机属性参数配置
相机属性的数据类型
- IIntFeature IGXFeatureControl::GetIntFeature 整型
- IFloatFeature IGXFeatureControl::GetFloatFeature 浮点型
- IBoolFeature IGXFeatureControl::GetBoolFeature 布尔型
- IEnumFeature IGXFeatureControl::GetEnumFeature 枚举型
- IStringFeature IGXFeatureControl::GetStringFeature 字符串
- ICommandFeature IGXFeatureControl::GetCommandFeature 命令类型
- IRegisterFeature IGXFeatureControl::GetRegisterFeature 寄存器类型
当不知道该属性可以被写入时,可通过IsReadable()和IsWritable()方法进行查询如:
bool bIsReadable = cam_control.IsReadable("ExposureTime");
if (bIsReadable)cam_control.GetFloatFeature("ExposureTime").GetValue():
elseMessageBox.Show("此属性不可读");
bool bIsWriteable = cam_control.IsWritable("Gain");
if (bIswriteable)cam_control.GetFloatFeature("Gain").SetValue(6);
elseMessageBox.Show("此属性不可写"):
对于int类型和float类的属性,可以获取该参数可设置的最大值、最小值、步进值,而float类型还可以获取参数的单位
cam_control.GetIntFeature("width").GetInc();
cam_control.GetIntFeature("width").GetMin();
cam control.GetIntFeature("width").GetMax();
cam_control.GetFloatFeature("ExposureTime").GetMin();
cam_control.GetFloatFeature("ExposureTime").GetUnit()
cam_control.GetFloatFeature("ExposureTime").GetInc();
对于枚举类型的参数,可以获取该参数的枚举项列表
List<string> m_enum = cam_control.GetEnumFeature("AutoExposure").GetEnumEntryList();
对于字符串类型的参数,可以获取该参数的最大支持写入长度
long maxlength = cam_control.GetStringFeature("DeviceUserID").GetStringMaxLength();
四、图像采集
单帧采集
采集前必须先调用 StartGrab 开启流通道的采集,然后再给设备发送开采命令,否则开采命令无效
//单采集
Cam_Stream.StartGrab();
Cam_RemoteControl.GetCommandFeature("AcquisitionStart").Execute();
IImageData image = Cam_Stream.GetImage(1000);//超时ms
if (image.Getstatus() == GX_FRAME_STATUS_LIST.GX FRAME_STATUS_SUCCESS)
{
//获取到完整帧图像进行图像处理
image.Destroy();
}
回调采集
采集图像必须先注册回调采集函数,再调用 StartGrab 开启流通道采集、再给设备发送开采命令
//注册回调采集
Cam_Stream.RegisterCaptureCallback(Cam, OnFrameCallbackFun):
Cam_Stream.StartGrab();
Cam_RemoteControl.GetCommandFeature("AcquisitionStart").Execute();
回调函数
public static void OnFrameCallbackFun(object obj, IFrameData objIFrameData)
{
//用户私有参数 obi,用户在注册回调函数的时候传入了设备对象,在回调函数内部可以将此
//参数还原为用户私有参数IGXDevice objIGXDevice = obj as IGXDevice;if (objIFrameData.Getstatus() == GX_FRAME_STATUS_LIST.GX FRAME_STATUS_SUCCESS){UInt64 nwidth = objIFrameData.Getwidth();UInt64 nHeight = objiFrameData.GetHeight();GX_PIXEL_FORMATENTRY emPixelFormat = objIFrameData.GetPixelFormat();}
}
回调采集图像的数据类型为IFrameData,单帧采集的数据类型为IImageData,两者的区别为IImageData类多了一个**Destroy()**方法
注意事项
千兆网相机心跳包
在程序正常运行时、相机和PC之间会有心跳检测信号保证相机处在连线状态。
当程序在Debug时,程序在单步调试时PC无法给发送心跳包、因此当停留时间超过心跳检测超时时间,则会出现设备掉线情况。
通常将心跳检测时间设置的大一些解决这种情况
打开设备后,没有执行关闭设备程序,退出了程序,再次调用相机时,会出现设备无法打开的情况。
使用Ipconfig中的复位设备,将设备状态重置
HDR相机
HDR相机中参数与其他相机的参数有冲突现象,因此在使用HDR相机时,直接参考HDR相机例程
当HDR相机开启HDR模式后,其他例程在相机初始话曝光等参数时,会出现错误。最好运行HDR专用例程。
PS:哈,终于写完了,累死,其他品牌的相机用到再说
有问题可以加QQ群:907873019
【大恒工业相机SDK开发C#版】相机初始化,采集第一张图像
相关文章:
![](https://img-blog.csdnimg.cn/b91ca03795284a4488b2a34a94e703be.png#pic_center)
WIN大恒工业相机SDK开发
大恒工业相机SDK开发概览 一、开发环境搭建1、C# 环境配置(VS2019)2、C 环境配置(VS2019)3、python 环境配置(Pycharm) 二、相机二次开发流程三、相机相机属性参数配置四、图像采集单帧采集回调采集 注意事…...
![](https://www.ngui.cc/images/no-images.jpg)
qt qml中各种Layout之间是如何对齐的?
问题描述: qt qml中下一个RowLayout如何对齐顶部到上方的ColumnLayout的底部略低一些间隔的位置? 我们怎么使用achors去锚定位置? 这些都是可以用anchors锚定属性,以及margin来设置的。 解决办法: 要实现将下一个R…...
![](https://www.ngui.cc/images/no-images.jpg)
Immutable.js 进行js的复制
介绍 在提供不可变(Immutable)数据结构的支持。不可变数据是指一旦创建后就不能被修改的数据,每次对数据进行更新都会返回一个新的数据对象,而原始数据保持不变。 使用 日常中我们使用的拷贝 (1) var arr { } ; arr2 arr ; …...
![](https://img-blog.csdnimg.cn/d82ab2a87a99461fa91a01d7c73f7e53.png)
java动态生成excel并且需要合并单元格
java动态生成excel并且需要合并单元格 先上图看一下预期效果 集成poi <dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-base</artifactId><version>4.0.0</version> </dependency> <dependency><…...
![](https://img-blog.csdnimg.cn/1b934526ee52476195f3be8365be53ee.png)
JMeter启动时常见的错误
很多小伙伴在学工具这一块时,安装也是很吃力的一个问题,之前记得有说过怎么安装jmeter这个工具。那么你要启动jmeter的时候,一些粉丝就会碰到如下几个问题。 1.解压下载好的jmeter安装,Windows 平台,双击 jmeter/bin …...
![](https://www.ngui.cc/images/no-images.jpg)
python pandas 排序
Series的排序: Series.sort_values(ascendingTrue, inplaceFalse) 参数说明: ascending:默认为True升序排序,为False降序排序inplace:是否修改原始Series DataFrame的排序: DataFrame.sort_values(by, as…...
![](https://img-blog.csdnimg.cn/606fad8498d74b7bbc38e9c41bfe11e6.png)
前后端分离式项目架构流程复盘之宿舍管理系统
文章目录 🐒个人主页🏅JavaEE系列专栏📖前言:【🎇前端】先创建Vue-cli项目(版本2.6.10,仅包含babel),请选择此项目并创建 【整理简化项目模板】【🎀创建路由】…...
![](https://www.ngui.cc/images/no-images.jpg)
Linux nohup 命令详解
nohup是Linux/Unix系统中非常有用的命令之一。它允许您在后台运行命令或脚本,并且在退出终端会话后仍然保持运行。这对于长时间运行的任务或进程非常有用,特别是当您需要离开终端但希望任务继续运行时。 nohup命令语法 nohup命令的基本语法如下&#x…...
![](https://img-blog.csdnimg.cn/img_convert/2b7431fbecfed7f85876371620f72aa8.png)
VoxWeekly|The Sandbox 生态周报|20230731
欢迎来到由 The Sandbox 发布的《VoxWeekly》。我们会在每周发布,对上一周 The Sandbox 生态系统所发生的事情进行总结。 如果你喜欢我们内容,欢迎与朋友和家人分享。请订阅我们的 Medium 、关注我们的 Twitter,并加入 Discord 社区…...
![](https://www.ngui.cc/images/no-images.jpg)
编程导航算法村第九关 | 二分查找
编程导航算法村第九关 | 二分查找 LeetCode852.这个题的要求有点啰嗦,核心意思就是在数组中的某位位置i开始,从0到i是递增的,从i1 到数组最后是递减的,让你找到这个最高点。 详细要求是:符合下列属性的数组 arr 称为山…...
![](https://www.ngui.cc/images/no-images.jpg)
linux 下安装部署flask项目
FlaskDemo 命名为test.py # codingutf-8 from flask import Flaskapp Flask(__name__)app.route("/") def index():return "test"if __name__ __main__:app.debug True# 这里host一定要写0.0.0.0 写127.0.0.1的无法访问 ——_——app.run(host"0.…...
![](https://www.ngui.cc/images/no-images.jpg)
在Vue里,将当前窗口截图,并将数据base64转为png格式传给服务器
目录 前言 1、将当前窗口截图,并将数据存储下来 2、定义将base64转png的方法 3、完整代码 总结 前言 记录来源于需求 1、将当前窗口截图,并将数据存储下来 export default { data() {return {image: // 存储数据} }mounted() {setTimeout(() >…...
![](https://www.ngui.cc/images/no-images.jpg)
Echarts图表Java后端生成Base64图片格式,POI写入Base64图片到Word中
Echarts图表Java后端生成请看上篇,此篇为Base64图片插入Word文档中Java后台生成ECharts图片,并以Base64字符串返回_青冘的博客-CSDN博客 try {XWPFParagraph xwpfParagraphimage doc.createParagraph(); // 创建图片段落xwpfParagraphimage.setAlignment(Paragraph…...
![](https://www.ngui.cc/images/no-images.jpg)
【AI】《动手学-深度学习-PyTorch版》笔记(十二):从零开始实现softmax回归
AI学习目录汇总 1、什么是特征? 对于图像算法,每个像素可以视为一个特征,例如图像的分辨率为28x28,则有784个特征。而且常常将二维的图像像素矩阵展开为长度为784的向量。 2、权重和偏置的规模 本例中,将使用Fashion-MNIST数据集,它是一个服装分类数据集,可以将服装…...
![](https://img-blog.csdnimg.cn/img_convert/954195688ceed25c73496afa8e5e44f2.jpeg)
汽车用功率电感器
支持车载用被动元件的可靠性认证测试标准“AEC-Q200”的绕线铁氧体功率电感器 LCXH 系列实现商品化,推出了“LCXHF3030QK”等 6 个尺寸的 64 款商品。 这些商品均是用于汽车车身类及信息娱乐等信息类的电源电路用扼流线圈及噪音滤波器的功率电感器。 LCXH 系列与民生…...
![](https://img-blog.csdnimg.cn/72f267ec0c384d33ac05ce960a2b65d0.png)
上传图片视频
分布式文件系统MinIo MinIO提供多个语言版本SDK的支持,下边找到java版本的文档: 地址:https://docs.min.io/docs/java-client-quickstart-guide.html MinIO测试(上传、删除、下载) public class MinioTest {MinioC…...
![](https://www.ngui.cc/images/no-images.jpg)
【UE5】UE5与Python Socket通信中文数据接收不全
最近在使用UE的Socket模块与Python服务器进行通信时遇到了一些坑,特此记录一下。 先来复现一下问题,这里只截取关键代码。 UE端: bool ASoc::SendMsg(const FString& Msg) {TSharedRef<FInternetAddr> TargetAddr ISocketSubsy…...
![](https://www.ngui.cc/images/no-images.jpg)
一些有难度的c++题目思路讲解--第一期2023/8/8 小Q的修炼与旷野大计算
说明: 本期博客将分为10篇讲解一些有点挑战的题目,第一期是所有人都可以看到,但后面的关注我才能看到哦!有望大家的支持!谢谢! 题目链接(按顺序) [NOI2013] 小Q的修炼 - 洛谷 小Q的修炼[NOI2013] 小Q的修炼 - 洛谷 [NOI2016] 旷野大计算 - 洛谷旷野大计算[NOI2016] 旷野…...
![](https://www.ngui.cc/images/no-images.jpg)
Node.js:path文件路径操作模块
path 用于文件路径操作 官方文档 https://nodejs.org/api/path.html 一个不错的解释 ┌─────────────────────┬────────────┐│ dir │ base │├──────┬ ├──────┬─────┤│ ro…...
![](https://img-blog.csdnimg.cn/ea6eb9dc2e3a426b878997181d8ac62a.png)
基于 CentOS 7 构建 LVS-DR 群集
文章目录 一、LVS-DR集群介绍1.LVS的基本工作原理2. LVS-DR模式工作原理 二、 LVS-DR模式应用特点三、LVS – DR 模式集群构建1.前期环境准备2.配置LVS3.配置RS 一、LVS-DR集群介绍 1.LVS的基本工作原理 当用户向负载均衡调度器(Director Server)发起请…...
机器学习笔记 - 使用 Tensorflow 从头开始构建您自己的对象检测器
一、简述 之前的文章是利用了VGG16的预训练模型,然后构造完全连接的层标头以输出预测的边界框坐标,但是不包含对象标签的分类。 机器学习笔记 - 使用Keras、TensorFlow框架进行自定义数据集目标检测训练_keras 制作 目标检测 数据集_坐望云起的博客-CSDN博客学习如何训练自定…...
![](https://img-blog.csdnimg.cn/img_convert/925c7bded99ca144315abbfd5bc96f33.png)
IELAB-网络工程师的路由答疑10问(2)
各位小伙伴们,接下来的问题可能有些难度,你们做好准备了吗? 7. 动态路由协议做了啥? 这次咱们先解决第一个比较棘手的问题--路由协议,相信初学的同学对于路由协议的学习总是或多或少有些问题,呐ÿ…...
![](https://img-blog.csdnimg.cn/img_convert/7cc5e9afd0e915c876677c0523c9b41e.jpeg)
聚观早报|iPhone 15预计9月22日上市;一加Open渲染图曝光
【聚观365】8月7日消息 iPhone 15预计9月22日上市一加Open渲染图曝光Redmi K60至尊版细节曝光小米14 Pro屏幕细节曝光vivo V3正式发布,执着自研“影像芯片” iPhone 15预计9月22日上市 上周有多位消息人士透露,多家合作的电信运营商已要求员工不要在9月…...
![](https://www.ngui.cc/images/no-images.jpg)
react-use-gesture
介绍 react-use-gesture 是一个基于 React Hooks 的库,用于处理手势事件。它提供了一种简单且灵活的方式来处理用户的手势操作,例如拖动、缩放、旋转等。 使用 安装 react-use-gesture: npm install react-use-gesture 导入所需的模块和钩…...
![](https://www.ngui.cc/images/no-images.jpg)
智能中的“一体两面”
一体两面指的是一个事物或问题同时具有两个相互依存、互为对立的方面或特征。一体表示两个方面或特征是不可分割、相互联系的整体,两面表示这两个方面或特征又是相互对立、互相影响的。常用于描述矛盾问题或复杂事物的本质。例如,事物的存在与发展、利益…...
![](https://img-blog.csdnimg.cn/6cb07cd8f92a469b81501f6b694b66e7.png)
前端渲染数据
在前端对接受后端数据处理后返回的接收值的时候,为了解决数据过于庞大,而对数据进行简化处理例如性别,经常会使用1, 0这俩个来代替文字的男,女。以下就是前端渲染的具体实现。 以下是部分代码 <el-table-columnpr…...
![](https://img-blog.csdnimg.cn/08af6424a459411190e6a3acdda67abc.png)
【Linux操作系统】深入了解系统编程gdb调试工具
在软件开发过程中,调试是一个非常重要的步骤。无论是在开发新的软件还是维护现有的代码,调试都是解决问题的关键。对于Linux开发者来说,GDB是一个非常有用的调试工具。在本文中,我们将探讨Linux中使用GDB进行调试的方法和技巧。 …...
![](https://img-blog.csdnimg.cn/c73e1b0e95af407cb46d604f568992db.png)
linux 安装go 1.18版本
首先去官网找到对应的版本 直接下载下来(如果服务器可以直接访问到go 官网也可以wget直接下载到服务器) 然后把该包上传到linux 的/usr/local 目录下 然后直接解压安装该包: sudo tar -C /usr/local -zxvf go1.18.10.linux-amd64.tar.gz 然…...
![](https://img-blog.csdnimg.cn/d19e25cb0e06415c8879297a9d5f0eef.png)
LLVM笔记2 Intermediate Representation (IR)
参考链接:https://llvm.org/devmtg/2019-04/slides/Tutorial-Bridgers-LLVM_IR_tutorial.pdf https://zhuanlan.zhihu.com/p/163063995 https://zhuanlan.zhihu.com/p/163328574 文章目录 IR的布局1. IR语法2.IR递归函数3.使用迭代的方式4.全局变量5.LLVM’s type s…...
![](https://www.ngui.cc/images/no-images.jpg)
篇五:原型模式:复制对象的秘密
篇五:"原型模式:复制对象的秘密" 设计模式是软件开发中的重要组成部分,原型模式是创建型设计模式中的一种。原型模式旨在通过复制现有对象来创建新的对象,而不是通过调用构造函数来创建。在C中,原型模式广泛…...
![](/images/no-images.jpg)
橙子建站是哪个平台/在线工具seo
1957年 约翰巴科斯(John Backus)创建了是全世界第一套高阶语言:FORTRAN。 1959年 葛丽丝霍普(Grace Hopper)创造了现代第一个编译器A-0 系统,以及商用电脑编程语言“COBOL”,被誉为COBOL之母 。…...
![](https://common.cnblogs.com/images/copycode.gif)
建设网站项目的目的/软件开发流程
原文转载于:https://www.cnblogs.com/qicosmos/p/3517166.html并行库充分利用多核的优势,通过并行运算提高程序效率,本文主要介绍c中两个知名的并行库,一个是intel开发的TBB,一个是微软开发的PPL。本文只介绍其基本的常用用法&…...
![](https://img-blog.csdnimg.cn/20200928203058171.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3hpYW96aGVnYWE=,size_16,color_FFFFFF,t_70#pic_center)
网站建设学什么/百度一下浏览器下载安装
SpringBoot使用缓存注解 文章目录 SpringBoot使用缓存注解缓存注解入门三个步骤一、入门体验缓存注解1. 创建SpringBoot项目,仅导入web和cache的依赖2. 在启动类上加上EnableCaching注解3.在方法上使用缓存注解演示效果,多次访问该方法二、整合mysql环境…...
![](/images/no-images.jpg)
现在公众号做电影网站的发展/武汉关键词排名工具
今天做一本书上的例子,结果代码不能正常运行,查询了一下,是语法过时了,书其实是新买的,出版不久。 过时代码如下 var connectrequire(connect); connect.createServer(connect.static("../angularjs") ).lis…...
![](http://5b0988e595225.cdn.sohucs.com/images/20181012/5f683c24efd84306bee70cf583b3e8a2.png)
程序员自己做项目网站/公司网站如何推广
emcms是国内第一个开源外贸的网站管理系统,目前大多数的外贸网站都是用的semcms系统,该系统兼容许多浏览器,像IE,google,360极速浏览器都能非常好的兼容,官方semcms有php版本,asp版本,我们SINE对其安全检测的同时发现该…...
![](http://static.blog.csdn.net/images/save_snippets.png)
南京做网站企业/广东seo
在浏览地图时,移动鼠标经过某个对象或者POI的时候,能够提示该对象的名称对用户来说是很实用的,本文讲述在Arcgis for Js中,用两种不同的方式来实现该效果。 为了有个直观的概念,先给大家看看实现后的效果: …...