scieee Open visual document viewer

TouCAN : mejora y ampliación de funcionalidades

Santana Sánchez, Aridany

Abstract

TouCAN es una librería creada en su primera versión (v1) como Trabajos de Fin de Grado en Ingeniería Informática por John Wu Wu y Jose Lareo Domínguez bajo la tutorización de los profesores Antonio C. Domínguez Brito y Jorge Cabrera Gámez. Define un protocolo de comunicación para la interconexión de una red de microcontroladores basados en la plataforma de prototipado electrónico Arduino. Trabaja sobre el protocolo de comunicación CAN Bus (Controller Area Network), ampliamente utilizado por la industria desde la década de los 80. TouCAN destaca por ser una librería ligera, potente y amigable. El objetivo principal de este Trabajo Final de Grado en Ingeniería Informática consiste en proporcionar robustez a la librería incorporando mejoras y nuevas funcionalidades. Entre las principales mejoras destacar el control frente a fallos de comunicación, reinicio o reset de los microcontroladores, así como la caída de los mismos. Otra característica incluida en esta revisión consiste en la asignación dinámica deidentificadores de dispositivos que conforman un sistema empotrado distribuido. Permitiendo la posibilidad de “conexión en caliente” de nuevos nodos microcontroladores a la red de forma dinámica. A estos cambios, también se han añadido mejoras en la interfaz de la API que simplifica el uso y aprendizaje de la misma. Así como una nueva herramienta denominada TouCANSniffer que permite capturar y analizar todo el tráfico generado en la red. Las nuevas características y funcionalidades añadidas en TouCAN v2 proporcionan el potencial necesario para ser considerada seriamente como base de cualquier nuevo proyecto que integre una red distribuida de microcontroladores.

Full text

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].