Browse Source

#IQBX #comment mod_snapshot 编译通过2

80374374 2 years ago
parent
commit
c051319735

+ 14 - 14
Module/mod_SalesRecorder/Event.h

@@ -1,17 +1,17 @@
 #pragma once
 
-#define LOG_EVT_UI_RECORDFAILED							0x31500001				//双录失败
-#define LOG_EVT_SALESRECORD_ENTITY_EXCEPTION			0x31500002				//销售双录实体异常
-#define LOG_EVT_SALESRECORD_FINISHED					0x31500003				//销售双录结束
-#define LOG_EVT_UI_RECORDFAILED_FOR_HIGHCPU				0x31500004				//CPU太高双录失败
+#define LOG_EVT_UI_RECORDFAILED							0x31500001				//鍙屽綍澶辫触
+#define LOG_EVT_SALESRECORD_ENTITY_EXCEPTION			0x31500002				//閿€鍞�弻褰曞疄浣撳紓甯�
+#define LOG_EVT_SALESRECORD_FINISHED					0x31500003				//閿€鍞�弻褰曠粨鏉�
+#define LOG_EVT_UI_RECORDFAILED_FOR_HIGHCPU				0x31500004				//CPU澶�珮鍙屽綍澶辫触
 
-#define LOG_EVT_START_REMOTERECORD						0x31510001				//开始远程双录
-#define LOG_EVT_STOP_REMOTERECORD						0x31510002				//停止远程双录
-#define LOG_EVT_SALESRECORD_FAILED						0x31510003				//销售双录失败		
-#define LOG_EVT_RECORD_ENTITY_EXCEPTION					0x31510004				//销售双录实体异常	
-#define LOG_EVT_RECORD_FINISHED							0x31510005				//销售双录已完成
-#define LOG_EVT_RECORD_SAVED_SUCCESS					0x31510006				//双录文件保存成功
-#define LOG_EVT_RECORD_SAVED_FAILED						0x31510007				//双录文件保存失败
-#define LOG_EVT_RECORD_INVALID_FILE						0x31510008				//无效的录像文件
-#define LOG_EVT_RECORD_FILESIZE							0x31510009				//双录文件大小
-#define LOG_EVT_ENTITY_RESTART							0x3151000A				//实体自动重启
+#define LOG_EVT_START_REMOTERECORD						0x31510001				//寮€濮嬭繙绋嬪弻褰�
+#define LOG_EVT_STOP_REMOTERECORD						0x31510002				//鍋滄�杩滅▼鍙屽綍
+#define LOG_EVT_SALESRECORD_FAILED						0x31510003				//閿€鍞�弻褰曞け璐�		
+#define LOG_EVT_RECORD_ENTITY_EXCEPTION					0x31510004				//閿€鍞�弻褰曞疄浣撳紓甯�	
+#define LOG_EVT_RECORD_FINISHED							0x31510005				//閿€鍞�弻褰曞凡瀹屾垚
+#define LOG_EVT_RECORD_SAVED_SUCCESS					0x31510006				//鍙屽綍鏂囦欢淇濆瓨鎴愬姛
+#define LOG_EVT_RECORD_SAVED_FAILED						0x31510007				//鍙屽綍鏂囦欢淇濆瓨澶辫触
+#define LOG_EVT_RECORD_INVALID_FILE						0x31510008				//鏃犳晥鐨勫綍鍍忔枃浠�
+#define LOG_EVT_RECORD_FILESIZE							0x31510009				//鍙屽綍鏂囦欢澶у皬
+#define LOG_EVT_ENTITY_RESTART							0x3151000A				//瀹炰綋鑷�姩閲嶅惎

+ 4 - 1
Module/mod_snapshot/CMakeLists.txt

