1
00:00:01,660 --> 00:00:11,150
Bueno en la clase pasada desde el ZetaP llamábamos a la función que terminamos de crear se UEFI y se

2
00:00:11,150 --> 00:00:14,110
completaba el proceso de conexión a nuestra red WiFi.

3
00:00:14,150 --> 00:00:19,950
Pero lejos estamos todavía de conectarnos a nuestro servidor DM QTTF.

4
00:00:21,110 --> 00:00:27,490
Entonces tendremos que empezar a hacer eso debajo de esta línea.

5
00:00:27,500 --> 00:00:32,680
Si el código se sigue ejecutando es porque se conectó de manera exitosa a wifi.

6
00:00:33,470 --> 00:00:46,550
Entonces con esta línea que es Klint punto z Server vamos a pasarle el servidor la dirección donde teníamos

7
00:00:46,550 --> 00:00:56,270
guardado esto no voy a subir acá ahí está estamos pasando ese Extrem y le estamos pasando el puerto

8
00:00:56,360 --> 00:00:57,980
al que se tiene que conectar.

9
00:00:57,980 --> 00:01:00,140
Era el 12 4 80

10
00:01:04,170 --> 00:01:04,510
ojo.

11
00:01:04,510 --> 00:01:08,090
Todavía no nos estamos conectando con esta línea.

12
00:01:08,170 --> 00:01:15,370
Con esta línea lo que hacemos es sestear en el servidor de nuestro cliente mejor dicho perdón las variables

13
00:01:15,940 --> 00:01:19,250
a las que se va a tener que conectar las credenciales.

14
00:01:19,600 --> 00:01:27,970
Vamos a aceptar algo muy importante también que es la función callback la función callback es una función

15
00:01:28,060 --> 00:01:34,670
a la que vamos a llamar cada vez que el servidor llame a nuestra puerta.

16
00:01:34,690 --> 00:01:40,300
Esto es algo que nos puede sonar raro pero se acuerdan de un detalle muy importante de los servidores

17
00:01:40,300 --> 00:01:46,150
M QTTF los servidores M QTTF pueden ellos iniciar la conversación conmigo.

18
00:01:46,450 --> 00:01:57,760
Entonces necesito dejar algún servicio o algo atento 24 7 esperando a que si en algún momento llega

19
00:01:58,240 --> 00:02:06,460
una conexión a nuestro dispositivo tengamos preparado alguna herramienta para ver qué hacemos con esto

20
00:02:06,460 --> 00:02:15,070
que llegó sin previo aviso en cualquier momento puede llegarnos un mensaje bajo un tópico como vimos

21
00:02:15,430 --> 00:02:17,990
en una de las primeras clases de QTTF.

22
00:02:18,120 --> 00:02:22,060
Bueno necesitamos saber qué vamos a hacer cuando eso suceda.

23
00:02:22,060 --> 00:02:31,240
Entonces lo que hacemos aquí es decirle al servidor perdón al cliente que cuando el servidor llame a

24
00:02:31,240 --> 00:02:37,690
nuestra puerta cuando el servidor nos manda alguna información la que fuere queremos que se ejecute

25
00:02:37,690 --> 00:02:41,180
de inmediato la función callback.

26
00:02:41,220 --> 00:02:46,290
Bueno acá yo les llamé así le podría poner otro nombre.

27
00:02:46,680 --> 00:02:48,960
Esta función aclaró Todavía no existe.

28
00:02:48,960 --> 00:02:51,040
Yo voy a tener que crearla.

29
00:02:51,420 --> 00:02:58,830
Tiene algunas particularidades así que vamos a hacer eso ahora vamos a crear la función callback la

30
00:02:58,830 --> 00:03:06,390
vamos a poner a ver lo vamos a poner arriba de Zetapé UEFI por aquí esta función que insisto se llama

31
00:03:06,420 --> 00:03:11,360
Callback ahora por una cuestión de convención podría tener cualquier nombre.

32
00:03:11,460 --> 00:03:15,030
Tiene algunas particularidades no puede ser como a mí me plazca.

