<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://ca.wiki.guifi.net/w/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ca">
		<id>http://ca.wiki.guifi.net/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Albir</id>
		<title>Guifi.net - Wiki Català - Contribucions de l'usuari [ca]</title>
		<link rel="self" type="application/atom+xml" href="http://ca.wiki.guifi.net/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Albir"/>
		<link rel="alternate" type="text/html" href="http://ca.wiki.guifi.net/wiki/Especial:Contribucions/Albir"/>
		<updated>2026-07-29T05:32:08Z</updated>
		<subtitle>Contribucions de l'usuari</subtitle>
		<generator>MediaWiki 1.22.0</generator>

	<entry>
		<id>http://ca.wiki.guifi.net/wiki/Unsolclic</id>
		<title>Unsolclic</title>
		<link rel="alternate" type="text/html" href="http://ca.wiki.guifi.net/wiki/Unsolclic"/>
				<updated>2012-09-29T12:01:59Z</updated>
		
		<summary type="html">&lt;p&gt;Albir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introducció i Definició =&lt;br /&gt;
&lt;br /&gt;
L'UnsolClic és una eina per configurar els aparells que formen part de la xarxa [http://guifi.net Guifi.net] i un dels factors clau per al seu creixement i expansió. Pren la forma d'un fitxer de text que correspòn a una sequència d'ordres escrita en el llenguatge acceptat per el aparell que utilitzem per connectar a la xarxa lliure guifi.net. &lt;br /&gt;
&lt;br /&gt;
Aquest document vol descriure, des de la vessant del desenvolupament del mòdul [https://gitorious.org/guifi/drupal-guifi Drupal-Guifi], tots els processos involucrats en la  confecció  del UnsolClic&lt;br /&gt;
&lt;br /&gt;
== Fortaleses i Febleses ==&lt;br /&gt;
* Fortaleses  &lt;br /&gt;
** Aïlla a l'usuari de la configuració del trasto&lt;br /&gt;
** Actua com a backup de la configuració &lt;br /&gt;
** Fa visibles les configuraciós dels trastos per a tots els usuaris&lt;br /&gt;
** Dona consistencia a la xarxa &lt;br /&gt;
* Febleses&lt;br /&gt;
** Ha de generar codi en diferents llenguatges per a diferents dispositius, per tant s'ha de conèixer mímimament aquests llenguatges&lt;br /&gt;
** La incorporació de dispositius nous requereix aquesta codificació i porta temps. &lt;br /&gt;
** És genera a l'instant i no fa cache ni manté control de versions&lt;br /&gt;
&lt;br /&gt;
== Exemples == &lt;br /&gt;
* Nodes Client &lt;br /&gt;
** Linksys WRT54GL :[http://guifi.net/ca/guifi/device/315/view/unsolclic UnSolclic DD-Guifi] del node [http://guifi.net/ca/node/1589 Gurb Castell]&lt;br /&gt;
** Nanostation 2 : [http://guifilocal/ca/guifi/device/26702/view/unsolclic AirOS 2.0] del node [http://guifilocal/ca/guifi/device/26702 TRSANord80Rd1]&lt;br /&gt;
* Supernodes &lt;br /&gt;
** Linksys WRT54GL&lt;br /&gt;
** RouterBoard RB433 : [http://guifilocal/ca/guifi/device/30084/view/unsolclic RouterOS 4.0+] del node [http://guifilocal/ca/guifi/device/30084 TRSASocietatNord]&lt;br /&gt;
&lt;br /&gt;
= Procés de Generació = &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== La recepta dels tres passos per connectar  == &lt;br /&gt;
&lt;br /&gt;
Abans de generar el UnSolClic cal que completem a la web de guifi.net la recepta dels [https://guifi.net/ca/connectar_a_guifi tres passos per connectar], que ens proporcionarà tota la informació imprescindible, bàsicament&lt;br /&gt;
* 1. Crear un node, defineix el nom del node, la zona de la que hereta configuracions, etc...&lt;br /&gt;
&lt;br /&gt;
[[File:Addnode1.png]]&lt;br /&gt;
&lt;br /&gt;
* 2. Crear un trasto, defineix totes les propietats del nostre aparelli el firmware que executa, així com dades identificatives del nostre trasto.&lt;br /&gt;
 &lt;br /&gt;
[[File:Addradio1b.png]]&lt;br /&gt;
&lt;br /&gt;
* 3. Crear un enllaç, defineix quines seran les connexions del nostre node, l'adreça IP assignada i quins protocols d'enrutament s'utilitzaran&lt;br /&gt;
&lt;br /&gt;
[[File:Addradio3b.png]]&lt;br /&gt;
&lt;br /&gt;
== Fitxers involucrats (per ordre d'execució) == &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
├── guifi.module : Definició de rutes&lt;br /&gt;
├── guifi_unsolclic.inc.php : Execució Ruta UnSolclic, preparació de dependencies, generació Unsolclic&lt;br /&gt;
├── guifi_includes.inc.php : Funcions diverses de guifi.&lt;br /&gt;
├── guifi_node.inc.php : Càrrega de la informació del node&lt;br /&gt;
├── guifi_devices.inc.php : Càrrega de la informació del trasto&lt;br /&gt;
├── guifi_radios.inc.php : Càrrega de la informació de la radio&lt;br /&gt;
├── guifi_interfaces.inc.php : Càrrega de la informació de les interfaces&lt;br /&gt;
├── guifi_ipv4.inc.php : Càrrega de la informació de les adreces ip&lt;br /&gt;
├── guifi_links.inc.php : Càrrega de la informació dels enllaços&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Entitats involucrades ==&lt;br /&gt;
* Zona, la més específica de les diferents zones de la xarxa guifi.net on volem connectar, és a dir, que no tingui altres subzones&lt;br /&gt;
* Node, la ubicació concreta des d'on volem connectar. &lt;br /&gt;
** Trasto (device), l'aparell que utilitzarem per realitzar la connexió ( un node pot tenir més de un trasto i de diferents tipus) &lt;br /&gt;
** Radio , el dispositiu inalàmbric que utilitza el nostre trasto per establir una connexió física  ( per enllaçar es requereix almenys una radio) &lt;br /&gt;
** Interface , el nom mitjançant el qual interactuem amb la radio (n'hi pot haver vàries per cada radio) &lt;br /&gt;
** IPV4 , cadascuna de les adreces IP que reben les interfaces.&lt;br /&gt;
** Enllaços (links) , cadascuna de les connexions del nostre trasto amb altres trastos propers (poden ser wireless o per cable).&lt;br /&gt;
* Fabricant, la casa comercial que ven el trasto&lt;br /&gt;
* Model, la denominació pròpia del fabricant per a determinar el trasto&lt;br /&gt;
* Firmware, el programari intern que executa el trasto per realitzar totes les seves funcions (pot ser propietat del Fabricant, de tercers o de Programari Lliure) &lt;br /&gt;
&lt;br /&gt;
== Esquema de la Base de Dades ==&lt;br /&gt;
&lt;br /&gt;
En la següent imatge es pot veure l'esquema de les taules de les entitats involucreades en la generació del fitxer UnSolClic:&lt;br /&gt;
&lt;br /&gt;
[[File:TaulesUnSolclic2.png]]&lt;br /&gt;
&lt;br /&gt;
== Families de Casos actuals ==&lt;br /&gt;
Les configuracions UnSolclic existents es basen en les següents famílies de firmwares : &lt;br /&gt;
* Kamikaze&lt;br /&gt;
* AirOs&lt;br /&gt;
* GuifiStation&lt;br /&gt;
* Mikrotik&lt;br /&gt;
* WRT-SveaSoft&lt;br /&gt;
&lt;br /&gt;
TODO : Faltaria afegir altres firmwares com els de QMP, etc... &lt;br /&gt;
&lt;br /&gt;
Actualment, tot el codi implicat dels unsolclics  es troba dins de la carpeta [https://gitorious.org/guifi/drupal-guifi/trees/master/firmware firmware], on tenim un fitxer per cadascuna de les families esmentades. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
├── firmware&lt;br /&gt;
│   ├── [https://gitorious.org/guifi/drupal-guifi/blobs/master/firmware/airos.inc.php airos.inc.php&lt;br /&gt;
│   ├── firmware-todo.inc.php&lt;br /&gt;
│   ├── guifistationos.inc.php&lt;br /&gt;
│   ├── kamikaze&lt;br /&gt;
│   │   ├── ar71xx&lt;br /&gt;
│   │   │   └── kamikaze_ap.inc.php&lt;br /&gt;
│   │   ├── atheros&lt;br /&gt;
│   │   │   ├── kamikaze_ad-hoc.inc.php&lt;br /&gt;
│   │   │   ├── kamikaze_ap.inc.php&lt;br /&gt;
│   │   │   └── kamikaze_client.inc.php&lt;br /&gt;
│   │   ├── broadcom&lt;br /&gt;
│   │   │   ├── kamikaze_ad-hoc.inc.php&lt;br /&gt;
│   │   │   ├── kamikaze_ap.inc.php&lt;br /&gt;
│   │   │   └── kamikaze_client.inc.php&lt;br /&gt;
│   │   └── ixp4xx&lt;br /&gt;
│   │       └── kamikaze_ap.inc.php&lt;br /&gt;
│   ├── kamikaze.inc.php&lt;br /&gt;
│   ├── mikrotik-routeros.inc.php&lt;br /&gt;
│   └── wrt-sveasoft-dd.inc.php&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Procés Original Detallat ==&lt;br /&gt;
* Es crida la URL de generació del UnSolclic. &lt;br /&gt;
* Es carrega la ruta definida a guifi.module&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  $items['guifi/device/%guifi_device/view/unsolclic'] = array(&lt;br /&gt;
    'title' =&amp;gt; 'unsolclic',&lt;br /&gt;
    'page callback' =&amp;gt; 'guifi_unsolclic',&lt;br /&gt;
    'page arguments' =&amp;gt; array(2),&lt;br /&gt;
    'access callback' =&amp;gt; 'user_access',&lt;br /&gt;
    'access arguments' =&amp;gt; array('access content'),&lt;br /&gt;
    'type' =&amp;gt; MENU_LOCAL_TASK&lt;br /&gt;
  );&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* S'executa la funció guifi_unsolclic() del fitxer guifi_unsolclic.inc.php  que rep tota la informació del device del que volem l'unsolclic&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function guifi_unsolclic($dev, $format = 'html') {&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Es comprova que el Device tingui assignat un firmware &lt;br /&gt;
* Es carreguen els fitxers de la familia de firmwares corresponent&lt;br /&gt;
* Es comprova el firmware del trasto per cridar la funció del fitxer per aquella família.&lt;br /&gt;
* Es mostra per pantalla el resultat de tot el procés. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Procés Nou Detallat ==&lt;br /&gt;
&lt;br /&gt;
Continua a partir del pas tres del Procés Original &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Afegir suport per a nous aparells = &lt;br /&gt;
&lt;br /&gt;
== Idea general ==&lt;br /&gt;
&lt;br /&gt;
L'objectiu és millorar el procés d'incorporació de nous dispositius a l'aplicació actual. Mitjançant una nova gestió web i un sistema de plantilles estándard, els usuaris avançats podràn crear els configuradors 'UnSolClic' per als nous dispositius del mercat i mantenir els existents amb més facilitat i eficiència.&lt;br /&gt;
&lt;br /&gt;
== Diagrama de fluxe del procés ==&lt;br /&gt;
&lt;br /&gt;
En el següent diagrama, partint de la situació inicial que veiem a la part superior esquerra, es mostra el procés a seguir per poder generar l'UnSolclic per a un aparell nou &lt;br /&gt;
&lt;br /&gt;
[[File:Diagrama fluxe2.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Fabricants ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Llistat&lt;br /&gt;
[[File:Manufacturer1.png]]&lt;br /&gt;
&lt;br /&gt;
* Formulari&lt;br /&gt;
[[File:Manufacturer2.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Models  ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:models1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:models2c.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Paràmetres ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:Params1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:Params2c.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Creació de Firmwares ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:firmware1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:firmware2b.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Plantilles UnsolClic ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:unsolclic1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:unsolclic2b.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Motor de plantilles Twig ===&lt;br /&gt;
&lt;br /&gt;
En la majoria de les webs actuals trobem que, per facilitar el manteniment i l'optimització de codi, es busca la manera de separar la presentació del contingut, el patró de disseny del [http://es.wikipedia.org/wiki/ModeloVistaControlador Model-Vista-Controlador] és el més utilitzat en la majoria de frameworks actuals. Així per una banda tenim les nostres dades i per l'altre un fitxer plantilla de com volem mostrar-les. &lt;br /&gt;
&lt;br /&gt;
Per implementar la capa de presentació és molt útil recórrer a un motor de plantilles estàndard que ens faciliti la feina. En el nostre sistema utilitzarem [http://twig.sensiolabs.org/ Twig] per la seva potència i simplicitat.Les seves característiques principals són les següents:&lt;br /&gt;
* Orígen : Symfony 2 Framework - Llicència : BSD&lt;br /&gt;
* Substitució de variables, filtres de text i crida de funcions natives.&lt;br /&gt;
* Estructures de control de flux&lt;br /&gt;
* Inclusió de fitxers i catxé per augment de rendiment&lt;br /&gt;
* Herència de plantilles&lt;br /&gt;
* Extensions, plugins i sandbox&lt;br /&gt;
&lt;br /&gt;
=== Sintaxi de Twig ===&lt;br /&gt;
&lt;br /&gt;
La sintaxi de Twig s'ha pensat per ser fàcil de fer servir i ràpida. Bàsicament, una plantilla és un fitxer de text en el que hi trobem variables o expressions i etiquetes que en controlen la lògica. &lt;br /&gt;
&lt;br /&gt;
Per mostrar el contingut d'una variable o expressió utilitzem la següent sintaxi : &lt;br /&gt;
{{ variable }} &lt;br /&gt;
&lt;br /&gt;
Per utilitzar etiquetes de control, utilitzarem &lt;br /&gt;
{% set buffer = 'un string amb quelcom' %} &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En el següent exemple de plantilla podem veure diferents exemples de la sintaxi de Twig&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{# hello comment! #}&lt;br /&gt;
{{ foo.bar }} {% set foo = 'foo' %}&lt;br /&gt;
{{ name|striptags|title }}&lt;br /&gt;
{% if users|length &amp;gt; 0 %}&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
        {% for user in users %}&lt;br /&gt;
            &amp;lt;li&amp;gt;{{ user.username|e }}&amp;lt;/li&amp;gt;&lt;br /&gt;
        {% endfor %}&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
{% endif %}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
A la documentació oficial de Twig podem veure [http://twig.sensiolabs.org/doc/templates.html més casos]&lt;br /&gt;
&lt;br /&gt;
=== Utilització de Twig ===&lt;br /&gt;
&lt;br /&gt;
Des de la banda del codi, per utilitzar Twig cal incloure la llibreria, carregar l'objecte i definir mínimament el seu comportament. A la [http://twig.sensiolabs.org/doc/api.html documentació oficial] hi podem trobar el següent fragment de codi :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
require_once '/path/to/lib/Twig/Autoloader.php';&lt;br /&gt;
Twig_Autoloader::register();&lt;br /&gt;
&lt;br /&gt;
$loader = new Twig_Loader_Filesystem('/path/to/templates');&lt;br /&gt;
$twig = new Twig_Environment($loader, array(&lt;br /&gt;
    'cache' =&amp;gt; '/path/to/compilation_cache',&lt;br /&gt;
));&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per carregar una plantilla utilitzem el següent fragment: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$template = $twig-&amp;gt;loadTemplate('index.html');&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i finalment per establir els valors que prendran les variables a la nostra plantilla  i visualitzar-la, el següent codi : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo $template-&amp;gt;render(array('the' =&amp;gt; 'variables', 'go' =&amp;gt; 'here'));&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Convencions de Guifi.net disponibles a les plantilles ===&lt;br /&gt;
&lt;br /&gt;
Com podem extreure de les entitats de guifi.net la informació necessària per fer una plantilla UnSolClic? &lt;br /&gt;
&lt;br /&gt;
Abans de la confecció de l'UnSolclic s'inicialitzen unes variables que contenen tota la informació de les entitats necessàries per tal que la poguem referenciar a les nostres plantilles.  Aquesta informació arriba estructurada de diferents formes i hi podem accedir de dos formes: &lt;br /&gt;
&lt;br /&gt;
* Amb una convenció de noms&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
* Jeràrquicament &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Edició de plantilles UnSolclic ===&lt;br /&gt;
=== Validació de plantilles UnSolclic ===&lt;br /&gt;
&lt;br /&gt;
= Plantilles UnSolclic  =&lt;br /&gt;
== Validades  ==&lt;br /&gt;
*  Mikrotik	- OmniTIK Uxx-5HnD- RouterOSv5.x&lt;br /&gt;
== Pendents de Validar  ==&lt;br /&gt;
* Ubiquiti	- NanoStation2 - AirOsv30&lt;br /&gt;
* Mikrotik -Routerboard 433	 - RouterOSv4.7+&lt;br /&gt;
* Linksys	- WRT54GL	- DD-guifi (MODE AP)&lt;br /&gt;
&lt;br /&gt;
== Combinacions de Model - Firmware == &lt;br /&gt;
&lt;br /&gt;
A la pràctica, com que passem a tenir una plantilla UnSolClic  per cada combinació de Model / Firmware,  necessitem conèixer el total de combinacions que trobem a dins de la xarxa guifi.net, per saber quantes plantilles hauriem de confeccionar. &lt;br /&gt;
&lt;br /&gt;
A continuació mostrem el llistat amb totes les combinacions existents a la BD real de guifi.net a data de 15/9/2012 &lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
! total&lt;br /&gt;
! name&lt;br /&gt;
! model&lt;br /&gt;
! nom&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3818&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation2&lt;br /&gt;
| AirOsv30&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2237&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation5&lt;br /&gt;
| AirOsv30&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2144&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM5 Rocket/Nano/Loco&lt;br /&gt;
| AirOsv52&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1785&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GL&lt;br /&gt;
| DD-guifi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1428&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation2&lt;br /&gt;
| Freifunk-OLSR&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1319&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation Loco5&lt;br /&gt;
| AirOsv30&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1247&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM5 Bullet/PwBrg/AirGrd/NanoBr&lt;br /&gt;
| AirOsv52&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1225&lt;br /&gt;
| Buffalo&lt;br /&gt;
| WHR-HP-G54, WHR-G54S&lt;br /&gt;
| DD-guifi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 969&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard SXT 5HnD&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 892&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation Loco2&lt;br /&gt;
| AirOsv30&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 664&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation Loco5&lt;br /&gt;
| AirOsv3.6+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 441&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM2 Rocket/Nano/Loco&lt;br /&gt;
| AirOsv52&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 410&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GL&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 362&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation5&lt;br /&gt;
| AirOsv3.6+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 361&lt;br /&gt;
| Other&lt;br /&gt;
| Other&lt;br /&gt;
| n/a&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 297&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard SXT 5HnD&lt;br /&gt;
| RouterOSv4.7+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 292&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 433&lt;br /&gt;
| RouterOSv4.0+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 291&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 133C&lt;br /&gt;
| RouterOSv2.9&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 266&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation2&lt;br /&gt;
| AirOsv3.6+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 243&lt;br /&gt;
| Buffalo&lt;br /&gt;
| WHR-HP-G54, WHR-G54S&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 242&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 433&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 230&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 600&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 186&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54Gv1-4&lt;br /&gt;
| Alchemy&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 181&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 750/G&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 177&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation5&lt;br /&gt;
| Freifunk-OLSR&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 175&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 433&lt;br /&gt;
| RouterOSv3.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 172&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 600&lt;br /&gt;
| RouterOSv3.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 169&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54Gv1-4&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 162&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM2 Bullet/PwBrg/AirGrd/NanoBr&lt;br /&gt;
| AirOsv52&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 160&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 433&lt;br /&gt;
| RouterOSv4.7+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 124&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation Loco2&lt;br /&gt;
| AirOsv3.6+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 119&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 600&lt;br /&gt;
| RouterOSv4.7+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 117&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 411&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 114&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 411&lt;br /&gt;
| RouterOSv3.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 112&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 411&lt;br /&gt;
| RouterOSv4.7+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 112&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 532&lt;br /&gt;
| RouterOSv2.9&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 89&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54Gv1-4&lt;br /&gt;
| DD-guifi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 79&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 750/G&lt;br /&gt;
| RouterOSv4.7+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 66&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation2&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 66&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Supertrasto guifiBUS guifi.net&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 59&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| Bullet2&lt;br /&gt;
| AirOsv30&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 53&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 532&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 46&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 800&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 43&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 133&lt;br /&gt;
| RouterOSv2.9&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 42&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 532&lt;br /&gt;
| RouterOSv4.7+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 39&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54Gv1-4&lt;br /&gt;
| n/a&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 39&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation Loco2&lt;br /&gt;
| Freifunk-OLSR&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 36&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 493/G&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 32&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| RouterStation&lt;br /&gt;
| gsffirm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 32&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 532&lt;br /&gt;
| RouterOSv3.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 31&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 800&lt;br /&gt;
| RouterOSv4.7+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 30&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation5&lt;br /&gt;
| AirOsv221&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 30&lt;br /&gt;
| Pcengines&lt;br /&gt;
| Alix2&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 29&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 133&lt;br /&gt;
| RouterOSv3.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 29&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GL&lt;br /&gt;
| whiterussian&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 27&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GSv4&lt;br /&gt;
| DD-guifi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 22&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Supertrasto guifiBUS guifi.net&lt;br /&gt;
| RouterOSv4.7+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 21&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GSv4&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 21&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| LiteStation2&lt;br /&gt;
| AirOsv30&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 21&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation2&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 20&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 133C&lt;br /&gt;
| RouterOSv3.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 20&lt;br /&gt;
| Pcengines&lt;br /&gt;
| Alix2&lt;br /&gt;
| gsffirm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 20&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| LiteStation5&lt;br /&gt;
| AirOsv30&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 19&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation2&lt;br /&gt;
| AirOsv221&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 19&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GL&lt;br /&gt;
| Freifunk-OLSR&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| Bullet2&lt;br /&gt;
| AirOsv3.6+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| OmniTIK Uxx-5HnD&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation5&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| RouterStation&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GSv1-2&lt;br /&gt;
| DD-guifi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation Loco2&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 333&lt;br /&gt;
| RouterOSv3.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| Asus&lt;br /&gt;
| Asus WL-500xx&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GL&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| Bullet5&lt;br /&gt;
| AirOsv30&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation Loco5&lt;br /&gt;
| AirOsv221&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| Meraki&lt;br /&gt;
| Meraki/Fonera&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 153&lt;br /&gt;
| RouterOSv2.9&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| LiteStation2&lt;br /&gt;
| Freifunk-OLSR&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54Gv1-4&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GL&lt;br /&gt;
| DD-WRTv24preSP2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 133&lt;br /&gt;
| RouterOSv4.7+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 133C&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Pcengines&lt;br /&gt;
| Alix3&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Other&lt;br /&gt;
| Other&lt;br /&gt;
| DD-guifi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 133&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| D-Link&lt;br /&gt;
| DIR-600 B1/B2&lt;br /&gt;
| DD-WRTv24preSP2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation Loco5&lt;br /&gt;
| AirOsv52&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| Bullet5&lt;br /&gt;
| AirOsv3.6+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM5 Rocket/Nano/Loco&lt;br /&gt;
| AirOsv3.6+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 112&lt;br /&gt;
| RouterOSv2.9&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 1100&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Setup Informatica&lt;br /&gt;
| GuifiStation2&lt;br /&gt;
| GuifiStationOS1.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GL&lt;br /&gt;
| Talisman&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Meraki&lt;br /&gt;
| Meraki/Fonera&lt;br /&gt;
| DD-WRTv24preSP2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Setup Informatica&lt;br /&gt;
| GuifiStation5&lt;br /&gt;
| GuifiStationOS1.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| RouterStationPro&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation Loco5&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 800&lt;br /&gt;
| RouterOSv4.0+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation Loco5&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation5&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Supertrasto guifiBUS guifi.net&lt;br /&gt;
| RouterOSv2.9&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GL&lt;br /&gt;
| n/a&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 2011&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| RouterStation&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| RouterStationPro&lt;br /&gt;
| gsffirm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Supertrasto guifiBUS guifi.net&lt;br /&gt;
| RouterOSv3.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54Gv1-4&lt;br /&gt;
| DD-WRTv24preSP2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 133C&lt;br /&gt;
| RouterOSv4.7+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Other&lt;br /&gt;
| Other&lt;br /&gt;
| AirOsv30&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation2&lt;br /&gt;
| AirOsv52&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 532&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation Loco5&lt;br /&gt;
| Freifunk-OLSR&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 493/G&lt;br /&gt;
| RouterOSv4.7+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation5&lt;br /&gt;
| gsffirm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation5&lt;br /&gt;
| AirOsv52&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation Loco2&lt;br /&gt;
| AirOsv221&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 333&lt;br /&gt;
| RouterOSv4.7+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 600&lt;br /&gt;
| RouterOSv2.9&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM5 Rocket/Nano/Loco&lt;br /&gt;
| AirOsv30&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 333&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Other&lt;br /&gt;
| Other&lt;br /&gt;
| Alchemy&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GSv4&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Asus&lt;br /&gt;
| Asus WL-500xx&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Gateworks&lt;br /&gt;
| Avila GW2348-4&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation Loco5&lt;br /&gt;
| gsffirm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54Gv1-4&lt;br /&gt;
| Talisman&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Asus&lt;br /&gt;
| Asus WL-500xx&lt;br /&gt;
| AirOsv52&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 750/G&lt;br /&gt;
| DD-guifi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 532&lt;br /&gt;
| RouterOSv4.0+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Buffalo&lt;br /&gt;
| WHR-HP-G54, WHR-G54S&lt;br /&gt;
| n/a&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GSv1-2&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 1100&lt;br /&gt;
| RouterOSv4.7+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| RouterStationPro&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Asus&lt;br /&gt;
| Asus WL-500xx&lt;br /&gt;
| DD-WRTv24preSP2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GSv1-2&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Supertrasto guifiBUS guifi.net&lt;br /&gt;
| RouterOSv4.0+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 153&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Other&lt;br /&gt;
| Other&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| Bullet2&lt;br /&gt;
| Freifunk-OLSR&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54Gv1-4&lt;br /&gt;
| Freifunk-OLSR&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54Gv1-4&lt;br /&gt;
| whiterussian&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Supertrasto guifiBUS guifi.net&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM5 Bullet/PwBrg/AirGrd/NanoBr&lt;br /&gt;
| AirOsv3.6+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Other&lt;br /&gt;
| Other&lt;br /&gt;
| DD-WRTv24preSP2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM2 Rocket/Nano/Loco&lt;br /&gt;
| AirOsv221&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Asus&lt;br /&gt;
| Asus WL-500xx&lt;br /&gt;
| AirOsv221&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Pcengines&lt;br /&gt;
| Alix1&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM2 Rocket/Nano/Loco&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 153&lt;br /&gt;
| RouterOSv3.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM5 Bullet/PwBrg/AirGrd/NanoBr&lt;br /&gt;
| AirOsv30&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 133C&lt;br /&gt;
| n/a&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation5&lt;br /&gt;
| RouterOSv4.0+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| LiteStation5&lt;br /&gt;
| Freifunk-OLSR&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 112&lt;br /&gt;
| RouterOSv4.7+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation2&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM5 Bullet/PwBrg/AirGrd/NanoBr&lt;br /&gt;
| Freifunk-OLSR&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| Bullet2&lt;br /&gt;
| AirOsv221&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| LiteStation5&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Tp-Link&lt;br /&gt;
| TL-WA7510N&lt;br /&gt;
| n/a&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 600&lt;br /&gt;
| RouterOSv4.0+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Meraki&lt;br /&gt;
| Meraki/Fonera&lt;br /&gt;
| gsffirm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GSv4&lt;br /&gt;
| DD-WRTv24preSP2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GL&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 750/G&lt;br /&gt;
| AirOsv30&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54Gv1-4&lt;br /&gt;
| Freifunk-BATMAN&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM2 Rocket/Nano/Loco&lt;br /&gt;
| DD-WRTv24preSP2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| Bullet2&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GSv1-2&lt;br /&gt;
| DD-WRTv24preSP2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 153&lt;br /&gt;
| RouterOSv4.7+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GSv1-2&lt;br /&gt;
| Alchemy&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Asus&lt;br /&gt;
| Asus WL-500xx&lt;br /&gt;
| AirOsv3.6+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 112&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM2 Bullet/PwBrg/AirGrd/NanoBr&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM5 Rocket/Nano/Loco&lt;br /&gt;
| RouterOSv2.9&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GSv1-2&lt;br /&gt;
| gsffirm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 153&lt;br /&gt;
| n/a&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Pcengines&lt;br /&gt;
| Alix3&lt;br /&gt;
| gsffirm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GL&lt;br /&gt;
| gsffirm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Buffalo&lt;br /&gt;
| WHR-HP-G54, WHR-G54S&lt;br /&gt;
| DD-WRTv24preSP2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM5 Bullet/PwBrg/AirGrd/NanoBr&lt;br /&gt;
| DD-WRTv24preSP2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| Bullet2&lt;br /&gt;
| DD-WRTv24preSP2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM5 Rocket/Nano/Loco&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| Bullet5&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM5 Rocket/Nano/Loco&lt;br /&gt;
| DD-WRTv24preSP2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Pcengines&lt;br /&gt;
| Alix2&lt;br /&gt;
| DD-WRTv24preSP2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation Loco2&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 133C&lt;br /&gt;
| AirOsv52&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation2&lt;br /&gt;
| gsffirm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GSv4&lt;br /&gt;
| Talisman&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54Gv1-4&lt;br /&gt;
| gsffirm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation2&lt;br /&gt;
| DD-WRTv24preSP2&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Total d'aparells per fabricant == &lt;br /&gt;
&lt;br /&gt;
Finalment com a curiositat un llistat del total de aparells agrupats per fabricant a data de 15/9/2012: &lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
! total&lt;br /&gt;
! name&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 15788&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4223&lt;br /&gt;
| Mikrotik&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2859&lt;br /&gt;
| Linksys&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1471&lt;br /&gt;
| Buffalo&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 378&lt;br /&gt;
| Other&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 61&lt;br /&gt;
| Pcengines&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 24&lt;br /&gt;
| Asus&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 18&lt;br /&gt;
| Meraki&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| Setup Informatica&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| D-Link&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Gateworks&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Tp-Link&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Albir</name></author>	</entry>

	<entry>
		<id>http://ca.wiki.guifi.net/wiki/Unsolclic</id>
		<title>Unsolclic</title>
		<link rel="alternate" type="text/html" href="http://ca.wiki.guifi.net/wiki/Unsolclic"/>
				<updated>2012-09-29T11:59:53Z</updated>
		
		<summary type="html">&lt;p&gt;Albir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introducció i Definició =&lt;br /&gt;
&lt;br /&gt;
L'UnsolClic és una eina per configurar els aparells que formen part de la xarxa [http://guifi.net Guifi.net] i un dels factors clau per al seu creixement i expansió. Pren la forma d'un fitxer de text que correspòn a una sequència d'ordres escrita en el llenguatge acceptat per el aparell que utilitzem per connectar a la xarxa lliure guifi.net. &lt;br /&gt;
&lt;br /&gt;
Aquest document vol descriure, des de la vessant del desenvolupament del mòdul [https://gitorious.org/guifi/drupal-guifi Drupal-Guifi], tots els processos involucrats en la  confecció  del UnsolClic&lt;br /&gt;
&lt;br /&gt;
== Fortaleses i Febleses ==&lt;br /&gt;
* Fortaleses  &lt;br /&gt;
** Aïlla a l'usuari de la configuració del trasto&lt;br /&gt;
** Actua com a backup de la configuració &lt;br /&gt;
** Fa visibles les configuraciós dels trastos per a tots els usuaris&lt;br /&gt;
** Dona consistencia a la xarxa &lt;br /&gt;
* Febleses&lt;br /&gt;
** Ha de generar codi en diferents llenguatges per a diferents dispositius, per tant s'ha de conèixer mímimament aquests llenguatges&lt;br /&gt;
** La incorporació de dispositius nous requereix aquesta codificació i porta temps. &lt;br /&gt;
** És genera a l'instant i no fa cache ni manté control de versions&lt;br /&gt;
&lt;br /&gt;
== Exemples == &lt;br /&gt;
* Nodes Client &lt;br /&gt;
** Linksys WRT54GL :[http://guifi.net/ca/guifi/device/315/view/unsolclic UnSolclic DD-Guifi] del node [http://guifi.net/ca/node/1589 Gurb Castell]&lt;br /&gt;
** Nanostation 2 : [http://guifilocal/ca/guifi/device/26702/view/unsolclic AirOS 2.0] del node [http://guifilocal/ca/guifi/device/26702 TRSANord80Rd1]&lt;br /&gt;
* Supernodes &lt;br /&gt;
** Linksys WRT54GL&lt;br /&gt;
** RouterBoard RB433 : [http://guifilocal/ca/guifi/device/30084/view/unsolclic RouterOS 4.0+] del node [http://guifilocal/ca/guifi/device/30084 TRSASocietatNord]&lt;br /&gt;
&lt;br /&gt;
= Procés de Generació = &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== La recepta dels tres passos per connectar  == &lt;br /&gt;
&lt;br /&gt;
Abans de generar el UnSolClic cal que completem a la web de guifi.net la recepta dels [https://guifi.net/ca/connectar_a_guifi tres passos per connectar], que ens proporcionarà tota la informació imprescindible, bàsicament&lt;br /&gt;
* 1. Crear un node, defineix el nom del node, la zona de la que hereta configuracions, etc...&lt;br /&gt;
&lt;br /&gt;
[[File:Addnode1.png]]&lt;br /&gt;
&lt;br /&gt;
* 2. Crear un trasto, defineix totes les propietats del nostre aparelli el firmware que executa, així com dades identificatives del nostre trasto.&lt;br /&gt;
 &lt;br /&gt;
[[File:Addradio1b.png]]&lt;br /&gt;
&lt;br /&gt;
* 3. Crear un enllaç, defineix quines seran les connexions del nostre node, l'adreça IP assignada i quins protocols d'enrutament s'utilitzaran&lt;br /&gt;
&lt;br /&gt;
[[File:Addradio3b.png]]&lt;br /&gt;
&lt;br /&gt;
== Fitxers involucrats (per ordre d'execució) == &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
├── guifi.module : Definició de rutes&lt;br /&gt;
├── guifi_unsolclic.inc.php : Execució Ruta UnSolclic, preparació de dependencies, generació Unsolclic&lt;br /&gt;
├── guifi_includes.inc.php : Funcions diverses de guifi.&lt;br /&gt;
├── guifi_node.inc.php : Càrrega de la informació del node&lt;br /&gt;
├── guifi_devices.inc.php : Càrrega de la informació del trasto&lt;br /&gt;
├── guifi_radios.inc.php : Càrrega de la informació de la radio&lt;br /&gt;
├── guifi_interfaces.inc.php : Càrrega de la informació de les interfaces&lt;br /&gt;
├── guifi_ipv4.inc.php : Càrrega de la informació de les adreces ip&lt;br /&gt;
├── guifi_links.inc.php : Càrrega de la informació dels enllaços&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Entitats involucrades ==&lt;br /&gt;
* Zona, la més específica de les diferents zones de la xarxa guifi.net on volem connectar, és a dir, que no tingui altres subzones&lt;br /&gt;
* Node, la ubicació concreta des d'on volem connectar. &lt;br /&gt;
** Trasto (device), l'aparell que utilitzarem per realitzar la connexió ( un node pot tenir més de un trasto i de diferents tipus) &lt;br /&gt;
** Radio , el dispositiu inalàmbric que utilitza el nostre trasto per establir una connexió física  ( per enllaçar es requereix almenys una radio) &lt;br /&gt;
** Interface , el nom mitjançant el qual interactuem amb la radio (n'hi pot haver vàries per cada radio) &lt;br /&gt;
** IPV4 , cadascuna de les adreces IP que reben les interfaces.&lt;br /&gt;
** Enllaços (links) , cadascuna de les connexions del nostre trasto amb altres trastos propers (poden ser wireless o per cable).&lt;br /&gt;
* Fabricant, la casa comercial que ven el trasto&lt;br /&gt;
* Model, la denominació pròpia del fabricant per a determinar el trasto&lt;br /&gt;
* Firmware, el programari intern que executa el trasto per realitzar totes les seves funcions (pot ser propietat del Fabricant, de tercers o de Programari Lliure) &lt;br /&gt;
&lt;br /&gt;
== Esquema de la Base de Dades ==&lt;br /&gt;
&lt;br /&gt;
En la següent imatge es pot veure l'esquema de les taules de les entitats involucreades en la generació del fitxer UnSolClic:&lt;br /&gt;
&lt;br /&gt;
[[File:TaulesUnSolclic2.png]]&lt;br /&gt;
&lt;br /&gt;
== Families de Casos actuals ==&lt;br /&gt;
Les configuracions UnSolclic existents es basen en les següents famílies de firmwares : &lt;br /&gt;
* Kamikaze&lt;br /&gt;
* AirOs&lt;br /&gt;
* GuifiStation&lt;br /&gt;
* Mikrotik&lt;br /&gt;
* WRT-SveaSoft&lt;br /&gt;
&lt;br /&gt;
TODO : Faltaria afegir altres firmwares com els de QMP, etc... &lt;br /&gt;
&lt;br /&gt;
Actualment, tot el codi implicat dels unsolclics  es troba dins de la carpeta [https://gitorious.org/guifi/drupal-guifi/trees/master/firmware firmware], on tenim un fitxer per cadascuna de les families esmentades. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
├── firmware&lt;br /&gt;
│   ├── [https://gitorious.org/guifi/drupal-guifi/blobs/master/firmware/airos.inc.php airos.inc.php&lt;br /&gt;
│   ├── firmware-todo.inc.php&lt;br /&gt;
│   ├── guifistationos.inc.php&lt;br /&gt;
│   ├── kamikaze&lt;br /&gt;
│   │   ├── ar71xx&lt;br /&gt;
│   │   │   └── kamikaze_ap.inc.php&lt;br /&gt;
│   │   ├── atheros&lt;br /&gt;
│   │   │   ├── kamikaze_ad-hoc.inc.php&lt;br /&gt;
│   │   │   ├── kamikaze_ap.inc.php&lt;br /&gt;
│   │   │   └── kamikaze_client.inc.php&lt;br /&gt;
│   │   ├── broadcom&lt;br /&gt;
│   │   │   ├── kamikaze_ad-hoc.inc.php&lt;br /&gt;
│   │   │   ├── kamikaze_ap.inc.php&lt;br /&gt;
│   │   │   └── kamikaze_client.inc.php&lt;br /&gt;
│   │   └── ixp4xx&lt;br /&gt;
│   │       └── kamikaze_ap.inc.php&lt;br /&gt;
│   ├── kamikaze.inc.php&lt;br /&gt;
│   ├── mikrotik-routeros.inc.php&lt;br /&gt;
│   └── wrt-sveasoft-dd.inc.php&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Procés Original Detallat ==&lt;br /&gt;
* Es crida la URL de generació del UnSolclic. &lt;br /&gt;
* Es carrega la ruta definida a guifi.module&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  $items['guifi/device/%guifi_device/view/unsolclic'] = array(&lt;br /&gt;
    'title' =&amp;gt; 'unsolclic',&lt;br /&gt;
    'page callback' =&amp;gt; 'guifi_unsolclic',&lt;br /&gt;
    'page arguments' =&amp;gt; array(2),&lt;br /&gt;
    'access callback' =&amp;gt; 'user_access',&lt;br /&gt;
    'access arguments' =&amp;gt; array('access content'),&lt;br /&gt;
    'type' =&amp;gt; MENU_LOCAL_TASK&lt;br /&gt;
  );&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* S'executa la funció guifi_unsolclic() del fitxer guifi_unsolclic.inc.php  que rep tota la informació del device del que volem l'unsolclic&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function guifi_unsolclic($dev, $format = 'html') {&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Es comprova que el Device tingui assignat un firmware &lt;br /&gt;
* Es carreguen els fitxers de la familia de firmwares corresponent&lt;br /&gt;
* Es comprova el firmware del trasto per cridar la funció del fitxer per aquella família.&lt;br /&gt;
* Es mostra per pantalla el resultat de tot el procés. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Procés Nou Detallat ==&lt;br /&gt;
&lt;br /&gt;
Continua a partir del pas tres del Procés Original &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Afegir suport per a nous aparells = &lt;br /&gt;
&lt;br /&gt;
== Idea general ==&lt;br /&gt;
&lt;br /&gt;
L'objectiu és millorar el procés d'incorporació de nous dispositius a l'aplicació actual. Mitjançant una nova gestió web i un sistema de plantilles estándard, els usuaris avançats podràn crear els configuradors 'UnSolClic' per als nous dispositius del mercat i mantenir els existents amb més facilitat i eficiència.&lt;br /&gt;
&lt;br /&gt;
== Diagrama de fluxe del procés ==&lt;br /&gt;
&lt;br /&gt;
En el següent diagrama, partint de la situació inicial que veiem a la part superior esquerra, es mostra el procés a seguir per poder generar l'UnSolclic per a un aparell nou &lt;br /&gt;
&lt;br /&gt;
[[File:Diagrama fluxe2.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Fabricants ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Llistat&lt;br /&gt;
[[File:Manufacturer1.png]]&lt;br /&gt;
&lt;br /&gt;
* Formulari&lt;br /&gt;
[[File:Manufacturer2.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Models  ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:models1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:models2c.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Paràmetres ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:Params1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:Params2c.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Creació de Firmwares ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:firmware1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:firmware2b.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Plantilles UnsolClic ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:unsolclic1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:unsolclic2b.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Motor de plantilles Twig ===&lt;br /&gt;
&lt;br /&gt;
En la majoria de les webs actuals trobem que, per facilitar el manteniment i l'optimització de codi, es busca la manera de separar la presentació del contingut, el patró de disseny del [http://es.wikipedia.org/wiki/ModeloVistaControlador Model-Vista-Controlador] és el més utilitzat en la majoria de frameworks actuals. Així per una banda tenim les nostres dades i per l'altre un fitxer plantilla de com volem mostrar-les. &lt;br /&gt;
&lt;br /&gt;
Per implementar la capa de presentació és molt útil recórrer a un motor de plantilles estàndard que ens faciliti la feina. En el nostre sistema utilitzarem [http://twig.sensiolabs.org/ Twig] per la seva potència i simplicitat.Les seves característiques principals són les següents:&lt;br /&gt;
* Orígen : Symfony 2 Framework - Llicència : BSD&lt;br /&gt;
* Substitució de variables, filtres de text i crida de funcions natives.&lt;br /&gt;
* Estructures de control de flux&lt;br /&gt;
* Inclusió de fitxers i catxé per augment de rendiment&lt;br /&gt;
* Herència de plantilles&lt;br /&gt;
* Extensions, plugins i sandbox&lt;br /&gt;
&lt;br /&gt;
=== Sintaxi de Twig ===&lt;br /&gt;
&lt;br /&gt;
La sintaxi de Twig s'ha pensat per ser fàcil de fer servir i ràpida. Bàsicament, una plantilla és un fitxer de text en el que hi trobem variables o expressions i etiquetes que en controlen la lògica. &lt;br /&gt;
&lt;br /&gt;
Per mostrar el contingut d'una variable o expressió utilitzem la següent sintaxi : &lt;br /&gt;
{{ variable }} &lt;br /&gt;
&lt;br /&gt;
Per utilitzar etiquetes de control, utilitzarem &lt;br /&gt;
{% set buffer = 'un string amb quelcom' %} &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En el següent exemple de plantilla podem veure diferents exemples de la sintaxi de Twig&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{# hello comment! #}&lt;br /&gt;
{{ foo.bar }} {% set foo = 'foo' %}&lt;br /&gt;
{{ name|striptags|title }}&lt;br /&gt;
{% if users|length &amp;gt; 0 %}&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
        {% for user in users %}&lt;br /&gt;
            &amp;lt;li&amp;gt;{{ user.username|e }}&amp;lt;/li&amp;gt;&lt;br /&gt;
        {% endfor %}&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
{% endif %}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
A la documentació oficial de Twig podem veure [http://twig.sensiolabs.org/doc/templates.html més casos]&lt;br /&gt;
&lt;br /&gt;
=== Utilització de Twig ===&lt;br /&gt;
&lt;br /&gt;
Des de la banda del codi, per utilitzar Twig cal incloure la llibreria, carregar l'objecte i definir mínimament el seu comportament. A la [http://twig.sensiolabs.org/doc/api.html documentació oficial] hi podem trobar el següent fragment de codi :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
require_once '/path/to/lib/Twig/Autoloader.php';&lt;br /&gt;
Twig_Autoloader::register();&lt;br /&gt;
&lt;br /&gt;
$loader = new Twig_Loader_Filesystem('/path/to/templates');&lt;br /&gt;
$twig = new Twig_Environment($loader, array(&lt;br /&gt;
    'cache' =&amp;gt; '/path/to/compilation_cache',&lt;br /&gt;
));&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per carregar una plantilla utilitzem el següent fragment: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$template = $twig-&amp;gt;loadTemplate('index.html');&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i finalment per establir els valors que prendran les variables a la nostra plantilla  i visualitzar-la, el següent codi : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo $template-&amp;gt;render(array('the' =&amp;gt; 'variables', 'go' =&amp;gt; 'here'));&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Convencions de Guifi.net disponibles a les plantilles ===&lt;br /&gt;
&lt;br /&gt;
Com podem extreure de les entitats de guifi.net la informació necessària per fer una plantilla UnSolClic? &lt;br /&gt;
&lt;br /&gt;
Abans de la confecció de l'UnSolclic s'inicialitzen unes variables que contenen tota la informació de les entitats necessàries per tal que la poguem referenciar a les nostres plantilles.  Aquesta informació arriba estructurada de diferents formes i hi podem accedir de dos formes: &lt;br /&gt;
&lt;br /&gt;
* Amb una convenció de noms&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
* Jeràrquicament &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Edició de plantilles UnSolclic ===&lt;br /&gt;
=== Validació de plantilles UnSolclic ===&lt;br /&gt;
&lt;br /&gt;
= Plantilles UnSolclic  =&lt;br /&gt;
== Validades  ==&lt;br /&gt;
*  Mikrotik	- OmniTIK Uxx-5HnD- RouterOSv5.x&lt;br /&gt;
== Pendents de Validar  ==&lt;br /&gt;
* Ubiquiti	- NanoStation2 - AirOsv30&lt;br /&gt;
* Mikrotik -Routerboard 433	 - RouterOSv4.7+&lt;br /&gt;
* Linksys	- WRT54GL	- DD-guifi (MODE AP)&lt;br /&gt;
&lt;br /&gt;
== Combinacions de Model - Firmware == &lt;br /&gt;
&lt;br /&gt;
A la pràctica, com que passem a tenir una plantilla UnSolClic  per cada combinació de Model / Firmware,  necessitem conèixer el total de combinacions que trobem a dins de la xarxa guifi.net, per saber quantes plantilles hauriem de confeccionar. &lt;br /&gt;
&lt;br /&gt;
A continuació mostrem el llistat amb totes les combinacions existents a la BD real de guifi.net a data de 15/9/2012 &lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
! total&lt;br /&gt;
! name&lt;br /&gt;
! model&lt;br /&gt;
! nom&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3818&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation2&lt;br /&gt;
| AirOsv30&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2237&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation5&lt;br /&gt;
| AirOsv30&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2144&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM5 Rocket/Nano/Loco&lt;br /&gt;
| AirOsv52&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1785&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GL&lt;br /&gt;
| DD-guifi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1428&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation2&lt;br /&gt;
| Freifunk-OLSR&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1319&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation Loco5&lt;br /&gt;
| AirOsv30&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1247&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM5 Bullet/PwBrg/AirGrd/NanoBr&lt;br /&gt;
| AirOsv52&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1225&lt;br /&gt;
| Buffalo&lt;br /&gt;
| WHR-HP-G54, WHR-G54S&lt;br /&gt;
| DD-guifi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 969&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard SXT 5HnD&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 892&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation Loco2&lt;br /&gt;
| AirOsv30&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 664&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation Loco5&lt;br /&gt;
| AirOsv3.6+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 441&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM2 Rocket/Nano/Loco&lt;br /&gt;
| AirOsv52&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 410&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GL&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 362&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation5&lt;br /&gt;
| AirOsv3.6+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 361&lt;br /&gt;
| Other&lt;br /&gt;
| Other&lt;br /&gt;
| n/a&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 297&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard SXT 5HnD&lt;br /&gt;
| RouterOSv4.7+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 292&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 433&lt;br /&gt;
| RouterOSv4.0+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 291&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 133C&lt;br /&gt;
| RouterOSv2.9&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 266&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation2&lt;br /&gt;
| AirOsv3.6+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 243&lt;br /&gt;
| Buffalo&lt;br /&gt;
| WHR-HP-G54, WHR-G54S&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 242&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 433&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 230&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 600&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 186&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54Gv1-4&lt;br /&gt;
| Alchemy&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 181&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 750/G&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 177&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation5&lt;br /&gt;
| Freifunk-OLSR&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 175&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 433&lt;br /&gt;
| RouterOSv3.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 172&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 600&lt;br /&gt;
| RouterOSv3.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 169&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54Gv1-4&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 162&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM2 Bullet/PwBrg/AirGrd/NanoBr&lt;br /&gt;
| AirOsv52&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 160&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 433&lt;br /&gt;
| RouterOSv4.7+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 124&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation Loco2&lt;br /&gt;
| AirOsv3.6+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 119&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 600&lt;br /&gt;
| RouterOSv4.7+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 117&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 411&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 114&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 411&lt;br /&gt;
| RouterOSv3.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 112&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 411&lt;br /&gt;
| RouterOSv4.7+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 112&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 532&lt;br /&gt;
| RouterOSv2.9&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 89&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54Gv1-4&lt;br /&gt;
| DD-guifi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 79&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 750/G&lt;br /&gt;
| RouterOSv4.7+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 66&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation2&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 66&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Supertrasto guifiBUS guifi.net&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 59&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| Bullet2&lt;br /&gt;
| AirOsv30&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 53&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 532&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 46&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 800&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 43&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 133&lt;br /&gt;
| RouterOSv2.9&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 42&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 532&lt;br /&gt;
| RouterOSv4.7+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 39&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54Gv1-4&lt;br /&gt;
| n/a&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 39&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation Loco2&lt;br /&gt;
| Freifunk-OLSR&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 36&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 493/G&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 32&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| RouterStation&lt;br /&gt;
| gsffirm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 32&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 532&lt;br /&gt;
| RouterOSv3.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 31&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 800&lt;br /&gt;
| RouterOSv4.7+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 30&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation5&lt;br /&gt;
| AirOsv221&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 30&lt;br /&gt;
| Pcengines&lt;br /&gt;
| Alix2&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 29&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 133&lt;br /&gt;
| RouterOSv3.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 29&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GL&lt;br /&gt;
| whiterussian&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 27&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GSv4&lt;br /&gt;
| DD-guifi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 22&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Supertrasto guifiBUS guifi.net&lt;br /&gt;
| RouterOSv4.7+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 21&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GSv4&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 21&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| LiteStation2&lt;br /&gt;
| AirOsv30&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 21&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation2&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 20&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 133C&lt;br /&gt;
| RouterOSv3.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 20&lt;br /&gt;
| Pcengines&lt;br /&gt;
| Alix2&lt;br /&gt;
| gsffirm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 20&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| LiteStation5&lt;br /&gt;
| AirOsv30&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 19&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation2&lt;br /&gt;
| AirOsv221&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 19&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GL&lt;br /&gt;
| Freifunk-OLSR&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| Bullet2&lt;br /&gt;
| AirOsv3.6+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| OmniTIK Uxx-5HnD&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation5&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| RouterStation&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GSv1-2&lt;br /&gt;
| DD-guifi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation Loco2&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 333&lt;br /&gt;
| RouterOSv3.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| Asus&lt;br /&gt;
| Asus WL-500xx&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GL&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| Bullet5&lt;br /&gt;
| AirOsv30&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation Loco5&lt;br /&gt;
| AirOsv221&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| Meraki&lt;br /&gt;
| Meraki/Fonera&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 153&lt;br /&gt;
| RouterOSv2.9&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| LiteStation2&lt;br /&gt;
| Freifunk-OLSR&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54Gv1-4&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GL&lt;br /&gt;
| DD-WRTv24preSP2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 133&lt;br /&gt;
| RouterOSv4.7+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 133C&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Pcengines&lt;br /&gt;
| Alix3&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Other&lt;br /&gt;
| Other&lt;br /&gt;
| DD-guifi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 133&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| D-Link&lt;br /&gt;
| DIR-600 B1/B2&lt;br /&gt;
| DD-WRTv24preSP2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation Loco5&lt;br /&gt;
| AirOsv52&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| Bullet5&lt;br /&gt;
| AirOsv3.6+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM5 Rocket/Nano/Loco&lt;br /&gt;
| AirOsv3.6+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 112&lt;br /&gt;
| RouterOSv2.9&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 1100&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Setup Informatica&lt;br /&gt;
| GuifiStation2&lt;br /&gt;
| GuifiStationOS1.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GL&lt;br /&gt;
| Talisman&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Meraki&lt;br /&gt;
| Meraki/Fonera&lt;br /&gt;
| DD-WRTv24preSP2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Setup Informatica&lt;br /&gt;
| GuifiStation5&lt;br /&gt;
| GuifiStationOS1.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| RouterStationPro&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation Loco5&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 800&lt;br /&gt;
| RouterOSv4.0+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation Loco5&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation5&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Supertrasto guifiBUS guifi.net&lt;br /&gt;
| RouterOSv2.9&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GL&lt;br /&gt;
| n/a&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 2011&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| RouterStation&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| RouterStationPro&lt;br /&gt;
| gsffirm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Supertrasto guifiBUS guifi.net&lt;br /&gt;
| RouterOSv3.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54Gv1-4&lt;br /&gt;
| DD-WRTv24preSP2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 133C&lt;br /&gt;
| RouterOSv4.7+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Other&lt;br /&gt;
| Other&lt;br /&gt;
| AirOsv30&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation2&lt;br /&gt;
| AirOsv52&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 532&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation Loco5&lt;br /&gt;
| Freifunk-OLSR&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 493/G&lt;br /&gt;
| RouterOSv4.7+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation5&lt;br /&gt;
| gsffirm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation5&lt;br /&gt;
| AirOsv52&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation Loco2&lt;br /&gt;
| AirOsv221&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 333&lt;br /&gt;
| RouterOSv4.7+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 600&lt;br /&gt;
| RouterOSv2.9&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM5 Rocket/Nano/Loco&lt;br /&gt;
| AirOsv30&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 333&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Other&lt;br /&gt;
| Other&lt;br /&gt;
| Alchemy&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GSv4&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Asus&lt;br /&gt;
| Asus WL-500xx&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Gateworks&lt;br /&gt;
| Avila GW2348-4&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation Loco5&lt;br /&gt;
| gsffirm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54Gv1-4&lt;br /&gt;
| Talisman&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Asus&lt;br /&gt;
| Asus WL-500xx&lt;br /&gt;
| AirOsv52&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 750/G&lt;br /&gt;
| DD-guifi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 532&lt;br /&gt;
| RouterOSv4.0+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Buffalo&lt;br /&gt;
| WHR-HP-G54, WHR-G54S&lt;br /&gt;
| n/a&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GSv1-2&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 1100&lt;br /&gt;
| RouterOSv4.7+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| RouterStationPro&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Asus&lt;br /&gt;
| Asus WL-500xx&lt;br /&gt;
| DD-WRTv24preSP2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GSv1-2&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Supertrasto guifiBUS guifi.net&lt;br /&gt;
| RouterOSv4.0+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 153&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Other&lt;br /&gt;
| Other&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| Bullet2&lt;br /&gt;
| Freifunk-OLSR&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54Gv1-4&lt;br /&gt;
| Freifunk-OLSR&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54Gv1-4&lt;br /&gt;
| whiterussian&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Supertrasto guifiBUS guifi.net&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM5 Bullet/PwBrg/AirGrd/NanoBr&lt;br /&gt;
| AirOsv3.6+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Other&lt;br /&gt;
| Other&lt;br /&gt;
| DD-WRTv24preSP2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM2 Rocket/Nano/Loco&lt;br /&gt;
| AirOsv221&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Asus&lt;br /&gt;
| Asus WL-500xx&lt;br /&gt;
| AirOsv221&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Pcengines&lt;br /&gt;
| Alix1&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM2 Rocket/Nano/Loco&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 153&lt;br /&gt;
| RouterOSv3.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM5 Bullet/PwBrg/AirGrd/NanoBr&lt;br /&gt;
| AirOsv30&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 133C&lt;br /&gt;
| n/a&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation5&lt;br /&gt;
| RouterOSv4.0+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| LiteStation5&lt;br /&gt;
| Freifunk-OLSR&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 112&lt;br /&gt;
| RouterOSv4.7+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation2&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM5 Bullet/PwBrg/AirGrd/NanoBr&lt;br /&gt;
| Freifunk-OLSR&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| Bullet2&lt;br /&gt;
| AirOsv221&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| LiteStation5&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Tp-Link&lt;br /&gt;
| TL-WA7510N&lt;br /&gt;
| n/a&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 600&lt;br /&gt;
| RouterOSv4.0+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Meraki&lt;br /&gt;
| Meraki/Fonera&lt;br /&gt;
| gsffirm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GSv4&lt;br /&gt;
| DD-WRTv24preSP2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GL&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 750/G&lt;br /&gt;
| AirOsv30&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54Gv1-4&lt;br /&gt;
| Freifunk-BATMAN&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM2 Rocket/Nano/Loco&lt;br /&gt;
| DD-WRTv24preSP2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| Bullet2&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GSv1-2&lt;br /&gt;
| DD-WRTv24preSP2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 153&lt;br /&gt;
| RouterOSv4.7+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GSv1-2&lt;br /&gt;
| Alchemy&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Asus&lt;br /&gt;
| Asus WL-500xx&lt;br /&gt;
| AirOsv3.6+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 112&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM2 Bullet/PwBrg/AirGrd/NanoBr&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM5 Rocket/Nano/Loco&lt;br /&gt;
| RouterOSv2.9&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GSv1-2&lt;br /&gt;
| gsffirm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 153&lt;br /&gt;
| n/a&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Pcengines&lt;br /&gt;
| Alix3&lt;br /&gt;
| gsffirm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GL&lt;br /&gt;
| gsffirm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Buffalo&lt;br /&gt;
| WHR-HP-G54, WHR-G54S&lt;br /&gt;
| DD-WRTv24preSP2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM5 Bullet/PwBrg/AirGrd/NanoBr&lt;br /&gt;
| DD-WRTv24preSP2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| Bullet2&lt;br /&gt;
| DD-WRTv24preSP2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM5 Rocket/Nano/Loco&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| Bullet5&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM5 Rocket/Nano/Loco&lt;br /&gt;
| DD-WRTv24preSP2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Pcengines&lt;br /&gt;
| Alix2&lt;br /&gt;
| DD-WRTv24preSP2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation Loco2&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 133C&lt;br /&gt;
| AirOsv52&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation2&lt;br /&gt;
| gsffirm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GSv4&lt;br /&gt;
| Talisman&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54Gv1-4&lt;br /&gt;
| gsffirm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation2&lt;br /&gt;
| DD-WRTv24preSP2&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Total d'aparells per fabricant == &lt;br /&gt;
&lt;br /&gt;
Finalment com a curiositat un llistat del total de aparells agrupats per fabricant a data de 15/9/2012: &lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
! total&lt;br /&gt;
! name&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 15788&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4223&lt;br /&gt;
| Mikrotik&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2859&lt;br /&gt;
| Linksys&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1471&lt;br /&gt;
| Buffalo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 378&lt;br /&gt;
| Other&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 61&lt;br /&gt;
| Pcengines&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 24&lt;br /&gt;
| Asus&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 18&lt;br /&gt;
| Meraki&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| Setup Informatica&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| D-Link&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Gateworks&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Tp-Link&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Albir</name></author>	</entry>

	<entry>
		<id>http://ca.wiki.guifi.net/wiki/Unsolclic</id>
		<title>Unsolclic</title>
		<link rel="alternate" type="text/html" href="http://ca.wiki.guifi.net/wiki/Unsolclic"/>
				<updated>2012-09-29T11:58:53Z</updated>
		
		<summary type="html">&lt;p&gt;Albir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introducció i Definició =&lt;br /&gt;
&lt;br /&gt;
L'UnsolClic és una eina per configurar els aparells que formen part de la xarxa [http://guifi.net Guifi.net] i un dels factors clau per al seu creixement i expansió. Pren la forma d'un fitxer de text que correspòn a una sequència d'ordres escrita en el llenguatge acceptat per el aparell que utilitzem per connectar a la xarxa lliure guifi.net. &lt;br /&gt;
&lt;br /&gt;
Aquest document vol descriure, des de la vessant del desenvolupament del mòdul [https://gitorious.org/guifi/drupal-guifi Drupal-Guifi], tots els processos involucrats en la  confecció  del UnsolClic&lt;br /&gt;
&lt;br /&gt;
== Fortaleses i Febleses ==&lt;br /&gt;
* Fortaleses  &lt;br /&gt;
** Aïlla a l'usuari de la configuració del trasto&lt;br /&gt;
** Actua com a backup de la configuració &lt;br /&gt;
** Fa visibles les configuraciós dels trastos per a tots els usuaris&lt;br /&gt;
** Dona consistencia a la xarxa &lt;br /&gt;
* Febleses&lt;br /&gt;
** Ha de generar codi en diferents llenguatges per a diferents dispositius, per tant s'ha de conèixer mímimament aquests llenguatges&lt;br /&gt;
** La incorporació de dispositius nous requereix aquesta codificació i porta temps. &lt;br /&gt;
** És genera a l'instant i no fa cache ni manté control de versions&lt;br /&gt;
&lt;br /&gt;
== Exemples == &lt;br /&gt;
* Nodes Client &lt;br /&gt;
** Linksys WRT54GL :[http://guifi.net/ca/guifi/device/315/view/unsolclic UnSolclic DD-Guifi] del node [http://guifi.net/ca/node/1589 Gurb Castell]&lt;br /&gt;
** Nanostation 2 : [http://guifilocal/ca/guifi/device/26702/view/unsolclic AirOS 2.0] del node [http://guifilocal/ca/guifi/device/26702 TRSANord80Rd1]&lt;br /&gt;
* Supernodes &lt;br /&gt;
** Linksys WRT54GL&lt;br /&gt;
** RouterBoard RB433 : [http://guifilocal/ca/guifi/device/30084/view/unsolclic RouterOS 4.0+] del node [http://guifilocal/ca/guifi/device/30084 TRSASocietatNord]&lt;br /&gt;
&lt;br /&gt;
= Procés de Generació = &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== La recepta dels tres passos per connectar  == &lt;br /&gt;
&lt;br /&gt;
Abans de generar el UnSolClic cal que completem a la web de guifi.net la recepta dels [https://guifi.net/ca/connectar_a_guifi tres passos per connectar], que ens proporcionarà tota la informació imprescindible, bàsicament&lt;br /&gt;
* 1. Crear un node, defineix el nom del node, la zona de la que hereta configuracions, etc...&lt;br /&gt;
&lt;br /&gt;
[[File:Addnode1.png]]&lt;br /&gt;
&lt;br /&gt;
* 2. Crear un trasto, defineix totes les propietats del nostre aparelli el firmware que executa, així com dades identificatives del nostre trasto.&lt;br /&gt;
 &lt;br /&gt;
[[File:Addradio1b.png]]&lt;br /&gt;
&lt;br /&gt;
* 3. Crear un enllaç, defineix quines seran les connexions del nostre node, l'adreça IP assignada i quins protocols d'enrutament s'utilitzaran&lt;br /&gt;
&lt;br /&gt;
[[File:Addradio3b.png]]&lt;br /&gt;
&lt;br /&gt;
== Fitxers involucrats (per ordre d'execució) == &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
├── guifi.module : Definició de rutes&lt;br /&gt;
├── guifi_unsolclic.inc.php : Execució Ruta UnSolclic, preparació de dependencies, generació Unsolclic&lt;br /&gt;
├── guifi_includes.inc.php : Funcions diverses de guifi.&lt;br /&gt;
├── guifi_node.inc.php : Càrrega de la informació del node&lt;br /&gt;
├── guifi_devices.inc.php : Càrrega de la informació del trasto&lt;br /&gt;
├── guifi_radios.inc.php : Càrrega de la informació de la radio&lt;br /&gt;
├── guifi_interfaces.inc.php : Càrrega de la informació de les interfaces&lt;br /&gt;
├── guifi_ipv4.inc.php : Càrrega de la informació de les adreces ip&lt;br /&gt;
├── guifi_links.inc.php : Càrrega de la informació dels enllaços&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Entitats involucrades ==&lt;br /&gt;
* Zona, la més específica de les diferents zones de la xarxa guifi.net on volem connectar, és a dir, que no tingui altres subzones&lt;br /&gt;
* Node, la ubicació concreta des d'on volem connectar. &lt;br /&gt;
** Trasto (device), l'aparell que utilitzarem per realitzar la connexió ( un node pot tenir més de un trasto i de diferents tipus) &lt;br /&gt;
** Radio , el dispositiu inalàmbric que utilitza el nostre trasto per establir una connexió física  ( per enllaçar es requereix almenys una radio) &lt;br /&gt;
** Interface , el nom mitjançant el qual interactuem amb la radio (n'hi pot haver vàries per cada radio) &lt;br /&gt;
** IPV4 , cadascuna de les adreces IP que reben les interfaces.&lt;br /&gt;
** Enllaços (links) , cadascuna de les connexions del nostre trasto amb altres trastos propers (poden ser wireless o per cable).&lt;br /&gt;
* Fabricant, la casa comercial que ven el trasto&lt;br /&gt;
* Model, la denominació pròpia del fabricant per a determinar el trasto&lt;br /&gt;
* Firmware, el programari intern que executa el trasto per realitzar totes les seves funcions (pot ser propietat del Fabricant, de tercers o de Programari Lliure) &lt;br /&gt;
&lt;br /&gt;
== Esquema de la Base de Dades ==&lt;br /&gt;
&lt;br /&gt;
En la següent imatge es pot veure l'esquema de les taules de les entitats involucreades en la generació del fitxer UnSolClic:&lt;br /&gt;
&lt;br /&gt;
[[File:TaulesUnSolclic2.png]]&lt;br /&gt;
&lt;br /&gt;
== Families de Casos actuals ==&lt;br /&gt;
Les configuracions UnSolclic existents es basen en les següents famílies de firmwares : &lt;br /&gt;
* Kamikaze&lt;br /&gt;
* AirOs&lt;br /&gt;
* GuifiStation&lt;br /&gt;
* Mikrotik&lt;br /&gt;
* WRT-SveaSoft&lt;br /&gt;
&lt;br /&gt;
TODO : Faltaria afegir altres firmwares com els de QMP, etc... &lt;br /&gt;
&lt;br /&gt;
Actualment, tot el codi implicat dels unsolclics  es troba dins de la carpeta [https://gitorious.org/guifi/drupal-guifi/trees/master/firmware firmware], on tenim un fitxer per cadascuna de les families esmentades. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
├── firmware&lt;br /&gt;
│   ├── [https://gitorious.org/guifi/drupal-guifi/blobs/master/firmware/airos.inc.php airos.inc.php&lt;br /&gt;
│   ├── firmware-todo.inc.php&lt;br /&gt;
│   ├── guifistationos.inc.php&lt;br /&gt;
│   ├── kamikaze&lt;br /&gt;
│   │   ├── ar71xx&lt;br /&gt;
│   │   │   └── kamikaze_ap.inc.php&lt;br /&gt;
│   │   ├── atheros&lt;br /&gt;
│   │   │   ├── kamikaze_ad-hoc.inc.php&lt;br /&gt;
│   │   │   ├── kamikaze_ap.inc.php&lt;br /&gt;
│   │   │   └── kamikaze_client.inc.php&lt;br /&gt;
│   │   ├── broadcom&lt;br /&gt;
│   │   │   ├── kamikaze_ad-hoc.inc.php&lt;br /&gt;
│   │   │   ├── kamikaze_ap.inc.php&lt;br /&gt;
│   │   │   └── kamikaze_client.inc.php&lt;br /&gt;
│   │   └── ixp4xx&lt;br /&gt;
│   │       └── kamikaze_ap.inc.php&lt;br /&gt;
│   ├── kamikaze.inc.php&lt;br /&gt;
│   ├── mikrotik-routeros.inc.php&lt;br /&gt;
│   └── wrt-sveasoft-dd.inc.php&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Procés Original Detallat ==&lt;br /&gt;
* Es crida la URL de generació del UnSolclic. &lt;br /&gt;
* Es carrega la ruta definida a guifi.module&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  $items['guifi/device/%guifi_device/view/unsolclic'] = array(&lt;br /&gt;
    'title' =&amp;gt; 'unsolclic',&lt;br /&gt;
    'page callback' =&amp;gt; 'guifi_unsolclic',&lt;br /&gt;
    'page arguments' =&amp;gt; array(2),&lt;br /&gt;
    'access callback' =&amp;gt; 'user_access',&lt;br /&gt;
    'access arguments' =&amp;gt; array('access content'),&lt;br /&gt;
    'type' =&amp;gt; MENU_LOCAL_TASK&lt;br /&gt;
  );&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* S'executa la funció guifi_unsolclic() del fitxer guifi_unsolclic.inc.php  que rep tota la informació del device del que volem l'unsolclic&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function guifi_unsolclic($dev, $format = 'html') {&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Es comprova que el Device tingui assignat un firmware &lt;br /&gt;
* Es carreguen els fitxers de la familia de firmwares corresponent&lt;br /&gt;
* Es comprova el firmware del trasto per cridar la funció del fitxer per aquella família.&lt;br /&gt;
* Es mostra per pantalla el resultat de tot el procés. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Procés Nou Detallat ==&lt;br /&gt;
&lt;br /&gt;
Continua a partir del pas tres del Procés Original &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Afegir suport per a nous aparells = &lt;br /&gt;
&lt;br /&gt;
== Idea general ==&lt;br /&gt;
&lt;br /&gt;
L'objectiu és millorar el procés d'incorporació de nous dispositius a l'aplicació actual. Mitjançant una nova gestió web i un sistema de plantilles estándard, els usuaris avançats podràn crear els configuradors 'UnSolClic' per als nous dispositius del mercat i mantenir els existents amb més facilitat i eficiència.&lt;br /&gt;
&lt;br /&gt;
== Diagrama de fluxe del procés ==&lt;br /&gt;
&lt;br /&gt;
En el següent diagrama, partint de la situació inicial que veiem a la part superior esquerra, es mostra el procés a seguir per poder generar l'UnSolclic per a un aparell nou &lt;br /&gt;
&lt;br /&gt;
[[File:Diagrama fluxe2.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Fabricants ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Llistat&lt;br /&gt;
[[File:Manufacturer1.png]]&lt;br /&gt;
&lt;br /&gt;
* Formulari&lt;br /&gt;
[[File:Manufacturer2.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Models  ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:models1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:models2c.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Paràmetres ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:Params1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:Params2c.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Creació de Firmwares ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:firmware1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:firmware2b.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Plantilles UnsolClic ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:unsolclic1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:unsolclic2b.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Motor de plantilles Twig ===&lt;br /&gt;
&lt;br /&gt;
En la majoria de les webs actuals trobem que, per facilitar el manteniment i l'optimització de codi, es busca la manera de separar la presentació del contingut, el patró de disseny del [http://es.wikipedia.org/wiki/ModeloVistaControlador Model-Vista-Controlador] és el més utilitzat en la majoria de frameworks actuals. Així per una banda tenim les nostres dades i per l'altre un fitxer plantilla de com volem mostrar-les. &lt;br /&gt;
&lt;br /&gt;
Per implementar la capa de presentació és molt útil recórrer a un motor de plantilles estàndard que ens faciliti la feina. En el nostre sistema utilitzarem [http://twig.sensiolabs.org/ Twig] per la seva potència i simplicitat.Les seves característiques principals són les següents:&lt;br /&gt;
* Orígen : Symfony 2 Framework - Llicència : BSD&lt;br /&gt;
* Substitució de variables, filtres de text i crida de funcions natives.&lt;br /&gt;
* Estructures de control de flux&lt;br /&gt;
* Inclusió de fitxers i catxé per augment de rendiment&lt;br /&gt;
* Herència de plantilles&lt;br /&gt;
* Extensions, plugins i sandbox&lt;br /&gt;
&lt;br /&gt;
=== Sintaxi de Twig ===&lt;br /&gt;
&lt;br /&gt;
La sintaxi de Twig s'ha pensat per ser fàcil de fer servir i ràpida. Bàsicament, una plantilla és un fitxer de text en el que hi trobem variables o expressions i etiquetes que en controlen la lògica. &lt;br /&gt;
&lt;br /&gt;
Per mostrar el contingut d'una variable o expressió utilitzem la següent sintaxi : &lt;br /&gt;
{{ variable }} &lt;br /&gt;
&lt;br /&gt;
Per utilitzar etiquetes de control, utilitzarem &lt;br /&gt;
{% set buffer = 'un string amb quelcom' %} &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En el següent exemple de plantilla podem veure diferents exemples de la sintaxi de Twig&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{# hello comment! #}&lt;br /&gt;
{{ foo.bar }} {% set foo = 'foo' %}&lt;br /&gt;
{{ name|striptags|title }}&lt;br /&gt;
{% if users|length &amp;gt; 0 %}&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
        {% for user in users %}&lt;br /&gt;
            &amp;lt;li&amp;gt;{{ user.username|e }}&amp;lt;/li&amp;gt;&lt;br /&gt;
        {% endfor %}&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
{% endif %}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
A la documentació oficial de Twig podem veure [http://twig.sensiolabs.org/doc/templates.html més casos]&lt;br /&gt;
&lt;br /&gt;
=== Utilització de Twig ===&lt;br /&gt;
&lt;br /&gt;
Des de la banda del codi, per utilitzar Twig cal incloure la llibreria, carregar l'objecte i definir mínimament el seu comportament. A la [http://twig.sensiolabs.org/doc/api.html documentació oficial] hi podem trobar el següent fragment de codi :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
require_once '/path/to/lib/Twig/Autoloader.php';&lt;br /&gt;
Twig_Autoloader::register();&lt;br /&gt;
&lt;br /&gt;
$loader = new Twig_Loader_Filesystem('/path/to/templates');&lt;br /&gt;
$twig = new Twig_Environment($loader, array(&lt;br /&gt;
    'cache' =&amp;gt; '/path/to/compilation_cache',&lt;br /&gt;
));&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per carregar una plantilla utilitzem el següent fragment: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$template = $twig-&amp;gt;loadTemplate('index.html');&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i finalment per establir els valors que prendran les variables a la nostra plantilla  i visualitzar-la, el següent codi : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo $template-&amp;gt;render(array('the' =&amp;gt; 'variables', 'go' =&amp;gt; 'here'));&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Convencions de Guifi.net disponibles a les plantilles ===&lt;br /&gt;
&lt;br /&gt;
Com podem extreure de les entitats de guifi.net la informació necessària per fer una plantilla UnSolClic? &lt;br /&gt;
&lt;br /&gt;
Abans de la confecció de l'UnSolclic s'inicialitzen unes variables que contenen tota la informació de les entitats necessàries per tal que la poguem referenciar a les nostres plantilles.  Aquesta informació arriba estructurada de diferents formes i hi podem accedir de dos formes: &lt;br /&gt;
&lt;br /&gt;
* Amb una convenció de noms&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
* Jeràrquicament &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Edició de plantilles UnSolclic ===&lt;br /&gt;
=== Validació de plantilles UnSolclic ===&lt;br /&gt;
&lt;br /&gt;
= Plantilles UnSolclic  =&lt;br /&gt;
== Validades  ==&lt;br /&gt;
*  Mikrotik	- OmniTIK Uxx-5HnD- RouterOSv5.x&lt;br /&gt;
== Pendents de Validar  ==&lt;br /&gt;
* Ubiquiti	- NanoStation2 - AirOsv30&lt;br /&gt;
* Mikrotik -Routerboard 433	 - RouterOSv4.7+&lt;br /&gt;
* Linksys	- WRT54GL	- DD-guifi (MODE AP)&lt;br /&gt;
&lt;br /&gt;
== Combinacions de Model - Firmware == &lt;br /&gt;
&lt;br /&gt;
A la pràctica, com que passem a tenir una plantilla UnSolClic  per cada combinació de Model / Firmware,  necessitem conèixer el total de combinacions que trobem a dins de la xarxa guifi.net, per saber quantes plantilles hauriem de confeccionar. &lt;br /&gt;
&lt;br /&gt;
A continuació mostrem el llistat amb totes les combinacions existents a la BD real de guifi.net a data de 15/9/2012 &lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
! total&lt;br /&gt;
! name&lt;br /&gt;
! model&lt;br /&gt;
! nom&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3818&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation2&lt;br /&gt;
| AirOsv30&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2237&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation5&lt;br /&gt;
| AirOsv30&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2144&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM5 Rocket/Nano/Loco&lt;br /&gt;
| AirOsv52&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1785&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GL&lt;br /&gt;
| DD-guifi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1428&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation2&lt;br /&gt;
| Freifunk-OLSR&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1319&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation Loco5&lt;br /&gt;
| AirOsv30&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1247&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM5 Bullet/PwBrg/AirGrd/NanoBr&lt;br /&gt;
| AirOsv52&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1225&lt;br /&gt;
| Buffalo&lt;br /&gt;
| WHR-HP-G54, WHR-G54S&lt;br /&gt;
| DD-guifi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 969&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard SXT 5HnD&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 892&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation Loco2&lt;br /&gt;
| AirOsv30&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 664&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation Loco5&lt;br /&gt;
| AirOsv3.6+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 441&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM2 Rocket/Nano/Loco&lt;br /&gt;
| AirOsv52&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 410&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GL&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 362&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation5&lt;br /&gt;
| AirOsv3.6+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 361&lt;br /&gt;
| Other&lt;br /&gt;
| Other&lt;br /&gt;
| n/a&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 297&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard SXT 5HnD&lt;br /&gt;
| RouterOSv4.7+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 292&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 433&lt;br /&gt;
| RouterOSv4.0+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 291&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 133C&lt;br /&gt;
| RouterOSv2.9&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 266&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation2&lt;br /&gt;
| AirOsv3.6+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 243&lt;br /&gt;
| Buffalo&lt;br /&gt;
| WHR-HP-G54, WHR-G54S&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 242&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 433&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 230&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 600&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 186&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54Gv1-4&lt;br /&gt;
| Alchemy&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 181&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 750/G&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 177&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation5&lt;br /&gt;
| Freifunk-OLSR&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 175&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 433&lt;br /&gt;
| RouterOSv3.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 172&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 600&lt;br /&gt;
| RouterOSv3.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 169&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54Gv1-4&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 162&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM2 Bullet/PwBrg/AirGrd/NanoBr&lt;br /&gt;
| AirOsv52&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 160&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 433&lt;br /&gt;
| RouterOSv4.7+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 124&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation Loco2&lt;br /&gt;
| AirOsv3.6+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 119&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 600&lt;br /&gt;
| RouterOSv4.7+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 117&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 411&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 114&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 411&lt;br /&gt;
| RouterOSv3.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 112&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 411&lt;br /&gt;
| RouterOSv4.7+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 112&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 532&lt;br /&gt;
| RouterOSv2.9&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 89&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54Gv1-4&lt;br /&gt;
| DD-guifi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 79&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 750/G&lt;br /&gt;
| RouterOSv4.7+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 66&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation2&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 66&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Supertrasto guifiBUS guifi.net&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 59&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| Bullet2&lt;br /&gt;
| AirOsv30&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 53&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 532&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 46&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 800&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 43&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 133&lt;br /&gt;
| RouterOSv2.9&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 42&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 532&lt;br /&gt;
| RouterOSv4.7+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 39&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54Gv1-4&lt;br /&gt;
| n/a&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 39&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation Loco2&lt;br /&gt;
| Freifunk-OLSR&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 36&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 493/G&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 32&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| RouterStation&lt;br /&gt;
| gsffirm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 32&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 532&lt;br /&gt;
| RouterOSv3.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 31&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 800&lt;br /&gt;
| RouterOSv4.7+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 30&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation5&lt;br /&gt;
| AirOsv221&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 30&lt;br /&gt;
| Pcengines&lt;br /&gt;
| Alix2&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 29&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 133&lt;br /&gt;
| RouterOSv3.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 29&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GL&lt;br /&gt;
| whiterussian&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 27&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GSv4&lt;br /&gt;
| DD-guifi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 22&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Supertrasto guifiBUS guifi.net&lt;br /&gt;
| RouterOSv4.7+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 21&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GSv4&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 21&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| LiteStation2&lt;br /&gt;
| AirOsv30&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 21&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation2&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 20&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 133C&lt;br /&gt;
| RouterOSv3.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 20&lt;br /&gt;
| Pcengines&lt;br /&gt;
| Alix2&lt;br /&gt;
| gsffirm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 20&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| LiteStation5&lt;br /&gt;
| AirOsv30&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 19&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation2&lt;br /&gt;
| AirOsv221&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 19&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GL&lt;br /&gt;
| Freifunk-OLSR&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| Bullet2&lt;br /&gt;
| AirOsv3.6+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| OmniTIK Uxx-5HnD&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation5&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| RouterStation&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GSv1-2&lt;br /&gt;
| DD-guifi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation Loco2&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 333&lt;br /&gt;
| RouterOSv3.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| Asus&lt;br /&gt;
| Asus WL-500xx&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GL&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| Bullet5&lt;br /&gt;
| AirOsv30&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation Loco5&lt;br /&gt;
| AirOsv221&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| Meraki&lt;br /&gt;
| Meraki/Fonera&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 153&lt;br /&gt;
| RouterOSv2.9&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| LiteStation2&lt;br /&gt;
| Freifunk-OLSR&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54Gv1-4&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GL&lt;br /&gt;
| DD-WRTv24preSP2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 133&lt;br /&gt;
| RouterOSv4.7+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 133C&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Pcengines&lt;br /&gt;
| Alix3&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Other&lt;br /&gt;
| Other&lt;br /&gt;
| DD-guifi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 133&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| D-Link&lt;br /&gt;
| DIR-600 B1/B2&lt;br /&gt;
| DD-WRTv24preSP2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation Loco5&lt;br /&gt;
| AirOsv52&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| Bullet5&lt;br /&gt;
| AirOsv3.6+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM5 Rocket/Nano/Loco&lt;br /&gt;
| AirOsv3.6+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 112&lt;br /&gt;
| RouterOSv2.9&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 1100&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Setup Informatica&lt;br /&gt;
| GuifiStation2&lt;br /&gt;
| GuifiStationOS1.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GL&lt;br /&gt;
| Talisman&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Meraki&lt;br /&gt;
| Meraki/Fonera&lt;br /&gt;
| DD-WRTv24preSP2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Setup Informatica&lt;br /&gt;
| GuifiStation5&lt;br /&gt;
| GuifiStationOS1.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| RouterStationPro&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation Loco5&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 800&lt;br /&gt;
| RouterOSv4.0+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation Loco5&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation5&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Supertrasto guifiBUS guifi.net&lt;br /&gt;
| RouterOSv2.9&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GL&lt;br /&gt;
| n/a&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 2011&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| RouterStation&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| RouterStationPro&lt;br /&gt;
| gsffirm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Supertrasto guifiBUS guifi.net&lt;br /&gt;
| RouterOSv3.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54Gv1-4&lt;br /&gt;
| DD-WRTv24preSP2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 133C&lt;br /&gt;
| RouterOSv4.7+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Other&lt;br /&gt;
| Other&lt;br /&gt;
| AirOsv30&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation2&lt;br /&gt;
| AirOsv52&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 532&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation Loco5&lt;br /&gt;
| Freifunk-OLSR&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 493/G&lt;br /&gt;
| RouterOSv4.7+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation5&lt;br /&gt;
| gsffirm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation5&lt;br /&gt;
| AirOsv52&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation Loco2&lt;br /&gt;
| AirOsv221&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 333&lt;br /&gt;
| RouterOSv4.7+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 600&lt;br /&gt;
| RouterOSv2.9&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM5 Rocket/Nano/Loco&lt;br /&gt;
| AirOsv30&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 333&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Other&lt;br /&gt;
| Other&lt;br /&gt;
| Alchemy&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GSv4&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Asus&lt;br /&gt;
| Asus WL-500xx&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Gateworks&lt;br /&gt;
| Avila GW2348-4&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation Loco5&lt;br /&gt;
| gsffirm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54Gv1-4&lt;br /&gt;
| Talisman&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Asus&lt;br /&gt;
| Asus WL-500xx&lt;br /&gt;
| AirOsv52&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 750/G&lt;br /&gt;
| DD-guifi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 532&lt;br /&gt;
| RouterOSv4.0+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Buffalo&lt;br /&gt;
| WHR-HP-G54, WHR-G54S&lt;br /&gt;
| n/a&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GSv1-2&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 1100&lt;br /&gt;
| RouterOSv4.7+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| RouterStationPro&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Asus&lt;br /&gt;
| Asus WL-500xx&lt;br /&gt;
| DD-WRTv24preSP2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GSv1-2&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Supertrasto guifiBUS guifi.net&lt;br /&gt;
| RouterOSv4.0+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 153&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Other&lt;br /&gt;
| Other&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| Bullet2&lt;br /&gt;
| Freifunk-OLSR&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54Gv1-4&lt;br /&gt;
| Freifunk-OLSR&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54Gv1-4&lt;br /&gt;
| whiterussian&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Supertrasto guifiBUS guifi.net&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM5 Bullet/PwBrg/AirGrd/NanoBr&lt;br /&gt;
| AirOsv3.6+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Other&lt;br /&gt;
| Other&lt;br /&gt;
| DD-WRTv24preSP2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM2 Rocket/Nano/Loco&lt;br /&gt;
| AirOsv221&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Asus&lt;br /&gt;
| Asus WL-500xx&lt;br /&gt;
| AirOsv221&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Pcengines&lt;br /&gt;
| Alix1&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM2 Rocket/Nano/Loco&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 153&lt;br /&gt;
| RouterOSv3.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM5 Bullet/PwBrg/AirGrd/NanoBr&lt;br /&gt;
| AirOsv30&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 133C&lt;br /&gt;
| n/a&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation5&lt;br /&gt;
| RouterOSv4.0+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| LiteStation5&lt;br /&gt;
| Freifunk-OLSR&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 112&lt;br /&gt;
| RouterOSv4.7+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation2&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM5 Bullet/PwBrg/AirGrd/NanoBr&lt;br /&gt;
| Freifunk-OLSR&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| Bullet2&lt;br /&gt;
| AirOsv221&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| LiteStation5&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Tp-Link&lt;br /&gt;
| TL-WA7510N&lt;br /&gt;
| n/a&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 600&lt;br /&gt;
| RouterOSv4.0+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Meraki&lt;br /&gt;
| Meraki/Fonera&lt;br /&gt;
| gsffirm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GSv4&lt;br /&gt;
| DD-WRTv24preSP2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GL&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 750/G&lt;br /&gt;
| AirOsv30&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54Gv1-4&lt;br /&gt;
| Freifunk-BATMAN&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM2 Rocket/Nano/Loco&lt;br /&gt;
| DD-WRTv24preSP2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| Bullet2&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GSv1-2&lt;br /&gt;
| DD-WRTv24preSP2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 153&lt;br /&gt;
| RouterOSv4.7+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GSv1-2&lt;br /&gt;
| Alchemy&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Asus&lt;br /&gt;
| Asus WL-500xx&lt;br /&gt;
| AirOsv3.6+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 112&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM2 Bullet/PwBrg/AirGrd/NanoBr&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM5 Rocket/Nano/Loco&lt;br /&gt;
| RouterOSv2.9&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GSv1-2&lt;br /&gt;
| gsffirm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 153&lt;br /&gt;
| n/a&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Pcengines&lt;br /&gt;
| Alix3&lt;br /&gt;
| gsffirm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GL&lt;br /&gt;
| gsffirm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Buffalo&lt;br /&gt;
| WHR-HP-G54, WHR-G54S&lt;br /&gt;
| DD-WRTv24preSP2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM5 Bullet/PwBrg/AirGrd/NanoBr&lt;br /&gt;
| DD-WRTv24preSP2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| Bullet2&lt;br /&gt;
| DD-WRTv24preSP2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM5 Rocket/Nano/Loco&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| Bullet5&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM5 Rocket/Nano/Loco&lt;br /&gt;
| DD-WRTv24preSP2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Pcengines&lt;br /&gt;
| Alix2&lt;br /&gt;
| DD-WRTv24preSP2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation Loco2&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 133C&lt;br /&gt;
| AirOsv52&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation2&lt;br /&gt;
| gsffirm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GSv4&lt;br /&gt;
| Talisman&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54Gv1-4&lt;br /&gt;
| gsffirm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation2&lt;br /&gt;
| DD-WRTv24preSP2&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Finalment com a curiositat un llistat del total de aparells agrupats per fabricant: &lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
! total&lt;br /&gt;
! name&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 15788&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4223&lt;br /&gt;
| Mikrotik&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2859&lt;br /&gt;
| Linksys&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1471&lt;br /&gt;
| Buffalo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 378&lt;br /&gt;
| Other&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 61&lt;br /&gt;
| Pcengines&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 24&lt;br /&gt;
| Asus&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 18&lt;br /&gt;
| Meraki&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| Setup Informatica&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| D-Link&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Gateworks&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Tp-Link&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Albir</name></author>	</entry>

	<entry>
		<id>http://ca.wiki.guifi.net/wiki/Unsolclic</id>
		<title>Unsolclic</title>
		<link rel="alternate" type="text/html" href="http://ca.wiki.guifi.net/wiki/Unsolclic"/>
				<updated>2012-09-29T11:55:55Z</updated>
		
		<summary type="html">&lt;p&gt;Albir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introducció i Definició =&lt;br /&gt;
&lt;br /&gt;
L'UnsolClic és una eina per configurar els aparells que formen part de la xarxa [http://guifi.net Guifi.net] i un dels factors clau per al seu creixement i expansió. Pren la forma d'un fitxer de text que correspòn a una sequència d'ordres escrita en el llenguatge acceptat per el aparell que utilitzem per connectar a la xarxa lliure guifi.net. &lt;br /&gt;
&lt;br /&gt;
Aquest document vol descriure, des de la vessant del desenvolupament del mòdul [https://gitorious.org/guifi/drupal-guifi Drupal-Guifi], tots els processos involucrats en la  confecció  del UnsolClic&lt;br /&gt;
&lt;br /&gt;
== Fortaleses i Febleses ==&lt;br /&gt;
* Fortaleses  &lt;br /&gt;
** Aïlla a l'usuari de la configuració del trasto&lt;br /&gt;
** Actua com a backup de la configuració &lt;br /&gt;
** Fa visibles les configuraciós dels trastos per a tots els usuaris&lt;br /&gt;
** Dona consistencia a la xarxa &lt;br /&gt;
* Febleses&lt;br /&gt;
** Ha de generar codi en diferents llenguatges per a diferents dispositius, per tant s'ha de conèixer mímimament aquests llenguatges&lt;br /&gt;
** La incorporació de dispositius nous requereix aquesta codificació i porta temps. &lt;br /&gt;
** És genera a l'instant i no fa cache ni manté control de versions&lt;br /&gt;
&lt;br /&gt;
== Exemples == &lt;br /&gt;
* Nodes Client &lt;br /&gt;
** Linksys WRT54GL :[http://guifi.net/ca/guifi/device/315/view/unsolclic UnSolclic DD-Guifi] del node [http://guifi.net/ca/node/1589 Gurb Castell]&lt;br /&gt;
** Nanostation 2 : [http://guifilocal/ca/guifi/device/26702/view/unsolclic AirOS 2.0] del node [http://guifilocal/ca/guifi/device/26702 TRSANord80Rd1]&lt;br /&gt;
* Supernodes &lt;br /&gt;
** Linksys WRT54GL&lt;br /&gt;
** RouterBoard RB433 : [http://guifilocal/ca/guifi/device/30084/view/unsolclic RouterOS 4.0+] del node [http://guifilocal/ca/guifi/device/30084 TRSASocietatNord]&lt;br /&gt;
&lt;br /&gt;
= Procés de Generació = &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== La recepta dels tres passos per connectar  == &lt;br /&gt;
&lt;br /&gt;
Abans de generar el UnSolClic cal que completem a la web de guifi.net la recepta dels [https://guifi.net/ca/connectar_a_guifi tres passos per connectar], que ens proporcionarà tota la informació imprescindible, bàsicament&lt;br /&gt;
* 1. Crear un node, defineix el nom del node, la zona de la que hereta configuracions, etc...&lt;br /&gt;
&lt;br /&gt;
[[File:Addnode1.png]]&lt;br /&gt;
&lt;br /&gt;
* 2. Crear un trasto, defineix totes les propietats del nostre aparelli el firmware que executa, així com dades identificatives del nostre trasto.&lt;br /&gt;
 &lt;br /&gt;
[[File:Addradio1b.png]]&lt;br /&gt;
&lt;br /&gt;
* 3. Crear un enllaç, defineix quines seran les connexions del nostre node, l'adreça IP assignada i quins protocols d'enrutament s'utilitzaran&lt;br /&gt;
&lt;br /&gt;
[[File:Addradio3b.png]]&lt;br /&gt;
&lt;br /&gt;
== Fitxers involucrats (per ordre d'execució) == &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
├── guifi.module : Definició de rutes&lt;br /&gt;
├── guifi_unsolclic.inc.php : Execució Ruta UnSolclic, preparació de dependencies, generació Unsolclic&lt;br /&gt;
├── guifi_includes.inc.php : Funcions diverses de guifi.&lt;br /&gt;
├── guifi_node.inc.php : Càrrega de la informació del node&lt;br /&gt;
├── guifi_devices.inc.php : Càrrega de la informació del trasto&lt;br /&gt;
├── guifi_radios.inc.php : Càrrega de la informació de la radio&lt;br /&gt;
├── guifi_interfaces.inc.php : Càrrega de la informació de les interfaces&lt;br /&gt;
├── guifi_ipv4.inc.php : Càrrega de la informació de les adreces ip&lt;br /&gt;
├── guifi_links.inc.php : Càrrega de la informació dels enllaços&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Entitats involucrades ==&lt;br /&gt;
* Zona, la més específica de les diferents zones de la xarxa guifi.net on volem connectar, és a dir, que no tingui altres subzones&lt;br /&gt;
* Node, la ubicació concreta des d'on volem connectar. &lt;br /&gt;
** Trasto (device), l'aparell que utilitzarem per realitzar la connexió ( un node pot tenir més de un trasto i de diferents tipus) &lt;br /&gt;
** Radio , el dispositiu inalàmbric que utilitza el nostre trasto per establir una connexió física  ( per enllaçar es requereix almenys una radio) &lt;br /&gt;
** Interface , el nom mitjançant el qual interactuem amb la radio (n'hi pot haver vàries per cada radio) &lt;br /&gt;
** IPV4 , cadascuna de les adreces IP que reben les interfaces.&lt;br /&gt;
** Enllaços (links) , cadascuna de les connexions del nostre trasto amb altres trastos propers (poden ser wireless o per cable).&lt;br /&gt;
* Fabricant, la casa comercial que ven el trasto&lt;br /&gt;
* Model, la denominació pròpia del fabricant per a determinar el trasto&lt;br /&gt;
* Firmware, el programari intern que executa el trasto per realitzar totes les seves funcions (pot ser propietat del Fabricant, de tercers o de Programari Lliure) &lt;br /&gt;
&lt;br /&gt;
== Esquema de la Base de Dades ==&lt;br /&gt;
&lt;br /&gt;
En la següent imatge es pot veure l'esquema de les taules de les entitats involucreades en la generació del fitxer UnSolClic:&lt;br /&gt;
&lt;br /&gt;
[[File:TaulesUnSolclic2.png]]&lt;br /&gt;
&lt;br /&gt;
== Families de Casos actuals ==&lt;br /&gt;
Les configuracions UnSolclic existents es basen en les següents famílies de firmwares : &lt;br /&gt;
* Kamikaze&lt;br /&gt;
* AirOs&lt;br /&gt;
* GuifiStation&lt;br /&gt;
* Mikrotik&lt;br /&gt;
* WRT-SveaSoft&lt;br /&gt;
&lt;br /&gt;
TODO : Faltaria afegir altres firmwares com els de QMP, etc... &lt;br /&gt;
&lt;br /&gt;
Actualment, tot el codi implicat dels unsolclics  es troba dins de la carpeta [https://gitorious.org/guifi/drupal-guifi/trees/master/firmware firmware], on tenim un fitxer per cadascuna de les families esmentades. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
├── firmware&lt;br /&gt;
│   ├── [https://gitorious.org/guifi/drupal-guifi/blobs/master/firmware/airos.inc.php airos.inc.php&lt;br /&gt;
│   ├── firmware-todo.inc.php&lt;br /&gt;
│   ├── guifistationos.inc.php&lt;br /&gt;
│   ├── kamikaze&lt;br /&gt;
│   │   ├── ar71xx&lt;br /&gt;
│   │   │   └── kamikaze_ap.inc.php&lt;br /&gt;
│   │   ├── atheros&lt;br /&gt;
│   │   │   ├── kamikaze_ad-hoc.inc.php&lt;br /&gt;
│   │   │   ├── kamikaze_ap.inc.php&lt;br /&gt;
│   │   │   └── kamikaze_client.inc.php&lt;br /&gt;
│   │   ├── broadcom&lt;br /&gt;
│   │   │   ├── kamikaze_ad-hoc.inc.php&lt;br /&gt;
│   │   │   ├── kamikaze_ap.inc.php&lt;br /&gt;
│   │   │   └── kamikaze_client.inc.php&lt;br /&gt;
│   │   └── ixp4xx&lt;br /&gt;
│   │       └── kamikaze_ap.inc.php&lt;br /&gt;
│   ├── kamikaze.inc.php&lt;br /&gt;
│   ├── mikrotik-routeros.inc.php&lt;br /&gt;
│   └── wrt-sveasoft-dd.inc.php&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Procés Original Detallat ==&lt;br /&gt;
* Es crida la URL de generació del UnSolclic. &lt;br /&gt;
* Es carrega la ruta definida a guifi.module&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  $items['guifi/device/%guifi_device/view/unsolclic'] = array(&lt;br /&gt;
    'title' =&amp;gt; 'unsolclic',&lt;br /&gt;
    'page callback' =&amp;gt; 'guifi_unsolclic',&lt;br /&gt;
    'page arguments' =&amp;gt; array(2),&lt;br /&gt;
    'access callback' =&amp;gt; 'user_access',&lt;br /&gt;
    'access arguments' =&amp;gt; array('access content'),&lt;br /&gt;
    'type' =&amp;gt; MENU_LOCAL_TASK&lt;br /&gt;
  );&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* S'executa la funció guifi_unsolclic() del fitxer guifi_unsolclic.inc.php  que rep tota la informació del device del que volem l'unsolclic&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function guifi_unsolclic($dev, $format = 'html') {&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Es comprova que el Device tingui assignat un firmware &lt;br /&gt;
* Es carreguen els fitxers de la familia de firmwares corresponent&lt;br /&gt;
* Es comprova el firmware del trasto per cridar la funció del fitxer per aquella família.&lt;br /&gt;
* Es mostra per pantalla el resultat de tot el procés. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Procés Nou Detallat ==&lt;br /&gt;
&lt;br /&gt;
Continua a partir del pas tres del Procés Original &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Afegir suport per a nous aparells = &lt;br /&gt;
&lt;br /&gt;
== Idea general ==&lt;br /&gt;
&lt;br /&gt;
L'objectiu és millorar el procés d'incorporació de nous dispositius a l'aplicació actual. Mitjançant una nova gestió web i un sistema de plantilles estándard, els usuaris avançats podràn crear els configuradors 'UnSolClic' per als nous dispositius del mercat i mantenir els existents amb més facilitat i eficiència.&lt;br /&gt;
&lt;br /&gt;
== Diagrama de fluxe del procés ==&lt;br /&gt;
&lt;br /&gt;
En el següent diagrama, partint de la situació inicial que veiem a la part superior esquerra, es mostra el procés a seguir per poder generar l'UnSolclic per a un aparell nou &lt;br /&gt;
&lt;br /&gt;
[[File:Diagrama fluxe2.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Fabricants ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Llistat&lt;br /&gt;
[[File:Manufacturer1.png]]&lt;br /&gt;
&lt;br /&gt;
* Formulari&lt;br /&gt;
[[File:Manufacturer2.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Models  ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:models1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:models2c.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Paràmetres ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:Params1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:Params2c.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Creació de Firmwares ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:firmware1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:firmware2b.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Plantilles UnsolClic ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:unsolclic1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:unsolclic2b.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Motor de plantilles Twig ===&lt;br /&gt;
&lt;br /&gt;
En la majoria de les webs actuals trobem que, per facilitar el manteniment i l'optimització de codi, es busca la manera de separar la presentació del contingut, el patró de disseny del [http://es.wikipedia.org/wiki/ModeloVistaControlador Model-Vista-Controlador] és el més utilitzat en la majoria de frameworks actuals. Així per una banda tenim les nostres dades i per l'altre un fitxer plantilla de com volem mostrar-les. &lt;br /&gt;
&lt;br /&gt;
Per implementar la capa de presentació és molt útil recórrer a un motor de plantilles estàndard que ens faciliti la feina. En el nostre sistema utilitzarem [http://twig.sensiolabs.org/ Twig] per la seva potència i simplicitat.Les seves característiques principals són les següents:&lt;br /&gt;
* Orígen : Symfony 2 Framework - Llicència : BSD&lt;br /&gt;
* Substitució de variables, filtres de text i crida de funcions natives.&lt;br /&gt;
* Estructures de control de flux&lt;br /&gt;
* Inclusió de fitxers i catxé per augment de rendiment&lt;br /&gt;
* Herència de plantilles&lt;br /&gt;
* Extensions, plugins i sandbox&lt;br /&gt;
&lt;br /&gt;
=== Sintaxi de Twig ===&lt;br /&gt;
&lt;br /&gt;
La sintaxi de Twig s'ha pensat per ser fàcil de fer servir i ràpida. Bàsicament, una plantilla és un fitxer de text en el que hi trobem variables o expressions i etiquetes que en controlen la lògica. &lt;br /&gt;
&lt;br /&gt;
Per mostrar el contingut d'una variable o expressió utilitzem la següent sintaxi : &lt;br /&gt;
{{ variable }} &lt;br /&gt;
&lt;br /&gt;
Per utilitzar etiquetes de control, utilitzarem &lt;br /&gt;
{% set buffer = 'un string amb quelcom' %} &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En el següent exemple de plantilla podem veure diferents exemples de la sintaxi de Twig&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{# hello comment! #}&lt;br /&gt;
{{ foo.bar }} {% set foo = 'foo' %}&lt;br /&gt;
{{ name|striptags|title }}&lt;br /&gt;
{% if users|length &amp;gt; 0 %}&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
        {% for user in users %}&lt;br /&gt;
            &amp;lt;li&amp;gt;{{ user.username|e }}&amp;lt;/li&amp;gt;&lt;br /&gt;
        {% endfor %}&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
{% endif %}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
A la documentació oficial de Twig podem veure [http://twig.sensiolabs.org/doc/templates.html més casos]&lt;br /&gt;
&lt;br /&gt;
=== Utilització de Twig ===&lt;br /&gt;
&lt;br /&gt;
Des de la banda del codi, per utilitzar Twig cal incloure la llibreria, carregar l'objecte i definir mínimament el seu comportament. A la [http://twig.sensiolabs.org/doc/api.html documentació oficial] hi podem trobar el següent fragment de codi :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
require_once '/path/to/lib/Twig/Autoloader.php';&lt;br /&gt;
Twig_Autoloader::register();&lt;br /&gt;
&lt;br /&gt;
$loader = new Twig_Loader_Filesystem('/path/to/templates');&lt;br /&gt;
$twig = new Twig_Environment($loader, array(&lt;br /&gt;
    'cache' =&amp;gt; '/path/to/compilation_cache',&lt;br /&gt;
));&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per carregar una plantilla utilitzem el següent fragment: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$template = $twig-&amp;gt;loadTemplate('index.html');&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i finalment per establir els valors que prendran les variables a la nostra plantilla  i visualitzar-la, el següent codi : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo $template-&amp;gt;render(array('the' =&amp;gt; 'variables', 'go' =&amp;gt; 'here'));&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Convencions de Guifi.net disponibles a les plantilles ===&lt;br /&gt;
&lt;br /&gt;
Com podem extreure de les entitats de guifi.net la informació necessària per fer una plantilla UnSolClic? &lt;br /&gt;
&lt;br /&gt;
Abans de la confecció de l'UnSolclic s'inicialitzen unes variables que contenen tota la informació de les entitats necessàries per tal que la poguem referenciar a les nostres plantilles.  Aquesta informació arriba estructurada de diferents formes i hi podem accedir de dos formes: &lt;br /&gt;
&lt;br /&gt;
* Amb una convenció de noms&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
* Jeràrquicament &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Edició de plantilles UnSolclic ===&lt;br /&gt;
=== Validació de plantilles UnSolclic ===&lt;br /&gt;
&lt;br /&gt;
= Plantilles UnSolclic  =&lt;br /&gt;
== Validades  ==&lt;br /&gt;
*  Mikrotik	- OmniTIK Uxx-5HnD- RouterOSv5.x&lt;br /&gt;
== Pendents de Validar  ==&lt;br /&gt;
* Ubiquiti	- NanoStation2 - AirOsv30&lt;br /&gt;
* Mikrotik -Routerboard 433	 - RouterOSv4.7+&lt;br /&gt;
* Linksys	- WRT54GL	- DD-guifi (MODE AP)&lt;br /&gt;
&lt;br /&gt;
== Combinacions de Model - Firmware == &lt;br /&gt;
&lt;br /&gt;
A la pràctica, com que passem a tenir una plantilla UnSolClic  per cada combinació de Model / Firmware,  necessitem conèixer el total de combinacions que trobem a dins de la xarxa guifi.net, per saber quantes plantilles hauriem de confeccionar. A continuació mostrem el llistat amb totes les combinacions existents a la BD real de guifi.net a data de 15/9/2012 &lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
! total&lt;br /&gt;
! name&lt;br /&gt;
! model&lt;br /&gt;
! nom&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3818&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation2&lt;br /&gt;
| AirOsv30&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2237&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation5&lt;br /&gt;
| AirOsv30&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2144&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM5 Rocket/Nano/Loco&lt;br /&gt;
| AirOsv52&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1785&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GL&lt;br /&gt;
| DD-guifi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1428&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation2&lt;br /&gt;
| Freifunk-OLSR&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1319&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation Loco5&lt;br /&gt;
| AirOsv30&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1247&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM5 Bullet/PwBrg/AirGrd/NanoBr&lt;br /&gt;
| AirOsv52&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1225&lt;br /&gt;
| Buffalo&lt;br /&gt;
| WHR-HP-G54, WHR-G54S&lt;br /&gt;
| DD-guifi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 969&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard SXT 5HnD&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 892&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation Loco2&lt;br /&gt;
| AirOsv30&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 664&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation Loco5&lt;br /&gt;
| AirOsv3.6+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 441&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM2 Rocket/Nano/Loco&lt;br /&gt;
| AirOsv52&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 410&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GL&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 362&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation5&lt;br /&gt;
| AirOsv3.6+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 361&lt;br /&gt;
| Other&lt;br /&gt;
| Other&lt;br /&gt;
| n/a&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 297&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard SXT 5HnD&lt;br /&gt;
| RouterOSv4.7+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 292&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 433&lt;br /&gt;
| RouterOSv4.0+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 291&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 133C&lt;br /&gt;
| RouterOSv2.9&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 266&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation2&lt;br /&gt;
| AirOsv3.6+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 243&lt;br /&gt;
| Buffalo&lt;br /&gt;
| WHR-HP-G54, WHR-G54S&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 242&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 433&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 230&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 600&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 186&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54Gv1-4&lt;br /&gt;
| Alchemy&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 181&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 750/G&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 177&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation5&lt;br /&gt;
| Freifunk-OLSR&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 175&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 433&lt;br /&gt;
| RouterOSv3.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 172&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 600&lt;br /&gt;
| RouterOSv3.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 169&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54Gv1-4&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 162&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM2 Bullet/PwBrg/AirGrd/NanoBr&lt;br /&gt;
| AirOsv52&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 160&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 433&lt;br /&gt;
| RouterOSv4.7+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 124&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation Loco2&lt;br /&gt;
| AirOsv3.6+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 119&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 600&lt;br /&gt;
| RouterOSv4.7+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 117&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 411&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 114&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 411&lt;br /&gt;
| RouterOSv3.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 112&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 411&lt;br /&gt;
| RouterOSv4.7+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 112&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 532&lt;br /&gt;
| RouterOSv2.9&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 89&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54Gv1-4&lt;br /&gt;
| DD-guifi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 79&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 750/G&lt;br /&gt;
| RouterOSv4.7+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 66&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation2&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 66&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Supertrasto guifiBUS guifi.net&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 59&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| Bullet2&lt;br /&gt;
| AirOsv30&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 53&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 532&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 46&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 800&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 43&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 133&lt;br /&gt;
| RouterOSv2.9&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 42&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 532&lt;br /&gt;
| RouterOSv4.7+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 39&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54Gv1-4&lt;br /&gt;
| n/a&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 39&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation Loco2&lt;br /&gt;
| Freifunk-OLSR&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 36&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 493/G&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 32&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| RouterStation&lt;br /&gt;
| gsffirm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 32&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 532&lt;br /&gt;
| RouterOSv3.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 31&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 800&lt;br /&gt;
| RouterOSv4.7+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 30&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation5&lt;br /&gt;
| AirOsv221&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 30&lt;br /&gt;
| Pcengines&lt;br /&gt;
| Alix2&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 29&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 133&lt;br /&gt;
| RouterOSv3.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 29&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GL&lt;br /&gt;
| whiterussian&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 27&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GSv4&lt;br /&gt;
| DD-guifi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 22&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Supertrasto guifiBUS guifi.net&lt;br /&gt;
| RouterOSv4.7+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 21&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GSv4&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 21&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| LiteStation2&lt;br /&gt;
| AirOsv30&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 21&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation2&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 20&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 133C&lt;br /&gt;
| RouterOSv3.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 20&lt;br /&gt;
| Pcengines&lt;br /&gt;
| Alix2&lt;br /&gt;
| gsffirm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 20&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| LiteStation5&lt;br /&gt;
| AirOsv30&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 19&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation2&lt;br /&gt;
| AirOsv221&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 19&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GL&lt;br /&gt;
| Freifunk-OLSR&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| Bullet2&lt;br /&gt;
| AirOsv3.6+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| OmniTIK Uxx-5HnD&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation5&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| RouterStation&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GSv1-2&lt;br /&gt;
| DD-guifi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation Loco2&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 333&lt;br /&gt;
| RouterOSv3.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| Asus&lt;br /&gt;
| Asus WL-500xx&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GL&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| Bullet5&lt;br /&gt;
| AirOsv30&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation Loco5&lt;br /&gt;
| AirOsv221&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| Meraki&lt;br /&gt;
| Meraki/Fonera&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 153&lt;br /&gt;
| RouterOSv2.9&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| LiteStation2&lt;br /&gt;
| Freifunk-OLSR&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54Gv1-4&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GL&lt;br /&gt;
| DD-WRTv24preSP2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 133&lt;br /&gt;
| RouterOSv4.7+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 133C&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Pcengines&lt;br /&gt;
| Alix3&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Other&lt;br /&gt;
| Other&lt;br /&gt;
| DD-guifi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 133&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| D-Link&lt;br /&gt;
| DIR-600 B1/B2&lt;br /&gt;
| DD-WRTv24preSP2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation Loco5&lt;br /&gt;
| AirOsv52&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| Bullet5&lt;br /&gt;
| AirOsv3.6+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM5 Rocket/Nano/Loco&lt;br /&gt;
| AirOsv3.6+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 112&lt;br /&gt;
| RouterOSv2.9&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 1100&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Setup Informatica&lt;br /&gt;
| GuifiStation2&lt;br /&gt;
| GuifiStationOS1.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GL&lt;br /&gt;
| Talisman&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Meraki&lt;br /&gt;
| Meraki/Fonera&lt;br /&gt;
| DD-WRTv24preSP2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Setup Informatica&lt;br /&gt;
| GuifiStation5&lt;br /&gt;
| GuifiStationOS1.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| RouterStationPro&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation Loco5&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 800&lt;br /&gt;
| RouterOSv4.0+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation Loco5&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation5&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Supertrasto guifiBUS guifi.net&lt;br /&gt;
| RouterOSv2.9&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GL&lt;br /&gt;
| n/a&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 2011&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| RouterStation&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| RouterStationPro&lt;br /&gt;
| gsffirm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Supertrasto guifiBUS guifi.net&lt;br /&gt;
| RouterOSv3.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54Gv1-4&lt;br /&gt;
| DD-WRTv24preSP2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 133C&lt;br /&gt;
| RouterOSv4.7+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Other&lt;br /&gt;
| Other&lt;br /&gt;
| AirOsv30&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation2&lt;br /&gt;
| AirOsv52&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 532&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation Loco5&lt;br /&gt;
| Freifunk-OLSR&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 493/G&lt;br /&gt;
| RouterOSv4.7+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation5&lt;br /&gt;
| gsffirm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation5&lt;br /&gt;
| AirOsv52&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation Loco2&lt;br /&gt;
| AirOsv221&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 333&lt;br /&gt;
| RouterOSv4.7+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 600&lt;br /&gt;
| RouterOSv2.9&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM5 Rocket/Nano/Loco&lt;br /&gt;
| AirOsv30&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 333&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Other&lt;br /&gt;
| Other&lt;br /&gt;
| Alchemy&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GSv4&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Asus&lt;br /&gt;
| Asus WL-500xx&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Gateworks&lt;br /&gt;
| Avila GW2348-4&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation Loco5&lt;br /&gt;
| gsffirm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54Gv1-4&lt;br /&gt;
| Talisman&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Asus&lt;br /&gt;
| Asus WL-500xx&lt;br /&gt;
| AirOsv52&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 750/G&lt;br /&gt;
| DD-guifi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 532&lt;br /&gt;
| RouterOSv4.0+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Buffalo&lt;br /&gt;
| WHR-HP-G54, WHR-G54S&lt;br /&gt;
| n/a&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GSv1-2&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 1100&lt;br /&gt;
| RouterOSv4.7+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| RouterStationPro&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Asus&lt;br /&gt;
| Asus WL-500xx&lt;br /&gt;
| DD-WRTv24preSP2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GSv1-2&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Supertrasto guifiBUS guifi.net&lt;br /&gt;
| RouterOSv4.0+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 153&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Other&lt;br /&gt;
| Other&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| Bullet2&lt;br /&gt;
| Freifunk-OLSR&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54Gv1-4&lt;br /&gt;
| Freifunk-OLSR&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54Gv1-4&lt;br /&gt;
| whiterussian&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Supertrasto guifiBUS guifi.net&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM5 Bullet/PwBrg/AirGrd/NanoBr&lt;br /&gt;
| AirOsv3.6+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Other&lt;br /&gt;
| Other&lt;br /&gt;
| DD-WRTv24preSP2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM2 Rocket/Nano/Loco&lt;br /&gt;
| AirOsv221&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Asus&lt;br /&gt;
| Asus WL-500xx&lt;br /&gt;
| AirOsv221&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Pcengines&lt;br /&gt;
| Alix1&lt;br /&gt;
| kamikaze&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM2 Rocket/Nano/Loco&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 153&lt;br /&gt;
| RouterOSv3.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM5 Bullet/PwBrg/AirGrd/NanoBr&lt;br /&gt;
| AirOsv30&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 133C&lt;br /&gt;
| n/a&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation5&lt;br /&gt;
| RouterOSv4.0+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| LiteStation5&lt;br /&gt;
| Freifunk-OLSR&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 112&lt;br /&gt;
| RouterOSv4.7+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation2&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM5 Bullet/PwBrg/AirGrd/NanoBr&lt;br /&gt;
| Freifunk-OLSR&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| Bullet2&lt;br /&gt;
| AirOsv221&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| LiteStation5&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Tp-Link&lt;br /&gt;
| TL-WA7510N&lt;br /&gt;
| n/a&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 600&lt;br /&gt;
| RouterOSv4.0+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Meraki&lt;br /&gt;
| Meraki/Fonera&lt;br /&gt;
| gsffirm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GSv4&lt;br /&gt;
| DD-WRTv24preSP2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GL&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 750/G&lt;br /&gt;
| AirOsv30&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54Gv1-4&lt;br /&gt;
| Freifunk-BATMAN&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM2 Rocket/Nano/Loco&lt;br /&gt;
| DD-WRTv24preSP2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| Bullet2&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GSv1-2&lt;br /&gt;
| DD-WRTv24preSP2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 153&lt;br /&gt;
| RouterOSv4.7+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GSv1-2&lt;br /&gt;
| Alchemy&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Asus&lt;br /&gt;
| Asus WL-500xx&lt;br /&gt;
| AirOsv3.6+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 112&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM2 Bullet/PwBrg/AirGrd/NanoBr&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM5 Rocket/Nano/Loco&lt;br /&gt;
| RouterOSv2.9&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GSv1-2&lt;br /&gt;
| gsffirm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 153&lt;br /&gt;
| n/a&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Pcengines&lt;br /&gt;
| Alix3&lt;br /&gt;
| gsffirm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GL&lt;br /&gt;
| gsffirm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Buffalo&lt;br /&gt;
| WHR-HP-G54, WHR-G54S&lt;br /&gt;
| DD-WRTv24preSP2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM5 Bullet/PwBrg/AirGrd/NanoBr&lt;br /&gt;
| DD-WRTv24preSP2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| Bullet2&lt;br /&gt;
| DD-WRTv24preSP2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM5 Rocket/Nano/Loco&lt;br /&gt;
| RouterOSv5.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| Bullet5&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| AirMaxM5 Rocket/Nano/Loco&lt;br /&gt;
| DD-WRTv24preSP2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Pcengines&lt;br /&gt;
| Alix2&lt;br /&gt;
| DD-WRTv24preSP2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation Loco2&lt;br /&gt;
| DD-WRTv23&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Mikrotik&lt;br /&gt;
| Routerboard 133C&lt;br /&gt;
| AirOsv52&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation2&lt;br /&gt;
| gsffirm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54GSv4&lt;br /&gt;
| Talisman&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Linksys&lt;br /&gt;
| WRT54Gv1-4&lt;br /&gt;
| gsffirm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Ubiquiti&lt;br /&gt;
| NanoStation2&lt;br /&gt;
| DD-WRTv24preSP2&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Albir</name></author>	</entry>

	<entry>
		<id>http://ca.wiki.guifi.net/wiki/Unsolclic</id>
		<title>Unsolclic</title>
		<link rel="alternate" type="text/html" href="http://ca.wiki.guifi.net/wiki/Unsolclic"/>
				<updated>2012-09-29T11:54:15Z</updated>
		
		<summary type="html">&lt;p&gt;Albir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introducció i Definició =&lt;br /&gt;
&lt;br /&gt;
L'UnsolClic és una eina per configurar els aparells que formen part de la xarxa [http://guifi.net Guifi.net] i un dels factors clau per al seu creixement i expansió. Pren la forma d'un fitxer de text que correspòn a una sequència d'ordres escrita en el llenguatge acceptat per el aparell que utilitzem per connectar a la xarxa lliure guifi.net. &lt;br /&gt;
&lt;br /&gt;
Aquest document vol descriure, des de la vessant del desenvolupament del mòdul [https://gitorious.org/guifi/drupal-guifi Drupal-Guifi], tots els processos involucrats en la  confecció  del UnsolClic&lt;br /&gt;
&lt;br /&gt;
== Fortaleses i Febleses ==&lt;br /&gt;
* Fortaleses  &lt;br /&gt;
** Aïlla a l'usuari de la configuració del trasto&lt;br /&gt;
** Actua com a backup de la configuració &lt;br /&gt;
** Fa visibles les configuraciós dels trastos per a tots els usuaris&lt;br /&gt;
** Dona consistencia a la xarxa &lt;br /&gt;
* Febleses&lt;br /&gt;
** Ha de generar codi en diferents llenguatges per a diferents dispositius, per tant s'ha de conèixer mímimament aquests llenguatges&lt;br /&gt;
** La incorporació de dispositius nous requereix aquesta codificació i porta temps. &lt;br /&gt;
** És genera a l'instant i no fa cache ni manté control de versions&lt;br /&gt;
&lt;br /&gt;
== Exemples == &lt;br /&gt;
* Nodes Client &lt;br /&gt;
** Linksys WRT54GL :[http://guifi.net/ca/guifi/device/315/view/unsolclic UnSolclic DD-Guifi] del node [http://guifi.net/ca/node/1589 Gurb Castell]&lt;br /&gt;
** Nanostation 2 : [http://guifilocal/ca/guifi/device/26702/view/unsolclic AirOS 2.0] del node [http://guifilocal/ca/guifi/device/26702 TRSANord80Rd1]&lt;br /&gt;
* Supernodes &lt;br /&gt;
** Linksys WRT54GL&lt;br /&gt;
** RouterBoard RB433 : [http://guifilocal/ca/guifi/device/30084/view/unsolclic RouterOS 4.0+] del node [http://guifilocal/ca/guifi/device/30084 TRSASocietatNord]&lt;br /&gt;
&lt;br /&gt;
= Procés de Generació = &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== La recepta dels tres passos per connectar  == &lt;br /&gt;
&lt;br /&gt;
Abans de generar el UnSolClic cal que completem a la web de guifi.net la recepta dels [https://guifi.net/ca/connectar_a_guifi tres passos per connectar], que ens proporcionarà tota la informació imprescindible, bàsicament&lt;br /&gt;
* 1. Crear un node, defineix el nom del node, la zona de la que hereta configuracions, etc...&lt;br /&gt;
&lt;br /&gt;
[[File:Addnode1.png]]&lt;br /&gt;
&lt;br /&gt;
* 2. Crear un trasto, defineix totes les propietats del nostre aparelli el firmware que executa, així com dades identificatives del nostre trasto.&lt;br /&gt;
 &lt;br /&gt;
[[File:Addradio1b.png]]&lt;br /&gt;
&lt;br /&gt;
* 3. Crear un enllaç, defineix quines seran les connexions del nostre node, l'adreça IP assignada i quins protocols d'enrutament s'utilitzaran&lt;br /&gt;
&lt;br /&gt;
[[File:Addradio3b.png]]&lt;br /&gt;
&lt;br /&gt;
== Fitxers involucrats (per ordre d'execució) == &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
├── guifi.module : Definició de rutes&lt;br /&gt;
├── guifi_unsolclic.inc.php : Execució Ruta UnSolclic, preparació de dependencies, generació Unsolclic&lt;br /&gt;
├── guifi_includes.inc.php : Funcions diverses de guifi.&lt;br /&gt;
├── guifi_node.inc.php : Càrrega de la informació del node&lt;br /&gt;
├── guifi_devices.inc.php : Càrrega de la informació del trasto&lt;br /&gt;
├── guifi_radios.inc.php : Càrrega de la informació de la radio&lt;br /&gt;
├── guifi_interfaces.inc.php : Càrrega de la informació de les interfaces&lt;br /&gt;
├── guifi_ipv4.inc.php : Càrrega de la informació de les adreces ip&lt;br /&gt;
├── guifi_links.inc.php : Càrrega de la informació dels enllaços&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Entitats involucrades ==&lt;br /&gt;
* Zona, la més específica de les diferents zones de la xarxa guifi.net on volem connectar, és a dir, que no tingui altres subzones&lt;br /&gt;
* Node, la ubicació concreta des d'on volem connectar. &lt;br /&gt;
** Trasto (device), l'aparell que utilitzarem per realitzar la connexió ( un node pot tenir més de un trasto i de diferents tipus) &lt;br /&gt;
** Radio , el dispositiu inalàmbric que utilitza el nostre trasto per establir una connexió física  ( per enllaçar es requereix almenys una radio) &lt;br /&gt;
** Interface , el nom mitjançant el qual interactuem amb la radio (n'hi pot haver vàries per cada radio) &lt;br /&gt;
** IPV4 , cadascuna de les adreces IP que reben les interfaces.&lt;br /&gt;
** Enllaços (links) , cadascuna de les connexions del nostre trasto amb altres trastos propers (poden ser wireless o per cable).&lt;br /&gt;
* Fabricant, la casa comercial que ven el trasto&lt;br /&gt;
* Model, la denominació pròpia del fabricant per a determinar el trasto&lt;br /&gt;
* Firmware, el programari intern que executa el trasto per realitzar totes les seves funcions (pot ser propietat del Fabricant, de tercers o de Programari Lliure) &lt;br /&gt;
&lt;br /&gt;
== Esquema de la Base de Dades ==&lt;br /&gt;
&lt;br /&gt;
En la següent imatge es pot veure l'esquema de les taules de les entitats involucreades en la generació del fitxer UnSolClic:&lt;br /&gt;
&lt;br /&gt;
[[File:TaulesUnSolclic2.png]]&lt;br /&gt;
&lt;br /&gt;
== Families de Casos actuals ==&lt;br /&gt;
Les configuracions UnSolclic existents es basen en les següents famílies de firmwares : &lt;br /&gt;
* Kamikaze&lt;br /&gt;
* AirOs&lt;br /&gt;
* GuifiStation&lt;br /&gt;
* Mikrotik&lt;br /&gt;
* WRT-SveaSoft&lt;br /&gt;
&lt;br /&gt;
TODO : Faltaria afegir altres firmwares com els de QMP, etc... &lt;br /&gt;
&lt;br /&gt;
Actualment, tot el codi implicat dels unsolclics  es troba dins de la carpeta [https://gitorious.org/guifi/drupal-guifi/trees/master/firmware firmware], on tenim un fitxer per cadascuna de les families esmentades. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
├── firmware&lt;br /&gt;
│   ├── [https://gitorious.org/guifi/drupal-guifi/blobs/master/firmware/airos.inc.php airos.inc.php&lt;br /&gt;
│   ├── firmware-todo.inc.php&lt;br /&gt;
│   ├── guifistationos.inc.php&lt;br /&gt;
│   ├── kamikaze&lt;br /&gt;
│   │   ├── ar71xx&lt;br /&gt;
│   │   │   └── kamikaze_ap.inc.php&lt;br /&gt;
│   │   ├── atheros&lt;br /&gt;
│   │   │   ├── kamikaze_ad-hoc.inc.php&lt;br /&gt;
│   │   │   ├── kamikaze_ap.inc.php&lt;br /&gt;
│   │   │   └── kamikaze_client.inc.php&lt;br /&gt;
│   │   ├── broadcom&lt;br /&gt;
│   │   │   ├── kamikaze_ad-hoc.inc.php&lt;br /&gt;
│   │   │   ├── kamikaze_ap.inc.php&lt;br /&gt;
│   │   │   └── kamikaze_client.inc.php&lt;br /&gt;
│   │   └── ixp4xx&lt;br /&gt;
│   │       └── kamikaze_ap.inc.php&lt;br /&gt;
│   ├── kamikaze.inc.php&lt;br /&gt;
│   ├── mikrotik-routeros.inc.php&lt;br /&gt;
│   └── wrt-sveasoft-dd.inc.php&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Procés Original Detallat ==&lt;br /&gt;
* Es crida la URL de generació del UnSolclic. &lt;br /&gt;
* Es carrega la ruta definida a guifi.module&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  $items['guifi/device/%guifi_device/view/unsolclic'] = array(&lt;br /&gt;
    'title' =&amp;gt; 'unsolclic',&lt;br /&gt;
    'page callback' =&amp;gt; 'guifi_unsolclic',&lt;br /&gt;
    'page arguments' =&amp;gt; array(2),&lt;br /&gt;
    'access callback' =&amp;gt; 'user_access',&lt;br /&gt;
    'access arguments' =&amp;gt; array('access content'),&lt;br /&gt;
    'type' =&amp;gt; MENU_LOCAL_TASK&lt;br /&gt;
  );&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* S'executa la funció guifi_unsolclic() del fitxer guifi_unsolclic.inc.php  que rep tota la informació del device del que volem l'unsolclic&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function guifi_unsolclic($dev, $format = 'html') {&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Es comprova que el Device tingui assignat un firmware &lt;br /&gt;
* Es carreguen els fitxers de la familia de firmwares corresponent&lt;br /&gt;
* Es comprova el firmware del trasto per cridar la funció del fitxer per aquella família.&lt;br /&gt;
* Es mostra per pantalla el resultat de tot el procés. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Procés Nou Detallat ==&lt;br /&gt;
&lt;br /&gt;
Continua a partir del pas tres del Procés Original &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Afegir suport per a nous aparells = &lt;br /&gt;
&lt;br /&gt;
== Idea general ==&lt;br /&gt;
&lt;br /&gt;
L'objectiu és millorar el procés d'incorporació de nous dispositius a l'aplicació actual. Mitjançant una nova gestió web i un sistema de plantilles estándard, els usuaris avançats podràn crear els configuradors 'UnSolClic' per als nous dispositius del mercat i mantenir els existents amb més facilitat i eficiència.&lt;br /&gt;
&lt;br /&gt;
== Diagrama de fluxe del procés ==&lt;br /&gt;
&lt;br /&gt;
En el següent diagrama, partint de la situació inicial que veiem a la part superior esquerra, es mostra el procés a seguir per poder generar l'UnSolclic per a un aparell nou &lt;br /&gt;
&lt;br /&gt;
[[File:Diagrama fluxe2.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Fabricants ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Llistat&lt;br /&gt;
[[File:Manufacturer1.png]]&lt;br /&gt;
&lt;br /&gt;
* Formulari&lt;br /&gt;
[[File:Manufacturer2.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Models  ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:models1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:models2c.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Paràmetres ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:Params1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:Params2c.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Creació de Firmwares ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:firmware1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:firmware2b.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Plantilles UnsolClic ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:unsolclic1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:unsolclic2b.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Motor de plantilles Twig ===&lt;br /&gt;
&lt;br /&gt;
En la majoria de les webs actuals trobem que, per facilitar el manteniment i l'optimització de codi, es busca la manera de separar la presentació del contingut, el patró de disseny del [http://es.wikipedia.org/wiki/ModeloVistaControlador Model-Vista-Controlador] és el més utilitzat en la majoria de frameworks actuals. Així per una banda tenim les nostres dades i per l'altre un fitxer plantilla de com volem mostrar-les. &lt;br /&gt;
&lt;br /&gt;
Per implementar la capa de presentació és molt útil recórrer a un motor de plantilles estàndard que ens faciliti la feina. En el nostre sistema utilitzarem [http://twig.sensiolabs.org/ Twig] per la seva potència i simplicitat.Les seves característiques principals són les següents:&lt;br /&gt;
* Orígen : Symfony 2 Framework - Llicència : BSD&lt;br /&gt;
* Substitució de variables, filtres de text i crida de funcions natives.&lt;br /&gt;
* Estructures de control de flux&lt;br /&gt;
* Inclusió de fitxers i catxé per augment de rendiment&lt;br /&gt;
* Herència de plantilles&lt;br /&gt;
* Extensions, plugins i sandbox&lt;br /&gt;
&lt;br /&gt;
=== Sintaxi de Twig ===&lt;br /&gt;
&lt;br /&gt;
La sintaxi de Twig s'ha pensat per ser fàcil de fer servir i ràpida. Bàsicament, una plantilla és un fitxer de text en el que hi trobem variables o expressions i etiquetes que en controlen la lògica. &lt;br /&gt;
&lt;br /&gt;
Per mostrar el contingut d'una variable o expressió utilitzem la següent sintaxi : &lt;br /&gt;
{{ variable }} &lt;br /&gt;
&lt;br /&gt;
Per utilitzar etiquetes de control, utilitzarem &lt;br /&gt;
{% set buffer = 'un string amb quelcom' %} &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En el següent exemple de plantilla podem veure diferents exemples de la sintaxi de Twig&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{# hello comment! #}&lt;br /&gt;
{{ foo.bar }} {% set foo = 'foo' %}&lt;br /&gt;
{{ name|striptags|title }}&lt;br /&gt;
{% if users|length &amp;gt; 0 %}&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
        {% for user in users %}&lt;br /&gt;
            &amp;lt;li&amp;gt;{{ user.username|e }}&amp;lt;/li&amp;gt;&lt;br /&gt;
        {% endfor %}&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
{% endif %}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
A la documentació oficial de Twig podem veure [http://twig.sensiolabs.org/doc/templates.html més casos]&lt;br /&gt;
&lt;br /&gt;
=== Utilització de Twig ===&lt;br /&gt;
&lt;br /&gt;
Des de la banda del codi, per utilitzar Twig cal incloure la llibreria, carregar l'objecte i definir mínimament el seu comportament. A la [http://twig.sensiolabs.org/doc/api.html documentació oficial] hi podem trobar el següent fragment de codi :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
require_once '/path/to/lib/Twig/Autoloader.php';&lt;br /&gt;
Twig_Autoloader::register();&lt;br /&gt;
&lt;br /&gt;
$loader = new Twig_Loader_Filesystem('/path/to/templates');&lt;br /&gt;
$twig = new Twig_Environment($loader, array(&lt;br /&gt;
    'cache' =&amp;gt; '/path/to/compilation_cache',&lt;br /&gt;
));&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per carregar una plantilla utilitzem el següent fragment: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$template = $twig-&amp;gt;loadTemplate('index.html');&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i finalment per establir els valors que prendran les variables a la nostra plantilla  i visualitzar-la, el següent codi : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo $template-&amp;gt;render(array('the' =&amp;gt; 'variables', 'go' =&amp;gt; 'here'));&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Convencions de Guifi.net disponibles a les plantilles ===&lt;br /&gt;
&lt;br /&gt;
Com podem extreure de les entitats de guifi.net la informació necessària per fer una plantilla UnSolClic? &lt;br /&gt;
&lt;br /&gt;
Abans de la confecció de l'UnSolclic s'inicialitzen unes variables que contenen tota la informació de les entitats necessàries per tal que la poguem referenciar a les nostres plantilles.  Aquesta informació arriba estructurada de diferents formes i hi podem accedir de dos formes: &lt;br /&gt;
&lt;br /&gt;
* Amb una convenció de noms&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
* Jeràrquicament &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Edició de plantilles UnSolclic ===&lt;br /&gt;
=== Validació de plantilles UnSolclic ===&lt;br /&gt;
&lt;br /&gt;
= Plantilles UnSolclic  =&lt;br /&gt;
== Validades  ==&lt;br /&gt;
*  Mikrotik	- OmniTIK Uxx-5HnD- RouterOSv5.x&lt;br /&gt;
== Pendents de Validar  ==&lt;br /&gt;
* Ubiquiti	- NanoStation2 - AirOsv30&lt;br /&gt;
* Mikrotik -Routerboard 433	 - RouterOSv4.7+&lt;br /&gt;
* Linksys	- WRT54GL	- DD-guifi (MODE AP)&lt;br /&gt;
&lt;br /&gt;
== Combinacions de Model - Firmware == &lt;br /&gt;
&lt;br /&gt;
A la pràctica, com que passem a tenir una plantilla UnSolClic  per cada combinació de Model / Firmware,  necessitem conèixer el total de combinacions que trobem a dins de la xarxa guifi.net, per saber quantes plantilles hauriem de confeccionar. A continuació mostrem el llistat amb totes les combinacions. &lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
! total&amp;lt;/td&amp;gt;&lt;br /&gt;
! name&amp;lt;/td&amp;gt;&lt;br /&gt;
! model&amp;lt;/td&amp;gt;&lt;br /&gt;
! nom&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3818&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| NanoStation2&amp;lt;/td&amp;gt;&lt;br /&gt;
| AirOsv30&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2237&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| NanoStation5&amp;lt;/td&amp;gt;&lt;br /&gt;
| AirOsv30&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2144&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| AirMaxM5 Rocket/Nano/Loco&amp;lt;/td&amp;gt;&lt;br /&gt;
| AirOsv52&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1785&amp;lt;/td&amp;gt;&lt;br /&gt;
| Linksys&amp;lt;/td&amp;gt;&lt;br /&gt;
| WRT54GL&amp;lt;/td&amp;gt;&lt;br /&gt;
| DD-guifi&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1428&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| NanoStation2&amp;lt;/td&amp;gt;&lt;br /&gt;
| Freifunk-OLSR&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1319&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| NanoStation Loco5&amp;lt;/td&amp;gt;&lt;br /&gt;
| AirOsv30&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1247&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| AirMaxM5 Bullet/PwBrg/AirGrd/NanoBr&amp;lt;/td&amp;gt;&lt;br /&gt;
| AirOsv52&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1225&amp;lt;/td&amp;gt;&lt;br /&gt;
| Buffalo&amp;lt;/td&amp;gt;&lt;br /&gt;
| WHR-HP-G54, WHR-G54S&amp;lt;/td&amp;gt;&lt;br /&gt;
| DD-guifi&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 969&amp;lt;/td&amp;gt;&lt;br /&gt;
| Mikrotik&amp;lt;/td&amp;gt;&lt;br /&gt;
| Routerboard SXT 5HnD&amp;lt;/td&amp;gt;&lt;br /&gt;
| RouterOSv5.x&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 892&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| NanoStation Loco2&amp;lt;/td&amp;gt;&lt;br /&gt;
| AirOsv30&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 664&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| NanoStation Loco5&amp;lt;/td&amp;gt;&lt;br /&gt;
| AirOsv3.6+&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 441&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| AirMaxM2 Rocket/Nano/Loco&amp;lt;/td&amp;gt;&lt;br /&gt;
| AirOsv52&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 410&amp;lt;/td&amp;gt;&lt;br /&gt;
| Linksys&amp;lt;/td&amp;gt;&lt;br /&gt;
| WRT54GL&amp;lt;/td&amp;gt;&lt;br /&gt;
| DD-WRTv23&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 362&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| NanoStation5&amp;lt;/td&amp;gt;&lt;br /&gt;
| AirOsv3.6+&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 361&amp;lt;/td&amp;gt;&lt;br /&gt;
| Other&amp;lt;/td&amp;gt;&lt;br /&gt;
| Other&amp;lt;/td&amp;gt;&lt;br /&gt;
| n/a&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 297&amp;lt;/td&amp;gt;&lt;br /&gt;
| Mikrotik&amp;lt;/td&amp;gt;&lt;br /&gt;
| Routerboard SXT 5HnD&amp;lt;/td&amp;gt;&lt;br /&gt;
| RouterOSv4.7+&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 292&amp;lt;/td&amp;gt;&lt;br /&gt;
| Mikrotik&amp;lt;/td&amp;gt;&lt;br /&gt;
| Routerboard 433&amp;lt;/td&amp;gt;&lt;br /&gt;
| RouterOSv4.0+&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 291&amp;lt;/td&amp;gt;&lt;br /&gt;
| Mikrotik&amp;lt;/td&amp;gt;&lt;br /&gt;
| Routerboard 133C&amp;lt;/td&amp;gt;&lt;br /&gt;
| RouterOSv2.9&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 266&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| NanoStation2&amp;lt;/td&amp;gt;&lt;br /&gt;
| AirOsv3.6+&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 243&amp;lt;/td&amp;gt;&lt;br /&gt;
| Buffalo&amp;lt;/td&amp;gt;&lt;br /&gt;
| WHR-HP-G54, WHR-G54S&amp;lt;/td&amp;gt;&lt;br /&gt;
| DD-WRTv23&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 242&amp;lt;/td&amp;gt;&lt;br /&gt;
| Mikrotik&amp;lt;/td&amp;gt;&lt;br /&gt;
| Routerboard 433&amp;lt;/td&amp;gt;&lt;br /&gt;
| RouterOSv5.x&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 230&amp;lt;/td&amp;gt;&lt;br /&gt;
| Mikrotik&amp;lt;/td&amp;gt;&lt;br /&gt;
| Routerboard 600&amp;lt;/td&amp;gt;&lt;br /&gt;
| RouterOSv5.x&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 186&amp;lt;/td&amp;gt;&lt;br /&gt;
| Linksys&amp;lt;/td&amp;gt;&lt;br /&gt;
| WRT54Gv1-4&amp;lt;/td&amp;gt;&lt;br /&gt;
| Alchemy&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 181&amp;lt;/td&amp;gt;&lt;br /&gt;
| Mikrotik&amp;lt;/td&amp;gt;&lt;br /&gt;
| Routerboard 750/G&amp;lt;/td&amp;gt;&lt;br /&gt;
| RouterOSv5.x&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 177&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| NanoStation5&amp;lt;/td&amp;gt;&lt;br /&gt;
| Freifunk-OLSR&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 175&amp;lt;/td&amp;gt;&lt;br /&gt;
| Mikrotik&amp;lt;/td&amp;gt;&lt;br /&gt;
| Routerboard 433&amp;lt;/td&amp;gt;&lt;br /&gt;
| RouterOSv3.x&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 172&amp;lt;/td&amp;gt;&lt;br /&gt;
| Mikrotik&amp;lt;/td&amp;gt;&lt;br /&gt;
| Routerboard 600&amp;lt;/td&amp;gt;&lt;br /&gt;
| RouterOSv3.x&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 169&amp;lt;/td&amp;gt;&lt;br /&gt;
| Linksys&amp;lt;/td&amp;gt;&lt;br /&gt;
| WRT54Gv1-4&amp;lt;/td&amp;gt;&lt;br /&gt;
| DD-WRTv23&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 162&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| AirMaxM2 Bullet/PwBrg/AirGrd/NanoBr&amp;lt;/td&amp;gt;&lt;br /&gt;
| AirOsv52&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 160&amp;lt;/td&amp;gt;&lt;br /&gt;
| Mikrotik&amp;lt;/td&amp;gt;&lt;br /&gt;
| Routerboard 433&amp;lt;/td&amp;gt;&lt;br /&gt;
| RouterOSv4.7+&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 124&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| NanoStation Loco2&amp;lt;/td&amp;gt;&lt;br /&gt;
| AirOsv3.6+&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 119&amp;lt;/td&amp;gt;&lt;br /&gt;
| Mikrotik&amp;lt;/td&amp;gt;&lt;br /&gt;
| Routerboard 600&amp;lt;/td&amp;gt;&lt;br /&gt;
| RouterOSv4.7+&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 117&amp;lt;/td&amp;gt;&lt;br /&gt;
| Mikrotik&amp;lt;/td&amp;gt;&lt;br /&gt;
| Routerboard 411&amp;lt;/td&amp;gt;&lt;br /&gt;
| RouterOSv5.x&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 114&amp;lt;/td&amp;gt;&lt;br /&gt;
| Mikrotik&amp;lt;/td&amp;gt;&lt;br /&gt;
| Routerboard 411&amp;lt;/td&amp;gt;&lt;br /&gt;
| RouterOSv3.x&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 112&amp;lt;/td&amp;gt;&lt;br /&gt;
| Mikrotik&amp;lt;/td&amp;gt;&lt;br /&gt;
| Routerboard 411&amp;lt;/td&amp;gt;&lt;br /&gt;
| RouterOSv4.7+&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 112&amp;lt;/td&amp;gt;&lt;br /&gt;
| Mikrotik&amp;lt;/td&amp;gt;&lt;br /&gt;
| Routerboard 532&amp;lt;/td&amp;gt;&lt;br /&gt;
| RouterOSv2.9&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 89&amp;lt;/td&amp;gt;&lt;br /&gt;
| Linksys&amp;lt;/td&amp;gt;&lt;br /&gt;
| WRT54Gv1-4&amp;lt;/td&amp;gt;&lt;br /&gt;
| DD-guifi&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 79&amp;lt;/td&amp;gt;&lt;br /&gt;
| Mikrotik&amp;lt;/td&amp;gt;&lt;br /&gt;
| Routerboard 750/G&amp;lt;/td&amp;gt;&lt;br /&gt;
| RouterOSv4.7+&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 66&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| NanoStation2&amp;lt;/td&amp;gt;&lt;br /&gt;
| kamikaze&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 66&amp;lt;/td&amp;gt;&lt;br /&gt;
| Mikrotik&amp;lt;/td&amp;gt;&lt;br /&gt;
| Supertrasto guifiBUS guifi.net&amp;lt;/td&amp;gt;&lt;br /&gt;
| RouterOSv5.x&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 59&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| Bullet2&amp;lt;/td&amp;gt;&lt;br /&gt;
| AirOsv30&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 53&amp;lt;/td&amp;gt;&lt;br /&gt;
| Mikrotik&amp;lt;/td&amp;gt;&lt;br /&gt;
| Routerboard 532&amp;lt;/td&amp;gt;&lt;br /&gt;
| RouterOSv5.x&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 46&amp;lt;/td&amp;gt;&lt;br /&gt;
| Mikrotik&amp;lt;/td&amp;gt;&lt;br /&gt;
| Routerboard 800&amp;lt;/td&amp;gt;&lt;br /&gt;
| RouterOSv5.x&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 43&amp;lt;/td&amp;gt;&lt;br /&gt;
| Mikrotik&amp;lt;/td&amp;gt;&lt;br /&gt;
| Routerboard 133&amp;lt;/td&amp;gt;&lt;br /&gt;
| RouterOSv2.9&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 42&amp;lt;/td&amp;gt;&lt;br /&gt;
| Mikrotik&amp;lt;/td&amp;gt;&lt;br /&gt;
| Routerboard 532&amp;lt;/td&amp;gt;&lt;br /&gt;
| RouterOSv4.7+&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 39&amp;lt;/td&amp;gt;&lt;br /&gt;
| Linksys&amp;lt;/td&amp;gt;&lt;br /&gt;
| WRT54Gv1-4&amp;lt;/td&amp;gt;&lt;br /&gt;
| n/a&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 39&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| NanoStation Loco2&amp;lt;/td&amp;gt;&lt;br /&gt;
| Freifunk-OLSR&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 36&amp;lt;/td&amp;gt;&lt;br /&gt;
| Mikrotik&amp;lt;/td&amp;gt;&lt;br /&gt;
| Routerboard 493/G&amp;lt;/td&amp;gt;&lt;br /&gt;
| RouterOSv5.x&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 32&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| RouterStation&amp;lt;/td&amp;gt;&lt;br /&gt;
| gsffirm&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 32&amp;lt;/td&amp;gt;&lt;br /&gt;
| Mikrotik&amp;lt;/td&amp;gt;&lt;br /&gt;
| Routerboard 532&amp;lt;/td&amp;gt;&lt;br /&gt;
| RouterOSv3.x&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 31&amp;lt;/td&amp;gt;&lt;br /&gt;
| Mikrotik&amp;lt;/td&amp;gt;&lt;br /&gt;
| Routerboard 800&amp;lt;/td&amp;gt;&lt;br /&gt;
| RouterOSv4.7+&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 30&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| NanoStation5&amp;lt;/td&amp;gt;&lt;br /&gt;
| AirOsv221&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 30&amp;lt;/td&amp;gt;&lt;br /&gt;
| Pcengines&amp;lt;/td&amp;gt;&lt;br /&gt;
| Alix2&amp;lt;/td&amp;gt;&lt;br /&gt;
| kamikaze&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 29&amp;lt;/td&amp;gt;&lt;br /&gt;
| Mikrotik&amp;lt;/td&amp;gt;&lt;br /&gt;
| Routerboard 133&amp;lt;/td&amp;gt;&lt;br /&gt;
| RouterOSv3.x&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 29&amp;lt;/td&amp;gt;&lt;br /&gt;
| Linksys&amp;lt;/td&amp;gt;&lt;br /&gt;
| WRT54GL&amp;lt;/td&amp;gt;&lt;br /&gt;
| whiterussian&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 27&amp;lt;/td&amp;gt;&lt;br /&gt;
| Linksys&amp;lt;/td&amp;gt;&lt;br /&gt;
| WRT54GSv4&amp;lt;/td&amp;gt;&lt;br /&gt;
| DD-guifi&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 22&amp;lt;/td&amp;gt;&lt;br /&gt;
| Mikrotik&amp;lt;/td&amp;gt;&lt;br /&gt;
| Supertrasto guifiBUS guifi.net&amp;lt;/td&amp;gt;&lt;br /&gt;
| RouterOSv4.7+&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 21&amp;lt;/td&amp;gt;&lt;br /&gt;
| Linksys&amp;lt;/td&amp;gt;&lt;br /&gt;
| WRT54GSv4&amp;lt;/td&amp;gt;&lt;br /&gt;
| DD-WRTv23&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 21&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| LiteStation2&amp;lt;/td&amp;gt;&lt;br /&gt;
| AirOsv30&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 21&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| NanoStation2&amp;lt;/td&amp;gt;&lt;br /&gt;
| DD-WRTv23&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 20&amp;lt;/td&amp;gt;&lt;br /&gt;
| Mikrotik&amp;lt;/td&amp;gt;&lt;br /&gt;
| Routerboard 133C&amp;lt;/td&amp;gt;&lt;br /&gt;
| RouterOSv3.x&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 20&amp;lt;/td&amp;gt;&lt;br /&gt;
| Pcengines&amp;lt;/td&amp;gt;&lt;br /&gt;
| Alix2&amp;lt;/td&amp;gt;&lt;br /&gt;
| gsffirm&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 20&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| LiteStation5&amp;lt;/td&amp;gt;&lt;br /&gt;
| AirOsv30&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 19&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| NanoStation2&amp;lt;/td&amp;gt;&lt;br /&gt;
| AirOsv221&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 19&amp;lt;/td&amp;gt;&lt;br /&gt;
| Linksys&amp;lt;/td&amp;gt;&lt;br /&gt;
| WRT54GL&amp;lt;/td&amp;gt;&lt;br /&gt;
| Freifunk-OLSR&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 17&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| Bullet2&amp;lt;/td&amp;gt;&lt;br /&gt;
| AirOsv3.6+&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 17&amp;lt;/td&amp;gt;&lt;br /&gt;
| Mikrotik&amp;lt;/td&amp;gt;&lt;br /&gt;
| OmniTIK Uxx-5HnD&amp;lt;/td&amp;gt;&lt;br /&gt;
| RouterOSv5.x&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 17&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| NanoStation5&amp;lt;/td&amp;gt;&lt;br /&gt;
| DD-WRTv23&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 16&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| RouterStation&amp;lt;/td&amp;gt;&lt;br /&gt;
| kamikaze&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 15&amp;lt;/td&amp;gt;&lt;br /&gt;
| Linksys&amp;lt;/td&amp;gt;&lt;br /&gt;
| WRT54GSv1-2&amp;lt;/td&amp;gt;&lt;br /&gt;
| DD-guifi&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 15&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| NanoStation Loco2&amp;lt;/td&amp;gt;&lt;br /&gt;
| kamikaze&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 15&amp;lt;/td&amp;gt;&lt;br /&gt;
| Mikrotik&amp;lt;/td&amp;gt;&lt;br /&gt;
| Routerboard 333&amp;lt;/td&amp;gt;&lt;br /&gt;
| RouterOSv3.x&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 15&amp;lt;/td&amp;gt;&lt;br /&gt;
| Asus&amp;lt;/td&amp;gt;&lt;br /&gt;
| Asus WL-500xx&amp;lt;/td&amp;gt;&lt;br /&gt;
| DD-WRTv23&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 14&amp;lt;/td&amp;gt;&lt;br /&gt;
| Linksys&amp;lt;/td&amp;gt;&lt;br /&gt;
| WRT54GL&amp;lt;/td&amp;gt;&lt;br /&gt;
| kamikaze&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 13&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| Bullet5&amp;lt;/td&amp;gt;&lt;br /&gt;
| AirOsv30&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 13&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| NanoStation Loco5&amp;lt;/td&amp;gt;&lt;br /&gt;
| AirOsv221&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 11&amp;lt;/td&amp;gt;&lt;br /&gt;
| Meraki&amp;lt;/td&amp;gt;&lt;br /&gt;
| Meraki/Fonera&amp;lt;/td&amp;gt;&lt;br /&gt;
| kamikaze&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 11&amp;lt;/td&amp;gt;&lt;br /&gt;
| Mikrotik&amp;lt;/td&amp;gt;&lt;br /&gt;
| Routerboard 153&amp;lt;/td&amp;gt;&lt;br /&gt;
| RouterOSv2.9&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 11&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| LiteStation2&amp;lt;/td&amp;gt;&lt;br /&gt;
| Freifunk-OLSR&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 10&amp;lt;/td&amp;gt;&lt;br /&gt;
| Linksys&amp;lt;/td&amp;gt;&lt;br /&gt;
| WRT54Gv1-4&amp;lt;/td&amp;gt;&lt;br /&gt;
| kamikaze&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 10&amp;lt;/td&amp;gt;&lt;br /&gt;
| Linksys&amp;lt;/td&amp;gt;&lt;br /&gt;
| WRT54GL&amp;lt;/td&amp;gt;&lt;br /&gt;
| DD-WRTv24preSP2&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 9&amp;lt;/td&amp;gt;&lt;br /&gt;
| Mikrotik&amp;lt;/td&amp;gt;&lt;br /&gt;
| Routerboard 133&amp;lt;/td&amp;gt;&lt;br /&gt;
| RouterOSv4.7+&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 8&amp;lt;/td&amp;gt;&lt;br /&gt;
| Mikrotik&amp;lt;/td&amp;gt;&lt;br /&gt;
| Routerboard 133C&amp;lt;/td&amp;gt;&lt;br /&gt;
| RouterOSv5.x&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 8&amp;lt;/td&amp;gt;&lt;br /&gt;
| Pcengines&amp;lt;/td&amp;gt;&lt;br /&gt;
| Alix3&amp;lt;/td&amp;gt;&lt;br /&gt;
| kamikaze&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 7&amp;lt;/td&amp;gt;&lt;br /&gt;
| Other&amp;lt;/td&amp;gt;&lt;br /&gt;
| Other&amp;lt;/td&amp;gt;&lt;br /&gt;
| DD-guifi&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 7&amp;lt;/td&amp;gt;&lt;br /&gt;
| Mikrotik&amp;lt;/td&amp;gt;&lt;br /&gt;
| Routerboard 133&amp;lt;/td&amp;gt;&lt;br /&gt;
| RouterOSv5.x&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 7&amp;lt;/td&amp;gt;&lt;br /&gt;
| D-Link&amp;lt;/td&amp;gt;&lt;br /&gt;
| DIR-600 B1/B2&amp;lt;/td&amp;gt;&lt;br /&gt;
| DD-WRTv24preSP2&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 7&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| NanoStation Loco5&amp;lt;/td&amp;gt;&lt;br /&gt;
| AirOsv52&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 7&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| Bullet5&amp;lt;/td&amp;gt;&lt;br /&gt;
| AirOsv3.6+&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 7&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| AirMaxM5 Rocket/Nano/Loco&amp;lt;/td&amp;gt;&lt;br /&gt;
| AirOsv3.6+&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 7&amp;lt;/td&amp;gt;&lt;br /&gt;
| Mikrotik&amp;lt;/td&amp;gt;&lt;br /&gt;
| Routerboard 112&amp;lt;/td&amp;gt;&lt;br /&gt;
| RouterOSv2.9&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 7&amp;lt;/td&amp;gt;&lt;br /&gt;
| Mikrotik&amp;lt;/td&amp;gt;&lt;br /&gt;
| Routerboard 1100&amp;lt;/td&amp;gt;&lt;br /&gt;
| RouterOSv5.x&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 6&amp;lt;/td&amp;gt;&lt;br /&gt;
| Setup Informatica&amp;lt;/td&amp;gt;&lt;br /&gt;
| GuifiStation2&amp;lt;/td&amp;gt;&lt;br /&gt;
| GuifiStationOS1.0&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 6&amp;lt;/td&amp;gt;&lt;br /&gt;
| Linksys&amp;lt;/td&amp;gt;&lt;br /&gt;
| WRT54GL&amp;lt;/td&amp;gt;&lt;br /&gt;
| Talisman&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 6&amp;lt;/td&amp;gt;&lt;br /&gt;
| Meraki&amp;lt;/td&amp;gt;&lt;br /&gt;
| Meraki/Fonera&amp;lt;/td&amp;gt;&lt;br /&gt;
| DD-WRTv24preSP2&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 6&amp;lt;/td&amp;gt;&lt;br /&gt;
| Setup Informatica&amp;lt;/td&amp;gt;&lt;br /&gt;
| GuifiStation5&amp;lt;/td&amp;gt;&lt;br /&gt;
| GuifiStationOS1.0&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| RouterStationPro&amp;lt;/td&amp;gt;&lt;br /&gt;
| kamikaze&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| NanoStation Loco5&amp;lt;/td&amp;gt;&lt;br /&gt;
| kamikaze&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5&amp;lt;/td&amp;gt;&lt;br /&gt;
| Mikrotik&amp;lt;/td&amp;gt;&lt;br /&gt;
| Routerboard 800&amp;lt;/td&amp;gt;&lt;br /&gt;
| RouterOSv4.0+&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| NanoStation Loco5&amp;lt;/td&amp;gt;&lt;br /&gt;
| DD-WRTv23&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| NanoStation5&amp;lt;/td&amp;gt;&lt;br /&gt;
| kamikaze&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5&amp;lt;/td&amp;gt;&lt;br /&gt;
| Mikrotik&amp;lt;/td&amp;gt;&lt;br /&gt;
| Supertrasto guifiBUS guifi.net&amp;lt;/td&amp;gt;&lt;br /&gt;
| RouterOSv2.9&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&amp;lt;/td&amp;gt;&lt;br /&gt;
| Linksys&amp;lt;/td&amp;gt;&lt;br /&gt;
| WRT54GL&amp;lt;/td&amp;gt;&lt;br /&gt;
| n/a&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&amp;lt;/td&amp;gt;&lt;br /&gt;
| Mikrotik&amp;lt;/td&amp;gt;&lt;br /&gt;
| Routerboard 2011&amp;lt;/td&amp;gt;&lt;br /&gt;
| RouterOSv5.x&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| RouterStation&amp;lt;/td&amp;gt;&lt;br /&gt;
| DD-WRTv23&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| RouterStationPro&amp;lt;/td&amp;gt;&lt;br /&gt;
| gsffirm&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&amp;lt;/td&amp;gt;&lt;br /&gt;
| Mikrotik&amp;lt;/td&amp;gt;&lt;br /&gt;
| Supertrasto guifiBUS guifi.net&amp;lt;/td&amp;gt;&lt;br /&gt;
| RouterOSv3.x&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&amp;lt;/td&amp;gt;&lt;br /&gt;
| Linksys&amp;lt;/td&amp;gt;&lt;br /&gt;
| WRT54Gv1-4&amp;lt;/td&amp;gt;&lt;br /&gt;
| DD-WRTv24preSP2&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&amp;lt;/td&amp;gt;&lt;br /&gt;
| Mikrotik&amp;lt;/td&amp;gt;&lt;br /&gt;
| Routerboard 133C&amp;lt;/td&amp;gt;&lt;br /&gt;
| RouterOSv4.7+&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&amp;lt;/td&amp;gt;&lt;br /&gt;
| Other&amp;lt;/td&amp;gt;&lt;br /&gt;
| Other&amp;lt;/td&amp;gt;&lt;br /&gt;
| AirOsv30&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| NanoStation2&amp;lt;/td&amp;gt;&lt;br /&gt;
| AirOsv52&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&amp;lt;/td&amp;gt;&lt;br /&gt;
| Mikrotik&amp;lt;/td&amp;gt;&lt;br /&gt;
| Routerboard 532&amp;lt;/td&amp;gt;&lt;br /&gt;
| kamikaze&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| NanoStation Loco5&amp;lt;/td&amp;gt;&lt;br /&gt;
| Freifunk-OLSR&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&amp;lt;/td&amp;gt;&lt;br /&gt;
| Mikrotik&amp;lt;/td&amp;gt;&lt;br /&gt;
| Routerboard 493/G&amp;lt;/td&amp;gt;&lt;br /&gt;
| RouterOSv4.7+&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| NanoStation5&amp;lt;/td&amp;gt;&lt;br /&gt;
| gsffirm&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| NanoStation5&amp;lt;/td&amp;gt;&lt;br /&gt;
| AirOsv52&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| NanoStation Loco2&amp;lt;/td&amp;gt;&lt;br /&gt;
| AirOsv221&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&amp;lt;/td&amp;gt;&lt;br /&gt;
| Mikrotik&amp;lt;/td&amp;gt;&lt;br /&gt;
| Routerboard 333&amp;lt;/td&amp;gt;&lt;br /&gt;
| RouterOSv4.7+&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&amp;lt;/td&amp;gt;&lt;br /&gt;
| Mikrotik&amp;lt;/td&amp;gt;&lt;br /&gt;
| Routerboard 600&amp;lt;/td&amp;gt;&lt;br /&gt;
| RouterOSv2.9&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| AirMaxM5 Rocket/Nano/Loco&amp;lt;/td&amp;gt;&lt;br /&gt;
| AirOsv30&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&amp;lt;/td&amp;gt;&lt;br /&gt;
| Mikrotik&amp;lt;/td&amp;gt;&lt;br /&gt;
| Routerboard 333&amp;lt;/td&amp;gt;&lt;br /&gt;
| RouterOSv5.x&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&amp;lt;/td&amp;gt;&lt;br /&gt;
| Other&amp;lt;/td&amp;gt;&lt;br /&gt;
| Other&amp;lt;/td&amp;gt;&lt;br /&gt;
| Alchemy&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&amp;lt;/td&amp;gt;&lt;br /&gt;
| Linksys&amp;lt;/td&amp;gt;&lt;br /&gt;
| WRT54GSv4&amp;lt;/td&amp;gt;&lt;br /&gt;
| kamikaze&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&amp;lt;/td&amp;gt;&lt;br /&gt;
| Asus&amp;lt;/td&amp;gt;&lt;br /&gt;
| Asus WL-500xx&amp;lt;/td&amp;gt;&lt;br /&gt;
| kamikaze&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&amp;lt;/td&amp;gt;&lt;br /&gt;
| Gateworks&amp;lt;/td&amp;gt;&lt;br /&gt;
| Avila GW2348-4&amp;lt;/td&amp;gt;&lt;br /&gt;
| kamikaze&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| NanoStation Loco5&amp;lt;/td&amp;gt;&lt;br /&gt;
| gsffirm&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&amp;lt;/td&amp;gt;&lt;br /&gt;
| Linksys&amp;lt;/td&amp;gt;&lt;br /&gt;
| WRT54Gv1-4&amp;lt;/td&amp;gt;&lt;br /&gt;
| Talisman&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&amp;lt;/td&amp;gt;&lt;br /&gt;
| Asus&amp;lt;/td&amp;gt;&lt;br /&gt;
| Asus WL-500xx&amp;lt;/td&amp;gt;&lt;br /&gt;
| AirOsv52&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&amp;lt;/td&amp;gt;&lt;br /&gt;
| Mikrotik&amp;lt;/td&amp;gt;&lt;br /&gt;
| Routerboard 750/G&amp;lt;/td&amp;gt;&lt;br /&gt;
| DD-guifi&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&amp;lt;/td&amp;gt;&lt;br /&gt;
| Mikrotik&amp;lt;/td&amp;gt;&lt;br /&gt;
| Routerboard 532&amp;lt;/td&amp;gt;&lt;br /&gt;
| RouterOSv4.0+&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&amp;lt;/td&amp;gt;&lt;br /&gt;
| Buffalo&amp;lt;/td&amp;gt;&lt;br /&gt;
| WHR-HP-G54, WHR-G54S&amp;lt;/td&amp;gt;&lt;br /&gt;
| n/a&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&amp;lt;/td&amp;gt;&lt;br /&gt;
| Linksys&amp;lt;/td&amp;gt;&lt;br /&gt;
| WRT54GSv1-2&amp;lt;/td&amp;gt;&lt;br /&gt;
| kamikaze&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&amp;lt;/td&amp;gt;&lt;br /&gt;
| Mikrotik&amp;lt;/td&amp;gt;&lt;br /&gt;
| Routerboard 1100&amp;lt;/td&amp;gt;&lt;br /&gt;
| RouterOSv4.7+&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| RouterStationPro&amp;lt;/td&amp;gt;&lt;br /&gt;
| DD-WRTv23&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&amp;lt;/td&amp;gt;&lt;br /&gt;
| Asus&amp;lt;/td&amp;gt;&lt;br /&gt;
| Asus WL-500xx&amp;lt;/td&amp;gt;&lt;br /&gt;
| DD-WRTv24preSP2&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&amp;lt;/td&amp;gt;&lt;br /&gt;
| Linksys&amp;lt;/td&amp;gt;&lt;br /&gt;
| WRT54GSv1-2&amp;lt;/td&amp;gt;&lt;br /&gt;
| DD-WRTv23&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&amp;lt;/td&amp;gt;&lt;br /&gt;
| Mikrotik&amp;lt;/td&amp;gt;&lt;br /&gt;
| Supertrasto guifiBUS guifi.net&amp;lt;/td&amp;gt;&lt;br /&gt;
| RouterOSv4.0+&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&amp;lt;/td&amp;gt;&lt;br /&gt;
| Mikrotik&amp;lt;/td&amp;gt;&lt;br /&gt;
| Routerboard 153&amp;lt;/td&amp;gt;&lt;br /&gt;
| RouterOSv5.x&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&amp;lt;/td&amp;gt;&lt;br /&gt;
| Other&amp;lt;/td&amp;gt;&lt;br /&gt;
| Other&amp;lt;/td&amp;gt;&lt;br /&gt;
| DD-WRTv23&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| Bullet2&amp;lt;/td&amp;gt;&lt;br /&gt;
| Freifunk-OLSR&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&amp;lt;/td&amp;gt;&lt;br /&gt;
| Linksys&amp;lt;/td&amp;gt;&lt;br /&gt;
| WRT54Gv1-4&amp;lt;/td&amp;gt;&lt;br /&gt;
| Freifunk-OLSR&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&amp;lt;/td&amp;gt;&lt;br /&gt;
| Linksys&amp;lt;/td&amp;gt;&lt;br /&gt;
| WRT54Gv1-4&amp;lt;/td&amp;gt;&lt;br /&gt;
| whiterussian&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&amp;lt;/td&amp;gt;&lt;br /&gt;
| Mikrotik&amp;lt;/td&amp;gt;&lt;br /&gt;
| Supertrasto guifiBUS guifi.net&amp;lt;/td&amp;gt;&lt;br /&gt;
| kamikaze&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| AirMaxM5 Bullet/PwBrg/AirGrd/NanoBr&amp;lt;/td&amp;gt;&lt;br /&gt;
| AirOsv3.6+&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&amp;lt;/td&amp;gt;&lt;br /&gt;
| Other&amp;lt;/td&amp;gt;&lt;br /&gt;
| Other&amp;lt;/td&amp;gt;&lt;br /&gt;
| DD-WRTv24preSP2&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| AirMaxM2 Rocket/Nano/Loco&amp;lt;/td&amp;gt;&lt;br /&gt;
| AirOsv221&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&amp;lt;/td&amp;gt;&lt;br /&gt;
| Asus&amp;lt;/td&amp;gt;&lt;br /&gt;
| Asus WL-500xx&amp;lt;/td&amp;gt;&lt;br /&gt;
| AirOsv221&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&amp;lt;/td&amp;gt;&lt;br /&gt;
| Pcengines&amp;lt;/td&amp;gt;&lt;br /&gt;
| Alix1&amp;lt;/td&amp;gt;&lt;br /&gt;
| kamikaze&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| AirMaxM2 Rocket/Nano/Loco&amp;lt;/td&amp;gt;&lt;br /&gt;
| RouterOSv5.x&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&amp;lt;/td&amp;gt;&lt;br /&gt;
| Mikrotik&amp;lt;/td&amp;gt;&lt;br /&gt;
| Routerboard 153&amp;lt;/td&amp;gt;&lt;br /&gt;
| RouterOSv3.x&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| AirMaxM5 Bullet/PwBrg/AirGrd/NanoBr&amp;lt;/td&amp;gt;&lt;br /&gt;
| AirOsv30&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&amp;lt;/td&amp;gt;&lt;br /&gt;
| Mikrotik&amp;lt;/td&amp;gt;&lt;br /&gt;
| Routerboard 133C&amp;lt;/td&amp;gt;&lt;br /&gt;
| n/a&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| NanoStation5&amp;lt;/td&amp;gt;&lt;br /&gt;
| RouterOSv4.0+&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| LiteStation5&amp;lt;/td&amp;gt;&lt;br /&gt;
| Freifunk-OLSR&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&amp;lt;/td&amp;gt;&lt;br /&gt;
| Mikrotik&amp;lt;/td&amp;gt;&lt;br /&gt;
| Routerboard 112&amp;lt;/td&amp;gt;&lt;br /&gt;
| RouterOSv4.7+&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| NanoStation2&amp;lt;/td&amp;gt;&lt;br /&gt;
| RouterOSv5.x&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| AirMaxM5 Bullet/PwBrg/AirGrd/NanoBr&amp;lt;/td&amp;gt;&lt;br /&gt;
| Freifunk-OLSR&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| Bullet2&amp;lt;/td&amp;gt;&lt;br /&gt;
| AirOsv221&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| LiteStation5&amp;lt;/td&amp;gt;&lt;br /&gt;
| DD-WRTv23&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&amp;lt;/td&amp;gt;&lt;br /&gt;
| Tp-Link&amp;lt;/td&amp;gt;&lt;br /&gt;
| TL-WA7510N&amp;lt;/td&amp;gt;&lt;br /&gt;
| n/a&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&amp;lt;/td&amp;gt;&lt;br /&gt;
| Mikrotik&amp;lt;/td&amp;gt;&lt;br /&gt;
| Routerboard 600&amp;lt;/td&amp;gt;&lt;br /&gt;
| RouterOSv4.0+&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&amp;lt;/td&amp;gt;&lt;br /&gt;
| Meraki&amp;lt;/td&amp;gt;&lt;br /&gt;
| Meraki/Fonera&amp;lt;/td&amp;gt;&lt;br /&gt;
| gsffirm&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&amp;lt;/td&amp;gt;&lt;br /&gt;
| Linksys&amp;lt;/td&amp;gt;&lt;br /&gt;
| WRT54GSv4&amp;lt;/td&amp;gt;&lt;br /&gt;
| DD-WRTv24preSP2&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&amp;lt;/td&amp;gt;&lt;br /&gt;
| Linksys&amp;lt;/td&amp;gt;&lt;br /&gt;
| WRT54GL&amp;lt;/td&amp;gt;&lt;br /&gt;
| RouterOSv5.x&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&amp;lt;/td&amp;gt;&lt;br /&gt;
| Mikrotik&amp;lt;/td&amp;gt;&lt;br /&gt;
| Routerboard 750/G&amp;lt;/td&amp;gt;&lt;br /&gt;
| AirOsv30&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&amp;lt;/td&amp;gt;&lt;br /&gt;
| Linksys&amp;lt;/td&amp;gt;&lt;br /&gt;
| WRT54Gv1-4&amp;lt;/td&amp;gt;&lt;br /&gt;
| Freifunk-BATMAN&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| AirMaxM2 Rocket/Nano/Loco&amp;lt;/td&amp;gt;&lt;br /&gt;
| DD-WRTv24preSP2&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| Bullet2&amp;lt;/td&amp;gt;&lt;br /&gt;
| DD-WRTv23&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&amp;lt;/td&amp;gt;&lt;br /&gt;
| Linksys&amp;lt;/td&amp;gt;&lt;br /&gt;
| WRT54GSv1-2&amp;lt;/td&amp;gt;&lt;br /&gt;
| DD-WRTv24preSP2&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&amp;lt;/td&amp;gt;&lt;br /&gt;
| Mikrotik&amp;lt;/td&amp;gt;&lt;br /&gt;
| Routerboard 153&amp;lt;/td&amp;gt;&lt;br /&gt;
| RouterOSv4.7+&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&amp;lt;/td&amp;gt;&lt;br /&gt;
| Linksys&amp;lt;/td&amp;gt;&lt;br /&gt;
| WRT54GSv1-2&amp;lt;/td&amp;gt;&lt;br /&gt;
| Alchemy&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&amp;lt;/td&amp;gt;&lt;br /&gt;
| Asus&amp;lt;/td&amp;gt;&lt;br /&gt;
| Asus WL-500xx&amp;lt;/td&amp;gt;&lt;br /&gt;
| AirOsv3.6+&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&amp;lt;/td&amp;gt;&lt;br /&gt;
| Mikrotik&amp;lt;/td&amp;gt;&lt;br /&gt;
| Routerboard 112&amp;lt;/td&amp;gt;&lt;br /&gt;
| RouterOSv5.x&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| AirMaxM2 Bullet/PwBrg/AirGrd/NanoBr&amp;lt;/td&amp;gt;&lt;br /&gt;
| DD-WRTv23&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| AirMaxM5 Rocket/Nano/Loco&amp;lt;/td&amp;gt;&lt;br /&gt;
| RouterOSv2.9&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&amp;lt;/td&amp;gt;&lt;br /&gt;
| Linksys&amp;lt;/td&amp;gt;&lt;br /&gt;
| WRT54GSv1-2&amp;lt;/td&amp;gt;&lt;br /&gt;
| gsffirm&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&amp;lt;/td&amp;gt;&lt;br /&gt;
| Mikrotik&amp;lt;/td&amp;gt;&lt;br /&gt;
| Routerboard 153&amp;lt;/td&amp;gt;&lt;br /&gt;
| n/a&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&amp;lt;/td&amp;gt;&lt;br /&gt;
| Pcengines&amp;lt;/td&amp;gt;&lt;br /&gt;
| Alix3&amp;lt;/td&amp;gt;&lt;br /&gt;
| gsffirm&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&amp;lt;/td&amp;gt;&lt;br /&gt;
| Linksys&amp;lt;/td&amp;gt;&lt;br /&gt;
| WRT54GL&amp;lt;/td&amp;gt;&lt;br /&gt;
| gsffirm&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&amp;lt;/td&amp;gt;&lt;br /&gt;
| Buffalo&amp;lt;/td&amp;gt;&lt;br /&gt;
| WHR-HP-G54, WHR-G54S&amp;lt;/td&amp;gt;&lt;br /&gt;
| DD-WRTv24preSP2&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| AirMaxM5 Bullet/PwBrg/AirGrd/NanoBr&amp;lt;/td&amp;gt;&lt;br /&gt;
| DD-WRTv24preSP2&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| Bullet2&amp;lt;/td&amp;gt;&lt;br /&gt;
| DD-WRTv24preSP2&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| AirMaxM5 Rocket/Nano/Loco&amp;lt;/td&amp;gt;&lt;br /&gt;
| RouterOSv5.x&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| Bullet5&amp;lt;/td&amp;gt;&lt;br /&gt;
| DD-WRTv23&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| AirMaxM5 Rocket/Nano/Loco&amp;lt;/td&amp;gt;&lt;br /&gt;
| DD-WRTv24preSP2&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&amp;lt;/td&amp;gt;&lt;br /&gt;
| Pcengines&amp;lt;/td&amp;gt;&lt;br /&gt;
| Alix2&amp;lt;/td&amp;gt;&lt;br /&gt;
| DD-WRTv24preSP2&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| NanoStation Loco2&amp;lt;/td&amp;gt;&lt;br /&gt;
| DD-WRTv23&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&amp;lt;/td&amp;gt;&lt;br /&gt;
| Mikrotik&amp;lt;/td&amp;gt;&lt;br /&gt;
| Routerboard 133C&amp;lt;/td&amp;gt;&lt;br /&gt;
| AirOsv52&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| NanoStation2&amp;lt;/td&amp;gt;&lt;br /&gt;
| gsffirm&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&amp;lt;/td&amp;gt;&lt;br /&gt;
| Linksys&amp;lt;/td&amp;gt;&lt;br /&gt;
| WRT54GSv4&amp;lt;/td&amp;gt;&lt;br /&gt;
| Talisman&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&amp;lt;/td&amp;gt;&lt;br /&gt;
| Linksys&amp;lt;/td&amp;gt;&lt;br /&gt;
| WRT54Gv1-4&amp;lt;/td&amp;gt;&lt;br /&gt;
| gsffirm&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&amp;lt;/td&amp;gt;&lt;br /&gt;
| Ubiquiti&amp;lt;/td&amp;gt;&lt;br /&gt;
| NanoStation2&amp;lt;/td&amp;gt;&lt;br /&gt;
| DD-WRTv24preSP2&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Albir</name></author>	</entry>

	<entry>
		<id>http://ca.wiki.guifi.net/wiki/Unsolclic</id>
		<title>Unsolclic</title>
		<link rel="alternate" type="text/html" href="http://ca.wiki.guifi.net/wiki/Unsolclic"/>
				<updated>2012-09-28T22:38:40Z</updated>
		
		<summary type="html">&lt;p&gt;Albir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introducció i Definició =&lt;br /&gt;
&lt;br /&gt;
L'UnsolClic és una eina per configurar els aparells que formen part de la xarxa [http://guifi.net Guifi.net] i un dels factors clau per al seu creixement i expansió. Pren la forma d'un fitxer de text que correspòn a una sequència d'ordres escrita en el llenguatge acceptat per el aparell que utilitzem per connectar a la xarxa lliure guifi.net. &lt;br /&gt;
&lt;br /&gt;
Aquest document vol descriure, des de la vessant del desenvolupament del mòdul [https://gitorious.org/guifi/drupal-guifi Drupal-Guifi], tots els processos involucrats en la  confecció  del UnsolClic&lt;br /&gt;
&lt;br /&gt;
== Fortaleses i Febleses ==&lt;br /&gt;
* Fortaleses  &lt;br /&gt;
** Aïlla a l'usuari de la configuració del trasto&lt;br /&gt;
** Actua com a backup de la configuració &lt;br /&gt;
** Fa visibles les configuraciós dels trastos per a tots els usuaris&lt;br /&gt;
** Dona consistencia a la xarxa &lt;br /&gt;
* Febleses&lt;br /&gt;
** Ha de generar codi en diferents llenguatges per a diferents dispositius, per tant s'ha de conèixer mímimament aquests llenguatges&lt;br /&gt;
** La incorporació de dispositius nous requereix aquesta codificació i porta temps. &lt;br /&gt;
** És genera a l'instant i no fa cache ni manté control de versions&lt;br /&gt;
&lt;br /&gt;
== Exemples == &lt;br /&gt;
* Nodes Client &lt;br /&gt;
** Linksys WRT54GL :[http://guifi.net/ca/guifi/device/315/view/unsolclic UnSolclic DD-Guifi] del node [http://guifi.net/ca/node/1589 Gurb Castell]&lt;br /&gt;
** Nanostation 2 : [http://guifilocal/ca/guifi/device/26702/view/unsolclic AirOS 2.0] del node [http://guifilocal/ca/guifi/device/26702 TRSANord80Rd1]&lt;br /&gt;
* Supernodes &lt;br /&gt;
** Linksys WRT54GL&lt;br /&gt;
** RouterBoard RB433 : [http://guifilocal/ca/guifi/device/30084/view/unsolclic RouterOS 4.0+] del node [http://guifilocal/ca/guifi/device/30084 TRSASocietatNord]&lt;br /&gt;
&lt;br /&gt;
= Procés de Generació = &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== La recepta dels tres passos per connectar  == &lt;br /&gt;
&lt;br /&gt;
Abans de generar el UnSolClic cal que completem a la web de guifi.net la recepta dels [https://guifi.net/ca/connectar_a_guifi tres passos per connectar], que ens proporcionarà tota la informació imprescindible, bàsicament&lt;br /&gt;
* 1. Crear un node, defineix el nom del node, la zona de la que hereta configuracions, etc...&lt;br /&gt;
&lt;br /&gt;
[[File:Addnode1.png]]&lt;br /&gt;
&lt;br /&gt;
* 2. Crear un trasto, defineix totes les propietats del nostre aparelli el firmware que executa, així com dades identificatives del nostre trasto.&lt;br /&gt;
 &lt;br /&gt;
[[File:Addradio1b.png]]&lt;br /&gt;
&lt;br /&gt;
* 3. Crear un enllaç, defineix quines seran les connexions del nostre node, l'adreça IP assignada i quins protocols d'enrutament s'utilitzaran&lt;br /&gt;
&lt;br /&gt;
[[File:Addradio3b.png]]&lt;br /&gt;
&lt;br /&gt;
== Fitxers involucrats (per ordre d'execució) == &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
├── guifi.module : Definició de rutes&lt;br /&gt;
├── guifi_unsolclic.inc.php : Execució Ruta UnSolclic, preparació de dependencies, generació Unsolclic&lt;br /&gt;
├── guifi_includes.inc.php : Funcions diverses de guifi.&lt;br /&gt;
├── guifi_node.inc.php : Càrrega de la informació del node&lt;br /&gt;
├── guifi_devices.inc.php : Càrrega de la informació del trasto&lt;br /&gt;
├── guifi_radios.inc.php : Càrrega de la informació de la radio&lt;br /&gt;
├── guifi_interfaces.inc.php : Càrrega de la informació de les interfaces&lt;br /&gt;
├── guifi_ipv4.inc.php : Càrrega de la informació de les adreces ip&lt;br /&gt;
├── guifi_links.inc.php : Càrrega de la informació dels enllaços&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Entitats involucrades ==&lt;br /&gt;
* Zona, la més específica de les diferents zones de la xarxa guifi.net on volem connectar, és a dir, que no tingui altres subzones&lt;br /&gt;
* Node, la ubicació concreta des d'on volem connectar. &lt;br /&gt;
** Trasto (device), l'aparell que utilitzarem per realitzar la connexió ( un node pot tenir més de un trasto i de diferents tipus) &lt;br /&gt;
** Radio , el dispositiu inalàmbric que utilitza el nostre trasto per establir una connexió física  ( per enllaçar es requereix almenys una radio) &lt;br /&gt;
** Interface , el nom mitjançant el qual interactuem amb la radio (n'hi pot haver vàries per cada radio) &lt;br /&gt;
** IPV4 , cadascuna de les adreces IP que reben les interfaces.&lt;br /&gt;
** Enllaços (links) , cadascuna de les connexions del nostre trasto amb altres trastos propers (poden ser wireless o per cable).&lt;br /&gt;
* Fabricant, la casa comercial que ven el trasto&lt;br /&gt;
* Model, la denominació pròpia del fabricant per a determinar el trasto&lt;br /&gt;
* Firmware, el programari intern que executa el trasto per realitzar totes les seves funcions (pot ser propietat del Fabricant, de tercers o de Programari Lliure) &lt;br /&gt;
&lt;br /&gt;
== Esquema de la Base de Dades ==&lt;br /&gt;
&lt;br /&gt;
En la següent imatge es pot veure l'esquema de les taules de les entitats involucreades en la generació del fitxer UnSolClic:&lt;br /&gt;
&lt;br /&gt;
[[File:TaulesUnSolclic2.png]]&lt;br /&gt;
&lt;br /&gt;
== Families de Casos actuals ==&lt;br /&gt;
Les configuracions UnSolclic existents es basen en les següents famílies de firmwares : &lt;br /&gt;
* Kamikaze&lt;br /&gt;
* AirOs&lt;br /&gt;
* GuifiStation&lt;br /&gt;
* Mikrotik&lt;br /&gt;
* WRT-SveaSoft&lt;br /&gt;
&lt;br /&gt;
TODO : Faltaria afegir altres firmwares com els de QMP, etc... &lt;br /&gt;
&lt;br /&gt;
Actualment, tot el codi implicat dels unsolclics  es troba dins de la carpeta [https://gitorious.org/guifi/drupal-guifi/trees/master/firmware firmware], on tenim un fitxer per cadascuna de les families esmentades. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
├── firmware&lt;br /&gt;
│   ├── [https://gitorious.org/guifi/drupal-guifi/blobs/master/firmware/airos.inc.php airos.inc.php&lt;br /&gt;
│   ├── firmware-todo.inc.php&lt;br /&gt;
│   ├── guifistationos.inc.php&lt;br /&gt;
│   ├── kamikaze&lt;br /&gt;
│   │   ├── ar71xx&lt;br /&gt;
│   │   │   └── kamikaze_ap.inc.php&lt;br /&gt;
│   │   ├── atheros&lt;br /&gt;
│   │   │   ├── kamikaze_ad-hoc.inc.php&lt;br /&gt;
│   │   │   ├── kamikaze_ap.inc.php&lt;br /&gt;
│   │   │   └── kamikaze_client.inc.php&lt;br /&gt;
│   │   ├── broadcom&lt;br /&gt;
│   │   │   ├── kamikaze_ad-hoc.inc.php&lt;br /&gt;
│   │   │   ├── kamikaze_ap.inc.php&lt;br /&gt;
│   │   │   └── kamikaze_client.inc.php&lt;br /&gt;
│   │   └── ixp4xx&lt;br /&gt;
│   │       └── kamikaze_ap.inc.php&lt;br /&gt;
│   ├── kamikaze.inc.php&lt;br /&gt;
│   ├── mikrotik-routeros.inc.php&lt;br /&gt;
│   └── wrt-sveasoft-dd.inc.php&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Procés Original Detallat ==&lt;br /&gt;
* Es crida la URL de generació del UnSolclic. &lt;br /&gt;
* Es carrega la ruta definida a guifi.module&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  $items['guifi/device/%guifi_device/view/unsolclic'] = array(&lt;br /&gt;
    'title' =&amp;gt; 'unsolclic',&lt;br /&gt;
    'page callback' =&amp;gt; 'guifi_unsolclic',&lt;br /&gt;
    'page arguments' =&amp;gt; array(2),&lt;br /&gt;
    'access callback' =&amp;gt; 'user_access',&lt;br /&gt;
    'access arguments' =&amp;gt; array('access content'),&lt;br /&gt;
    'type' =&amp;gt; MENU_LOCAL_TASK&lt;br /&gt;
  );&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* S'executa la funció guifi_unsolclic() del fitxer guifi_unsolclic.inc.php  que rep tota la informació del device del que volem l'unsolclic&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function guifi_unsolclic($dev, $format = 'html') {&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Es comprova que el Device tingui assignat un firmware &lt;br /&gt;
* Es carreguen els fitxers de la familia de firmwares corresponent&lt;br /&gt;
* Es comprova el firmware del trasto per cridar la funció del fitxer per aquella família.&lt;br /&gt;
* Es mostra per pantalla el resultat de tot el procés. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Procés Nou Detallat ==&lt;br /&gt;
&lt;br /&gt;
Continua a partir del pas tres del Procés Original &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Afegir suport per a nous aparells = &lt;br /&gt;
&lt;br /&gt;
== Idea general ==&lt;br /&gt;
&lt;br /&gt;
L'objectiu és millorar el procés d'incorporació de nous dispositius a l'aplicació actual. Mitjançant una nova gestió web i un sistema de plantilles estándard, els usuaris avançats podràn crear els configuradors 'UnSolClic' per als nous dispositius del mercat i mantenir els existents amb més facilitat i eficiència.&lt;br /&gt;
&lt;br /&gt;
== Diagrama de fluxe del procés ==&lt;br /&gt;
&lt;br /&gt;
En el següent diagrama, partint de la situació inicial que veiem a la part superior esquerra, es mostra el procés a seguir per poder generar l'UnSolclic per a un aparell nou &lt;br /&gt;
&lt;br /&gt;
[[File:Diagrama fluxe2.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Fabricants ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Llistat&lt;br /&gt;
[[File:Manufacturer1.png]]&lt;br /&gt;
&lt;br /&gt;
* Formulari&lt;br /&gt;
[[File:Manufacturer2.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Models  ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:models1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:models2c.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Paràmetres ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:Params1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:Params2c.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Creació de Firmwares ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:firmware1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:firmware2b.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Plantilles UnsolClic ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:unsolclic1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:unsolclic2b.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Motor de plantilles Twig ===&lt;br /&gt;
&lt;br /&gt;
En la majoria de les webs actuals trobem que, per facilitar el manteniment i l'optimització de codi, es busca la manera de separar la presentació del contingut, el patró de disseny del [http://es.wikipedia.org/wiki/ModeloVistaControlador Model-Vista-Controlador] és el més utilitzat en la majoria de frameworks actuals. Així per una banda tenim les nostres dades i per l'altre un fitxer plantilla de com volem mostrar-les. &lt;br /&gt;
&lt;br /&gt;
Per implementar la capa de presentació és molt útil recórrer a un motor de plantilles estàndard que ens faciliti la feina. En el nostre sistema utilitzarem [http://twig.sensiolabs.org/ Twig] per la seva potència i simplicitat.Les seves característiques principals són les següents:&lt;br /&gt;
* Orígen : Symfony 2 Framework - Llicència : BSD&lt;br /&gt;
* Substitució de variables, filtres de text i crida de funcions natives.&lt;br /&gt;
* Estructures de control de flux&lt;br /&gt;
* Inclusió de fitxers i catxé per augment de rendiment&lt;br /&gt;
* Herència de plantilles&lt;br /&gt;
* Extensions, plugins i sandbox&lt;br /&gt;
&lt;br /&gt;
=== Sintaxi de Twig ===&lt;br /&gt;
&lt;br /&gt;
La sintaxi de Twig s'ha pensat per ser fàcil de fer servir i ràpida. Bàsicament, una plantilla és un fitxer de text en el que hi trobem variables o expressions i etiquetes que en controlen la lògica. &lt;br /&gt;
&lt;br /&gt;
Per mostrar el contingut d'una variable o expressió utilitzem la següent sintaxi : &lt;br /&gt;
{{ variable }} &lt;br /&gt;
&lt;br /&gt;
Per utilitzar etiquetes de control, utilitzarem &lt;br /&gt;
{% set buffer = 'un string amb quelcom' %} &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En el següent exemple de plantilla podem veure diferents exemples de la sintaxi de Twig&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{# hello comment! #}&lt;br /&gt;
{{ foo.bar }} {% set foo = 'foo' %}&lt;br /&gt;
{{ name|striptags|title }}&lt;br /&gt;
{% if users|length &amp;gt; 0 %}&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
        {% for user in users %}&lt;br /&gt;
            &amp;lt;li&amp;gt;{{ user.username|e }}&amp;lt;/li&amp;gt;&lt;br /&gt;
        {% endfor %}&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
{% endif %}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
A la documentació oficial de Twig podem veure [http://twig.sensiolabs.org/doc/templates.html més casos]&lt;br /&gt;
&lt;br /&gt;
=== Utilització de Twig ===&lt;br /&gt;
&lt;br /&gt;
Des de la banda del codi, per utilitzar Twig cal incloure la llibreria, carregar l'objecte i definir mínimament el seu comportament. A la [http://twig.sensiolabs.org/doc/api.html documentació oficial] hi podem trobar el següent fragment de codi :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
require_once '/path/to/lib/Twig/Autoloader.php';&lt;br /&gt;
Twig_Autoloader::register();&lt;br /&gt;
&lt;br /&gt;
$loader = new Twig_Loader_Filesystem('/path/to/templates');&lt;br /&gt;
$twig = new Twig_Environment($loader, array(&lt;br /&gt;
    'cache' =&amp;gt; '/path/to/compilation_cache',&lt;br /&gt;
));&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per carregar una plantilla utilitzem el següent fragment: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$template = $twig-&amp;gt;loadTemplate('index.html');&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i finalment per establir els valors que prendran les variables a la nostra plantilla  i visualitzar-la, el següent codi : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo $template-&amp;gt;render(array('the' =&amp;gt; 'variables', 'go' =&amp;gt; 'here'));&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Convencions de Guifi.net disponibles a les plantilles ===&lt;br /&gt;
&lt;br /&gt;
Com podem extreure de les entitats de guifi.net la informació necessària per fer una plantilla UnSolClic? &lt;br /&gt;
&lt;br /&gt;
Abans de la confecció de l'UnSolclic s'inicialitzen unes variables que contenen tota la informació de les entitats necessàries per tal que la poguem referenciar a les nostres plantilles.  Aquesta informació arriba estructurada de diferents formes i hi podem accedir de dos formes: &lt;br /&gt;
&lt;br /&gt;
* Amb una convenció de noms&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
* Jeràrquicament &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Edició de plantilles UnSolclic ===&lt;br /&gt;
=== Validació de plantilles UnSolclic ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Plantilles UnSolclic  =&lt;br /&gt;
== Validades  ==&lt;br /&gt;
*  Mikrotik	- OmniTIK Uxx-5HnD- RouterOSv5.x&lt;br /&gt;
== Pendents de Validar  ==&lt;br /&gt;
* Ubiquiti	- NanoStation2 - AirOsv30&lt;br /&gt;
* Mikrotik -Routerboard 433	 - RouterOSv4.7+&lt;br /&gt;
* Linksys	- WRT54GL	- DD-guifi (MODE AP)&lt;/div&gt;</summary>
		<author><name>Albir</name></author>	</entry>

	<entry>
		<id>http://ca.wiki.guifi.net/wiki/Unsolclic</id>
		<title>Unsolclic</title>
		<link rel="alternate" type="text/html" href="http://ca.wiki.guifi.net/wiki/Unsolclic"/>
				<updated>2012-09-28T22:23:23Z</updated>
		
		<summary type="html">&lt;p&gt;Albir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introducció i Definició =&lt;br /&gt;
&lt;br /&gt;
L'UnsolClic és una eina per configurar els aparells que formen part de la xarxa [http://guifi.net Guifi.net] i un dels factors clau per al seu creixement i expansió. Pren la forma d'un fitxer de text que correspòn a una sequència d'ordres escrita en el llenguatge acceptat per el aparell que utilitzem per connectar a la xarxa lliure guifi.net. &lt;br /&gt;
&lt;br /&gt;
Aquest document vol descriure, des de la vessant del desenvolupament del mòdul [https://gitorious.org/guifi/drupal-guifi Drupal-Guifi], tots els processos involucrats en la  confecció  del UnsolClic&lt;br /&gt;
&lt;br /&gt;
== Fortaleses i Febleses ==&lt;br /&gt;
* Fortaleses  &lt;br /&gt;
** Aïlla a l'usuari de la configuració del trasto&lt;br /&gt;
** Actua com a backup de la configuració &lt;br /&gt;
** Fa visibles les configuraciós dels trastos per a tots els usuaris&lt;br /&gt;
** Dona consistencia a la xarxa &lt;br /&gt;
* Febleses&lt;br /&gt;
** Ha de generar codi en diferents llenguatges per a diferents dispositius, per tant s'ha de conèixer mímimament aquests llenguatges&lt;br /&gt;
** La incorporació de dispositius nous requereix aquesta codificació i porta temps. &lt;br /&gt;
** És genera a l'instant i no fa cache ni manté control de versions&lt;br /&gt;
&lt;br /&gt;
== Exemples == &lt;br /&gt;
* Nodes Client &lt;br /&gt;
** Linksys WRT54GL :[http://guifi.net/ca/guifi/device/315/view/unsolclic UnSolclic DD-Guifi] del node [http://guifi.net/ca/node/1589 Gurb Castell]&lt;br /&gt;
** Nanostation 2 : [http://guifilocal/ca/guifi/device/26702/view/unsolclic AirOS 2.0] del node [http://guifilocal/ca/guifi/device/26702 TRSANord80Rd1]&lt;br /&gt;
* Supernodes &lt;br /&gt;
** Linksys WRT54GL&lt;br /&gt;
** RouterBoard RB433 : [http://guifilocal/ca/guifi/device/30084/view/unsolclic RouterOS 4.0+] del node [http://guifilocal/ca/guifi/device/30084 TRSASocietatNord]&lt;br /&gt;
&lt;br /&gt;
= Procés de Generació = &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== La recepta dels tres passos per connectar  == &lt;br /&gt;
&lt;br /&gt;
Abans de generar el UnSolClic cal que completem a la web de guifi.net la recepta dels [https://guifi.net/ca/connectar_a_guifi tres passos per connectar], que ens proporcionarà tota la informació imprescindible, bàsicament&lt;br /&gt;
* 1. Crear un node, defineix el nom del node, la zona de la que hereta configuracions, etc...&lt;br /&gt;
&lt;br /&gt;
[[File:Addnode1.png]]&lt;br /&gt;
&lt;br /&gt;
* 2. Crear un trasto, defineix totes les propietats del nostre aparelli el firmware que executa, així com dades identificatives del nostre trasto.&lt;br /&gt;
 &lt;br /&gt;
[[File:Addradio1b.png]]&lt;br /&gt;
&lt;br /&gt;
* 3. Crear un enllaç, defineix quines seran les connexions del nostre node, l'adreça IP assignada i quins protocols d'enrutament s'utilitzaran&lt;br /&gt;
&lt;br /&gt;
[[File:Addradio3b.png]]&lt;br /&gt;
&lt;br /&gt;
== Fitxers involucrats (per ordre d'execució) == &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
├── guifi.module : Definició de rutes&lt;br /&gt;
├── guifi_unsolclic.inc.php : Execució Ruta UnSolclic, preparació de dependencies, generació Unsolclic&lt;br /&gt;
├── guifi_includes.inc.php : Funcions diverses de guifi.&lt;br /&gt;
├── guifi_node.inc.php : Càrrega de la informació del node&lt;br /&gt;
├── guifi_devices.inc.php : Càrrega de la informació del trasto&lt;br /&gt;
├── guifi_radios.inc.php : Càrrega de la informació de la radio&lt;br /&gt;
├── guifi_interfaces.inc.php : Càrrega de la informació de les interfaces&lt;br /&gt;
├── guifi_ipv4.inc.php : Càrrega de la informació de les adreces ip&lt;br /&gt;
├── guifi_links.inc.php : Càrrega de la informació dels enllaços&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Entitats involucrades ==&lt;br /&gt;
* Zona, la més específica de les diferents zones de la xarxa guifi.net on volem connectar, és a dir, que no tingui altres subzones&lt;br /&gt;
* Node, la ubicació concreta des d'on volem connectar. &lt;br /&gt;
** Trasto (device), l'aparell que utilitzarem per realitzar la connexió ( un node pot tenir més de un trasto i de diferents tipus) &lt;br /&gt;
** Radio , el dispositiu inalàmbric que utilitza el nostre trasto per establir una connexió física  ( per enllaçar es requereix almenys una radio) &lt;br /&gt;
** Interface , el nom mitjançant el qual interactuem amb la radio (n'hi pot haver vàries per cada radio) &lt;br /&gt;
** IPV4 , cadascuna de les adreces IP que reben les interfaces.&lt;br /&gt;
** Enllaços (links) , cadascuna de les connexions del nostre trasto amb altres trastos propers (poden ser wireless o per cable).&lt;br /&gt;
* Fabricant, la casa comercial que ven el trasto&lt;br /&gt;
* Model, la denominació pròpia del fabricant per a determinar el trasto&lt;br /&gt;
* Firmware, el programari intern que executa el trasto per realitzar totes les seves funcions (pot ser propietat del Fabricant, de tercers o de Programari Lliure) &lt;br /&gt;
&lt;br /&gt;
== Esquema de la Base de Dades ==&lt;br /&gt;
&lt;br /&gt;
En la següent imatge es pot veure l'esquema de les taules de les entitats involucreades en la generació del fitxer UnSolClic:&lt;br /&gt;
&lt;br /&gt;
[[File:TaulesUnSolclic2.png]]&lt;br /&gt;
&lt;br /&gt;
== Families de Casos actuals ==&lt;br /&gt;
Les configuracions UnSolclic existents es basen en les següents famílies de firmwares : &lt;br /&gt;
* Kamikaze&lt;br /&gt;
* AirOs&lt;br /&gt;
* GuifiStation&lt;br /&gt;
* Mikrotik&lt;br /&gt;
* WRT-SveaSoft&lt;br /&gt;
&lt;br /&gt;
TODO : Faltaria afegir altres firmwares com els de QMP, etc... &lt;br /&gt;
&lt;br /&gt;
Actualment, tot el codi implicat dels unsolclics  es troba dins de la carpeta [https://gitorious.org/guifi/drupal-guifi/trees/master/firmware firmware], on tenim un fitxer per cadascuna de les families esmentades. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
├── firmware&lt;br /&gt;
│   ├── [https://gitorious.org/guifi/drupal-guifi/blobs/master/firmware/airos.inc.php airos.inc.php&lt;br /&gt;
│   ├── firmware-todo.inc.php&lt;br /&gt;
│   ├── guifistationos.inc.php&lt;br /&gt;
│   ├── kamikaze&lt;br /&gt;
│   │   ├── ar71xx&lt;br /&gt;
│   │   │   └── kamikaze_ap.inc.php&lt;br /&gt;
│   │   ├── atheros&lt;br /&gt;
│   │   │   ├── kamikaze_ad-hoc.inc.php&lt;br /&gt;
│   │   │   ├── kamikaze_ap.inc.php&lt;br /&gt;
│   │   │   └── kamikaze_client.inc.php&lt;br /&gt;
│   │   ├── broadcom&lt;br /&gt;
│   │   │   ├── kamikaze_ad-hoc.inc.php&lt;br /&gt;
│   │   │   ├── kamikaze_ap.inc.php&lt;br /&gt;
│   │   │   └── kamikaze_client.inc.php&lt;br /&gt;
│   │   └── ixp4xx&lt;br /&gt;
│   │       └── kamikaze_ap.inc.php&lt;br /&gt;
│   ├── kamikaze.inc.php&lt;br /&gt;
│   ├── mikrotik-routeros.inc.php&lt;br /&gt;
│   └── wrt-sveasoft-dd.inc.php&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Procés Original Detallat ==&lt;br /&gt;
* Es crida la URL de generació del UnSolclic. &lt;br /&gt;
* Es carrega la ruta definida a guifi.module&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  $items['guifi/device/%guifi_device/view/unsolclic'] = array(&lt;br /&gt;
    'title' =&amp;gt; 'unsolclic',&lt;br /&gt;
    'page callback' =&amp;gt; 'guifi_unsolclic',&lt;br /&gt;
    'page arguments' =&amp;gt; array(2),&lt;br /&gt;
    'access callback' =&amp;gt; 'user_access',&lt;br /&gt;
    'access arguments' =&amp;gt; array('access content'),&lt;br /&gt;
    'type' =&amp;gt; MENU_LOCAL_TASK&lt;br /&gt;
  );&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* S'executa la funció guifi_unsolclic() del fitxer guifi_unsolclic.inc.php  que rep tota la informació del device del que volem l'unsolclic&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function guifi_unsolclic($dev, $format = 'html') {&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Es comprova que el Device tingui assignat un firmware &lt;br /&gt;
* Es carreguen els fitxers de la familia de firmwares corresponent&lt;br /&gt;
* Es comprova el firmware del trasto per cridar la funció del fitxer per aquella família.&lt;br /&gt;
* Es mostra per pantalla el resultat de tot el procés. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Procés Nou Detallat ==&lt;br /&gt;
&lt;br /&gt;
Continua a partir del pas tres del Procés Original &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Afegir suport per a nous aparells = &lt;br /&gt;
&lt;br /&gt;
== Idea general ==&lt;br /&gt;
&lt;br /&gt;
L'objectiu és millorar el procés d'incorporació de nous dispositius a l'aplicació actual. Mitjançant una nova gestió web i un sistema de plantilles estándard, els usuaris avançats podràn crear els configuradors 'UnSolClic' per als nous dispositius del mercat i mantenir els existents amb més facilitat i eficiència.&lt;br /&gt;
&lt;br /&gt;
== Diagrama de fluxe del procés ==&lt;br /&gt;
&lt;br /&gt;
En el següent diagrama, partint de la situació inicial que veiem a la part superior esquerra, es mostra el procés a seguir per poder generar l'UnSolclic per a un aparell nou &lt;br /&gt;
&lt;br /&gt;
[[File:Diagrama fluxe2.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Fabricants ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Llistat&lt;br /&gt;
[[File:Manufacturer1.png]]&lt;br /&gt;
&lt;br /&gt;
* Formulari&lt;br /&gt;
[[File:Manufacturer2.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Models  ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:models1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:models2c.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Paràmetres ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:Params1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:Params2c.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Creació de Firmwares ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:firmware1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:firmware2b.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Plantilles UnsolClic ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:unsolclic1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:unsolclic2b.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Motor de plantilles Twig ===&lt;br /&gt;
&lt;br /&gt;
En la majoria de les webs actuals trobem que, per facilitar el manteniment i l'optimització de codi, es busca la manera de separar la presentació del contingut, el patró de disseny del [http://es.wikipedia.org/wiki/ModeloVistaControlador Model-Vista-Controlador] és el més utilitzat en la majoria de frameworks actuals. Així per una banda tenim les nostres dades i per l'altre un fitxer plantilla de com volem mostrar-les. &lt;br /&gt;
&lt;br /&gt;
Per implementar la capa de presentació és molt útil recórrer a un motor de plantilles estàndard que ens faciliti la feina. En el nostre sistema utilitzarem [http://twig.sensiolabs.org/ Twig] per la seva potència i simplicitat.Les seves característiques principals són les següents:&lt;br /&gt;
* Orígen : Symfony 2 Framework - Llicència : BSD&lt;br /&gt;
* Substitució de variables, filtres de text i crida de funcions natives.&lt;br /&gt;
* Estructures de control de flux&lt;br /&gt;
* Inclusió de fitxers i catxé per augment de rendiment&lt;br /&gt;
* Herència de plantilles&lt;br /&gt;
* Extensions, plugins i sandbox&lt;br /&gt;
&lt;br /&gt;
=== Sintaxi de Twig ===&lt;br /&gt;
&lt;br /&gt;
La sintaxi de Twig s'ha pensat per ser fàcil de fer servir i ràpida. Bàsicament, una plantilla és un fitxer de text en el que hi trobem variables o expressions i etiquetes que en controlen la lògica. &lt;br /&gt;
&lt;br /&gt;
Per mostrar el contingut d'una variable o expressió utilitzem la següent sintaxi : &lt;br /&gt;
{{ variable }} &lt;br /&gt;
&lt;br /&gt;
Per utilitzar etiquetes de control, utilitzarem &lt;br /&gt;
{% set buffer = 'un string amb quelcom' %} &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En el següent exemple de plantilla podem veure diferents exemples de la sintaxi de Twig&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{# hello comment! #}&lt;br /&gt;
{{ foo.bar }} {% set foo = 'foo' %}&lt;br /&gt;
{{ name|striptags|title }}&lt;br /&gt;
{% if users|length &amp;gt; 0 %}&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
        {% for user in users %}&lt;br /&gt;
            &amp;lt;li&amp;gt;{{ user.username|e }}&amp;lt;/li&amp;gt;&lt;br /&gt;
        {% endfor %}&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
{% endif %}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
A la documentació oficial de Twig podem veure [http://twig.sensiolabs.org/doc/templates.html més casos]&lt;br /&gt;
&lt;br /&gt;
=== Utilització de Twig ===&lt;br /&gt;
&lt;br /&gt;
Des de la banda del codi, per utilitzar Twig cal incloure la llibreria, carregar l'objecte i definir mínimament el seu comportament. A la [http://twig.sensiolabs.org/doc/api.html documentació oficial] hi podem trobar el següent fragment de codi :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
require_once '/path/to/lib/Twig/Autoloader.php';&lt;br /&gt;
Twig_Autoloader::register();&lt;br /&gt;
&lt;br /&gt;
$loader = new Twig_Loader_Filesystem('/path/to/templates');&lt;br /&gt;
$twig = new Twig_Environment($loader, array(&lt;br /&gt;
    'cache' =&amp;gt; '/path/to/compilation_cache',&lt;br /&gt;
));&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per carregar una plantilla utilitzem el següent fragment: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$template = $twig-&amp;gt;loadTemplate('index.html');&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i finalment per establir els valors que prendran les variables a la nostra plantilla  i visualitzar-la, el següent codi : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo $template-&amp;gt;render(array('the' =&amp;gt; 'variables', 'go' =&amp;gt; 'here'));&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Convencions de Guifi.net disponibles a les plantilles ===&lt;br /&gt;
&lt;br /&gt;
Com podem extreure de les entitats de guifi.net la informació necessària per fer una plantilla UnSolClic? &lt;br /&gt;
&lt;br /&gt;
Abans de la confecció de l'UnSolclic s'inicialitzen unes variables que contenen tota la informació de les entitats necessàries per tal que la poguem referenciar a les nostres plantilles.  Aquesta informació arriba estructurada de diferents formes i hi podem accedir de dos formes: &lt;br /&gt;
&lt;br /&gt;
* Amb una convenció de noms&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
* Jeràrquicament &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Edició de plantilles UnSolclic ===&lt;br /&gt;
=== Validació de plantilles UnSolclic ===&lt;/div&gt;</summary>
		<author><name>Albir</name></author>	</entry>

	<entry>
		<id>http://ca.wiki.guifi.net/wiki/Unsolclic</id>
		<title>Unsolclic</title>
		<link rel="alternate" type="text/html" href="http://ca.wiki.guifi.net/wiki/Unsolclic"/>
				<updated>2012-09-28T22:22:18Z</updated>
		
		<summary type="html">&lt;p&gt;Albir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introducció i Definició =&lt;br /&gt;
&lt;br /&gt;
L'UnsolClic és una eina per configurar els aparells que formen part de la xarxa [http://guifi.net Guifi.net] i un dels factors clau per al seu creixement i expansió. Pren la forma d'un fitxer de text que correspòn a una sequència d'ordres escrita en el llenguatge acceptat per el aparell que utilitzem per connectar a la xarxa lliure guifi.net. &lt;br /&gt;
&lt;br /&gt;
Aquest document vol descriure, des de la vessant del desenvolupament del mòdul [https://gitorious.org/guifi/drupal-guifi Drupal-Guifi], tots els processos involucrats en la  confecció  del UnsolClic&lt;br /&gt;
&lt;br /&gt;
== Fortaleses i Febleses ==&lt;br /&gt;
* Fortaleses  &lt;br /&gt;
** Aïlla a l'usuari de la configuració del trasto&lt;br /&gt;
** Actua com a backup de la configuració &lt;br /&gt;
** Fa visibles les configuraciós dels trastos per a tots els usuaris&lt;br /&gt;
** Dona consistencia a la xarxa &lt;br /&gt;
* Febleses&lt;br /&gt;
** Ha de generar codi en diferents llenguatges per a diferents dispositius, per tant s'ha de conèixer mímimament aquests llenguatges&lt;br /&gt;
** La incorporació de dispositius nous requereix aquesta codificació i porta temps. &lt;br /&gt;
** És genera a l'instant i no fa cache ni manté control de versions&lt;br /&gt;
&lt;br /&gt;
== Exemples == &lt;br /&gt;
* Nodes Client &lt;br /&gt;
** Linksys WRT54GL :[http://guifi.net/ca/guifi/device/315/view/unsolclic UnSolclic DD-Guifi] del node [http://guifi.net/ca/node/1589 Gurb Castell]&lt;br /&gt;
** Nanostation 2 : [http://guifilocal/ca/guifi/device/26702/view/unsolclic AirOS 2.0] del node [http://guifilocal/ca/guifi/device/26702 TRSANord80Rd1]&lt;br /&gt;
* Supernodes &lt;br /&gt;
** Linksys WRT54GL&lt;br /&gt;
** RouterBoard RB433 : [http://guifilocal/ca/guifi/device/30084/view/unsolclic RouterOS 4.0+] del node [http://guifilocal/ca/guifi/device/30084 TRSASocietatNord]&lt;br /&gt;
&lt;br /&gt;
= Procés de Generació = &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== La recepta dels tres passos per connectar  == &lt;br /&gt;
&lt;br /&gt;
Abans de generar el UnSolClic cal que completem a la web de guifi.net la recepta dels [https://guifi.net/ca/connectar_a_guifi tres passos per connectar], que ens proporcionarà tota la informació imprescindible, bàsicament&lt;br /&gt;
* 1. Crear un node, defineix el nom del node, la zona de la que hereta configuracions, etc...&lt;br /&gt;
&lt;br /&gt;
[[File:Addnode1.png]]&lt;br /&gt;
&lt;br /&gt;
* 2. Crear un trasto, defineix totes les propietats del nostre aparelli el firmware que executa, així com dades identificatives del nostre trasto.&lt;br /&gt;
 &lt;br /&gt;
[[File:Addradio1b.png]]&lt;br /&gt;
&lt;br /&gt;
* 3. Crear un enllaç, defineix quines seran les connexions del nostre node, l'adreça IP assignada i quins protocols d'enrutament s'utilitzaran&lt;br /&gt;
&lt;br /&gt;
[[File:Addradio3b.png]]&lt;br /&gt;
&lt;br /&gt;
== Fitxers involucrats (per ordre d'execució) == &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
├── guifi.module : Definició de rutes&lt;br /&gt;
├── guifi_unsolclic.inc.php : Execució Ruta UnSolclic, preparació de dependencies, generació Unsolclic&lt;br /&gt;
├── guifi_includes.inc.php : Funcions diverses de guifi.&lt;br /&gt;
├── guifi_node.inc.php : Càrrega de la informació del node&lt;br /&gt;
├── guifi_devices.inc.php : Càrrega de la informació del trasto&lt;br /&gt;
├── guifi_radios.inc.php : Càrrega de la informació de la radio&lt;br /&gt;
├── guifi_interfaces.inc.php : Càrrega de la informació de les interfaces&lt;br /&gt;
├── guifi_ipv4.inc.php : Càrrega de la informació de les adreces ip&lt;br /&gt;
├── guifi_links.inc.php : Càrrega de la informació dels enllaços&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Entitats involucrades ==&lt;br /&gt;
* Zona, la més específica de les diferents zones de la xarxa guifi.net on volem connectar, és a dir, que no tingui altres subzones&lt;br /&gt;
* Node, la ubicació concreta des d'on volem connectar. &lt;br /&gt;
** Trasto (device), l'aparell que utilitzarem per realitzar la connexió ( un node pot tenir més de un trasto i de diferents tipus) &lt;br /&gt;
** Radio , el dispositiu inalàmbric que utilitza el nostre trasto per establir una connexió física  ( per enllaçar es requereix almenys una radio) &lt;br /&gt;
** Interface , el nom mitjançant el qual interactuem amb la radio (n'hi pot haver vàries per cada radio) &lt;br /&gt;
** IPV4 , cadascuna de les adreces IP que reben les interfaces.&lt;br /&gt;
** Enllaços (links) , cadascuna de les connexions del nostre trasto amb altres trastos propers (poden ser wireless o per cable).&lt;br /&gt;
* Fabricant, la casa comercial que ven el trasto&lt;br /&gt;
* Model, la denominació pròpia del fabricant per a determinar el trasto&lt;br /&gt;
* Firmware, el programari intern que executa el trasto per realitzar totes les seves funcions (pot ser propietat del Fabricant, de tercers o de Programari Lliure) &lt;br /&gt;
&lt;br /&gt;
== Esquema de la Base de Dades ==&lt;br /&gt;
&lt;br /&gt;
En la següent imatge es pot veure l'esquema de les taules de les entitats involucreades en la generació del fitxer UnSolClic:&lt;br /&gt;
&lt;br /&gt;
[[File:TaulesUnSolclic2.png]]&lt;br /&gt;
&lt;br /&gt;
== Families de Casos actuals ==&lt;br /&gt;
Les configuracions UnSolclic existents es basen en les següents famílies de firmwares : &lt;br /&gt;
* Kamikaze&lt;br /&gt;
* AirOs&lt;br /&gt;
* GuifiStation&lt;br /&gt;
* Mikrotik&lt;br /&gt;
* WRT-SveaSoft&lt;br /&gt;
&lt;br /&gt;
TODO : Faltaria afegir altres firmwares com els de QMP, etc... &lt;br /&gt;
&lt;br /&gt;
Actualment, tot el codi implicat dels unsolclics  es troba dins de la carpeta [https://gitorious.org/guifi/drupal-guifi/trees/master/firmware firmware], on tenim un fitxer per cadascuna de les families esmentades. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
├── firmware&lt;br /&gt;
│   ├── [https://gitorious.org/guifi/drupal-guifi/blobs/master/firmware/airos.inc.php airos.inc.php&lt;br /&gt;
│   ├── firmware-todo.inc.php&lt;br /&gt;
│   ├── guifistationos.inc.php&lt;br /&gt;
│   ├── kamikaze&lt;br /&gt;
│   │   ├── ar71xx&lt;br /&gt;
│   │   │   └── kamikaze_ap.inc.php&lt;br /&gt;
│   │   ├── atheros&lt;br /&gt;
│   │   │   ├── kamikaze_ad-hoc.inc.php&lt;br /&gt;
│   │   │   ├── kamikaze_ap.inc.php&lt;br /&gt;
│   │   │   └── kamikaze_client.inc.php&lt;br /&gt;
│   │   ├── broadcom&lt;br /&gt;
│   │   │   ├── kamikaze_ad-hoc.inc.php&lt;br /&gt;
│   │   │   ├── kamikaze_ap.inc.php&lt;br /&gt;
│   │   │   └── kamikaze_client.inc.php&lt;br /&gt;
│   │   └── ixp4xx&lt;br /&gt;
│   │       └── kamikaze_ap.inc.php&lt;br /&gt;
│   ├── kamikaze.inc.php&lt;br /&gt;
│   ├── mikrotik-routeros.inc.php&lt;br /&gt;
│   └── wrt-sveasoft-dd.inc.php&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Procés Original Detallat ==&lt;br /&gt;
* Es crida la URL de generació del UnSolclic. &lt;br /&gt;
* Es carrega la ruta definida a guifi.module&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  $items['guifi/device/%guifi_device/view/unsolclic'] = array(&lt;br /&gt;
    'title' =&amp;gt; 'unsolclic',&lt;br /&gt;
    'page callback' =&amp;gt; 'guifi_unsolclic',&lt;br /&gt;
    'page arguments' =&amp;gt; array(2),&lt;br /&gt;
    'access callback' =&amp;gt; 'user_access',&lt;br /&gt;
    'access arguments' =&amp;gt; array('access content'),&lt;br /&gt;
    'type' =&amp;gt; MENU_LOCAL_TASK&lt;br /&gt;
  );&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* S'executa la funció guifi_unsolclic() del fitxer guifi_unsolclic.inc.php  que rep tota la informació del device del que volem l'unsolclic&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function guifi_unsolclic($dev, $format = 'html') {&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Es comprova que el Device tingui assignat un firmware &lt;br /&gt;
* Es carreguen els fitxers de la familia de firmwares corresponent&lt;br /&gt;
* Es comprova el firmware del trasto per cridar la funció del fitxer per aquella família.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Procés Nou Detallat ==&lt;br /&gt;
&lt;br /&gt;
Continua a partir del pas tres del Procés Original &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Afegir suport per a nous aparells = &lt;br /&gt;
&lt;br /&gt;
== Idea general ==&lt;br /&gt;
&lt;br /&gt;
L'objectiu és millorar el procés d'incorporació de nous dispositius a l'aplicació actual. Mitjançant una nova gestió web i un sistema de plantilles estándard, els usuaris avançats podràn crear els configuradors 'UnSolClic' per als nous dispositius del mercat i mantenir els existents amb més facilitat i eficiència.&lt;br /&gt;
&lt;br /&gt;
== Diagrama de fluxe del procés ==&lt;br /&gt;
&lt;br /&gt;
En el següent diagrama, partint de la situació inicial que veiem a la part superior esquerra, es mostra el procés a seguir per poder generar l'UnSolclic per a un aparell nou &lt;br /&gt;
&lt;br /&gt;
[[File:Diagrama fluxe2.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Fabricants ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Llistat&lt;br /&gt;
[[File:Manufacturer1.png]]&lt;br /&gt;
&lt;br /&gt;
* Formulari&lt;br /&gt;
[[File:Manufacturer2.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Models  ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:models1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:models2c.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Paràmetres ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:Params1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:Params2c.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Creació de Firmwares ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:firmware1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:firmware2b.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Plantilles UnsolClic ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:unsolclic1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:unsolclic2b.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Motor de plantilles Twig ===&lt;br /&gt;
&lt;br /&gt;
En la majoria de les webs actuals trobem que, per facilitar el manteniment i l'optimització de codi, es busca la manera de separar la presentació del contingut, el patró de disseny del [http://es.wikipedia.org/wiki/ModeloVistaControlador Model-Vista-Controlador] és el més utilitzat en la majoria de frameworks actuals. Així per una banda tenim les nostres dades i per l'altre un fitxer plantilla de com volem mostrar-les. &lt;br /&gt;
&lt;br /&gt;
Per implementar la capa de presentació és molt útil recórrer a un motor de plantilles estàndard que ens faciliti la feina. En el nostre sistema utilitzarem [http://twig.sensiolabs.org/ Twig] per la seva potència i simplicitat.Les seves característiques principals són les següents:&lt;br /&gt;
* Orígen : Symfony 2 Framework - Llicència : BSD&lt;br /&gt;
* Substitució de variables, filtres de text i crida de funcions natives.&lt;br /&gt;
* Estructures de control de flux&lt;br /&gt;
* Inclusió de fitxers i catxé per augment de rendiment&lt;br /&gt;
* Herència de plantilles&lt;br /&gt;
* Extensions, plugins i sandbox&lt;br /&gt;
&lt;br /&gt;
=== Sintaxi de Twig ===&lt;br /&gt;
&lt;br /&gt;
La sintaxi de Twig s'ha pensat per ser fàcil de fer servir i ràpida. Bàsicament, una plantilla és un fitxer de text en el que hi trobem variables o expressions i etiquetes que en controlen la lògica. &lt;br /&gt;
&lt;br /&gt;
Per mostrar el contingut d'una variable o expressió utilitzem la següent sintaxi : &lt;br /&gt;
{{ variable }} &lt;br /&gt;
&lt;br /&gt;
Per utilitzar etiquetes de control, utilitzarem &lt;br /&gt;
{% set buffer = 'un string amb quelcom' %} &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En el següent exemple de plantilla podem veure diferents exemples de la sintaxi de Twig&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{# hello comment! #}&lt;br /&gt;
{{ foo.bar }} {% set foo = 'foo' %}&lt;br /&gt;
{{ name|striptags|title }}&lt;br /&gt;
{% if users|length &amp;gt; 0 %}&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
        {% for user in users %}&lt;br /&gt;
            &amp;lt;li&amp;gt;{{ user.username|e }}&amp;lt;/li&amp;gt;&lt;br /&gt;
        {% endfor %}&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
{% endif %}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
A la documentació oficial de Twig podem veure [http://twig.sensiolabs.org/doc/templates.html més casos]&lt;br /&gt;
&lt;br /&gt;
=== Utilització de Twig ===&lt;br /&gt;
&lt;br /&gt;
Des de la banda del codi, per utilitzar Twig cal incloure la llibreria, carregar l'objecte i definir mínimament el seu comportament. A la [http://twig.sensiolabs.org/doc/api.html documentació oficial] hi podem trobar el següent fragment de codi :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
require_once '/path/to/lib/Twig/Autoloader.php';&lt;br /&gt;
Twig_Autoloader::register();&lt;br /&gt;
&lt;br /&gt;
$loader = new Twig_Loader_Filesystem('/path/to/templates');&lt;br /&gt;
$twig = new Twig_Environment($loader, array(&lt;br /&gt;
    'cache' =&amp;gt; '/path/to/compilation_cache',&lt;br /&gt;
));&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per carregar una plantilla utilitzem el següent fragment: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$template = $twig-&amp;gt;loadTemplate('index.html');&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i finalment per establir els valors que prendran les variables a la nostra plantilla  i visualitzar-la, el següent codi : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo $template-&amp;gt;render(array('the' =&amp;gt; 'variables', 'go' =&amp;gt; 'here'));&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Convencions de Guifi.net disponibles a les plantilles ===&lt;br /&gt;
&lt;br /&gt;
Com podem extreure de les entitats de guifi.net la informació necessària per fer una plantilla UnSolClic? &lt;br /&gt;
&lt;br /&gt;
Abans de la confecció de l'UnSolclic s'inicialitzen unes variables que contenen tota la informació de les entitats necessàries per tal que la poguem referenciar a les nostres plantilles.  Aquesta informació arriba estructurada de diferents formes i hi podem accedir de dos formes: &lt;br /&gt;
&lt;br /&gt;
* Amb una convenció de noms&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
* Jeràrquicament &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Edició de plantilles UnSolclic ===&lt;br /&gt;
=== Validació de plantilles UnSolclic ===&lt;/div&gt;</summary>
		<author><name>Albir</name></author>	</entry>

	<entry>
		<id>http://ca.wiki.guifi.net/wiki/Unsolclic</id>
		<title>Unsolclic</title>
		<link rel="alternate" type="text/html" href="http://ca.wiki.guifi.net/wiki/Unsolclic"/>
				<updated>2012-09-28T22:09:43Z</updated>
		
		<summary type="html">&lt;p&gt;Albir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introducció i Definició =&lt;br /&gt;
&lt;br /&gt;
El UnsolClic és una eina per configurar els aparells que formen part de la xarxa [http://guifi.net Guifi.net] i un dels factors clau per al seu creixement i expansió. Pren la forma d'un fitxer de text que correspòn a una sequència d'ordres escrita en el llenguatge acceptat per el aparell que utilitzem per connectar a la xarxa lliure guifi.net. &lt;br /&gt;
&lt;br /&gt;
Aquest document vol descriure, des de la vessant del desenvolupament del mòdul [https://gitorious.org/guifi/drupal-guifi Drupal-Guifi], tots els processos involucrats en la  confecció  del UnsolClic&lt;br /&gt;
&lt;br /&gt;
== Fortaleses i Febleses ==&lt;br /&gt;
* Fortaleses  &lt;br /&gt;
** Aïlla a l'usuari de la configuració del trasto&lt;br /&gt;
** Actua com a backup de la configuració &lt;br /&gt;
** Fa visibles les configuraciós dels trastos per a tots els usuaris&lt;br /&gt;
** Dona consistencia a la xarxa &lt;br /&gt;
* Febleses&lt;br /&gt;
** Ha de generar codi en diferents llenguatges per a diferents dispositius, per tant s'ha de conèixer mímimament aquests llenguatges&lt;br /&gt;
** La incorporació de dispositius nous requereix aquesta codificació i porta temps. &lt;br /&gt;
** És genera a l'instant i no fa cache ni manté control de versions&lt;br /&gt;
&lt;br /&gt;
== Exemples == &lt;br /&gt;
* Nodes Client &lt;br /&gt;
** Linksys WRT54GL :[http://guifi.net/ca/guifi/device/315/view/unsolclic UnSolclic DD-Guifi] del node [http://guifi.net/ca/node/1589 Gurb Castell]&lt;br /&gt;
** Nanostation 2 : [http://guifilocal/ca/guifi/device/26702/view/unsolclic AirOS 2.0] del node [http://guifilocal/ca/guifi/device/26702 TRSANord80Rd1]&lt;br /&gt;
* Supernodes &lt;br /&gt;
** Linksys WRT54GL&lt;br /&gt;
** RouterBoard RB433 : [http://guifilocal/ca/guifi/device/30084/view/unsolclic RouterOS 4.0+] del node [http://guifilocal/ca/guifi/device/30084 TRSASocietatNord]&lt;br /&gt;
&lt;br /&gt;
= Procés de Generació = &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== La recepta dels tres passos per connectar  == &lt;br /&gt;
&lt;br /&gt;
Abans de generar el UnSolClic cal que completem a la web de guifi.net la recepta dels [https://guifi.net/ca/connectar_a_guifi tres passos per connectar], que ens proporcionarà tota la informació imprescindible, bàsicament&lt;br /&gt;
* 1. Crear un node, defineix el nom del node, la zona de la que hereta configuracions, etc...&lt;br /&gt;
&lt;br /&gt;
[[File:Addnode1.png]]&lt;br /&gt;
&lt;br /&gt;
* 2. Crear un trasto, defineix totes les propietats del nostre aparelli el firmware que executa, així com dades identificatives del nostre trasto.&lt;br /&gt;
 &lt;br /&gt;
[[File:Addradio1b.png]]&lt;br /&gt;
&lt;br /&gt;
* 3. Crear un enllaç, defineix quines seran les connexions del nostre node, l'adreça IP assignada i quins protocols d'enrutament s'utilitzaran&lt;br /&gt;
&lt;br /&gt;
[[File:Addradio3b.png]]&lt;br /&gt;
&lt;br /&gt;
== Fitxers involucrats (per ordre d'execució) == &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
├── guifi.module : Definició de rutes&lt;br /&gt;
├── guifi_unsolclic.inc.php : Execució Ruta UnSolclic, preparació de dependencies, generació Unsolclic&lt;br /&gt;
├── guifi_includes.inc.php : Funcions diverses de guifi.&lt;br /&gt;
├── guifi_node.inc.php : Càrrega de la informació del node&lt;br /&gt;
├── guifi_devices.inc.php : Càrrega de la informació del trasto&lt;br /&gt;
├── guifi_radios.inc.php : Càrrega de la informació de la radio&lt;br /&gt;
├── guifi_interfaces.inc.php : Càrrega de la informació de les interfaces&lt;br /&gt;
├── guifi_ipv4.inc.php : Càrrega de la informació de les adreces ip&lt;br /&gt;
├── guifi_links.inc.php : Càrrega de la informació dels enllaços&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Entitats involucrades ==&lt;br /&gt;
* Zona, la més específica de les diferents zones de la xarxa guifi.net on volem connectar, és a dir, que no tingui altres subzones&lt;br /&gt;
* Node, la ubicació concreta des d'on volem connectar. &lt;br /&gt;
** Trasto (device), l'aparell que utilitzarem per realitzar la connexió ( un node pot tenir més de un trasto i de diferents tipus) &lt;br /&gt;
** Radio , el dispositiu inalàmbric que utilitza el nostre trasto per establir una connexió física  ( per enllaçar es requereix almenys una radio) &lt;br /&gt;
** Interface , el nom mitjançant el qual interactuem amb la radio (n'hi pot haver vàries per cada radio) &lt;br /&gt;
** IPV4 , cadascuna de les adreces IP que reben les interfaces.&lt;br /&gt;
** Enllaços (links) , cadascuna de les connexions del nostre trasto amb altres trastos propers (poden ser wireless o per cable).&lt;br /&gt;
* Fabricant, la casa comercial que ven el trasto&lt;br /&gt;
* Model, la denominació pròpia del fabricant per a determinar el trasto&lt;br /&gt;
* Firmware, el programari intern que executa el trasto per realitzar totes les seves funcions (pot ser propietat del Fabricant, de tercers o de Programari Lliure) &lt;br /&gt;
&lt;br /&gt;
== Esquema de la Base de Dades ==&lt;br /&gt;
&lt;br /&gt;
En la següent imatge es pot veure l'esquema de les taules de les entitats involucreades en la generació del fitxer UnSolClic:&lt;br /&gt;
&lt;br /&gt;
[[File:TaulesUnSolclic2.png]]&lt;br /&gt;
&lt;br /&gt;
== Families de Casos actuals ==&lt;br /&gt;
Les configuracions UnSolclic existents es basen en les següents famílies de firmwares : &lt;br /&gt;
* Kamikaze&lt;br /&gt;
* AirOs&lt;br /&gt;
* GuifiStation&lt;br /&gt;
* Mikrotik&lt;br /&gt;
* WRT-SveaSoft&lt;br /&gt;
&lt;br /&gt;
TODO : Faltaria afegir altres firmwares com els de QMP, etc... &lt;br /&gt;
&lt;br /&gt;
= Afegir suport per a nous aparells = &lt;br /&gt;
&lt;br /&gt;
== Idea general ==&lt;br /&gt;
&lt;br /&gt;
L'objectiu és millorar el procés d'incorporació de nous dispositius a l'aplicació actual. Mitjançant una nova gestió web i un sistema de plantilles estándard, els usuaris avançats podràn crear els configuradors 'UnSolClic' per als nous dispositius del mercat i mantenir els existents amb més facilitat i eficiència.&lt;br /&gt;
&lt;br /&gt;
== Diagrama de fluxe del procés ==&lt;br /&gt;
&lt;br /&gt;
En el següent diagrama, partint de la situació inicial que veiem a la part superior esquerra, es mostra el procés a seguir per poder generar l'UnSolclic per a un aparell nou &lt;br /&gt;
&lt;br /&gt;
[[File:Diagrama fluxe2.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Fabricants ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Llistat&lt;br /&gt;
[[File:Manufacturer1.png]]&lt;br /&gt;
&lt;br /&gt;
* Formulari&lt;br /&gt;
[[File:Manufacturer2.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Models  ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:models1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:models2c.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Paràmetres ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:Params1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:Params2c.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Creació de Firmwares ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:firmware1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:firmware2b.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Plantilles UnsolClic ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:unsolclic1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:unsolclic2b.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Motor de plantilles Twig ===&lt;br /&gt;
&lt;br /&gt;
En la majoria de les webs actuals trobem que, per facilitar el manteniment i l'optimització de codi, es busca la manera de separar la presentació del contingut, el patró de disseny del [http://es.wikipedia.org/wiki/ModeloVistaControlador Model-Vista-Controlador] és el més utilitzat en la majoria de frameworks actuals. Així per una banda tenim les nostres dades i per l'altre un fitxer plantilla de com volem mostrar-les. &lt;br /&gt;
&lt;br /&gt;
Per implementar la capa de presentació és molt útil recórrer a un motor de plantilles estàndard que ens faciliti la feina. En el nostre sistema utilitzarem [http://twig.sensiolabs.org/ Twig] per la seva potència i simplicitat.Les seves característiques principals són les següents:&lt;br /&gt;
* Orígen : Symfony 2 Framework - Llicència : BSD&lt;br /&gt;
* Substitució de variables, filtres de text i crida de funcions natives.&lt;br /&gt;
* Estructures de control de flux&lt;br /&gt;
* Inclusió de fitxers i catxé per augment de rendiment&lt;br /&gt;
* Herència de plantilles&lt;br /&gt;
* Extensions, plugins i sandbox&lt;br /&gt;
&lt;br /&gt;
=== Sintaxi de Twig ===&lt;br /&gt;
&lt;br /&gt;
La sintaxi de Twig s'ha pensat per ser fàcil de fer servir i ràpida. Bàsicament, una plantilla és un fitxer de text en el que hi trobem variables o expressions i etiquetes que en controlen la lògica. &lt;br /&gt;
&lt;br /&gt;
Per mostrar el contingut d'una variable o expressió utilitzem la següent sintaxi : &lt;br /&gt;
{{ variable }} &lt;br /&gt;
&lt;br /&gt;
Per utilitzar etiquetes de control, utilitzarem &lt;br /&gt;
{% set buffer = 'un string amb quelcom' %} &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En el següent exemple de plantilla podem veure diferents exemples de la sintaxi de Twig&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{# hello comment! #}&lt;br /&gt;
{{ foo.bar }} {% set foo = 'foo' %}&lt;br /&gt;
{{ name|striptags|title }}&lt;br /&gt;
{% if users|length &amp;gt; 0 %}&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
        {% for user in users %}&lt;br /&gt;
            &amp;lt;li&amp;gt;{{ user.username|e }}&amp;lt;/li&amp;gt;&lt;br /&gt;
        {% endfor %}&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
{% endif %}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
A la documentació oficial de Twig podem veure [http://twig.sensiolabs.org/doc/templates.html més casos]&lt;br /&gt;
&lt;br /&gt;
=== Utilització de Twig ===&lt;br /&gt;
&lt;br /&gt;
Des de la banda del codi, per utilitzar Twig cal incloure la llibreria, carregar l'objecte i definir mínimament el seu comportament. A la [http://twig.sensiolabs.org/doc/api.html documentació oficial] hi podem trobar el següent fragment de codi :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
require_once '/path/to/lib/Twig/Autoloader.php';&lt;br /&gt;
Twig_Autoloader::register();&lt;br /&gt;
&lt;br /&gt;
$loader = new Twig_Loader_Filesystem('/path/to/templates');&lt;br /&gt;
$twig = new Twig_Environment($loader, array(&lt;br /&gt;
    'cache' =&amp;gt; '/path/to/compilation_cache',&lt;br /&gt;
));&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per carregar una plantilla utilitzem el següent fragment: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$template = $twig-&amp;gt;loadTemplate('index.html');&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i finalment per establir els valors que prendran les variables a la nostra plantilla  i visualitzar-la, el següent codi : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo $template-&amp;gt;render(array('the' =&amp;gt; 'variables', 'go' =&amp;gt; 'here'));&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Convencions de Guifi.net disponibles a les plantilles ===&lt;br /&gt;
&lt;br /&gt;
Com podem extreure de les entitats de guifi.net la informació necessària per fer una plantilla UnSolClic? &lt;br /&gt;
&lt;br /&gt;
Abans de la confecció de l'UnSolclic s'inicialitzen unes variables que contenen tota la informació de les entitats necessàries per tal que la poguem referenciar a les nostres plantilles.  Aquesta informació arriba estructurada de diferents formes i hi podem accedir de dos formes: &lt;br /&gt;
&lt;br /&gt;
* Amb una convenció de noms&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
* Jeràrquicament &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Edició de plantilles UnSolclic ===&lt;br /&gt;
=== Validació de plantilles UnSolclic ===&lt;/div&gt;</summary>
		<author><name>Albir</name></author>	</entry>

	<entry>
		<id>http://ca.wiki.guifi.net/wiki/Unsolclic</id>
		<title>Unsolclic</title>
		<link rel="alternate" type="text/html" href="http://ca.wiki.guifi.net/wiki/Unsolclic"/>
				<updated>2012-09-28T22:08:18Z</updated>
		
		<summary type="html">&lt;p&gt;Albir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introducció i Definició =&lt;br /&gt;
&lt;br /&gt;
L'UnsolClic és una eina per configurar els aparells que formen part de la xarxa [http://guifi.net Guifi.net] i un dels factors clau per al seu creixement i expansió. Pren la forma d'un fitxer de text que correspòn a una sequència d'ordres escrita en el llenguatge acceptat per el aparell que utilitzem per connectar a la xarxa lliure guifi.net. &lt;br /&gt;
&lt;br /&gt;
Aquest document vol descriure, des de la vessant del desenvolupament del mòdul [https://gitorious.org/guifi/drupal-guifi Drupal-Guifi], tots els processos involucrats en la  confecció  del UnsolClic&lt;br /&gt;
&lt;br /&gt;
== Fortaleses i Febleses ==&lt;br /&gt;
* Fortaleses  &lt;br /&gt;
** Aïlla a l'usuari de la configuració del trasto&lt;br /&gt;
** Actua com a backup de la configuració &lt;br /&gt;
** Fa visibles les configuraciós dels trastos per a tots els usuaris&lt;br /&gt;
** Dona consistencia a la xarxa &lt;br /&gt;
* Febleses&lt;br /&gt;
** Ha de generar codi en diferents llenguatges per a diferents dispositius, per tant s'ha de conèixer mímimament aquests llenguatges&lt;br /&gt;
** La incorporació de dispositius nous requereix aquesta codificació i porta temps. &lt;br /&gt;
** És genera a l'instant i no fa cache ni manté control de versions&lt;br /&gt;
&lt;br /&gt;
== Exemples == &lt;br /&gt;
* Nodes Client &lt;br /&gt;
** Linksys WRT54GL :[http://guifi.net/ca/guifi/device/315/view/unsolclic UnSolclic DD-Guifi] del node [http://guifi.net/ca/node/1589 Gurb Castell]&lt;br /&gt;
** Nanostation 2 : [http://guifilocal/ca/guifi/device/26702/view/unsolclic AirOS 2.0] del node [http://guifilocal/ca/guifi/device/26702 TRSANord80Rd1]&lt;br /&gt;
* Supernodes &lt;br /&gt;
** Linksys WRT54GL&lt;br /&gt;
** RouterBoard RB433 : [http://guifilocal/ca/guifi/device/30084/view/unsolclic RouterOS 4.0+] del node [http://guifilocal/ca/guifi/device/30084 TRSASocietatNord]&lt;br /&gt;
&lt;br /&gt;
= Procés de Generació = &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== La recepta dels tres passos per connectar  == &lt;br /&gt;
&lt;br /&gt;
Abans de generar el UnSolClic cal que completem a la web de guifi.net la recepta dels [https://guifi.net/ca/connectar_a_guifi tres passos per connectar], que ens proporcionarà tota la informació imprescindible, bàsicament&lt;br /&gt;
* 1. Crear un node, defineix el nom del node, la zona de la que hereta configuracions, etc...&lt;br /&gt;
&lt;br /&gt;
[[File:Addnode1.png]]&lt;br /&gt;
&lt;br /&gt;
* 2. Crear un trasto, defineix totes les propietats del nostre aparelli el firmware que executa, així com dades identificatives del nostre trasto.&lt;br /&gt;
 &lt;br /&gt;
[[File:Addradio1b.png]]&lt;br /&gt;
&lt;br /&gt;
* 3. Crear un enllaç, defineix quines seran les connexions del nostre node, l'adreça IP assignada i quins protocols d'enrutament s'utilitzaran&lt;br /&gt;
&lt;br /&gt;
[[File:Addradio3b.png]]&lt;br /&gt;
&lt;br /&gt;
== Fitxers involucrats (per ordre d'execució) == &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
├── guifi.module : Definició de rutes&lt;br /&gt;
├── guifi_unsolclic.inc.php : Execució Ruta UnSolclic, preparació de dependencies, generació Unsolclic&lt;br /&gt;
├── guifi_includes.inc.php : Funcions diverses de guifi.&lt;br /&gt;
├── guifi_node.inc.php : Càrrega de la informació del node&lt;br /&gt;
├── guifi_devices.inc.php : Càrrega de la informació del trasto&lt;br /&gt;
├── guifi_radios.inc.php : Càrrega de la informació de la radio&lt;br /&gt;
├── guifi_interfaces.inc.php : Càrrega de la informació de les interfaces&lt;br /&gt;
├── guifi_ipv4.inc.php : Càrrega de la informació de les adreces ip&lt;br /&gt;
├── guifi_links.inc.php : Càrrega de la informació dels enllaços&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Entitats involucrades ==&lt;br /&gt;
* Zona, la més específica de les diferents zones de la xarxa guifi.net on volem connectar, és a dir, que no tingui altres subzones&lt;br /&gt;
* Node, la ubicació concreta des d'on volem connectar. &lt;br /&gt;
** Trasto (device), l'aparell que utilitzarem per realitzar la connexió ( un node pot tenir més de un trasto i de diferents tipus) &lt;br /&gt;
** Radio , el dispositiu inalàmbric que utilitza el nostre trasto per establir una connexió física  ( per enllaçar es requereix almenys una radio) &lt;br /&gt;
** Interface , el nom mitjançant el qual interactuem amb la radio (n'hi pot haver vàries per cada radio) &lt;br /&gt;
** IPV4 , cadascuna de les adreces IP que reben les interfaces.&lt;br /&gt;
** Enllaços (links) , cadascuna de les connexions del nostre trasto amb altres trastos propers (poden ser wireless o per cable).&lt;br /&gt;
* Fabricant, la casa comercial que ven el trasto&lt;br /&gt;
* Model, la denominació pròpia del fabricant per a determinar el trasto&lt;br /&gt;
* Firmware, el programari intern que executa el trasto per realitzar totes les seves funcions (pot ser propietat del Fabricant, de tercers o de Programari Lliure) &lt;br /&gt;
&lt;br /&gt;
== Esquema de la Base de Dades ==&lt;br /&gt;
&lt;br /&gt;
En la següent imatge es pot veure l'esquema de les taules de les entitats involucreades en la generació del fitxer UnSolClic:&lt;br /&gt;
&lt;br /&gt;
[[File:TaulesUnSolclic2.png]]&lt;br /&gt;
&lt;br /&gt;
== Families de Casos actuals ==&lt;br /&gt;
Les configuracions UnSolclic existents es basen en les següents famílies de firmwares : &lt;br /&gt;
* Kamikaze&lt;br /&gt;
* AirOs&lt;br /&gt;
* GuifiStation&lt;br /&gt;
* Mikrotik&lt;br /&gt;
* WRT-SveaSoft&lt;br /&gt;
&lt;br /&gt;
TODO : Faltaria afegir altres firmwares com els de QMP, etc... &lt;br /&gt;
&lt;br /&gt;
Actualment, tot el codi implicat dels unsolclics  es troba dins de la carpeta [https://gitorious.org/guifi/drupal-guifi/trees/master/firmware firmware], on tenim un fitxer per cadascuna de les families esmentades. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
├── [https://gitorious.org/guifi/drupal-guifi/trees/master/firmware firmware]&lt;br /&gt;
│   ├── [https://gitorious.org/guifi/drupal-guifi/blobs/master/firmware/airos.inc.php airos.inc.php&lt;br /&gt;
│   ├── firmware-todo.inc.php&lt;br /&gt;
│   ├── guifistationos.inc.php&lt;br /&gt;
│   ├── kamikaze&lt;br /&gt;
│   │   ├── ar71xx&lt;br /&gt;
│   │   │   └── kamikaze_ap.inc.php&lt;br /&gt;
│   │   ├── atheros&lt;br /&gt;
│   │   │   ├── kamikaze_ad-hoc.inc.php&lt;br /&gt;
│   │   │   ├── kamikaze_ap.inc.php&lt;br /&gt;
│   │   │   └── kamikaze_client.inc.php&lt;br /&gt;
│   │   ├── broadcom&lt;br /&gt;
│   │   │   ├── kamikaze_ad-hoc.inc.php&lt;br /&gt;
│   │   │   ├── kamikaze_ap.inc.php&lt;br /&gt;
│   │   │   └── kamikaze_client.inc.php&lt;br /&gt;
│   │   └── ixp4xx&lt;br /&gt;
│   │       └── kamikaze_ap.inc.php&lt;br /&gt;
│   ├── kamikaze.inc.php&lt;br /&gt;
│   ├── mikrotik-routeros.inc.php&lt;br /&gt;
│   └── wrt-sveasoft-dd.inc.php&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Explicació de l'execució del codi  ==&lt;br /&gt;
&lt;br /&gt;
1. Es crida la URL de generació del UnSolclic &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Afegir suport per a nous aparells = &lt;br /&gt;
&lt;br /&gt;
== Idea general ==&lt;br /&gt;
&lt;br /&gt;
L'objectiu és millorar el procés d'incorporació de nous dispositius a l'aplicació actual. Mitjançant una nova gestió web i un sistema de plantilles estándard, els usuaris avançats podràn crear els configuradors 'UnSolClic' per als nous dispositius del mercat i mantenir els existents amb més facilitat i eficiència.&lt;br /&gt;
&lt;br /&gt;
== Diagrama de fluxe del procés ==&lt;br /&gt;
&lt;br /&gt;
En el següent diagrama, partint de la situació inicial que veiem a la part superior esquerra, es mostra el procés a seguir per poder generar l'UnSolclic per a un aparell nou &lt;br /&gt;
&lt;br /&gt;
[[File:Diagrama fluxe2.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Fabricants ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Llistat&lt;br /&gt;
[[File:Manufacturer1.png]]&lt;br /&gt;
&lt;br /&gt;
* Formulari&lt;br /&gt;
[[File:Manufacturer2.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Models  ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:models1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:models2c.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Paràmetres ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:Params1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:Params2c.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Creació de Firmwares ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:firmware1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:firmware2b.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Plantilles UnsolClic ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:unsolclic1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:unsolclic2b.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Motor de plantilles Twig ===&lt;br /&gt;
&lt;br /&gt;
En la majoria de les webs actuals trobem que, per facilitar el manteniment i l'optimització de codi, es busca la manera de separar la presentació del contingut, el patró de disseny del [http://es.wikipedia.org/wiki/ModeloVistaControlador Model-Vista-Controlador] és el més utilitzat en la majoria de frameworks actuals. Així per una banda tenim les nostres dades i per l'altre un fitxer plantilla de com volem mostrar-les. &lt;br /&gt;
&lt;br /&gt;
Per implementar la capa de presentació és molt útil recórrer a un motor de plantilles estàndard que ens faciliti la feina. En el nostre sistema utilitzarem [http://twig.sensiolabs.org/ Twig] per la seva potència i simplicitat.Les seves característiques principals són les següents:&lt;br /&gt;
* Orígen : Symfony 2 Framework - Llicència : BSD&lt;br /&gt;
* Substitució de variables, filtres de text i crida de funcions natives.&lt;br /&gt;
* Estructures de control de flux&lt;br /&gt;
* Inclusió de fitxers i catxé per augment de rendiment&lt;br /&gt;
* Herència de plantilles&lt;br /&gt;
* Extensions, plugins i sandbox&lt;br /&gt;
&lt;br /&gt;
=== Sintaxi de Twig ===&lt;br /&gt;
&lt;br /&gt;
La sintaxi de Twig s'ha pensat per ser fàcil de fer servir i ràpida. Bàsicament, una plantilla és un fitxer de text en el que hi trobem variables o expressions i etiquetes que en controlen la lògica. &lt;br /&gt;
&lt;br /&gt;
Per mostrar el contingut d'una variable o expressió utilitzem la següent sintaxi : &lt;br /&gt;
{{ variable }} &lt;br /&gt;
&lt;br /&gt;
Per utilitzar etiquetes de control, utilitzarem &lt;br /&gt;
{% set buffer = 'un string amb quelcom' %} &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En el següent exemple de plantilla podem veure diferents exemples de la sintaxi de Twig&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{# hello comment! #}&lt;br /&gt;
{{ foo.bar }} {% set foo = 'foo' %}&lt;br /&gt;
{{ name|striptags|title }}&lt;br /&gt;
{% if users|length &amp;gt; 0 %}&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
        {% for user in users %}&lt;br /&gt;
            &amp;lt;li&amp;gt;{{ user.username|e }}&amp;lt;/li&amp;gt;&lt;br /&gt;
        {% endfor %}&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
{% endif %}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
A la documentació oficial de Twig podem veure [http://twig.sensiolabs.org/doc/templates.html més casos]&lt;br /&gt;
&lt;br /&gt;
=== Utilització de Twig ===&lt;br /&gt;
&lt;br /&gt;
Des de la banda del codi, per utilitzar Twig cal incloure la llibreria, carregar l'objecte i definir mínimament el seu comportament. A la [http://twig.sensiolabs.org/doc/api.html documentació oficial] hi podem trobar el següent fragment de codi :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
require_once '/path/to/lib/Twig/Autoloader.php';&lt;br /&gt;
Twig_Autoloader::register();&lt;br /&gt;
&lt;br /&gt;
$loader = new Twig_Loader_Filesystem('/path/to/templates');&lt;br /&gt;
$twig = new Twig_Environment($loader, array(&lt;br /&gt;
    'cache' =&amp;gt; '/path/to/compilation_cache',&lt;br /&gt;
));&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per carregar una plantilla utilitzem el següent fragment: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$template = $twig-&amp;gt;loadTemplate('index.html');&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i finalment per establir els valors que prendran les variables a la nostra plantilla  i visualitzar-la, el següent codi : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo $template-&amp;gt;render(array('the' =&amp;gt; 'variables', 'go' =&amp;gt; 'here'));&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Convencions de Guifi.net disponibles a les plantilles ===&lt;br /&gt;
&lt;br /&gt;
Com podem extreure de les entitats de guifi.net la informació necessària per fer una plantilla UnSolClic? &lt;br /&gt;
&lt;br /&gt;
Abans de la confecció de l'UnSolclic s'inicialitzen unes variables que contenen tota la informació de les entitats necessàries per tal que la poguem referenciar a les nostres plantilles.  Aquesta informació arriba estructurada de diferents formes i hi podem accedir de dos formes: &lt;br /&gt;
&lt;br /&gt;
* Amb una convenció de noms&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
* Jeràrquicament &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Edició de plantilles UnSolclic ===&lt;br /&gt;
=== Validació de plantilles UnSolclic ===&lt;/div&gt;</summary>
		<author><name>Albir</name></author>	</entry>

	<entry>
		<id>http://ca.wiki.guifi.net/wiki/Unsolclic</id>
		<title>Unsolclic</title>
		<link rel="alternate" type="text/html" href="http://ca.wiki.guifi.net/wiki/Unsolclic"/>
				<updated>2012-09-28T22:06:14Z</updated>
		
		<summary type="html">&lt;p&gt;Albir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introducció i Definició =&lt;br /&gt;
&lt;br /&gt;
L'UnsolClic és una eina per configurar els aparells que formen part de la xarxa [http://guifi.net Guifi.net] i un dels factors clau per al seu creixement i expansió. Pren la forma d'un fitxer de text que correspòn a una sequència d'ordres escrita en el llenguatge acceptat per el aparell que utilitzem per connectar a la xarxa lliure guifi.net. &lt;br /&gt;
&lt;br /&gt;
Aquest document vol descriure, des de la vessant del desenvolupament del mòdul [https://gitorious.org/guifi/drupal-guifi Drupal-Guifi], tots els processos involucrats en la  confecció  del UnsolClic&lt;br /&gt;
&lt;br /&gt;
== Fortaleses i Febleses ==&lt;br /&gt;
* Fortaleses  &lt;br /&gt;
** Aïlla a l'usuari de la configuració del trasto&lt;br /&gt;
** Actua com a backup de la configuració &lt;br /&gt;
** Fa visibles les configuraciós dels trastos per a tots els usuaris&lt;br /&gt;
** Dona consistencia a la xarxa &lt;br /&gt;
* Febleses&lt;br /&gt;
** Ha de generar codi en diferents llenguatges per a diferents dispositius, per tant s'ha de conèixer mímimament aquests llenguatges&lt;br /&gt;
** La incorporació de dispositius nous requereix aquesta codificació i porta temps. &lt;br /&gt;
** És genera a l'instant i no fa cache ni manté control de versions&lt;br /&gt;
&lt;br /&gt;
== Exemples == &lt;br /&gt;
* Nodes Client &lt;br /&gt;
** Linksys WRT54GL :[http://guifi.net/ca/guifi/device/315/view/unsolclic UnSolclic DD-Guifi] del node [http://guifi.net/ca/node/1589 Gurb Castell]&lt;br /&gt;
** Nanostation 2 : [http://guifilocal/ca/guifi/device/26702/view/unsolclic AirOS 2.0] del node [http://guifilocal/ca/guifi/device/26702 TRSANord80Rd1]&lt;br /&gt;
* Supernodes &lt;br /&gt;
** Linksys WRT54GL&lt;br /&gt;
** RouterBoard RB433 : [http://guifilocal/ca/guifi/device/30084/view/unsolclic RouterOS 4.0+] del node [http://guifilocal/ca/guifi/device/30084 TRSASocietatNord]&lt;br /&gt;
&lt;br /&gt;
= Procés de Generació = &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== La recepta dels tres passos per connectar  == &lt;br /&gt;
&lt;br /&gt;
Abans de generar el UnSolClic cal que completem a la web de guifi.net la recepta dels [https://guifi.net/ca/connectar_a_guifi tres passos per connectar], que ens proporcionarà tota la informació imprescindible, bàsicament&lt;br /&gt;
* 1. Crear un node, defineix el nom del node, la zona de la que hereta configuracions, etc...&lt;br /&gt;
&lt;br /&gt;
[[File:Addnode1.png]]&lt;br /&gt;
&lt;br /&gt;
* 2. Crear un trasto, defineix totes les propietats del nostre aparelli el firmware que executa, així com dades identificatives del nostre trasto.&lt;br /&gt;
 &lt;br /&gt;
[[File:Addradio1b.png]]&lt;br /&gt;
&lt;br /&gt;
* 3. Crear un enllaç, defineix quines seran les connexions del nostre node, l'adreça IP assignada i quins protocols d'enrutament s'utilitzaran&lt;br /&gt;
&lt;br /&gt;
[[File:Addradio3b.png]]&lt;br /&gt;
&lt;br /&gt;
== Fitxers involucrats (per ordre d'execució) == &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
├── [https://gitorious.org/guifi/drupal-guifi/blobs/master/guifi.module guifi.module] : Definició de rutes&lt;br /&gt;
├── [https://gitorious.org/guifi/drupal-guifi/blobs/master/guifi_unsolclic.inc.php guifi_unsolclic.inc.php] : Execució Ruta UnSolclic, preparació de dependencies, generació Unsolclic&lt;br /&gt;
├── [https://gitorious.org/guifi/drupal-guifi/blobs/master/guifi_includes.inc.php guifi_includes.inc.php] : Funcions diverses de guifi.&lt;br /&gt;
├── [https://gitorious.org/guifi/drupal-guifi/blobs/master/guifi_node.inc.php guifi_node.inc.php] : Càrrega de la informació del node&lt;br /&gt;
├── [https://gitorious.org/guifi/drupal-guifi/blobs/master/guifi_devices.inc.php guifi_devices.inc.php] : Càrrega de la informació del trasto&lt;br /&gt;
├── [https://gitorious.org/guifi/drupal-guifi/blobs/master/guifi_radios.inc.php guifi_radios.inc.php] : Càrrega de la informació de la radio&lt;br /&gt;
├── [https://gitorious.org/guifi/drupal-guifi/blobs/master/guifi_interfaces.inc.php guifi_interfaces.inc.php] : Càrrega de la informació de les interfaces&lt;br /&gt;
├── [https://gitorious.org/guifi/drupal-guifi/blobs/master/guifi_ipv4.inc.php guifi_ipv4.inc.php] : Càrrega de la informació de les adreces ip&lt;br /&gt;
├── [https://gitorious.org/guifi/drupal-guifi/blobs/master/guifi_links.inc.php guifi_links.inc.php] : Càrrega de la informació dels enllaços&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Entitats involucrades ==&lt;br /&gt;
* Zona, la més específica de les diferents zones de la xarxa guifi.net on volem connectar, és a dir, que no tingui altres subzones&lt;br /&gt;
* Node, la ubicació concreta des d'on volem connectar. &lt;br /&gt;
** Trasto (device), l'aparell que utilitzarem per realitzar la connexió ( un node pot tenir més de un trasto i de diferents tipus) &lt;br /&gt;
** Radio , el dispositiu inalàmbric que utilitza el nostre trasto per establir una connexió física  ( per enllaçar es requereix almenys una radio) &lt;br /&gt;
** Interface , el nom mitjançant el qual interactuem amb la radio (n'hi pot haver vàries per cada radio) &lt;br /&gt;
** IPV4 , cadascuna de les adreces IP que reben les interfaces.&lt;br /&gt;
** Enllaços (links) , cadascuna de les connexions del nostre trasto amb altres trastos propers (poden ser wireless o per cable).&lt;br /&gt;
* Fabricant, la casa comercial que ven el trasto&lt;br /&gt;
* Model, la denominació pròpia del fabricant per a determinar el trasto&lt;br /&gt;
* Firmware, el programari intern que executa el trasto per realitzar totes les seves funcions (pot ser propietat del Fabricant, de tercers o de Programari Lliure) &lt;br /&gt;
&lt;br /&gt;
== Esquema de la Base de Dades ==&lt;br /&gt;
&lt;br /&gt;
En la següent imatge es pot veure l'esquema de les taules de les entitats involucreades en la generació del fitxer UnSolClic:&lt;br /&gt;
&lt;br /&gt;
[[File:TaulesUnSolclic2.png]]&lt;br /&gt;
&lt;br /&gt;
== Families de Casos actuals ==&lt;br /&gt;
Les configuracions UnSolclic existents es basen en les següents famílies de firmwares : &lt;br /&gt;
* Kamikaze&lt;br /&gt;
* AirOs&lt;br /&gt;
* GuifiStation&lt;br /&gt;
* Mikrotik&lt;br /&gt;
* WRT-SveaSoft&lt;br /&gt;
&lt;br /&gt;
TODO : Faltaria afegir altres firmwares com els de QMP, etc... &lt;br /&gt;
&lt;br /&gt;
Actualment, tot el codi implicat dels unsolclics  es troba dins de la carpeta [https://gitorious.org/guifi/drupal-guifi/trees/master/firmware firmware], on tenim un fitxer per cadascuna de les families esmentades. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
├── [https://gitorious.org/guifi/drupal-guifi/trees/master/firmware firmware]&lt;br /&gt;
│   ├── [https://gitorious.org/guifi/drupal-guifi/blobs/master/firmware/airos.inc.php airos.inc.php]&lt;br /&gt;
│   ├── [https://gitorious.org/guifi/drupal-guifi/blobs/master/firmware/firmware-todo.inc.php firmware-todo.inc.php]&lt;br /&gt;
│   ├── [https://gitorious.org/guifi/drupal-guifi/blobs/master/firmware/guifistationos.inc.php guifistationos.inc.php]&lt;br /&gt;
│   ├── kamikaze&lt;br /&gt;
│   │   ├── ar71xx&lt;br /&gt;
│   │   │   └── kamikaze_ap.inc.php&lt;br /&gt;
│   │   ├── atheros&lt;br /&gt;
│   │   │   ├── kamikaze_ad-hoc.inc.php&lt;br /&gt;
│   │   │   ├── kamikaze_ap.inc.php&lt;br /&gt;
│   │   │   └── kamikaze_client.inc.php&lt;br /&gt;
│   │   ├── broadcom&lt;br /&gt;
│   │   │   ├── kamikaze_ad-hoc.inc.php&lt;br /&gt;
│   │   │   ├── kamikaze_ap.inc.php&lt;br /&gt;
│   │   │   └── kamikaze_client.inc.php&lt;br /&gt;
│   │   └── ixp4xx&lt;br /&gt;
│   │       └── kamikaze_ap.inc.php&lt;br /&gt;
│   ├── [https://gitorious.org/guifi/drupal-guifi/blobs/master/firmware/kamikaze.inc.php kamikaze.inc.php]&lt;br /&gt;
│   ├── [https://gitorious.org/guifi/drupal-guifi/blobs/master/firmware/mikrotik-routeros.inc.php mikrotik-routeros.inc.php]&lt;br /&gt;
│   └── [https://gitorious.org/guifi/drupal-guifi/blobs/master/firmware/wrt-sveasoft-dd.inc.php wrt-sveasoft-dd.inc.php]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Explicació de l'execució del codi  ==&lt;br /&gt;
&lt;br /&gt;
1. Es crida la URL de generació del UnSolclic &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Afegir suport per a nous aparells = &lt;br /&gt;
&lt;br /&gt;
== Idea general ==&lt;br /&gt;
&lt;br /&gt;
L'objectiu és millorar el procés d'incorporació de nous dispositius a l'aplicació actual. Mitjançant una nova gestió web i un sistema de plantilles estándard, els usuaris avançats podràn crear els configuradors 'UnSolClic' per als nous dispositius del mercat i mantenir els existents amb més facilitat i eficiència.&lt;br /&gt;
&lt;br /&gt;
== Diagrama de fluxe del procés ==&lt;br /&gt;
&lt;br /&gt;
En el següent diagrama, partint de la situació inicial que veiem a la part superior esquerra, es mostra el procés a seguir per poder generar l'UnSolclic per a un aparell nou &lt;br /&gt;
&lt;br /&gt;
[[File:Diagrama fluxe2.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Fabricants ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Llistat&lt;br /&gt;
[[File:Manufacturer1.png]]&lt;br /&gt;
&lt;br /&gt;
* Formulari&lt;br /&gt;
[[File:Manufacturer2.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Models  ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:models1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:models2c.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Paràmetres ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:Params1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:Params2c.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Creació de Firmwares ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:firmware1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:firmware2b.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Plantilles UnsolClic ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:unsolclic1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:unsolclic2b.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Motor de plantilles Twig ===&lt;br /&gt;
&lt;br /&gt;
En la majoria de les webs actuals trobem que, per facilitar el manteniment i l'optimització de codi, es busca la manera de separar la presentació del contingut, el patró de disseny del [http://es.wikipedia.org/wiki/ModeloVistaControlador Model-Vista-Controlador] és el més utilitzat en la majoria de frameworks actuals. Així per una banda tenim les nostres dades i per l'altre un fitxer plantilla de com volem mostrar-les. &lt;br /&gt;
&lt;br /&gt;
Per implementar la capa de presentació és molt útil recórrer a un motor de plantilles estàndard que ens faciliti la feina. En el nostre sistema utilitzarem [http://twig.sensiolabs.org/ Twig] per la seva potència i simplicitat.Les seves característiques principals són les següents:&lt;br /&gt;
* Orígen : Symfony 2 Framework - Llicència : BSD&lt;br /&gt;
* Substitució de variables, filtres de text i crida de funcions natives.&lt;br /&gt;
* Estructures de control de flux&lt;br /&gt;
* Inclusió de fitxers i catxé per augment de rendiment&lt;br /&gt;
* Herència de plantilles&lt;br /&gt;
* Extensions, plugins i sandbox&lt;br /&gt;
&lt;br /&gt;
=== Sintaxi de Twig ===&lt;br /&gt;
&lt;br /&gt;
La sintaxi de Twig s'ha pensat per ser fàcil de fer servir i ràpida. Bàsicament, una plantilla és un fitxer de text en el que hi trobem variables o expressions i etiquetes que en controlen la lògica. &lt;br /&gt;
&lt;br /&gt;
Per mostrar el contingut d'una variable o expressió utilitzem la següent sintaxi : &lt;br /&gt;
{{ variable }} &lt;br /&gt;
&lt;br /&gt;
Per utilitzar etiquetes de control, utilitzarem &lt;br /&gt;
{% set buffer = 'un string amb quelcom' %} &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En el següent exemple de plantilla podem veure diferents exemples de la sintaxi de Twig&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{# hello comment! #}&lt;br /&gt;
{{ foo.bar }} {% set foo = 'foo' %}&lt;br /&gt;
{{ name|striptags|title }}&lt;br /&gt;
{% if users|length &amp;gt; 0 %}&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
        {% for user in users %}&lt;br /&gt;
            &amp;lt;li&amp;gt;{{ user.username|e }}&amp;lt;/li&amp;gt;&lt;br /&gt;
        {% endfor %}&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
{% endif %}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
A la documentació oficial de Twig podem veure [http://twig.sensiolabs.org/doc/templates.html més casos]&lt;br /&gt;
&lt;br /&gt;
=== Utilització de Twig ===&lt;br /&gt;
&lt;br /&gt;
Des de la banda del codi, per utilitzar Twig cal incloure la llibreria, carregar l'objecte i definir mínimament el seu comportament. A la [http://twig.sensiolabs.org/doc/api.html documentació oficial] hi podem trobar el següent fragment de codi :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
require_once '/path/to/lib/Twig/Autoloader.php';&lt;br /&gt;
Twig_Autoloader::register();&lt;br /&gt;
&lt;br /&gt;
$loader = new Twig_Loader_Filesystem('/path/to/templates');&lt;br /&gt;
$twig = new Twig_Environment($loader, array(&lt;br /&gt;
    'cache' =&amp;gt; '/path/to/compilation_cache',&lt;br /&gt;
));&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per carregar una plantilla utilitzem el següent fragment: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$template = $twig-&amp;gt;loadTemplate('index.html');&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i finalment per establir els valors que prendran les variables a la nostra plantilla  i visualitzar-la, el següent codi : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo $template-&amp;gt;render(array('the' =&amp;gt; 'variables', 'go' =&amp;gt; 'here'));&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Convencions de Guifi.net disponibles a les plantilles ===&lt;br /&gt;
&lt;br /&gt;
Com podem extreure de les entitats de guifi.net la informació necessària per fer una plantilla UnSolClic? &lt;br /&gt;
&lt;br /&gt;
Abans de la confecció de l'UnSolclic s'inicialitzen unes variables que contenen tota la informació de les entitats necessàries per tal que la poguem referenciar a les nostres plantilles.  Aquesta informació arriba estructurada de diferents formes i hi podem accedir de dos formes: &lt;br /&gt;
&lt;br /&gt;
* Amb una convenció de noms&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
* Jeràrquicament &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Edició de plantilles UnSolclic ===&lt;br /&gt;
=== Validació de plantilles UnSolclic ===&lt;/div&gt;</summary>
		<author><name>Albir</name></author>	</entry>

	<entry>
		<id>http://ca.wiki.guifi.net/wiki/Unsolclic</id>
		<title>Unsolclic</title>
		<link rel="alternate" type="text/html" href="http://ca.wiki.guifi.net/wiki/Unsolclic"/>
				<updated>2012-09-28T21:40:14Z</updated>
		
		<summary type="html">&lt;p&gt;Albir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introducció i Definició =&lt;br /&gt;
&lt;br /&gt;
El UnsolClic és una eina per configurar els aparells que formen part de la xarxa [http://guifi.net Guifi.net] i un dels factors clau per al seu creixement i expansió. Pren la forma d'un fitxer de text que correspòn a una sequència d'ordres escrita en el llenguatge acceptat per el aparell que utilitzem per connectar a la xarxa lliure guifi.net. &lt;br /&gt;
&lt;br /&gt;
Aquest document vol descriure, des de la vessant del desenvolupament del mòdul [https://gitorious.org/guifi/drupal-guifi Drupal-Guifi], tots els processos involucrats en la  confecció  del UnsolClic&lt;br /&gt;
&lt;br /&gt;
== Fortaleses i Febleses ==&lt;br /&gt;
* Fortaleses  &lt;br /&gt;
** Aïlla a l'usuari de la configuració del trasto&lt;br /&gt;
** Actua com a backup de la configuració &lt;br /&gt;
** Fa visibles les configuraciós dels trastos per a tots els usuaris&lt;br /&gt;
** Dona consistencia a la xarxa &lt;br /&gt;
* Febleses&lt;br /&gt;
** Ha de generar codi en diferents llenguatges per a diferents dispositius, per tant s'ha de conèixer mímimament aquests llenguatges&lt;br /&gt;
** La incorporació de dispositius nous requereix aquesta codificació i porta temps. &lt;br /&gt;
** És genera a l'instant i no fa cache ni manté control de versions&lt;br /&gt;
&lt;br /&gt;
== Exemples == &lt;br /&gt;
* Nodes Client &lt;br /&gt;
** Linksys WRT54GL :[http://guifi.net/ca/guifi/device/315/view/unsolclic UnSolclic DD-Guifi] del node [http://guifi.net/ca/node/1589 Gurb Castell]&lt;br /&gt;
** Nanostation 2 : [http://guifilocal/ca/guifi/device/26702/view/unsolclic AirOS 2.0] del node [http://guifilocal/ca/guifi/device/26702 TRSANord80Rd1]&lt;br /&gt;
* Supernodes &lt;br /&gt;
** Linksys WRT54GL&lt;br /&gt;
** RouterBoard RB433 : [http://guifilocal/ca/guifi/device/30084/view/unsolclic RouterOS 4.0+] del node [http://guifilocal/ca/guifi/device/30084 TRSASocietatNord]&lt;br /&gt;
&lt;br /&gt;
= Procés de Generació = &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== La recepta dels tres passos per connectar  == &lt;br /&gt;
&lt;br /&gt;
Abans de generar el UnSolClic cal que completem a la web de guifi.net la recepta dels [https://guifi.net/ca/connectar_a_guifi tres passos per connectar], que ens proporcionarà tota la informació imprescindible, bàsicament&lt;br /&gt;
* 1. Crear un node, defineix el nom del node, la zona de la que hereta configuracions, etc...&lt;br /&gt;
&lt;br /&gt;
[[File:Addnode1.png]]&lt;br /&gt;
&lt;br /&gt;
* 2. Crear un trasto, defineix totes les propietats del nostre aparelli el firmware que executa, així com dades identificatives del nostre trasto.&lt;br /&gt;
 &lt;br /&gt;
[[File:Addradio1b.png]]&lt;br /&gt;
&lt;br /&gt;
* 3. Crear un enllaç, defineix quines seran les connexions del nostre node, l'adreça IP assignada i quins protocols d'enrutament s'utilitzaran&lt;br /&gt;
&lt;br /&gt;
[[File:Addradio3b.png]]&lt;br /&gt;
&lt;br /&gt;
== Fitxers involucrats (per ordre d'execució) == &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
├── guifi.module : Definició de rutes&lt;br /&gt;
├── guifi_unsolclic.inc.php : Execució Ruta UnSolclic, preparació de dependencies, generació Unsolclic&lt;br /&gt;
├── guifi_includes.inc.php : Funcions diverses de guifi.&lt;br /&gt;
├── guifi_node.inc.php : Càrrega de la informació del node&lt;br /&gt;
├── guifi_devices.inc.php : Càrrega de la informació del trasto&lt;br /&gt;
├── guifi_radios.inc.php : Càrrega de la informació de la radio&lt;br /&gt;
├── guifi_interfaces.inc.php : Càrrega de la informació de les interfaces&lt;br /&gt;
├── guifi_ipv4.inc.php : Càrrega de la informació de les adreces ip&lt;br /&gt;
├── guifi_links.inc.php : Càrrega de la informació dels enllaços&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Entitats involucrades ==&lt;br /&gt;
* Zona, la més específica de les diferents zones de la xarxa guifi.net on volem connectar, és a dir, que no tingui altres subzones&lt;br /&gt;
* Node, la ubicació concreta des d'on volem connectar. &lt;br /&gt;
** Trasto (device), l'aparell que utilitzarem per realitzar la connexió ( un node pot tenir més de un trasto i de diferents tipus) &lt;br /&gt;
** Radio , el dispositiu inalàmbric que utilitza el nostre trasto per establir una connexió física  ( per enllaçar es requereix almenys una radio) &lt;br /&gt;
** Interface , el nom mitjançant el qual interactuem amb la radio (n'hi pot haver vàries per cada radio) &lt;br /&gt;
** IPV4 , cadascuna de les adreces IP que reben les interfaces.&lt;br /&gt;
** Enllaços (links) , cadascuna de les connexions del nostre trasto amb altres trastos propers (poden ser wireless o per cable).&lt;br /&gt;
* Fabricant, la casa comercial que ven el trasto&lt;br /&gt;
* Model, la denominació pròpia del fabricant per a determinar el trasto&lt;br /&gt;
* Firmware, el programari intern que executa el trasto per realitzar totes les seves funcions (pot ser propietat del Fabricant, de tercers o de Programari Lliure) &lt;br /&gt;
&lt;br /&gt;
== Esquema de la Base de Dades ==&lt;br /&gt;
&lt;br /&gt;
En la següent imatge es pot veure l'esquema de les taules de les entitats involucreades en la generació del fitxer UnSolClic:&lt;br /&gt;
&lt;br /&gt;
[[File:TaulesUnSolclic2.png]]&lt;br /&gt;
&lt;br /&gt;
== Families de Casos actuals ==&lt;br /&gt;
Les configuracions UnSolclic existents es basen en les següents famílies de firmwares : &lt;br /&gt;
* Kamikaze&lt;br /&gt;
* AirOs&lt;br /&gt;
* GuifiStation&lt;br /&gt;
* Mikrotik&lt;br /&gt;
* WRT-SveaSoft&lt;br /&gt;
&lt;br /&gt;
TODO : Faltaria afegir altres firmwares com els de QMP, etc... &lt;br /&gt;
&lt;br /&gt;
= Afegir suport per a nous aparells = &lt;br /&gt;
&lt;br /&gt;
== Idea general ==&lt;br /&gt;
&lt;br /&gt;
L'objectiu és millorar el procés d'incorporació de nous dispositius a l'aplicació actual. Mitjançant una nova gestió web i un sistema de plantilles estándard, els usuaris avançats podràn crear els configuradors 'UnSolClic' per als nous dispositius del mercat i mantenir els existents amb més facilitat i eficiència.&lt;br /&gt;
&lt;br /&gt;
== Diagrama de fluxe del procés ==&lt;br /&gt;
&lt;br /&gt;
En el següent diagrama, partint de la situació inicial que veiem a la part superior esquerra, es mostra el procés a seguir per poder generar l'UnSolclic per a un aparell nou &lt;br /&gt;
&lt;br /&gt;
[[File:Diagrama fluxe2.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Fabricants ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Llistat&lt;br /&gt;
[[File:Manufacturer1.png]]&lt;br /&gt;
&lt;br /&gt;
* Formulari&lt;br /&gt;
[[File:Manufacturer2.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Models  ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:models1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:models2c.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Paràmetres ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:Params1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:Params2c.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Creació de Firmwares ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:firmware1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:firmware2b.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Plantilles UnsolClic ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:unsolclic1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:unsolclic2b.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Motor de plantilles Twig ===&lt;br /&gt;
&lt;br /&gt;
En la majoria de les webs actuals trobem que, per facilitar el manteniment i l'optimització de codi, es busca la manera de separar la presentació del contingut, el patró de disseny del [http://es.wikipedia.org/wiki/ModeloVistaControlador Model-Vista-Controlador] és el més utilitzat en la majoria de frameworks actuals. Així per una banda tenim les nostres dades i per l'altre un fitxer plantilla de com volem mostrar-les. &lt;br /&gt;
&lt;br /&gt;
Per implementar la capa de presentació és molt útil recórrer a un motor de plantilles estàndard que ens faciliti la feina. En el nostre sistema utilitzarem [http://twig.sensiolabs.org/ Twig] per la seva potència i simplicitat.Les seves característiques principals són les següents:&lt;br /&gt;
* Orígen : Symfony 2 Framework - Llicència : BSD&lt;br /&gt;
* Substitució de variables, filtres de text i crida de funcions natives.&lt;br /&gt;
* Estructures de control de flux&lt;br /&gt;
* Inclusió de fitxers i catxé per augment de rendiment&lt;br /&gt;
* Herència de plantilles&lt;br /&gt;
* Extensions, plugins i sandbox&lt;br /&gt;
&lt;br /&gt;
=== Sintaxi de Twig ===&lt;br /&gt;
&lt;br /&gt;
La sintaxi de Twig s'ha pensat per ser fàcil de fer servir i ràpida. Bàsicament, una plantilla és un fitxer de text en el que hi trobem variables o expressions i etiquetes que en controlen la lògica. &lt;br /&gt;
&lt;br /&gt;
Per mostrar el contingut d'una variable o expressió utilitzem la següent sintaxi : &lt;br /&gt;
{{ variable }} &lt;br /&gt;
&lt;br /&gt;
Per utilitzar etiquetes de control, utilitzarem &lt;br /&gt;
{% set buffer = 'un string amb quelcom' %} &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En el següent exemple de plantilla podem veure diferents exemples de la sintaxi de Twig&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{# hello comment! #}&lt;br /&gt;
{{ foo.bar }} {% set foo = 'foo' %}&lt;br /&gt;
{{ name|striptags|title }}&lt;br /&gt;
{% if users|length &amp;gt; 0 %}&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
        {% for user in users %}&lt;br /&gt;
            &amp;lt;li&amp;gt;{{ user.username|e }}&amp;lt;/li&amp;gt;&lt;br /&gt;
        {% endfor %}&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
{% endif %}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
A la documentació oficial de Twig podem veure [http://twig.sensiolabs.org/doc/templates.html més casos]&lt;br /&gt;
&lt;br /&gt;
=== Utilització de Twig ===&lt;br /&gt;
&lt;br /&gt;
Des de la banda del codi, per utilitzar Twig cal incloure la llibreria, carregar l'objecte i definir mínimament el seu comportament. A la [http://twig.sensiolabs.org/doc/api.html documentació oficial] hi podem trobar el següent fragment de codi :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
require_once '/path/to/lib/Twig/Autoloader.php';&lt;br /&gt;
Twig_Autoloader::register();&lt;br /&gt;
&lt;br /&gt;
$loader = new Twig_Loader_Filesystem('/path/to/templates');&lt;br /&gt;
$twig = new Twig_Environment($loader, array(&lt;br /&gt;
    'cache' =&amp;gt; '/path/to/compilation_cache',&lt;br /&gt;
));&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per carregar una plantilla utilitzem el següent fragment: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$template = $twig-&amp;gt;loadTemplate('index.html');&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i finalment per establir els valors que prendran les variables a la nostra plantilla  i visualitzar-la, el següent codi : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo $template-&amp;gt;render(array('the' =&amp;gt; 'variables', 'go' =&amp;gt; 'here'));&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Convencions de Guifi.net disponibles a les plantilles ===&lt;br /&gt;
&lt;br /&gt;
Com podem extreure de les entitats de guifi.net la informació necessària per fer una plantilla UnSolClic? &lt;br /&gt;
&lt;br /&gt;
Abans de la confecció de l'UnSolclic s'inicialitzen unes variables que contenen tota la informació de les entitats necessàries per tal que la poguem referenciar a les nostres plantilles.  Aquesta informació arriba estructurada de diferents formes i hi podem accedir de dos formes: &lt;br /&gt;
&lt;br /&gt;
* Amb una convenció de noms&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
* Jeràrquicament &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Edició de plantilles UnSolclic ===&lt;br /&gt;
=== Validació de plantilles UnSolclic ===&lt;/div&gt;</summary>
		<author><name>Albir</name></author>	</entry>

	<entry>
		<id>http://ca.wiki.guifi.net/wiki/Unsolclic</id>
		<title>Unsolclic</title>
		<link rel="alternate" type="text/html" href="http://ca.wiki.guifi.net/wiki/Unsolclic"/>
				<updated>2012-09-28T21:37:04Z</updated>
		
		<summary type="html">&lt;p&gt;Albir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introducció i Definició =&lt;br /&gt;
&lt;br /&gt;
El UnsolClic és una eina per configurar els aparells que formen part de la xarxa [http://guifi.net Guifi.net] i un dels factors clau per al seu creixement i expansió. Pren la forma d'un fitxer de text que correspòn a una sequència d'ordres escrita en el llenguatge acceptat per el aparell que utilitzem per connectar a la xarxa lliure guifi.net. &lt;br /&gt;
&lt;br /&gt;
Aquest document vol descriure, des de la vessant del desenvolupament del mòdul [https://gitorious.org/guifi/drupal-guifi Drupal-Guifi], tots els processos involucrats en la  confecció  del UnsolClic&lt;br /&gt;
&lt;br /&gt;
== Fortaleses i Febleses ==&lt;br /&gt;
* Fortaleses  &lt;br /&gt;
** Aïlla a l'usuari de la configuració del trasto&lt;br /&gt;
** Actua com a backup de la configuració &lt;br /&gt;
** Fa visibles les configuraciós dels trastos per a tots els usuaris&lt;br /&gt;
** Dona consistencia a la xarxa &lt;br /&gt;
* Febleses&lt;br /&gt;
** Ha de generar codi en diferents llenguatges per a diferents dispositius, per tant s'ha de conèixer mímimament aquests llenguatges&lt;br /&gt;
** La incorporació de dispositius nous requereix aquesta codificació i porta temps. &lt;br /&gt;
** És genera a l'instant i no fa cache ni manté control de versions&lt;br /&gt;
&lt;br /&gt;
== Exemples == &lt;br /&gt;
* Nodes Client &lt;br /&gt;
** Linksys WRT54GL :[http://guifi.net/ca/guifi/device/315/view/unsolclic UnSolclic DD-Guifi] del node [http://guifi.net/ca/node/1589 Gurb Castell]&lt;br /&gt;
** Nanostation 2 : [http://guifilocal/ca/guifi/device/26702/view/unsolclic AirOS 2.0] del node [http://guifilocal/ca/guifi/device/26702 TRSANord80Rd1]&lt;br /&gt;
* Supernodes &lt;br /&gt;
** Linksys WRT54GL&lt;br /&gt;
** RouterBoard RB433 : [http://guifilocal/ca/guifi/device/30084/view/unsolclic RouterOS 4.0+] del node [http://guifilocal/ca/guifi/device/30084 TRSASocietatNord]&lt;br /&gt;
&lt;br /&gt;
= Procés de Generació = &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== La recepta dels tres passos per connectar  == &lt;br /&gt;
&lt;br /&gt;
Abans de generar el UnSolClic cal que completem a la web de guifi.net la recepta dels [https://guifi.net/ca/connectar_a_guifi tres passos per connectar], que ens proporcionarà tota la informació imprescindible, bàsicament&lt;br /&gt;
* 1. Crear un node, defineix el nom del node, la zona de la que hereta configuracions, etc...&lt;br /&gt;
&lt;br /&gt;
[[File:Addnode1.png]]&lt;br /&gt;
&lt;br /&gt;
* 2. Crear un trasto, defineix totes les propietats del nostre aparelli el firmware que executa, així com dades identificatives del nostre trasto.&lt;br /&gt;
 &lt;br /&gt;
[[File:Addradio1b.png]]&lt;br /&gt;
&lt;br /&gt;
* 3. Crear un enllaç, defineix quines seran les connexions del nostre node, l'adreça IP assignada i quins protocols d'enrutament s'utilitzaran&lt;br /&gt;
&lt;br /&gt;
[[File:Addradio3b.png]]&lt;br /&gt;
&lt;br /&gt;
== Fitxers involucrats (per ordre d'execució) == &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
├── guifi.module : Definició de rutes&lt;br /&gt;
├── guifi_unsolclic.inc.php : Execució Ruta UnSolclic, preparació de dependencies, generació Unsolclic&lt;br /&gt;
├── guifi_includes.inc.php : Funcions diverses de guifi.&lt;br /&gt;
├── guifi_node.inc.php : Càrrega de la informació del node&lt;br /&gt;
├── guifi_devices.inc.php : Càrrega de la informació del trasto&lt;br /&gt;
├── guifi_radios.inc.php : Càrrega de la informació de la radio&lt;br /&gt;
├── guifi_interfaces.inc.php : Càrrega de la informació de les interfaces&lt;br /&gt;
├── guifi_ipv4.inc.php : Càrrega de la informació de les adreces ip&lt;br /&gt;
├── guifi_links.inc.php : Càrrega de la informació dels enllaços&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Entitats involucrades ==&lt;br /&gt;
* Zona, la més específica de les diferents zones de la xarxa guifi.net on volem connectar, és a dir, que no tingui altres subzones&lt;br /&gt;
* Node, la ubicació concreta des d'on volem connectar. &lt;br /&gt;
** Trasto (device), l'aparell que utilitzarem per realitzar la connexió ( un node pot tenir més de un trasto i de diferents tipus) &lt;br /&gt;
** Radio , el dispositiu inalàmbric que utilitza el nostre trasto per establir una connexió física  ( per enllaçar es requereix almenys una radio) &lt;br /&gt;
** Interface , el nom mitjançant el qual interactuem amb la radio (n'hi pot haver vàries per cada radio) &lt;br /&gt;
** IPV4 , cadascuna de les adreces IP que reben les interfaces.&lt;br /&gt;
** Enllaços (links) , cadascuna de les connexions del nostre trasto amb altres trastos propers (poden ser wireless o per cable).&lt;br /&gt;
* Fabricant, la casa comercial que ven el trasto&lt;br /&gt;
* Model, la denominació pròpia del fabricant per a determinar el trasto&lt;br /&gt;
* Firmware, el programari intern que executa el trasto per realitzar totes les seves funcions (pot ser propietat del Fabricant, de tercers o de Programari Lliure) &lt;br /&gt;
&lt;br /&gt;
== Esquema de la Base de Dades ==&lt;br /&gt;
&lt;br /&gt;
En la següent imatge es pot veure l'esquema de les taules de les entitats involucreades en la generació del fitxer UnSolClic:&lt;br /&gt;
&lt;br /&gt;
[[File:TaulesUnSolclic2.png]]&lt;br /&gt;
&lt;br /&gt;
== Families de Casos actuals ==&lt;br /&gt;
Les configuracions UnSolclic existents es basen en les següents famílies de firmwares : &lt;br /&gt;
* Kamikaze&lt;br /&gt;
* AirOs&lt;br /&gt;
* GuifiStation&lt;br /&gt;
* Mikrotik&lt;br /&gt;
* WRT-SveaSoft&lt;br /&gt;
&lt;br /&gt;
TODO : Faltaria afegir altres firmwares com els de QMP, etc... &lt;br /&gt;
&lt;br /&gt;
= Afegir suport per a nous aparells = &lt;br /&gt;
&lt;br /&gt;
== Idea general ==&lt;br /&gt;
&lt;br /&gt;
L'objectiu és millorar el procés d'incorporació de nous dispositius a l'aplicació actual. Mitjançant una nova gestió web i un sistema de plantilles estándard, els usuaris avançats podràn crear els configuradors 'UnSolClic' per als nous dispositius del mercat i mantenir els existents amb més facilitat i eficiència.&lt;br /&gt;
&lt;br /&gt;
== Diagrama de fluxe del procés ==&lt;br /&gt;
&lt;br /&gt;
En el següent diagrama, partint de la situació inicial que veiem a la part superior esquerra, es mostra el procés a seguir per poder generar l'UnSolclic per a un aparell nou &lt;br /&gt;
&lt;br /&gt;
[[File:Diagrama fluxe2.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Fabricants ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Llistat&lt;br /&gt;
[[File:Manufacturer1.png]]&lt;br /&gt;
&lt;br /&gt;
* Formulari&lt;br /&gt;
[[File:Manufacturer2.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Models  ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:models1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:models2c.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Firmwares ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:firmware1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:firmware2b.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Plantilles UnsolClic ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:unsolclic1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:unsolclic2b.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Motor de plantilles Twig ===&lt;br /&gt;
&lt;br /&gt;
En la majoria de les webs actuals trobem que, per facilitar el manteniment i l'optimització de codi, es busca la manera de separar la presentació del contingut, el patró de disseny del [http://es.wikipedia.org/wiki/ModeloVistaControlador Model-Vista-Controlador] és el més utilitzat en la majoria de frameworks actuals. Així per una banda tenim les nostres dades i per l'altre un fitxer plantilla de com volem mostrar-les. &lt;br /&gt;
&lt;br /&gt;
Per implementar la capa de presentació és molt útil recórrer a un motor de plantilles estàndard que ens faciliti la feina. En el nostre sistema utilitzarem [http://twig.sensiolabs.org/ Twig] per la seva potència i simplicitat.Les seves característiques principals són les següents:&lt;br /&gt;
* Orígen : Symfony 2 Framework - Llicència : BSD&lt;br /&gt;
* Substitució de variables, filtres de text i crida de funcions natives.&lt;br /&gt;
* Estructures de control de flux&lt;br /&gt;
* Inclusió de fitxers i catxé per augment de rendiment&lt;br /&gt;
* Herència de plantilles&lt;br /&gt;
* Extensions, plugins i sandbox&lt;br /&gt;
&lt;br /&gt;
=== Sintaxi de Twig ===&lt;br /&gt;
&lt;br /&gt;
La sintaxi de Twig s'ha pensat per ser fàcil de fer servir i ràpida. Bàsicament, una plantilla és un fitxer de text en el que hi trobem variables o expressions i etiquetes que en controlen la lògica. &lt;br /&gt;
&lt;br /&gt;
Per mostrar el contingut d'una variable o expressió utilitzem la següent sintaxi : &lt;br /&gt;
{{ variable }} &lt;br /&gt;
&lt;br /&gt;
Per utilitzar etiquetes de control, utilitzarem &lt;br /&gt;
{% set buffer = 'un string amb quelcom' %} &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En el següent exemple de plantilla podem veure diferents exemples de la sintaxi de Twig&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{# hello comment! #}&lt;br /&gt;
{{ foo.bar }} {% set foo = 'foo' %}&lt;br /&gt;
{{ name|striptags|title }}&lt;br /&gt;
{% if users|length &amp;gt; 0 %}&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
        {% for user in users %}&lt;br /&gt;
            &amp;lt;li&amp;gt;{{ user.username|e }}&amp;lt;/li&amp;gt;&lt;br /&gt;
        {% endfor %}&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
{% endif %}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
A la documentació oficial de Twig podem veure [http://twig.sensiolabs.org/doc/templates.html més casos]&lt;br /&gt;
&lt;br /&gt;
=== Utilització de Twig ===&lt;br /&gt;
&lt;br /&gt;
Des de la banda del codi, per utilitzar Twig cal incloure la llibreria, carregar l'objecte i definir mínimament el seu comportament. A la [http://twig.sensiolabs.org/doc/api.html documentació oficial] hi podem trobar el següent fragment de codi :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
require_once '/path/to/lib/Twig/Autoloader.php';&lt;br /&gt;
Twig_Autoloader::register();&lt;br /&gt;
&lt;br /&gt;
$loader = new Twig_Loader_Filesystem('/path/to/templates');&lt;br /&gt;
$twig = new Twig_Environment($loader, array(&lt;br /&gt;
    'cache' =&amp;gt; '/path/to/compilation_cache',&lt;br /&gt;
));&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per carregar una plantilla utilitzem el següent fragment: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$template = $twig-&amp;gt;loadTemplate('index.html');&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i finalment per establir els valors que prendran les variables a la nostra plantilla  i visualitzar-la, el següent codi : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo $template-&amp;gt;render(array('the' =&amp;gt; 'variables', 'go' =&amp;gt; 'here'));&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Convencions de Guifi.net disponibles a les plantilles ===&lt;br /&gt;
&lt;br /&gt;
Com podem extreure de les entitats de guifi.net la informació necessària per fer una plantilla UnSolClic? &lt;br /&gt;
&lt;br /&gt;
Abans de la confecció de l'UnSolclic s'inicialitzen unes variables que contenen tota la informació de les entitats necessàries per tal que la poguem referenciar a les nostres plantilles.  Aquesta informació arriba estructurada de diferents formes i hi podem accedir de dos formes: &lt;br /&gt;
&lt;br /&gt;
* Amb una convenció de noms&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
* Jeràrquicament &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Edició de plantilles UnSolclic ===&lt;br /&gt;
=== Validació de plantilles UnSolclic ===&lt;/div&gt;</summary>
		<author><name>Albir</name></author>	</entry>

	<entry>
		<id>http://ca.wiki.guifi.net/wiki/Unsolclic</id>
		<title>Unsolclic</title>
		<link rel="alternate" type="text/html" href="http://ca.wiki.guifi.net/wiki/Unsolclic"/>
				<updated>2012-09-28T21:33:49Z</updated>
		
		<summary type="html">&lt;p&gt;Albir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introducció i Definició =&lt;br /&gt;
&lt;br /&gt;
El UnsolClic és una eina per configurar els aparells que formen part de la xarxa [http://guifi.net Guifi.net] i un dels factors clau per al seu creixement i expansió. Pren la forma d'un fitxer de text que correspòn a una sequència d'ordres escrita en el llenguatge acceptat per el aparell que utilitzem per connectar a la xarxa lliure guifi.net. &lt;br /&gt;
&lt;br /&gt;
Aquest document vol descriure, des de la vessant del desenvolupament del mòdul [https://gitorious.org/guifi/drupal-guifi Drupal-Guifi], tots els processos involucrats en la  confecció  del UnsolClic&lt;br /&gt;
&lt;br /&gt;
== Fortaleses i Febleses ==&lt;br /&gt;
* Fortaleses  &lt;br /&gt;
** Aïlla a l'usuari de la configuració del trasto&lt;br /&gt;
** Actua com a backup de la configuració &lt;br /&gt;
** Fa visibles les configuraciós dels trastos per a tots els usuaris&lt;br /&gt;
** Dona consistencia a la xarxa &lt;br /&gt;
* Febleses&lt;br /&gt;
** Ha de generar codi en diferents llenguatges per a diferents dispositius, per tant s'ha de conèixer mímimament aquests llenguatges&lt;br /&gt;
** La incorporació de dispositius nous requereix aquesta codificació i porta temps. &lt;br /&gt;
** És genera a l'instant i no fa cache ni manté control de versions&lt;br /&gt;
&lt;br /&gt;
== Exemples == &lt;br /&gt;
* Nodes Client &lt;br /&gt;
** Linksys WRT54GL :[http://guifi.net/ca/guifi/device/315/view/unsolclic UnSolclic DD-Guifi] del node [http://guifi.net/ca/node/1589 Gurb Castell]&lt;br /&gt;
** Nanostation 2 : [http://guifilocal/ca/guifi/device/26702/view/unsolclic AirOS 2.0] del node [http://guifilocal/ca/guifi/device/26702 TRSANord80Rd1]&lt;br /&gt;
* Supernodes &lt;br /&gt;
** Linksys WRT54GL&lt;br /&gt;
** RouterBoard RB433 : [http://guifilocal/ca/guifi/device/30084/view/unsolclic RouterOS 4.0+] del node [http://guifilocal/ca/guifi/device/30084 TRSASocietatNord]&lt;br /&gt;
&lt;br /&gt;
= Procés de Generació = &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== La recepta dels tres passos per connectar  == &lt;br /&gt;
&lt;br /&gt;
Abans de generar el UnSolClic cal que completem a la web de guifi.net la recepta dels [https://guifi.net/ca/connectar_a_guifi tres passos per connectar], que ens proporcionarà tota la informació imprescindible, bàsicament&lt;br /&gt;
* 1. Crear un node, defineix el nom del node, la zona de la que hereta configuracions, etc...&lt;br /&gt;
&lt;br /&gt;
[[File:Addnode1.png]]&lt;br /&gt;
&lt;br /&gt;
* 2. Crear un trasto, defineix totes les propietats del nostre aparelli el firmware que executa, així com dades identificatives del nostre trasto.&lt;br /&gt;
 &lt;br /&gt;
[[File:Addradio1b.png]]&lt;br /&gt;
&lt;br /&gt;
* 3. Crear un enllaç, defineix quines seran les connexions del nostre node, l'adreça IP assignada i quins protocols d'enrutament s'utilitzaran&lt;br /&gt;
&lt;br /&gt;
[[File:Addradio3b.png]]&lt;br /&gt;
&lt;br /&gt;
== Fitxers involucrats (per ordre d'execució) == &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
├── guifi.module : Definició de rutes&lt;br /&gt;
├── guifi_unsolclic.inc.php : Execució Ruta UnSolclic, preparació de dependencies, generació Unsolclic&lt;br /&gt;
├── guifi_includes.inc.php : Funcions diverses de guifi.&lt;br /&gt;
├── guifi_node.inc.php : Càrrega de la informació del node&lt;br /&gt;
├── guifi_devices.inc.php : Càrrega de la informació del trasto&lt;br /&gt;
├── guifi_radios.inc.php : Càrrega de la informació de la radio&lt;br /&gt;
├── guifi_interfaces.inc.php : Càrrega de la informació de les interfaces&lt;br /&gt;
├── guifi_ipv4.inc.php : Càrrega de la informació de les adreces ip&lt;br /&gt;
├── guifi_links.inc.php : Càrrega de la informació dels enllaços&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Entitats involucrades ==&lt;br /&gt;
* Zona, la més específica de les diferents zones de la xarxa guifi.net on volem connectar, és a dir, que no tingui altres subzones&lt;br /&gt;
* Node, la ubicació concreta des d'on volem connectar. &lt;br /&gt;
** Trasto (device), l'aparell que utilitzarem per realitzar la connexió ( un node pot tenir més de un trasto i de diferents tipus) &lt;br /&gt;
** Radio , el dispositiu inalàmbric que utilitza el nostre trasto per establir una connexió física  ( per enllaçar es requereix almenys una radio) &lt;br /&gt;
** Interface , el nom mitjançant el qual interactuem amb la radio (n'hi pot haver vàries per cada radio) &lt;br /&gt;
** IPV4 , cadascuna de les adreces IP que reben les interfaces.&lt;br /&gt;
** Enllaços (links) , cadascuna de les connexions del nostre trasto amb altres trastos propers (poden ser wireless o per cable).&lt;br /&gt;
* Fabricant, la casa comercial que ven el trasto&lt;br /&gt;
* Model, la denominació pròpia del fabricant per a determinar el trasto&lt;br /&gt;
* Firmware, el programari intern que executa el trasto per realitzar totes les seves funcions (pot ser propietat del Fabricant, de tercers o de Programari Lliure) &lt;br /&gt;
&lt;br /&gt;
== Esquema de la Base de Dades ==&lt;br /&gt;
&lt;br /&gt;
En la segutn imatge es pot veure l'esquema de les taules de les entitats involucreades en la generació del fitxer UnSolClic:&lt;br /&gt;
&lt;br /&gt;
[[File:TaulesUnSolclic2.png]]&lt;br /&gt;
&lt;br /&gt;
== Families de Casos actuals ==&lt;br /&gt;
=== Kamikaze ===&lt;br /&gt;
=== AirOs ===&lt;br /&gt;
=== GuifiStation ===&lt;br /&gt;
=== Mikrotik ===&lt;br /&gt;
=== WRT-SveaSoft ===&lt;br /&gt;
&lt;br /&gt;
= Afegir suport per a nous aparells = &lt;br /&gt;
&lt;br /&gt;
== Idea general ==&lt;br /&gt;
&lt;br /&gt;
L'objectiu és millorar el procés d'incorporació de nous dispositius a l'aplicació actual. Mitjançant una nova gestió web i un sistema de plantilles estándard, els usuaris avançats podràn crear els configuradors 'UnSolClic' per als nous dispositius del mercat i mantenir els existents amb més facilitat i eficiència.&lt;br /&gt;
&lt;br /&gt;
== Diagrama de fluxe del procés ==&lt;br /&gt;
&lt;br /&gt;
En el següent diagrama, partint de la situació inicial que veiem a la part superior esquerra, es mostra el procés a seguir per poder generar l'UnSolclic per a un aparell nou &lt;br /&gt;
&lt;br /&gt;
[[File:Diagrama fluxe2.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Fabricants ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Llistat&lt;br /&gt;
[[File:Manufacturer1.png]]&lt;br /&gt;
&lt;br /&gt;
* Formulari&lt;br /&gt;
[[File:Manufacturer2.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Models  ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:models1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:models2c.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Firmwares ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:firmware1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:firmware2b.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Plantilles UnsolClic ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:unsolclic1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:unsolclic2b.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Motor de plantilles Twig ===&lt;br /&gt;
&lt;br /&gt;
En la majoria de les webs actuals trobem que, per facilitar el manteniment i l'optimització de codi, es busca la manera de separar la presentació del contingut, el patró de disseny del [http://es.wikipedia.org/wiki/ModeloVistaControlador Model-Vista-Controlador] és el més utilitzat en la majoria de frameworks actuals. Així per una banda tenim les nostres dades i per l'altre un fitxer plantilla de com volem mostrar-les. &lt;br /&gt;
&lt;br /&gt;
Per implementar la capa de presentació és molt útil recórrer a un motor de plantilles estàndard que ens faciliti la feina. En el nostre sistema utilitzarem [http://twig.sensiolabs.org/ Twig] per la seva potència i simplicitat.Les seves característiques principals són les següents:&lt;br /&gt;
* Orígen : Symfony 2 Framework - Llicència : BSD&lt;br /&gt;
* Substitució de variables, filtres de text i crida de funcions natives.&lt;br /&gt;
* Estructures de control de flux&lt;br /&gt;
* Inclusió de fitxers i catxé per augment de rendiment&lt;br /&gt;
* Herència de plantilles&lt;br /&gt;
* Extensions, plugins i sandbox&lt;br /&gt;
&lt;br /&gt;
=== Sintaxi de Twig ===&lt;br /&gt;
&lt;br /&gt;
La sintaxi de Twig s'ha pensat per ser fàcil de fer servir i ràpida. Bàsicament, una plantilla és un fitxer de text en el que hi trobem variables o expressions i etiquetes que en controlen la lògica. &lt;br /&gt;
&lt;br /&gt;
Per mostrar el contingut d'una variable o expressió utilitzem la següent sintaxi : &lt;br /&gt;
{{ variable }} &lt;br /&gt;
&lt;br /&gt;
Per utilitzar etiquetes de control, utilitzarem &lt;br /&gt;
{% set buffer = 'un string amb quelcom' %} &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En el següent exemple de plantilla podem veure diferents exemples de la sintaxi de Twig&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{# hello comment! #}&lt;br /&gt;
{{ foo.bar }} {% set foo = 'foo' %}&lt;br /&gt;
{{ name|striptags|title }}&lt;br /&gt;
{% if users|length &amp;gt; 0 %}&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
        {% for user in users %}&lt;br /&gt;
            &amp;lt;li&amp;gt;{{ user.username|e }}&amp;lt;/li&amp;gt;&lt;br /&gt;
        {% endfor %}&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
{% endif %}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
A la documentació oficial de Twig podem veure [http://twig.sensiolabs.org/doc/templates.html més casos]&lt;br /&gt;
&lt;br /&gt;
=== Utilització de Twig ===&lt;br /&gt;
&lt;br /&gt;
Des de la banda del codi, per utilitzar Twig cal incloure la llibreria, carregar l'objecte i definir mínimament el seu comportament. A la [http://twig.sensiolabs.org/doc/api.html documentació oficial] hi podem trobar el següent fragment de codi :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
require_once '/path/to/lib/Twig/Autoloader.php';&lt;br /&gt;
Twig_Autoloader::register();&lt;br /&gt;
&lt;br /&gt;
$loader = new Twig_Loader_Filesystem('/path/to/templates');&lt;br /&gt;
$twig = new Twig_Environment($loader, array(&lt;br /&gt;
    'cache' =&amp;gt; '/path/to/compilation_cache',&lt;br /&gt;
));&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per carregar una plantilla utilitzem el següent fragment: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$template = $twig-&amp;gt;loadTemplate('index.html');&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i finalment per establir els valors que prendran les variables a la nostra plantilla  i visualitzar-la, el següent codi : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo $template-&amp;gt;render(array('the' =&amp;gt; 'variables', 'go' =&amp;gt; 'here'));&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Convencions de Guifi.net disponibles a les plantilles ===&lt;br /&gt;
&lt;br /&gt;
Com podem extreure de les entitats de guifi.net la informació necessària per fer una plantilla UnSolClic? &lt;br /&gt;
&lt;br /&gt;
Abans de la confecció de l'UnSolclic s'inicialitzen unes variables que contenen tota la informació de les entitats necessàries per tal que la poguem referenciar a les nostres plantilles.  Aquesta informació arriba estructurada de diferents formes i hi podem accedir de dos formes: &lt;br /&gt;
&lt;br /&gt;
* Amb una convenció de noms&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
* Jeràrquicament &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Edició de plantilles UnSolclic ===&lt;br /&gt;
=== Validació de plantilles UnSolclic ===&lt;/div&gt;</summary>
		<author><name>Albir</name></author>	</entry>

	<entry>
		<id>http://ca.wiki.guifi.net/wiki/Unsolclic</id>
		<title>Unsolclic</title>
		<link rel="alternate" type="text/html" href="http://ca.wiki.guifi.net/wiki/Unsolclic"/>
				<updated>2012-09-28T19:24:14Z</updated>
		
		<summary type="html">&lt;p&gt;Albir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introducció i Definició =&lt;br /&gt;
&lt;br /&gt;
El UnsolClic és una eina per configurar els aparells que formen part de la xarxa [http://guifi.net Guifi.net] i un dels factors clau per al seu creixement i expansió. Pren la forma d'un fitxer de text que correspòn a una sequència d'ordres escrita en el llenguatge acceptat per el aparell que utilitzem per connectar a la xarxa lliure guifi.net. &lt;br /&gt;
&lt;br /&gt;
Aquest document vol descriure, des de la vessant del desenvolupament del mòdul [https://gitorious.org/guifi/drupal-guifi Drupal-Guifi], tots els processos involucrats en la  confecció  del UnsolClic&lt;br /&gt;
&lt;br /&gt;
== Fortaleses i Febleses ==&lt;br /&gt;
* Fortaleses  &lt;br /&gt;
** Aïlla a l'usuari de la configuració del trasto&lt;br /&gt;
** Actua com a backup de la configuració &lt;br /&gt;
** Fa visibles les configuraciós dels trastos per a tots els usuaris&lt;br /&gt;
** Dona consistencia a la xarxa &lt;br /&gt;
* Febleses&lt;br /&gt;
** Ha de generar codi en diferents llenguatges per a diferents dispositius, per tant s'ha de conèixer mímimament aquests llenguatges&lt;br /&gt;
** La incorporació de dispositius nous requereix aquesta codificació i porta temps. &lt;br /&gt;
** És genera a l'instant i no fa cache ni manté control de versions&lt;br /&gt;
&lt;br /&gt;
== Exemples == &lt;br /&gt;
* Nodes Client &lt;br /&gt;
** Linksys WRT54GL :[http://guifi.net/ca/guifi/device/315/view/unsolclic UnSolclic DD-Guifi] del node [http://guifi.net/ca/node/1589 Gurb Castell]&lt;br /&gt;
** Nanostation 2 : [http://guifilocal/ca/guifi/device/26702/view/unsolclic AirOS 2.0] del node [http://guifilocal/ca/guifi/device/26702 TRSANord80Rd1]&lt;br /&gt;
* Supernodes &lt;br /&gt;
** Linksys WRT54GL&lt;br /&gt;
** RouterBoard RB433 : [http://guifilocal/ca/guifi/device/30084/view/unsolclic RouterOS 4.0+] del node [http://guifilocal/ca/guifi/device/30084 TRSASocietatNord]&lt;br /&gt;
&lt;br /&gt;
= Procés de Generació = &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== La recepta dels tres passos per connectar  == &lt;br /&gt;
&lt;br /&gt;
Abans de generar el UnSolClic cal que completem a la web de guifi.net la recepta dels [https://guifi.net/ca/connectar_a_guifi tres passos per connectar], que ens proporcionarà tota la informació imprescindible, bàsicament&lt;br /&gt;
* 1. Crear un node, defineix el nom del node, la zona de la que hereta configuracions, etc...&lt;br /&gt;
&lt;br /&gt;
[[File:Addnode1.png]]&lt;br /&gt;
&lt;br /&gt;
* 2. Crear un trasto, defineix totes les propietats del nostre aparelli el firmware que executa, així com dades identificatives del nostre trasto.&lt;br /&gt;
 &lt;br /&gt;
[[File:Addradio1b.png]]&lt;br /&gt;
&lt;br /&gt;
* 3. Crear un enllaç, defineix quines seran les connexions del nostre node, l'adreça IP assignada i quins protocols d'enrutament s'utilitzaran&lt;br /&gt;
&lt;br /&gt;
[[File:Addradio3b.png]]&lt;br /&gt;
&lt;br /&gt;
== Fitxers involucrats (per ordre d'execució) == &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
├── guifi.module : Definició de rutes&lt;br /&gt;
├── guifi_unsolclic.inc.php : Execució Ruta UnSolclic, preparació de dependencies, generació Unsolclic&lt;br /&gt;
├── guifi_includes.inc.php : Funcions diverses de guifi.&lt;br /&gt;
├── guifi_node.inc.php : Càrrega de la informació del node&lt;br /&gt;
├── guifi_devices.inc.php : Càrrega de la informació del trasto&lt;br /&gt;
├── guifi_radios.inc.php : Càrrega de la informació de la radio&lt;br /&gt;
├── guifi_interfaces.inc.php : Càrrega de la informació de les interfaces&lt;br /&gt;
├── guifi_ipv4.inc.php : Càrrega de la informació de les adreces ip&lt;br /&gt;
├── guifi_links.inc.php : Càrrega de la informació dels enllaços&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Entitats involucrades ==&lt;br /&gt;
* Zona, la més específica de les diferents zones de la xarxa guifi.net on volem connectar, és a dir, que no tingui altres subzones&lt;br /&gt;
* Node, la ubicació concreta des d'on volem connectar. &lt;br /&gt;
** Trasto (device), l'aparell que utilitzarem per realitzar la connexió ( un node pot tenir més de un trasto i de diferents tipus) &lt;br /&gt;
** Radio , el dispositiu inalàmbric que utilitza el nostre trasto per establir una connexió física  ( per enllaçar es requereix almenys una radio) &lt;br /&gt;
** Interface , el nom mitjançant el qual interactuem amb la radio (n'hi pot haver vàries per cada radio) &lt;br /&gt;
** IPV4 , cadascuna de les adreces IP que reben les interfaces.&lt;br /&gt;
** Enllaços (links) , cadascuna de les connexions del nostre trasto amb altres trastos propers (poden ser wireless o per cable).&lt;br /&gt;
* Fabricant, la casa comercial que ven el trasto&lt;br /&gt;
* Model, la denominació pròpia del fabricant per a determinar el trasto&lt;br /&gt;
* Firmware, el programari intern que executa el trasto per realitzar totes les seves funcions (pot ser propietat del Fabricant, de tercers o de Programari Lliure) &lt;br /&gt;
&lt;br /&gt;
== Esquema de la Base de Dades ==&lt;br /&gt;
&lt;br /&gt;
En la segutn imatge es pot veure l'esquema de les taules de les entitats involucreades en la generació del fitxer UnSolClic:&lt;br /&gt;
&lt;br /&gt;
[[File:TaulesUnSolclic2.png]]&lt;br /&gt;
&lt;br /&gt;
== Families de Casos actuals ==&lt;br /&gt;
=== Kamikaze ===&lt;br /&gt;
=== AirOs ===&lt;br /&gt;
=== GuifiStation ===&lt;br /&gt;
=== Mikrotik ===&lt;br /&gt;
=== WRT-SveaSoft ===&lt;br /&gt;
&lt;br /&gt;
= Afegir suport per a nous aparells = &lt;br /&gt;
&lt;br /&gt;
== Idea general ==&lt;br /&gt;
&lt;br /&gt;
L'objectiu és millorar el procés d'incorporació de nous dispositius a l'aplicació actual. Mitjançant una nova gestió web i un sistema de plantilles estándard, els usuaris avançats podràn crear els configuradors 'UnSolClic' per als nous dispositius del mercat i mantenir els existents amb més facilitat i eficiència.&lt;br /&gt;
&lt;br /&gt;
== Diagrama de fluxe del procés ==&lt;br /&gt;
&lt;br /&gt;
En el següent diagrama, partint de la situació inicial que veiem a la part superior esquerra, es mostra el procés a seguir per poder generar l'UnSolclic per a un aparell nou &lt;br /&gt;
&lt;br /&gt;
[[File:Diagrama fluxe2.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Fabricants ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Llistat&lt;br /&gt;
[[File:Manufacturer1.png]]&lt;br /&gt;
&lt;br /&gt;
* Formulari&lt;br /&gt;
[[File:Manufacturer2.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Models  ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:models1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:models2c.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Firmwares ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:firmware1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:firmware2b.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Plantilles UnsolClic ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:unsolclic1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:unsolclic2b.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Motor de plantilles Twig ===&lt;br /&gt;
&lt;br /&gt;
En la majoria de les webs actuals trobem que, per facilitar el manteniment i l'optimització de codi, es busca la manera de separar la presentació del contingut, el patró de disseny del [http://es.wikipedia.org/wiki/ModeloVistaControlador Model-Vista-Controlador] és el més utilitzat en la majoria de frameworks actuals. Així per una banda tenim les nostres dades i per l'altre un fitxer plantilla de com volem mostrar-les. &lt;br /&gt;
&lt;br /&gt;
Per implementar la capa de presentació és molt útil recórrer a un motor de plantilles estàndard que ens faciliti la feina. En el nostre sistema utilitzarem [http://twig.sensiolabs.org/ Twig] per la seva potència i simplicitat.Les seves característiques principals són les següents:&lt;br /&gt;
* Orígen : Symfony 2 Framework - Llicència : BSD&lt;br /&gt;
* Substitució de variables, filtres de text i crida de funcions natives.&lt;br /&gt;
* Estructures de control de flux&lt;br /&gt;
* Inclusió de fitxers i catxé per augment de rendiment&lt;br /&gt;
* Herència de plantilles&lt;br /&gt;
* Extensions, plugins i sandbox&lt;br /&gt;
&lt;br /&gt;
=== Sintaxi de Twig ===&lt;br /&gt;
&lt;br /&gt;
La sintaxi de Twig s'ha pensat per ser fàcil de fer servir i ràpida. Bàsicament, una plantilla és un fitxer de text en el que hi trobem variables o expressions i etiquetes que en controlen la lògica. &lt;br /&gt;
&lt;br /&gt;
Per mostrar el contingut d'una variable o expressió utilitzem la següent sintaxi : &lt;br /&gt;
{{ variable }} &lt;br /&gt;
&lt;br /&gt;
Per utilitzar etiquetes de control, utilitzarem &lt;br /&gt;
{% set buffer = 'un string amb quelcom' %} &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En el següent exemple de plantilla podem veure diferents exemples de la sintaxi de Twig&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{# hello comment! #}&lt;br /&gt;
{{ foo.bar }} {% set foo = 'foo' %}&lt;br /&gt;
{{ name|striptags|title }}&lt;br /&gt;
{% if users|length &amp;gt; 0 %}&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
        {% for user in users %}&lt;br /&gt;
            &amp;lt;li&amp;gt;{{ user.username|e }}&amp;lt;/li&amp;gt;&lt;br /&gt;
        {% endfor %}&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
{% endif %}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
A la documentació oficial de Twig podem veure [http://twig.sensiolabs.org/doc/templates.html més casos]&lt;br /&gt;
&lt;br /&gt;
=== Utilització de Twig ===&lt;br /&gt;
&lt;br /&gt;
Des de la banda del codi, per utilitzar Twig cal incloure la llibreria, carregar l'objecte i definir mínimament el seu comportament. A la [http://twig.sensiolabs.org/doc/api.html documentació oficial] hi podem trobar el següent fragment de codi :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
require_once '/path/to/lib/Twig/Autoloader.php';&lt;br /&gt;
Twig_Autoloader::register();&lt;br /&gt;
&lt;br /&gt;
$loader = new Twig_Loader_Filesystem('/path/to/templates');&lt;br /&gt;
$twig = new Twig_Environment($loader, array(&lt;br /&gt;
    'cache' =&amp;gt; '/path/to/compilation_cache',&lt;br /&gt;
));&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per carregar una plantilla utilitzem el següent fragment: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$template = $twig-&amp;gt;loadTemplate('index.html');&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i finalment per establir els valors que prendran les variables a la nostra plantilla  i visualitzar-la, el següent codi : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo $template-&amp;gt;render(array('the' =&amp;gt; 'variables', 'go' =&amp;gt; 'here'));&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Convencions de Guifi.net disponibles a les plantilles ===&lt;br /&gt;
&lt;br /&gt;
Com podem extreure de les entitats de guifi.net la informació necessària per confeccionar un fitxer UnSolClic. &lt;br /&gt;
&lt;br /&gt;
En la confecció de l'UnSolclic s'inicialitza en unes variables que contenen tota la informació estructurada per tal que la poguem referenciar a les nostres plantilles. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Edició de plantilles UnSolclic ===&lt;br /&gt;
=== Validació de plantilles UnSolclic ===&lt;/div&gt;</summary>
		<author><name>Albir</name></author>	</entry>

	<entry>
		<id>http://ca.wiki.guifi.net/wiki/Unsolclic</id>
		<title>Unsolclic</title>
		<link rel="alternate" type="text/html" href="http://ca.wiki.guifi.net/wiki/Unsolclic"/>
				<updated>2012-09-28T19:02:46Z</updated>
		
		<summary type="html">&lt;p&gt;Albir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introducció i Definició =&lt;br /&gt;
&lt;br /&gt;
El UnsolClic és una eina per configurar els aparells que formen part de la xarxa [http://guifi.net Guifi.net] i un dels factors clau per al seu creixement i expansió. Pren la forma d'un fitxer de text que correspòn a una sequència d'ordres escrita en el llenguatge acceptat per el aparell que utilitzem per connectar a la xarxa lliure guifi.net. &lt;br /&gt;
&lt;br /&gt;
Aquest document vol descriure, des de la vessant del desenvolupament del mòdul [https://gitorious.org/guifi/drupal-guifi Drupal-Guifi], tots els processos involucrats en la  confecció  del UnsolClic&lt;br /&gt;
&lt;br /&gt;
== Fortaleses i Febleses ==&lt;br /&gt;
* Fortaleses  &lt;br /&gt;
** Aïlla a l'usuari de la configuració del trasto&lt;br /&gt;
** Actua com a backup de la configuració &lt;br /&gt;
** Fa visibles les configuraciós dels trastos per a tots els usuaris&lt;br /&gt;
** Dona consistencia a la xarxa &lt;br /&gt;
* Febleses&lt;br /&gt;
** Ha de generar codi en diferents llenguatges per a diferents dispositius, per tant s'ha de conèixer mímimament aquests llenguatges&lt;br /&gt;
** La incorporació de dispositius nous requereix aquesta codificació i porta temps. &lt;br /&gt;
** És genera a l'instant i no fa cache ni manté control de versions&lt;br /&gt;
&lt;br /&gt;
== Exemples == &lt;br /&gt;
* Nodes Client &lt;br /&gt;
** Linksys WRT54GL :[http://guifi.net/ca/guifi/device/315/view/unsolclic UnSolclic DD-Guifi] del node [http://guifi.net/ca/node/1589 Gurb Castell]&lt;br /&gt;
** Nanostation 2 : [http://guifilocal/ca/guifi/device/26702/view/unsolclic AirOS 2.0] del node [http://guifilocal/ca/guifi/device/26702 TRSANord80Rd1]&lt;br /&gt;
* Supernodes &lt;br /&gt;
** Linksys WRT54GL&lt;br /&gt;
** RouterBoard RB433 : [http://guifilocal/ca/guifi/device/30084/view/unsolclic RouterOS 4.0+] del node [http://guifilocal/ca/guifi/device/30084 TRSASocietatNord]&lt;br /&gt;
&lt;br /&gt;
= Procés de Generació = &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== La recepta dels tres passos per connectar  == &lt;br /&gt;
&lt;br /&gt;
Abans de generar el UnSolClic cal que completem a la web de guifi.net la recepta dels [https://guifi.net/ca/connectar_a_guifi tres passos per connectar], que ens proporcionarà tota la informació imprescindible, bàsicament&lt;br /&gt;
* 1. Crear un node, defineix el nom del node, la zona de la que hereta configuracions, etc...&lt;br /&gt;
[[File:Addnode1.png]]&lt;br /&gt;
* 2. Crear un trasto, defineix totes les propietats del nostre aparelli el firmware que executa, així com dades identificatives del nostre trasto. &lt;br /&gt;
[[File:Addradio1b.png]]&lt;br /&gt;
* 3. Crear un enllaç, defineix quines seran les connexions del nostre node, l'adreça IP assignada i quins protocols d'enrutament s'utilitzaran&lt;br /&gt;
[[File:Addradio3b.png]]&lt;br /&gt;
&lt;br /&gt;
== Fitxers involucrats (per ordre d'execució) == &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
├── guifi.module : Definició de rutes&lt;br /&gt;
├── guifi_unsolclic.inc.php : Execució Ruta UnSolclic, preparació de dependencies, generació Unsolclic&lt;br /&gt;
├── guifi_includes.inc.php : Funcions diverses de guifi.&lt;br /&gt;
├── guifi_node.inc.php : Càrrega de la informació del node&lt;br /&gt;
├── guifi_devices.inc.php : Càrrega de la informació del trasto&lt;br /&gt;
├── guifi_radios.inc.php : Càrrega de la informació de la radio&lt;br /&gt;
├── guifi_interfaces.inc.php : Càrrega de la informació de les interfaces&lt;br /&gt;
├── guifi_ipv4.inc.php : Càrrega de la informació de les adreces ip&lt;br /&gt;
├── guifi_links.inc.php : Càrrega de la informació dels enllaços&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Entitats involucrades ==&lt;br /&gt;
* Zona, la més específica de les diferents zones de la xarxa guifi.net on volem connectar, és a dir, que no tingui altres subzones&lt;br /&gt;
* Node, la ubicació concreta des d'on volem connectar. &lt;br /&gt;
** Trasto (device), l'aparell que utilitzarem per realitzar la connexió ( un node pot tenir més de un trasto i de diferents tipus) &lt;br /&gt;
** Radio , el dispositiu inalàmbric que utilitza el nostre trasto per establir una connexió física  ( per enllaçar es requereix almenys una radio) &lt;br /&gt;
** Interface , el nom mitjançant el qual interactuem amb la radio (n'hi pot haver vàries per cada radio) &lt;br /&gt;
** IPV4 , cadascuna de les adreces IP que reben les interfaces.&lt;br /&gt;
** Enllaços (links) , cadascuna de les connexions del nostre trasto amb altres trastos propers (poden ser wireless o per cable).&lt;br /&gt;
* Fabricant, la casa comercial que ven el trasto&lt;br /&gt;
* Model, la denominació pròpia del fabricant per a determinar el trasto&lt;br /&gt;
* Firmware, el programari intern que executa el trasto per realitzar totes les seves funcions (pot ser propietat del Fabricant, de tercers o de Programari Lliure) &lt;br /&gt;
&lt;br /&gt;
== Esquema de la Base de Dades ==&lt;br /&gt;
&lt;br /&gt;
En la segutn imatge es pot veure l'esquema de les taules de les entitats involucreades en la generació del fitxer UnSolClic:&lt;br /&gt;
&lt;br /&gt;
[[File:TaulesUnSolclic2.png]]&lt;br /&gt;
&lt;br /&gt;
== Families de Casos actuals ==&lt;br /&gt;
=== Kamikaze ===&lt;br /&gt;
=== AirOs ===&lt;br /&gt;
=== GuifiStation ===&lt;br /&gt;
=== Mikrotik ===&lt;br /&gt;
=== WRT-SveaSoft ===&lt;br /&gt;
&lt;br /&gt;
= Afegir suport per a nous aparells = &lt;br /&gt;
&lt;br /&gt;
== Idea general ==&lt;br /&gt;
&lt;br /&gt;
L'objectiu és millorar el procés d'incorporació de nous dispositius a l'aplicació actual. Mitjançant una nova gestió web i un sistema de plantilles estándard, els usuaris avançats podràn crear els configuradors 'UnSolClic' per als nous dispositius del mercat i mantenir els existents amb més facilitat i eficiència.&lt;br /&gt;
&lt;br /&gt;
== Diagrama de fluxe del procés ==&lt;br /&gt;
&lt;br /&gt;
En el següent diagrama, partint de la situació inicial que veiem a la part superior esquerra, es mostra el procés a seguir per poder generar l'UnSolclic per a un aparell nou &lt;br /&gt;
&lt;br /&gt;
[[File:Diagrama fluxe2.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Fabricants ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Llistat&lt;br /&gt;
[[File:Manufacturer1.png]]&lt;br /&gt;
&lt;br /&gt;
* Formulari&lt;br /&gt;
[[File:Manufacturer2.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Models  ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:models1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:models2c.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Firmwares ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:firmware1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:firmware2b.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Plantilles UnsolClic ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:unsolclic1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:unsolclic2b.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Motor de plantilles Twig ===&lt;br /&gt;
&lt;br /&gt;
En la majoria de les webs actuals trobem que, per facilitar el manteniment i l'optimització de codi, es busca la manera de separar la presentació del contingut, el patró de disseny del [http://es.wikipedia.org/wiki/ModeloVistaControlador Model-Vista-Controlador] és el més utilitzat en la majoria de frameworks actuals. Per implementar la capa de presentació és molt útil recórrer a un motor de plantilles estàndard que ens faciliti la feina. En el nostre sistema utilitzarem [http://twig.sensiolabs.org/ Twig] per la seva potència i simplicitat.Les seves característiques principals són les següents:&lt;br /&gt;
* Orígen : Symfony 2 Framework - Llicència : BSD&lt;br /&gt;
* Substitució de variables, filtres de text i crida de funcions natives.&lt;br /&gt;
* Estructures de control de flux&lt;br /&gt;
* Inclusió de fitxers i catxé per augment de rendiment&lt;br /&gt;
* Herència de plantilles&lt;br /&gt;
* Extensions, plugins i sandbox&lt;br /&gt;
&lt;br /&gt;
=== Sintaxi de Twig ===&lt;br /&gt;
&lt;br /&gt;
La sintaxi de Twig s'ha pensat per ser fàcil de fer servir i ràpida. Bàsicament, una plantilla és un fitxer de text en el que hi trobem variables o expressions i etiquetes que en controlen la lògica. &lt;br /&gt;
&lt;br /&gt;
Per mostrar el contingut d'una variable o expressió utilitzem la següent sintaxi : &lt;br /&gt;
{{ variable }} &lt;br /&gt;
&lt;br /&gt;
Per utilitzar etiquetes de control, utilitzarem &lt;br /&gt;
{% set buffer = 'un string amb quelcom' %} &lt;br /&gt;
&lt;br /&gt;
En el següent exemple de plantilla podem veure diferents exemples de la sintaxi de Twig&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{# hello comment! #}&lt;br /&gt;
{{ foo.bar }} {% set foo = 'foo' %}&lt;br /&gt;
{{ name|striptags|title }}&lt;br /&gt;
{% if users|length &amp;gt; 0 %}&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
        {% for user in users %}&lt;br /&gt;
            &amp;lt;li&amp;gt;{{ user.username|e }}&amp;lt;/li&amp;gt;&lt;br /&gt;
        {% endfor %}&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
{% endif %}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
A la documentació oficial de Twig podem veure [http://twig.sensiolabs.org/doc/templates.html més casos]&lt;br /&gt;
&lt;br /&gt;
=== Convencions de Guifi.net disponibles a les plantilles ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Edició de plantilles UnSolclic ===&lt;br /&gt;
=== Validació de plantilles UnSolclic ===&lt;/div&gt;</summary>
		<author><name>Albir</name></author>	</entry>

	<entry>
		<id>http://ca.wiki.guifi.net/wiki/Unsolclic</id>
		<title>Unsolclic</title>
		<link rel="alternate" type="text/html" href="http://ca.wiki.guifi.net/wiki/Unsolclic"/>
				<updated>2012-09-28T18:58:13Z</updated>
		
		<summary type="html">&lt;p&gt;Albir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introducció i Definició =&lt;br /&gt;
&lt;br /&gt;
El UnsolClic és una eina per configurar els aparells que formen part de la xarxa [http://guifi.net Guifi.net] i un dels factors clau per al seu creixement i expansió. Pren la forma d'un fitxer de text que correspòn a una sequència d'ordres escrita en el llenguatge acceptat per el aparell que utilitzem per connectar a la xarxa lliure guifi.net. &lt;br /&gt;
&lt;br /&gt;
Aquest document vol descriure, des de la vessant del desenvolupament del mòdul [https://gitorious.org/guifi/drupal-guifi Drupal-Guifi], tots els processos involucrats en la  confecció  del UnsolClic&lt;br /&gt;
&lt;br /&gt;
== Fortaleses i Febleses ==&lt;br /&gt;
* Fortaleses  &lt;br /&gt;
** Aïlla a l'usuari de la configuració del trasto&lt;br /&gt;
** Actua com a backup de la configuració &lt;br /&gt;
** Fa visibles les configuraciós dels trastos per a tots els usuaris&lt;br /&gt;
** Dona consistencia a la xarxa &lt;br /&gt;
* Febleses&lt;br /&gt;
** Ha de generar codi en diferents llenguatges per a diferents dispositius, per tant s'ha de conèixer mímimament aquests llenguatges&lt;br /&gt;
** La incorporació de dispositius nous requereix aquesta codificació i porta temps. &lt;br /&gt;
** És genera a l'instant i no fa cache ni manté control de versions&lt;br /&gt;
&lt;br /&gt;
== Exemples == &lt;br /&gt;
* Nodes Client &lt;br /&gt;
** Linksys WRT54GL&lt;br /&gt;
[[http://guifi.net/ca/guifi/device/315/view/unsolclic UnSolclic DD-Guifi] del node [http://guifi.net/ca/node/1589 Gurb Castell]&lt;br /&gt;
** Nanostation 2&lt;br /&gt;
    [http://guifilocal/ca/guifi/device/26702/view/unsolclic AirOS 2.0] del node [http://guifilocal/ca/guifi/device/26702 TRSANord80Rd1]&lt;br /&gt;
* Supernodes &lt;br /&gt;
** Linksys WRT54GL&lt;br /&gt;
** RouterBoard RB433 &lt;br /&gt;
    [http://guifilocal/ca/guifi/device/30084/view/unsolclic RouterOS 4.0+] del node [http://guifilocal/ca/guifi/device/30084 TRSASocietatNord]&lt;br /&gt;
&lt;br /&gt;
= Procés de Generació = &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== La recepta dels tres passos per connectar  == &lt;br /&gt;
&lt;br /&gt;
Abans de generar el UnSolClic cal que completem a la web de guifi.net la recepta dels [https://guifi.net/ca/connectar_a_guifi tres passos per connectar], que ens proporcionarà tota la informació imprescindible, bàsicament&lt;br /&gt;
* 1. Crear un node, defineix el nom del node, la zona de la que hereta configuracions, etc...&lt;br /&gt;
* 2. Crear un trasto, defineix totes les propietats del nostre aparelli el firmware que executa, així com dades identificatives del nostre trasto. &lt;br /&gt;
* 3. Crear un enllaç, defineix quines seran les connexions del nostre node, l'adreça IP assignada i quins protocols d'enrutament s'utilitzaran&lt;br /&gt;
&lt;br /&gt;
== Fitxers involucrats (per ordre d'execució) == &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
├── guifi.module : Definició de rutes&lt;br /&gt;
├── guifi_unsolclic.inc.php : Execució Ruta UnSolclic, preparació de dependencies, generació Unsolclic&lt;br /&gt;
├── guifi_includes.inc.php : Funcions diverses de guifi.&lt;br /&gt;
├── guifi_node.inc.php : Càrrega de la informació del node&lt;br /&gt;
├── guifi_devices.inc.php : Càrrega de la informació del trasto&lt;br /&gt;
├── guifi_radios.inc.php : Càrrega de la informació de la radio&lt;br /&gt;
├── guifi_interfaces.inc.php : Càrrega de la informació de les interfaces&lt;br /&gt;
├── guifi_ipv4.inc.php : Càrrega de la informació de les adreces ip&lt;br /&gt;
├── guifi_links.inc.php : Càrrega de la informació dels enllaços&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Entitats involucrades ==&lt;br /&gt;
* Zona, la més específica de les diferents zones de la xarxa guifi.net on volem connectar, és a dir, que no tingui altres subzones&lt;br /&gt;
* Node, la ubicació concreta des d'on volem connectar. &lt;br /&gt;
** Trasto (device), l'aparell que utilitzarem per realitzar la connexió ( un node pot tenir més de un trasto i de diferents tipus) &lt;br /&gt;
** Radio , el dispositiu inalàmbric que utilitza el nostre trasto per establir una connexió física  ( per enllaçar es requereix almenys una radio) &lt;br /&gt;
** Interface , el nom mitjançant el qual interactuem amb la radio (n'hi pot haver vàries per cada radio) &lt;br /&gt;
** IPV4 , cadascuna de les adreces IP que reben les interfaces.&lt;br /&gt;
** Enllaços (links) , cadascuna de les connexions del nostre trasto amb altres trastos propers (poden ser wireless o per cable).&lt;br /&gt;
* Fabricant, la casa comercial que ven el trasto&lt;br /&gt;
* Model, la denominació pròpia del fabricant per a determinar el trasto&lt;br /&gt;
* Firmware, el programari intern que executa el trasto per realitzar totes les seves funcions (pot ser propietat del Fabricant, de tercers o de Programari Lliure) &lt;br /&gt;
&lt;br /&gt;
== Esquema de la Base de Dades ==&lt;br /&gt;
&lt;br /&gt;
En la segutn imatge es pot veure l'esquema de les taules de les entitats involucreades en la generació del fitxer UnSolClic:&lt;br /&gt;
&lt;br /&gt;
[[File:TaulesUnSolclic2.png]]&lt;br /&gt;
&lt;br /&gt;
== Families de Casos actuals ==&lt;br /&gt;
=== Kamikaze ===&lt;br /&gt;
=== AirOs ===&lt;br /&gt;
=== GuifiStation ===&lt;br /&gt;
=== Mikrotik ===&lt;br /&gt;
=== WRT-SveaSoft ===&lt;br /&gt;
&lt;br /&gt;
= Afegir suport per a nous aparells = &lt;br /&gt;
&lt;br /&gt;
== Idea general ==&lt;br /&gt;
&lt;br /&gt;
L'objectiu és millorar el procés d'incorporació de nous dispositius a l'aplicació actual. Mitjançant una nova gestió web i un sistema de plantilles estándard, els usuaris avançats podràn crear els configuradors 'UnSolClic' per als nous dispositius del mercat i mantenir els existents amb més facilitat i eficiència.&lt;br /&gt;
&lt;br /&gt;
== Diagrama de fluxe del procés ==&lt;br /&gt;
&lt;br /&gt;
En el següent diagrama, partint de la situació inicial que veiem a la part superior esquerra, es mostra el procés a seguir per poder generar l'UnSolclic per a un aparell nou &lt;br /&gt;
&lt;br /&gt;
[[File:Diagrama fluxe2.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Fabricants ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Llistat&lt;br /&gt;
[[File:Manufacturer1.png]]&lt;br /&gt;
&lt;br /&gt;
* Formulari&lt;br /&gt;
[[File:Manufacturer2.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Models  ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:models1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:models2c.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Firmwares ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:firmware1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:firmware2b.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Plantilles UnsolClic ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:unsolclic1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:unsolclic2b.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Motor de plantilles Twig ===&lt;br /&gt;
&lt;br /&gt;
En la majoria de les webs actuals trobem que, per facilitar el manteniment i l'optimització de codi, es busca la manera de separar la presentació del contingut, el patró de disseny del [http://es.wikipedia.org/wiki/ModeloVistaControlador Model-Vista-Controlador] és el més utilitzat en la majoria de frameworks actuals. Per implementar la capa de presentació és molt útil recórrer a un motor de plantilles estàndard que ens faciliti la feina. En el nostre sistema utilitzarem [http://twig.sensiolabs.org/ Twig] per la seva potència i simplicitat.Les seves característiques principals són les següents:&lt;br /&gt;
* Orígen : Symfony 2 Framework - Llicència : BSD&lt;br /&gt;
* Substitució de variables, filtres de text i crida de funcions natives.&lt;br /&gt;
* Estructures de control de flux&lt;br /&gt;
* Inclusió de fitxers i catxé per augment de rendiment&lt;br /&gt;
* Herència de plantilles&lt;br /&gt;
* Extensions, plugins i sandbox&lt;br /&gt;
&lt;br /&gt;
=== Sintaxi de Twig ===&lt;br /&gt;
&lt;br /&gt;
La sintaxi de Twig s'ha pensat per ser fàcil de fer servir i ràpida. Bàsicament, una plantilla és un fitxer de text en el que hi trobem variables o expressions i etiquetes que en controlen la lògica. &lt;br /&gt;
&lt;br /&gt;
Per mostrar el contingut d'una variable o expressió utilitzem la següent sintaxi : &lt;br /&gt;
{{ variable }} &lt;br /&gt;
&lt;br /&gt;
Per utilitzar etiquetes de control, utilitzarem &lt;br /&gt;
{% set buffer = 'un string amb quelcom' %} &lt;br /&gt;
&lt;br /&gt;
En el següent exemple de plantilla podem veure diferents exemples de la sintaxi de Twig&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{# hello comment! #}&lt;br /&gt;
{{ foo.bar }} {% set foo = 'foo' %}&lt;br /&gt;
{{ name|striptags|title }}&lt;br /&gt;
{% if users|length &amp;gt; 0 %}&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
        {% for user in users %}&lt;br /&gt;
            &amp;lt;li&amp;gt;{{ user.username|e }}&amp;lt;/li&amp;gt;&lt;br /&gt;
        {% endfor %}&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
{% endif %}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
A la documentació oficial de Twig podem veure [http://twig.sensiolabs.org/doc/templates.html més casos]&lt;br /&gt;
&lt;br /&gt;
=== Convencions de Guifi.net disponibles a les plantilles ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Edició de plantilles UnSolclic ===&lt;br /&gt;
=== Validació de plantilles UnSolclic ===&lt;/div&gt;</summary>
		<author><name>Albir</name></author>	</entry>

	<entry>
		<id>http://ca.wiki.guifi.net/wiki/Unsolclic</id>
		<title>Unsolclic</title>
		<link rel="alternate" type="text/html" href="http://ca.wiki.guifi.net/wiki/Unsolclic"/>
				<updated>2012-09-28T18:36:38Z</updated>
		
		<summary type="html">&lt;p&gt;Albir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introducció i Definició =&lt;br /&gt;
&lt;br /&gt;
El UnsolClic és una eina per configurar els aparells que formen part de la xarxa [http://guifi.net Guifi.net] i un dels factors clau per al seu creixement i expansió. Pren la forma d'un fitxer de text que correspòn a una sequència d'ordres escrita en el llenguatge acceptat per el aparell que utilitzem per connectar a la xarxa lliure guifi.net. &lt;br /&gt;
&lt;br /&gt;
Aquest document vol descriure, des de la vessant del desenvolupament del mòdul [https://gitorious.org/guifi/drupal-guifi Drupal-Guifi], tots els processos involucrats en la  confecció  del UnsolClic&lt;br /&gt;
&lt;br /&gt;
== Fortaleses i Febleses ==&lt;br /&gt;
* Fortaleses  &lt;br /&gt;
** Aïlla a l'usuari de la configuració del trasto&lt;br /&gt;
** Actua com a backup de la configuració &lt;br /&gt;
** Fa visibles les configuraciós dels trastos per a tots els usuaris&lt;br /&gt;
** Dona consistencia a la xarxa &lt;br /&gt;
* Febleses&lt;br /&gt;
** Ha de generar codi en diferents llenguatges per a diferents dispositius, per tant s'ha de conèixer mímimament aquests llenguatges&lt;br /&gt;
** La incorporació de dispositius nous requereix aquesta codificació i porta temps. &lt;br /&gt;
** És genera a l'instant i no fa cache ni manté control de versions&lt;br /&gt;
&lt;br /&gt;
== Exemples == &lt;br /&gt;
* Nodes Client &lt;br /&gt;
** Linksys WRT54GL&lt;br /&gt;
[[http://guifi.net/ca/guifi/device/315/view/unsolclic UnSolclic DD-Guifi] del node [http://guifi.net/ca/node/1589 Gurb Castell]&lt;br /&gt;
** Nanostation 2&lt;br /&gt;
    [http://guifilocal/ca/guifi/device/26702/view/unsolclic AirOS 2.0] del node [http://guifilocal/ca/guifi/device/26702 TRSANord80Rd1]&lt;br /&gt;
* Supernodes &lt;br /&gt;
** Linksys WRT54GL&lt;br /&gt;
** RouterBoard RB433 &lt;br /&gt;
    [http://guifilocal/ca/guifi/device/30084/view/unsolclic RouterOS 4.0+] del node [http://guifilocal/ca/guifi/device/30084 TRSASocietatNord]&lt;br /&gt;
&lt;br /&gt;
= Procés de Generació = &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== La recepta dels tres passos per connectar  == &lt;br /&gt;
&lt;br /&gt;
Abans de generar el UnSolClic cal que completem a la web de guifi.net la recepta dels [https://guifi.net/ca/connectar_a_guifi tres passos per connectar], que ens proporcionarà tota la informació imprescindible, bàsicament&lt;br /&gt;
* 1. Crear un node, defineix el nom del node, la zona de la que hereta configuracions, etc...&lt;br /&gt;
* 2. Crear un trasto, defineix totes les propietats del nostre aparelli el firmware que executa, així com dades identificatives del nostre trasto. &lt;br /&gt;
* 3. Crear un enllaç, defineix quines seran les connexions del nostre node, l'adreça IP assignada i quins protocols d'enrutament s'utilitzaran&lt;br /&gt;
&lt;br /&gt;
== Fitxers involucrats (per ordre d'execució) == &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
├── guifi.module : Definició de rutes&lt;br /&gt;
├── guifi_unsolclic.inc.php : Execució Ruta UnSolclic, preparació de dependencies, generació Unsolclic&lt;br /&gt;
├── guifi_includes.inc.php : Funcions diverses de guifi.&lt;br /&gt;
├── guifi_node.inc.php : Càrrega de la informació del node&lt;br /&gt;
├── guifi_devices.inc.php : Càrrega de la informació del trasto&lt;br /&gt;
├── guifi_radios.inc.php : Càrrega de la informació de la radio&lt;br /&gt;
├── guifi_interfaces.inc.php : Càrrega de la informació de les interfaces&lt;br /&gt;
├── guifi_ipv4.inc.php : Càrrega de la informació de les adreces ip&lt;br /&gt;
├── guifi_links.inc.php : Càrrega de la informació dels enllaços&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Entitats involucrades ==&lt;br /&gt;
* Zona, la més específica de les diferents zones de la xarxa guifi.net on volem connectar, és a dir, que no tingui altres subzones&lt;br /&gt;
* Node, la ubicació concreta des d'on volem connectar. &lt;br /&gt;
** Trasto (device), l'aparell que utilitzarem per realitzar la connexió ( un node pot tenir més de un trasto i de diferents tipus) &lt;br /&gt;
** Radio , el dispositiu inalàmbric que utilitza el nostre trasto per establir una connexió física  ( per enllaçar es requereix almenys una radio) &lt;br /&gt;
** Interface , el nom mitjançant el qual interactuem amb la radio (n'hi pot haver vàries per cada radio) &lt;br /&gt;
** IPV4 , cadascuna de les adreces IP que reben les interfaces.&lt;br /&gt;
** Enllaços (links) , cadascuna de les connexions del nostre trasto amb altres trastos propers (poden ser wireless o per cable).&lt;br /&gt;
* Fabricant, la casa comercial que ven el trasto&lt;br /&gt;
* Model, la denominació pròpia del fabricant per a determinar el trasto&lt;br /&gt;
* Firmware, el programari intern que executa el trasto per realitzar totes les seves funcions (pot ser propietat del Fabricant, de tercers o de Programari Lliure) &lt;br /&gt;
&lt;br /&gt;
== Esquema de la Base de Dades ==&lt;br /&gt;
&lt;br /&gt;
En la segutn imatge es pot veure l'esquema de les taules de les entitats involucreades en la generació del fitxer UnSolClic:&lt;br /&gt;
&lt;br /&gt;
[[File:TaulesUnSolclic2.png]]&lt;br /&gt;
&lt;br /&gt;
== Families de Casos actuals ==&lt;br /&gt;
=== Kamikaze ===&lt;br /&gt;
=== AirOs ===&lt;br /&gt;
=== GuifiStation ===&lt;br /&gt;
=== Mikrotik ===&lt;br /&gt;
=== WRT-SveaSoft ===&lt;br /&gt;
&lt;br /&gt;
= Afegir suport per a nous aparells = &lt;br /&gt;
&lt;br /&gt;
== Idea general ==&lt;br /&gt;
&lt;br /&gt;
L'objectiu és millorar el procés d'incorporació de nous dispositius a l'aplicació actual. Mitjançant una nova gestió web i un sistema de plantilles estándard, els usuaris avançats podràn crear els configuradors 'UnSolClic' per als nous dispositius del mercat i mantenir els existents amb més facilitat i eficiència.&lt;br /&gt;
&lt;br /&gt;
== Diagrama de fluxe del procés ==&lt;br /&gt;
&lt;br /&gt;
En el següent diagrama, partint de la situació inicial que veiem a la part superior esquerra, es mostra el procés a seguir per poder generar l'UnSolclic per a un aparell nou &lt;br /&gt;
&lt;br /&gt;
[[File:Diagrama fluxe2.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Fabricants ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Llistat&lt;br /&gt;
[[File:Manufacturer1.png]]&lt;br /&gt;
&lt;br /&gt;
* Formulari&lt;br /&gt;
[[File:Manufacturer2.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Models  ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:models1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:models2c.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Firmwares ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:firmware1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:firmware2b.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Plantilles UnsolClic ==&lt;br /&gt;
&lt;br /&gt;
Llistat&lt;br /&gt;
* [[File:unsolclic1b.png]]&lt;br /&gt;
&lt;br /&gt;
Formulari&lt;br /&gt;
* [[File:unsolclic2b.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Motor de plantilles Twig ===&lt;br /&gt;
=== Orígens de dades ===&lt;br /&gt;
=== Convencions per a les plantilles ===&lt;br /&gt;
=== Edició de plantilles UnSolclic ===&lt;br /&gt;
=== Validació de plantilles UnSolclic ===&lt;/div&gt;</summary>
		<author><name>Albir</name></author>	</entry>

	<entry>
		<id>http://ca.wiki.guifi.net/wiki/Unsolclic</id>
		<title>Unsolclic</title>
		<link rel="alternate" type="text/html" href="http://ca.wiki.guifi.net/wiki/Unsolclic"/>
				<updated>2012-09-28T18:12:11Z</updated>
		
		<summary type="html">&lt;p&gt;Albir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introducció i Definició =&lt;br /&gt;
&lt;br /&gt;
El UnsolClic és una eina per configurar els aparells que formen part de la xarxa http://guifi.net i un dels factors clau per al seu creixement i expansió. Pren la forma d'un fitxer de text que correspòn a una sequència d'ordres escrita en el llenguatge acceptat per el aparell que utilitzem per connectar a la xarxa lliure guifi.net. &lt;br /&gt;
&lt;br /&gt;
Aquest document vol descriure, des de la vessant del desenvolupament del mòdul Drupal-Guifi, tots els processos involucrats en la  confecció  del UnsolClic&lt;br /&gt;
&lt;br /&gt;
== Fortaleses i Febleses ==&lt;br /&gt;
* Fortaleses&lt;br /&gt;
** Aïlla a l'usuari de la configuració del trasto&lt;br /&gt;
** Actua com a backup de la configuració &lt;br /&gt;
** Fa visibles les configuraciós dels trastos per a tots els usuaris&lt;br /&gt;
** Dona consistencia a la xarxa &lt;br /&gt;
* Febleses&lt;br /&gt;
** Ha de generar codi en diferents llenguatges per a diferents dispositius, per tant s'ha de conèixer mímimament aquests llenguatges&lt;br /&gt;
** La incorporació de dispositius nous requereix aquesta codificació i porta temps. &lt;br /&gt;
** És genera a l'instant i no fa cache ni manté control de versions&lt;br /&gt;
&lt;br /&gt;
== Exemples == &lt;br /&gt;
* Nodes Client &lt;br /&gt;
** Linksys WRT54GL&lt;br /&gt;
** Nanostation 2&lt;br /&gt;
* Supernodes &lt;br /&gt;
** Linksys WRT54GL&lt;br /&gt;
** RouterBoard RB433 &lt;br /&gt;
&lt;br /&gt;
= Procés de Generació = &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== La recepta dels tres passos per connectar  == &lt;br /&gt;
&lt;br /&gt;
Abans de generar el UnSolClic cal que completem a la web de guifi.net la recepta dels tres passos per connectar, que ens proporcionarà tota la informació imprescindible, bàsicament&lt;br /&gt;
* 1. Crear un node, defineix el nom del node, la zona de la que hereta configuracions, etc...&lt;br /&gt;
* 2. Crear un trasto, defineix totes les propietats del nostre aparelli el firmware que executa, així com dades identificatives del nostre trasto. &lt;br /&gt;
* 3. Crear un enllaç, defineix quines seran les connexions del nostre node, l'adreça IP assignada i quins protocols d'enrutament s'utilitzaran&lt;br /&gt;
&lt;br /&gt;
== Fitxers involucrats (per ordre d'execució) == &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
├── guifi.module : Definició de rutes&lt;br /&gt;
├── guifi_unsolclic.inc.php : Execució Ruta UnSolclic, preparació de dependencies, generació Unsolclic&lt;br /&gt;
├── guifi_includes.inc.php : Funcions diverses de guifi.&lt;br /&gt;
├── guifi_node.inc.php : Càrrega de la informació del node&lt;br /&gt;
├── guifi_devices.inc.php : Càrrega de la informació del trasto&lt;br /&gt;
├── guifi_radios.inc.php : Càrrega de la informació de la radio&lt;br /&gt;
├── guifi_interfaces.inc.php : Càrrega de la informació de les interfaces&lt;br /&gt;
├── guifi_ipv4.inc.php : Càrrega de la informació de les adreces ip&lt;br /&gt;
├── guifi_links.inc.php : Càrrega de la informació dels enllaços&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Entitats involucrades ==&lt;br /&gt;
* Zona, la més específica de les diferents zones de la xarxa guifi.net on volem connectar, és a dir, que no tingui altres subzones&lt;br /&gt;
* Node, la ubicació concreta des d'on volem connectar. &lt;br /&gt;
** Trasto (device), l'aparell que utilitzarem per realitzar la connexió ( un node pot tenir més de un trasto i de diferents tipus) &lt;br /&gt;
** Radio , el dispositiu inalàmbric que utilitza el nostre trasto per establir una connexió física  ( per enllaçar es requereix almenys una radio) &lt;br /&gt;
** Interface , el nom mitjançant el qual interactuem amb la radio (n'hi pot haver vàries per cada radio) &lt;br /&gt;
** IPV4 , cadascuna de les adreces IP que reben les interfaces.&lt;br /&gt;
** Enllaços (links) , cadascuna de les connexions del nostre trasto amb altres trastos propers (poden ser wireless o per cable).&lt;br /&gt;
* Fabricant, la casa comercial que ven el trasto&lt;br /&gt;
* Model, la denominació pròpia del fabricant per a determinar el trasto&lt;br /&gt;
* Firmware, el programari intern que executa el trasto per realitzar totes les seves funcions (pot ser propietat del Fabricant, de tercers o de Programari Lliure) &lt;br /&gt;
&lt;br /&gt;
== Esquema de la Base de Dades ==&lt;br /&gt;
&lt;br /&gt;
En la segutn imatge es pot veure l'esquema de les taules de les entitats involucreades en la generació del fitxer UnSolClic:&lt;br /&gt;
&lt;br /&gt;
[[File:TaulesUnSolclic2.png]]&lt;br /&gt;
&lt;br /&gt;
== Families de Casos actuals ==&lt;br /&gt;
=== Kamikaze ===&lt;br /&gt;
=== AirOs ===&lt;br /&gt;
=== GuifiStation ===&lt;br /&gt;
=== Mikrotik ===&lt;br /&gt;
=== WRT-SveaSoft ===&lt;br /&gt;
&lt;br /&gt;
= Afegir suport per a nous aparells = &lt;br /&gt;
&lt;br /&gt;
== Idea general ==&lt;br /&gt;
== Diagrama de fluxe del procés ==&lt;br /&gt;
&lt;br /&gt;
En el següent diagrama, partint de la situació inicial que veiem a la part superior esquerra, es mostra el procés a seguir per poder generar l'UnSolclic per a un aparell nou &lt;br /&gt;
&lt;br /&gt;
[[File:Diagrama fluxe2.png]]&lt;br /&gt;
&lt;br /&gt;
== Creació de Fabricants ==&lt;br /&gt;
== Creació de Models  ==&lt;br /&gt;
== Creació de Firmwares ==&lt;br /&gt;
== Creació de Plantilles UnsolClic ==&lt;br /&gt;
=== Motor de plantilles Twig ===&lt;br /&gt;
=== Orígens de dades ===&lt;br /&gt;
=== Convencions per a les plantilles ===&lt;br /&gt;
=== Edició de plantilles UnSolclic ===&lt;br /&gt;
=== Validació de plantilles UnSolclic ===&lt;/div&gt;</summary>
		<author><name>Albir</name></author>	</entry>

	<entry>
		<id>http://ca.wiki.guifi.net/wiki/Unsolclic</id>
		<title>Unsolclic</title>
		<link rel="alternate" type="text/html" href="http://ca.wiki.guifi.net/wiki/Unsolclic"/>
				<updated>2012-09-28T18:07:47Z</updated>
		
		<summary type="html">&lt;p&gt;Albir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introducció i Definició =&lt;br /&gt;
&lt;br /&gt;
El UnsolClic és una eina per configurar els aparells que formen part de la xarxa http://guifi.net i un dels factors clau per al seu creixement i expansió. Pren la forma d'un fitxer de text que correspòn a una sequència d'ordres escrita en el llenguatge acceptat per el aparell que utilitzem per connectar a la xarxa lliure guifi.net. &lt;br /&gt;
&lt;br /&gt;
Aquest document vol descriure, des de la vessant del desenvolupament del mòdul Drupal-Guifi, tots els processos involucrats en la  confecció  del UnsolClic&lt;br /&gt;
&lt;br /&gt;
== Fortaleses i Febleses ==&lt;br /&gt;
* Fortaleses&lt;br /&gt;
** Aïlla a l'usuari de la configuració del trasto&lt;br /&gt;
** Actua com a backup de la configuració &lt;br /&gt;
** Fa visibles les configuraciós dels trastos per a tots els usuaris&lt;br /&gt;
** Dona consistencia a la xarxa &lt;br /&gt;
* Febleses&lt;br /&gt;
** Ha de generar codi en diferents llenguatges per a diferents dispositius, per tant s'ha de conèixer mímimament aquests llenguatges&lt;br /&gt;
** La incorporació de dispositius nous requereix aquesta codificació i porta temps. &lt;br /&gt;
** És genera a l'instant i no fa cache ni manté control de versions&lt;br /&gt;
&lt;br /&gt;
== Exemples == &lt;br /&gt;
* Nodes Client &lt;br /&gt;
** Linksys WRT54GL&lt;br /&gt;
** Nanostation 2&lt;br /&gt;
* Supernodes &lt;br /&gt;
** Linksys WRT54GL&lt;br /&gt;
** RouterBoard RB433 &lt;br /&gt;
&lt;br /&gt;
= Procés de Generació = &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== La recepta dels tres passos per connectar  == &lt;br /&gt;
&lt;br /&gt;
Abans de generar el UnSolClic cal que completem a la web de guifi.net la recepta dels tres passos per connectar, que ens proporcionarà tota la informació imprescindible, bàsicament&lt;br /&gt;
* 1. Crear un node, defineix el nom del node, la zona de la que hereta configuracions, etc...&lt;br /&gt;
* 2. Crear un trasto, defineix totes les propietats del nostre aparelli el firmware que executa, així com dades identificatives del nostre trasto. &lt;br /&gt;
* 3. Crear un enllaç, defineix quines seran les connexions del nostre node, l'adreça IP assignada i quins protocols d'enrutament s'utilitzaran&lt;br /&gt;
&lt;br /&gt;
== Fitxers involucrats (per ordre d'execució) == &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
├── guifi.module : Definició de rutes&lt;br /&gt;
├── guifi_unsolclic.inc.php : Execució Ruta UnSolclic, preparació de dependencies, generació Unsolclic&lt;br /&gt;
├── guifi_includes.inc.php : Funcions diverses de guifi.&lt;br /&gt;
├── guifi_node.inc.php : Càrrega de la informació del node&lt;br /&gt;
├── guifi_devices.inc.php : Càrrega de la informació del trasto&lt;br /&gt;
├── guifi_radios.inc.php : Càrrega de la informació de la radio&lt;br /&gt;
├── guifi_interfaces.inc.php : Càrrega de la informació de les interfaces&lt;br /&gt;
├── guifi_ipv4.inc.php : Càrrega de la informació de les adreces ip&lt;br /&gt;
├── guifi_links.inc.php : Càrrega de la informació dels enllaços&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Entitats involucrades ==&lt;br /&gt;
* Zona, la més específica de les diferents zones de la xarxa guifi.net on volem connectar, és a dir, que no tingui altres subzones&lt;br /&gt;
* Node, la ubicació concreta des d'on volem connectar. &lt;br /&gt;
** Trasto (device), l'aparell que utilitzarem per realitzar la connexió ( un node pot tenir més de un trasto i de diferents tipus) &lt;br /&gt;
** Radio , el dispositiu inalàmbric que utilitza el nostre trasto per establir una connexió física  ( per enllaçar es requereix almenys una radio) &lt;br /&gt;
** Interface , el nom mitjançant el qual interactuem amb la radio (n'hi pot haver vàries per cada radio) &lt;br /&gt;
** IPV4 , cadascuna de les adreces IP que reben les interfaces.&lt;br /&gt;
** Enllaços (links) , cadascuna de les connexions del nostre trasto amb altres trastos propers (poden ser wireless o per cable).&lt;br /&gt;
* Fabricant, la casa comercial que ven el trasto&lt;br /&gt;
* Model, la denominació pròpia del fabricant per a determinar el trasto&lt;br /&gt;
* Firmware, el programari intern que executa el trasto per realitzar totes les seves funcions (pot ser propietat del Fabricant, de tercers o de Programari Lliure) &lt;br /&gt;
&lt;br /&gt;
== Esquema de la Base de Dades ==&lt;br /&gt;
&lt;br /&gt;
En la segutn imatge es pot veure l'esquema de les taules de les entitats involucreades en la generació del fitxer UnSolClic:&lt;br /&gt;
&lt;br /&gt;
[[File:TaulesUnSolclic2.png]]&lt;br /&gt;
&lt;br /&gt;
== Families de Casos actuals ==&lt;br /&gt;
=== Kamikaze ===&lt;br /&gt;
=== AirOs ===&lt;br /&gt;
=== GuifiStation ===&lt;br /&gt;
=== Mikrotik ===&lt;br /&gt;
=== WRT-SveaSoft ===&lt;br /&gt;
&lt;br /&gt;
= Afegir suport per a nous aparells = &lt;br /&gt;
&lt;br /&gt;
== Idea general ==&lt;br /&gt;
== Diagrama de fluxe del procés ==&lt;br /&gt;
== Creació de Fabricants ==&lt;br /&gt;
== Creació de Models  ==&lt;br /&gt;
== Creació de Firmwares ==&lt;br /&gt;
== Creació de Plantilles UnsolClic ==&lt;br /&gt;
=== Motor de plantilles Twig ===&lt;br /&gt;
=== Orígens de dades ===&lt;br /&gt;
=== Convencions per a les plantilles ===&lt;br /&gt;
=== Edició de plantilles UnSolclic ===&lt;br /&gt;
=== Validació de plantilles UnSolclic ===&lt;/div&gt;</summary>
		<author><name>Albir</name></author>	</entry>

	<entry>
		<id>http://ca.wiki.guifi.net/wiki/Mapa_del_codi</id>
		<title>Mapa del codi</title>
		<link rel="alternate" type="text/html" href="http://ca.wiki.guifi.net/wiki/Mapa_del_codi"/>
				<updated>2012-09-28T18:01:22Z</updated>
		
		<summary type="html">&lt;p&gt;Albir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introducció =&lt;br /&gt;
&lt;br /&gt;
Aquest document pretén documentar la estructura del codi PHP del mòdul Drupal-guifi que aporta gran part de la funcionalitat qeu trobem a la web http://guifi.net&lt;br /&gt;
&lt;br /&gt;
= Dependències =&lt;br /&gt;
Les dependencies son les següents:&lt;br /&gt;
PHP 4.4.0 o superior (5.2 recomanat)&lt;br /&gt;
MySQL 4.1&lt;br /&gt;
Drupal 6.x&lt;br /&gt;
&lt;br /&gt;
= Instal·lació =&lt;br /&gt;
Per instalar el mòdul primer ens cal tenir un Drupal on instalar-hi el mòdul. Aquí hi ha una recepta per aconseguir un entorn de desenvolupament complet &lt;br /&gt;
&lt;br /&gt;
[http://es.wiki.guifi.net/wiki/Preparando_el_entorno_de_desarrollo Preparando el Entorno de Desarrollo]&lt;br /&gt;
  &lt;br /&gt;
= Estructura de carpetes = &lt;br /&gt;
Després de la instal·lació hem de tenir el codi del mòdul a la carpeta següent de la nostra &lt;br /&gt;
 /sites/all/modules/guifi&lt;br /&gt;
&lt;br /&gt;
A dins d'aquesta hi trobarem els següents directoris&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
├── contrib&lt;br /&gt;
│   ├── api_client&lt;br /&gt;
│   ├── api_doc&lt;br /&gt;
│   ├── drupal-patches&lt;br /&gt;
│   ├── fonts&lt;br /&gt;
│   ├── lang&lt;br /&gt;
│   ├── phplot&lt;br /&gt;
│   ├── Template&lt;br /&gt;
│   └── Twig&lt;br /&gt;
├── firmware&lt;br /&gt;
├── icons&lt;br /&gt;
├── js&lt;br /&gt;
├── libs&lt;br /&gt;
└── translations&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Llistat de fitxers = &lt;br /&gt;
&lt;br /&gt;
A l'arrel del mòdul hi trobem els següents fitxers : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
├── GeoCalc.class.php&lt;br /&gt;
├── guifi_ahah.inc.php&lt;br /&gt;
├── guifi_api.inc.php&lt;br /&gt;
├── guifi_cnml.inc.php&lt;br /&gt;
├── guifi_cron.inc.php&lt;br /&gt;
├── guifi.css&lt;br /&gt;
├── guifi_csvproxy.inc.php&lt;br /&gt;
├── guifi_devel.inc.php&lt;br /&gt;
├── guifi_devices.inc.php&lt;br /&gt;
├── guifi_domains.inc.php&lt;br /&gt;
├── guifi_gml.inc.php&lt;br /&gt;
├── guifi_graphs.inc.php&lt;br /&gt;
├── guifi_heights.php&lt;br /&gt;
├── guifi_hosts.inc.php&lt;br /&gt;
├── guifi_includes.inc.php&lt;br /&gt;
├── guifi.info&lt;br /&gt;
├── guifi.install&lt;br /&gt;
├── guifi_interfaces.inc.php&lt;br /&gt;
├── guifi_ipv4.inc.php&lt;br /&gt;
├── guifi_links.inc.php&lt;br /&gt;
├── guifi_maps.inc.php&lt;br /&gt;
├── guifi.module&lt;br /&gt;
├── guifi_networkutils.inc.php&lt;br /&gt;
├── guifi_node.inc.php&lt;br /&gt;
├── guifi_nodexchange.inc.php&lt;br /&gt;
├── guifi-proxy.spec&lt;br /&gt;
├── guifi_radios.inc.php&lt;br /&gt;
├── guifi_routingmap.inc.php&lt;br /&gt;
├── guifi_service.inc.php&lt;br /&gt;
├── guifi_spatial.inc.php&lt;br /&gt;
├── guifi_sql.inc.php&lt;br /&gt;
├── guifi_stats.inc.php&lt;br /&gt;
├── guifi_tools.inc.php&lt;br /&gt;
├── guifi_traceroute.inc.php&lt;br /&gt;
├── guifi_unsolclic.inc.php&lt;br /&gt;
├── guifi_users.inc.php&lt;br /&gt;
├── guifi_zone.inc.php&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Llibreries =&lt;br /&gt;
&lt;br /&gt;
El mòdul de Drupal-Guifi utilitza les següents llibreries: &lt;br /&gt;
# [http://www.phplot.com/ Phplot] &lt;br /&gt;
# [http://twig.sensiolabs.org/ Twig]  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Mapa de URLs definides =&lt;br /&gt;
&lt;br /&gt;
= Entitats =&lt;/div&gt;</summary>
		<author><name>Albir</name></author>	</entry>

	<entry>
		<id>http://ca.wiki.guifi.net/wiki/Mapa_del_codi</id>
		<title>Mapa del codi</title>
		<link rel="alternate" type="text/html" href="http://ca.wiki.guifi.net/wiki/Mapa_del_codi"/>
				<updated>2012-09-28T17:59:20Z</updated>
		
		<summary type="html">&lt;p&gt;Albir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introducció =&lt;br /&gt;
&lt;br /&gt;
Aquest document pretén documentar la estructura del codi PHP del mòdul Drupal-guifi que aporta gran part de la funcionalitat qeu trobem a la web http://guifi.net&lt;br /&gt;
&lt;br /&gt;
= Dependències =&lt;br /&gt;
Les dependencies son les següents:&lt;br /&gt;
PHP 4.4.0 o superior (5.2 recomanat)&lt;br /&gt;
MySQL 4.1&lt;br /&gt;
Drupal 6.x&lt;br /&gt;
&lt;br /&gt;
= Instal·lació =&lt;br /&gt;
Per instalar el mòdul primer ens cal tenir un Drupal on instalar-hi el mòdul. Aquí hi ha una recepta per aconseguir un entorn de desenvolupament complet &lt;br /&gt;
&lt;br /&gt;
[http://es.wiki.guifi.net/wiki/Preparando_el_entorno_de_desarrollo Preparando el Entorno de Desarrollo]&lt;br /&gt;
  &lt;br /&gt;
= Estructura de carpetes = &lt;br /&gt;
Després de la instal·lació hem de tenir el codi del mòdul a la carpeta següent de la nostra &lt;br /&gt;
 /sites/all/modules/guifi&lt;br /&gt;
&lt;br /&gt;
A dins d'aquesta hi trobarem els següents directoris&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
├── contrib&lt;br /&gt;
│   ├── api_client&lt;br /&gt;
│   ├── api_doc&lt;br /&gt;
│   ├── drupal-patches&lt;br /&gt;
│   ├── fonts&lt;br /&gt;
│   ├── lang&lt;br /&gt;
│   ├── phplot&lt;br /&gt;
│   ├── Template&lt;br /&gt;
│   └── Twig&lt;br /&gt;
├── firmware&lt;br /&gt;
├── icons&lt;br /&gt;
├── js&lt;br /&gt;
├── libs&lt;br /&gt;
└── translations&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Llistat de fitxers = &lt;br /&gt;
&lt;br /&gt;
A l'arrel del mòdul hi trobem els següents fitxers : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
├── GeoCalc.class.php&lt;br /&gt;
├── guifi_ahah.inc.php&lt;br /&gt;
├── guifi_api.inc.php&lt;br /&gt;
├── guifi_cnml.inc.php&lt;br /&gt;
├── guifi_cron.inc.php&lt;br /&gt;
├── guifi.css&lt;br /&gt;
├── guifi_csvproxy.inc.php&lt;br /&gt;
├── guifi_devel.inc.php&lt;br /&gt;
├── guifi_devices.inc.php&lt;br /&gt;
├── guifi_domains.inc.php&lt;br /&gt;
├── guifi_gml.inc.php&lt;br /&gt;
├── guifi_graphs.inc.php&lt;br /&gt;
├── guifi_heights.php&lt;br /&gt;
├── guifi_hosts.inc.php&lt;br /&gt;
├── guifi_includes.inc.php&lt;br /&gt;
├── guifi.info&lt;br /&gt;
├── guifi.install&lt;br /&gt;
├── guifi_interfaces.inc.php&lt;br /&gt;
├── guifi_ipv4.inc.php&lt;br /&gt;
├── guifi_links.inc.php&lt;br /&gt;
├── guifi_maps.inc.php&lt;br /&gt;
├── guifi.module&lt;br /&gt;
├── guifi_networkutils.inc.php&lt;br /&gt;
├── guifi_node.inc.php&lt;br /&gt;
├── guifi_nodexchange.inc.php&lt;br /&gt;
├── guifi-proxy.spec&lt;br /&gt;
├── guifi_radios.inc.php&lt;br /&gt;
├── guifi_routingmap.inc.php&lt;br /&gt;
├── guifi_service.inc.php&lt;br /&gt;
├── guifi_spatial.inc.php&lt;br /&gt;
├── guifi_sql.inc.php&lt;br /&gt;
├── guifi_stats.inc.php&lt;br /&gt;
├── guifi_tools.inc.php&lt;br /&gt;
├── guifi_traceroute.inc.php&lt;br /&gt;
├── guifi_unsolclic.inc.php&lt;br /&gt;
├── guifi_users.inc.php&lt;br /&gt;
├── guifi_zone.inc.php&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Llibreries =&lt;br /&gt;
&lt;br /&gt;
El mòdul de Drupal-Guifi utilitza les següents llibreries: &lt;br /&gt;
&lt;br /&gt;
# Phplot&lt;br /&gt;
# Twig &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Mapa de URLs definides =&lt;br /&gt;
&lt;br /&gt;
totes? algo més gràfic? &lt;br /&gt;
&lt;br /&gt;
= Entitats =&lt;/div&gt;</summary>
		<author><name>Albir</name></author>	</entry>

	<entry>
		<id>http://ca.wiki.guifi.net/wiki/Mapa_del_codi</id>
		<title>Mapa del codi</title>
		<link rel="alternate" type="text/html" href="http://ca.wiki.guifi.net/wiki/Mapa_del_codi"/>
				<updated>2012-09-28T17:58:31Z</updated>
		
		<summary type="html">&lt;p&gt;Albir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introducció =&lt;br /&gt;
&lt;br /&gt;
Aquest document pretén documentar la estructura del codi PHP del mòdul Drupal-guifi que aporta gran part de la funcionalitat qeu trobem a la web http://guifi.net&lt;br /&gt;
&lt;br /&gt;
= Dependències =&lt;br /&gt;
Les dependencies son les següents:&lt;br /&gt;
PHP 4.4.0 o superior (5.2 recomanat)&lt;br /&gt;
MySQL 4.1&lt;br /&gt;
Drupal 6.x&lt;br /&gt;
&lt;br /&gt;
= Instal·lació =&lt;br /&gt;
Per instalar el mòdul primer ens cal tenir un Drupal on instalar-hi el mòdul. Aquí hi ha una recepta per aconseguir un entorn de desenvolupament complet &lt;br /&gt;
&lt;br /&gt;
[http://es.wiki.guifi.net/wiki/Preparando_el_entorno_de_desarrollo Pepa]&lt;br /&gt;
  &lt;br /&gt;
= Estructura de carpetes = &lt;br /&gt;
Després de la instal·lació hem de tenir el codi del mòdul a la carpeta següent de la nostra &lt;br /&gt;
 /sites/all/modules/guifi&lt;br /&gt;
&lt;br /&gt;
A dins d'aquesta hi trobarem els següents directoris&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
├── contrib&lt;br /&gt;
│   ├── api_client&lt;br /&gt;
│   ├── api_doc&lt;br /&gt;
│   ├── drupal-patches&lt;br /&gt;
│   ├── fonts&lt;br /&gt;
│   ├── lang&lt;br /&gt;
│   ├── phplot&lt;br /&gt;
│   ├── Template&lt;br /&gt;
│   └── Twig&lt;br /&gt;
├── firmware&lt;br /&gt;
├── icons&lt;br /&gt;
├── js&lt;br /&gt;
├── libs&lt;br /&gt;
└── translations&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Llistat de fitxers = &lt;br /&gt;
&lt;br /&gt;
A l'arrel del mòdul hi trobem els següents fitxers : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
├── GeoCalc.class.php&lt;br /&gt;
├── guifi_ahah.inc.php&lt;br /&gt;
├── guifi_api.inc.php&lt;br /&gt;
├── guifi_cnml.inc.php&lt;br /&gt;
├── guifi_cron.inc.php&lt;br /&gt;
├── guifi.css&lt;br /&gt;
├── guifi_csvproxy.inc.php&lt;br /&gt;
├── guifi_devel.inc.php&lt;br /&gt;
├── guifi_devices.inc.php&lt;br /&gt;
├── guifi_domains.inc.php&lt;br /&gt;
├── guifi_gml.inc.php&lt;br /&gt;
├── guifi_graphs.inc.php&lt;br /&gt;
├── guifi_heights.php&lt;br /&gt;
├── guifi_hosts.inc.php&lt;br /&gt;
├── guifi_includes.inc.php&lt;br /&gt;
├── guifi.info&lt;br /&gt;
├── guifi.install&lt;br /&gt;
├── guifi_interfaces.inc.php&lt;br /&gt;
├── guifi_ipv4.inc.php&lt;br /&gt;
├── guifi_links.inc.php&lt;br /&gt;
├── guifi_maps.inc.php&lt;br /&gt;
├── guifi.module&lt;br /&gt;
├── guifi_networkutils.inc.php&lt;br /&gt;
├── guifi_node.inc.php&lt;br /&gt;
├── guifi_nodexchange.inc.php&lt;br /&gt;
├── guifi-proxy.spec&lt;br /&gt;
├── guifi_radios.inc.php&lt;br /&gt;
├── guifi_routingmap.inc.php&lt;br /&gt;
├── guifi_service.inc.php&lt;br /&gt;
├── guifi_spatial.inc.php&lt;br /&gt;
├── guifi_sql.inc.php&lt;br /&gt;
├── guifi_stats.inc.php&lt;br /&gt;
├── guifi_tools.inc.php&lt;br /&gt;
├── guifi_traceroute.inc.php&lt;br /&gt;
├── guifi_unsolclic.inc.php&lt;br /&gt;
├── guifi_users.inc.php&lt;br /&gt;
├── guifi_zone.inc.php&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Llibreries =&lt;br /&gt;
&lt;br /&gt;
El mòdul de Drupal-Guifi utilitza les següents llibreries: &lt;br /&gt;
&lt;br /&gt;
# Phplot&lt;br /&gt;
# Twig &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Mapa de URLs definides =&lt;br /&gt;
&lt;br /&gt;
totes? algo més gràfic? &lt;br /&gt;
&lt;br /&gt;
= Entitats =&lt;/div&gt;</summary>
		<author><name>Albir</name></author>	</entry>

	<entry>
		<id>http://ca.wiki.guifi.net/wiki/Unsolclic</id>
		<title>Unsolclic</title>
		<link rel="alternate" type="text/html" href="http://ca.wiki.guifi.net/wiki/Unsolclic"/>
				<updated>2012-09-28T17:57:46Z</updated>
		
		<summary type="html">&lt;p&gt;Albir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introducció i Definició =&lt;br /&gt;
&lt;br /&gt;
El UnsolClic és una eina per configurar els aparells que formen part de la xarxa http://guifi.net i un dels factors clau per al seu creixement i expansió. Pren la forma d'un fitxer de text que correspòn a una sequència d'ordres escrita en el llenguatge acceptat per el aparell que utilitzem per connectar a la xarxa lliure guifi.net. &lt;br /&gt;
&lt;br /&gt;
Aquest document vol descriure, des de la vessant del desenvolupament del mòdul Drupal-Guifi, tots els processos involucrats en la  confecció  del UnsolClic&lt;br /&gt;
&lt;br /&gt;
== Fortaleses i Febleses ==&lt;br /&gt;
* Fortaleses&lt;br /&gt;
** Aïlla a l'usuari de la configuració del trasto&lt;br /&gt;
** Actua com a backup de la configuració &lt;br /&gt;
** Fa visibles les configuraciós dels trastos per a tots els usuaris&lt;br /&gt;
** Dona consistencia a la xarxa &lt;br /&gt;
* Febleses&lt;br /&gt;
** Ha de generar codi en diferents llenguatges per a diferents dispositius, per tant s'ha de conèixer mímimament aquests llenguatges&lt;br /&gt;
** La incorporació de dispositius nous requereix aquesta codificació i porta temps. &lt;br /&gt;
** És genera a l'instant i no fa cache ni manté control de versions&lt;br /&gt;
&lt;br /&gt;
== Exemples == &lt;br /&gt;
* Nodes Client &lt;br /&gt;
** Linksys WRT54GL&lt;br /&gt;
** Nanostation 2&lt;br /&gt;
* Supernodes &lt;br /&gt;
** Linksys WRT54GL&lt;br /&gt;
** RouterBoard RB433 &lt;br /&gt;
&lt;br /&gt;
= Procés de Generació = &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== La recepta dels tres passos per connectar  == &lt;br /&gt;
&lt;br /&gt;
Abans de generar el UnSolClic cal que completem a la web de guifi.net la recepta dels tres passos per connectar, que ens proporcionarà tota la informació imprescindible, bàsicament&lt;br /&gt;
* 1. Crear un node, defineix el nom del node, la zona de la que hereta configuracions, etc...&lt;br /&gt;
* 2. Crear un trasto, defineix totes les propietats del nostre aparelli el firmware que executa, així com dades identificatives del nostre trasto. &lt;br /&gt;
* 3. Crear un enllaç, defineix quines seran les connexions del nostre node, l'adreça IP assignada i quins protocols d'enrutament s'utilitzaran&lt;br /&gt;
&lt;br /&gt;
== Fitxers involucrats (per ordre d'execució) == &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
├── guifi.module : Definició de rutes&lt;br /&gt;
├── guifi_unsolclic.inc.php : Execució Ruta UnSolclic, preparació de dependencies, generació Unsolclic&lt;br /&gt;
├── guifi_includes.inc.php : Funcions diverses de guifi.&lt;br /&gt;
├── guifi_node.inc.php : Càrrega de la informació del node&lt;br /&gt;
├── guifi_devices.inc.php : Càrrega de la informació del trasto&lt;br /&gt;
├── guifi_radios.inc.php : Càrrega de la informació de la radio&lt;br /&gt;
├── guifi_interfaces.inc.php : Càrrega de la informació de les interfaces&lt;br /&gt;
├── guifi_ipv4.inc.php : Càrrega de la informació de les adreces ip&lt;br /&gt;
├── guifi_links.inc.php : Càrrega de la informació dels enllaços&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Entitats involucrades ==&lt;br /&gt;
* Zona, la més específica de les diferents zones de la xarxa guifi.net on volem connectar, és a dir, que no tingui altres subzones&lt;br /&gt;
* Node, la ubicació concreta des d'on volem connectar. &lt;br /&gt;
** Trasto (device), l'aparell que utilitzarem per realitzar la connexió ( un node pot tenir més de un trasto i de diferents tipus) &lt;br /&gt;
** Radio , el dispositiu inalàmbric que utilitza el nostre trasto per establir una connexió física  ( per enllaçar es requereix almenys una radio) &lt;br /&gt;
** Interface , el nom mitjançant el qual interactuem amb la radio (n'hi pot haver vàries per cada radio) &lt;br /&gt;
** IPV4 , cadascuna de les adreces IP que reben les interfaces.&lt;br /&gt;
** Enllaços (links) , cadascuna de les connexions del nostre trasto amb altres trastos propers (poden ser wireless o per cable).&lt;br /&gt;
* Fabricant, la casa comercial que ven el trasto&lt;br /&gt;
* Model, la denominació pròpia del fabricant per a determinar el trasto&lt;br /&gt;
* Firmware, el programari intern que executa el trasto per realitzar totes les seves funcions (pot ser propietat del Fabricant, de tercers o de Programari Lliure) &lt;br /&gt;
&lt;br /&gt;
== Esquema de la Base de Dades ==&lt;br /&gt;
== Families de Casos actuals ==&lt;br /&gt;
=== Kamikaze ===&lt;br /&gt;
=== AirOs ===&lt;br /&gt;
=== GuifiStation ===&lt;br /&gt;
=== Mikrotik ===&lt;br /&gt;
=== WRT-SveaSoft ===&lt;br /&gt;
&lt;br /&gt;
= Afegir suport per a nous aparells = &lt;br /&gt;
&lt;br /&gt;
== Idea general ==&lt;br /&gt;
== Diagrama de fluxe del procés ==&lt;br /&gt;
== Creació de Fabricants ==&lt;br /&gt;
== Creació de Models  ==&lt;br /&gt;
== Creació de Firmwares ==&lt;br /&gt;
== Creació de Plantilles UnsolClic ==&lt;br /&gt;
=== Motor de plantilles Twig ===&lt;br /&gt;
=== Orígens de dades ===&lt;br /&gt;
=== Convencions per a les plantilles ===&lt;br /&gt;
=== Edició de plantilles UnSolclic ===&lt;br /&gt;
=== Validació de plantilles UnSolclic ===&lt;/div&gt;</summary>
		<author><name>Albir</name></author>	</entry>

	<entry>
		<id>http://ca.wiki.guifi.net/wiki/Unsolclic</id>
		<title>Unsolclic</title>
		<link rel="alternate" type="text/html" href="http://ca.wiki.guifi.net/wiki/Unsolclic"/>
				<updated>2012-09-12T21:38:02Z</updated>
		
		<summary type="html">&lt;p&gt;Albir: Es crea la pàgina amb «= Introducció i Definició =  El UnsolClic és una eina per configurar els aparells que formen part de la xarxa http://guifi.net i un dels factors clau per al seu cre...».&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introducció i Definició =&lt;br /&gt;
&lt;br /&gt;
El UnsolClic és una eina per configurar els aparells que formen part de la xarxa http://guifi.net i un dels factors clau per al seu creixement i expansió. Pren la forma d'un fitxer de text que correspòn a una sequència d'ordres escrita en el llenguatge acceptat per el aparell que utilitzem per connectar a la xarxa lliure guifi.net&lt;br /&gt;
&lt;br /&gt;
Aquest document vol descriure, des de la vessant del desenvolupament del mòdul Drupal-Guifi, tots els processos involucrats en la  confecció  del UnsolClic&lt;br /&gt;
&lt;br /&gt;
== Fortaleses i Febleses ==&lt;br /&gt;
* Fortaleses&lt;br /&gt;
** Aïlla a l'usuari de la configuració del trasto&lt;br /&gt;
** Actua com a backup de la configuració &lt;br /&gt;
** Fa visibles les configuraciós dels trastos per a tots els usuaris&lt;br /&gt;
** Dona consistencia a la xarxa &lt;br /&gt;
* Febleses&lt;br /&gt;
** Ha de generar codi en diferents llenguatges per a diferents dispositius, per tant s'ha de conèixer mímimament aquests llenguatges&lt;br /&gt;
** La incorporació de dispositius nous requereix aquesta codificació i porta temps. &lt;br /&gt;
** És genera a l'instant i no fa cache ni manté control de versions&lt;br /&gt;
&lt;br /&gt;
== Exemples == &lt;br /&gt;
* Nodes Client &lt;br /&gt;
** Linksys WRT54GL&lt;br /&gt;
** Nanostation 2&lt;br /&gt;
* Supernodes &lt;br /&gt;
** Linksys WRT54GL&lt;br /&gt;
** RouterBoard RB433 &lt;br /&gt;
&lt;br /&gt;
= Procés de Generació = &lt;br /&gt;
== Fitxers involucrats  == &lt;br /&gt;
== Entitats involucrades ==&lt;br /&gt;
== Esquema de la Base de Dades ==&lt;br /&gt;
== Families de Casos actuals ==&lt;br /&gt;
=== Kamikaze ===&lt;br /&gt;
=== AirOs ===&lt;br /&gt;
=== GuifiStation ===&lt;br /&gt;
=== Mikrotik ===&lt;br /&gt;
=== WRT-SveaSoft ===&lt;br /&gt;
&lt;br /&gt;
= Afegir suport per a nous aparells = &lt;br /&gt;
&lt;br /&gt;
== Idea general ==&lt;br /&gt;
== Diagrama de fluxe del procés ==&lt;br /&gt;
== Creació de Fabricants ==&lt;br /&gt;
== Creació de Models  ==&lt;br /&gt;
== Creació de Firmwares ==&lt;br /&gt;
== Creació de Plantilles UnsolClic ==&lt;br /&gt;
=== Motor de plantilles Twig ===&lt;br /&gt;
=== Orígens de dades ===&lt;br /&gt;
=== Convencions per a les plantilles ===&lt;br /&gt;
=== Edició de plantilles UnSolclic ===&lt;br /&gt;
=== Validació de plantilles UnSolclic ===&lt;/div&gt;</summary>
		<author><name>Albir</name></author>	</entry>

	<entry>
		<id>http://ca.wiki.guifi.net/wiki/Mapa_del_codi</id>
		<title>Mapa del codi</title>
		<link rel="alternate" type="text/html" href="http://ca.wiki.guifi.net/wiki/Mapa_del_codi"/>
				<updated>2012-09-12T21:09:11Z</updated>
		
		<summary type="html">&lt;p&gt;Albir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introducció =&lt;br /&gt;
&lt;br /&gt;
Aquest document pretén documentar la estructura del codi PHP del mòdul Drupal-guifi que aporta gran part de la funcionalitat qeu trobem a la web http://guifi.net&lt;br /&gt;
&lt;br /&gt;
= Dependències =&lt;br /&gt;
Les dependencies son les següents:&lt;br /&gt;
PHP 4.4.0 o superior (5.2 recomanat)&lt;br /&gt;
MySQL 4.1&lt;br /&gt;
Drupal 6.x&lt;br /&gt;
&lt;br /&gt;
= Instal·lació =&lt;br /&gt;
Per instalar el mòdul primer ens cal tenir un Drupal on instalar-hi el mòdul. Aquí hi ha una recepta per aconseguir un entorn de desenvolupament complet &lt;br /&gt;
&lt;br /&gt;
[http://es.wiki.guifi.net/wiki/Preparando_el_entorno_de_desarrollo Pepa]&lt;br /&gt;
  &lt;br /&gt;
= Estructura de carpetes = &lt;br /&gt;
Després de la instal·lació hem de tenir el codi del mòdul a la carpeta següent de la nostra &lt;br /&gt;
 /sites/all/modules/guifi&lt;br /&gt;
&lt;br /&gt;
A dins d'aquesta hi trobarem els següents directoris&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
├── contrib&lt;br /&gt;
│   ├── api_client&lt;br /&gt;
│   ├── api_doc&lt;br /&gt;
│   ├── drupal-patches&lt;br /&gt;
│   ├── fonts&lt;br /&gt;
│   ├── lang&lt;br /&gt;
│   ├── phplot&lt;br /&gt;
│   ├── Template&lt;br /&gt;
│   └── Twig&lt;br /&gt;
├── firmware&lt;br /&gt;
├── icons&lt;br /&gt;
├── js&lt;br /&gt;
├── libs&lt;br /&gt;
└── translations&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Llistat de fitxers &lt;br /&gt;
&lt;br /&gt;
A l'arrel del mòdul hi trobem els següents fitxers : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
├── GeoCalc.class.php&lt;br /&gt;
├── guifi_ahah.inc.php&lt;br /&gt;
├── guifi_api.inc.php&lt;br /&gt;
├── guifi_cnml.inc.php&lt;br /&gt;
├── guifi_cron.inc.php&lt;br /&gt;
├── guifi.css&lt;br /&gt;
├── guifi_csvproxy.inc.php&lt;br /&gt;
├── guifi_devel.inc.php&lt;br /&gt;
├── guifi_devices.inc.php&lt;br /&gt;
├── guifi_domains.inc.php&lt;br /&gt;
├── guifi_gml.inc.php&lt;br /&gt;
├── guifi_graphs.inc.php&lt;br /&gt;
├── guifi_heights.php&lt;br /&gt;
├── guifi_hosts.inc.php&lt;br /&gt;
├── guifi_includes.inc.php&lt;br /&gt;
├── guifi.info&lt;br /&gt;
├── guifi.install&lt;br /&gt;
├── guifi_interfaces.inc.php&lt;br /&gt;
├── guifi_ipv4.inc.php&lt;br /&gt;
├── guifi_links.inc.php&lt;br /&gt;
├── guifi_maps.inc.php&lt;br /&gt;
├── guifi.module&lt;br /&gt;
├── guifi_networkutils.inc.php&lt;br /&gt;
├── guifi_node.inc.php&lt;br /&gt;
├── guifi_nodexchange.inc.php&lt;br /&gt;
├── guifi-proxy.spec&lt;br /&gt;
├── guifi_radios.inc.php&lt;br /&gt;
├── guifi_routingmap.inc.php&lt;br /&gt;
├── guifi_service.inc.php&lt;br /&gt;
├── guifi_spatial.inc.php&lt;br /&gt;
├── guifi_sql.inc.php&lt;br /&gt;
├── guifi_stats.inc.php&lt;br /&gt;
├── guifi_tools.inc.php&lt;br /&gt;
├── guifi_traceroute.inc.php&lt;br /&gt;
├── guifi_unsolclic.inc.php&lt;br /&gt;
├── guifi_users.inc.php&lt;br /&gt;
├── guifi_zone.inc.php&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Llibreries =&lt;br /&gt;
&lt;br /&gt;
El mòdul de Drupal-Guifi utilitza les següents llibreries: &lt;br /&gt;
&lt;br /&gt;
# Phplot&lt;br /&gt;
# Twig &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Mapa de URLs definides =&lt;br /&gt;
&lt;br /&gt;
totes? algo més gràfic? &lt;br /&gt;
&lt;br /&gt;
= Entitats =&lt;/div&gt;</summary>
		<author><name>Albir</name></author>	</entry>

	<entry>
		<id>http://ca.wiki.guifi.net/wiki/Mapa_del_codi</id>
		<title>Mapa del codi</title>
		<link rel="alternate" type="text/html" href="http://ca.wiki.guifi.net/wiki/Mapa_del_codi"/>
				<updated>2012-09-12T21:08:40Z</updated>
		
		<summary type="html">&lt;p&gt;Albir: Es crea la pàgina amb «= Introducció =  Aquest document pretén documentar la estructura del codi PHP del mòdul Drupal-guifi que aporta gran part de la funcionalitat qeu trobem a la web ht...».&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introducció =&lt;br /&gt;
&lt;br /&gt;
Aquest document pretén documentar la estructura del codi PHP del mòdul Drupal-guifi que aporta gran part de la funcionalitat qeu trobem a la web http://guifi.net&lt;br /&gt;
&lt;br /&gt;
= Dependències =&lt;br /&gt;
Les dependencies son les següents:&lt;br /&gt;
PHP 4.4.0 o superior (5.2 recomanat)&lt;br /&gt;
MySQL 4.1&lt;br /&gt;
Drupal 6.x&lt;br /&gt;
&lt;br /&gt;
= Instal·lació =&lt;br /&gt;
Per instalar el mòdul primer ens cal tenir un Drupal on instalar-hi el mòdul. Aquí hi ha una recepta per aconseguir un entorn de desenvolupament complet &lt;br /&gt;
&lt;br /&gt;
[http://es.wiki.guifi.net/wiki/Preparando_el_entorno_de_desarrollo Pepa]&lt;br /&gt;
  &lt;br /&gt;
= Estructura de carpetes = &lt;br /&gt;
Després de la instal·lació hem de tenir el codi del mòdul a la carpeta següent de la nostra &lt;br /&gt;
 /sites/all/modules/guifi&lt;br /&gt;
&lt;br /&gt;
A dins d'aquesta hi trobarem els següents directoris&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
├── contrib&lt;br /&gt;
│   ├── api_client&lt;br /&gt;
│   ├── api_doc&lt;br /&gt;
│   ├── drupal-patches&lt;br /&gt;
│   ├── fonts&lt;br /&gt;
│   ├── lang&lt;br /&gt;
│   ├── phplot&lt;br /&gt;
│   ├── Template&lt;br /&gt;
│   └── Twig&lt;br /&gt;
├── firmware&lt;br /&gt;
├── icons&lt;br /&gt;
├── js&lt;br /&gt;
├── libs&lt;br /&gt;
└── translations&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Llistat de fitxers &lt;br /&gt;
&lt;br /&gt;
A l'arrel del mòdul hi trobem els següents fitxers : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
├── GeoCalc.class.php&lt;br /&gt;
├── guifi_ahah.inc.php&lt;br /&gt;
├── guifi_api.inc.php&lt;br /&gt;
├── guifi_cnml.inc.php&lt;br /&gt;
├── guifi_cron.inc.php&lt;br /&gt;
├── guifi.css&lt;br /&gt;
├── guifi_csvproxy.inc.php&lt;br /&gt;
├── guifi_devel.inc.php&lt;br /&gt;
├── guifi_devices.inc.php&lt;br /&gt;
├── guifi_domains.inc.php&lt;br /&gt;
├── guifi_gml.inc.php&lt;br /&gt;
├── guifi_graphs.inc.php&lt;br /&gt;
├── guifi_heights.php&lt;br /&gt;
├── guifi_hosts.inc.php&lt;br /&gt;
├── guifi_includes.inc.php&lt;br /&gt;
├── guifi.info&lt;br /&gt;
├── guifi.install&lt;br /&gt;
├── guifi_interfaces.inc.php&lt;br /&gt;
├── guifi_ipv4.inc.php&lt;br /&gt;
├── guifi_links.inc.php&lt;br /&gt;
├── guifi_maps.inc.php&lt;br /&gt;
├── guifi.module&lt;br /&gt;
├── guifi_networkutils.inc.php&lt;br /&gt;
├── guifi_node.inc.php&lt;br /&gt;
├── guifi_nodexchange.inc.php&lt;br /&gt;
├── guifi-proxy.spec&lt;br /&gt;
├── guifi_radios.inc.php&lt;br /&gt;
├── guifi_routingmap.inc.php&lt;br /&gt;
├── guifi_service.inc.php&lt;br /&gt;
├── guifi_spatial.inc.php&lt;br /&gt;
├── guifi_sql.inc.php&lt;br /&gt;
├── guifi_stats.inc.php&lt;br /&gt;
├── guifi_tools.inc.php&lt;br /&gt;
├── guifi_traceroute.inc.php&lt;br /&gt;
├── guifi_unsolclic.inc.php&lt;br /&gt;
├── guifi_users.inc.php&lt;br /&gt;
├── guifi_zone.inc.php&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Llibreries =&lt;br /&gt;
&lt;br /&gt;
El mòdul de Drupal-Guifi utilitza les següents llibreries: &lt;br /&gt;
&lt;br /&gt;
# Phplot&lt;br /&gt;
# Twig &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Mapa de URLs definides =&lt;br /&gt;
&lt;br /&gt;
totes? algo més gràfic? &lt;br /&gt;
&lt;br /&gt;
= Entitats&lt;/div&gt;</summary>
		<author><name>Albir</name></author>	</entry>

	</feed>