C++ Builder调用辰昶仪器ChNetDriver库
文章目录
- 需要的程序
- 配置步骤流程
- 安装netframework
- 安装光谱仪驱动
- 库文件复制
- 注册COM组件
- 编写C++程序
- 调用步骤(常用函数)
- 联系方式
需要的程序
- 不低于编写C#库的netframework,本例中是netframework4.6.2
- 光谱仪驱动,正常安装即可
- 库文件,本例中的ChNetDriver.dll,CyUsb.dll
- 注册com组件的工具,RegAsm.exe和gacutil.exe
配置步骤流程
安装netframework
安装netframework4.6.2文件夹下的ndp46-targetingpack-kb3045566.exe,也可以从微软官网自行下载,版本号要不低于4.6
安装光谱仪驱动
根据正常流程安装光谱仪驱动,右键我的电脑,从设备管理器中找到对应的光谱仪名称,右键点击更新驱动,然后指向光谱仪驱动文件夹的对应平台版本驱动即可
库文件复制
将库文件的文件夹中ChNetDriver.dll和CyUSB.dll复制到VB的工程文件夹下即可
注册COM组件
- 将注册com组件工具文件夹下的gacutil.exe和RegAsm.exe复制到工程文件夹下
- 以管理员身份运行打开命令提示符
- 在命令提示符窗口中转到工程文件夹下(注册COM组件工具已经复制到该目录下)
- 输入命令regasm ChNetDriver.dll /tlb: ChNetDriver.tlb /codebase
- 命令提示符窗口提示注册成功则说明注册成功,并且会生成一个ChNetDriver.tlb的文件
- 在命令提示符窗口输入命令gacutil /i ChNetDriver.dll
编写C++程序
本例是使用RAD Studio XE4基于C++builder进行开发的VCL Forms Application项目。
调用步骤(常用函数)
主要是介绍常用的函数,其他函数功能可自行查询手册了解
- 实例化一个Wrapper类的变量wrapper,所有函数都通过wrapper调用
//添加头文件,否则会报错#include<ComObj.hpp>// wrapper为光谱仪的包装类 ,所有函数都通过wrapper获取Variant wrapper;// 初始化CoInitialize(NULL);// 获取com组件中的wrapper类实例wrapper = CreateOleObject("ChNetDriver.Wrapper");
- 第二步打开光谱仪设备接口
// 打开光谱仪,在获取wrapper实例之后首先要做这一步Variant openSpectrometers = wrapper.OleFunction("OpenAllSpectrometers");
- 以上两步的顺序不可变动,以下顺序可以随意调换。获取光谱仪的像素点数,参数为光谱仪索引,从0开始
// 像素点数也代表了波长数组和光谱数组的长度Variant numberOfPixels = wrapper.OleFunction<int>("GetNumberOfPixels", 0);
- 获取光谱仪的序列号,索引为光谱仪的台数索引
// 获取光谱仪序列号Variant serialNumber = wrapper.OleFunction<int>("GetSerialNumber",0);
- 获取光谱仪的波长数组,长度为步骤3中获取的数据
// 获取光谱仪的波长数组,并添加到listbox中显示Variant Wave = wrapper.OleFunction<int>("GetWavelengths", 0);if (Wave.IsArray()){for (int i = 0; i < 2048; i++){ListBox1->Items->Add(Wave.GetElement(i));}}
- 获取光谱仪采集的光谱数据,长度为步骤3中获取的数据
// 获取光谱仪的光谱强度Variant spectrum= wrapper.OleFunction<int>("GetSpectrum", 0);
- 设置光谱仪的积分时间,积分时间即为光谱仪的曝光时间,积分时间越长,采集的光谱强度值越大,需要返回的数据的时间越长,积分时间以微秒为单位,为整数类型(不同型号的光谱仪的最短积分时间不同)
// 设置光谱仪的积分时间,底层库的积分时间单位是微秒//一般型号的光谱仪的积分时间都是从毫秒开始的,所以要乘以1000long integrationTime= Edit4->Text.ToInt()*1000;wrapper.OleFunction<int, long>("SetIntegrationTime", 0, integrationTime);
- 设置光谱仪的平均次数,光谱仪会采集3次光谱,然后将3次的光谱数据求平均之后返回
//平均次数乘以积分时间是采集一次光谱的时间//例如平均次数是3次,积分时间是1秒,则采集一次光谱的时间为3秒long ave= Edit5->Text.ToInt();wrapper.OleFunction<int, long>("SetScansToAverage", 0, ave);
- 设置平滑平均
//设置光谱仪的平滑点数long bxr= Edit6->Text.ToInt();wrapper.OleFunction<int, long>("SetBoxcarWidth", 0, bxr);
- 释放资源
//释放 COM 接口的引用CoUninitialize();
联系方式
使用过程中有任何问题可以发邮件联系zmlin@choptics.com
C++ Builder调用辰昶仪器ChNetDriver库相关推荐
- 【转】matlab与C/C++混合编程——在Windows/Linux上调用Matlab编译的动态库文件
转自:matlab与C/C++混合编程--在Windows/Linux上调用Matlab编译的动态库文件_sinat_18131557的博客-CSDN博客 date version comments ...
- golang 相互引用_Golang与C互用以及调用C的so动态库和a静态库
Golang与C的关系非常密切,下面主要介绍在Golang中使用C. 一. Golang中嵌入C代码 1 package main 2 3 //#include 4 //#include 5 /* 6 ...
- 如何调用腾讯的IP库?
从网上搜的资料都太老了,是用js调用的,不能用 也报错,我想问下大家现在还能调用腾讯的Ip库吗?能的话怎么调用呢?
- 记录一次C语言调用go生成的动态库的踩坑过程
记录一次C语言调用go生成的动态库的踩坑过程 问题现象 由于某些特殊原因,需要在C语言中调用go语言生成的so,本来挺顺利,一切都运行的很好.突然某一天,不知道怎么回事,再一个新程序中无法正常运行了, ...
- android调用 qt so文件路径,Android Java调用Qt写的so库
有时候,我们反编译apk得到一个so库,如果直接使用这个so库的话,必须使用原来so库同样的package名字,才能用.这样人家反编译你的apk,就知道你侵犯了人家的版权.为了达到混淆的目的,我们可以 ...
- qt中调用matlab生成的动态库
前言: 前面已经实现了在vc中调用matlab生成的动态库,请参考:vc中调用matlab生成的动态库 现在在前面已经生成好的matlab动态库的基础上,在qt中调用matlab生成的动态库.生成ma ...
- python视频处理加速的库_Python调用ffmpeg开源视频处理库,批量处理视频
代码示例 # coding=utf-8 import os import subprocess import datetime import json, pprint import re, time ...
- java调用C或者C++动态库dll
java调用C或者C++动态库dll,本文章使用的是IntelliJ IDEA Community Edition 2021.2.3版本测试的 1.新建项目 linjie.demo,添加类HelloL ...
- AS3 调用外部SWF中元件库中的元件 【转】
参考文章: http://www.blueidea.com/tech/multimedia/2008/5842_2.asp 本文来自CSDN博客,转载请标明出处:http://blog.csdn.ne ...
最新文章
- 一个ant的简单实例
- 瞎忙不如不忙——读高德拉特《目标》有感
- BZOJ1355: [Baltic2009]Radio Transmission
- 百度API地图的标注不居中显示,而显示在左上角
- 理解spark闭包以及broadcast(转载)
- 如何使用Kubernetes的configmap通过环境变量注入到pod里
- 关于虚拟机vmware三种网络模式
- 跟踪异常–第5部分–使用Spring进行计划
- flutter PositionedTransition 实现缩放动画
- 辗转相除法应用之倒C语言实现
- Sparse Modeling of Intrinsic Correspondences
- 初识OPPM一页纸项目管理
- ora 01033 linux,ORA-01033: ORACLE initialization or shutdown in progres
- 中兴捧月——婚姻匹配问题
- 百度提升关键词排名优化软件,百度点击器,百度排名软件,百度竞价助手
- 小小的企业邮箱,大大的渠道天地 | 企业服务渠道商系列谈
- 使用腾讯地图来获取定位
- 对于2019全国高速公路视频联网工作实施方案的理解:视频上云网关与省级视频云平台
- iphone计算机怎样打开声音,mac系统启动的时候咚声音怎么开启或关闭?
- 安卓项目各文件夹的含义和用处