33
00:03:15,690 --> 00:03:23,400
Cuáles son estas particularidades y son que la función va a recibir tres parámetros y me vas a decir

34
00:03:23,570 --> 00:03:29,790
cómo pero si acá llamamos a la función y no le pasabamos nada no momento acá no lo estábamos llamando

35
00:03:30,060 --> 00:03:36,420
le estamos diciendo el cliente de que cuando llega información hay que ejecutar o llamar a esta función

36
00:03:36,720 --> 00:03:43,620
pero no es esta línea la que le va a llamar la librería por detrás la va a llamar y le va a pasar estos

37
00:03:43,620 --> 00:03:44,580
parámetros.

38
00:03:44,580 --> 00:03:51,720
Por ende yo tengo que recibirlos aquí por eso dentro de los paréntesis estoy declarando estas tres variables

39
00:03:51,870 --> 00:03:54,130
que no pueden faltar.

40
00:03:54,270 --> 00:04:01,140
Bueno esta función cuando sea llamada en cualquier momento de imprevisto sabemos que siempre va a recibir

41
00:04:01,890 --> 00:04:11,360
en primer lugar un tópico bajo qué tema viene lo que me están mandando porque yo me puedo suscribir

42
00:04:11,720 --> 00:04:16,450
a múltiples tópicos a múltiples temas no necesariamente a uno.

43
00:04:16,520 --> 00:04:25,010
Entonces voy a necesitar saber esta información que viene quién me la manda o bajo qué tópico está llegando.

44
00:04:25,160 --> 00:04:32,960
También tenemos el payload o la carga útil la información en sí el valor bajo el tópico temperatura

45
00:04:33,100 --> 00:04:41,500
tiene un valor que son 37 obviamente serán grados supongo después muy importante para poder recuperar

46
00:04:41,740 --> 00:04:44,870
ese valor es el tamaño del dato.

47
00:04:45,280 --> 00:04:51,580
Entonces sabiendo esto aquí la función que se abre está vacía todavía vamos a empezar a escribir el

48
00:04:51,580 --> 00:04:53,690
contenido de esta función.

49
00:04:53,830 --> 00:05:00,230
Mira tenemos tres líneas nuevas aquí voy a imprimir por consola.

50
00:05:00,230 --> 00:05:12,290
Mensaje recibido desde o podría poner bajo el tópico mejor va a tener más sentido y voy a imprimir el

51
00:05:12,290 --> 00:05:13,780
tópico.

52
00:05:14,090 --> 00:05:18,560
No tengo que convertir lo estrechen no me preocupa demasiado porque es una cadena de caracteres así

53
00:05:18,560 --> 00:05:28,710
que ningún problema veamos luego imprimo esto sería lo mismo que poner seria el punto LN estoy dejando

54
00:05:28,800 --> 00:05:36,240
un espacio o un renglón en blanco listo ya tenemos el tópico y lo hemos sacado por pantalla.

55
00:05:36,420 --> 00:05:42,960
Obviamente yo acá adentro podría tener una serie y seguramente más adelante lo vamos a tener de IFS

56
00:05:43,380 --> 00:05:50,930
y puedo decir dependiendo si el tópico es una cosa hago esto y si el tópico es otra cosa hago otra cosa.

57
00:05:51,240 --> 00:05:56,040
Por ahora no nos interesa simplemente vamos a recibir el tópico lo mostramos en pantalla pero ahora

58
00:05:56,040 --> 00:06:05,810
viene la parte interesante tengo que recibir la carga útil entonces Bono cómo vamos a hacer para poderla

59
00:06:05,870 --> 00:06:17,450
extraer de la siguiente manera como la carga útil viene en un array de bits no va a ser algo que lo

60
00:06:17,460 --> 00:06:21,940
podamos hacer de una sola línea no es algo que se venga medio cocinado en una string.

61
00:06:22,080 --> 00:06:26,950
Nos encantaría que así fuera pero tampoco es para que nos asustemos.

62
00:06:27,390 --> 00:06:33,790
Vamos a hacer lo siguiente Vamos a crear un foro con la magia de Atom.

