#include "libHvDevice/HvDeviceEx.h" #include #include static int RecordInfoBeginCallBack(PVOID pUserData, DWORD dwCarID) { printf("%s pUserData = %p, dwCarID = %lu\n", __FUNCTION__, dwCarID); return 0; }; static int RecordInfoEndCallBack(PVOID pUserData, DWORD dwCarID) { printf("%s pUserData = %p, dwCarID = %lu\n", __FUNCTION__, dwCarID); return 0; }; static int RecordInfoPlateCallBack(PVOID pUserData, DWORD dwCarID, LPCSTR pcPlateNo, LPCSTR pcAppendInfo, DWORD dwRecordType, DWORD64 dw64TimeMS) { printf("%s pUserData = %p, dwCarID = %lu , pcPlateNo = %s, \npcAppendInfo= \n%s dwRecordType = %x, dw64TimeMS = %llu\n", __FUNCTION__, pUserData, dwCarID, pcPlateNo, pcAppendInfo, dwRecordType, dw64TimeMS); return 0; } static int RecordInfoBigImageCallBack(PVOID pUserData, DWORD dwCarID, WORD wImgType, WORD wWidth, WORD wHeight, PBYTE pbPicData, DWORD dwImgDataLen, DWORD dwRecordType, DWORD64 dw64TimeMS) { printf("%s pUserData = %p, dwCarID = %lu ,wImgType = %x, " "wWidth = %d, wHeight = %d, pbPicData = %p, dwImgDataLen = %lu, dwRecordType = %x, dw64TimeMS = %llu\n", __FUNCTION__, pUserData, dwCarID, wImgType, wWidth, wHeight, pbPicData, dwImgDataLen, dwRecordType, dw64TimeMS); return 0; } static int RecordInfoSmallImageCallBack(PVOID pUserData, DWORD dwCarID, WORD wWidth, WORD wHeight, PBYTE pbPicData, DWORD dwImgDataLen, DWORD dwRecordType, DWORD64 dw64TimeMS) { printf("%s pUserData = %p, dwCarID = %lu , wWidth = %d, wHeight = %d, pbPicData = %p, dwImgDataLen = %lu, dwRecordType = %x, dw64TimeMS = %llu\n", __FUNCTION__, pUserData, dwCarID, wWidth, wHeight, pbPicData, dwImgDataLen, dwRecordType, dw64TimeMS); return 0; } static int RecordInfoBinaryImageCallBack(PVOID pUserData, DWORD dwCarID, WORD wWidth, WORD wHeight, PBYTE pbPicData, DWORD dwImgDataLen, DWORD dwRecordType, DWORD64 dw64TimeMS) { printf("%s pUserData = %p, dwCarID = %lu , wWidth = %d, wHeight = %d, pbPicData = %p, dwImgDataLen = %lu, dwRecordType = %x, dw64TimeMS = %llu\n", __FUNCTION__, pUserData, dwCarID, wWidth, wHeight, pbPicData, dwImgDataLen, dwRecordType, dw64TimeMS); return 0; } static int JPEGStreamCallBack( PVOID pUserData, PBYTE pbImageData, DWORD dwImageDataLen, DWORD dwImageType, LPCSTR szImageExtInfo ) { printf("%s pUserData = %p, pbImageData = %p , dwImageDataLen = %u, dwImageType = %x, szImageExtInfo = %s\n", __FUNCTION__, pUserData, pbImageData, dwImageDataLen, dwImageType, szImageExtInfo); return 0; }; int main(int argc, char *argv[]) { char chIp[64] = {0}; printf("please input the camera ip address.\n"); scanf("%s", chIp); getchar(); HVAPI_HANDLE_EX hCameraHandle = HVAPI_OpenEx(chIp, 0); if (hCameraHandle == NULL) { printf("HVAPI_OpenEx %s failed.\n", chIp); return 0; } printf("HVAPI_OpenEx %s success.\n", chIp); #ifdef JPEG if ( (HVAPI_SetCallBackEx(hCameraHandle, (PVOID)JPEGStreamCallBack, NULL, 0, CALLBACK_TYPE_JPEG_FRAME, NULL) != S_OK) ) { printf("ConnectToCamera:: Set JPEG CallBack failed.\n"); HVAPI_CloseEx(hCameraHandle); hCameraHandle = NULL; return 0; } #else if ((HVAPI_SetCallBackEx(hCameraHandle, (PVOID)RecordInfoBeginCallBack, NULL, 0, CALLBACK_TYPE_RECORD_INFOBEGIN, NULL) != S_OK) || (HVAPI_SetCallBackEx(hCameraHandle, (PVOID)RecordInfoEndCallBack, NULL, 0, CALLBACK_TYPE_RECORD_INFOEND, NULL) != S_OK) || (HVAPI_SetCallBackEx(hCameraHandle, (PVOID)RecordInfoPlateCallBack, NULL, 0, CALLBACK_TYPE_RECORD_PLATE, NULL) != S_OK) || (HVAPI_SetCallBackEx(hCameraHandle, (PVOID)RecordInfoBigImageCallBack, NULL, 0, CALLBACK_TYPE_RECORD_BIGIMAGE, NULL) != S_OK) || (HVAPI_SetCallBackEx(hCameraHandle, (PVOID)RecordInfoSmallImageCallBack, NULL, 0, CALLBACK_TYPE_RECORD_SMALLIMAGE, NULL) != S_OK) || (HVAPI_SetCallBackEx(hCameraHandle, (PVOID)RecordInfoBinaryImageCallBack, NULL, 0, CALLBACK_TYPE_RECORD_BINARYIMAGE, NULL) != S_OK) ) { printf("ConnectToCamera:: SetCallBack failed.\n"); HVAPI_CloseEx(hCameraHandle); hCameraHandle = NULL; return 0; } #endif printf("ConnectToCamera:: SetCallBack success.\n"); int nStreamType = CONN_TYPE_RECORD; unsigned long pdwConStatus = 0; while (true) { pdwConStatus = 0; if (HVAPI_GetConnStatusEx(hCameraHandle, nStreamType, &pdwConStatus) == S_OK) { printf("HVAPI_GetConnStatusEx %s success. status = %x\n", chIp, pdwConStatus); } else { printf("HVAPI_GetConnStatusEx %s failed\n", chIp); } sleep(10); } }