Home > Back-end >  Advice on how to convert C in a callback method to Delphi, debugging is not very long
Advice on how to convert C in a callback method to Delphi, debugging is not very long

Time:09-22

 
Typedef struct tagMwUniviewMultiProtocolHeader
{
CHAR * apcData [IMOS_MW_TRAFFIC_PIC_MAX_NUM];/* * & lt; Data pointer */
ULONG aulDataLen [IMOS_MW_TRAFFIC_PIC_MAX_NUM];/* * & lt; Data length */
ULONG aulPicType [IMOS_MW_TRAFFIC_PIC_MAX_NUM];/* * & lt; Picture type, reference: IMOS_MW_IMAGE_VEHICLE */
CHAR acPassTime [IMOS_MW_TRAFFIC_PIC_MAX_NUM] [IMOS_MW_UNIVIEW_MAX_TIME_LEN];/* * & lt; After a time */
ULONG ulPicNumber;/* * & lt; Photo number */

/* */equipment information
LONG lApplicationType; *//* application type: corresponding related products
CHAR szCamID [IMOS_MW_DEV_ID_MAX_LEN];/* equipment number: acquisition equipment uniform number or code bayonet camera, not empty */
CHAR szTollgateID [IMOS_MW_DEV_ID_MAX_LEN];/* bayonet number: produced the bayonet code */
CHAR szTollgateName [IMOS_MW_TOLLGATE_NAME_MAX_LEN];/* bayonet name: optional fields */

ULONG ulCameraType;/* 0 panoramic camera type 1 features */
ULONG ulRecordID;/* vehicle information number: start from 1 automatic growth (converted to a string of no more than 16 bytes) */

/* time, location information */
CHAR szPassTime [IMOS_MW_UNIVIEW_MAX_TIME_LEN];/* after a moment: YYYYMMDDHHMMSS, time */in the 24-hour system
CHAR szPlaceName [IMOS_MW_PLACE_NAME_MAX_LEN];/* site name */

LONG lLaneID;/* lane number: starting from 1, the most left lane 1, vehicle driving direction from left to right order number */
LONG lLaneType;/* drive types: 0 - the lanes, 1 - non-motor vehicle lanes */

/* direction number: 1 - east to west 4-3-2 - west to east south to north, north to south,
5 - southeast to the northwest of 6 - northwest to the southeast 7-8 - southwest to the northeast to southwest northeast */
LONG lDirection;
CHAR szDirectionName [IMOS_MW_DIRECTION_NAME_MAX_LEN];/* name of direction: optional fields */

*//* license plate information
CHAR szCarPlate [IMOS_MW_CAR_PLATE_MAX_LEN];/* plate number: can't automatic identification with "-" said */
ULONG aulLPRRect [4]./* plate coordinates: XL=a [0], YL=[1], a XR=a [2], YR=a [3] */
LONG lPlateType;/* plate type: according to GA24.7 coding */
LONG lPlateColor;/* plate color: 0-1-2 - yellow white blue black 3-4 - other */
LONG lPlateNumber;/* plate number */

/* plate:
0 - front and the rear of the car plate number is inconsistent
1 - front and the rear of the car plate number exactly
2 - car plate number cannot be automatically identify
3 - the rear of the car plate number cannot automatically identify
4 - front and the rear of the car plate number automatic identification is not */
LONG lPlateCoincide;
CHAR szRearVehiclePlateID [IMOS_MW_CAR_PLATE_MAX_LEN];/* tail plate number: be ZhaKong the rear of the vehicle plate number, allowing the vehicle tail plate number is not complete, cannot automatically identify with "-" said */
LONG lRearPlateColor;/* the tail plate color: 0-1-2 - yellow white blue black 3-4 - other */
LONG lRearPlateType;/* the tail plate type: according to GA24.7 coding; 1 - single or two to armed police police 4-3 - double row 5 - other */

/* */vehicle information
ULONG aulVehicleXY [4]./* vehicle coordinates: XL=a [0], YL=[1], a XR=a [2], YR=a [3] */
CHAR szVehicleBrand [IMOS_MW_CAR_VEHICLE_BRAND_LEN];/* vehicle label code (code) by considering the byte alignment definition of length 4, actual use length is 2 */
LONG lVehicleBody;/* the vehicle shape code (coding) */
LONG lVehicleType;/* the vehicle type 0 - unknown, 1 - small 4-2-3 - large mid-size car other */
LONG lVehicleLength;/* outside profile (in cm) */
LONG lVehicleColorDept;/* body color depth: 0 - unknown, 1 -, 2 - deep */
/* body color:
A: white, B: grey, C: yellow, D: powder, E: red, F: purple, G: H: green, blue,
I: brown, J: black, K: orange, L: green, M: silver, N: silvery white, Z: other (!) */
CHAR cVehicleColor;/* body color */

/* identification, note: UCHAR followed behind the CHAR */
UCHAR ucPlateScore;/* this recognition, the whole brand of confidence, 100 biggest */
UCHAR ucRearPlateScore;/* tail number confidence, 100 biggest */
UCHAR ucPicType;/* 0: real-time photos, 1: historical photos */
LONG lIdentifyStatus;/* identification status: 0 to identify successful 1 - no 2 - incomplete (!) 3 - said need platform identification */
LONG lIdentifyTime;/* recognition time, the unit milliseconds */
LONG lDressColor;/* pedestrians dress color (!) */
LONG lDealTag;/* processing tags: 0-1 - has been proofread and save the initial state without proofreading 3-2 - invalid information has been processed and preserved (!) */

Speed/* */
LONG lVehicleSpeed;/* vehicle speed: unit is km/h, 1 - no function */speed
LONG lLimitedSpeed;/* speed limit enforcement: vehicle speed limit, the unit km/h */
LONG lMarkedSpeed; The speed limit/* id */
LONG lDriveStatus;/* driving status: 0-1 - normal suspicion or by GA408.1 encoding */

/* */red information
LONG lRedLightTime;/* */red light time
CHAR szRedLightStartTime [IMOS_MW_UNIVIEW_MAX_TIME_LEN];/* red start time: YYYYMMDDHHMMSS, to the millisecond, precise time */in the 24-hour system
CHAR szRedLightEndTime [IMOS_MW_UNIVIEW_MAX_TIME_LEN];/* red light over time: YYYYMMDDHHMMSS, to the millisecond, precise time */in the 24-hour system
} IMOS_MW_MULTI_UNIVIEW_PROTOCOL_HEADER_S;