63
00:06:33,820 --> 00:06:42,160
Vamos a tratar de recuperar esta estructura que ya nos propone a Tom Ford o poner Hint corregimos ese

64
00:06:42,160 --> 00:06:51,250
poquito y vamos a crear un fork que arranque en cero se va a ejecutar mientras la cuenta sea menor a

65
00:06:51,250 --> 00:06:51,990
qué.

66
00:06:52,000 --> 00:06:57,140
Y acá viene la necesidad o para qué me pasan el tamaño de la información.

67
00:06:57,220 --> 00:07:03,980
Vamos a hacer un fork que recorra bit por bit el tamaño total del payload.

68
00:07:04,600 --> 00:07:15,100
Entonces acá vamos a poner que el foro va a funcionar o va a iterar siempre y cuando sea menor que el

69
00:07:15,100 --> 00:07:20,370
tamaño de la información que vamos a rescatar bit por bit.

70
00:07:20,410 --> 00:07:29,050
Vamos a ir recuperando entonces vamos a usar para imprimirlo en pantalla pero lo podremos guardar ya

71
00:07:29,050 --> 00:07:34,540
vamos a ver cómo hacemos eso más adelante en una variable entonces acá bit por bit.

72
00:07:34,540 --> 00:07:37,080
Yo creo que seria el punto print.

73
00:07:37,180 --> 00:07:43,200
No voy a ser LN porque quiero que cada letra de lo que nos esté llegando salga una al lado de la otra.

74
00:07:43,200 --> 00:07:46,690
No quiero que salga vertical una letra abajo de la otra.

75
00:07:46,990 --> 00:07:50,000
Entonces simplemente pongo print.

76
00:07:50,570 --> 00:07:53,230
Como es un bait lo que me llega es un número.

77
00:07:53,230 --> 00:07:57,640
Ese número representa una letra tengo que transformar el bit en una letra.

78
00:07:57,640 --> 00:08:09,070
Entonces lo vamos a castigar digamos con Char bailout y le pasamos la posición que estamos leyendo del

79
00:08:09,070 --> 00:08:17,350
payload en este momento en qué posición estamos ahora en la posición y por qué.

80
00:08:17,410 --> 00:08:19,150
Y va a ir incrementándose.

81
00:08:19,170 --> 00:08:26,330
Vuelta por vuelta y vamos a ir recuperando letra por letra del mensaje.

82
00:08:26,610 --> 00:08:35,490
Cuando termine este foro es porque el mensaje ya ha sido leído en su totalidad así que muy tranquilamente

83
00:08:35,520 --> 00:08:38,230
podemos ahora nosotros hacer seria el punto print.

84
00:08:39,990 --> 00:08:49,740
LN dejó esto en blanco para generar un renglón sin nada y de anotarme que ya se recibió la totalidad

85
00:08:50,520 --> 00:08:53,380
de nuestro mensaje.

86
00:08:53,440 --> 00:08:56,580
Bueno ya he escrito mucho código sin revisar si está todo bien.

87
00:08:56,580 --> 00:09:02,050
Así que veamos en la línea 25.

88
00:09:02,070 --> 00:09:08,420
Bueno desconozco en qué momento se me transformó este INT en print así que esto me soluciona este error

89
00:09:08,550 --> 00:09:14,470
y seguramente este que acá grabo y probemos de nuevo

90
00:09:18,050 --> 00:09:19,190
en la 27.

91
00:09:21,220 --> 00:09:29,470
Bueno se ve que he estado trabajando mucho en Python y arrastro el problema de los punto y coma ahora

92
00:09:29,590 --> 00:09:32,870
veamos bien.

93
00:09:33,090 --> 00:09:36,840
Ahora ya va a compilar así que tenemos esto listo.

94
00:09:36,840 --> 00:09:43,290
Lamentablemente todavía no lo podemos probar por lo menos sabemos que no nos da error.

95
00:09:43,290 --> 00:09:49,190
No es un detalle menor así que vamos a seguir avanzando en la próxima clase.