@@ -16,6 +16,8 @@ target_include_directories(${MODULE_NAME} PRIVATE
 	${CONAN_RVCFRAMEWORK_ROOT}/include
     ${MODULE_BASE_DIR}
 	${MODULE_BASE_DIR}/include
+	${MODULE_BASE_DIR}/mod_assistantchannel
+	#${MODULE_BASE_DIR}/mod_mediacontroller
 	${CONAN_INCLUDE_DIRS_OPENCV}
     ${CONAN_INCLUDE_DIRS_OPENCV}/opencv
 	${OTHER_LIB_PLATFORM_BASE_DIR}/libvideoqueue
@@ -38,9 +40,10 @@ set(${MODULE_PREFIX}_LIBS  ${MODULE_BASE_LIBS}
     ${CONAN_PKG_LIBS_FFMPEG} 
 	libvideoframework
 	videoqueue
+	libbizchan
+	libfacecapture
 	${CONAN_LIBS_OPENCV}
 )
-
 else(WIN32)
 set(${MODULE_PREFIX}_LIBS  ${MODULE_BASE_ALL_LIBS}
     ${CONAN_PKG_LIBS_FFMPEG} 

+ 23 - 34
Module/mod_snapshot/mod_snapshot.cpp

@@ -5,9 +5,9 @@
 #include "Event.h"
 #include "mod_mediacontroller/Event.h"
 
-#include "mod_assistantchannel/AssistantChannel_client_g.h"
+#include "AssistantChannel_client_g.h"
 using namespace AssistantChannel;
-#include "mod_assistantchannel/chan_protocol.h"
+#include "chan_protocol.h"
 
 #include "rvc_media_common.h"
 #include "libvideoqueue.h"
@@ -29,6 +29,10 @@ using namespace AssistantChannel;
 #define OPT_CAP_TIMEOUT 100
 #endif
 
+#ifndef RVC_SAFE_DELETE
+#define RVC_SAFE_DELETE(p) { if(p){ (p)->SafeDelete();  (p)=NULL;} }
+#endif //RVC_SAFE_DELETE
+
 class CPhotoCaptureEntity;
 
 class ChannelClient : public ChannelService_ClientBase
@@ -39,7 +43,6 @@ public:
 };
 
 
-// 旋转180�
 int RotationDown(unsigned char* src, int srcW, int srcH, int channel)
 {
 	unsigned char* tempSrc = NULL;
@@ -95,17 +98,20 @@ public:
 
 	ErrorCodeEnum __OnStart(ErrorCodeEnum preOperationError)
 	{
-		if (preOperationError != Error_Succeed) {
+		LOG_FUNCTION();
+
+		if (preOperationError != Error_Succeed)
 			return preOperationError;
-		}
-			
+
 		//is Pad Version
 		m_eDeviceType = RvcGetDeviceType();
 
-		if (eMobilePadType == m_eDeviceType || eStand1SPlusType == m_eDeviceType){
+		if ((eStand1SPlusType == m_eDeviceType) || (ePadtype == m_eDeviceType)||(eMobilePadType == m_eDeviceType)||(eDesk2SType == m_eDeviceType)||(eDesk1SType == m_eDeviceType)||(eDesk2SIntegratedType == m_eDeviceType))
+		{
 			m_video_env_q = new Clibvideoqueue(REC_COMMON_VIDEO_ENV_SHM_SNAPSHOT_QUEUE);
 		} 
-		else { //  == 2
+		else 
+		{ //  == 2
 			m_video_env_q = new Clibvideoqueue(REC_COMMON_VIDEO_ENV_SHM_SNAPSHOT_QUEUE);
 			m_video_opt_q = new Clibvideoqueue(REC_COMMON_VIDEO_OPT_SHM_SNAPSHOT_QUEUE);
 		}
@@ -161,21 +167,6 @@ public:
 
 	void WriteStamp(video_frame *srcfrm)
 	{
-#ifdef RVC_OS_WIN
-		__try {
-			CImageFrame frm;
-			frm.data = srcfrm->data[0];
-			frm.width = srcfrm->width;
-			frm.height = srcfrm->height;
-			frm.framesize = srcfrm->width * srcfrm->height * 3;
-			if (!SnapShot(&frm)) {
-				DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("write stamp failed!");
-			}
-		}
-		__except (EXCEPTION_EXECUTE_HANDLER) {
-			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("snapshot throw windows exception!");
-		}
-#else
 		CImageFrame frm;
 		frm.data = srcfrm->data[0];
 		frm.width = srcfrm->width;
@@ -184,7 +175,6 @@ public:
 		if (!SnapShot(&frm)) {
 			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("write stamp failed!");
 		}
-#endif
 	}
 
 	void Capture(int rc)
@@ -270,10 +260,8 @@ public:
 
 #ifndef RVC_OS_WIN
 			{
-				//linux需翻转�境摄�头图�
 				int size = frm->linesize[0] * frm->height;
 				DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("size = %d, width= %d height= %d", size, frm->width, frm->height);
-
 				RotationDown(frm->data[0], frm->width, REC_COMMON_VIDEO_SNAPSHOT_HEIGHT, 3);
 			}
 #endif
@@ -316,23 +304,20 @@ public:
 			Info.data.m_iLength = sizeof(rc);
 			(*m_pChannelClient)(EntityResource::getLink().upgradeLink())->Send(Info);
 		}
-#if 0
-		video_frame_save_bmpfile("snapshot_abc.bmp", frm);
-		//video_frame_save_bmpfile("d:\\ab.bmp", &frm);
-#endif
 		if (frm)
 			video_frame_delete(frm);
 	}
 
 	ErrorCodeEnum StartCapture(int id)
 	{
-		if (eMobilePadType == m_eDeviceType || eStand1SPlusType == m_eDeviceType){
+#if defined(RVC_OS_LINUX)
+		if (eMobilePadType == m_eDeviceType || eStand1SPlusType == m_eDeviceType) {
 			m_video_env_q = new Clibvideoqueue(REC_COMMON_VIDEO_ENV_SHM_SNAPSHOT_QUEUE);
-		}
-		else{ //  == 2
+		} else { //  == 2
 			m_video_env_q = new Clibvideoqueue(REC_COMMON_VIDEO_ENV_SHM_SNAPSHOT_QUEUE);
 			m_video_opt_q = new Clibvideoqueue(REC_COMMON_VIDEO_OPT_SHM_SNAPSHOT_QUEUE);
 		}
+#endif //RVC_OS_LINUX
 
 		if (!m_video_env_q && !m_video_opt_q) {
 			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("cannot start capture!"); // never go here
@@ -342,7 +327,7 @@ public:
 			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("already start capture!");
 			return Error_Duplication;
 		}
-		//触�对应的摄�头进�图�采�
+		//触�对应的摄�头进行图�采集
 		if (m_video_env_q && m_video_opt_q) 
 		{
 			LogEvent(Severity_Middle, MOD_EVENT_SNAPSHOT_START_CAPTURE_ENVOPT, "agent start capture env and opt camera picture!");
@@ -400,6 +385,9 @@ public:
 		else if (stricmp(stStaticinfo.strMachineType, "RVC.Desk1S") == 0) {
 			eType = eDesk1SType;
 		}
+		else if (stricmp(stStaticinfo.strMachineType, "RVC.CardStore") == 0 || stricmp(stStaticinfo.strMachineType, "RVC.CardPrinter") == 0) {
+			eType = eCardStore;
+		}
 		else {
 			eType = eStand2sType;
 		}
@@ -525,6 +513,7 @@ private:
 		}
 		return Error;
 	}
+
 private:
 	Clibvideoqueue *m_video_env_q;
 	Clibvideoqueue *m_video_opt_q;