T abajo Final de G ado
en Ingenie ´ıa In o m´a ica
TouCAN: Mejo as y Ampliaci´on de Funcionalidades
A idany San ana S´anchez
Tu o es
An onio Ca los Dom´ınguez B i o
Jo ge Cab e a G´amez
30 de no iemb e de 2014
Ag adecimien os
Me gus a ´ıa comenza es e documen o mos ando mi ag adecimien o a odas
aquellas pe sonas que de o ma di ec a o indi ec a han colabo ado en la ealizaci´on
es e p oyec o.
En p ime luga ag adece a mis u o es Jo ge Cab e a G´amez y An onio Ca los
Dom´ınguez B i o el apoyo y aseso amien o ecibido du an e el desa ollo de es e
T abajo Final de G ado (TFG).
Mis m´as since o ag adecimien o a mi amilia po su ´animo, paciencia y
mo i aci´on du an e la ealizaci´on de es e abajo.
Po ´ul imo, me gus a ´ıa elici a a John Wu Wu[24] y Jose An onio La do
Dom´ıguez [22] po el abajo ealizado en sus espec i os TFG que die on o i-
gen a la p ime a e si´on de la lib e ´ıa TouCan 1.0 y que ha sido la base de es e TFG.
i
ii
Resumen
TouCAN es una lib e ´ıa c eada en su p ime a e si´on ( 1) como T abajos
de Fin de G ado en Ingenie ´ıa In o m´a ica po John Wu Wu[24] y Jose La eo
Dom´ınguez[22] bajo la u o izaci´on de los p o eso es An onio C. Dom´ınguez B i o y
Jo ge Cab e a G´amez. De ine un p o ocolo de comunicaci´on pa a la in e conexi´on de
una ed de mic ocon olado es basados en la pla a o ma de p o o ipado elec ´onico
A duino y abaja sob e el p o ocolo de comunicaci´on CAN Bus (Con olle A ea
Ne wo k)[4], ampliamen e u ilizado po la indus ia desde la d´ecada de los 80.
El obje i o p incipal de es e T abajo Final de G ado en Ingenie ´ıa In o m´a ica
consis e en p opo ciona obus ez a la lib e ´ıa inco po ando mejo as y nue as
uncionalidades. En e las p incipales mejo as des acan el con ol en e a allos
de comunicaci´on, einicio o ese de los mic ocon olado es, as´ı como la ca´ıda de
los mismos. O a ca ac e ´ıs ica incluida en es a e isi´on consis e en la asignaci´on
din´amica de iden i icado es de disposi i os que con o man un sis ema empo ado
dis ibuido, pe mi iendo la posibilidad de “conexi´on en calien e” de nue os nodos
mic ocon olado es a la ed de o ma din´amica. A es os cambios, ambi´en se han
a˜nadido mejo as en la in e az de la API que simpli ica el uso y ap endizaje de la
misma. As´ı como una nue a he amien a denominada TouCANSni e que pe mi e
cap u a y analiza odo el ´a ico gene ado en la ed.
En nues a opini´on, las nue as ca ac e ´ıs icas y uncionalidades a˜nadidas en Tou-
CAN 2.0 p opo cionan el po encial necesa io pa a se conside ada se iamen e como
base de cualquie nue o p oyec o que in eg e una ed dis ibuida de mic ocon ola-
do es.
iii
i
Abs ac
TouCAN is lib a y c ea ed in i s i s e sion as Final Deg ee P ojec s in
Compu e Science by John Wu Wu[24] and Jose La eo Dom´ınguez[22] unde he
supe ision o p o esso s An onio C. Dom´ınguez B i o and Jo ge Cab e a G´amez. I
de ines a communica ion p o ocol o in e connec ing a ne wo k o mic ocon olle s
based on he elec onic p o o yping pla o m A duino. I ope a es using he CAN
(Con olle A ea Ne wo k)[4] bus communica ion p o ocol ha has been widely
used by he indus y since he 80s.
TouCAN s ands ou as a ligh , iendly and obus lib a y. The main goal o
his Final Deg ee P ojec in Compu e Science is o p o ide obus ness o he
lib a y including new unc ionali y and imp o emen s. Some o he main included
new ea u es a e: con ol agains communica ion ailu es, es a ing and ese o
mic ocon olle s, and de ec ion de ices which ha e s opped ope a ion. Also ano he
included ea u e is he dynamic assignmen o iden i ie s o de ices ha allow
us o ho plug new nodes dinamically. Mo eo e , we ha e also included u he
imp o emen s which simpli y he use and lea ning. In addi ion he e is also new
ool called TouCANSni e ha allow us cap u e and analyze all packe s gene a ed
in he ne wo k.
All hese new imp o emen s included in TouCAN gi e he lib a y he obus ness
necessa y o be used in any p ojec which in eg a es a mic ocon olle ne wo k.
i
´
Indice Gene al
1. In oducci´on 1
1.1. Es adoac ual ............................. 1
1.2. Obje i os................................ 2
2. An´alisis del P oblema 3
2.1. TouCAN Mic ocon olado . . . . . . . . . . . . . . . . . . . . . . 4
2.1.1. Topolog´ıa ........................... 4
2.1.2. TouCANT ama........................ 6
2.1.3. TouCAN Tipos de Comunicaciones . . . . . . . . . . . . . . 8
2.1.4. T amas s´ınc onas . . . . . . . . . . . . . . . . . . . . . . . 10
2.1.5. T amas as´ınc onas . . . . . . . . . . . . . . . . . . . . . . . 11
2.1.6. TouCAN Es uc u as de Da os . . . . . . . . . . . . . . . . 12
2.1.6.1. TouCAN - Es uc u a CAN . . . . . . . . . . . . 12
2.1.6.2. TouCAN - Es uc u a node . . . . . . . . . . . . . 13
2.1.6.2.1. Iden i icado es . . . . . . . . . . . . . . . 15
2.1.7. TouCAN Plan illas . . . . . . . . . . . . . . . . . . . . . . 16
2.2. TouCANSupe iso .......................... 17
2.2.1. T ama ............................. 17
3. Compe encias 19
3.1. CII01.................................. 19
3.2. CII02.................................. 19
3.3. CII04.................................. 20
3.4. CII18.................................. 20
4. Apo aciones 21
5. No ma i a y Legislaci´on 23
5.1. No ma i a ............................... 23
5.1.1. Ley O g´anica de P o ecci´on de Da os. . . . . . . . . . . . . 23
5.1.2. C´odigoTipo.......................... 23
5.1.3. Insc ipci´on de un p og ama in o m´a ico en LOPD . . . . . . 23
5.2. Licencias................................ 24
ii
4Cap´ı ulo 2. An´alisis del P oblema
2.1. TouCAN Mic ocon olado
TouCAN Mic ocon olado es una API que acili a la in e conexi´on de la pla-
a o ma A duino en una ed con opolog´ıa CAN Bus. Es ´a basada en la lib e ´ıa
ARCAN[23] do ´andola de un sencillo p o ocolo de comunicaci´on. En e sus p inci-
pales ca ac e is icas des acan: la acilidad de uso y la op imizaci´on de los ecu sos
del disposi i o.
2.1.1. Topolog´ıa
En la p ime a e si´on de TouCAN 1.0 se de inen es ipos de nodos o disposi-
i os que pueden coexisi i en una ed de mic ocon olado es:
Escla o o nodo com´un: Son los nodos pasi os en la ed. No inician pe iciones
po inicia i a p opia, s´olo a ienden las pe iciones de los Mas e s. Ac uan como
nodo senso es y/o ac uado es en una ed de mic ocon olado es.
Maes o: A di e encia de los nodos Escla os, puede inicia una comunicaci´on
con o os nodos en la ed o conec a se a un Supe iso .
Supe iso : A di e encia de los nodos an e io es, no se conec a di ec amen e
a la ed bus CAN[4] sino a a ´es de los nodos Maes os. En e sus a eas
cabe des aca la moni o izaci´on del bus, inicia pe iciones a a ´es de algunos
de los nodos maes os, es ablece elocidades de ansmisi´on, e c.
La siguien e imagen 2.1 ep esen a un esquema b´asico de una ed TouCAN com-
pues a po es nodos Escla os, dos Maes os y un Supe iso .
2.1. TouCAN Mic ocon olado 5
Figu a 2.1: Esquema ed TouCAN 1.0
6Cap´ı ulo 2. An´alisis del P oblema
2.1.2. TouCAN T ama
El p o ocolo bus CAN[4] de ine dos ipos de amas que di ie en en la longi ud
del campo iden i icado . La ama es ´anda de inida en la especi icaci´on 2.0A iene
un ID de 11 bi s mien as el iden i icado de la ama ex endida asciende a 29 bi s
y es ´a de inida en la especi icaci´on 2.0B.
TouCAN hace uso de la ama ex endida pa a de ini su p opio p o ocolo. U iliza
los 29 bi s del campo iden i icado pa a es ablece el o igen, des ino y el ipo de
ama. La imagen 2.2 mues a las di e encias en e una ama CAN 2.0B[4] y una
ama TouCAN. Po o o lado, la igu a 2.3 con iene un ejemplo de es uc u a
TouCAN.
ID0..ID10: 11 bi s ese ados pa a es ablece el o igen del mensaje.
EID0..EID10: 11 bi s ese ados pa a iden i ica el des ina a io del mensaje.
EID11..EID15: 5 bi s u ilizados pa a iden i ica el ipo de ama. La e si´on
TouCAN 1.0 implemen a an solo 6 ipos de amas de las 32 posibles.
EID16..EID17: Bi s inu ilizados en la e si´on TouCAN 1.0.
DLC0..DLC03: 4 Bi s des inados a especi ica la longi ud del campo de da os.
Da a ield: El p o ocolo es ablece un m´aximo de 8 by es pa a el campo de
da os.
Figu a 2.2: Compa a i a en e una ama CAN 2.0B y TouCAN T ama
2.1. TouCAN Mic ocon olado 7
Figu a 2.3: T ama TouCAN
8Cap´ı ulo 2. An´alisis del P oblema
2.1.3. TouCAN Tipos de Comunicaciones
El p o ocolo TouCAN de ine dos ipos de comunicaciones:
s´ınc ona: Es e ipo de pe ici´on ga an iza la ecepci´on de la espues a a una
de e minada solici ud. ´
U il pa a solici a un da o pun ual a un disposi i os
de la ed. La siguien e imagen 2.4 ep esen a un ejemplo de comunicaci´on
s´ınc ona.
Figu a 2.4: Ejemplo pe ici´on s´ınc ona
2.1. TouCAN Mic ocon olado 9
as´ınc ona: A di e encia de la pe ici´on s´ınc ona, no se ga an iza la ecepci´on
de odos los mensajes. La comunicaci´on es es ablecida po un nodo mas e
que solici a a o o nodo el en ´ıo pe i´odico de un da o has a que la pe i-
ci´on sea cancelada. La siguien e imagen 2.5 mues a un ejemplo de pe ici´on
as´ınc ona en e un nodo Maes o y o o Escla o. El Maes o es ablece una
comunicaci´on as´ınc ona y espe a la ecepci´on de N paque es an es de inaliza
la comunicaci´on con el Escla o.
Figu a 2.5: Ejemplo pe ici´on As´ınc ona. Nodo Maes o solici a N paque es a nodo Escla o
10 Cap´ı ulo 2. An´alisis del P oblema
2.1.4. T amas s´ınc onas
Reques (pe ici´on): Codi icaci´on en el p o ocolo,00000 (mac o REQU). Es a
ama es la esponsable de ealiza una pe ici´on s´ınc ona. ´
Unicamen e puede
se emi ida po un nodo Mas e o Supe iso . Ga an iza la espues a o en
su de ec o, in o man de la p´e dida del paque e pa a ealiza un ein en o. El
usua io iene o al libe ad pa a u iliza el campo de da os e implemen a un
p o ocolo sob e TouCAN.
Answe ( espues a): Es a ama es u ilizada po cualquie nodo de la ed
pa a esponse a una pe ici´on eques . Es ´a codi icada con el alo 00001
(mac o ANSW ).
La igu a 2.6 mues a un ejemplo de comunicaci´on s´ınc ona en e un nodo Maes o
y Escla o donde se especi ica el nomb e y el c´odigo de cada una de las amas que
in e ienen.
Figu a 2.6: Ejemplo pe ici´on S´ınc ona
2.1. TouCAN Mic ocon olado 11
2.1.5. T amas as´ınc onas
S a (comienzo): Codi icaci´on en el p o ocolo: 00011 (mac o STRT). Es
en iada po un nodo Mas e o Supe iso pa a solici a al des ina a io que
le en ie un conjun o de da os de o ma pe i´odica. La ecuencia de en ´ıo
se indica en milisegundos en el p ime by e de da os del mensaje. El es o de
da os son lib es pa a que el usua io los u ilice pa a implemen a o o p o ocolo
a un ni el supe io .
Acknowledge ( econocimien o): Codi icaci´on en el p o ocolo 01000 (mac o
ACKN). Es a ama es espe ada po un maes o inmedia amen e despu´es de
en ia un “s a ” o “s op”.
Bulk (en ´ıo masi o): Codi icaci´on en el p o ocolo 00101 (mac o BFRM).
Es a ama no ga an iza la ecepci´on del paque e y es u ilizada como espues a
a una pe ici´on de ipo “s a ”. (Respues a as´ınc ona)
S op ( inalizaci´on): Codi icaci´on en el p o ocolo: 00100 (mac o STOP).
In o ma al des ina a io el cese de en ´ıo de paque es as´ınc onos, “bulk”.
Rejec : Codi icaci´on en el p o ocolo, 00010 (mac o REJE). In o ma que no
ha sido posible a ende la pe ici´on, indicando el mo i o po el cual ha sido e-
chazada. Un Maes o o Supe iso puede man ene comunicaciones s´ınc onas
y as´ınc onas con un mismo nodo de o ma simul ´anea. Sin emba go, un nodo
com´un o Escla o no puede man ene comunicaciones simul ´aneas con m´a de
un maes o o supe iso .
La siguien e imagen 2.7 mues a un ejemplo de comunicaci´on as´ınc ona en e un
nodo Maes o y Escla o donde se especi ica el nomb e y el c´odigo de cada una de
las amas que in e ienen.
Figu a 2.7: Ejemplo pe ici´on As´ınc ona en e un nodo Maes o y o o Escla o
12 Cap´ı ulo 2. An´alisis del P oblema
2.1.6. TouCAN Es uc u as de Da os
TouCAN 1.0 de ine dos ipos de es uc u as de da os denominadas: node y
CAN. La p ime a ep esen a un nodo en la ed y es u ilizada po los disposi i os
Maes os. La segunda de ine la es uc u a de un mensaje TouCAN u ilizada en el
en io y ecepci´on de mensajes po los dis in os nodos que con o man un de e minado
sis ema.
2.1.6.1. TouCAN - Es uc u a CAN
CAN es la es uc u a que ep esen a un mensaje en la lib e ´ıa TouCAN. Ac ´ua
como bu e de ecepci´on y ansmisi´on del MCP2515[8] al en ia o ecibi mensajes
a a ´es del bus CAN[4]. El siguien e agmen o de c´odigo ep esen a una es uc u a
CAN.
ypede s uc {
unsigned in i d s ;
unsigned in i d d ;
in ame ype ;
s uc {
by e : 1 ;
by e l e n g h : 4;
}heade ;
by e da a [ 8 ] ;
} CAN ;
id s: Almacena el ID de o igen del mensaje.
id d: Almacena el ID des ina a io del mensaje.
ame ype: Iden i ica el ipo de ama a en ia .
s uc heade : Almacena el ipo de ama a ni el de CAN y la longi ud del
campo de da os.
da a[8]: Con iene los da os del mensaje.
2.1. TouCAN Mic ocon olado 13
2.1.6.2. TouCAN - Es uc u a node
Es a es uc u a es u ilizada exclusi amen e po los disposi i os Maes os y e-
p esen a de o ma l´ogica un nodo en la ed. Se de ine es ´a icamen e en un ec o
de nodos en cada Maes o.
ypede s uc {
unsigned in id ;
// synch onous pa
boolean S s u p e i s o o p ;
loa S imes amp ;
by e S answe ;
by e S l e n g h ;
by e S da a [ 8 ] ;
// Asynch onous pa
bo olea n A s u p e i s o o p ;
loa A imes amp ;
by e A ack ;
by e w i e n ;
by e A leng h ;
by e A da a [ 8 ] ;
} CAN ;
// e c o de node
node nodes [NNODES + 1 ] ;
id: ID del disposi i o con el que se ha iniciado una comunicaci´on.
S supe iso op: Se a a de un campo que indica si la comunicaci´on s´ınc o-
na con el nodo ha sido iniciada po el maes o o po el supe iso ( eco demos
que si bien un supe iso no es ´a conec ado di ec amen e a la ed, puede
ealiza pe iciones a o os nodos a a ´es del maes o al que se encuen a co-
nec ado). Sus alo es posibles son ue si es una comunicaci´on del supe iso
y alse si es del maes o.
S imes amp: Cuando el alo es mayo que 0 indica que exis e una comu-
nicaci´on s´ınc ona con o o nodo.
S answe : Indica que se ha ecibido una espues a s´ınc ona del nodo des ino.
Los posibles alo es son:
0No se ha ecibido espues a.
1Se ha ecibido una espues a.
2Se ha ecibido una espues a, pe o es a ha sido echazada.
No a: Si se a a de una pe ici´on de o o maes o, es a p opiedad adquie e
o o signi icado, siendo 0 que el maes o no ha ecibido pe iciones de o os
maes os ´o 1 en caso con a io.
S leng h: Almacena la longi ud del campo de da os ecibidos, co espondien e
a una espues a s´ınc ona.
20 Cap´ı ulo 3. Compe encias
3.3. CII04
Capacidad pa a elabo a el pliego de condiciones ´ecnicas de una ins alaci´on
in o m´a ica que cumpla los es ´anda es y no ma i as igen es.
Es a compe encia queda cubie a en el cap´
ulo “Pliego de Condiciones” 8
donde se especi ican cada una de las condiciones asociadas al p oyec o.
3.4. CII18
Conocimien o de la no ma i a y la egulaci´on de la in o m´a ica en los ´ambi os
nacional, eu opeo e in e nacional.
El cumplimien o de es a compe encia queda desc i a en el cap´ı ulo “No ma i a
y Legislaci´on” 5.
Cap´ı ulo 4
Apo aciones
Ac ualmen e la comunidad A duino es ´a en auge. Mul i ud de emp esas y usua-
ios apues an po es a ecnolog´ıa pa a lle a a cabo p oyec os de g an en e gadu a
en dis in as ´a eas como la ob´o icia, dom´o ica, ideojuegos, elec odom´es icos en e
o os. Po o o lado CAN[4] es un p o ocolo asen ado u ilizado po la indus ia
desde hace a ias d´ecadas.
TouCAN se c e´o con el obje i o inicial de p opo cina una lib e ´ıa so wa e
lib e ´acil de u iliza y op imizada pa a mic ocon olado es con pocos ecu sos, que
oma a en aja de las capacidades de una ed de pla a o mas A duinos conec ados
a a ´es de una ed CAN Bus.
Es e p oyec o ha apo ado un ni el m´as de obu ez a la lib e ´ıa TouCAN
apo ando mejo as elacionadas con la de ecci´on y ecupe aci´on de allos de co-
municaciones y ese de los mic ocon olado es. La asignaci´on din´amica simpli ica
comunicaci´on en e disposi i os y pe mi e la conexi´on en “Calien e”. TouCANS-
ni e acili a la a ea de debug analizando el ´a ico de mensajes en la ed. Todas
es as apo aciones con ie en a TouCAN en una he amien a a se conside ada
se iamen e en p oyec os donde se desee in eg a edes de mic ocon olad es de
o ma econ´omica, sencilla, e icien e y lib e.
21
22 Cap´ı ulo 4. Apo aciones
Cap´ı ulo 5
No ma i a y Legislaci´on
A con inuaci´on se incluye la legislaci´on igen e que a ec a al p esen e T abajo
Fin de G ado.
5.1. No ma i a
5.1.1. Ley O g´anica de P o ecci´on de Da os.
La p esen e Ley O g´anica de P o ecci´on de Da os [12] iene po obje o ga an iza
y p o ege , en lo que concie ne al a amien o de los da os pe sonales, las libe ades
p´ublicas y los de echos undamen ales de las pe sonas ´ısicas, y especialmen e de
su hono e in imidad pe sonal y amilia . Es de aplicaci´on a los da os de ca ´ac e
pe sonal egis ados en sopo e ´ısico, que los haga suscep ibles de a amien o, y a
oda modalidad de uso pos e io de es os da os po los sec o es p´ublico y p i ado.
5.1.2. C´odigo Tipo
Se de inen como c´odigos deon ol´ogico o de buena conduc a o p ´ac ica p o e-
sionales. Es ´an egulados en la Ley O g´anica de P o ecci´on de Da os de Ca ´ac e
Pe sonal[12], que es la que es ablece en nues o pa´ıs los cimien os b´asicos de los
aspec os legales en cuan o a p o ecci´on de da os de ca ´ac e pe sonal se e ie e.
Tienen po obje o adecua lo es ablecido en la LOPD y en el RLOPD a las peculia-
idades de los a amien os e ec uados po quienes se adhie en a ellos, con eniendo
eglas o es ´anda es espec´ı icos con el obje i o de a moniza los a amien os de
da os e ec uados po los adhe idos; acili a el eje cicio de los de echos de los a ec-
ados y, en de ini i a, a o ece el cumplimien o de lo dispues o en la no ma i a de
p o ecci´on de da os.
5.1.3. Insc ipci´on de un p og ama in o m´a ico en LOPD
A con inuaci´on se de alla los equisi os necesa ios pa a la insc ipci´on de un
p og ama in o m´a ico en la LOPD.
23
24 Cap´ı ulo 5. No ma i a y Legislaci´on
La o alidad del c´odigo uen e, en CD-ROM o en sopo e papel, debidamen e
encuade nada y paginada.
En los p og amas de o denado edi ados ha de p esen a se un esumen po
esc i o de al menos 20 olios del c´odigo uen e, siemp e y cuando ep oduzcan
elemen os esenciales del mismo. Debe ´a i encuade nado y con po ada donde
igu e el ´ı ulo y au o de la ob a.
Una memo ia en sopo e papel, debidamen e encuade nada y paginada con el
esumen de la aplicaci´on, el lenguaje de p og amaci´on, el en o no ope a i o,
el lis ado de nomb es de los iche os que con iene y el diag ama de lujo.
Puede apo a se el ejecu able del p og ama, de o ma opcional.
Los esc i os y solici udes que se di ijan a cualquei a de las o icinas del Re-
gis o pod ´an p esen a se en las o mas y an e los ´o ganos que p e ´e la ley
30/1992, de R´egimen Ju ´ıdico de las Adminis aciones P´ublicas y del P oce-
dimien o Adminis a i o Com´un. Tambi´en pod ´an p esen a se en cualquie a
de los egis os a que se e ie e el p esen e eglamen e, an o cen al como
e i o ial, lo cuales los emi i ´an, el dia siguien e al de su p esen aci´on, al
egis o indicado en la solici ud.
5.2. Licencias
A con inuaci´on se de allan algunas de las licencias que a ec an al so wa e u i-
lizado du an e el desa ollo del p esen e p oyec o.
5.2.1. GNU GPL
La Licencia P´ublica Gene al de GNU[9] es la licencia m´as ampliamen e usada en
el mundo del so wa e y ga an iza a los usua ios inales (pe sonas, o ganizaciones,
compa˜n´ıas) la libe ad de usa , es udia , compa i (copia ) y modi ica el so wa e.
Su p op´osi o es decla a que el so wa e cubie o po es a licencia es so wa e lib e
y p o ege lo de in en os de ap opiaci´on que es injan esas libe ades a los usua ios.
Es a licencia ue c eada o iginalmen e po Richa d S allman undado de la F ee
So wa e Founda ion (FSF) pa a el p oyec o GNU.
5.2.2. LGPL
La Licencia P´ublica Gene al Meno (del ingl´es: Lesse Gene al Public License o
LGPL) [10] es una modi icaci´on de la licencia GPL desc i a an e io men e. La LGPL
pe mi e que los desa ollado es u ilicen p og amas bajo la GPL o LGPL sin es a
obligados a some e el p og ama inal bajo dichas licencias.
5.2.3. Eclipse Public License
La Licencia P´ublica Eclipse (EPL) [7] es una licencia de so wa e de c´odigo
abie o u ilizada po la Funciaci´on Eclipse pa a su so wa e. Es ´a dise˜nada pa a
se una licencia a o able a los negocios. No equie e ning´un seguimien o en los
cambios y s´olo exige la publicaci´on del c´odigo uen e cuando las modi icaciones
5.2. Licencias 25
se conside an un abajo de i ado y no una ex ensi´on o un m´odulo sepa ado. Los
abajos de i ados deben se publicados siemp e bajo la licencia EPL.
5.2.4. C ea i e Commons
Las licencias C ea i e Commons[5] ´o CC ienen su o igen en la licencia GNU
GPL, cuyo obje i o es el de o ece al au o de una ob a un mecanismo sencillo
y e ic´az a la ho a de es ablece una se ie de condiciones asociadas a la ob a. Las
condiciones que se pueden impone son las siguien es:
Reconocimien o (A ibu ion): En cualquie explo aci´on de la ob a au o i-
zada po la licencia ha ´a al a econoce la au o ´ıa.
Figu a 5.1: Reconocimien o.
No Come cial (Non comme cial): La explo aci´on de la ob a queda limi ada
a usos no come ciales. ´o
Figu a 5.2: No Come cial.
Sin ob as de i adas (No De i a e Wo ks): La au o izaci´on pa a explo a
la ob a no incluye la ans o maci´on pa a c ea una ob a de i ada.
Figu a 5.3: Sin ob as de i adas.
Compa i Igual (Sha e alike): La explo aci´on au o izada incluye la c eaci´on
de ob as de i adas siemp e que man engan la misma licencia al se di ulgadas.
Figu a 5.4: Compa i Igual.
26 Cap´ı ulo 5. No ma i a y Legislaci´on
Cap´ı ulo 6
Requisi os
Pa a pode consegui los obje i os ma cados inicialmen e del p oyec o se ha
hecho uso, du an e el desa ollo de ´es e, de una se ie de ecu sos. Se han desglosado
en dos g upos: ha dwa e y so wa e.
6.1. Ha dwa e
A ni el de ha dwa e las necesidades ue on las siguien es:
1. A duino Uno e 3. 4 unidades.
2. CAN-BUS shield. 4 unidades.
3. P o oboa d.
4. Resis encias. 2 unidades de 120 ohm.
5. Cables. Pa de cob e enzado.
6. Cables USB de A a B. 4 Unidades
7. PC. En conc e o se ha u ilizado un PC con CPU In el Co e QuadCo e a 2Ghz,
Memo ia am de 8GB y una g ´a ica GeFo ce 9400M.
6.2. So wa e
A ni el de so wa e ue necesa io:
1. Dis ibuci´on GNU/Linux En conc e o se u iliz´o Debian 6.0 de 64 bi s.
2. So wa e de desa ollo Eclipse 3.8, GNU g++ y A duino IDE(p ocessing).
3. So wa e documen al LaTexT, ImageMagick 6.7.7-10.
27
28 Cap´ı ulo 6. Requisi os
Cap´ı ulo 7
Me odolog´ıa y Plan de T abajo
Como me odolog´ıa de desa ollo se u iliza on las ´ecnicas de desa ollo so wa e
p opias del P oceso Uni icado (Uni ied P ocess)[20]. El P oceso Uni icado p o-
po ciona un ma co de desa ollo gen´e ico adap able a p oyec os espec´ı icos cuyas
ca ac e ´ıs icas son las siguien es:
1. I e a i o e Inc emen al: El P oceso Uni icado es ´a compues o po cua o
ases dis in as: Inicio, Elabo aci´on, Cons ucci´on y T ansici´on. En cada una
de las ases se ha ´a un de e minado n´ume o de i e aciones con el obje i o de
mejo a e inclui mejo as de uncionalidades dando luga a un inc emen o del
p oyec o en desa ollo.
2. Di igido po los casos de uso: Po medio de los casos de uso se especi ica ´a
en las i e aciones los equisi os uncionales y los con enidos.
3. Cen ado en la a qui ec u a: En el desa ollo del so wa e no se usa ´a un
´unico modelo que desc iba odo el sis ema. Se op a ´a po un en oque con
m´ul iples modelos y is as que desc iban la a qui ec u a de so wa e del sis-
ema.
4. En ocado en los iesgos: Se equie e iden i ica los iesgos c ´ı icos en una
e apa emp ana. De es e modo los esul ados de cada i e aci´on deben selec-
ciona se en un o den que asegu e que los iesgos p incipales son conside ados
p ime o.
29
36 Cap´ı ulo 9. Desa ollo
Figu a 9.1: Esquema de la ed TouCAN 2.0
9.2. T amas TouCAN 37
9.2. T amas TouCAN
A las amas ya exis en es en la e si´on 1.0 de TouCAN se han inco po ado
nue os comandos esponsables de la asignaci´on din´amica de ID y de la moni o i-
zaci´on de disposi i os en la ed. En es a e isi´on los nodos son econocidos po un
nomb e de cinco ca ac e es. A con inuaci´on se de allan las amas inco po adas en
es a e isi´on.
9.2.1. P oceso de asignaci´on din´amica de ID
Reques ID: Codi icaci´on en el p o ocolo, 11100 (mac o REID). Funci´on
u ilizada po los nodos Mas e y Sla e pa a solici a un ID al nodo Se e .
En los cinco p ime os by es del campo de da os con ienen el nomb e del
disposi i o que ealiza la solici ud. La imagen 9.2 co esponde a una ama
REID.
Da a0..Da a4 : Los p ime os cinco by es con ienen el nomb e del disposi-
i o.
Da a5..Da a7 : Sin u iliza .
Figu a 9.2: TouCAN 2.0 - Ejemplo ama REID
Response ID: Codi icado con el alo , 11101 (mac o BRID). T ama ipo
b oadcas , es en iada siemp e po el nodo Se e a odos los disposi i os de
la ed, aunque solo es p ocesada po el nodo que ealiz´o la pe ici´on “Reques
ID”. La igu a 9.3 es un ejemplo de ama BRID.
Da a0..Da a4 : Los p ime os cinco by es con ienen el nomb e del disposi-
i o que ealiz´o la pe ici´on.
Da a5 : Puede con ene dos alo es, 0 ope aci´on ealizada con ´exi o ´o 255
si se ha p oducido un e o .
Da a6..Da a7 Los dos ´ul imos by es del campo de da os almacenan el ID
asignado al disposi i o o un c´odigo de e o seg´un el alo del by e 5.
Figu a 9.3: TouCAN 2.0 - Ejemplo ama BRID
38 Cap´ı ulo 9. Desa ollo
Con i m ID: Codi icada en el p o ocolo con el alo , 11110 (mac o BCID).
T ama ipo b oadcas , en iada po el nodo que ealiz´o la pe ici´on “Reques
ID” pa a con i ma el ID asignado al nodo Se e e in o ma al es o de
disposi i os Mas e de la ed. Ejemplo de ama BCID en la imagen: 9.4
Da a0..Da a4 : Los p ime os cinco by es con ienen el nomb e del disposi-
i o.
Da a5..Da a7 : Sin u iliza .
Figu a 9.4: TouCAN 2.0 - Ejemplo ama BCID
9.2.2. P oceso de econocimien o de disposi i os en la ed
Reques check de ices ne wo k: T ama codi icada con el c´odigo, 11010
(mac o BCDN). Es un paque e b oadcas , u ilizado ´unicamen e po el nodo
Se e pa a ecupe a la lis a de disposi i os en la ed despu´es de un einicio.
Ejemplo de ama BCDN en la imagen: 9.5
Da a0..Da a7 : Es a ama no hace uso del campo da a.
Figu a 9.5: TouCAN 2.0 - Ejemplo ama BCDN
9.2. T amas TouCAN 39
Response check de ices ne wo k: Codi icado en el p o ocolo con el c´odigo,
11011 (mac o RCDN). Respues a de los nodos Mas e y Sla e a una pe i-
ci´on “Reques check de ices ne wo k”. El des ina a io del paque e el el nodo
Se e . Ejemplo de ama RCDN en la igu a 9.6
Da a0..Da a4 : Los p ime os cinco by es con ienen el nomb e del disposi-
i o.
Da a5..Da a7 : Sin u iliza .
Figu a 9.6: TouCAN 2.0 - Ejemplo ama RCDN
9.2.3. P oceso e i icaci´on de es ados de los disposi i os.
Reques echo: Codi icada en el p o ocolo con el alo , 11000 (mac o ECSE).
Paque e echo en iado po el nodo Se e a cada uno de los disposi i os de la
ed pa a e i ica cuales es ´an ac i os y cuales no. La imagen 9.7 co esponde
a un ejemplo de ama ECSE.
Da a0..Da a7 : Es a ama no hace uso del campo da a.
Figu a 9.7: TouCAN 2.0 - Ejemplo ama ECSE
Response echo: Codi icaci´on en el p o ocolo con el alo , 11001 mac o (RE-
EC). Emi ido po los nodos Mas e y Sla e como espues a a una pe ici´on
“Reques echo”. Ejemplo de ama REEC en la igu a: 9.8
Da a0..Da a7 : Es a ama no u iliza el campo da a.
Figu a 9.8: TouCAN 2.0 - Ejemplo ama REEC
40 Cap´ı ulo 9. Desa ollo
Remo e de ice: Codi icado en el p o ocolo con el alo , 10100 (mac o
ECRD). Paque e b oadcas u ilizado pa a in o ma que un disposi i o ha cau-
sado baja en la ed. En iado po el nodo Se e y p ocesado ´unicamen e po
los nodos Mas e . Los dos p ime os by es del campo de da os almacenan el
ID del nodo a elimina . Es e paque e pe mi e man ene ac ualizada la lis a de
disposi i os de odos los nodos Mas e de la ed.
Da a0..Da a1 : Iden i icado del disposi i o que ha causado baja en la ed.
Da a5..Da a7 : Sin u iliza .
Figu a 9.9: TouCAN 2.0 - Ejemplo ama ECRD
9.2.4. P oceso ac ualizaci´on lis a disposi i os - Nodo Maes o
Reques de ices lis : Codi icado con el c´odigo, 10101 (mac o: DLGT). T a-
ma u ilizada po un nodo Mas e pa a solici a la lis a comple a de disposi i os
al nodo Se e . La imagen 9.10 co esponde a un ejemplo de la ama DLGT
Da a0..Da a7 : Es a ama no hace uso del campo da a.
Figu a 9.10: TouCAN 2.0 - Ejemplo ama DLGT
9.2. T amas TouCAN 41
Response de ices numbe : Codi icaci´on en el p o ocolo con el alo , 10110
(mac o DLNU). De uel e el n´ume o de disposi i o en en los dos p ime os
by es del campo de da os. En iado po el nodo Se e al Mas e que ealiz´o
la pe ici´on: “Reques de ices lis ”. Ejemplo de ama en la igu a: 9.11
Da a0..Da a1 : N´ume o de egis os en la abla de disposi i os.
Da a2..Da a7 : Sin u iliza .
Figu a 9.11: TouCAN 2.0 - Ejemplo ama DLNU
Response de ice name: Codi icaco en el p o ocolo con el alo , 10111 (ma-
c o DLNA). Es e paque e es u ilizado po el nodo Se e pa a en ia al Mas e
la lis a de disposi i os. En ´ıa an os paque es como disposi i os con enga la
abla. El campo de da os con iene el ID y el nomb e del nodo.
Da a0..Da a4 : Los p ime os cinco by es con ienen el nomb e del disposi-
i o.
Da a5..Da a6 : Iden i icado del disposi i o
Da a7..Da a7 : Sin u iliza
Figu a 9.12: TouCAN 2.0 - Ejemplo ama DLNA
42 Cap´ı ulo 9. Desa ollo
9.3. Re ac o izaci´on y Op imizaci´on
An es de comenza con la desa ollo de las nue as uncionalidades se consi-
de a on necesa ias la op imizaci´on de algunos aspec os de la lib e ´ıa con la ´unica
inalidad de acili a la implemen aci´on de las nue as mejo as. Los siguien es
apa ados desc iben los cambios ealizados.
9.3.1. Re ac o izaci´on
La libe ´ıa TouCAN es ´a compues a po una ´unica clase con las p opiedades y
m´e odos de los dis in os nodos en un ´unico a chi o. Es o no impide a un nodo
Escla o inicia una comuniciaci´on con o os disposi i os, cuando po de inici´on los
nodos Escla os son disposi i os pasi os que no pueden comenza una comunicaci´on.
Po o o lado, a medida que aumen a la complejidad de la lib e ´ıa, con mejo as y
nue as uncionalidades, es a es a egia puede esul a di ´ıcil de man ene . Con la
inalidad de man ene la p emisia inicial de una lib e ´ıa amigable y ´acil de amplia
se decidi´o e ac o iza la lib e ´ıa aplicando el p incipio de esponsabilidad ´unica
SRP [19]. Donde, cada obje o debe ene una simple esponsabilidad, y que debe
es a con enida ´unicamen e en la clase.
Las dos im´agenes a con inuaci´on mues an una compa a i a en e los diag amas
de clases de TouCAN e isi´on 1.0 y 2.0
Figu a 9.13: Diag ama Clases, TouCAN 1.0
9.3.1.1. Desc ipci´on Clases
A con inuaci´on se desc iben las ca ac e ´ıs icas p incipales de cada una de las
clases de la lib e ´ıa TouCAN e isi´on 2.0.
CAN: Rep esen a un mensaje en la lib e ´ıa TouCAN. Ac ´ua como bu e de e-
cepci´on / ansmisi´on del MCP2515[8] al en ia o ecibi mensajes a a ´es
del bus CAN[4]
TouCANSPIManage : Encapsula odas las ope aciones espec´ı icas sob e el con-
olado MCP2515[8]. Es el esponsable, en ´ul ima ins ancia, en ansmi i /-
ecibi los mesajes a a ´es del bus CAN[4].
TouCANNodeBase: Clase abs ac a. Encapsula los m´e odos y p opiedades co-
munes a TouCANNode y TouCANSni e .
9.3. Re ac o izaci´on y Op imizaci´on 43
Figu a 9.14: Diag ama de clases, TouCAN 2.0
TouCANNode: Clase abs ac a. Encapsula odas las ope aciones comunes a los
dis in os nodos. En e sus esponsabilidades des aca la inicializaci´on del dis-
posi i o, la solici ud de un iden i icado y la espues a a una pe ici´on s´ınc o-
na/asinc ona.
TouCANSni e : Es a clase de i a de TouCANNode y a˜nade los m´e odos nece-
sa ios pa a ecopila odos los paque es de la ed y een ia los a un nodo
Supe iso Sni e a a ´es del pue o se ie.
TouCANSla e: Es a clase he eda de TouCANNode y ep esen a un disposi i o
Escla o. Con iene odas las ope aciones espec´ı icas del nodo.
TouCANMas e Base: Clase abas ac a que de i a de TouCANNode y con iene
las unciones comunes a los nodos: Maes o y Se ido .
TouCANMas e : Es a clase he eda de TouCANMas e Base y ep esen a un dis-
posi i o ipo Maes o. Con iene odas las ope aciones esec´ı icas del nodo.
TouCANSe e : Es a clase he eda de TouCANMas e Base y ep esen a un dis-
posi i o TipoSe e . Con iene odas las ope aciones espec´ı icas del nodo.
TouCANConnec ionTable: Es a clase es la esponsable de almacena la in o -
maci´on sob e las comunicaciones ac i as de un nodo ipo Maes o o Se ido
con el es o de disposi i os en la ed. El ama˜no m´aximo es es ablecido po
la cons an e: TOU CAN CONNECTION TABLE SIZE. La p ime a posici´on
del ec o de comunicaciones es ´a ese ado pa a a ende a las pe iciones de
o os nodos Maes os o del Se ido .
44 Cap´ı ulo 9. Desa ollo
9.3.2. Tabla de conexiones
La abla de conexi´on su ge con la inalidad de educi el uso de ecu sos
necesa ios pa a man ene la lis a de disposi i os y limi a el n´ume o de conexiones
simul ´aneas. Hay que eco da , que en la p ime a e si´on de TouCAN, el p og ama
de usua io es el esponsable de decla a y con igu a el ec o de nodos es ´a ica-
men e. En es a e isi´on la ope aci´on ecae sob e el p opio amewo k. Es e ´ul imo
pun o es ´a di ec amen e elacionado con la op imizaci´on de los m´e odos de la API
esponsables de en ia / ecibi mensajes. La imagen 9.18 e lejan los cambios que
es a mejo a implica en un p og ama de usua io.
An es de en ia una ama s´ınc ona o as´ınc ona es necesa io llama al m´e odo,
ge De iceIDByName(...), pa a ob ene el ID del disposi i o con el que se desea es-
ablece una comunicaci´on. Po o o lado, an es de en ia un paque e, el amewo k
e i ica la exis encia de una en ada lib e en la abla de comunicaci´on pa a ealiza
el en ´ıo. Si no hay una disponible el mensaje no es en iado y se no i ica al usua io
con un mensaje de e o . El siguien e diag ama de lujo, imagen:9.15, desc ibe como
un nodo Maes o ob iene un nodo de conexi´on an es de en ia un mensaje.
Figu a 9.15: Diag ama de lujo - Ob ene nodo de conexi´on
9.3. Re ac o izaci´on y Op imizaci´on 45
Las en adas en la abla de conexiones son libe adas cuando un disposi i o causa
baja en el sis ema o al inaliza una comunicaci´on s´ınc ona o as´ıc ona.
9.3.2.1. Es uc u a de da os
TouCANDe ice es una es uc u a de da os que ep esen a un no-
do en la ed. La clase TouCANDe iceTable de ine un ec o de ama˜no,
TOU CAN DEVICE TABLE SIZE, donde almacena la in o maci´on co espondien e
a cada uno de los disposi i os de la ed.
ypede s uc {
unsigned in id ;
cha name [ 5 ] ;
by e s a e ;
by e c o n n e c i o n i d ;
by e echo ;
loa i m e a c i i y ;
}TouCANDe ice ;
unsigned in id: Con iene el ID del disposi i o.
cha name[5]: Almacena el nomb e del disposi i o.
by e s a e: Almacena uno de los siguien es alo es:
DEVICE STATUS UNINITIALIZED Valo po de ec o. Disposi i o
no inicializado.
DEVICE STATUS PENDING CONFIRMATION Asignaci´on
empo al de ID. Pendien e de con i maci´on po pa e del nodo.
DEVICE STATUS CONFIRMED Disposi i o inicializado co ec a-
men e.
by e connec ion id:Iden i icado de la abla de conexi´on asociado al dispo-
si i o. Es a p opiedad es con igu ada al inicia una comunicaci´on.
by e echo: P opiedad u ilizada al ealiza la a ea de moni o izaci´on de dis-
posi i os en la ed.
0Valo po de ec o.
1Paqu e echo en iado.
2Recibida espues a a paque e echo.
loa ime ac i i y: Sello empo al del ´ul imo paque e ecibido.
52 Cap´ı ulo 9. Desa ollo
El m´e odo TouCANSe e ::checkNodesInNe wo k(), disponible ´unicamen e en
el nodo Se ido , ga an iza la ecupe aci´on de la abla de disposi i os despu´es de
un ese . El p oceso consis e en solici a el ID y nomb e de los disposi i os ac i os
en la ed y ac ualiza la abla de disposi i o con la in o maci´on de cada uno. Es
ecomendable in oca el m´e odo desde la uci´on se up del p og ama de usua io
pa a dispone de los da os ac ualizados al inicio del p og ama p incipal en el se ido .
El diag ama de secuencia de la igu a 9.25 co esponde a una pe ici´on de eco-
nocimien o de disposi i os ealizada po el nodo Se ido despu´es de un einicio.
Figu a 9.25: TouCAN 2.0 - Diag ama de secuencia - checkNodesInNe wo k
9.5.1.2. T amas
A con inuaci´on se desc iben las amas que in e ienen en el p oceso de e-
cupe aci´on de la abla de disposi i os de un nodo Se ido depu´es de un ese o
einicio.
BCDN: Paque e b oadcas , u ilizado ´unicamen e po el nodo Se e pa a
solici a el ID y nomb e de cada uno de los disposi i os de la ed.
RCDN: Respues a de los nodos Mas e y Sla e a una pe ici´on “Reques check
de ices ne wo k”.
9.5.1.3. Implemen aci´on
Como se comen ´o en el p´a a o an e io , el m´e odo esponsable de ac ualiza la
lis a de disposi i os es checkNodesInNe wo k. Es e m´e odo en ´ıa un paque e b oad-
cas , iden i icado po la mac o BCDN, a odos los disposi i os de la ed solici ando
el iden i icado y el nomb e de cada uno. La igu a 9.26 co esponde a una ama
BCDN.
Figu a 9.26: TouCAN 2.0 - T ama BCDN.
Todos los nodos en la ed deben esponde a un mensaje BCDN con el comando
RCDN con igu ando el campo da a con el nomb e del disposi i o. La imagen 9.27
9.5. Con ol en e a allos de comunicaci´on, einicio y ese 53
co esponde a una ama RCDN en iada po un nodo con iden i icado 17 y nomb e
LUZ01.
Figu a 9.27: TouCAN 2.0 - T ama RCDN.
El nodo Se ido ac ualiza la lis a de disposi i os con la in o maci´on ob enida
en los paque es RCDN. Du an e el p oceso de econocimien o odos los paque es
dis in os de RCDN son desca ados. El diag ama 9.28 desc ibe el p oceso comple o
de de ecci´on de equipos en la ed.
54 Cap´ı ulo 9. Desa ollo
Figu a 9.28: Diag ama de ac i idad. Ac ualizaci´on de la abla de disposi i o de un nodo
Se ido .
9.5. Con ol en e a allos de comunicaci´on, einicio y ese 55
9.5.2. Nodo Mas e - Ac ualiza lis a disposi i o
9.5.2.1. Desc ipci´on
Un nodo Maes o debe ene la abla de disposi i os sinc onizada con el nodo
Se ido en odo momen o. Sin emba go, exis en di e sos escena ios que pueden
ocasiona di e encias en e ambas ablas.
Rese : El einicio de un nodo Maes o libe a las en adas en la abla de
disposi i o.
Conexi´on Supe iso : La conexi´on de un Supe iso a un nodo Maes o
gene a el einicio de es e ´ul imo.
P´e dida de paque es: La p´e dida de un paque e de con i maci´on de asigna-
ci´on de ID, BCID.
Inicio: Cuando un nodo Maes o inicia con pos e io idad a o os disposi i os.
La e isi´on 2.0 de TouCAN inco po a un mecanismo que pe mi e a los nodos
Maes os solici a una copia de la abla de disposi i os a un Supe iso . Es a
ope aci´on se ealiza a a ´es del m´e odo TouCANMas e ::ge De iceLis y ga an iza
la sinc onizaci´on de la abla de disposi i os.
En la siguien e igu a 9.29 el nodo Maes o, MAS01, solici a la lis a de dis-
posi i os al nodo Se ido , despu´es de un ese en una ed compues a po cua o
disposi i os.
Figu a 9.29: TouCAN 2.0 - Diag ama de secuencia - Ac ualizaci´on lis a de disposi i os
56 Cap´ı ulo 9. Desa ollo
9.5.2.2. T amas
A con inuaci´on se de allan las amas que in e ienen en el p oceso de ac uali-
zaci´on de la abla de disposi i o de un nodo Mas e .
DLGT T ama u ilizada po un nodo Mas e pa a solici a la lis a comple a de
disposi i os al nodo Se e .
DLNU: De uel e el n´ume o de disposi i o en los dos p ime os by es del cam-
po de da os. En iado po el nodo Se e al Mas e que ealiz´o la pe ici´on:
“Reques de ices lis ”.
DLNA: Es e paque e es u ilizado po el nodo Se e pa a en ia al Mas e
la lis a de disposi i os. En ´ıa an os paque es como disposi i os con enga la
abla. El campo de da os con iene el ID y el nomb e del nodo.
9.5.2.3. Implemen aci´on
El p oceso de ac ualizaci´on o sinc onizaci´on consis e en solici a la lis a de
disposi i os al nodo Se ido a a ´es del comando DLGT. Es e en ıa en p ime
luga una ama con el n´ume o de disposi i os almacenados y a con inuacion
en ia an os paque es DLNA como en adas exis an en la abla de disposi i os. El
diag ama 9.34 desc ibe el p oceso de ac ualizaci´on al comple o.
A con inuaci´on se desc ibe el p oceso de sinc onizaci´on de la abla de disposi i os
en una ed compues a po cua o disposi i os:
1. SERVER: Nodo Se ido con iden i icado 0.
2. MAS01: Nodo Maes o con iden i icado 1.
3. LUZ01: Nodo com´un con iden i icado 2.
4. LUZ02: Nodo Escla o con iden i icado 3.
La imagen 9.30 co esponde a una pe ici´on DLNA del nodo MAS01. Despu´es de
solici a la lis a de disposi i o el nodo queda a la espe a de una espues a po pa e
del se ido . Du an e es e p oceso, cualquie paque e dis in o a DLNU oDLNA son
desca ados.
Figu a 9.30: TouCAN 2.0 - En io ama DLGT
El Se e ecibe la pe ici´on y en ´ıa un p ime paque e con el n´ume o de dis-
posi i os en la ed, comando DLNU. El n´ume o de disposi i os no con empla al
se ido y al maes o que ealiz´o la pe ici´on. Es e escena io es ´a compues o po 4
disposi i os. Sin emba go, el n´ume o de nodos en iados co esponde a 2.(LUZ01 y
LUZ02) Imagen 9.31
9.5. Con ol en e a allos de comunicaci´on, einicio y ese 57
Figu a 9.31: TouCAN 2.0 - En io ama DLNU
A con inuaci´on el Se ido en ia dos paque es DLNA co espondien e a los no-
dos: LUZ01 yLUZ02 que se ´an p ocesados po MAS01 pa a ac ualiza la lis a de
disposi i os. Im´agenes 9.32 y 9.33
Figu a 9.32: TouCAN 2.0 - En io ama DLNA
Figu a 9.33: TouCAN 2.0 - En io ama DLNA
58 Cap´ı ulo 9. Desa ollo
Figu a 9.34: Diag ama de ac i idad. Ac ualizaci´on de la lis a de disposi i os de un nodo
Mas e .
9.5. Con ol en e a allos de comunicaci´on, einicio y ese 59
9.5.3. Nodo Se e - Ve i ica es ado disposi i os (ECHO)
9.5.3.1. Desc ipci´on
La e si´on inicial de la lib e ´ıa ca ece de un mecanismo que pe mi a e i ica el
es ado de los nodos de la ed con cie a pe iodicidad. Es a si uaci´on puede a ec a
de o ma nega i a al endimien o del sis ema cuando un nodo causa baja y o os
con inuan en iandole paque es. La e isi´on TouCAN 2.0 inco po a un mecanismo,
denominado ECHO, que e i ica el es ado de los nodos con cie a pe iodicidad pa a
de e mina cuales con inuan ac i os y cuales no. Los nodos que han causado baja
son no i icados a los Maes os pa a que ac ualicen sus abla de disposi i os.
La siguien e imagen 9.35 desc ibe la secuencia de amas du an e el p oceso de
ie i icaci´on de es ado de disposi i os, en una ed con o mada po cua o disposi i-
os: un nodo se ido , dos maes os MAS01 y LUZ01 y un nodo escla o, ESLAVE.
Donde el nodo maes o, LUZ01, ha dejado de es a ope a i o.
Figu a 9.35: TouCAN 2.0 - Diag ama de secuencia comando ECHO
60 Cap´ı ulo 9. Desa ollo
9.5.3.2. T amas
En es a secci´on se de allan las amas que in e ienen en el p oceso de e i ica-
ci´on de disposi i os en la ed, ECHO.
ECSE: T ama en iada po el nodo Se ido pa a e i ica si alg´un disposi i o
a causado baja en el sis ema. El comando es en iado a odos los nodos con
los cuales no ha man enido una comunicaci´on en cie o in e alo de iempo.
REEC: Respues a emi ida po los nodos Maes os y Escla os a una pe ici´on
ECSE.
ECRD: Paque e b oadcas u ilizado pa a in o ma que un disposi i o ha cau-
sado baja en la ed. En iado po el nodo Se ido y p ocesado ´unicamen e po
los nodos Maes os. Los dos p ime os by es del campo de da os almacenan
el ID del nodo a elimina . Es e paque e pe mi e man ene ac ualizada la lis a
de disposi i os de odos los nodos Mas e de la ed.
9.5. Con ol en e a allos de comunicaci´on, einicio y ese 61
9.5.3.3. Implemen aci´on
La ca ac e ´ıs ica de e i icaci´on de disposi i o es exclusi a de los nodos Se i-
do es y consis e en en ia un paque e ECSE a cada uno de los nodos del sis ema
con una pe iodicidad es ablecida po la mac o ECHO TIME INTERVAL TO SEND
(5minu os). Despu´es de un iempo de espe a es ablecido po la mac o
ECHO TIME INTERVAL TO UPDATE (2minu os) el Se e comp ueba que
disposi i os han con es ado a la solici ud. Los disposi i os que no han espondido
se conside an que han causado baja en el sis ema y se no i ica a odos los nodos
Mas e de la ed a a ´es de la ama b oadcas ECRD. Es e comando almacena
en el campo de da os el ID del disposi i o que ha causado baja. El diag ama 9.40
desc ibe el p oceso comple o.
A con inuaci´on se desc ibe el uncionamien o del sis ema de e i icaci´on de
es ados de disposi i os en un sis ema compues o po un Se ido , dos Maes os y
un Escla o. Donde en el ins an e de iempo que el nodo Se ido inicia el comando
ECSE el disposi i o SLAVE no es ´a ope a i o.
SERVER: Nodo Se ido con iden i icado 0.
MAS01: Nodo Maes o con iden i icado 1.
SLAVE: Nodo Escla o con iden i icado 2.
MAS02: Nodo Maes o con iden i icado 3.
El Se ido inicia el p oceso de econocimien o en iando un paque e ECSE al no-
do SLAVE yMAC02. Disposi i os con los que no ha man enido una comunicaci´on
en los ´ul imos 5 minu os. Figu a 9.36 y 9.37
Figu a 9.36: TouCAN 2.0 - T ama ECSE
Figu a 9.37: TouCAN 2.0 - T ama ECSE
68 Cap´ı ulo 9. Desa ollo
Package F ameView: Conjun o de clases que ep esen an cada una de las
di e en es amas del p o ocolo. La p incipal esponsabilidad de es as clases
consis e en da el o ma o adecuado al campo DATA an es de almacena la
in o maci´on en disco.
9.6. TouCANSni e 69
9.6.3. TouCANSni e View
TouCANSni e View es una aplicaci´on web, compa ible con la mayo ´ıa de los
na egado es HTML5, que pe mi e isualiza las amas gene adas po el Supe -
iso Sni e en una in e az g ´a ica con una expe iencia de usua io simila a una
aplicaci´on de esc i o io. A con inuaci´on se desc iben las ecnologias u ilizadas en el
desa ollo de la aplicaci´on:
Sym ony PHP[21]: Es un amewo k dise˜nado pa a el desa ollo de aplica-
ciones web basado en el pa ´on Modelo Vis a Con olado MVC que sepa a
la l´ogica de negocio de una aplicaci´on de la in e az de usua io y el m´odulo
enca gado de ges iona los e en os.
Doc ine[6]: Es un mapeado de obje os- elacional (ORM)[16] esc i o en
PHP que p opo ciona una capa de pe sis encia pa a obje os PHP. Pe mi e
con e i da os en e el sis ema de ipos u ilizado en un lenguage de p og a-
maci´on o ien ado a obje os y el u ilizado en una base de da os elacional. Las
ablas de la base de da os pasan a se clases y los egis os obje os.
Angula JS[2]: Es un amewo k MVC[14] de Ja aSc ip opensou ce pa a el
desa ollo web en el lado clien e c eado po Google. Pe mi e c a aplicaciones
SPA, Single Page Applica ions. Aplicaci´on web que se ejecu a en una ´unica
p´agina, log ando una expe iencia de usua io m´as ce cana a una aplicaci´on de
esc i o io.
Boo S ap[3]: Es un amewo k de so wa e lib e, desa ollado po Twi e ,
pa a el dise˜no y desa ollo de aplicaciones web. P opo ciona un conjun o de
plan illas y elemen os de dise˜no basado en HTML.
Ma iaDB[13]: Sis ema de ges i´on de base de da os de i ado de MysSQL[15]
con licencia GPL.
La igu a 9.45 co esponde a una cap u a de pan alla de la aplicaci´on TouCANS-
ni e View. En ella podemos encon a dos zonas bien di e enciadas. En el la e al
izquie do se encun a el men´u de il os que pe mi e mos a /ocul a los egis os
seg´un el ipo de ama o disposi i o y en el ´a ea cen al se encuen an las a-
mas gene adas po el nodo Supe iso Sni e . En es e ejemplo, los egis os en las
posiciones es, cua o y cinco co esponden al ´a ico en e los nodos SERVER y
SLAVE du an e el p oceso de solici ud de ID de es e ´ul imo.
70 Cap´ı ulo 9. Desa ollo
Figu a 9.45: TouCAN 2.0 - Cap u a de pan alla TouCANSni e View
9.6. TouCANSni e 71
9.6.3.1. Es uc u a base de da os
La base de da os es ´a compues a po cua o ablas: impo ilelog, egis e , de ice
y ame. Almacenan los egis os gene ados po Supe iso Sni e e in o maci´on sob e
las amas del p o ocolo TouCAN 2.0 y los dis in os disposi i os que con o man la
ed. La igu a 9.46 mues a al diag ama En idad Relaci´on de la base de da os. A
con inuaci´on se desc ibe cada una de las ablas
impo ilelog: Es a abla almacena in o maci´on sob e cada una de las impo -
aciones.
egis e : Almacena las amas gene adas po Supe iso Sni e .
de ice: Almacena in o maci´on sob e los disposi i os que con o man la ed.
Los da os se ob ienen del campo DATA de la ama BCID.
ame: Con iene in o maci´on sob e cada una de las amas TouCAN 2.0.
Figu a 9.46: TouCAN 2.0 - Diag ama En idad Relaci´on TouCANSni e View
72 Cap´ı ulo 9. Desa ollo
9.6.3.2. Diag ama de clases
La igu a 9.47 desc ibe las clases p incipales de la aplicaci´on TouCANSni e View.
Figu a 9.47: TouCAN 2.0 - Diag ama de clases - TouCANSni e View
Package En i y: Cada una de es as clases co esponde con una abla en la
base de da os y es u ilizada po la lib e ´ıa Doc ine[6] pa a inse a , ac ualiza ,
elimina o consul a un egis o.
Package Reposi o y: Conjun o de clases que acili an las consul as de egis-
os en la base de da os.
Package Con olle : Los pun os de en ada o URL de acceso a la aplicaci´on
son de inidos en es as clases.
Package Impo : Conjun o de clases esponsable de impo a el iche o de
amas gene ado po el Supe iso Sni e .
Package Fac o y: Conjun o de clases que acili a la c eaci´on de obje os.
Cap´ı ulo 10
P uebas
En es e cap´ı ulo se desc iben di e en es escena ios donde se ponen a p ueba
las mejo as in oducidas en es e TFG y se e i ican que los cambios ealizados no
a ec an a las ca ac e ´ıs icas ya exis en es. Todos los escena ios es ´an compues os
po una ed de cua o disposi i os: Se ido , Maes o, Escla o y NodeSni e . (Ve
imagen: 10.1).
En la e i icaci´on de cada escena io se u iliza ´a la he amien a TouCANSni e -
View desc i a en el cap´ı ulo 9 Desa ollo. Cada cap u a de la aplicaci´on TouCANS-
ni e View mos a ´a los egis os il ados po disposi i os y/o amas pa a e i ica
cada una de las dis in as uncionalidades de o ma independien e.
Figu a 10.1: TouCAN 2.0 - Escena io Tes - Sis ema cua o disposi i os
73
74 Cap´ı ulo 10. P uebas
10.1. Escena io 1 - Asignaci´on Din´amica ID
10.1.1. Desc ipci´on
Es e escena io iene po inalidad e i ica la asignaci´on din´amica de ID en una
ed compues a po es nodos de ipo: Se e , Mas e y Sla e. Es impo an e des aca
el o den en el que debe inicia cada disposi i o pa a e i ica las dis in as si uaciones
que se p oducen du an e el p oceso. A con inuaci´on se desc ibe el o den en el que
se inicia ´a los nodos y la unci´on del p og ama p incipal.
Se e : A iende las pe iciones de solici ud de ID. Y es ablece dos comunica-
ciones con cada uno de los nodos, una s´ınc ona y o a as´ınc ona.
Mas e : Realiza una solici ud de ID y a iende a pe iciones s´ınc oncas y
as´ınc onas del nodo Se e .
Sla e: Realiza una solici ud de ID y a iende a pe iciones s´ınc oncas y as´ınc o-
nas del nodo Se e .
10.1.2. Resul ados
10.1.2.1. Asignaci´on Din´amica ID
La siguien e imagen 10.2 mues a el ´a ico co espondien e a la de solici ud de
ID de los nodos MAS01 y SLAVE. En p ime luga , el Se ido a iende la pe ici´on
del nodo maes o, asign´andole el iden i icado 1. Ins an es m´as a de, asigna el ID 2
al nodo SLAVE. La columna, DATA, con iene la in o maci´on en iada po cada nodo
en el campo DATA en las dis in as amas. Po ejemplo, los es ´ul imos egis os
co esponden a la solici ud del nodo SLAVE.
1. En la solici ud de ID, el nodo almacena el nomb e del disposi i o en el campo
DATA. [SLAVE]
2. En la espues a, el Se ido almacena el nomb e del disposi i o y el iden i i-
cado asignado. [SLAVE 2]
3. El e ce paque e co esponde a un paque e b oadcas de con i maci´on de ID.
El campo da a con iene el nomb e del disposi i o [SLAVE]
Figu a 10.2: TouCAN 2.0 - TouCANSni e View - Asignaci´on din´amica ID
10.1. Escena io 1 - Asignaci´on Din´amica ID 75
10.1.2.2. Pe ici´on S´ınc ona y As´ınc ona
La igu a 10.3 desc ibe el ´a ico gene ado en las pe iciones s´ınc onas y as´ınc o-
nas en e el nodo Se ido y el es o de disposi i os. Los dos p ime os egis os
co esponden al incio de una pe ici´on s´ınc ona y as´ınc ona espec i amen e en e
los nodos Se e y MAS01. En la imagen se ap ecia las dis in as amas de una
pe ici´on as´ınc ona y el o den de cada una de ellas. Po ejemplo, despu´es del inico o
inalizaci´on de una pe ici´on as´ınc ona siemp e le sigue una ama de econocimien o
ACKN. (l´ıneas 4 y 12)
Figu a 10.3: TouCAN 2.0 - TouCANSni e View - Pe ici´on S´ınc ona y As´ınc ona
76 Cap´ı ulo 10. P uebas
10.2. Escena io 2 - Reinicio nodo Se ido
10.2.1. Desc ipci´on
Una de las nue as ca ac e ´ıs icas inco po adas a la lib e ´ıa consis e en ecupe a
la abla de disposi i o despu´es de un ese . Es e escena io ue za el einicio de un
Se e y la e i icaci´on de la abla de disposi i o despu´es de einicia el disposi i o.
A con inuaci´on se desc ibe el p og ama p incipal de cada uno de los nodos.
Se ido : A iende las pe iciones de solici ud de ID. No ealiza pe iciones
s´ınc onas o as´ınc onas.
Maes o: Realiza una solici ud de ID.
Escla o: Realiza una solici ud de ID.
10.2.2. Resul ados
La siguien e igu a 10.4 mues a el in e cambio de mensajes en e el Se ido y
el es o de nodos en la ed con el obje i o de ecupe a las en adas de la abla de
disposi i os an es del einicio. El se ido en ´ıa dos paque es de econocimien o de
disposi i os, BCDN, con un in e alo de iempo en e cada uno. En la cap u a se
ap ecia como los nodos SLAVE y MAS01 esponden en iando la ama RCDN.
Figu a 10.4: TouCAN 2.0 - TouCANSni e View - Reinicio nodo Se ido
10.3. Escena io 3 - Mas e ac ualiza Tabla Disposi i os 77
10.3. Escena io 3 - Mas e ac ualiza Tabla Dispo-
si i os
10.3.1. Desc ipci´on
Los nodos Mas e ac ualizan la abla de disposi i o a a ´es de la ama BCID
que eciben de los p ocesos de con i maci´on de ID que se gene an en la ed.
Es e mecanismo no asegu a la ac ualizaci´on de la abla en odo momen o. La
p´e dida de un paque e, la sob eca ca del mic ocon olado o simplemen e inicia
con pos e io idad a o os nodos puede causa que la abla de disposi i o quede
obsole a. Es a e isi´on p opo ciona al nodo Mas e un mecanismo que le pe mi e
ac ualiza la lis a de nodos con la del Se e y man ene se ac ualizado en odo
momen o.
En es e escena io amos a o za que la abla de disposi i o del nodo Mas e
es ´e obsole a simplemen e iniciando el disposi i o con pos e io idad al Sla e. A
con inuaci´on se desc ibe las uncines del p og ama p incipal y el o den de inicio de
cada uno de los nodos.
Se e : A iende las pe iciones de solici ud de ID. No ealiza pe iciones s´ınc o-
nas o as´ınc onas.
Sla e: Realiza una solici ud de ID.
Mas e : Realiza una solici ud de ID.
84 BIBLIOGRAF´
IA
[13] Ma iaDB. [h ps://ma iadb.o g/].
[14] Model-View-Con olle Pa e n, a ´ıculo en Wikipedia.
[h p://en.wikipedia.o g/wiki/Model%E2%80%93 iew%E2%80%93con olle ].
[15] MySQL. [h p://www.mysql.com/].
[16] Objec Rela ional Mapping, ORM, a ´ıculo en Wikipedia.
[h p://en.wikipedia.o g/wiki/Objec - ela ional mapping].
[17] Open Sou ce, a ´ıculo en Wikipedia. [Online; accedida 02-Sep iemb e-
2012][h p://en.wikipedia.o g/wiki/Open sou ce].
[18] Pla a o ma A duino. [h p://a duino.cc].
[19] P incipio de Responsabilidad ´
Unica. SRP. A ´ıcu-
lo en Wikipedia. [Online; accedida 01-Ma zo-
2013][h p://en.wikipedia.o g/wiki/Single esponsibili y p inciple].
[20] P oceso Uni icado, a ´ıculo en Wikipedia. [Online; accedida 20-Ene o-
2013][h p://es.wikipedia.o g/wiki/P oceso Uni icado].
[21] Sym ony F amewo k. [h p://sym ony.com/].
[22] Jos´e An onio La eo Dom´ıngez. In eg aci´on de edes de mic ocon-
olado es dis ibuidos basados en bus CAN. Lado supe iso . 2012.
[h p://hdl.handle.ne /10553/10146].
[23] Ra´ul Milla P´e ez. P´agina o icial del p oyec o A CAN. [h p://www.a can.es/].
[24] John Wu Wu. In eg aci´on de edes de mic ocon olado es dis-
ibuidos basados en bus CAN. Lado mic ocon olado . 2012.
[h p://hdl.handle.ne /10553/9860].