Jump to content
gamarrajr

[Help] C# RFID

Recommended Posts

gamarrajr

O rfid tem uns cartões que tem um código que e a sua identificação como por exemplo 4654874321 , e eu queria que o programa que vou fazer conseguisse detectar esse código em vez de só detectar o Enter.

  private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                MessageBox.Show("Enter pressed", "Attention");
            }
        }

Mas com esse tal código do cartão

se alguém poder ajudar  :cheesygrin:

Share this post


Link to post
Share on other sites
HappyHippyHippo

podes ser mais coerente na tua questão ??

o que dizes parece muito confuso.

falas num código e apresentar um event de um form, não dizes onde tens guardado o valor já inserido, e outras questões relativas a como a tua aplicação está a receber o código (parece ser pelo teclado ?!?! afinal não é por rfid ?!?!)


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
gamarrajr

podes ser mais coerente na tua questão ??

o que dizes parece muito confuso.

falas num código e apresentar um event de um form, não dizes onde tens guardado o valor já inserido, e outras questões relativas a como a tua aplicação está a receber o código (parece ser pelo teclado ?!?! afinal não é por rfid ?!?!)

o rfid e como usar a tecla enter, mas tem uns cartões quem tem uns códigos tipo 457899654, e eu queria usar esses cartões como fossem  outras teclas como por exemplo tecla A. porque cada vez que passo o cartão ele assume a tecla enter sempre

Share this post


Link to post
Share on other sites
softklin

Não sei se é o caso, mas pelo que li, os leitores de cartões RFID simulam a introdução de caracteres, como se fosse um teclado. O código não é enviado antes da tecla Enter? Experimenta apanhar dígitos que venham antes do enter, por exemplo:

  private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                MessageBox.Show("Enter pressed", "Attention");
            }

            if(e.KeyValue >= 48 && e.KeyValue <= 57){
                MessageBox.Show(((char) e.KeyValue).ToString());
            }
        }

Os valores 48 a 57 correspondem aos dígitos de 0 a 9 segundo a tabela ASCII. Nesse exemplo, ao colocares o cartão no leitor, deve-te ser apresentada uma messagebox com cada dígito, seguido do aviso de premires a tecla enter. Isto funciona no teu caso?


Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Share this post


Link to post
Share on other sites
gamarrajr

Não sei se é o caso, mas pelo que li, os leitores de cartões RFID simulam a introdução de caracteres, como se fosse um teclado. O código não é enviado antes da tecla Enter? Experimenta apanhar dígitos que venham antes do enter, por exemplo:

  private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                MessageBox.Show("Enter pressed", "Attention");
            }

            if(e.KeyValue >= 48 && e.KeyValue <= 57){
                MessageBox.Show(((char) e.KeyValue).ToString());
            }
        }

Os valores 48 a 57 correspondem aos dígitos de 0 a 9 segundo a tabela ASCII. Nesse exemplo, ao colocares o cartão no leitor, deve-te ser apresentada uma messagebox com cada dígito, seguido do aviso de premires a tecla enter. Isto funciona no teu caso?

ele da semprem valor de zero em todos os cartoes

Share this post


Link to post
Share on other sites
softklin

Então, isso significa que ele está a mandar o código 0 nos cartões. Os cartões já têm um código predefinido, que não seja zero, ou tens de os inicializar com um código teu? Pelo que descreves, parece que todos estão a zero.


Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Share this post


Link to post
Share on other sites
gamarrajr

Usei este código

 private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
           
            if (e.KeyCode == Keys.Enter)
            {
                //MessageBox.Show("Enter pressed", "Attention");
                MessageBox.Show(codigo);
            }

            if(e.KeyValue >= 48 && e.KeyValue <= 57){

                codigo = string.Concat(codigo, ((char) e.KeyValue).ToString());
                //MessageBox.Show(((char) e.KeyValue).ToString());
            }

ele já mostra o numero do cartão

Problema e, quando tenho botões no form ele não detecta as teclas 

Share this post


Link to post
Share on other sites
bsccara

