Documentos de Académico
Documentos de Profesional
Documentos de Cultura
NACIONAL
CENTRO DE INNOVACIN Y
DESARROLLO TECNOLGICO EN
CMPUTO DEL IPN
METODOLOGA PARA EL
DESARROLLO DE APLICACIONES
RFID: UN EJEMPLO PRCTICO
T E S I
S
QUE PARA OBTENER EL GRADO
DE: MAESTRA EN TECNOLOGA DE
CMPUTO
PRESENT
A:
LIC. BEATRIZ PREZ
BERNABE
Directores de
Tesis
M. en C. Eduardo Vega
Alvarado
M. en C. Jess A. lvarez
Cedillo
Mxico, D.F.
2009
Noviembre
SIP-14
INSTITUTO POLITECNICO
SECRETARA DE INVESTIGACiN
ACTA DE REV/S/ON
En la Ciudad de
noviembre
de
Mxico, D.F.
2009
NACIONAL
Y POSGRADO
DE TESIS
siendo las
14:30
horas del da
del mes de
19
CIDETEC
PARA EL DESARROLLO
DE APLICACIONES
BEATRIZ
BERNABE
materno
nombre(s<L_) ,.--_,-_,.--------._---,-_,.------,
Con registro:
L.:I
B:.
---Lj__:7:I.........:..:.l
.1......:o...1
DE CMPUTO
M.ENC.~
M. EN C. JESUS ANT
Segun
ocal
(Director de Tesis)
M. EN C. JUAN e,
HERRERALaZADA
Suplente
EL PRESIDENTE DEL
.fJ,....J.'yc" .il'
~lfI,.f':':{~:;:."'.
-~"._"J!J..
fNSTITU
ro
S. E. P.
POl!TECNi:O
NAC ONAl
Y POSGRADO
En la Ciudad de Mxico, D.F el da 30 del mes noviembre del rulo 2009, la que suscribe
Beatriz Prez Bernabe del Programa de Maestra en Tecnologa de Cmputo con nmero de
registro B071569, adscrito a Centro de Innovacin y Desarrollo Tecnolgico
en Cmputo,
manifiesta que es autora intelectual del presente trabajo de Tesis bajo la direccin del M. en C.
Eduardo Vega Alvarado y el M. en C. Jess A. lvarez Cedillo
Los usuarios de la informacin no deben reproducir el contenido textual, grficas o datos del
trabajo sin el permiso expreso del autor y/o director del trabajo.
Agradecimien
tos
Principalmente le agradezco a Dios por las bendiciones que me ha dado, al
darme el gozo de contar con una familia que me ama y me apoya en todo
momento de mi vida; tambin quiero agradecer a mi pas, que me ha dado
una formacin profesional y humana.
A mi madre, que ya no est conmigo, y que s estara muy orgullosa de
saber que sus enseanzas y consejos me han ayudado en todo momento
de mi vida.
A mi esposo Enrique, quien ha estado conmigo en todo
momento.
A mi hermana Edith y mis sobrinos Zayra y Fernando, que son parte
fundamental de mi familia y que siempre me han apoyado.
Un agradecimiento especial a m amigo y director de tesis M. en C.
Eduardo Vega, por su apoyo y confianza.
A mi amigos, porque s que puedo contar con ellos y que siempre hemos
salido
adelante,
trabajando
en
equipo
compartiendo
momentos
Agradecimien
tos
I
Resume
n
El propsito general de este trabajo es plantear una metodologa para el diseo
e implementacin
de
aplicaciones
utilizando
tecnologa
RFID,
tomando
para
II
Abstra
ct
The general purpose of this thesis is the proposal of a methodology for the
design and implementation of applications using RFID technology, having as
an example the development of an inventory control system assets.
The constant development of RFID technologies, in addition to a fall in the cost
derived from its usage, has converted those technologies into an important
alternative for designing identification and control systems. This is the
foundation for the present work, with the final objective of establishing a
methodology as a base for developing general applications implemented in
RFID.
This research includes two sections: the first one (Chapters 1, 2 and 3)
studies the most relevant variations in RFID technology, with an evaluation of
them and their performance in relation with other technologies; besides it
includes an analysis of the state-of-the-art in this field. The second section
(Chapters 4 and 5) describes the methodology for the development of
applications based on RFID, using a system for inventories control as an
example, in order to show every physical and logical aspect involved in these
designs.
III
ndice
General
Glosario ................................................................................................................
............................
VIII
Introduccin
..............................................................................................................................
.........
IX
Antecedentes........................................................................................................
..............................
Planteamiento
del
Problema
...........................................................................................................
XII
Objetivos
de
Trabajo..................................................................................................................
.......
XII
Organizacin
de
la
.................................................................................................................
Captulo
1.
Tecnologa
de
identificacin
por
radiofrecuencia
Tesis
XIII
(RFID).
...........................................14
1.1
Definicin
de
RFID
.................................................................................................................... .14
1.2
Componentes........................................................................................................
.....................14
1.2.1 Etiqueta (Tag)
................................................................................................................. .15
1.2.2 Antenas
.........................................................................................................................
.. 17
1.2.3 Lectores
RFID................................................................................................................. .
18
1.2.4 Rango de Frecuencias y Velocidades
............................................................................18
1.3
Estndares
de
RFID.................................................................................................................. .20
1.4
Conectividad
............................................................................................................................. .
20
ndice
1.5
General
Middleware............................................................................................................
.....................21
1.6
Seguridad
..............................................................................................................................
.....23
1.7
Esquemas
de
Seguridad
........................................................................................ .23
para
1.8
Anticolisin
y
Mltiples
.............................................................................................. 24
Captulo 2. Comparacin de
............................................25
las
Tecnologas
2.1
Comparacin
de
las
Tecnologas
.........................................................25
de
de
2.2
Beneficio
del
Uso
de
.....................................................................................29
RFID
Lecturas
Auto-identificacin
Auto-identificacin
Tecnologa
2.3
Aplicaciones
de
RFID
(sistemas
identificacin).................................................................29
RFID
de
implementacin
RFID
IV
3
5.3 Trabajos a futuro
............................................................................................................... .64
Bibliografa.............................................................................................................
...........................66
Anexo.....................................................................................................................
............................68
ndice de tablas
TABLA 1. 1 CONSUMO DE POTENCIA DE VARIOS SISTEMAS RFID
(AMTEL)..................................................................... 16
TABLA 1. 2 RANGOS DE FRECUENCIA DE RFID
....................................................................................................... . 19
TABLA 2. 1 COMPARACIN ENTRE LA TECNOLOGA DE CDIGO DE BARRAS Y LOS SISTEMAS RFID
.................................... 28
TABLA 2. 2 COMPARACIONES PRIMARIAS DE LAS TECNOLOGAS DE AUTO-ID.
................................................................ 30
TABLA 2. 3 PROVEEDORES DE TECNOLOGA RFID EN MXICO
................................................................................... . 31
TABLA 4. 1 CATALOGO DE LA BASE DE
DATOS........................................................................................................... . 51
VI
ndice de figuras
FIGURA 1. 1 FUNCIONAMIENTO DE RFID
................................................................................................................ . 14
FIGURA 1. 2 ESQUEMA DE UN TRANSPONDER DE RFID
............................................................................................ . 15
FIGURA 1. 3 LECTOR
RFID................................................................................................................................... .
18
FIGURA 1. 4 CAPAS DEL MIDDLEWARE RFID
.......................................................................................................... . 22
FIGURA 1.5 JAULA DE
FARADAY.............................................................................................................................. .
24
FIGURA 2 1 CDIGO DE
BARRAS............................................................................................................................ .
25
FIGURA 3.1 ARQUITECTURA FSICA DEL SISTEMA
..................................................................................................... . 39
FIGURA 3.2 DIAGRAMA DEL SISTEMA
..................................................................................................................... . 40
FIGURA 3. 3 DIAGRAMAS LGICOS DEL SISTEMA
...................................................................................................... . 40
FIGURA 3.4 LECTOR ID12
................................................................................................................................... . 43
FIGURA 3.5 DIAGRAMA DEL CIRCUITO PARA LA ID12
................................................................................................ . 44
FIGURA 3.6 CIRCUITO CONVERTIDOR DE SEALES TTL A RS-232
.............................................................................. 45
FIGURA 3.7 APLICACIN PARA DESARROLLO ESQUEMTICO
....................................................................................... . 46
FIGURA 3.8 DIAGRAMA ESQUEMTICO
................................................................................................................... . 46
FIGURA 3.9 DIAGRAMA PCB
................................................................................................................................ . 47
FIGURA 3.10 PROCESO DE FABRICACIN
................................................................................................................ . 48
FIGURA 3.11 CIRCUITO TERMINADO
....................................................................................................................... . 48
FIGURA 3.12 PRUEBA DE LECTURA DE UN
TAG......................................................................................................... . 49
FIGURA 4.1 DIAGRAMA DE RELACIN ENTIDAD DE LA BASE DE DATOS
........................................................................... 52
FIGURA 4.2 PANTALLA DE USUARIO
........................................................................................................................ . 53
FIGURA 4.3 CONFIGURACIN DE PUERTO
................................................................................................................ . 53
VII
Y ALTA DE BIENES
VII
Glosari
o
Antena.- Dispositivo normalmente metlico que provee una inductancia para
emitir ondas de radio frecuencia.
Anti-colisin.- Tcnica para evitar choques por lecturas simultneas entre las
etiquetas activas en un sistema RFID.
Cdigo de barras.- Tipo de identificacin muy ampliamente utilizada para
el manejo de cadenas de suministro, en donde se asigna un cdigo grfico de
acuerdo a las normas internacionales.
EPC.- Cdigo electrnico de producto (Electronic Product Code), definido para
dar un cdigo a nivel mundial de los objetos a travs de las normas ISO.
Frecuencia.- Medida para indicar el nmero de repeticiones de una longitud de
onda en un segundo.
Hardware.- Componentes electrnicos capaces de proporcionar los medios para
procesar las seales.
Middleware.- Software de conectividad que ofrece un conjunto de servicios
que hacen posible el funcionamiento de aplicaciones distribuidas sobre
plataformas heterogneas.
Mitigacin.- Reduccin de la vulnerabilidad, es decir la atenuacin de los daos
potenciales sobre la vida y los bienes causados por un evento.
Modulacin.- Conjunto de tcnicas para transportar informacin sobre una onda
portadora. RFID.-
Identificacin
de
radio
frecuencia
en
un
medio
de
VII
IVI
Introducci
n
Hoy ms que nunca, el desarrollo de la ciencia se ha traducido en
productos
tecnologas
que permiten
de
la
innovar
informacin
de
manera
constante
para
control
de
las
existencias
basada
en
la
tecnologa
una
de
como Wal-Mart,
Procter & Gamble, Target y Gillette (1) han invertido fuertemente en esta
tecnologa y su futuro es muy prometedor. Esto ha tenido un impacto notable
en la tendencia del mercado hacia su popularizacin, incrementando la
demanda de nuevas
aplicaciones
para
la
identificacin
gestin
de
I
X
Antecedent
es
Es difcil determinar un punto de partida exacto o un solo inventor para la
tecnologa RFID, ya que su desarrollo se encuentra entrelazado con el de
muchas otras tecnologas aparecidas a lo largo del siglo XX, tales como
las
computadoras,
telfonos
mviles,
redes
LAN inalmbricas,
enviada;
as,
un
avin
aliado poda ser distinguido de uno enemigo. Dicho sistema fue conocido
como IFF (Identify Friend or Foe, identificar amigo enemigo), y sirvi de base
para los sistemas actuales de reconocimiento en la aviacin privada y
comercial. Hacia
1950, aparecen los sistemas de largo alcance conocidos como sistemas de
radar, y de comunicaciones por radio frecuencia, iniciando una serie de
investigaciones para explicar cmo identificar objetos remotamente y dando
como resultado el primer Sistema electrnico de vigilancia (EAS) para detectar
robos en grandes almacenes.
En la dcada de los 70 se registra en Estados Unidos la primera patente de
una etiqueta activa conocida como tag, por Mario W. Cardullo, y de un sistema
pasivo RFID por Charles Walton; esta primera etiqueta activa portaba una
memoria re-escribible, mientras que el sistema pasivo permita el acceso
abriendo las puertas sin necesidad de llaves. Otras aplicaciones se originaron
en la automatizacin industrial, la identificacin de los animales y el rastreo de
vehculos, existiendo al mismo tiempo mejoras en las etiquetas con funciones
de escritura en memoria y velocidades mayores de lectura.
As, en 1980 se da la creacin de aplicaciones tiles de logstica, transporte
y rastreo de vehculos, lo cual hace que EU se interese realmente en estos
desarrollos, mientras que los pases europeos se centraron en aplicaciones
industriales y sistemas de corto alcance para controlar animales. Dado el
X
Antecedent
inters
de esta
es
X
I
Las
denominadas
tarjetas
inteligentes
sin
contacto
proporcionan
X
II
Planteamiento
Problema
del
desarrollado
para
Objetivos
Trabajo
de
Objetivo
General
Considerar
una
metodologa
para
implantar
sistemas
basados
en
XI
I
Organizacin de la Tesis
Este documento se desarroll analizando los componentes de un
sistema RFID, esto para determinar los efectos de la radio frecuencia de esta
tecnologa en los equipos de oficina y poder determinar la programacin de la
tarjeta y seleccionar el software apropiado para desarrollar la aplicacin y
planear al mismo tiempo el modelo relacional de la base de datos y llevar a
cabo el anlisis de la infraestructura de comunicaciones con el que permitir
realizar la interfaz e implementacin del prototipo, a su vez se llevar el
estudio y anlisis de la metodologa o procedimiento para medir las
actuaciones y elaborar guas de aplicacin para las pruebas de desempeo y
obtener un prototipo final.
XII
I
Captulo 1. Tecnologa de
identificacin por
radiofrecuencia
(RFID).
sistemas de flujo de
Figura 1. 1 Funcionamiento de
RFID
1.2 Componentes
Un sistema bsico RFID est formado por los siguientes componentes:
etiqueta,
tambin
conocido
como
el
transponder
16
(bytes)
Distancia
Lectura/escritura
Consumo Frecuencia
ASIC#1
15 cm
10 A
ASIC#2
32
13 cm
600
A
120kH
z
256
2 cm
ASIC#4
256
0.5 cm
6 A
100 cm
ASIC#7
2048
0.3 cm
ASIC#8
1024
10 cm
ASIC#9
100 cm
<10m
A
ASIC#1
0
128
100 cm
1mA
obtienen
activas
energa suficiente
mercancas, control
Transporte pblico
4MHz
mercancas,
4/13.56MH
z
de
lector.
125
kHz
4.91
MHz
13.56
bateras
Este
Flujo de
mercancas
500
A
necesitan
del
Flujo
transporte pblico
1
mA
256
etiquetas
de
128kH
z
< 2 cm
ASIC#6
Las
Flujo
120kH
z
<1
mA
256
Animales ID
de acceso
ASIC#3
ASIC#5
Aplicacin
Control de
acceso Tarjetas
sin contacto
Control de
adicionales,
tipo
ya
de etiqueta
que
no
tiene
la
17
1.2.2
Antenas
Las antenas son el canal de comunicacin de datos entre la etiqueta y
el lector; su diseo y colocacin constituyen un factor muy importante en la
determinacin
de
la
zona
de
cobertura,
alcance
exactitud
de
la
18
de
Figura 1. 3 Lector
RFID
Frecuencia
un sistema RFID. La frecuencia de
operacin en aplicaciones RFID se divide en
cuatro rangos,
tablas
de
mismos
asignacin
que
se
resumen
en
la
Tabla
2.
Existen
20
Las
condiciones
importante
en
ambientales
pueden
desempear
un
papel
para una aplicacin particular. Por ejemplo, el sustrato de las etiquetas que se
adjuntan a objetos tales como latas de refresco, o la presencia de otras ondas
de radio producidas por dispositivos tales como hornos de microondas o
telfonos inalmbricos.
Tabla 1. 2 Rangos de frecuencia de RFID
Tipo
LF, Low
Frecuency
Rango de
frecuencia
Menores de 135 KHz
Observaciones
Baja
potencia,
distancias de
se
utilizan
en
Frecuency
departamentales.
Tarjetas inteligentes, esquemas de
seguridad y
control de acceso. Banda medica,
UHF,
High
Ultra
Frecuency
industrial y cientfica.
Se utiliza en telfonos celulares, para
cadenas
de
suministros
aplicaciones
simultneamente,
no
pueden
ser
Sin
ledas
21
Microondas
2.45 GHz
por
motores
elctricos,
costosas,
pero
pueden
lograr
lecturas de hasta
6
metros.
1.3 Estndares de RFID
Los principales estndares que debe cumplir la tecnologa RFID estn
administrados por las organizaciones EPC (Electronic Product Code) e ISO
(International Organization for Standardization). La organizacin EPC Global (6),
se encarga de establecer los estndares para el uso de cdigos electrnicos de
producto, conjuntamente con EAN (European Article Number) y UCC (Uniform
Code Council), y tiene como objetivo principal reducir el mnimo de contraccin
y escasez de los productos en el mercado, acelerando las ordenes de proceso y
permitiendo el flujo de informacin en tiempo real sobre el consumo y status
de mercancas dentro de la cadena de suministros. Su sistema de numeracin
permite la asignacin de un identificador nico a cualquier objeto fsico.
Por su parte, la ISO maneja tres estndares para RFID:
1.4 Conectividad
Para el desarrollo de un Sistema de Autentificacin con RFID, es necesario
considerar la conectividad de los lectores, esto es, su capacidad de integrarse
con otras tecnologas existentes. Desde el inicio de esta tecnologa se han
utilizado
comunicaciones
las siguientes:
23
RFID
hacia
los
sistemas,
por
lo
que
debe
de
incluir
una
combinacin balanceada de cinco capas (7) (ver Figura 1. 4). Empresas como
Cisco, Oracle, Microsoft, SUN e IBM han desarrollado plataformas middleware,
aprovechando al mximo los productos con que cuentan para dar soluciones
integrales.
24
26
confiable, con la capacidad de hacer balanceo de carga dinmico y reenrutamiento de los datos en caso de que un servidor falle.
1.6
Seguridad
En un momento dado, las mismas ventajas de la tecnologa RFID
representan una amenaza en la privacidad del consumidor: cualquier etiqueta
enva un identificador a cualquier lector cercano, lo que significa que
cualquiera puede extraer informacin personal, degradando la privacidad.
Existen diversas reas conflictivas relacionadas con la tecnologa RFID:
Privacidad personal
Espionaje corporativo.
La privacidad de etiquetas RFID desde la perspectiva de la identificacin
se refiere a que slo las aplicaciones autorizadas deben poder identificar las
etiquetas; las lectoras pueden explorar las etiquetas, pero los resultados
obtenidos no deberan tener significado a las aplicaciones a no ser que stas
sean autorizadas. La privacidad desde la perspectiva de la autorizacin se
refiere a tener permisos de acuerdo a una cierta poltica de seguridad.
Las seis categoras de amenazas a las etiquetas
RFID son:
Suplantar la identidad, si un atacante entra como usuario autorizado del
sistema.
1.
2.
3.
4.
1.7 Esquemas
para RFID
de
Seguridad
consumidor.
Una
28
Existen
diversos
tipos
de
tecnologa
de
captura
identificacin
transporte),
almacenamiento
ptico
(cdigos
de
barras
lineales
Cdigos de Barras
El uso del cdigo de barras para obtener informacin de algn producto
Figura 2. 1 Cdigo de
barras
25
dimensiones.-
Esta
simbologa
tiene
la
mayor
capacidad
de
dispositivos
fsicos
de
almacenamiento
utilizados
para
leer,
almacenar y modificar datos; actan como una placa identificadora tipo base
de datos porttil, en la que los datos pueden ser ledos y modificados (10). Sus
requerimientos de hardware son un equipo de cmputo, el
elemento de
27
son
dispositivos
estndar,
sino
que
dependen
de tecnologas
informacin asociada
sistema
de
al
objeto
informacin;
as,
al
que
acompaan,
la
reenvan
al
integracin
de
toda la cadena
de
suministros, permitiendo
una
No requiere visibilidad directa, las etiquetas RFID pueden ser ledas a travs
de materiales sin tener lnea de vista.
Admite
un
amplio
rango
de
capacidades
de
almacenamiento
de
identifcacin
tipo de etiqueta puede no
ser necesaria la conexin a una base de datos,
29
Posee
mecanismos
anticolisin
que
permiten
realizar
mltiples
Ofrecen
mayores
especialmente
en
tasas
de
lectura
que
los
cdigos
de
barra,
clasificacin de empaques.
ptica
Electromagntica
Escritura
No
Posible
Posicin de escaneo/lectura
Lnea de visin
Rango de lectura
Hasta varios
metros
Baja
Centmetros a
metros
Alta
Seguridad acceso
Cdigo de barras
RFID
30
31
el
empleo
de
etiquetas
identifcacin
dentro de un entorno determinado.
Frente a otras tcnicas de localizacin
33
Modificacin
de
datos
Seguridad de
datos
Cantidad de
datos
Cdigo de
barras
Contacto
de
No modifcables
memori
Modifcable
Mnim
a
Lnea de cdigo
de
barras
Alta
Arriba de
8MB
RFID pasivo
Modifcable
Alta seguridad
Arriba de 64KB
RFID activo
Modifcable
Alta
Arriba de 8MB
caracter
Preci
o
Estndar
Vida til
Distancia de
lectura
Bajo
es
Estables
Corto plazo
lnea de visin
30cm
Cualquier
Interferencia
Alto
Propietario
Medio
Involucrando a
no
una norma
estndar
acordada
Larg
o
Contacto
requerido
Bloqueo
modifcacin
de
en la barras
contacto
Indefnida
Distancia de
hasta
10m.
Puede ser
bloqueo
de contacto o
inclusive el
Muy alto
De propiedad y
la
evolucin de los
estndares
3-5 aos
de vida
abiertos
la
bater
a
Distancia de
hasta
100
m.
La interferencia
es
muy
limitada
ruido
34
resultando en
ventajas
para todos
los actores de la
Contacta
r
http://www.grupohasar.com
solutions.com
jorgem@egomexico.com
CREADISEO, S.C.
ecobos@creadinet.com.mx
felipe.rangel@entercs.com.mx
ventas_directas@etifex.com.mx
lo que
requiere la participacin
de
35
Captulo 3. Metodologa
para
implementacin
RFID
proyecto. Durante el
desarrollo:
32
33
Evaluacin de resultados.
distribuidos.
35
II.
Identificar la infraestructura para la recopilacin de datos con las tarjetas
RFID
III.
siguientes puntos:
37
reglas
de
compromiso
del
proyecto.
Los
integrantes
debern
de
conciliar
implementacin
informacin determinante de
la empresa. RFID
39
que
los
datos pertinentes
el
El
y de riesgo 2
y el piloto inclusive. La
definicin de la mtrica
vara por el tipo de aplicacin y los procesos de ser medidos.
3.2 Descripcin del sistema.
Una vez considerada la parte administrativa de la metodologa, se
analizan los componentes fsicos y lgicos de la implementacin.
3.2.1 Infraestructura Hardware y Software
A continuacin se describe la infraestructura utilizada para la realizacin
del ejemplo de esta tesis:
Tarjetas RFID pasivas.- Estos componentes se utilizan para identificar
el producto mediante el nmero de identificacin nico, usando un lector
para intercambiar la informacin; las tarjetas utilizadas para este proyecto
son de tipo pasivas, de diferentes proveedores.
Lector de RFID.- Para que el costo no fuera un factor prohibitivo para su
implementacin se utiliz un prototipo de lectora que permite evaluar esta
tecnologa en los diferentes procesos de control de existencias. Este lector
es un RFID 132Kz con conexin serie RS232, que permite realizar la lectura de tarjetas y enviar a un equipo
los datos del
identificador nico, mismo que permitir enlazar
los objetos.
40
41
XP,
Base
datos.
de
Service
Para
esta eleccin
se
consider
el conjunto
de
como
Conectividad.-
Los
componentes
que
se
deben
considerar
para
43
44
45
46
3.2.3. Funcionamiento
El circuito RFID se encarga de sensar etiquetas y emite a travs de sus
terminales la identificacin nica (UID)
47
Especificaciones:
Dimetr
o:
Grosor
:
Orificio
:
Frecuencia:
Material
:
Temperatura
soportada: de
Temperatura
almacenaje:
34 mm.
8.0 mm.
5.6 mm.
125 kHz
PA6 Alto Impacto
-25 C a +85 C
-40 C a 90 C 1 x
1000h
Medidas (Dimetro x
grosor):
Unique
20
Unique
30
Unique
50
Q5 30
Tarjeta de metal.Especfcamente diseado
para uso externo, es ideal
para aplicaciones en metal.
En la parte trasera de la
Q5 50
Frecuencia:
Material
:
Temperatura
soportada:
20 x 2,15 mm.
30 x 2,15 mm.
50 x 2,25 mm.
30 x 2,15 mm.
50 x 2,25 mm.
125 kHz
Policarbonato
-25 C a +70 C
Medidas (Dimetro x
largo): Frecuencia:
Material
:
Transpondedores de 125
kHz que ofrecen una
gran versatilidad para
aplicaciones industriales
y de logstica. Disponible
en diferentes tamaos,
formatos y circuitos.
4mm. x 35,5mm.
125 kHz
Poliamida con fibra de
vidrio
-25 C a +85 C
-25 C a +85 C
Temperatura
soportada:
Temperatura
de
almacenaj
Circuitos
disponibles: 64 bits solo lectura
48
Medidas (Dimetro x
largo):
Frecuenci
a:Material:
Las etiquetas tipo clavo (Nail
Tag) son transpondedores
robustos que pueden ser
clavados en casi cualquier
Temperatura
soportada:de
Temperatura
almacenaje:
Chips
disponibles:
tipo de madera.
4mm. x
35,5mm.
125 kHz
Poliamida con
fibra de vidrio
-25 C a +85
C
-25 C a +85
CUnique 64
bits
Read
only
26 mm x 25 mm x 7 mm
Frecuencia
125 kHz
Formato de la
tarjeta
Codificacin
E/S actual
Voltaje de
alimentacin
49
Descripci
n
ASCI
I
Emulacin
magntica
GND 0V
GND 0V
Strap to +5V
Reset Bar
Reset Bar
Antena
Antena
A antena externa
Antena
Antena
Tarjeta presente
Sin funcin
Tarjeta presente
Uso futuro
Uso futuro
Uso futuro
Strap to GND
Strap to Terminal 10
Dato 1
CMOS
Reloj
Dato 0
Datos TTL
(invertido)
Dato
10
Beeper / LED
Beeper / LED
11
Alimentacin CD
+5V
+5V
50
La
costos
decisin
de
de
armar este
circuito
se
origin
por
los
elevados
implementacin
RFID
que solo permite desarrollos pequeos.
Dadas las dimensiones
de nuestro
52
Una vez que se verific que las conexiones del prototipo fueran correctas
se procedi a realizar la migracin del esquemtico del diagrama PCB (Figura
3.9), que posteriormente fue impreso sobre una placa fenlica. Para la
5 capacitores 1 F
1 capacitor 1 F cermico
1 Placa PCB
1 Transistor BC547B
2 Conectores de 2 terminales
55
1 Led
1 Resistencia 470
56
57
Captulo 4 Diseo de
software
En
los mdulos
de software que
se
computadoras.
Para
definir
Tipo de
Bien
o
Mobiliario
Escritorios
Sillas
Libreros
Archiveros
Mamparas
Etc.
Equipo de
cmputo
Laptops
Servidores
Impresoras
Scaner
Etc.
tipo de bien
se identifican las
implement
la tecnologa
de identificacin
dentro
de
50
Captulo 4. Diseo de
software
CatGrupos
bienes.
CatBienes
CatBienPropiedades
CatPropiedades
CatBienResultado
CatResultados
CatUsuarios
Catcargos
CatAreas
CatUsuariosPermiso
51
Captulo 4. Diseo de
software
52
Captulo 4. Diseo de
software
Pantalla principal.
Ventana de acceso
53
Captulo 4. Diseo de
software
54
Captulo 4. Diseo de
software
Men principal
Al acceder al sistema se encuentran el men ( Figura 4.4) que permitir:
Administracin de usuarios
Administracin de bienes
Asignacin de bienes
Bsqueda
Reportes
sus
datos particulares tales como nombre, apellidos, sexo, extensin, rea adscrita,
cargo as como una imagen de la persona y su correo electrnico, tal como se
muestra en la siguiente Figura 4.5
55
Captulo 4. Diseo de
software
56
Captulo 4. Diseo de
software
Este
mismo
mdulo
permite
dar
de alta
el
bien
indicando
sus
Captulo 4. Diseo de
software
58
Captulo 4. Diseo de
software
dieron de alta.
Captulo 4. Diseo de
software
60
Captulo 4. Diseo de
software
usuarios
Captulo 4. Diseo de
software
62
Captulo 4. Diseo de
software
63
Captulo 4. Diseo de
software
Mdulo de bsqueda
Permite realizar bsquedas Figura 4.14 de los usuarios o de los bienes
registrados.
Mdulo de monitoreo.
Monitorea los bienes (Figura 4.15) que solo tienen permisos de
salida de las instalaciones.
64
de
elegir
el
ms
apropiado
para
dicha
implementacin;
5.1 Experimentacin
STMicroelectronics
SR176
Baja frecuencia
LF
(13.56MHz
10 a 20cms
Escritura/lectura
Interna/antena
incorporada
USB
5v
ISO 14443-B
$13,000
2.-
Caractersticas
AG Electronics
Rango de
frecuencia
Distancia
Baja frecuencia LF
(125kHz)
10cms
Lector
Lectura
Antena
Interna
Tipo de conector
Serial
Voltaje
5v
Estndar
ISO 1770
Precio
$2,600
ID,
asignacin de un nmero de
61
utilizar
dicho
producto
Prototipo
Rango de frecuencia
Distancia
Baja frecuencia LF
(125kHz)
10cms
Lector
Lectura
Antena
Interna
Tipo de conector
Serial
Voltaje
5v
Estndar
ISO 1770
Precio
$700
el
esquema
de
62
5.2 Conclusiones
El inters por el uso de la tecnologa RFID se ha incrementado en la
actualidad, permitiendo mejorar procesos y reducir costos en las empresas y
reas de gobierno, obtenindose beneficios cada vez mayores. Todo esto ha
motivado la aparicin de diversos fabricantes y el desarrollo de empresas
dedicadas
la
implementacin
implantacin
de
soluciones
para
en
los
temas
costos
implicados
aun
no facilitan
que
una
pequea
mediana
64
5.3 Trabajos
futuro
66
Finalmente, una vez que este trabajo haya avanzado hasta un nivel
considerable de optimizacin, reduccin de costos y rendimiento, lo ideal
sera buscar su aplicacin permitiendo la integracin con otras tecnologas
tales como redes ad-hoc, wireless, o incluso interactuando con otros elementos
tales como video cmaras y localizadores satelitales.
67
Bibliograf
a
[1] Explorando los impactos de la RFID en los procesos de negocios de
una cadena de suministro. Ygal Benavid, Linda Castro, Louis A. Lefebre. 004,
ISSN 0718-2724, Journal of Management & Innovation, pg. 6.
[2] By Bhuptani Manish, Morador Sharan. RFID Field Guide: Deploy Frecuency
Indentification
Systems. s.l. : Prneticel Hall PTR, February Date 08, 2005. ISBN013-185355-4.
[3] Gonzlez, L.I. Luis Miguel Godnez. RFID Oportunidades y riesgos su
aplicacin prctica. Primera Edicin. Mxico, D.F. : Alfa Omega, Enero, 2008.
pg. 192. Vols. Alfa Omega Grupo Editor, S.A, de C.V. . ISBN 978-970-151311-8.
[4] Inc, Amtel Security System. AMTEL. Amtel Security System Inc. [En lnea]
2005. [Citado el:
23
de
marezo
2009
de
marzo
de
2009.]
http://www.amtel-
security.com/Spanish/products/ATMS.html.
[5] Gonzlez, L.I. Luis Miguel Godinez. RFID oportunidades y riesgos su
aplicacion prctica . Mxico : Alfaomega , 2008. ISBN: 978-970-15-1311-8.
[6] AMECE, A.C. AMECE, A.C. . GS1 Mxico. [En lnea] 2009. [Citado el: 23 de
marzo de 2009.]
http://www.amece.org.mx/amece/EPC_EP
C.php.
[7] Systems, Access Control for Middleware in RFID. Kim, Taesung y Kim,
Howon. [ed.] The 8th International Conference. 2006. Advanced Coomunication
Technology. Vols. 2, 20-22 Feb 2006 pp 1020-1022.
[8] PeterWiner. The Missing Piece. Frontline Solutions. [En lnea] 1 de julio de
2004. http://findarticles.com/p/ar ticles/mi_m0DIS/is_7_5/ai_n6206043/.
[9] RFID privacy: an overview of problems and proposed solutions ,&
Security and Privacy
Magazine. Garfinkel, S.L. , Juels A. Pappu. s.l. : IEEE, mayo-junio de 2005, Vols.
volume 3(3):3443
.
[10]
MacSema,
Inc.
MacSema,
Inc.
NJ
0703066
[13] Group, Highway. The Information Highway Group . [En lnea] 2004.
http://www.ihg.net/java/X?cgi=lateral.rfid.VentajaVsBarras.pattern.
[14] Intelligence, Allied Business. ABI. RFID Annual Market Overview. [En
lnea]
2009.
[Citado
el:
22
de
May
de
2009.]
http://www.abiresearch.com/research/1003629RFID+Annual+Market+Overview.
[15] Williams, David. The Strategic Implications of Wal-Mart's RFID Mandate.
[En lnea] jul de
2004.
http://www.directionsmag.com/article.php?article_id=629.
Principal,
E911-LBS Consulting.
[16]
Electronics,
Kimaldi
http://www.kimaldi.com/productos/sistemas_r fid/lectores_rfid_y_tags_125_khz/t
ags_rfid_de
_125_khz. Kimaldi Electronics .
http://www.kimaldi.com.
la
tecnologa
RFID.
[En
lnea]
junio
de
2007.
http://www.gs1pa.org/boletin/2007/junio/boletin- jun07-art4.html.
[20] David H. Williams. Directions Magazine. [En lnea] 29 de julio de 2004.
http://www.directionsmag.com/ar ticle.php?article_id=629. Principal, E911-LBS
Consulting .
[21] Christine Gallen. ABI research. Total RFID Revenue to Exceed $5.6
Billion in 2009. [En lnea]
24
http://www.abiresearch.com/press/1395Total+RFID+Revenue+to+Exceed+
%245.6+Billion+in+2009.
de
2009
de
Marzo.
67
Anexo
Cdigo de programacin
Pantalla Inicio
Public NotInheritable Class ctrlEquiposBienvenida
'TODO: This form can easily be set as the splash screen for the
application by going to the "Application" tab
' of the Project Designer ("Properties" under the "Project" menu).
Private Sub ctrlEquiposBienvenida_Load(ByVal sender As Object, ByVal
e As System.EventArgs) Handles Me.Load
'Set up the dialog text at runtime according to the application's
assembly information.
'TODO: Customize the application's assembly information in the
"Application" pane of the project
' properties dialog (under the "Project" menu).
'Application title
If My.Application.Info.Title <> "Control de bienes" Then
ApplicationTitle.Text = My.Application.Info.Title
Else
'If the application title is missing, use the application
name, without the extension
ApplicationTitle.Text =
System.IO.Path.GetFileNameWithoutExtension(My.Application.Info.AssemblyNa
me)
End If
'Format the version information using the text set into the
Version control at design time as the
' formatting string. This allows for effective localization if
desired.
' Build and revision information could be included by using the
following code and changing the
' Version control's designtime text to "Version
{0}.{1:00}.{2}.{3}" or something similar. See
' String.Format() in Help for more information.
'
'
Version.Text = System.String.Format(Version.Text,
My.Application.Info.Version.Major, My.Application.Info.Version.Minor,
My.Application.Info.Version.Build, My.Application.Info.Version.Revision)
Version.Text = System.String.Format(Version.Text,
My.Application.Info.Version.Major, My.Application.Info.Version.Minor)
'Copyright info
Copyright.Text = My.Application.Info.Copyright
End Sub
End Class
68
Men inicio.
Public Class dlgInicio
' TODO: Insert code to perform custom authentication using the provided
username and password
' (See http://go.microsoft.com/fwlink/?LinkId=35339).
' The custom principal can then be attached to the current thread's principal
as follows:
'
My.User.CurrentPrincipal = CustomPrincipal
' where CustomPrincipal is the IPrincipal implementation used to perform
authentication.
' Subsequently, My.User will return identity information encapsulated in the
CustomPrincipal object
' such as the username, display name, etc.
Private Sub OK_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles
OK.Click
Dim db As lnqBienesDataContext
Me.Close
() End Sub
Private Sub Cancel_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Cancel.Click
Me.Close
() End Sub
End Class
Login
Public Class dlgLogin
' TODO: Insert code to perform custom authentication using the provided
username and password
' (See http://go.microsoft.com/fwlink/?LinkId=35339).
' The custom principal can then be attached to the current thread's principal
as follows:
'
My.User.CurrentPrincipal = CustomPrincipal
' where CustomPrincipal is the IPrincipal implementation used to perform
authentication.
' Subsequently, My.User will return identity information encapsulated in the
CustomPrincipal object
' such as the username, display name, etc.
Private Sub OK_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles
OK.Click
69
70
Select
up
If resultado.LongCount = 1 Then
Dim usuarioConPermiso As
catUsuarioPermiso usuarioConPermiso
= resultado.Single
Dim identidad As New
Security.Principal.GenericIdentity(usuarioConPermiso.Usuario) Dim
roles(1) As String
roles(0) = usuarioConPermiso.Rol
principal = New
Security.Principal.GenericPrincipal(identidad, roles)
System.Threading.Thread.CurrentPrincipal = principal
End If
Me.Close
() End Sub
Private Sub Cancel_Cliok(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Cancel.Click
End
End
Sub
End Class
Menu principal
Imports System.Windows.Forms
Public Class mdiContenedor
Dim
Dim
Dim
Dim
adminEquipos As frmAltaBien
buscar As frmLstUsuarios
asignacion As frmAsignacion
reportes As dlgReportes
asignacion.MdiParent = Me
asignacion.Show()
End Sub
Private Sub muestraBuscar()
71
Else
Me.datoRecibido.Text = text
eviarTagFormulario(text)
End If
End Sub
Private Sub eviarTagFormulario(ByVal tagRFiD As String)
If adminEquipos Is Nothing OrElse adminEquipos.IsDisposed Then
Exit Sub
End If
Dim pagina As nuevoBien = Me.adminEquipos.tcBienes.SelectedTab
If pagina IsNot Nothing Then
For Each rw As DataRow In pagina.dtPropiedades.Rows
If rw("Propiedad") = "IDTAG RFID" Then
rw("Valor") = tagRFiD
End If
Next
End If
End Sub
Private Sub ToolStripButton5_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles ToolStripButton5.Click
muestraReportes
Exit Sub
SetText("1234567")
End Sub
Private Sub muestraReportes()
If reportes Is Nothing OrElse reportes.IsDisposed Then
reportes = New dlgReportes
End If
reportes.MdiParent = Me
reportes.Show()
End Sub
Private Sub ShowSplash()
Dim fSplash As New ctrlEquiposBienvenida
fSplash.Owner = Me
fSplash.Show()
Application.DoEvents()
Threading.Thread.Sleep(1000)
fSplash.Close()
fSplash.Dispose()
End Sub
Private Sub mdiContenedor_FormClosing(ByVal sender As System.Object,
ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles
MyBase.FormClosing
73
Try
If Me.puertoSerie.IsOpen Then
Me.puertoSerie.Close()
End If
Catch ex As Exception
Console.WriteLine("Error al cerrar el puerto serie")
End Try
End Sub
End Class
Permiso
s
Imports
System.Windows.Forms
Public Class dlgPermisos
Private _idUsuario As Integer
Public Property idUsuario() As Integer
Get
Return _idUsuario
End Get
Set(ByVal value As Integer)
_idUsuario = value
End Set
End Property
Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles OK_Button.Click
If actualizar Then
actualizarPermi
so()
Else
guardarPermis
o()
End If
Me.DialogResult =
System.Windows.Forms.DialogResult.OK
Me.Close()
End Sub
Private Sub
guardarPermiso() Try
Dim db As New lnqBienesDataContext
Dim permiso As New catUsuarioPermiso
permiso.Usuario = txtUsuario.Text
permiso.Password = txtContrasea.Text
permiso.Rol = cmbRoles.Text
db.catUsuarioPermisos.InsertOnSubmit(p
ermiso) db.SubmitChanges()
7
4
Catch ex As Exception
Console.WriteLine("Error al intentar guardar los permisos
al usuario") End Try
End Sub
Private Sub actualizarPermiso()
7
5
Try
Dim db As New
Dim permiso As New catUsuarioPermiso
lnqBienesDataContext
Dim permisos = From p In db.catUsuarioPermisos Where p.idUsuario =
idUsuario Select p
permiso = permisos.First
permiso.Usuario =
txtUsuario.Text
permiso.Password =
txtContrasea.Text permiso.Rol
= cmbRoles.Text
db.SubmitChanges()
Catch ex As Exception
Console.WriteLine("Error al intentar actualizar los permisos
al usuario") End Try
End Sub
Private Sub Cancel_Button_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Cancel_Button.Click
Me.DialogResult = System.Windows.Forms.DialogResult.Cancel
Me.Close
() End Sub
Private Sub txtUsuario_Validating(ByVal sender As System.Object, ByVal e As
System.ComponentModel.CancelEventArgs) Handles txtUsuario.Validating
If Me.txtUsuario.Text.Length = 0 Then
ErrorProvider1.SetError(Me.txtUsuario, "Debe tener
un valor") Else
ErrorProvider1.SetError(Me.txtUsu
ario, "") End If
End Sub
Private Sub txtContrasea_Validating(ByVal sender As System.Object, ByVal e
As
System.ComponentModel.CancelEventArgs) Handles txtContrasea.Validating
If Me.txtContrasea.Text.Length = 0 Then
ErrorProvider1.SetError(Me.txtContrasea, "Debe
tener un valor") Else
ErrorProvider1.SetError(Me.txtContras
ea, "") End If
End Sub
Private Sub cmbRoles_Validating(ByVal sender As System.Object, ByVal e As
System.ComponentModel.CancelEventArgs) Handles cmbRoles.Validating
If Me.cmbRoles.Text.Length = 0 Then
ErrorProvider1.SetError(Me.cmbRoles, "Debe tener
un valor") Else
ErrorProvider1.SetError(Me.cmbRo
les, "") End If
Try
End Dim
Sub db As New
lnqBienesDataContext
Private Sub btnQuitar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnQuitar.Click
Try
Dim db As New
Dim permisos = From p In db.catUsuarioPermisos Where p.idUsuario =
lnqBienesDataContext
idUsuario Select p
Dim permiso As New catUsuarioPermiso
permiso = permisos.First
db.catUsuarioPermisos.DeleteOnSubmit(
permiso) db.SubmitChanges()
Catch ex As Exception
Console.WriteLine("Error al intentar quitar los
permisos") End Try
End Sub
Private Sub dlgPermisos_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
actualizar = False
Try
Dim db As New lnqBienesDataContext
Dim permisos = From p In db.catUsuarioPermisos Where p.idUsuario =
idUsuario Select
p
Dim permiso As New
catUsuarioPermiso permiso =
permisos.First Me.txtUsuario.Text
= permiso.Usuario
Me.txtContrasea.Text = permiso.Password
Me.cmbRoles.Text =
permiso.Rol actualizar =
True
Catch ex As Exception
Console.WriteLine("Error al intentar asignar las propiedades al usuario")
actualizar = False
End Try
If actualizar = False Then
Me.btnQuitar.Enabled = False
End If
End Sub
Private _actualizar As Boolean
Public Property actualizar() As Boolean
Get
Return _actualizar
End Get
Set(ByVal value As Boolean)
_actualizar = value
End Set
End Property
Try
Dim db As New
End Class
lnqBienesDataContext
Nueva propiedad.
Imports System.Windows.Forms
Public Class dlgPropiedad
Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles OK_Button.Click
agregaPropiedad()
Me.DialogResult =
System.Windows.Forms.DialogResult.OK
Me.Close()
End Sub
Private Sub Cancel_Button_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Cancel_Button.Click
Me.DialogResult = System.Windows.Forms.DialogResult.Cancel
Me.Close
() End Sub
Private Sub txtPropiedad_Validating(ByVal sender As Object, ByVal e As
System.ComponentModel.CancelEventArgs) Handles txtPropiedad.Validating
If Me.txtPropiedad.Text.Length = 0 Then
ErrorProvider1.SetError(Me.txtPropiedad, "Debe tener
un valor") Else
ErrorProvider1.SetError(Me.txtPropie
dad, "") End If
End Sub
Private Sub txtDescripcion_Validating(ByVal sender As Object, ByVal e As
System.ComponentModel.CancelEventArgs) Handles txtDescripcion.Validating
If Me.txtDescripcion.Text.Length = 0 Then
ErrorProvider1.SetError(Me.txtDescripcion, "Debe
tener un valor") Else
ErrorProvider1.SetError(Me.txtDescrip
cion, "") End If
End Sub
Private Sub agregaPropiedad()
Dim db As New lnqBienesDataContext
Dim propiedad As New catPropiedades
propiedad.Propiedad =
Me.txtPropiedad.Text
propiedad.Descripcion =
Me.txtDescripcion.Text
db.catPropiedades.InsertOnSubmit(prop
iedad) db.SubmitChanges()
End Sub
Private Sub dlgbien_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
77
limpiaCampo
s() End Sub
78
Private Sub
limpiaCampos()
Me.txtPropiedad.Text
= ""
Me.txtDescripcion.Tex
t = ""
End Sub
End Class
Catalogo de propiedades
Imports System.Windows.Forms
Public Class dlgPropiedades
Private _idPropiedad As Integer
Public Property idPropiedad() As String
Get
Return _idPropiedad
End Get
Set(ByVal value As String)
_idPropiedad = value
End Set
End Property
Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles OK_Button.Click
seleccionaPropiedad()
Me.DialogResult = System.Windows.Forms.DialogResult.OK
Me.Close()
End Sub
Private Sub Cancel_Button_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles Cancel_Button.Click
Me.DialogResult = System.Windows.Forms.DialogResult.Cancel
Me.Close()
End Sub
Private Sub dlgPropiedades_Load(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles MyBase.Load
cargaPropiedades()
End Sub
Private Sub seleccionaPropiedad()
Me.idPropiedad = CInt(dgvCatPropiedades.Item(0,
dgvCatPropiedades.CurrentRow.Index).Value)
End Sub
Private Sub AgregarNuevaPropiedadToolStripMenuItem_Click(ByVal sender
As System.Object, ByVal e As System.EventArgs) Handles
AgregarNuevaPropiedadToolStripMenuItem.Click
Try
If dlgPropiedad.ShowDialog(Me) =
Windows.Forms.DialogResult.OK Then
cargaPropiedades()
End If
Catch ex As Exception
78
End Try
79
End Sub
Private Sub cargaPropiedades()
Me.idPropiedad = -1
Dim l As New lnqBienesDataContext
Dim propiedades = From p In l.catPropiedades Select p
dgvCatPropiedades.DataSource = propiedades
End Sub
End Class
Editor de propiedades
Imports System.Data.Linq
Imports System.ComponentModel
Public Class frmEditorPropiedadesBienes
Private Sub PRUEBA_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
cargaBienes()
End Sub
Private Sub cargaBienes()
Dim l As New lnqBienesDataContext
Dim bienes = From b In l.catBienes Select b.idBien, b.Nombre
Me.cmbBienes.DataSource = bienes.ToList
Me.cmbBienes.ValueMember = "idBien"
Me.cmbBienes.DisplayMember = "Nombre"
End Sub
Private Sub cmbBienes_SelectedIndexChanged(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
cmbBienes.SelectedIndexChanged
cargaPropiedades()
End Sub
Private Sub dgwPropiedades_CellMouseClick(ByVal sender As Object,
ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles
dgwPropiedades.CellMouseClick
Me.dgwPropiedades.CurrentRow.Selected = True
End Sub
Private Sub AgregarToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
AgregarToolStripMenuItem.Click
If dlgPropiedades.ShowDialog(Me) = Windows.Forms.DialogResult.OK
Then
If dlgPropiedades.idPropiedad > 0 Then
agregaPropiedad(dlgPropiedades.idPropiedad)
cargaPropiedades()
End If
End If
End Sub
79
Administracin de bienes
Public Class frmAltaBien
Dim dtPropiedades As New DataTable
Private Sub frmAltaBien_Load(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles MyBase.Load
cargaBienes()
End Sub
Private Sub cargaBienes()
Me.trvBienes.Nodes.Clear()
Dim db As New lnqBienesDataContext
Dim grupos = From grupo In db.catGrupos Select grupo
For Each grupo In grupos
Dim nGrupo As New myNode
nGrupo.tipoNodo = "GRUPO"
nGrupo.Name = grupo.idGrupo nGrupo.Text =
grupo.Grupo nGrupo.ContextMenuStrip =
cmsCategoriaBienes
nGrupo.SelectedImageIndex = 1
nGrupo.ImageIndex = 1
nGrupo.ToolTipText = "Grupo de plantillas"
For Each bien In grupo.catBienes Dim
nBien As New myNode
nBien.ContextMenuStrip = cmsBien
nBien.tipoNodo = "BIEN"
nBien.Name = bien.idBien
81
nBien.Text = bien.Nombre
nBien.SelectedImageIndex = 2
nBien.ImageIndex = 2
nGrupo.ToolTipText = "Plantilla"
nGrupo.Nodes.Add(nBien)
Next
Me.trvBienes.Nodes.Add(nGrupo)
Next
Me.trvBienes.ExpandAll()
End Sub
Class filaResultado
End If
Catch ex As Exception
Console.WriteLine("Error al agregar una plantilla")
End Try
End Sub
Private Sub EditarPropiedadesToolStripMenuItem1_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
EditarPropiedadesToolStripMenuItem1.Click
Try
If Me.trvBienes.SelectedNode.IsSelected = False Then
Exit Sub
End If
dlgEditorPropiedadesBienes.idBien =
Me.trvBienes.SelectedNode.Name
dlgEditorPropiedadesBienes.Bien =
Me.trvBienes.SelectedNode.Text
dlgEditorPropiedadesBienes.Text = "Propiedades de " &
dlgEditorPropiedadesBienes.Bien
If dlgEditorPropiedadesBienes.ShowDialog(Me) =
Windows.Forms.DialogResult.OK Then
End If
Catch ex As Exception
Console.WriteLine("Error al editar una plantilla")
End Try
End Sub
Private Sub AgregarToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
AgregarToolStripMenuItem.Click
Try
Dim pagina As New nuevoBien(Me.trvBienes.SelectedNode.Name,
Me.trvBienes.SelectedNode.Text)
Me.tcBienes.TabPages.Add(pagina)
pagina.cargaPropiedades()
Catch ex As Exception
Console.WriteLine("Error al agregar un nuevo bien ")
End Try
'tcBienes.TabPages.Add(New
nuevoBien(Me.trvBienes.SelectedNode.Name,
Me.trvBienes.SelectedNode.Text))
End Sub
Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles OK_Button.Click
If Me.tcBienes.SelectedTab Is Nothing Then
Exit Sub
End If
Dim pagina As nuevoBien = Me.tcBienes.SelectedTab
83
Try
If Me.trvBienes.SelectedNode.IsSelected = False Then
Exit Sub
End If
Dim idBien As Integer = Me.trvBienes.SelectedNode.Name
Dim db As New lnqBienesDataContext
Dim bienes = From cbienes In db.catBienes Where
cbienes.idBien = idBien Select cbienes
Dim bien As catBienes = bienes.First()
db.catBienes.DeleteOnSubmit(bien)
db.SubmitChanges(Data.Linq.ConflictMode.FailOnFirstConflict)
cargaBienes()
Catch ex As Exception
Console.WriteLine(ex.ToString)
Console.WriteLine("Error al intentar borrar una plantilla")
End Try
End Sub
End Class
Agregar un grupo
Imports System.Windows.Forms
Public Class dlgGrupo
Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles OK_Button.Click
agregaGrupo()
Me.DialogResult = System.Windows.Forms.DialogResult.OK
Me.Close()
End Sub
Private Sub Cancel_Button_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles Cancel_Button.Click
Me.DialogResult = System.Windows.Forms.DialogResult.Cancel
Me.Close()
End Sub
Private Sub agregaGrupo()
Try
Dim db As New lnqBienesDataContext
Dim grupo As New catGrupos
grupo.Grupo = Me.txtGrupo.Text
db.catGrupos.InsertOnSubmit(grupo)
db.SubmitChanges()
Catch ex As Exception
MsgBox("No se pudo agregar un nuevo grupo",
MsgBoxStyle.Critical, "atencin")
End Try
End Sub
85
Propiedad de bienes
Imports System.Windows.Forms
Public Class dlgGrupo
Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles OK_Button.Click
agregaGrupo()
Me.DialogResult = System.Windows.Forms.DialogResult.OK
Me.Close()
End Sub
Private Sub Cancel_Button_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles Cancel_Button.Click
Me.DialogResult = System.Windows.Forms.DialogResult.Cancel
Me.Close()
End Sub
Private Sub agregaGrupo()
Try
Dim db As New lnqBienesDataContext
Dim grupo As New catGrupos
grupo.Grupo = Me.txtGrupo.Text
db.catGrupos.InsertOnSubmit(grupo)
db.SubmitChanges()
Catch ex As Exception
MsgBox("No se pudo agregar un nuevo grupo",
MsgBoxStyle.Critical, "atencin")
End Try
End Sub
86
Asignacin de bienes
Public Class frmAsignacion
Private Sub frmAsignacion_Load(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles MyBase.Load
'Dim ParentNode1 As TreeNode
'Dim ParentNode2 As TreeNode
'ParentNode1 = TreeView1.Nodes.Add("tv1")
'With ParentNode1
'
.Nodes.Add("tv1FirstChild")
'
.Nodes.Add("tv1SecondChild")
'
.Nodes.Add("tv1ThirdChild")
'
.Nodes.Add("tv1FourthChild")
'
.Expand()
'End With
'ParentNode2 = TreeView2.Nodes.Add("tv2")
'With ParentNode2
'
.Nodes.Add("tv2FirstChild")
'
.Nodes.Add("tv2SecondChild")
'
.Expand()
'End With
cargaUsuarios()
cargaBienes()
End Sub
Private Sub cargaUsuarios()
87
88
If propiedad.catPropiedades.Propiedad =
"DESCRIPCION" Then
nBienResultado.Text = propiedad.Valor
Continue For
End If
Dim n As New myNode
n.tipoNodo = "PROPIEDAD"
n.Text = propiedad.catPropiedades.Propiedad & ":"
& propiedad.Valor
n.ImageIndex = 3
n.SelectedImageIndex = 3
nBienResultado.Nodes.Add(n)
Next
'Dim propiedades = From propiedad In
bienResultado.catBienResultado Select propiedad
nUsuario.Nodes.Add(nBienResultado)
Next
nArea.Nodes.Add(nUsuario)
Next
End Sub
Next
Me.TreeView1.Nodes.Add(nArea)
Then
propiedad.Valor
Next
End Sub
Next
Me.TreeView2.Nodes.Add(nBienResultado)
89
e.Y))
If (asignarBienUsuario(DestinationNode.Name,
nuevoNodo.Name)) Then
90
DestinationNode.Nodes.Add(nuevoNodo)
DestinationNode.Expand()
End If
End If
End If
End Sub
Private Function asignarBienUsuario(ByVal idUsuario As Integer, ByVal
idBienResultado As Integer) As Boolean
Dim aignado As Boolean = False
Dim db As New lnqBienesDataContext
Dim usuarioBienResultado As New catUsuarioBienResultado
usuarioBienResultado.idUsuario = idUsuario
usuarioBienResultado.idBienResultado = idBienResultado
usuarioBienResultado.salidaPermitida = False
db.catUsuarioBienResultado.InsertOnSubmit(usuarioBienResultado)
Try
db.SubmitChanges(Data.Linq.ConflictMode.FailOnFirstConflict)
aignado = True
Catch ex As Exception
MsgBox("Este bien ya se encuentra asignado")
End Try
Return aignado
End Function
Private Sub quitarBienUsuario(ByVal idUsuario As Integer, ByVal
idBienResultado As Integer)
Dim db As New lnqBienesDataContext
Dim usuarioBienResultados = From ubr In
db.catUsuarioBienResultado _
Where ubr.idBienResultado =
idBienResultado And _
ubr.idUsuario = idUsuario _
Select ubr
db.catUsuarioBienResultado.DeleteOnSubmit(usuarioBienResultados.First)
db.SubmitChanges()
End Sub
Private Sub QuitarToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
QuitarToolStripMenuItem.Click
If TreeView1.SelectedNode Is Nothing Then
Exit Sub
End If
Try
Dim nBienResultado As myNode = TreeView1.SelectedNode
If Not nBienResultado.tipoNodo = "BIENRESULTADO" Then
Exit Sub
End If
Dim nUsuario As myNode = nBienResultado.Parent
nUsuario.Nodes.Remove(nBienResultado)
quitarBienUsuario(nUsuario.Name, nBienResultado.Name)
Catch ex As Exception
System.Console.WriteLine("Error al intentar quitar el nodo")
91
End Try
End Sub
Private Sub PermitirSalidaToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
PermitirSalidaToolStripMenuItem.Click
permitirSalida(True)
End Sub
Private Sub NoPermitirSalidaToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
NoPermitirSalidaToolStripMenuItem.Click
permitirSalida(False)
End Sub
Private Sub permitirSalida(ByVal salidaPermitida As Boolean)
If TreeView1.SelectedNode Is Nothing Then
Exit Sub
End If
Try
Dim nBienResultado As myNode = TreeView1.SelectedNode
Dim nUsuario As myNode = nBienResultado.Parent
Dim idUsuario As Integer = nUsuario.Name
Dim idBienResultado As Integer = nBienResultado.Name
Dim db As New lnqBienesDataContext
Dim usuarioBienResultados = From ubr In
db.catUsuarioBienResultado _
Where ubr.idBienResultado =
idBienResultado And _
ubr.idUsuario = idUsuario _
Select ubr
usuarioBienResultados.First.salidaPermitida = salidaPermitida
db.SubmitChanges()
Color.Red)
'Me.TreeView1.SelectedNode.ForeColor = IIf(salidaPermitida,
Color.Green, Color.Red)
Me.TreeView1.Refresh()
Catch ex As Exception
End Try
End Sub
End Class
Class myNode
Inherits Windows.Forms.TreeNode
Private _tipoNodo As String
Public Property tipoNodo() As String
Get
Return _tipoNodo
92
End Get
Set(ByVal value As String)
_tipoNodo = value
End Set
End Property
End Class
Usuario
Imports System.Windows.Forms
Public Class dlgUsuario
Private _idUsuario As Integer
Public Property idUsuario() As Integer
Get
Return
_idUsuario
End Get
Set(ByVal value As Integer)
_idUsuario =
value
End Set
End Property
Private formularioValido As Boolean
Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles OK_Button.Click
Me.formularioValido = True
Me.ValidateChildren()
If Me.formularioValido = False Then
MsgBox("Existen campos sin llenar",
MsgBoxStyle.Information) Exit Sub
End If
operacionD
B()
Me.DialogResult =
System.Windows.Forms.DialogResult.OK
Me.Close()
End Sub
Private Sub Cancel_Button_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Cancel_Button.Click
Me.DialogResult = System.Windows.Forms.DialogResult.Cancel
Me.Close
() End Sub
Private Sub pbxImagen_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles pbxImagen.Click
93
tools.selecionaImagen(Me.pbxI
magen) End Sub
94
usuario.Correo =
Me.txtCorreo.Text
usuario.idArea = toDiccionario(Me.cmbArea.SelectedItem)
("idArea") usuario.idCargo =
toDiccionario(Me.cmbCargo.SelectedItem)("idCargo")
usuario.Imagen =
tools.Image2Bytes(Me.pbxImagen.Image)
db.catUsuarios.InsertOnSubmit(usuario)
95
db.SubmitChang
es() End Sub
Private Sub actualizaUsuario()
Dim db As New lnqBienesDataContext
Dim usuarios = From usuario In db.catUsuarios Where usuario.IdUsuario =
Me.idUsuario
Select
usuario
Dim u As catUsuarios = usuarios.First
u.Nombre =
Me.txtNombre.Text
u.Apellidos =
Me.txtApellidos.Text u.Sexo =
Me.cmbSexo.SelectedText
u.Sexo = Me.cmbSexo.Text
u.Extension =
Me.txtExtension.Text
u.Correo = Me.txtCorreo.Text
u.idArea = toDiccionario(Me.cmbArea.SelectedItem)
("idArea") u.idCargo =
toDiccionario(Me.cmbCargo.SelectedItem)("idCargo")
u.Imagen = tools.Image2Bytes(Me.pbxImagen.Image)
db.SubmitChang
es() End Sub
Private Sub cargarUsuario()
Dim db As New lnqBienesDataContext
Dim usuarios = From usuario In db.catUsuarios Where usuario.IdUsuario =
Me.idUsuario
Select
usuario
Dim u As catUsuarios = usuarios.First
Me.txtNombre.Text =
u.Nombre
Me.txtApellidos.Text =
u.Apellidos
Me.cmbSexo.SelectedText =
u.Sexo
Me.txtExtension.Text =
u.Extension Me.txtCorreo.Text =
u.Correo
Me.cmbArea.SelectedIndex =
u.idArea
95
Me.cmbCargo.SelectedIndex =
u.idCargo
Me.pbxImagen.Image = tools.Bytes2Image(CType(u.Imagen.ToArray,
Byte()))
End Sub
Private Sub txtNombre_Validated(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles
txtNombre.Validated
muestraError(Me.txtNombre)
End Sub
96
EditarToolStripMenuItem.Click
guardarCambioArea("update")
End Sub
97
End If
Dim db As New lnqBienesDataContext
Dim cargo As New catCargos
Select Case operacion
Case "insert"
9
8
cargo.Cargo = UCase(valor)
db.catCargos.InsertOnSubmit
(cargo) Case "update"
If cmbCargo.SelectedItem Is Nothing Then
Exit
Sub
End If
Dim idCargo As Integer = toDiccionario(cmbCargo.SelectedItem)
("idArea")
Dim cargos = From c In db.catCargos Where c.idCargo =
idCargo Select c cargo = cargos.First
cargo.Cargo =
UCase(valor) End Select
db.SubmitChanges()
cargaCombos("car
gos") End Sub
Private Sub btnPermisos_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnPermisos.Click
Dim dpermisos As New
dlgPermisos
dpermisos.idUsuario =
idUsuario
dpermisos.ShowDialog(Me)
End
Sub
End Class
Reportes
Imports Microsoft.Reporting.WinForms
Public Class dlgReportes
Private Sub dlgReportes_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Dim ds As New equiposDataSet
Dim ta As New
equiposDataSetTableAdapters.catAreasTableAdapter Dim
tu As New
equiposDataSetTableAdapters.catUsuariosTableAdapter
Dim tb As New
equiposDataSetTableAdapters.catBienesTableAdapter
98
ta.Fill(ds.catAreas)
tb.Fill(ds.catBienes)
Dim ds1 As New ReportDataSource("equiposDataSet_catAreas",
ds.catAreas) Dim ds2 As New
ReportDataSource("equiposDataset_catBienes", ds.catBienes)
Me.ReportViewer1.LocalReport.DataSources.Clear()
99
Me.ReportViewer1.LocalReport.DataSources.
Add(ds1)
Me.ReportViewer1.LocalReport.DataSources.
Add(ds2)
Me.ReportViewer1.RefreshRe
port() End Sub
End Class
Contenedor
99
Imports System.Windows.Forms
Public Class mdiContenedor
Dim
Dim
Dim
Dim
adminEquipos As frmAltaBien
buscar As frmLstUsuarios
asignacion As frmAsignacion
reportes As dlgReportes
10
0
100
100
10
1
End Sub
Private Sub puertosDisponibles_DropDownItemClicked(ByVal sender As
System.Object, ByVal e As
System.Windows.Forms.ToolStripItemClickedEventArgs) Handles
puertosDisponibles.DropDownItemClicked
Dim opcionPuerto As String = e.ClickedItem.Text
If Not opcionPuerto = "CLOSE" Then
Me.strPuertoSeleccionado.Text = opcionPuerto
admPuertoSerie("conectar")
Else
Me.strPuertoSeleccionado.Text = ""
admPuertoSerie("desconectar")
End If
End Sub
Private Sub puertoSerie_DataReceived(ByVal sender As System.Object,
ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles
puertoSerie.DataReceived
Try
Dim resultado As String = puertoSerie.ReadLine
Console.WriteLine()
resultado = resultado.Replace(vbCr, "").Replace(Chr(2),
"").Replace(Chr(3), "")
SetText(resultado)
Catch ex As Exception
Console.WriteLine(" ERROR EN LA LECTURA DEL PUERTO SERIE")
End Try
End Sub
Delegate Sub SetTextCallback(ByVal text As String)
Private Sub SetText(ByVal text As String)
If Me.InvokeRequired Then
Dim d As New SetTextCallback(AddressOf SetText)
Me.Invoke(d, New Object() {text})
Else
Me.datoRecibido.Text = text
eviarTagFormulario(text)
End If
End Sub
Private Sub eviarTagFormulario(ByVal tagRFiD As String)
If adminEquipos Is Nothing OrElse adminEquipos.IsDisposed Then
Exit Sub
End If
Dim pagina As nuevoBien = Me.adminEquipos.tcBienes.SelectedTab
If pagina IsNot Nothing Then
For Each rw As DataRow In pagina.dtPropiedades.Rows
If rw("Propiedad") = "IDTAG RFID" Then
rw("Valor") = tagRFiD
End If
Next
End If
End Sub
102
102
Pantalla de Busqueda
Imports System.Text
Public Class frmLstUsuarios
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Dim propBuscar As String = Me.txtBsqPalabras.Text
If rbtBienes.Checked Then
103
103
Else
bsqBienes(propBuscar)
splResultados.Panel2Collapsed = False
bsqUsuarios(propBuscar)
splResultados.Panel2Collapsed = True
End If
End Sub
Private Sub bsqUsuarios(ByVal propBuscar As String)
u.catCargos.Cargo.Contains(propBuscar) _
Select New With {.ID = u.IdUsuario, .NOMBRE =
u.Nombre, .APELLIDOS = u.Apellidos, .GENERO = u.Sexo, .AREA =
u.catAreas.Area, .CARGO = u.catCargos.Cargo, .EXTENSION = u.Extension, _
.IMAGEN = IIf(u.Imagen Is Nothing, imagen,
tools.Bytes2Image(u.Imagen.ToArray()))}
Me.dgvMaster.AutoGenerateColumns = False
Me.dgvMaster.Columns.Clear()
Me.dgvMaster.Columns.Add("ID", "ID")
Me.dgvMaster.Columns.Add("NOMBRE", "NOMBRE")
Me.dgvMaster.Columns.Add("APELLIDOS", "APELLIDOS")
Me.dgvMaster.Columns.Add("GENERO", "GENERO")
Me.dgvMaster.Columns.Add("AREA", "AREA")
Me.dgvMaster.Columns.Add("CARGO", "CARGO")
Me.dgvMaster.Columns.Add("EXTENSION", "EXTENSION")
Dim imagenColumn As New DataGridViewImageColumn()
imagenColumn.Name = "IMAGEN"
imagenColumn.HeaderText = "IMAGEN"
Me.dgvMaster.Columns.Add(imagenColumn)
Me.dgvMaster.Columns(0).DataPropertyName
Me.dgvMaster.Columns(1).DataPropertyName
Me.dgvMaster.Columns(2).DataPropertyName
Me.dgvMaster.Columns(3).DataPropertyName
Me.dgvMaster.Columns(4).DataPropertyName
Me.dgvMaster.Columns(5).DataPropertyName
Me.dgvMaster.Columns(6).DataPropertyName
Me.dgvMaster.Columns(7).DataPropertyName
=
=
=
=
=
=
=
=
"ID"
"NOMBRE"
"APELLIDOS"
"GENERO"
"AREA"
"CARGO"
"EXTENSION"
"IMAGEN"
Me.dgvMaster.DataSource = usuarios
End Sub
Private Sub bsqBienes(ByVal propBuscar As String)
104
104
Me.dgvMaster.AutoGenerateColumns = False
Me.dgvMaster.Columns.Clear()
Me.dgvDetail.Columns.Clear()
Me.dgvMaster.Columns.Add("ID", "ID")
Me.dgvMaster.Columns.Add("BIEN", "BIEN")
Me.dgvMaster.Columns.Add("DESCRIPCION", "DESCRIPCION")
Dim imagenColumn As New DataGridViewImageColumn()
imagenColumn.Name = "IMAGEN"
imagenColumn.HeaderText = "IMAGEN"
Me.dgvMaster.Columns.Add(imagenColumn)
Me.dgvMaster.Columns(0).DataPropertyName
Me.dgvMaster.Columns(1).DataPropertyName
Me.dgvMaster.Columns(2).DataPropertyName
Me.dgvMaster.Columns(3).DataPropertyName
Me.dgvMaster.DataSource = bienes
=
=
=
=
"ID"
"BIEN"
"DESCRIPCION"
"IMAGEN"
End Sub
Me.dgvDetail.Columns.Clear()
Me.dgvDetail.Columns.Add("PROPIEDAD", "PROPIEDAD")
Me.dgvDetail.Columns.Add("VALOR", "VALOR")
Me.dgvDetail.Columns(0).DataPropertyName = "PROPIEDAD"
Me.dgvDetail.Columns(1).DataPropertyName = "VALOR"
Me.dgvDetail.DataSource = propiedades
End Sub
Private Sub editaUsuario(ByVal idUsuario As Integer)
Try
Dim db As New lnqBienesDataContext
Dim usuarios = From u In db.catUsuarios _
Where u.IdUsuario = idUsuario _
Select u
Dim usuario As New catUsuarios
usuario = usuarios.First
Dim imagen As Image = Nothing
Dim dlgUsuario As New dlgUsuario
dlgUsuario.idUsuario = usuario.IdUsuario
dlgUsuario.txtNombre.Text = usuario.Nombre
dlgUsuario.txtApellidos.Text = usuario.Apellidos
dlgUsuario.txtExtension.Text = usuario.Extension
dlgUsuario.txtCorreo.Text = usuario.Correo
dlgUsuario.cmbArea.SelectedText = usuario.catAreas.Area
dlgUsuario.cmbCargo.SelectedText = usuario.catCargos.Cargo
dlgUsuario.cmbSexo.Text = usuario.Sexo
If usuario.Imagen IsNot Nothing Then
dlgUsuario.pbxImagen.Image =
tools.Bytes2Image(usuario.Imagen.ToArray())
End If
dlgUsuario.ShowDialog(Me)
Catch ex As Exception
Console.Error.WriteLine("Error al intentar asignar un
usuario")
End Try
End Sub
Private Sub dgvMaster_CellClick(ByVal sender As System.Object, ByVal
e As System.Windows.Forms.DataGridViewCellEventArgs) Handles
dgvMaster.CellClick
Dim selectedCellCount As Integer =
dgvMaster.GetCellCount(DataGridViewElementStates.Selected)
If selectedCellCount > 0 Then
Dim salida As String =
dgvMaster.CurrentRow.Cells(0).Value.ToString
If IsNumeric(salida) Then
If rbtBienes.Checked Then
If splResultados.Panel2Collapsed Then
Exit Sub
106
106
Else
End If
bsqPropiedades(salida)
editaUsuario(salida)
End If
End If
End If
End Sub
End Class
10
71