IMOS_MW_MultiUser_SetPicDataCallback (IMOS_MW_TMS_MULTIUSER_PIC_UPLOAD_PF MultiPicDataCallBackFun, gulTMSCaptureStreamHandle);//set photos callback


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;
The FILE * fp=NULL;
STD: : string strCarPlate=UTF8_TO_MBCS (pstUniviewData - & gt; SzCarPlate);
IMOS_MW_SetOutputSwitchStatusCfg (m_szSDKUserID);
/* save photo */
for (i=0; i{
Sprintf (szTmp, "d: \ \ PIC surprised s_ s_ \ \ % % % jeter pg", pstUniviewData - & gt; SzPassTime, UTF8_TO_MBCS (pstUniviewData - & gt; SzCarPlate), I);
The FILE * fp=fopen (szTmp, "wb");
if (NULL !=(fp)
{
Fwrite (pstUniviewData - & gt; ApcData [I] 1, pstUniviewData - & gt; AulDataLen [I], fp);
fclose(fp);
}
}

/* record vehicle information */
Fp=fopen (" d: \ \ \ \ PIC result. TXT ", "a +");
if (NULL !=(fp)
{
LLen=sprintf (szTmp, "license plate: parking: % lu time: % s % s IN \ r \ n",
PstUniviewData - & gt; LLaneID,
PstUniviewData - & gt; SzPassTime,
UTF8_TO_MBCS (pstUniviewData - & gt; SzCarPlate));
Fwrite (szTmp, 1, lLen, fp);
fclose(fp);
}

/* */save the license plate information
If ((pstUniviewData - & gt; LLaneID & lt;=3) & amp; & (pstUniviewData - & gt; LLaneID & gt; 0))
{
Strcpy (szCarPlate [(pstUniviewData - & gt; lLaneID - 1)], pstUniviewData - & gt; SzCarPlate);
}

return;
}
nullnullnullnullnullnullnullnullnull
  • Related