#MmiUtil_GetTrack
#MmiUtil_GetTrack2


##函数引用
```
#include "MmiUtil.h"

```

##函数声明
```
/* --------------------------------------------------------------------------
* FUNCTION NAME: MMiUtil_GetTrack
* DESCRIPTION:    读磁条卡或手输卡号（循环等待，超时退出）
* PARAMETERS:
*   CardBuf1 (out) -- 1磁道数据
*   CardBuf2 (out) -- 2磁道数据
*   CardBuf3 (out) -- 3磁道数据
*   PANnum   (out) -- 手工输入的卡号
*   manflag  (in)  -- 是否支持手输卡号
* RETURN:
*   TRAN_OK/TRAN_NUM/TRAN_ESC/TRACK_TIMEOUT
* NOTES:
* --------------------------------------------------------------------------*/
int MmiUtil_GetTrack(byte *CardBuf1, byte *CardBuf2, byte *CardBuf3, byte *PANnum, int manflag);

/* --------------------------------------------------------------------------
* FUNCTION NAME: MMiUtil_GetTrack2
* DESCRIPTION:    读磁条卡或手输卡号（只读一次，没有循环）
* PARAMETERS:
*   CardBuf1 (out) -- 1磁道数据
*   CardBuf2 (out) -- 2磁道数据
*   CardBuf3 (out) -- 3磁道数据
*   PANnum   (out) -- 手工输入的卡号
*   manflag  (in)  -- 是否支持手输卡号
* RETURN:
*   TRAN_OK/TRAN_NUM/TRAN_ESC/TRACK_NOEVENT
* NOTES:
* --------------------------------------------------------------------------*/
int MmiUtil_GetTrack2(byte *CardBuf1, byte *CardBuf2, byte *CardBuf3, byte *PANnum, int manflag);


```
##函数返回
```

```

##Sample
```
int demo( void )
{
    iRet = MmiUtil_GetTrack2( cTrk1Buffer, cTrk2Buffer, cTrk3Buffer, cPANnum, iHandInputFlag );
	if( iRet == TRACK_OK )
        .....
}
```

##注意事项

```

```

##延伸阅读
```
<银行磁条卡磁道格式和使用规范.pdf>
```
1. 磁道格式；
![](Mag Format 001.png)
![](Mag Format 002.png)
![](Mag Format 003.png)

2. 校验算法；
![](Mag Format 004.png)
