예제 #1
0
/*****************************************************************************
** Descriptions:
** Parameters:      const u8*pasTitle       �Ի������
                    const u8 *pasDispData  ��ʾ������
                    s32 siOvertimer        ��ʱ����ʱ�� Ϊ0��ʾ��Զ����ʱ
** Returned value:
** Created By:		shiweisong  2013.01.21
** Remarks:
*****************************************************************************/
s32 sdkDispListBox(const u8 *pasTitle, const u8 *pasDispData, s32 siOvertimer) {
    s32 key = 0;
    bool bIsHaveTitle = false;
    s32 retFlag = SDK_ERR;

    if ((pasDispData == NULL) || siOvertimer < 0) {
        Assert(0);
        return SDK_PARA_ERR;
    }
    sdkDispReadyStr(pasDispData, pasTitle);               //׼����Ҫ��ʾ������

    while (1) {
        u32 uiMask = SDK_KEY_MASK_UP | SDK_KEY_MASK_DOWN | SDK_KEY_MASK_ESC | SDK_KEY_MASK_ENTER;
        sdkDispClearScreen();
        bIsHaveTitle = sShowTitle(pasTitle);    //��ʾ����
        sdkDispPutStrInRom(bIsHaveTitle, SDK_DISP_LINE5, true, -1); //����ʾ���ݷ���LCD����ʾ
        sdkDispBrushScreen();                   //����

        if (SDK_SYS_MACHINE_K501AM == sdkSysGetMachineCode(NULL)) {
            uiMask = (uiMask | SDK_KEY_MASK_F3);
        }
        //�ȴ��û�����  �����·�ҳ
        key = sdkKbWaitKey(uiMask, siOvertimer);

        //����������
        if ((retFlag = sdkDispDealKey(key)) != SDK_DISP_MSG_BOX_NOT_RET) {
            break;
        }
    }

    sdkDispClearList();
    return retFlag;
}
예제 #2
0
파일: sdkTestUI.c 프로젝트: YesWant/HX123S
/*****************************************************************************
** Descriptions:    ��ʽ�˵�����
** Parameters:          Input: None
** Returned value:
** Created By:		fusuipu  2013.03.07
** Remarks:
*****************************************************************************/
s32 HidenMenuShowMainFace(char *pasOutInfo, char const *pTitle) {
    u8 temp[25] = {0};
    u8 temp1[25] = {0};
    s32 key = 0;

    s32 mode = 0;//sdkTestInputs32("menu test", "�˵�ģʽ:");


    sdkDispClearScreen();
    sdkDispFillRowRam(SDK_DISP_LINE3, 0, "������ѡ�����ؼ�", SDK_DISP_DEFAULT);
    sdkDispBrushScreen();

    key = sdkKbWaitKey(SDK_KEY_MASK_ALL, 0);

    Verify(sdkUISetShowMode(mode) >= 0);
    Verify(sdkUIClearItems() >= 0);
    sdkUIAddHideItem(key, Eclipse);

    sprintf(temp, "%dkey����Ϊ���ؼ�", key);
    sprintf(temp1, "press %dkey ִ�����ز˵�", key);
    sdkDispClearScreen();
    sdkDispFillRowRam(SDK_DISP_LINE2, 0, temp, SDK_DISP_DEFAULT);
    sdkDispFillRowRam(SDK_DISP_LINE3, 0, temp1, SDK_DISP_DEFAULT);
    sdkDispBrushScreen();

    sprintf(pasOutInfo, "���ز˵���:%d", key);
    return SDK_OK;
}
예제 #3
0
/*****************************************************************************
** Descriptions:
** Parameters:          const u8*pasTitle       �Ի������
                    const u8 *pasDispData  ��ʾ������
                    s32 siOvertimer        ��ʱ����ʱ�� Ϊ0��ʾ��Զ����ʱ
                    s32 siKeyMask         ��Ӧ����mask
** Returned value:
** Created By:		shiweisong  2013.01.21
** Remarks:
*****************************************************************************/
s32 sdkDispMsgBox(const u8 *pasTitle, const u8 *pasDispData, s32 siOvertimer, s32 siKeyMask) {
    s32 key = 0;
    bool bIsHaveTitle = false;
    s32 retFlag = SDK_ERR;

    if ((pasDispData == NULL) || siOvertimer < 0) {
        Assert(0);
        return SDK_PARA_ERR;
    }
    sdkDispReadyStr(pasDispData, pasTitle);               //׼����Ҫ��ʾ������

    while (1) {
        sdkDispClearScreen();
        bIsHaveTitle = sShowTitle(pasTitle);        //��ʾ����
        sdkDispPutStrInRom(bIsHaveTitle, SDK_DISP_LINE5, false, -1);    //����ʾ���ݷ���LCD����ʾ
        sdkDispBrushScreen();                       //����

        key = sdkKbWaitKey(SDK_KEY_MASK_UP | SDK_KEY_MASK_DOWN | (u32) siKeyMask, siOvertimer);

        //����������
        if ((retFlag = sdkDispDealMsgKey(key)) != SDK_DISP_MSG_BOX_NOT_RET) {
            break;
        }
    }

    sdkDispClearList();
    return retFlag;
}
예제 #4
0
파일: sdkTestUI.c 프로젝트: YesWant/HX123S
/*****************************************************************************
** Descriptions:
** Parameters:          s32 Index
** Returned value:
** Created By:		fusuipu  2013.04.16
** Remarks:
*****************************************************************************/
SDK_UI_EXIT_VALUE UITest2(s32 Index) {
    sdkDispClearScreen();
    sdkDispFillRowRam(SDK_DISP_LINE2, 0, "�����˵�ִ�гɹ�!", SDK_DISP_DEFAULT);
    sdkDispFillRowRam(SDK_DISP_LINE3, 0, "������˳�", SDK_DISP_DEFAULT);
    sdkDispBrushScreen();
    sdkKbWaitKey(SDK_KEY_MASK_ALL, 0);
    return SDK_ESC;
}
예제 #5
0
/*******************************************************************
   ��	  ��: ����
   ��	  Ȩ: �����¹����ɷ����޹�˾
   ��������:  ��ʾ��ʾ����BOX
   ��ڲ���:  bool IsSaveScreen,�Ƿ񱣴���
                s32 siOvertimer ��ʱʱ�䣬��ʱ����SDK_TIME_OUT  ��ʱ0��ʾ ��Զ����ʱ//shiweisong 2013.01.19 17:25
                u8 *DispData��Ҫ��ʾ����
   �� �� ֵ:
   ��	  ע:
 ********************************************************************/
