开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 146|回复: 5
收起左侧

[易语言] ToupcamDeviceV2数组缓冲区怎么用易语言调用

[复制链接]
结帖率:50% (1/2)
发表于 2025-7-23 14:07:49 | 显示全部楼层 |阅读模式   安徽省芜湖市
15精币
有个DLL,想调用返回摄像头的ID(名称),现在可以获取摄像头的数量,但是不知道ToupcamDeviceV2数组缓冲区该怎么整?附件有DLL和手册,哪位大神帮看下。

toupcam.7z

2.51 MB, 下载次数: 1

722 - 副本.e

3.71 KB, 下载次数: 1


回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值无答案申请取消悬赏投诉有答案未采纳为最佳
结帖率:50% (1/2)

签到天数: 1 天

 楼主| 发表于 2025-7-23 14:08:58 | 显示全部楼层   安徽省芜湖市
Toupcam_EnumV2


返回值:非负整数, 枚举到的相机数目

参数:ToupcamDeviceV2数组缓冲区

说明:调用该函数枚举计算机上当前插上的Toupcam相机. 函数返回时, ToupcamDeviceV2缓冲区包含有枚举到的每个相机实例的信息. 如果不关心多个相机同时联入电脑的情况的话, 调用本函数枚举相机实例是可选的.

(1). 如下面的代码片段:


ToupcamDeviceV2 arr[TOUPCAM_MAX];
unsigned cnt = Toupcam_EnumV2(arr);
for (unsigned i = 0; i < cnt; ++i)
    ......




typedef struct{
#ifdef _WIN32
    const wchar_t*     name;     /* model name */
#else
    const char*        name;
#endif
    unsigned long long flag;     /* TOUPCAM_FLAG_xxx */
    unsigned           maxspeed; /* maximum speed level, Toupcam_get_MaxSpeed, the speed range = [0, maxspeed], closed interval */
    unsigned           preview;  /* number of preview resolution, Toupcam_get_ResolutionNumber */
    unsigned           still;    /* number of still resolution, Toupcam_get_StillResolutionNumber */
    unsigned           maxfanspeed; /* maximum fan speed */
    unsigned           ioctrol;     /* number of input/output control */
    float              xpixsz;      /* physical pixel size in micrometer */
    float              ypixsz;      /* physical pixel size in micrometer */
    ToupcamResolution  res[TOUPCAM_MAX];
}ToupcamModelV2; /* device model v2 */

typedef struct {
#if defined(_WIN32)
    wchar_t  displayname[64];    /* 显示名称: 型号名称或用户指定的自定义名称(如果有并且使用Toupcam_EnumWithName, 使用Toupcam_EnumV2返回型号名称) */
    wchar_t  id[64];             /* camId */
#else
    char     displayname[64];    /* 显示名称: 型号名称或用户指定的自定义名称(如果有并且使用Toupcam_EnumWithName, 使用Toupcam_EnumV2返回型号名称) */
    char     id[64];             /* camId */
#endif
    const ToupcamModelV2* model;
} ToupcamDeviceV2; /* device instance for enumerating */





