示例#1
0
文件: util.c 项目: c-ber/cber
cb_code_t str_to_proto(const uint8_t *src, int slen, uint8_t *dst)
{
    uint8_t stmp[128] ={0};
    uint8_t low  = 0;
    uint8_t high = 0;
    int  i       = 0;

    int supply = 0;
    if( NULL == dst || NULL == src || slen > 126)
    {
        return CB_NULL_POINT;
    }
    memcpy(stmp, src, slen);
    if( slen % 2 )
    {
        stmp[slen] = 'f';
    }
    supply = strlen((char *)stmp);
    supply = supply >> 1;
    for( i = 0; i < supply ; i++ )
    {
        low = asc_to_hex(stmp[2*i]);
        high = asc_to_hex(stmp[2*i+1]);
        *(dst+i) = (high << 4) + low;
    }
    return CB_OK;
}
示例#2
0
/*******************************************************************************
* 描  述  : 判断操作类型(发送卡号、读卡、写卡、修改密码 )
* 输  入  :  无
* 输  出  :  无
* 返  回  :  无
*******************************************************************************/
void rfid_ctrl(u8* p_data)
{
	u8 ii;
	for( ii = 0 ; ii < 30 ; ii++ )
		RevBuffer[ii] = (asc_to_hex(p_data[ii*2+0])<<4) + asc_to_hex(p_data[ii*2+1]);
	DebugPrintf(OTHER_DBG,"found rfid input: ");
	debug_printf(OTHER_DBG,RevBuffer,30);
  
	switch(RevBuffer[1])
	{
	case 0xa0:	//发送卡号
		oprationcard=SENDID;
		break;
	case 0xa1://读数据
		oprationcard=READCARD;
		for(ii=0;ii<6;ii++)
			PassWd[ii] = RevBuffer[ii+2];
		KuaiN=RevBuffer[8];
		break;
	case 0xa2://写数据
		oprationcard=WRITECARD;
		for(ii=0;ii<6;ii++)
			PassWd[ii]=RevBuffer[ii+2];
		KuaiN=RevBuffer[8];
		for(ii=0;ii<16;ii++)
			WriteData[ii]=RevBuffer[ii+9];
		break;  
	case 0xa3: //修改密码
		oprationcard=KEYCARD; 
		for(ii=0;ii<6;ii++)
			PassWd[ii]=RevBuffer[ii+2];
		KuaiN=RevBuffer[8];
		for(ii=0;ii<6;ii++)
		{
			NewKey[ii]=RevBuffer[ii+9];
			NewKey[ii+10]=RevBuffer[ii+9];
		}
		break;
	default:
		break;
	}
}