s32 sdkDispPromptBox(bool const bIsSaveScreen, s32 const siOvertimer, const u8 *asDispData) {
    s32 key = 0;
    u8 i;
    void *pstreen = NULL;

    if ((bIsSaveScreen != false && bIsSaveScreen != true)
        || (asDispData == NULL) || siOvertimer < 0) {
        Assert(0);
        return SDK_PARA_ERR; //lilin 20120823
    }

    if (bIsSaveScreen) //shiweisong 2013.01.10 9:35  ������ŵ�����ǰ����Ȼ���󻹴��û��������
    {
        pstreen = sdkGetMem(sdkDispGetScreenBufferSize()); //�ں����ڲ�����shiweisong 2013.03.22 18:5

        if (pstreen != NULL) {
            sdkDispSaveScreen(pstreen, sdkDispGetScreenBufferSize());
        }
    }

    for (i = SDK_DISP_LINE2; i < (SDK_DISP_LINE5 + 1); i++) {
        sdkDispClearRowRam(i);
    }


    sdkDispReadyStr(asDispData, NULL);               //׼����Ҫ��ʾ������

    while (1) {
        for (i = SDK_DISP_LINE2; i < (SDK_DISP_LINE5 + 1); i++) {
            sdkDispClearRowRam(i);
        }

        sdkDispPutStrInRom2(1, SDK_DISP_LINE5, SDK_DISP_FDISP | SDK_DISP_CDISP |
                                               SDK_DISP_INCOL);            //����ʾ���ݷ���LCD����ʾ
        sdkDispBrushScreen();                   //����
        key = sdkKbWaitKey(
                SDK_KEY_MASK_ESC | SDK_KEY_MASK_UP | SDK_KEY_MASK_DOWN | SDK_KEY_MASK_ENTER,
                siOvertimer);

        //����������
        if (sdkDispDealMsgKey(key) != SDK_DISP_MSG_BOX_NOT_RET) {
            break;
        }
    }

    sdkDispClearList();

    if (bIsSaveScreen) //shiweisong 2013.01.10 9:35
    {
        if (pstreen != NULL) {
            Verify(sdkDispRestoreScreen(pstreen, sdkDispGetScreenBufferSize()) >= 0);
            sdkFreeMem(pstreen);
        }
    }
    return key;
}
예제 #6
0
/****************************************************************************
*Descriptions:just like main face,Standby interface.show welcome infomation
*Input:void
*Output:void
*Return:void
*Date:20140423
*Author:song
*Remark:none
****************************************************************************/
void DemoWaitKeyToBack(pfun psfun)
{
	u16 key = 0;
	if (NULL == psfun)
	{
		return;
	}
	key = sdkKbWaitKey(SDK_KEY_MASK_CANCEL | SDK_KEY_MASK_ENTER,AUTORET_TIME);
	if (key == SDK_KEY_CANCEL || key == SDK_KEY_ENTER)
	{
		psfun();
	}
}
예제 #7
0
/****************************************************************************
*Descriptions:just like main face,Standby interface.show welcome infomation
*Input:void
*Output:void
*Return:void
*Date:20140423
*Author:song
*Remark:none
****************************************************************************/
void DemosdkSetDesType(void)
{
	s32 key = 0;
	u8 buf[16] = {0};

	sdkLcdClear();
	sdkLcdFillRow (SDK_LCD_LINE1,0,(u8 *)"CHOOSE DES TYPE", M_UCTR);
	sdkLcdFillRow (SDK_LCD_LINE3,0,(u8 *)"PLS SELECT:", 		L_UCTR);
	sdkLcdFillRow (SDK_LCD_LINE5,0,(u8 *)"1-3DES   0-DES",   M_UCTR);
	memcpy(buf,"CUR:",4);
	if (E_PED_DES_TYPE == E_PED_DES_SINGLE)
	{
		strcat((s8 *)buf,"0");
	}
	else
	{
		strcat((s8 *)buf,"1");
	}
	sdkLcdFillRow(SDK_LCD_LINE4, 0, buf, R_UCTR);
    sdkLcdBrushScreen();
	while (1)
	{
		key = sdkKbWaitKey(SDK_KEY_MASK_0 | SDK_KEY_MASK_1 | SDK_KEY_MASK_CANCEL | SDK_KEY_MASK_ENTER, AUTORET_TIME);
	    if(key == SDK_KEY_ENTER || key == SDK_KEY_MASK_CANCEL)
	    {
	    	DemoEnterPinpadModule();
	        return ;
	    }
	    else if(key == '1')
	    {
	    	sdkLcdFillRow(SDK_LCD_LINE5, 0, (u8 *)"1", L_UCTR);
	        E_PED_DES_TYPE = E_PED_DES_TRIPLE;
	    }
	    else if(key == '0')
	    {
	        sdkLcdFillRow(SDK_LCD_LINE5, 0, (u8 *)"0", L_UCTR);
	        E_PED_DES_TYPE = E_PED_DES_SINGLE;
	    }
	}
	return ;
}
예제 #8
0
/*******************************************************************
   ��	  ��: ����
   ��	  Ȩ: �����¹����ɷ����޹�˾
   ��������:  ��ʾ��ʾ����
   ��ڲ���:  s32 siOvertimer ��ʱʱ��
                s32 const siStartLine��ʼ����
                s32 const iEndLine ��������
                u8 const DispAtr���䷽ʽ
                u8 *DispData��Ҫ��ʾ����
   �� �� ֵ:
   ��	  ע:
 ********************************************************************/
