http://forum.pcsoft.fr/pt-BR/pcsoft.br.windev/1568-api-para-controlar-leitor-rfid/read.awp
Publicado em agosto, 04 2016 - 9:22 AM
|
Prezados,
Segue exemplo de como trabalhar com RFID (Identificação por radiofrequência ou RFID (do inglês "Radio-Frequency IDentification" ) é um método de identificação automática através de sinais de rádio).
Uma etiqueta ou tag RFID é um transponder, pequeno objeto que pode ser colocado em uma pessoa, animal, equipamento, embalagem ou produto, dentre outros. Contém chips de silício e antenas que lhe permite responder aos sinais de rádio enviados por uma base transmissora. Além das etiquetas passivas, que respondem ao sinal enviado pela base transmissora, existem ainda as etiquetas semipassivas e as ativas, dotadas de bateria, que lhes permite enviar o próprio sinal. São bem mais caras que do que as etiquetas passivas.
RFID: utiliza transponders ( os quais podem ser apenas lidos ou lidos e escritos) nos produtos, como uma alternativa aos códigos de barras, de modo a permitir a identificação do produto de alguma distância do scanner ou independente, fora de posicionamento. Tecnologia que viabiliza a comunicação de dados através de etiquetas com chips ou transponders que transmitem a informação a partir da passagem por um campo de indução. (ex: muito usado em pedágio "sem parar").
https://pt.wikipedia.org/wiki/Identifica%C3%A7%C3%A3o_por_radiofrequ%C3%AAncia
Definição da API para controlar um leitor de RFID, com os seus parametros e seu retorno:
Em WL:
Em C#:
Segue exemplo de como trabalhar com RFID (Identificação por radiofrequência ou RFID (do inglês "Radio-Frequency IDentification" ) é um método de identificação automática através de sinais de rádio).
Uma etiqueta ou tag RFID é um transponder, pequeno objeto que pode ser colocado em uma pessoa, animal, equipamento, embalagem ou produto, dentre outros. Contém chips de silício e antenas que lhe permite responder aos sinais de rádio enviados por uma base transmissora. Além das etiquetas passivas, que respondem ao sinal enviado pela base transmissora, existem ainda as etiquetas semipassivas e as ativas, dotadas de bateria, que lhes permite enviar o próprio sinal. São bem mais caras que do que as etiquetas passivas.
RFID: utiliza transponders ( os quais podem ser apenas lidos ou lidos e escritos) nos produtos, como uma alternativa aos códigos de barras, de modo a permitir a identificação do produto de alguma distância do scanner ou independente, fora de posicionamento. Tecnologia que viabiliza a comunicação de dados através de etiquetas com chips ou transponders que transmitem a informação a partir da passagem por um campo de indução. (ex: muito usado em pedágio "sem parar").
https://pt.wikipedia.org/wiki/Identifica%C3%A7%C3%A3o_por_radiofrequ%C3%AAncia
Definição da API para controlar um leitor de RFID, com os seus parametros e seu retorno:
int CV_GetSerialNum ( int DeviceAddress , int & CurrentAddress , Char * SerialNum )
Em WL:
tabCurrentAdd est un tableau de 1 entier sur 1 octet
tabSzSerialnum est un tableau de 9 entier sur 1 octet
nSserialnumber est une entier
nSserialnumber = API(sDllname,"CV_GetSerialNum",0,&tabCurrentAdd,&tabSzSerialnum)
SAI_Texte1 = "serialnum status"+nSserialnumber+RC+SAI_Texte1
SAI_Texte1 ="serialnumber:"+ChaîneRécupère(&tabSzSerialnum,crAdresseASCIIZ)+RC+SAI_Texte1
tabSzSerialnum est un tableau de 9 entier sur 1 octet
nSserialnumber est une entier
nSserialnumber = API(sDllname,"CV_GetSerialNum",0,&tabCurrentAdd,&tabSzSerialnum)
SAI_Texte1 = "serialnum status"+nSserialnumber+RC+SAI_Texte1
SAI_Texte1 ="serialnumber:"+ChaîneRécupère(&tabSzSerialnum,crAdresseASCIIZ)+RC+SAI_Texte1
Em C#:
PRIVATE void btnGetSerialNumber_Click(object sender, EventArgs e)
{
int[] CurrentAdd = new int[1];
byte[] SerialNUM = new byte[9];
for (int i = 0; i < 9; i++)
SerialNUM[i] = 0x00;
string aSN = "";
IF (0 == CV_GetSerialNum(0, CurrentAdd, SerialNUM))
{
SerialNUM[8] = 0x00;
IF (SerialNUM[0] == 0xFF)
aSN = "FFFFFFFF";
ELSE
{
for (int i = 0; i < 64; i++)
{
IF (0 == SerialNUM[i])
BREAK;
ELSE aSN += Convert.ToString(Convert.ToChar(SerialNUM[i]));
}
}
tbSerial.Text = aSN;
}
}
{
int[] CurrentAdd = new int[1];
byte[] SerialNUM = new byte[9];
for (int i = 0; i < 9; i++)
SerialNUM[i] = 0x00;
string aSN = "";
IF (0 == CV_GetSerialNum(0, CurrentAdd, SerialNUM))
{
SerialNUM[8] = 0x00;
IF (SerialNUM[0] == 0xFF)
aSN = "FFFFFFFF";
ELSE
{
for (int i = 0; i < 64; i++)
{
IF (0 == SerialNUM[i])
BREAK;
ELSE aSN += Convert.ToString(Convert.ToChar(SerialNUM[i]));
}
}
tbSerial.Text = aSN;
}
}
Nenhum comentário:
Postar um comentário