name 型号名称
flag 位标记 (Bitwise flag)
TOUPCAM_FLAG_CMOS cmos传感器
TOUPCAM_FLAG_CCD_PROGRESSIVE 逐行ccd传感器
TOUPCAM_FLAG_CCD_INTERLACED 隔行ccd传感器
TOUPCAM_FLAG_ROI_HARDWARE 支持硬件ROI. 所谓硬件ROI和软件ROI, 前者设置sensor的工作参数, 从sensor读取的数据减少(从而提高帧率); 后者不改变sensor的工作参数, 从sensor读取的数据量不变, 上层软件把原始图像剪切到目标ROI矩形大小.
TOUPCAM_FLAG_MONO 黑白传感器
TOUPCAM_FLAG_BINSKIP_SUPPORTED 支持bin/skip模式, 请参考Toupcam_put_Mode和Toupcam_get_Mode
TOUPCAM_FLAG_USB30 USB3.0
TOUPCAM_FLAG_TEC TEC制冷相机
TOUPCAM_FLAG_USB30_OVER_USB20 usb3.0 相机被插入usb2.0端口
TOUPCAM_FLAG_ST4 支持ST4端口
TOUPCAM_FLAG_GETTEMPERATURE 支持读取温度, Toupcam_get_Temperature
TOUPCAM_FLAG_HIGH_FULLWELL 支持高满阱模式
TOUPCAM_FLAG_RAW10 TOUPCAM_PIXELFORMAT_RAW10 Pixel format, RAW 10 bits
TOUPCAM_FLAG_RAW11 TOUPCAM_PIXELFORMAT_RAW11 Pixel format, RAW 11 bits
TOUPCAM_FLAG_RAW12 TOUPCAM_PIXELFORMAT_RAW12 Pixel format, RAW 12 bits
TOUPCAM_FLAG_RAW12PACK TOUPCAM_PIXELFORMAT_RAW12PACK Pixel format, RAW 12 bits, packed
TOUPCAM_FLAG_RAW14 TOUPCAM_PIXELFORMAT_RAW14 Pixel format, RAW 14 bits
TOUPCAM_FLAG_RAW16 TOUPCAM_PIXELFORMAT_RAW16 Pixel format, RAW 16 bits
TOUPCAM_FLAG_FAN 支持制冷风扇
TOUPCAM_FLAG_TEC_ONOFF TEC制冷装置支持开启/关闭, TEC制冷的目标温度, 见:
TOUPCAM_OPTION_TEC
TOUPCAM_OPTION_TECTARGET
TOUPCAM_FLAG_ISP 支持硬件ISP (Image Signal Processing), 降低CPU进行图像处理时的CPU利用率
TOUPCAM_FLAG_TRIGGER_SOFTWARE 支持软件触发模式
TOUPCAM_FLAG_TRIGGER_EXTERNAL 支持外触发模式
TOUPCAM_FLAG_TRIGGER_SINGLE 只支持单帧触发模式, 单次触发只能获取一张图片.
TOUPCAM_FLAG_BLACKLEVEL 支持设置和获取
TOUPCAM_FLAG_FOCUSMOTOR 支持对焦马达
TOUPCAM_FLAG_AUTO_FOCUS 支持自动对焦
TOUPCAM_FLAG_BUFFER 帧缓冲
TOUPCAM_FLAG_CG 转换增益(Conversion Gain): LCG, HCG
TOUPCAM_FLAG_CGHDR 转换增益(Conversion Gain): LCG, HCG, HDR
TOUPCAM_FLAG_DDR 使用超大容量DDR(Double Data Rate SDRAM)作帧缓冲, 容量不少于一个完整帧
TOUPCAM_FLAG_EVENT_HARDWARE 硬件事件(如曝光开始、停止等等). 参阅这里和这里
TOUPCAM_FLAG_YUV411 TOUPCAM_PIXELFORMAT_YUV411 Pixel format
TOUPCAM_FLAG_YUV422 TOUPCAM_PIXELFORMAT_YUV422 Pixel format
TOUPCAM_FLAG_YUV444 TOUPCAM_PIXELFORMAT_YUV444 Pixel format
TOUPCAM_FLAG_RGB888 TOUPCAM_PIXELFORMAT_RGB888 Pixel format
TOUPCAM_FLAG_RAW8 TOUPCAM_PIXELFORMAT_RAW8 Pixel format, RAW 8 bits
TOUPCAM_FLAG_GMCY8 TOUPCAM_PIXELFORMAT_GMCY8 Pixel format, GMCY 8 bits
TOUPCAM_FLAG_GMCY12 TOUPCAM_PIXELFORMAT_GMCY12 Pixel format, GMCY 12 btis
TOUPCAM_FLAG_GLOBALSHUTTER 全局快门
TOUPCAM_FLAG_PRECISE_FRAMERATE 支持精确帧率和带宽, 参阅TOUPCAM_OPTION_PRECISE_FRAMERATE和TOUPCAM_OPTION_BANDWIDTH
TOUPCAM_FLAG_HEAT 支持加热去雾, 参阅TOUPCAM_OPTION_HEAT和TOUPCAM_OPTION_HEAT_MAX
TOUPCAM_FLAG_LOW_NOISE 支持低噪声模式(更高的信噪比,更低的帧率). 参阅TOUPCAM_OPTION_LOW_NOISE
TOUPCAM_FLAG_LEVELRANGE_HARDWARE 支持硬件Level range
TOUPCAM_FLAG_GIGE 1 Gigabit GigE
TOUPCAM_FLAG_10GIGE 10 Gigabit GigE
TOUPCAM_FLAG_5GIGE 5 Gigabit GigE
TOUPCAM_FLAG_25GIGE 2.5 Gigabit GigE
TOUPCAM_FLAG_CAMERALINK camera link
TOUPCAM_FLAG_CXP CXP: CoaXPress
TOUPCAM_FLAG_FILTERWHEEL 天文滤镜轮
TOUPCAM_FLAG_AUTOFOCUSER 天文电调焦
TOUPCAM_FLAG_LIGHTSOURCE 嵌入式光源控制
TOUPCAM_FLAG_LIGHT_SOURCE 独立式光源
TOUPCAM_FLAG_GHOPTO ghopto sensor(不支持增益, 转换增益支持高/中/低三种)
maxspeed 最大速度等级, 和函数Toupcam_get_MaxSpeed返回值相同. 速度范围是[0, maxspeed]. 可以通过Toupcam_put_Speed设置速度等级, Toupcam_get_Speed获取当前速度等级
preview 预览分辨率的个数. 和函数Toupcam_get_ResolutionNumber返回值相同
still 静态抓拍分辨率个数, 0表示不支持静态抓拍. 和函数Toupcam_get_StillResolutionNumber返回值相同
ioctrol IO控制的数目
xpixsz
ypixsz 物理像元大小(微米), 见Toupcam_get_PixelSize
res 分辨率宽度和高度
回复

