好友
阅读权限10
听众
最后登录1970-1-1
|
本帖最后由 侃遍天下无二人 于 2023-3-12 18:13 编辑
下面是海康热成像SDK 里面的接口
获取 设备的配置信息 NET_DVR_SetSTDConfig
函 数: BOOL NET_DVR_SetSTDConfig(LONG lUserID, DWORD dwCommand, LPNET_DVR_STD_CONFIG
lpConfigParam)
参 数: [in]lUserID
[in]dwCommand
[in&out]lpConfigParam
用户 ID 号,NET_DVR_Login_V40 的返回值
设备配置命令,详见表 5.42
配置输入输出参数,不同的配置功能对应不同的输入输出参数,
详见表 5.43
返回值: TRUE 表示成功,FALSE 表示失败。接口返回失败请调用 NET_DVR_GetLastError 获取错误码,通
过错误码判断出错原因。
说 明:
设置配置参数时,lpConfigParam 结构体里面的 lpOutBuffer 无效,设为 NULL。对于不同的配置功
能(dwCommand),lpConfigParam 中的 lpCondBuffer、lpInBuffer 分别对应不同的内容,具体如
表 5.43 所示。
 热成像相关功能配置只支持在热成像通道上配置。热成像重载云台和热成像中载云台设备,
有两个通道,第一个通道为可见光通道,第二个通道为热成像通道;热成像单目筒机只有一
个通道,为热成像通道。
表 5.42 设置参数配置命令
dwCommand 宏定义 含义 宏定义值
NET_DVR_SET_FIREDETECTION 设置火点检测参数 3637
NET_DVR_SET_FIREDETECTION_TRIGGER 设置火点检测联动配置 3639
NET_DVR_SET_LOWPOWER 设置低功耗配置 3733
NET_DVR_SET_ZOOMLINKAGE 设置变倍联动配置 3736
NET_DVR_SET_MANUALRANGING 设置手动测距参数 6677
NET_DVR_SET_THERMOMETRY_BASICPARAM 设置测温配置参数 3622
NET_DVR_SET_THERMOMETRY_PRESETINFO 设置测温预置点关联配置参数 3625
NET_DVR_SET_THERMOMETRY_ALARMRULE 设置测温预置点报警规则配置参数 3628
NET_DVR_SET_THERMOMETRY_DIFFCOMPARISON 设置测温预置点温差规则配置参数 3631
NET_DVR_SET_THERMOMETRY_TRIGGER 设置测温联动配置 3633
NET_DVR_SET_BAREDATAOVERLAY_CFG 设置热成像裸数据叠加 6661
NET_DVR_SET_THERMINTELL 设置热成像智能互斥配置参数 6713
NET_DVR_SET_MANUALDEICING 设置手动除冰配置 6679
表 5.43 设置参数配置命令
dwCommand 宏定义 lpCondBuffer lpInBuffer
NET_DVR_SET_FIREDETECTION 4 字节(DWORD)通道号 NET_DVR_FIREDETECTION_CFG
96
设备网络 SDK 编程指南
NET_DVR_SET_FIREDETECTION_TRIGGER 4 字节(DWORD)通道号 NET_DVR_EVENT_TRIGGER
NET_DVR_SET_LOWPOWER 4 字节(DWORD)通道号 NET_DVR_LOWPOWER
NET_DVR_SET_ZOOMLINKAGE 4 字节(DWORD)通道号 NET_DVR_ZOOMLINKAGE
NET_DVR_SET_MANUALRANGING 4 字节(DWORD)通道号 NET_DVR_MANUALRANGING_CFG
NET_DVR_SET_THERMOMETRY_BASICPARAM 4 字节(DWORD)通道号 NET_DVR_THERMOMETRY_BASICPARAM
NET_DVR_SET_THERMOMETRY_PRESETINFO NET_DVR_THERMOMETRY_COND NET_DVR_THERMOMETRY_PRESETINFO
NET_DVR_SET_THERMOMETRY_ALARMRULE NET_DVR_THERMOMETRY_COND NET_DVR_THERMOMETRY_ALARMRULE
NET_DVR_SET_THERMOMETRY_DIFFCOMPARISON NET_DVR_THERMOMETRY_COND NET_DVR_THERMOMETRY_DIFFCOMPARISON
NET_DVR_SET_THERMOMETRY_TRIGGER NET_DVR_THERMOMETRY_TRIGGER_COND NET_DVR_EVENT_TRIGGER
NET_DVR_SET_BAREDATAOVERLAY_CFG 4 字节(DWORD)通道号 NET_DVR_BAREDATAOVERLAY_CFG
NET_DVR_SET_THERMINTELL 4 字节(DWORD)通道号 NET_DVR_THERMINTELL_PARAM
NET_DVR_SET_MANUALDEICING 4 字节(DWORD)通道号 NET_DVR_MANUALDEICING_CFG
[C++] 纯文本查看 复制代码 //这是自开发 demo 中显示热成像图像的功能 如图
private void btnPreview_Click(object sender, EventArgs e)
{
if (m_lUserID < 0)
{
MessageBox.Show("Please login the device firstly!");
return;
}
if (m_bRecord)
{
MessageBox.Show("Please stop recording firstly!");
return;
}
if (m_lRealHandle < 0)
{
CHCNetSDK.NET_DVR_PREVIEWINFO lpPreviewInfo = new CHCNetSDK.NET_DVR_PREVIEWINFO();
lpPreviewInfo.hPlayWnd = RealPlayWnd.Handle;//预览窗口 live view window
lpPreviewInfo.lChannel = iChannelNum[(int)iSelIndex];//预览的设备通道 the device channel number
lpPreviewInfo.dwStreamType = 0;//码流类型:0-主码流,1-子码流,2-码流3,3-码流4,以此类推
lpPreviewInfo.dwLinkMode = 0;//连接方式:0- TCP方式,1- UDP方式,2- 多播方式,3- RTP方式,4-RTP/RTSP,5-RSTP/HTTP
lpPreviewInfo.bBlocked = true; //0- 非阻塞取流,1- 阻塞取流
lpPreviewInfo.dwDisplayBufNum = 15; //播放库显示缓冲区最大帧数
CHCNetSDK.NET_DVR_STD_CONFIG dvrStdConfig = new CHCNetSDK.NET_DVR_STD_CONFIG();
IntPtr pUser = IntPtr.Zero;//用户数据 user data
if (comboBoxView.SelectedIndex == 0)
{
//打开预览 Start live view
m_lRealHandle = CHCNetSDK.NET_DVR_RealPlay_V40(m_lUserID, ref lpPreviewInfo, null/*RealData*/, pUser);
var tt = CHCNetSDK.NET_DVR_GetSTDConfig(m_lUserID, 3636, ref dvrStdConfig); //这个方法是 获取设备的配置信息的 //但是由于我不知道这个参数 dvrStdConfig 应该传入什么值 所已 返回为false
if (tt == false)
{
var getErrorCode = CHCNetSDK.NET_DVR_GetLastError();
}
}
else
{
lpPreviewInfo.hPlayWnd = IntPtr.Zero;//预览窗口 live view window
m_ptrRealHandle = RealPlayWnd.Handle;
RealData = new CHCNetSDK.REALDATACALLBACK(RealDataCallBack);//预览实时流回调函数 real-time stream callback function
m_lRealHandle = CHCNetSDK.NET_DVR_RealPlay_V40(m_lUserID, ref lpPreviewInfo, RealData, pUser);
var tt = CHCNetSDK.NET_DVR_GetSTDConfig(m_lUserID, 3636, ref dvrStdConfig);
}
if (m_lRealHandle < 0)
{
iLastErr = CHCNetSDK.NET_DVR_GetLastError();
str = "NET_DVR_RealPlay_V40 failed, error code= " + iLastErr; //预览失败,输出错误号 failed to start live view, and output the error code.
DebugInfo(str);
return;
}
else
{
//预览成功
DebugInfo("NET_DVR_RealPlay_V40 succ!");
btnPreview.Text = "Stop View";
}
}
else
{
//停止预览 Stop live view
if (!CHCNetSDK.NET_DVR_StopRealPlay(m_lRealHandle))
{
iLastErr = CHCNetSDK.NET_DVR_GetLastError();
str = "NET_DVR_StopRealPlay failed, error code= " + iLastErr;
DebugInfo(str);
return;
}
if ((comboBoxView.SelectedIndex == 1) && (m_lPort>=0))
{
if (!PlayCtrl.PlayM4_Stop(m_lPort))
{
iLastErr = PlayCtrl.PlayM4_GetLastError(m_lPort);
str = "PlayM4_Stop failed, error code= " + iLastErr;
DebugInfo(str);
}
if (!PlayCtrl.PlayM4_CloseStream(m_lPort))
{
iLastErr = PlayCtrl.PlayM4_GetLastError(m_lPort);
str = "PlayM4_CloseStream failed, error code= " + iLastErr;
DebugInfo(str);
}
if (!PlayCtrl.PlayM4_FreePort(m_lPort))
{
iLastErr = PlayCtrl.PlayM4_GetLastError(m_lPort);
str = "PlayM4_FreePort failed, error code= " + iLastErr;
DebugInfo(str);
}
m_lPort = -1;
}
DebugInfo("NET_DVR_StopRealPlay succ!");
m_lRealHandle = -1;
btnPreview.Text = "Live View";
RealPlayWnd.Invalidate();//刷新窗口 refresh the window
}
return;
}
我想要实现的效果 就是自己写的demo 中 能获取到如图一中的那样 可以看到 热成像中 设置的 点 和 区域中的 温度信息
但是研究了很久还是不行 希望有相关大神能够指点迷津 万分感激 |
-
热成像设置的点和区域
-
自开发获取热成像图像demo
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|