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

📄 hello.cpp

📁 linux操作系统下网络摄像机客户端程序
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	}        Wait();//	sleep(10);typedef BOOL (*STOPREALPLAY)(int);STOPREALPLAY stoprealplay = (STOPREALPLAY)dlsym(FuncLib1, "NET_DVR_StopRealPlay");cerror();typedef BOOL (*STOPSAVE)(int);STOPSAVE stopsave = (STOPREALPLAY)dlsym(FuncLib1, "NET_DVR_StopSaveRealData");cerror();        for(i=0; i<VIEW_NUM; i++)    	{    		if(glRealHandle[i] >= 0)    	    {    	    	(*stopsave)(glRealHandle[i]);    	        (*stoprealplay)(glRealHandle[i]);    	        glRealHandle[i] = -1;    	        gbExit = 0;				fprintf(stderr, "StopRealPlay \n");#ifdef ANALYZE				AnalyzeDataClose(i);//				HIKANA_Destroy(g_lAnalyzeHandle);#endif			    	    }         cerror();    	}    	sleep(1);typedef BOOL (*DRAWAREARELEASE)();DRAWAREARELEASE drawarearelease = (DRAWAREARELEASE)dlsym(FuncLib1, "NET_DVR_StopRealPlay");cerror();    	(*drawarearelease)();}const char *usageinfo[] = {"######### Usage #############","1. RealPlay.",/*"2. SearchFileList.","3. PlaybackByName.","4. PlaybackByTime.","5. SearchLogFile.","6. GetFileByName.","7. GetFileByTime.","8. SetupAlarmChan.","9. TestUpgrade.","10. Control PTZ.","11. FormatDisk.","12. TestSerial232.","13. TestSerial485.","14. TestRebootDVR.","15. TestShutDownDVR.","16. GetDevicePara.","17. GetNetPara.","18. GetPicturePara.","19. GetCompressPara.","20. GetRecordPara.","21. GetDecoderPara.","22. Get232Para.","23. GetAlarminPara.","24. GetAlarmoutPara.","25. SetDVRTime.","26. GetPreviewPara.","27. VideoOutPara.","28. GetUserPara.","29. GetExceptionPara.","30. GetFrameFormatPara.","31. TestVoiceCom.","32. GetBMPByTime.","33. GetConfigFile.","34. SetConfigFile.","35. Get485Para.","36. GetJEPGPicture.","37. ShowString.","38. SetDecInfo.","39. DecTransPort.","40. invalid.","41. invalid.","42. invalid.","43. invalid.","44. invalid.","45. GetDVRStatus.","46. CtrlDVRRecord","47. invalid.","48. invalid.","49. invalid.","50. GETDDNSCFG.","51. ScaleCFG.","52. ATMPortCFG.","53. TestDVRAlive.","54. SetAlarmOut.",*/"######### End ##############"};  int main(int argc,char*argv[]){  int cmd=0, usageinfolength;  NET_DVR_DEVICEINFO devInfo;  char localip[16] = "192.168.1.111";  char serverip[16] = "192.168.1.64"; /*QApplication app(argc,argv); QTextCodec::setCodecForTr(QTextCodec::codecForName("gb18030")); QWidget*pWidget = new QWidget; QLabel lable(pWidget); lable.setText(QObject::tr("同一个世界同一个梦想!")); pWidget->show();*/void *FuncLib1;FuncLib1 = dlopen("libhcnetsdk.so", RTLD_LAZY | RTLD_GLOBAL);cerror();void *FuncLib2;FuncLib2 = dlopen("libanalyze.so", RTLD_LAZY | RTLD_GLOBAL);cerror();typedef BOOL (*Init)();    // 定义函数指针,用来接受so文件里的函数Init init = (Init)dlsym(FuncLib1, "NET_DVR_Init");cerror();typedef DWORD (*GetLastError)();    // 定义函数指针,用来接受so文件里的函数GetLastError getlastError = (GetLastError)dlsym(FuncLib1, "NET_DVR_GetLastError");cerror();int iRet = 0;   (*init)();        //初始化if(!(*init)())	{		printf("HC Clientdemo Init failed\n");		return -1;	}cerror();typedef BOOL (*ST)(DWORD,DWORD);  ST st = (ST)dlsym(FuncLib1, "NET_DVR_SetConnectTime");cerror();(*st)(5000,3);              //设置链接超时时间和重连次数if (!(*st)(5000,3)) 	{		fprintf(stderr, "%d:errno[%d]\n", __LINE__, (*getlastError)());		return -1;	}cerror();typedef BOOL (*SMCALLBACK)(DWORD(*fMessCallBack)(int, char*, char*, DWORD, void*));typedef DWORD (*PMESSCALLBACK)(int, char*, char*, DWORD, void*);PMESSCALLBACK pmesscallback = gfMessCallBack;  SMCALLBACK smcallback = (SMCALLBACK)dlsym(FuncLib1, "NET_DVR_SetDVRMessCallBack");cerror();(*smcallback)(*pmesscallback);   //设置接收消息的回调函数cerror();typedef BOOL (*MESCB)(char*,WORD);MESCB mescb = (MESCB)dlsym(FuncLib1, "NET_DVR_StartListen");cerror();typedef BOOL (*CLEANUP)();CLEANUP cleanup = (CLEANUP)dlsym(FuncLib1, "NET_DVR_Cleanup");cerror(); (*mescb)(NULL, LOCAL_PORT);            //启动监听程序,NULL为自动获取PC机的IP地址,0为本地监听端口号 if((*mescb)(NULL, LOCAL_PORT) )	{	    printf("StartListen failed ... LastError[%d]\n", (*getlastError)());	    (*cleanup)();	    return -1;	}cerror();typedef int (*LOGIN)(char*,WORD,const char*,const char*,LPNET_DVR_DEVICEINFO);LOGIN login = (LOGIN)dlsym(FuncLib1,"NET_DVR_Login");cerror();typedef BOOL (*STOPLISTEN)();STOPLISTEN stoplisten = (STOPLISTEN)dlsym(FuncLib1, "NET_DVR_StopListen");cerror();glUserID = (*login)(serverip, PORT, USER_NAME, PASSWD, &devInfo); //用户注册,参数分别为硬盘录像机ip地址、硬盘录像机的端口号、用户名、登录密码、指向 NET_DVR_DEVICEINFO 设备信息结构的指针cerror();if(glUserID < 0) 	{		printf( "Login DVR failed ... LastError[%d]\n", (*getlastError)());			(*stoplisten)();		(*cleanup)();		return -1;	}cerror();printf("g_lUserID = %d\n", glUserID);	printf( "DevInfo.sSerialNumber[%s],\n"		"DevInfo.byAlarmInPortNum[%d],\n"		"DevInfo.byAlarmOutPortNum[%d],\n"		"DevInfo.byDiskNum[%d],\n"		"DevInfo.byDVRType[%d],\n"		"DevInfo.byChanNum[%d],\n"		"DevInfo.byStartChan[%d].\n",	        	        devInfo.sSerialNumber,	        devInfo.byAlarmInPortNum,	        devInfo.byAlarmOutPortNum,	        devInfo.byDiskNum,	        devInfo.byDVRType,	        devInfo.byChanNum,	        devInfo.byStartChan );usageinfolength = sizeof(usageinfo)/sizeof(*usageinfo);		for (int i = 0; i< usageinfolength; i++)				printf("%s\n", *(usageinfo+i));while(1)	{		printf("\nPlease input the valid number or Press 88 to quit:\n");		scanf("%d", &cmd );				switch(cmd)		{			case 1:				RealPlay(&devInfo); 				break;			/*case 2:				SearchFileList(&devInfo);				break;			case 3:				PlaybackByName();				break;			case 4:				PlaybackByTime(&devInfo);				break;			case 5:				SearchLogFile();				break;			case 6:				GetFileByName();				break;			case 7:				GetFileByTime(&devInfo);				break;			case 8:				SetupAlarmChan();				break;			case 9:				TestUpgrade();				break;			case 10:				ControlPTZ(&devInfo);				break;			case 11:				FormatDisk(&devInfo);				break;			case 12:				TestSerial232(&devInfo);				break;			case 13:				TestSerial485(&devInfo);				break;			case 14:				TestRebootDVR();				break;			case 15:				TestShutDownDVR();				break;			case 16:				GetDevicePara(&devInfo);				break;			case 17:				GetNetPara(&devInfo);				break;			case 18:				GetPicturePara(&devInfo);				break;			case 19:				GetCompressPara(&devInfo);				break;			case 20:				GetRecordPara(&devInfo);				break;			case 21:				GetDecoderPara(&devInfo);				break;			case 22:				Get232Para(&devInfo);				break;			case 23:				GetAlarminPara(&devInfo);				break;			case 24:				GetAlarmoutPara(&devInfo);				break;			case 25:				SetDVRTime();				break;			case 26:				GetPreviewPara();				break;			case 27:				VideoOutPara();				break;			case 28:				GetUserPara();				break;			case 29:				GetExceptionPara();				break;			case 30:				GetFrameFormatPara(&devInfo);				break;			case 31:				TestVoiceCom();				break;			case 32:				GetBMPByTime(&devInfo);				break;				case 33:				GetConfigFile();				break;				case 34:				SetConfigFile();				break;				case 35:				Get485Para(&devInfo);				break;				case 36:				GetJEPGPicture(&devInfo);				break;			case 37:				ShowString(&devInfo);				break;				case 38:				SetDecInfo(&devInfo);				break;			case 39:				DecTransPort();				break;			case 40:				printf("this number is invalid!\n");				break;			case 41:				printf("this number is invalid!\n");				break;			case 42:				printf("this number is invalid!\n");				break;			case 43:				printf("this number is invalid!\n");				break;			case 44:				printf("this number is invalid!\n");				break;			case 45:				GetDVRStatus(&devInfo);				break;			case 46:				CtrlDVRRecord(&devInfo);				break;			case 47:				printf("this number is invalid!\n");				break;			case 48:				printf("this number is invalid!\n");				break;			case 49:				printf("this number is invalid!\n");				break;			case 50:				GETDDNSCFG(&devInfo);				break;				case 51:				ScaleCFG(&devInfo);				break;				case 52:				ATMPortCFG(&devInfo);				break;				case 53:				TestDVRAlive();				break;				case 54:				SetAlarmOut();				break;	*/						case 88:				goto Exit;				break;			default:				printf("Wrong choices!\n");				break;		}	}	sleep(100);Exit:        typedef int (*LOGOUT)(int);LOGOUT logout = (LOGOUT)dlsym(FuncLib1,"NET_DVR_Logout");cerror();	(*logout)(glUserID);  cerror();	(*stoplisten)();#ifdef ANALYZE	AnalyzeDataCleanup();	#endif	printf("Cleanup\n");	(*cleanup)();	return 1;cerror(); //return app.exec();iRet = dlclose(FuncLib1);cerror();cout<<"1/n"<<endl;printf("ok!\n");}

⌨️ 快捷键说明

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