Julgo que a propriedade KeyValue da classe KeyEventArgs retorna um código numérico da tecla, que não corresponde ao código UTF-16 da mesma. Tenta fazer :

codigo = string.Concat(codigo, Convert.ToChar(e.KeyValue));

em vez de:

codigo = string.Concat(codigo, ((char) e.KeyValue).ToString())

Share this post


Link to post
Share on other sites
gamarrajr

Julgo que a propriedade KeyValue da classe KeyEventArgs retorna um código numérico da tecla, que não corresponde ao código UTF-16 da mesma. Tenta fazer :

codigo = string.Concat(codigo, Convert.ToChar(e.KeyValue));

em vez de:

codigo = string.Concat(codigo, ((char) e.KeyValue).ToString())

continua igual, mas obrigado na mesma

Share this post


Link to post
Share on other sites
gamarrajr

Pessoal preciso novamente de uma grande ajuda =P

O numero do cartão que tenho de rfid e este 0006880574 , e preciso que quando passar esse tal cartao com esse numero passe para outro form

Obrigado mais uma vez a todos

           

Share this post


Link to post
Share on other sites
softklin

Isso já foi discutido muitas vezes no fórum, se fizeres uma pesquisa, incluindo na nossa Wiki, encontras a resposta. Não sei como estás a fazer, mas uma forma simples e sem alterar nada do que está feito, é adicionar um método no formulário para o qual queres enviar dados (form destino), e passar o código para lá.

Por exemplo:

public function void inserirNumero(string id) {
   // o numero é recebido no id, fazer o pretendido com ele, por exemplo:
   Messagebox.Show("Recebi o id " + id);
}

no formulário que lê o número, basta fazeres:

frmDestino dest = new frmDestino();   // abrir o teu form
dest.inserirNumero(codido);  // passar o codigo
dest.Show();

Já agora, por curiosidade, adquiriste um leitor de RFID para fins pessoais? Se sim, podes dizer-me onde comprar um barato, apenas para leitura? Também gostava de fazer umas brincadeiras com RFID.

Cumps.


Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Share this post


Link to post
Share on other sites
gamarrajr

Isso já foi discutido muitas vezes no fórum, se fizeres uma pesquisa, incluindo na nossa Wiki, encontras a resposta. Não sei como estás a fazer, mas uma forma simples e sem alterar nada do que está feito, é adicionar um método no formulário para o qual queres enviar dados (form destino), e passar o código para lá.

Por exemplo:

public function void inserirNumero(string id) {
   // o numero é recebido no id, fazer o pretendido com ele, por exemplo:
   Messagebox.Show("Recebi o id " + id);
}

no formulário que lê o número, basta fazeres:

frmDestino dest = new frmDestino();   // abrir o teu form
dest.inserirNumero(codido);  // passar o codigo
dest.Show();

Já agora, por curiosidade, adquiriste um leitor de RFID para fins pessoais? Se sim, podes dizer-me onde comprar um barato, apenas para leitura? Também gostava de fazer umas brincadeiras com RFID.

Cumps.

São 50 euros amanha eu dou te o site =P, mas obrigado pela ajuda, este e o código que eu coloquei e deu

if (string.Compare(codigo,"0006880574")==0)
                {
                    mshape = 1;
                }

Share this post


Link to post
Share on other sites
Gonka

Também ando ansioso para matar a curiosidade de brincar com um RFID, mas o que tenho encontrado é caro demais...

Share this post


Link to post
Share on other sites
softklin

Epá, 50 euros é muito para o que queria fazer. E ainda tinha de comprar as tags, embora sejam baratas. Sendo assim, obrigado na mesma, vou continuar à procura de algo mais acessível.


Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Share this post


Link to post
Share on other sites
gamarrajr

Epá, 50 euros é muito para o que queria fazer. E ainda tinha de comprar as tags, embora sejam baratas. Sendo assim, obrigado na mesma, vou continuar à procura de algo mais acessível.

mesmo assim se conseguir mais barato, eu depois falo contigo

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.