Home > database >  SOS!! How to obtain the data byte [] in the pb, and converted to a string
SOS!! How to obtain the data byte [] in the pb, and converted to a string

Time:09-26

I'm going to call an external dynamic library (c + +),
This is my statement in the PB:
The Function int M100A_ReadMagcardDecode (ulong ComHandle, Boolean bHasMac_Addr, Char Mac_Addr, Char _track, ref ulong _DataLen, ref Char _BlockData [], ref string RecordInfo) Library "K100_DLL. DLL
"
Below is a dynamic library (document), consult everybody how to BYTE _BlockData [] in the data acquisition to
Int __stdcall M100A_ReadMagcardDecode (HANDLE ComHandle, bool bHasMac_Addr, BYTE Mac_Addr, BYTE _track, dwords * _DataLen, BYTE _BlockData [], char * RecordInfo);

Function: read magnetic card decoding data
Parameters: [in] ComHandle already open handle to the serial port
[in] whether bHasMac_Addr communicates multiple versions (use refer to the front of the document "public interface function parameter specification")
[in] MacAddr machine address, effective value (0 to 8)
Orbital, the [in] _track will read the following specific meaning
0 x30: read the ISO first rail data
The second track 0 x31: read the ISO data
0 x32: read the ISO data
the third rail1 and 2 0 x33: read the ISO rail data
0 x34: read the ISO daiichi rail data
0 x35: read the ISO 2 &3 track data
0 x36: read the ISO all three rail data
[out] _DataLen storage card returns the length of the packet (_BlockData the length of the [])
[out] _BlockData [] store return card packet (packet format instructions below)
[out] RecrodInfo store which command communication records
Return value: right=0, wrong=0
Magnetic card packet (_BlockData []) format form as follows:
[1] TRX_ST (one byte), read the card status of each orbit LENX (one byte) each orbital data length,
=0 x60, read the card right
Error=0 x61, SS
Error=0 x62, ES
=0 x63, P error
Error=0 x64, LRC England
=0 x65, blank track
Read (monorail) read the ISO data back packet format is as follows: the first rail
TR1_ST
LEN1
A rail data
Note only when TR1_ST=0 x60, LEN1 greater than 0, the track data, other cases LEN1=0, a rail data is empty
(read the dual-track) read the ISO data returned by the first two rail packet format is as follows:
TR1_ST
LEN1
TR2_ST
LEN2
A rail data
Two rail data
Note only when TR1_ST=0 x60, LEN1 greater than 0, the track data, other cases LEN1=0, a rail data is empty
Note only when TR2_ST=0 x60, LEN2 greater than 0, the second track data, other cases LEN2=0, 2 rail data is empty
Read (read three rail) ISO all three rail data
TR1_ST
LEN1
TR2_ST
LEN2
TR3_ST
LEN3
A rail data
Two rail data
Three rail data
Note only when TR1_ST=0 x60, LEN1 greater than 0, the track data, other cases LEN1=0, a rail data is empty
Note only when TR2_ST=0 x60, LEN2 greater than 0, the second track data, other cases LEN2=0, 2 rail data is empty
Dynamic library interface specification (/total 50 pages 10)
Note only when TR3_ST=0 x60, LEN3 greater than 0, 3 track data, other cases LEN3=0, 3 track data is empty

CodePudding user response:

I now call dynamic library the return value is zero (success), but BlockData [], the data acquisition is less than, everybody to help,

CodePudding user response:

Upperbound (BlockData) value is how much

CodePudding user response:

Upperbound (BlockData)=1

CodePudding user response:

Upstairs still there

CodePudding user response:

Try to switch to ref string or ref blob

CodePudding user response:

The following is a BlockData [] the information contained in the
TR1_ST, LEN1 TR2_ST, LEN2 TR3_ST, LEN3, a track data, the second track data, the third rail data

Note only when TR1_ST=0 x60, LEN1 greater than 0, the track data, other cases LEN1=0, a rail data is empty
Note only when TR2_ST=0 x60, LEN2 greater than 0, the second track data, other cases LEN2=0, 2 rail data is empty
Note only when TR3_ST=0 x60, LEN3 greater than 0, 3 track data, other cases LEN3=0, 3 track data is empty

CodePudding user response:

String, blob I tried, but the upperbound (BlockData) or equal to 1, is also unable to get data

CodePudding user response:

Post me 20 points, trouble to look at

CodePudding user response:

Directly use the
Byte byte1 []

CodePudding user response:

No byte type, the pb 9 pb11 above have a byte type

CodePudding user response:

Use a blob instead
  • Related