使用接口
具体实现
int channel = 1;
public bool SetGbCfg()
{
//修改结果
bool result = false;
//通道号
int lChannel = channel;
//获取结构体大小
Int32 nSize = Marshal.SizeOf(typeof(CHCNetSDK.NET_DVR_GBT28181_ACCESS_CFG));
//设置指针空间大小
IntPtr ptrGb = Marshal.AllocHGlobal(nSize);
//因为配置信息中很多都是不需要修改的,所以我先获取国标协议接入配置,再对想要修改的信息进行修改。
CHCNetSDK.NET_DVR_GBT28181_ACCESS_CFG gbcfg = GetGbCfg();//获取国标协议接入配置
//目前只对sip服务器地址进行修改
gbcfg.szServerID = "192.168.11.25";
//……
Marshal.StructureToPtr(gbcfg, ptrGb, false);//结构体转换为指针
bool Sflag = CHCNetSDK.NET_DVR_SetDVRConfig(m_lUserID, (UInt32)CHCNetSDK.NET_DVR_SET_GBT28181_ACCESS_CFG, lChannel, ptrGb, (UInt32)nSize);
if (Sflag)
{
result = true;
logMsg = string.Format("设备{0}修改国标成功!", ip);
Console.WriteLine(logMsg);
}
else
{
//错误码
uint iLastErr = CHCNetSDK.NET_DVR_GetLastError();
logMsg = string.Format("设备{0}修改国标信息失败!错误码为:{1}", ip, iLastErr);
Console.WriteLine(logMsg);
result = false;
}
Marshal.FreeHGlobal(ptrGb);//释放指针
return result;
}