⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 netsdkdemo.h

📁 它是一个可以实时交互的嵌入式软件系统
💻 H
字号:
// NetSDKDemo.h : main header file for the NETSDKDEMO application
//

#if !defined(AFX_NETSDKDEMO_H__F984CDA1_DB9B_44E5_ADD8_44A8BB6D6E9D__INCLUDED_)
#define AFX_NETSDKDEMO_H__F984CDA1_DB9B_44E5_ADD8_44A8BB6D6E9D__INCLUDED_
//new
#define WM_IR_RECIEVE (WM_USER+110)
#define COUNT_BUTTON  18				//注意18个按键前7个是发射给电视机的,后11个是控制电脑的
#define REMOTE_CONTROL "遥控器"
//new
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#ifndef __AFXWIN_H__
	#error include 'stdafx.h' before including this file for PCH
#endif

#include "resource.h"		// main symbols
#include "ComPort.h"

/////////////////////////////////////////////////////////////////////////////
// CNetSDKDemoApp:
// See NetSDKDemo.cpp for the implementation of this class
//

//设备信息列表结构
typedef struct _DeviceNode {
	char UserNanme[20]; //登录用户名
	char Name[20];   //设备名称
	char IP[20];     //设备IP地址字符
	LONG LoginID;    //设备登录iD
	NET_DEVICEINFO Info;  //设备信息
	NET_CLIENT_STATE State; //设备状态
	DWORD TotalKbps;     //设备当前总码流
	DWORD Max_Kbps;     //设置最大网络流量
}DeviceNode;

//当前画面显示内容的类型
typedef enum _SplitType{
	SPLIT_TYPE_NULL = 0,   //空白
	SPLIT_TYPE_MONITOR,    //网络监视
	SPLIT_TYPE_NETPLAY,    //网络回放
	SPLIT_TYPE_MULTIPLAY,  //网络预览
	SPLIT_TYPE_FILEPLAY,    //本地文件播放
	SPLIT_TYPE_CYCLEMONITOR,   //轮循监视
	SPLIT_TYPE_PBBYTIME		//通过时间回放
}SplitType;

//视频参数结构
typedef union _VideoParam{
		BYTE  bParam[4];
		DWORD dwParam; //视频参数
}VideoParam;

//画面分割通道显示信息(可以定义成type/param,param自定义)
typedef struct _SplitInfoNode
{
	SplitType Type;     //显示类型 空白/监视/网络回放/本地回放等
	DWORD iHandle;  //用于记录通道id(监视通道ID/播放文件iD等)
//	DWORD nTimeCount;   //时间计数,用于码流统计 
//	DWORD nKBPS;       //码流统计//sdk增加接口后不用应用层统计
	int isSaveData;  //数据是否保存(直接sdk保存)
	FILE *SavecbFileRaw; //保存回调原始数据
	FILE *SavecbFileStd; //保存回调mp4数据
	FILE *SavecbFileYUV; //保存回调yuv数据
	FILE *SavecbFilePcm;  //保存回调pcm数据
	VideoParam nVideoParam;  //视频参数
	void *Param;  //信息参数,对于不同的显示有不同的参数
}SplitInfoNode;



class CNetSDKDemoApp : public CWinApp
{
public:
	CNetSDKDemoApp();
	
	//new
	bool m_preview;
	void SelDvr(int Dvr);
	void RemoteControl(int button);
	void InitComm(int port);
	LsComm::CComPort m_ComPort;
	CByteArray			m_ir_data[COUNT_BUTTON];		//红外线按键码
	CByteArray			m_tv_data[7];					//电视遥控器的按键,2006/10/25
	CByteArray			m_learn_data[3];	//学习的3次按键码
	int					m_learn_count;		//学习次数
	bool				m_learn;			//是否学习模式
	int m_ir_fn;							//遥控器当前的功能建
	bool m_OnOff;						//遥控器开关按动次数
	HANDLE irEvent;
	
	//new
// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CNetSDKDemoApp)
	public:
	virtual BOOL InitInstance();
	virtual int ExitInstance();
	//}}AFX_VIRTUAL

// Implementation

	//{{AFX_MSG(CNetSDKDemoApp)
		// NOTE - the ClassWizard will add and remove member functions here.
		//    DO NOT EDIT what you see in these blocks of generated code !
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

/*
class CDeviceListProtector //全局变量保护类
{
public:
	CDeviceListProtector(CPtrList **list):m_ptrdevicelist(list)
	{
		*m_ptrdevicelist = new CPtrList(sizeof(DeviceNode));
		*list = *m_ptrdevicelist;
	}
	~CDeviceListProtector()
	{
		int count = (*m_ptrdevicelist)->GetCount();
		for (int i = 0; i < count; i++)
		{
			delete (DeviceNode *)((*m_ptrdevicelist)->GetTail());
			(*m_ptrdevicelist)->RemoveTail();
		}
		(*m_ptrdevicelist)->RemoveAll();
		delete (*m_ptrdevicelist);
	}
private:
	CPtrList **m_ptrdevicelist;
};

class CCSLock
{
public:
	CCSLock(CRITICAL_SECTION& cs):m_cs(cs)
	{
		EnterCriticalSection(&m_cs);
	}
	
	~CCSLock()
	{
		LeaveCriticalSection(&m_cs);
	}
private:
	CRITICAL_SECTION& m_cs;
};
*/

//extern CRITICAL_SECTION g_cs;

//全局变量,用于保存程序所在目录的路径名
extern CString g_strWorkDir;

//全局变量,用于保存设备列表
//extern CPtrList  *g_ptrdevicelist ;

//全局函数,将系统时间格式转换为大华定义的网络时间格式
void g_systimetodhtime(SYSTEMTIME *systime , NET_TIME *dhtime);

//全局函数,将大华定义的网络时间格式转换为系统时间格式
void g_dhtimetosystime(NET_TIME *dhtime , SYSTEMTIME *systime);

//全局函数,将大华定义的网络时间转换为字符串显示
CString g_TimeOutString(NET_TIME *dhtime );

//全局函数, 计算两时间点之差
DWORD g_IntervalTime(NET_TIME *stime, NET_TIME *etime );

void g_SetWndStaticText(CWnd * pWnd);
/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_NETSDKDEMO_H__F984CDA1_DB9B_44E5_ADD8_44A8BB6D6E9D__INCLUDED_)

//new
void OnReceiveData(LPVOID pSender,void* pBuf,DWORD InBufferCount);
//new

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -