コード例 #1
0
ファイル: BthMod.c プロジェクト: noteforsteve/bthmod
int 
BthModScan(
    IN BthMod_T *pMod
    )
{
    int ret = E_FAIL;
    int i;
    char Buf[MAX_LINE];

    DBG_MSG(DBG_TRACE, "%s\n", __FUNCTION__);

    for (i = 0; i < COUNTOF(gBthModBaudTable); i = i + 1)
    {
        DBG_MSG(DBG_TRACE, "Scan: port %s, rate %d\n", pMod->Name, gBthModBaudTable[i].uRate);

        ret = UartOpen(pMod->hUart, 
                       pMod->Name, 
                       gBthModBaudTable[i].uRate,
                       UART_DATA_BITS_8,
                       UART_PARITY_NONE,
                       UART_STOP_1);
	    CHECK_RETVAL(ret, ExitOnFailure);

        /* Ensure we are flowed on */
        ret = UartSetStatus(pMod->hUart, UART_STATUS_SETRTS);
	    CHECK_RETVAL(ret, ExitOnFailure);

        /* Attempt to exit command mode, we need to be in a known state */
        ret = UartLineWrite2(pMod->hUart, "\n---\n", 100, 50);
	    CHECK_RETVAL(ret, ExitOnFailure);

        /* Dump the read data, we do not chare what was returned */
        ret = UartPurge(pMod->hUart);
	    CHECK_RETVAL(ret, ExitOnFailure);

        /* Attempt to enter command mode */
        ret = UartLineWrite2(pMod->hUart, "$$$", 100, 50);
	    CHECK_RETVAL(ret, ExitOnFailure);

        /* Read the response, we should see the cmd prompt */
        ret = UartLineRead(pMod->hUart, Buf, sizeof(Buf), 100);
        if (FAILED(ret) && (ret != E_TIMEOUT))
        {
            CHECK_RETVAL(ret, ExitOnFailure);
        }

        /* Have we entered command mode */
        if (SUCCEEDED(ret) && !strncmp(Buf, "CMD", 3))
        {
            ret = (i == 0) ? S_OK : S_FALSE;
            break;
        }            

        UartClose(pMod->hUart);
    }

ExitOnFailure:

    return ret;
}
コード例 #2
0
ファイル: integration.c プロジェクト: xiaoaoguzi/fingerjni
/*
功能:关闭串口, 停止服务
*/
void  Java_xwp_jr_Fingerprint_UartExit(JNIEnv *env, jclass thiz)
{
	status = SERSTOP;
	usleep(DELAYTIME);
	UartClose();
	fd_status = CLOSED;
}
コード例 #3
0
ファイル: main.c プロジェクト: NeoBelerophon/openHC
int main(int argc, char* argv[])
{
    int retval = 0;

    if (argc < 2)
    {
        printf("Usage: phc_log <COM port> {<JRM list>}\n");
#ifdef WIN32
        printf("       <COM port> is e.g. COM1, COM2, etc.\n");
#else
        printf("       <COM port> is e.g. /dev/ttyS0, /dev/ttyS1, etc.\n");
#endif
        printf("       <JRM list> is a comma/dash separated list of JRM modules\n");
        printf("Example: phc_log COM5 24-27,30\n");
        return -1;
    }

    if (argc >= 3)
    {
        // which AM module(s) to treat as JRM
        retval = get_range(argv[2]);
        if (retval)
        {
            printf("Error: bad address specified %s\n", argv[2]);
            return retval;
        }
        
    }
    
    ghUart = UartOpen(argv[1]);
    if (!ghUart)
    {
        printf("Error opening %s\n", argv[1]);
        return -2;
    }

    //UartConfig(ghUart, 19200, eNOPARITY, eTWOSTOPBITS, 8, 0);
    UartConfig(ghUart, 19200, eNOPARITY, eONESTOPBIT, 8, 0);

    log_loop(ghUart); // do the action

    UartClose(ghUart);

    return retval;
}
コード例 #4
0
ファイル: Uart.c プロジェクト: noteforsteve/bthmod
void
UartDtor(
    IN uhandle_t 	hUart
    )
{
    DBG_MSG(DBG_TRACE, "%s\n", __FUNCTION__);

    if (hUart)
    {
        UartClose(hUart);

#ifdef WINDOWS
        WinUartDtor(hUart);
#elif OSX
        OsxUartDtor(hUart);
#else
        DBG_MSG(DBG_TRACE, "Unknown OS_TYPE %d\n", OS_TYPE);
#endif

    }
}
コード例 #5
0
ファイル: integration.c プロジェクト: xiaoaoguzi/fingerjni
/*
功能:初始化指纹机
成功返回SUCCESS,失败返回错误码
*/
int  Java_xwp_jr_Fingerprint_InitFinger(JNIEnv *env, jclass thiz)
{
	int ret = ERR, i;
	
	if(CLOSED == fd_status)
	{
		ret = UartInit(); 
		if(ret < 0)
			goto EXIT;

		fd_status = OPENED;
		LOGI("打开设备成功 fd : %d", ret);
		LOGI("获取注册人数");
		ret = ValidTempleteNum();
	}

EXIT:
	switch(ret){
		case SUCCESS:
			finger_id = buf_data[0];
			LOGI("注册人数:%d", finger_id);
			break;

		case ERR:
			LOGI("设备已经打开 fd_status : %d", fd_status);
			break;
		default:
			LOGE("获取注册人数失败,错误码为: %d", ret);
			if(fd_status == OPENED)
			{
				UartClose();
				fd_status = CLOSED;
			}
			break;
	}
	
	return ret;
}