typedef struct tagMwUniviewMultiProtocolHeader
{
CHAR *apcData[IMOS_MW_TRAFFIC_PIC_MAX_NUM]; /**< 資料指標 */
ULONG aulDataLen[IMOS_MW_TRAFFIC_PIC_MAX_NUM]; /**< 資料長度 */
ULONG aulPicType[IMOS_MW_TRAFFIC_PIC_MAX_NUM]; /**< 照片型別, 參照:IMOS_MW_IMAGE_VEHICLE */
CHAR acPassTime[IMOS_MW_TRAFFIC_PIC_MAX_NUM][IMOS_MW_UNIVIEW_MAX_TIME_LEN]; /**< 經過時間 */
ULONG ulPicNumber; /**< 照片張數 */
/* 設備資訊 */
LONG lApplicationType; /* 應用型別:對應相關產品 */
CHAR szCamID[IMOS_MW_DEV_ID_MAX_LEN]; /* 設備編號:采集設備統一編號或卡口相機編碼, 不可為空 */
CHAR szTollgateID[IMOS_MW_DEV_ID_MAX_LEN]; /* 卡口編號:產生該資訊的卡口代碼 */
CHAR szTollgateName[IMOS_MW_TOLLGATE_NAME_MAX_LEN]; /* 卡口名稱:可選欄位 */
ULONG ulCameraType; /* 相機型別 0 全景 1特性 */
ULONG ulRecordID; /* 車輛資訊編號:由1開始自動增長(轉換成字串要求不超過16位元組) */
/* 時間、地點資訊 */
CHAR szPassTime[IMOS_MW_UNIVIEW_MAX_TIME_LEN]; /* 經過時刻:YYYYMMDDHHMMSS, 時間按24小時制 */
CHAR szPlaceName[IMOS_MW_PLACE_NAME_MAX_LEN]; /* 地點名稱 */
LONG lLaneID; /* 車道編號:從1開始, 車輛行駛方向最左車道為1,由左向右順序編號 */
LONG lLaneType; /* 車道型別:0-機動車道,1-非機動車道 */
/* 方向編號:1-東向西 2-西向東 3-南向北 4-北向南
5-東南向西北 6-西北向東南 7-東北向西南 8-西南向東北 */
LONG lDirection;
CHAR szDirectionName[IMOS_MW_DIRECTION_NAME_MAX_LEN]; /* 方向名稱:可選欄位 */
/* 車牌資訊 */
CHAR szCarPlate[IMOS_MW_CAR_PLATE_MAX_LEN]; /* 號牌號碼:不能自動識別的用"-"表示 */
ULONG aulLPRRect[4]; /* 車牌坐標:XL=a[0], YL=a[1], XR=a[2], YR=a[3] */
LONG lPlateType; /* 號牌種類:按GA24.7編碼 */
LONG lPlateColor; /* 號牌顏色:0-白色1-黃色 2-藍色 3-黑色 4-其他 */
LONG lPlateNumber; /* 號牌數量 */
/* 號牌一致:
0-車頭和車尾號牌號碼不一致
1-車頭和車尾號牌號碼完全一致
2-車頭號牌號碼無法自動識別
3-車尾號牌號碼無法自動識別
4-車頭和車尾號牌號碼均無法自動識別 */
LONG lPlateCoincide;
CHAR szRearVehiclePlateID[IMOS_MW_CAR_PLATE_MAX_LEN]; /* 尾部號牌號碼:被查控車輛車尾號牌號碼,允許車輛尾部號牌號碼不全。不能自動識別的用"-"表示 */
LONG lRearPlateColor; /* 尾部號牌顏色: 0-白色1-黃色 2-藍色 3-黑色 4-其他 */
LONG lRearPlateType; /* 尾部號牌種類: 按GA24.7編碼; 或者1-單排 2-武警 3-警用 4-雙排 5-其他 */
/* 車輛資訊 */
ULONG aulVehicleXY[4]; /* 車輛坐標:XL=a[0], YL=a[1], XR=a[2], YR=a[3] */
CHAR szVehicleBrand[IMOS_MW_CAR_VEHICLE_BRAND_LEN]; /* 車輛廠牌編碼(自行編碼) 考慮到位元組對齊定義長度為4,實際使用長度為2 */
LONG lVehicleBody; /* 車輛外型編碼(自行編碼) */
LONG lVehicleType; /* 車輛型別 0-未知,1-小型車 2-中型車 3-大型車 4-其他 */
LONG lVehicleLength; /* 車外廓長(以厘米為單位) */
LONG lVehicleColorDept; /* 車身顏色深淺:0-未知,1-淺,2-深 */
/* 車身顏色:
A:白,B:灰,C:黃,D:粉,E:紅,F:紫,G:綠,H:藍,
I:棕,J:黑,K:橙,L:青,M:銀,N:銀白,Z:其他(!) */
CHAR cVehicleColor; /* 車身顏色 */
/* 識別,注:后面的UCHAR緊跟CHAR */
UCHAR ucPlateScore; /* 此次識別中,整牌的置信度,100最大 */
UCHAR ucRearPlateScore; /* 尾部號碼置信度,100最大 */
UCHAR ucPicType; /* 0:實時照片,1:歷史照片 */
LONG lIdentifyStatus; /* 識別狀態:0-識別成功 1-不成功 2-不完整(!) 3-表示需要平臺識別 */
LONG lIdentifyTime; /* 識別時間, 單位毫秒 */
LONG lDressColor; /* 行人衣著顏色(!) */
LONG lDealTag; /* 處理標記:0-初始狀態未校對 1-已校對和保存 2-無效資訊 3-已處理和保存(!) */
/* 車速 */
LONG lVehicleSpeed; /* 車輛速度: 單位km/h, -1-無測速功能 */
LONG lLimitedSpeed; /* 執法限速: 車輛限速, 單位km/h */
LONG lMarkedSpeed; /* 標識限速 */
LONG lDriveStatus; /* 行駛狀態:0-正常 1-嫌疑或按GA408.1編碼 */
/* 紅燈資訊 */
LONG lRedLightTime; /* 紅燈時間 */
CHAR szRedLightStartTime[IMOS_MW_UNIVIEW_MAX_TIME_LEN]; /* 紅燈開始時間:YYYYMMDDHHMMSS, 精確到毫秒, 時間按24小時制 */
CHAR szRedLightEndTime[IMOS_MW_UNIVIEW_MAX_TIME_LEN]; /* 紅燈結束時間:YYYYMMDDHHMMSS, 精確到毫秒, 時間按24小時制 */
}IMOS_MW_MULTI_UNIVIEW_PROTOCOL_HEADER_S;
IMOS_MW_MultiUser_SetPicDataCallback((IMOS_MW_TMS_MULTIUSER_PIC_UPLOAD_PF)MultiPicDataCallBackFun, gulTMSCaptureStreamHandle); //設定照片回呼
VOID STDCALL MultiPicDataCallBackFun(IN IMOS_MW_MULTI_UNIVIEW_PROTOCOL_HEADER_S *pstUniviewData, IN ULONG ulStreamHandle)
{
CHAR szTmp[256] = {0};
INT i = 0;
LONG lLen = 0;
FILE *fp = NULL;
std::string strCarPlate = UTF8_TO_MBCS(pstUniviewData->szCarPlate);
IMOS_MW_SetOutputSwitchStatusCfg(m_szSDKUserID);
/* 保存照片 */
for (i=0; i< pstUniviewData->ulPicNumber; i++)
{
sprintf(szTmp, "d:\\pic\\%s_%s_%d.jpg",pstUniviewData->szPassTime, UTF8_TO_MBCS(pstUniviewData->szCarPlate), i);
FILE *fp =fopen(szTmp,"wb");
if (NULL != fp)
{
fwrite(pstUniviewData->apcData[i],1,pstUniviewData->aulDataLen[i], fp);
fclose(fp);
}
}
/* 記錄車輛資訊 */
fp =fopen("d:\\pic\\result.txt","a+");
if (NULL != fp)
{
lLen = sprintf(szTmp, "車位:%lu 時間:%s 車牌:%s IN\r\n",
pstUniviewData->lLaneID,
pstUniviewData->szPassTime,
UTF8_TO_MBCS(pstUniviewData->szCarPlate));
fwrite(szTmp,1,lLen, fp);
fclose(fp);
}
/* 保存車牌資訊 */
if ((pstUniviewData->lLaneID <= 3) && (pstUniviewData->lLaneID > 0))
{
strcpy(szCarPlate[(pstUniviewData->lLaneID - 1)], pstUniviewData->szCarPlate);
}
return;
}
uj5u.com熱心網友回復:
IMOS_MW_MultiUser_SetPicDataCallback是設定回呼。MultiPicDataCallBackFun 是回呼的方法。
IMOS_MW_MULTI_UNIVIEW_PROTOCOL_HEADER_S回呼回傳的第一個資料型別。
uj5u.com熱心網友回復:
http://blog.csdn.net/lyhoo163/article/details/26613881轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/66174.html
標籤:VCL組件開發及應用
下一篇:圖片批量疊加文字的問題
