RFID CON ANTENA YAGI DESDE JAVA
Publicado por JULIO (1 intervención) el 08/10/2018 20:18:00
Amigos buenas tardes y disculpen las molestias que pueda provocar.
necesito extraer la información de un chip RFID desde una antena Yagi programado desde JAVA, ya me puedo conectar pero no me aparece todo el contenido, solo una parte, alguno de ustedes podría ayudarme a extraer todo lo almacenado del chip? les agradecería mucho.
este es mi código:
en la segunda clase tengo lo siguiente:
necesito extraer la información de un chip RFID desde una antena Yagi programado desde JAVA, ya me puedo conectar pero no me aparece todo el contenido, solo una parte, alguno de ustedes podría ayudarme a extraer todo lo almacenado del chip? les agradecería mucho.
este es mi código:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
import com.impinj.octane.BitPointers;
import com.impinj.octane.ImpinjReader;
import com.impinj.octane.MemoryBank;
import com.impinj.octane.OctaneSdkException;
import com.impinj.octane.ReaderMode;
import com.impinj.octane.ReportMode;
import com.impinj.octane.Settings;
import com.impinj.octane.TagFilter;
import com.impinj.octane.TagFilterMode;
import com.impinj.octane.TagFilterOp;
import java.util.Scanner;
public class Arcos {
public static String targetTag = "targetTag";
public static void main(String[] args) {
try {
String hostname = "192.168.1.10";
if (hostname == null) {
throw new Exception("Must specify the '"
+ hostname + "' property");
}
ImpinjReader reader = new ImpinjReader();
// Connect
System.out.println("Connecting to " + hostname);
reader.connect(hostname);
// Obtener la configuración por defecto
Settings settings = reader.queryDefaultSettings();
settings.getReport().setIncludeAntennaPortNumber(true);
settings.getReport().setMode(ReportMode.Individual);
settings.setReaderMode(ReaderMode.AutoSetDenseReader);
String targetEpc = System.getProperty(targetTag);
// esto coincidirá con los primeros 16 bits del EPC objetivo.
if (targetEpc != null) {
TagFilter t1 = settings.getFilters().getTagFilter1();
t1.setBitCount(16);
t1.setBitPointer(BitPointers.Epc);
t1.setMemoryBank(MemoryBank.Epc);
t1.setFilterOp(TagFilterOp.Match);
t1.setTagMask(targetEpc);
settings.getFilters().setMode(TagFilterMode.Filter1OrFilter2);
System.out.println("Matching 1st 16 bits of epc "+ targetEpc);
}
// habilitar ambos filtros si están configurados
if ((targetEpc != null)) {
settings.getFilters().setMode(TagFilterMode.Filter1AndFilter2);
}
// Aplicar la nueva configuración.
//Esta es la segunda clase
reader.applySettings(settings);
reader.setTagReportListener(new TagReportListenerImplementation());
// Iniciar el lector
reader.start();
System.out.println("Press Enter to exit.");
Scanner s = new Scanner(System.in);
s.nextLine();
System.out.println("Stopping " + hostname);
reader.stop();
System.out.println("Disconnecting from " + hostname);
reader.disconnect();
System.out.println("Done");
} catch (OctaneSdkException ex) {
System.out.println(ex.getMessage());
} catch (Exception ex) {
System.out.println(ex.getMessage());
ex.printStackTrace(System.out);
}
}
}
en la segunda clase tengo lo siguiente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import com.impinj.octane.ImpinjReader;
import com.impinj.octane.Tag;
import com.impinj.octane.TagReport;
import com.impinj.octane.TagReportListener;
import java.util.List;
public class TagReportListenerImplementation implements TagReportListener {
@Override
public void onTagReported(ImpinjReader reader, TagReport report) {
List<Tag> tags = report.getTags();
for (Tag t : tags) {
if (t.isAntennaPortNumberPresent()) {
System.out.print("folio: "+t.getEpc().toHexString()+
"\t Antena: " + t.getAntennaPortNumber()+"\n");
}
else{
System.out.print("puerto no detectado");
}
}
}
}
Valora esta pregunta
0