s32 sdkDispPromptLabel(s32 const siOvertimer, s32 const siStartLine, s32 const iEndLine,
                       const u8 *asDispData, u8 const DispAtr) {
    s32 key = 0;
    s32 i;


    if (siStartLine < SDK_DISP_LINE1 || siStartLine > SDK_DISP_LINE5
        || iEndLine < SDK_DISP_LINE1 || iEndLine > SDK_DISP_LINE5
        || siStartLine > iEndLine || asDispData == NULL) {
        Assert(0);
        return SDK_PARA_ERR; //lilin 20120823//shijianglong 2013.05.20 10:47
    }

    for (i = siStartLine; i < (iEndLine + 1); i++) {
        sdkDispClearRowRam((u8) i);
    }

    sdkDispReadyStr(asDispData, NULL);               //׼����Ҫ��ʾ������

    while (1) {
        //shiweisong 2013.03.22 18:5
        for (i = siStartLine; i < (iEndLine + 1); i++) {
            sdkDispClearRowRam((u8) i);
        }

        sdkDispPutStrInRom2(siStartLine, iEndLine, DispAtr);           //����ʾ���ݷ���LCD����ʾ
        sdkDispBrushScreen();                   //����
        key = sdkKbWaitKey(
                SDK_KEY_MASK_ESC | SDK_KEY_MASK_UP | SDK_KEY_MASK_DOWN | SDK_KEY_MASK_ENTER,
                siOvertimer);

        //����������
        if (sdkDispDealMsgKey(key) != SDK_DISP_MSG_BOX_NOT_RET) {
            break;
        }
    }

    sdkDispClearList();
    return key;
}
예제 #9
0
/****************************************************************************
*Descriptions:just like main face,Standby interface.show welcome infomation
*Input:void
*Output:void
*Return:void
*Date:20140423
*Author:song
*Remark:none
****************************************************************************/
void DemoABFCardModule(void)
{
    s32 siRet = 0;
    u8 ucInCardType = 0x01|0x02|0x04;//01:A/B 02:M 04:C
    u8 szcardtype[4] = {0};
    u8 szserialnum[32] = {0};
    u8 szcid[12] = {0};
    u8 szother[32] = {0};
    u8 szbuf[32] = {0};
    s32 timerid = 0;
	s32 TimerOver = AUTORET_TIME;
    s32 key = 0;
    u32 len = 0;

    sdkRfSetType(1);//set internal RF device status
    siRet = sdkRfPowerOn();//power on
    if(SDK_OK != siRet)
    {
        DemoDisplayInfo(SDK_LCD_LINE3, (u8 *)"RF POWER ON ERROR", M_UCTR);
    }
    siRet = sdkRfReset();//reset
    if(SDK_OK != siRet)
    {
        DemoDisplayInfo(SDK_LCD_LINE3, (u8 *)"RF RESET ERROR", M_UCTR);
    }
    timerid = sdkSysGetTimerCount();
    while(1)
    {
        DemoDisplayInfo(SDK_LCD_LINE3, (u8 *)"PLS WAVE CARD:", L_UCTR);
        if(sdkRfSearchCard(ucInCardType, szcardtype, szserialnum, szcid, szother)== SDK_OK)
        {
            sdkLcdClear();
            sprintf((s8 *)szbuf,"CARD TYPE:%s",szcardtype);
            sdkLcdFillRow(SDK_LCD_LINE2, 0, szbuf, L_UCTR);
            memset(szbuf,0,sizeof(szbuf));
            sdkBcdToAsc(&szserialnum[1], szserialnum[0], szbuf);
            sdkLcdFillRow(SDK_LCD_LINE3, 0, (u8 *)"SERIAL NUMBER:", L_UCTR);
            sdkLcdFillRow(SDK_LCD_LINE4, 0, szbuf, R_UCTR);
            sdkLcdFillRow(SDK_LCD_LINE5, 0, (u8 *)"[ENTER]->NEXT", M_UCTR);
            sdkLcdBrushScreen();
            key = sdkKbWaitKey(SDK_KEY_MASK_ENTER | SDK_KEY_MASK_CANCEL, AUTORET_TIME);
            if(key != SDK_KEY_ENTER)
            {
                return DemoEnterCardModule();
            }
            else
            {
                break;
            }
        }
        if (sdkSysGetTimerEnd(timerid, TimerOver))
		{
			DemoShowMainMenu();
			return;
		}
    }
    memset(szbuf,0,sizeof(szbuf));
    siRet = sdkRfSendData((u8 *)"\x06\x00\xFF\xFF\x01\x00", 6, szbuf, &len);
    if(SDK_OK == siRet)
    {
        sdkLcdClear();
        sdkLcdFillRow(SDK_LCD_LINE3, 0, (u8 *)"SEND DATA OK!", M_UCTR);
        sdkLcdFillRow(SDK_LCD_LINE4, 0, (u8 *)"PLS MOVE YOUR CARD!", M_UCTR);
        sdkLcdFillRow(SDK_LCD_LINE5, 0, (u8 *)"[ENTER]->NEXT", M_UCTR);
        sdkLcdBrushScreen();
    }
    else
    {
        sdkLcdClear();
        sdkLcdFillRow(SDK_LCD_LINE3, 0, (u8 *)"SEND DATA ERROR!", M_UCTR);
        sdkLcdFillRow(SDK_LCD_LINE4, 0, (u8 *)"PLS MOVE YOUR CARD!", M_UCTR);
        sdkLcdFillRow(SDK_LCD_LINE5, 0, (u8 *)"[ENTER]->NEXT", M_UCTR);
        sdkLcdBrushScreen();
    }
    key = sdkKbWaitKey(SDK_KEY_MASK_ENTER | SDK_KEY_MASK_CANCEL, AUTORET_TIME);
    if(key != SDK_KEY_ENTER)
    {
        return DemoEnterCardModule();
    }
    else
    {
        siRet = sdkRfPowerDown();
        if(SDK_OK == siRet)
        {
            sdkLcdClear();
            sdkLcdFillRow(SDK_LCD_LINE5, 0, (u8 *)"POWER DOWN OK!", M_UCTR);
            sdkLcdBrushScreen();
        }
        else
        {
            sdkLcdClear();
            sdkLcdFillRow(SDK_LCD_LINE5, 0, (u8 *)"POWER DOWN ERROR!", M_UCTR);
            sdkLcdBrushScreen();
        }
    }
    return DemoWaitKeyToBack(DemoEnterCardModule);
}
예제 #10
0
static int sdkTest_BtTestManual(char *pasOutInfo, char const *pTitle) {
    static int iopen = 0;
    static int ivisable = 0;
    static char szMac[6];
    s32 ret;
//    u32 timerid = 0;
    char *temp = NULL, *temp1 = NULL;
    char rslt[256];
//    bool bwrite=false;
//    int nCount=0;
    int key, key2;


    char *szopen[] = {"1.�������豸", "1.�ر������豸"};
    char *szvisable[] = {"3.�����豸�ɼ�", "3.�����豸���ɼ�"};
    char *szAll = "%s\r2.�����������ƺ�����\r%s\r4.��������\r5.��������\r6.�Ͽ�����\r7.����1023���ַ�\r0.����������Ϣ";
    temp = (char *) sdkGetMem(BUF_LEN);
    if (temp == NULL) {
        Assert(0);
        return -1;
    }
    temp1 = (char *) sdkGetMem(BUF_LEN);
    if (temp1 == NULL) {
        Assert(0);
        sdkFreeMem(temp);
        return -1;
    }
    memset(temp, 0, BUF_LEN);
    memset(temp1, 0, BUF_LEN);

    for (; ;) {
        memset(temp, 0, BUF_LEN);
        sprintf(temp, szAll, szopen[iopen], szvisable[ivisable]);
        key = sdkDispMsgBox("��ѡ�����ģ��", temp, 0, SDK_KEY_MASK_ALL);

        switch (key) {
            case SDK_KEY_1: {
                memset(rslt, 0, sizeof(rslt));
                if (iopen == 0) {
                    ret = sdkBtOpen();
                    if (ret != SDK_OK)
                        sprintf(rslt, "sdkBtOpen failed=%d\n", ret);
                    else {
                        iopen = 1;
                        sprintf(rslt, "�����豸�Ѵ�\n");

                        memset(szMac, 0, sizeof(szMac));
                        sdkBtGetMacAddr(szMac, sizeof(szMac));
                    }
                }
                else {
                    ret = sdkBtClose();
                    if (ret == SDK_OK) {
                        iopen = 0;
                        if (ivisable == 1)
                            ivisable = 0;
                        sprintf(rslt, "�����豸�ѹر�\n");
                    }
                    else {
                        sprintf(rslt, "sdkBtClose failed=%d\n", ret);
                    }
                }

                sdkDispMsgBox("��������", rslt, 0, SDK_KEY_MASK_ALL);
                break;
            }
            case SDK_KEY_2: {
                memset(temp, 0, BUF_LEN);
                memset(rslt, 0, sizeof(rslt));

                sdkTestPresetInputASC(temp, pTitle, "�豸����:", "bt123", 2, 64);
                ret = sdkBtSetName(temp);
                if (ret == SDK_OK) {
                    memset(temp, 0, BUF_LEN);
                    sdkTestPresetInputASC(temp, pTitle, "����PIN:", "123456", 6, 6);
                    ret = sdkBtSetPin(temp);
                    if (ret == SDK_OK) {
                        sprintf(rslt, "�豸��Ϣ���óɹ�\n");
                    }
                    else {
                        get_error_str(rslt, ret, "sdkBtSetPin");
                    }
                }
                else {
                    sprintf(rslt, "sdkBtSetName failed=%d\n", ret);
                }
                sdkDispMsgBox("��������", rslt, 0, SDK_KEY_MASK_ALL);
                break;
            }
            case SDK_KEY_3: {
                memset(rslt, 0, sizeof(rslt));
                if (ivisable == 0) {
                    ret = sdkBtSetDiscoverable(true);
                    if (ret == SDK_OK) {
                        ivisable = 1;
                        sprintf(rslt, "�����������豸�ɼ�");
                    }
                    else {
                        get_error_str(rslt, ret, "sdkBtSetDiscoverable");
                    }
                }
                else {
                    ret = sdkBtSetDiscoverable(false);
                    if (ret == SDK_OK) {
                        ivisable = 0;
                        sprintf(rslt, "�����������豸���ɼ�");
                    }
                    else {
                        get_error_str(rslt, ret, "sdkBtSetDiscoverable");
                    }

                }
                sdkDispMsgBox("��������", rslt, 0, SDK_KEY_MASK_ALL);
                break;
            }
            case SDK_KEY_4: {
                memset(rslt, 0, sizeof(rslt));

                for (; ;) {
                    ret = sdkBtGetStatus();
                    switch (ret) {
                        case SDK_BT_STATUS_IDLE:
                            sprintf(rslt, "�豸��δ����", temp);
                            break;
                        case SDK_BT_STATUS_WORKING:
                        case SDK_BT_STATUS_WAITING:
                            sprintf(rslt, "�ȴ���������", temp);
                            break;
                        case SDK_ERR:
                        case SDK_EIO: {
                            memset(rslt, 0, sizeof(rslt));
                            sprintf(rslt, "sdkBtGetStatus failed=%d\n", ret);
                            strcpy(pasOutInfo, rslt);
                            goto end;
                        }
                        default:
                            break;
                    }

                    sdkDispClearScreen();
                    sdkDispAt(0, 0, rslt);

                    memset(temp1, 0, BUF_LEN);
                    memset(rslt, 0, sizeof(rslt));
                    ret = sdkBtRead(temp1, BUF_LEN, 1000);
                    if (ret < 0) {
                        get_error_str(rslt, ret, "sdkBtRead");
                    }
                    else if (ret > 0) {
                        TraceHex("bt_test", "receive data", temp1, ret);
                        sprintf(rslt, "��������len=%d, %s\r\n", ret, temp1);
                        sdkBtWrite(temp1, ret, 0);
                    }

                    if (strlen(rslt) > 0) {
                        sdkDispClearScreen();
                        sdkDispLabel(SDK_DISP_LINE2, rslt, SDK_DISP_LEFT_DEFAULT);
                    }
                    key2 = sdkKbWaitKey(SDK_KEY_MASK_ALL, 1000);
                    if (key2 == SDK_KEY_CLEAR || key2 == SDK_KEY_ESC) {
                        break;
                    }
                }
                break;
            }
            case SDK_KEY_5: {
                memset(rslt, 0, sizeof(rslt));
                memset(temp1, 0, BUF_LEN);

                sdkTestPresetInputASC(temp1, pTitle, "�����뷢�͵�����", "hello", 1, 127);
                ret = sdkBtWrite(temp1, strlen(temp1), 0);
                if (ret > 0) {
                    sdkDispClearScreen();
                    sprintf(rslt, "��������=%s, len=%d\n", temp1, strlen(temp1));
                }
                else {
                    get_error_str(rslt, ret, "sdkBtWrite");
                }

                sdkDispMsgBox("��������", rslt, 0, SDK_KEY_MASK_ALL);
                break;
            }
            case SDK_KEY_6: {
                SDK_BT_REMOTE_INFO stRemote;
                memset(rslt, 0, sizeof(rslt));
                memset(&stRemote, 0, sizeof(SDK_BT_REMOTE_INFO));
#if 0
                ret = sdkBtGetRemoteInfo(&stRemote);
                if (ret == SDK_OK)
                {
                    ret = sdkBtDisconnect(stRemote.m_addr);
                    if(ret == SDK_OK)
                    {
                        sprintf(rslt, "�ѶϿ���%s������\n", stRemote.m_addr);
                    }
                    else
                    {
                        sprintf(rslt, "����sdkBtDisconnect failed, ret=%s\n", ret);
                    }
                }
                else
                {
                    sprintf(rslt, "����sdkBtGetRemoteInfoʧ�ܣ����ܻ�ȡ�����豸��MAC��ַ\n");
                }
#else
                ret = sdkBtDisconnect(szMac);
                if (ret == SDK_OK) {
                    sprintf(rslt, "�ѶϿ�����\n");
                    if (ivisable == 1)
                        ivisable = 0;
                }
                else {
                    get_error_str(rslt, ret, "sdkBtDisconnect");
                }
#endif
                sdkDispMsgBox("��������", rslt, 0, SDK_KEY_MASK_ALL);

                break;
            }
            case SDK_KEY_7: {
                int ret;
                char *tmp_big = sdkGetMem(1024);
                if (tmp_big == NULL)
                    break;

                memset(tmp_big, 0x61, 1023);
                tmp_big[1023] = '\0';
                ret = sdkBtWrite(tmp_big, 1023, 0);
                if (ret < 0) {
                    switch (ret) {
                        case SDK_ERR:
                            sprintf(rslt, "sdkBtWrite ����ʧ��\n");
                            break;
                        case SDK_EIO:
                            sprintf(rslt, "sdkBtWrite ����: �豸δ��\n");
                            break;
                        case SDK_PARA_ERR:
                            sprintf(rslt, "sdkBtWrite ����: ��������\n");
                            break;
                    }
                }
                else {
                    sprintf(rslt, "sdkBtWrite ����: ���ͳɹ���ret=%d\n", ret);
                }

                sdkDispMsgBox("��������", rslt, 0, SDK_KEY_MASK_ALL);
                sdkFreeMem(tmp_big);
                break;
            }
            case SDK_KEY_8: {
                int ret;
                char *tmp_big = sdkGetMem(3072);
                if (tmp_big == NULL)
                    break;

                memset(tmp_big, 0, 3072);
                ret = sdkBtRead(tmp_big, 3071, 30000);
                if (ret < 0) {
                    switch (ret) {
                        case SDK_ERR:
                            sprintf(rslt, "sdkBtRead ����ʧ��\n");
                            break;
                        case SDK_EIO:
                            sprintf(rslt, "sdkBtRead ����: �豸δ��\n");
                            break;
                        case SDK_PARA_ERR:
                            sprintf(rslt, "sdkBtRead ����: ��������\n");
                            break;
                        case SDK_TIME_OUT:
                            sprintf(rslt, "sdkBtRead ����: ��ʱ����\n");
                            break;
                    }
                }
                else {
                    sprintf(rslt, "sdkBtRead ����: ���ճɹ���ret=%d\n", ret);
                }

                sdkDispMsgBox("��������", rslt, 0, SDK_KEY_MASK_ALL);
                sdkFreeMem(tmp_big);
                break;
            }
            case SDK_KEY_9: {
                int ret;
                sdkDispMsgBox("��������", "�����������͹���", 0, SDK_KEY_MASK_ALL);
                sdkSysEnterIdle(1, 1);

                memset(rslt, 0, sizeof(rslt));
                for (; ;) {
                    ret = sdkBtGetStatus();
                    switch (ret) {
                        case SDK_BT_STATUS_IDLE:
                            sprintf(rslt, "�豸��δ����", temp);
                            break;
                        case SDK_BT_STATUS_WORKING:
                        case SDK_BT_STATUS_WAITING:
                            sprintf(rslt, "�ȴ���������", temp);
                            break;
                        case SDK_ERR:
                        case SDK_EIO: {
                            memset(rslt, 0, sizeof(rslt));
                            sprintf(rslt, "sdkBtGetStatus failed=%d\n", ret);
                            strcpy(pasOutInfo, rslt);
                            goto end;
                        }
                        default:
                            break;
                    }

                    sdkDispClearScreen();
                    sdkDispAt(0, 0, rslt);

                    memset(temp1, 0, BUF_LEN);
                    memset(rslt, 0, sizeof(rslt));
                    ret = sdkBtRead(temp1, BUF_LEN, 1000);
                    if (ret < 0) {
                        get_error_str(rslt, ret, "sdkBtRead");
                    }
                    else if (ret > 0) {
                        TraceHex("bt_test", "receive data", temp1, ret);
                        sprintf(rslt, "��������len=%d, %s\r\n", ret, temp1);
                        sdkBtWrite(temp1, ret, 0);
                    }

                    if (strlen(rslt) > 0) {
                        sdkDispClearScreen();
                        sdkDispLabel(SDK_DISP_LINE2, rslt, SDK_DISP_LEFT_DEFAULT);
                    }
                    key2 = sdkKbWaitKey(SDK_KEY_MASK_ALL, 1000);
                    if (key2 == SDK_KEY_CLEAR || key2 == SDK_KEY_ESC) {
                        break;
                    }
                }
                break;
            }
            case SDK_KEY_0:
                sdkTest_BtTestManual2(pasOutInfo, pTitle);
                break;
            case SDK_KEY_ESC:
            case SDK_KEY_CLEAR:
                goto end;
            default:
                break;
        }
    }

    end:
    memset(temp, 0, BUF_LEN);
//    sdkBtGetMacAddr(temp, BUF_LEN);
//    sdkBtDisconnect(temp);
    if (iopen) {
        sdkBtClose();
    }
    iopen = 0;
    ivisable = 0;

    if (temp) sdkFreeMem(temp);
    if (temp1) sdkFreeMem(temp1);

    return SDK_OK;
}