Skip to content

Commit b0ca9f5

Browse files
author
AlvarTapia
committed
Codigo que no supera las 70 columnas
1 parent c068817 commit b0ca9f5

9 files changed

Lines changed: 228 additions & 108 deletions

File tree

Codigo/RobotAlgoritmica/Cnosos.cpp

Lines changed: 54 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,8 @@ byte Cnosos::siguiente(){
4545
sigo = false;
4646
while (SENSOR_IZDA && SENSOR_CENTRO && SENSOR_DCHA);
4747
}else if (!(izda || centro || dcha)) {
48-
while(!(SENSOR_IZDA || SENSOR_CENTRO || SENSOR_DCHA)) {}; //Salta el hueco
48+
//Salta el hueco
49+
while(!(SENSOR_IZDA || SENSOR_CENTRO || SENSOR_DCHA)) {};
4950
if (!SENSOR_IZDA && SENSOR_CENTRO && !SENSOR_DCHA){
5051
// hueco
5152
bit = false;
@@ -102,13 +103,15 @@ byte Cnosos::siguiente() {
102103
while(SENSOR_IZDA && SENSOR_CENTRO && SENSOR_DCHA) {
103104
robot.alante();
104105
}
105-
//Si al final del cruce se encuentra con un hueco, rota a la dcha para evitarlo
106+
//Si al final del cruce se encuentra con un hueco,
107+
//rota a la dcha para evitarlo
106108
while(!SENSOR_IZDA && !SENSOR_CENTRO && !SENSOR_DCHA) {
107109
robot.rotaDcha();
108110
}
109111
//Una vez el robot centrado, se continua normalmente
110112
} else if (!izda && !centro && !dcha) {
111-
//TODO funciona raro, huecos entre sensores entran en esta categoria
113+
//TODO funciona raro,
114+
//huecos entre sensores entran en esta categoria
112115
Serial.println("Ninguno activado");
113116
while(!SENSOR_IZDA && !SENSOR_CENTRO && !SENSOR_DCHA) {
114117
//Mientras haya hueco, sigue alante
@@ -120,7 +123,8 @@ byte Cnosos::siguiente() {
120123
bit = 0;
121124
sigo = false;
122125
}
123-
//Si se activa otra combinacion de sensores, descartalo; ha sido un error
126+
//Si se activa otra combinacion de sensores, descartalo;
127+
//ha sido un error
124128
}
125129
//Avanza normalmente a partir de ahora.
126130
if (izda) {
@@ -170,7 +174,8 @@ byte Cnosos::siguiente() {
170174
while(SENSOR_IZDA && SENSOR_CENTRO && SENSOR_DCHA){
171175
i++;
172176
}
173-
//Si se ha pasado el limite, entonces esta cinta atravesada vale 0
177+
//Si se ha pasado el limite,
178+
//entonces esta cinta atravesada vale 0
174179
if(i>TIEMPO_PARA_LEER_0){
175180
bit = 0;
176181
}
@@ -200,14 +205,17 @@ byte Cnosos::lee_numero() {
200205
if(siguiente() == 1){
201206
x++;
202207
}
203-
//Si no encuentra un cruce, como ya se introduce un 0 al desplazar el numero, dejalo como esta
208+
//Si no encuentra un cruce, como ya se introduce un 0
209+
//al desplazar el numero, dejalo como esta
204210
}
205211
return x;
206212
}
207213

208214
/*
209-
* Recorre el perimetro del nodo, y devuelve el numero de cruces que se encuentre
210-
* (tambien reconoce y devuelve por referencia el identificador del nodo actual).
215+
* Recorre el perimetro del nodo,
216+
* y devuelve el numero de cruces que se encuentre
217+
* (tambien reconoce y devuelve por referencia
218+
* el identificador del nodo actual).
211219
* Este metodo no sabe desde que parte del nodo empieza, por lo que
212220
* crucesEncontrados es menor o igual que el grado.
213221
*/
@@ -227,12 +235,17 @@ byte lee_nodo_A(Cnosos* cn, byte &id) {
227235
}
228236

229237
/*
230-
* Despues de lee_nodo_A sabemos que el robot esta detras del identificador de nodo.
238+
* Despues de lee_nodo_A sabemos que el robot
239+
* esta detras del identificador de nodo.
231240
*
232-
* Calcula el grado del nodo (numero aristas), y lo devuelve por referencia.
233-
* El identificador leido en lee_nodo_A debe ser el mismo que el leido en lee_nodo_B.
234-
* Calcula la arista desde la que ha empezado contando desde despues de la etiqueta, con la ayuda de crucesEncontrados.
235-
* (Si ha empezado lee_nodo() 2 aristas despues del identificador, entrada = 2).
241+
* Calcula el grado del nodo (numero aristas),
242+
* y lo devuelve por referencia.
243+
* El identificador leido en lee_nodo_A debe ser el mismo
244+
* que el leido en lee_nodo_B.
245+
* Calcula la arista desde la que ha empezado contando
246+
* desde despues de la etiqueta, con la ayuda de crucesEncontrados.
247+
* (Si ha empezado lee_nodo() 2 aristas despues del identificador,
248+
* entrada = 2).
236249
*/
237250
void lee_nodo_B(Cnosos* cn, byte crucesEncontrados, byte id,
238251
byte &grado, byte &entrada) {
@@ -255,8 +268,9 @@ void lee_nodo_B(Cnosos* cn, byte crucesEncontrados, byte id,
255268
/*
256269
* Despues de dos vueltas al nodo, devuelve por referencia
257270
* el identificador del nodo, el grado del nodo,
258-
* y cuantos cruces debe saltarse el robot para llegar desde el final del identificador
259-
* al cruce por el que el robot ha empezado a investigar el nodo.
271+
* y cuantos cruces debe saltarse el robot
272+
* para llegar desde el final del identificador al cruce
273+
* por el que el robot ha empezado a investigar el nodo.
260274
*/
261275
void Cnosos::lee_nodo(byte &etiq, byte &grado, byte &entrada) {
262276
byte crucesEncontrados = lee_nodo_A(this, etiq);
@@ -275,18 +289,29 @@ void Cnosos::sal_aqui() {
275289
}
276290
}
277291

278-
void Cnosos::sal(byte aristaATomar, byte grado, byte posicionInicial) {
279-
//Arista saltado representa los cruces que el robot se ha saltado hasta el momento.
280-
//Si las aristas estan identificadas en el intervalo {1..n},
281-
//el robot puede haberse saltado {0..n} aristas al recorrer el perimetro del nodo,
282-
//siendo "0" el tramo entre el identificador y la primera arista,
283-
//y "n" el tramo entre la ultima arista y el identificador.
292+
void Cnosos::sal( byte aristaATomar,
293+
byte grado,
294+
byte posicionInicial) {
295+
/*
296+
* Arista saltado representa los cruces que el robot
297+
* se ha saltado hasta el momento.
298+
* Si las aristas estan identificadas en el intervalo {1..n},
299+
* el robot puede haberse saltado {0..n} aristas
300+
* al recorrer el perimetro del nodo,
301+
* siendo "0" el tramo entre el identificador y la primera arista,
302+
* y "n" el tramo entre la ultima arista y el identificador.
303+
*/
284304
byte aristaSaltada = posicionInicial;
285305

286-
//Mientras la arista que el robot se ha saltado no sea la arista anterior a la que se quiere tomar:
306+
/*
307+
* Mientras la arista que el robot se ha saltado
308+
* no sea la arista anterior a la que se quiere tomar:
309+
*/
287310
while (aristaSaltada != aristaATomar - 1) {
288-
//Si la arista actual supera o iguala el grado:
289-
//Esta en la zona de identificadores
311+
/*
312+
* Si la arista actual supera o iguala el grado:
313+
* Esta en la zona de identificadores
314+
*/
290315
if (aristaSaltada >= grado) {
291316
//Si no encuentra el identificador, error
292317
if (this->siguiente() == 1) {
@@ -308,8 +333,11 @@ void Cnosos::sal(byte aristaATomar, byte grado, byte posicionInicial) {
308333
}
309334
}
310335

311-
//Si se ha salido del bucle, es que se quiere tomar el siguiente cruce.
312-
//El robot toma el siguiente cruce.
336+
/*
337+
* Si se ha salido del bucle,
338+
* es que se quiere tomar el siguiente cruce.
339+
* El robot toma el siguiente cruce.
340+
*/
313341
if (this->siguiente() == 1){
314342
this->sal_aqui();
315343
}else{

Codigo/RobotAlgoritmica/Cnosos.h

Lines changed: 60 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,15 @@ class Cnosos {
2020
#define SENSOR_CENTRO robot.SIGUELINEAS.readCentro()
2121
#define SENSOR_DCHA robot.SIGUELINEAS.readDcha()
2222

23-
/// Se espera este tiempo en milisegundos para confirmar que se ha leido una marca.
23+
/**
24+
* Se espera este tiempo en milisegundos
25+
* para confirmar que se ha leido una marca.
26+
*/
2427
#define TIEMPO_CONFIRMACION 0
2528

26-
/// Cada vez que tiene que procesar una entrada, el robot "pensara" (se quedara quieto) este numero de milisegundos.
29+
/** Cada vez que tiene que procesar una entrada, el robot "pensara"
30+
* (se quedara quieto) este numero de milisegundos.
31+
*/
2732
#define TIEMPO_PENSAR 300
2833
private:
2934
/// Guarda la configuracion del robot que se va a usar en este objeto.
@@ -34,76 +39,97 @@ class Cnosos {
3439
//Constructores
3540
/**
3641
* Constructor de la libreria Cnosos.
37-
* No necesita un metodo inicializar, dado que se supone que los parametros ya estan inicializados.
42+
* No necesita un metodo inicializar,
43+
* dado que se supone que los parametros ya estan inicializados.
3844
* @param Robot a controlar
3945
* Objeto Robot con el que se va a trabajar.
40-
* Se espera que el Robot este inicializado, asi como su Siguelineas.
41-
* Si se necesita debuggear o que el robot se comunique con el usuario,
42-
* es necesario inicializar el modulo Morse o el modulo Bluetooth, o ambos.
46+
* Se espera que el Robot este inicializado,
47+
* asi como su Siguelineas.
48+
* Si se necesita debuggear o que el robot
49+
* se comunique con el usuario, es necesario inicializar
50+
* el modulo Morse o el modulo Bluetooth, o ambos.
4351
* @param Numero bits en las etiquetas
44-
* Numero de bits que se usaran para identificar cada nodo del mapa.
45-
* Se espera que el tamaño del parametro sea adecuado, dado que si se utiliza el valor maximo (255),
52+
* Numero de bits que se usaran para identificar
53+
* cada nodo del mapa.
54+
* Se espera que el tamaño del parametro sea adecuado,
55+
* dado que si se utiliza el valor maximo (255),
4656
* se podrian identificar 2^255 nodos, que son mas de 10^76 nodos.
47-
* Por defecto, se utilizaran 3 marcas para el identificador de cada nodo.
57+
* Por defecto, se utilizaran 3 marcas
58+
* para el identificador de cada nodo.
4859
*/
4960
Cnosos(Robot, byte = 3);
5061
//Constructor por defecto
5162
/**
52-
* Constructor que no necesita argumentos, y que permite inicializar un objeto Cnosos.
53-
* Las variables se inicializan a valores no recomendables como pines inaccesibles.
54-
* IMPORTANTE: Sustituir todas las instancias no inicializadas o inicializadas de esta manera
55-
* para que el objeto funcione correctamente.
63+
* Constructor que no necesita argumentos,
64+
* y que permite inicializar un objeto Cnosos.
65+
* Las variables se inicializan a valores no recomendables
66+
* como pines inaccesibles.
67+
* IMPORTANTE: Sustituir todas las instancias no inicializadas o
68+
* inicializadas de esta manera para que el objeto
69+
* funcione correctamente.
5670
*/
5771
Cnosos();
5872
//Destructor
5973

6074

6175
//Funciones
6276
/**
63-
* Avanza por la linea hasta encontrar un hueco en la cinta o una cinta atravesada. Sobrepasa el indicador.
64-
* @return 0 si ha encontrado un hueco en la cinta, 1 si ha encontrado una cinta atravesada.
77+
* Avanza por la linea hasta encontrar un hueco en la cinta
78+
* o una cinta atravesada. Sobrepasa el indicador.
79+
* @return 0 si ha encontrado un hueco en la cinta,
80+
* 1 si ha encontrado una cinta atravesada.
6581
*/
6682
byte siguiente();
6783

6884
/**
6985
* Lee un identificador de nodo.
70-
* Este metodo supone que se acaba de cruzar el marcador de comienzo del identificador.
86+
* Este metodo supone que se acaba de cruzar
87+
* el marcador de comienzo del identificador.
7188
* Por defecto, ese marcador es un hueco en la cinta.
7289
*/
7390
byte lee_numero();
7491

7592
/**
76-
* Recorre dos veces el perimetro del nodo para obtener gran cantidad de datos.
77-
* Al terminar el metodo, el robot estara situado despues del identificador del nodo.
93+
* Recorre dos veces el perimetro del nodo
94+
* para obtener gran cantidad de datos.
95+
* Al terminar el metodo, el robot estara situado
96+
* despues del identificador del nodo.
7897
* @param[out] Identificador del nodo
7998
* Devuelve el numero que identifica a este nodo.
8099
* @param[out] Grado del nodo
81-
* Devuelve el grado (o el numero de cruces) que tiene este nodo.
100+
* Devuelve el grado (o el numero de cruces)
101+
* que tiene este nodo.
82102
* @param[out] Cruce por el que ha entrado el robot al nodo
83103
* Devuelve el numero del cruce por el que ha entrado el nodo.
84-
* Si el robot empezo a recorrer el nodo justo detras del identificador, este numero sera 0,
85-
* si se empezo detras del primer cruce sera 1...
86-
* asi hasta 'grado', que significaria que el robot
104+
* Si el robot empezo a recorrer el nodo justo detras
105+
* del identificador, este numero sera 0,
106+
* si se empezo detras del primer cruce sera 1...
107+
* asi hasta 'grado', que significaria que el robot
87108
* ha empezado a recorrer el nodo antes del identificador.
88109
*/
89110
void lee_nodo(byte&, byte&, byte&);
90111

91112
/**
92-
* En cuanto se encuentre un cruce, toma ese cruce y el robot pasa al siguiente nodo.
113+
* En cuanto se encuentre un cruce,
114+
* toma ese cruce y el robot pasa al siguiente nodo.
93115
*/
94116
void sal_aqui();
95117

96118
/**
97-
* Toma un cruce en concreto desde la posicion en la que este el robot.
119+
* Toma un cruce en concreto desde la posicion
120+
* en la que este el robot.
98121
* @param Cruce a tomar
99-
* Numero del cruce que se quiere tomar, siendo 1 el primer cruce de la etiqueta.
122+
* Numero del cruce que se quiere tomar,
123+
* siendo 1 el primer cruce de la etiqueta.
100124
* @param Grado del nodo
101125
* Ultimo cruce que puede tomar el robot.
102-
* Tambien representa el grado (o el numero de cruces) que hay en el nodo.
126+
* Tambien representa el grado (o el numero de cruces)
127+
* que hay en el nodo.
103128
* @param Cruce actual
104129
* Indica cual es el ultimo cruce que el robot se ha saltado.
105-
* Por defecto, se considera que el robot esta justo detras de la etiqueta,
106-
* por lo que no se ha saltado ningun cruce (este valor es 0).
130+
* Por defecto, se considera que el robot esta
131+
* justo detras de la etiqueta, por lo que
132+
* no se ha saltado ningun cruce (este valor es 0).
107133
*/
108134
void sal(byte, byte, byte = 0);
109135

@@ -114,15 +140,18 @@ class Cnosos {
114140

115141
/**
116142
* Comunica un numero al usuario por medio de modulos.
117-
* Necesita tener inicializado el modulo Morse o el modulo Bluetooth para comunicarse con el usuario.
143+
* Necesita tener inicializado el modulo Morse
144+
* o el modulo Bluetooth para comunicarse con el usuario.
118145
* @param Numero a comunicar
119-
* Envia este numero, ya sea con el mismo numero de pitidos, o con un mensaje Bluetooth.
146+
* Envia este numero, ya sea con el mismo numero de pitidos,
147+
* o con un mensaje Bluetooth.
120148
*/
121149
void luce_numero(byte);
122150

123151
/**
124152
* Se ha encontrado un suceso inesperado. Se para y grita SOS.
125-
* Necesita tener inicializado el modulo Morse o el modulo Bluetooth para comunicarse con el usuario.
153+
* Necesita tener inicializado el modulo Morse
154+
* o el modulo Bluetooth para comunicarse con el usuario.
126155
*/
127156
void error();
128157
};

Codigo/RobotAlgoritmica/bluetooth.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,16 @@ Bluetooth::Bluetooth(int baudios, char startChar) {
2121
}
2222
//Destructor
2323
Bluetooth::~Bluetooth() {
24-
//No funciona como se espera, a Abril 2019 se deja sin implementar
24+
//No funciona como se espera.
25+
//A Abril 2019 se deja sin implementar.
2526
//if (Serial) Serial.end();
2627
}
2728

2829
//Inicializador
2930
void Bluetooth::inicializa() {
3031
Serial.begin(BAUDIOS);
31-
while(!Serial){}; //Espera mientras no se puedan mandar/recibir mensajes
32+
//Espera mientras no se puedan mandar/recibir mensajes
33+
while(!Serial){};
3234
}
3335

3436
//Funciones

0 commit comments

Comments
 (0)