使用道具 举报

结帖率:50% (1/2)

签到天数: 1 天

 楼主| 发表于 2025-7-23 14:09:36 | 显示全部楼层   安徽省芜湖市
2楼是 对应的函数,
回复

使用道具 举报

结帖率:50% (1/2)

签到天数: 1 天

 楼主| 发表于 2025-7-23 14:13:27 | 显示全部楼层   安徽省芜湖市


再发个图片,  
22222222222.png
回复

使用道具 举报

结帖率:100% (47/47)

签到天数: 3 天

发表于 2025-7-23 19:16:43 | 显示全部楼层   河北省秦皇岛市
  
子程序名返回值类型公开备 注
获取摄像头列表逻辑型 
参数名类 型参考可空数组备 注
设备列表文本型
变量名类 型静态数组备 注
设备数组TOUPCAM_DEVICE_V216"  ' 假设最多16个摄
设备数量整数型 
i整数型 
' 初始时设置数组大小为最大可能值
设备数量 = 取数组成员数 (设备数组)
' 调用枚举函数
如果 (Toupcam_EnumV2 (设备数组, 设备数量) = 0)
' 调整数组大小为实际设备数
重定义数组 (设备数组, 假, 设备数量)

' 清空结果数组
清除数组 (设备列表)

' 遍历设备数组
计次循环首 (设备数量, i)
' 将设备信息转换为文本格式
加入成员 (设备列表, 到文本 (设备数组[i].name) + " [" + 到文本 (设备数组[i].id) + "]")
计次循环尾

返回 ()
返回 ()

回复

使用道具 举报

结帖率:50% (1/2)

签到天数: 1 天

 楼主| 发表于 2025-7-24 09:04:21 | 显示全部楼层   安徽省芜湖市
2224848 发表于 2025-7-23 19:16
[e=1].子程序 获取摄像头列表, 逻辑型
.参数 设备列表, 文本型, 参考 数组
.局部变量 设备数组, TOUPCAM_DE ...

大佬,Toupcam_EnumV2 (设备数组, 设备数量) = 0  这个出错调用DLL命令“Toupcam_EnumV2”时传递了过多的参数, 这个函数只有一个函数啊

补充内容 (2025-7-24 09:04):
只有一个参数
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备2025452707号) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表