Jacobo-Miguel / Trabajo-Practico-Maquina-de-estados--Alarma-Despertdor

0 stars 0 forks source link

Segunda Entrega #1

Open DamRCorba opened 4 years ago

DamRCorba commented 4 years ago

Ya soy colaborador espero a que subas la memoria decriptiva y el diagrama.

DamRCorba commented 4 years ago

El estado desactivar no es un estado sino una accion. De alarma deberia volver a silencio, como lo habiamos hablamo via mail.

Jacobo-Miguel commented 4 years ago

Sisi es una acción para pasar al estado de silencio por eso lo puse diferenciado de los tres estados El usuario elije la opción desactivar y pasa al silencio Sino como lo debería poner?

El lun., 24 ago. 2020 8:40 a. m., DamRCorba notifications@github.com escribió:

El estado desactivar no es un estado sino una accion. De alarma deberia volver a silencio, como lo habiamos hablamo via mail.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/Jacobo-Miguel/Trabajo-Practico-Maquina-de-estados--Alarma-Despertdor/issues/1#issuecomment-679075936, or unsubscribe https://github.com/notifications/unsubscribe-auth/APWZ762VRQO23VFEKFHF2PLSCJGS5ANCNFSM4QIKYQRQ .

DamRCorba commented 4 years ago

La opcion desactivar va a silencia, pero no necesitas un estado. porque en si el estado desactivado es el de silencio. O te sobra el estado desactivar o te falta el estado activar.

Jacobo-Miguel commented 4 years ago

Haa ok ahí lo voy a modificar, yo me base masomenos en el del celular, en el momento que se ingresan los datos y los guardo en el archivo de configuración la alarma se activa, pero si por ejemplo el usuario que pone los datos elije repetir por más de un día debería seguir "desactivada" Hasta que llegue el otro día la misma hora?

El lun., 24 ago. 2020 9:09 a. m., DamRCorba notifications@github.com escribió:

La opcion desactivar va a silencia, pero no necesitas un estado. porque en si el estado desactivado es el de silencio. O te sobra el estado desactivar o te falta el estado activar.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/Jacobo-Miguel/Trabajo-Practico-Maquina-de-estados--Alarma-Despertdor/issues/1#issuecomment-679087954, or unsubscribe https://github.com/notifications/unsubscribe-auth/APWZ764XRYB6HGUHIHRMH5DSCJJ7NANCNFSM4QIKYQRQ .

DamRCorba commented 4 years ago

Claro, el tema es que la maquina de estados representa estados y transiciones siendo las transiciones las acciones. Por lo que en el caso de la opción de desactivar deberías ir a un estado que represente al sistema. En tu caso seria quedarse en silencio hasta la próxima activación. Si lo que queres represtar es el estado en que no hay alarmas seteadas, deberias tener dos estados globales, el de activada y desactivada, cada uno de ellos dejan al sistema en silencio. Uno solo muetra la hora y el otro ademas espera a que llegue la hora para lanzar la alarma.

Para concluir, tendrias a toda tu maquina actual, aunque tu memoria descriptiva deberia acomodarse y deberias renombar el estado de silencio por activada.

Te dejo las opciones a tu gusto.

Jacobo-Miguel commented 4 years ago

Haa bueno haber si lo entendí lo que me sugiere hacer es crear dos Estados globales (activar y desactivar) y dentro de ellos se incluyen los estados que yo tengo o tengo que usar esos dos estados en vez de lo que hice?

El lun., 24 ago. 2020 9:48 a. m., DamRCorba notifications@github.com escribió:

Claro, el tema es que la maquina de estados representa estados y transiciones siendo las transiciones las acciones. Por lo que en el caso de la opción de desactivar deberías ir a un estado que represente al sistema. En tu caso seria quedarse en silencio hasta la próxima activación. Si lo que queres represtar es el estado en que no hay alarmas seteadas, deberias tener dos estados globales, el de activada y desactivada, cada uno de ellos dejan al sistema en silencio. Uno solo muetra la hora y el otro ademas espera a que llegue la hora para lanzar la alarma.

Para concluir, tendrias a toda tu maquina actual, aunque tu memoria descriptiva deberia acomodarse y deberias renombar el estado de silencio por activada.

Te dejo las opciones a tu gusto.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/Jacobo-Miguel/Trabajo-Practico-Maquina-de-estados--Alarma-Despertdor/issues/1#issuecomment-679105605, or unsubscribe https://github.com/notifications/unsubscribe-auth/APWZ766RBTPKUELYODP44Y3SCJOQLANCNFSM4QIKYQRQ .

DamRCorba commented 4 years ago

Opción 1: sacar el estado desactivar y hacer que la opción 2 vaya a silencio. En silencio deberías estar comprobando a la opción de activado/Desactivado además de la hora para cambiar de estado o quedarte ahí. De esa forma solo sacar el estado de desactivar y agregas una condición de silencio. Esta opción es la mas simple para la maquina, diagrama y código, en mi opinión.

Opción 2: Agregar dos estados globales Activado y Desactivado. Donde de Activado cuelguen los estados de alarma y posponer tal como los tenes ahora. Esto te genera en el código una función mas que en la opción 1

Jacobo-Miguel commented 4 years ago

Claro la opción 1 esta mejor, sería poner otra condición de silencio, cuando esta en el Estado de alarma me da las dos opciones (posponer o desactivar) y si elijo desactivar me manda a silencio y se queda ahí mientras que no sea la hora y este desactivada, pero si hay más de un día, cuando pase al otro día la misma se activaría y tendría que esperar a que sea la hora así manteniendo el bucle infinito Nose si se entendió jaja, disculpe es que quiero que quede claro así no me equívoco

El lun., 24 ago. 2020 10:36 a. m., DamRCorba notifications@github.com escribió:

Opción 1: sacar el estado desactivar y hacer que la opción 2 vaya a silencio. En silencio deberías estar comprobando a la opción de activado/Desactivado además de la hora para cambiar de estado o quedarte ahí. De esa forma solo sacar el estado de desactivar y agregas una condición de silencio. Esta opción es la mas simple para la maquina, diagrama y código, en mi opinión.

Opción 2: Agregar dos estados globales Activado y Desactivado. Donde de Activado cuelguen los estados de alarma y posponer tal como los tenes ahora. Esto te genera en el código una función mas que en la opción 1

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/Jacobo-Miguel/Trabajo-Practico-Maquina-de-estados--Alarma-Despertdor/issues/1#issuecomment-679130336, or unsubscribe https://github.com/notifications/unsubscribe-auth/APWZ76Y5JSK3C77IGHB7SITSCJUFFANCNFSM4QIKYQRQ .

Jacobo-Miguel commented 4 years ago

Hola Profe una pregunta ya puedo ir subiendo el programa para ver si voy bien y que correcciones puedo hacer?

El lun., 24 ago. 2020 10:59 a. m., Jacobo Miguel jacobomiguel03@gmail.com escribió:

Claro la opción 1 esta mejor, sería poner otra condición de silencio, cuando esta en el Estado de alarma me da las dos opciones (posponer o desactivar) y si elijo desactivar me manda a silencio y se queda ahí mientras que no sea la hora y este desactivada, pero si hay más de un día, cuando pase al otro día la misma se activaría y tendría que esperar a que sea la hora así manteniendo el bucle infinito Nose si se entendió jaja, disculpe es que quiero que quede claro así no me equívoco

El lun., 24 ago. 2020 10:36 a. m., DamRCorba notifications@github.com escribió:

Opción 1: sacar el estado desactivar y hacer que la opción 2 vaya a silencio. En silencio deberías estar comprobando a la opción de activado/Desactivado además de la hora para cambiar de estado o quedarte ahí. De esa forma solo sacar el estado de desactivar y agregas una condición de silencio. Esta opción es la mas simple para la maquina, diagrama y código, en mi opinión.

Opción 2: Agregar dos estados globales Activado y Desactivado. Donde de Activado cuelguen los estados de alarma y posponer tal como los tenes ahora. Esto te genera en el código una función mas que en la opción 1

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/Jacobo-Miguel/Trabajo-Practico-Maquina-de-estados--Alarma-Despertdor/issues/1#issuecomment-679130336, or unsubscribe https://github.com/notifications/unsubscribe-auth/APWZ76Y5JSK3C77IGHB7SITSCJUFFANCNFSM4QIKYQRQ .

DamRCorba commented 4 years ago

si, esa es la idea.

Jacobo-Miguel commented 4 years ago

Hola profe como esta dentro de una rato voy a subir lo hice hasta ahora de mi Código todavía me falta mucho pero quiero ver que correcciones hay, tengo una duda por que si se fija en lib.h están las funciones de Estados y tuve un conflicto con el Estado de posponer yo le puse si la hora no es igual a la hora pospuesta que vaya a silencio (nose si esto esta bien, había pensado que se quedará en posponer)y si es la hora vuelva a alarma, pero por alguna razón no se cumple por que cuando yo modificó la hora y minutos en posponer, cuando va a silencio, la hora y minutos son los mismos de antes que entrara a posponer por lo que la condición de el Estado de silencio no se cumple ( para que lo entienda mejor entra a la primera en el Estado de silencio si la hora no es igual a la hora pospuesta, pero si vuelvo a hacerlo ya pasa directamente al Estado de alarma) Es mucho texto disculpe .

El lun., 24 ago. 2020 8:49 p. m., DamRCorba notifications@github.com escribió:

si, esa es la idea.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/Jacobo-Miguel/Trabajo-Practico-Maquina-de-estados--Alarma-Despertdor/issues/1#issuecomment-679422203, or unsubscribe https://github.com/notifications/unsubscribe-auth/APWZ765LEICWYPBCFTRPWMDSCL4A5ANCNFSM4QIKYQRQ .

DamRCorba commented 4 years ago

Hola Jacobo, con respecto al código varias cosas. La primera y mas disruptiva, Veo que estas tratando al tiempo como una entrada de texto por el usuario. Lo ideal es que uses la librería time.h para que con solo setear la alarma la misma funcione con el tiempo. Te va a resultar mas cómodo consultar la hora en cada función en lugar de ingresarla. Te invito a que la veas y pruebes desde este link

Por otro lado y mas semántico. Las funciones, por convención, no deberían llamarse _t ya que esta terminación es exclusiva de los tipos de datos. También esta mal el uso de los archivos .c y .h el archivo lib.h solo debería tener definiciones y prototipos. Las funciones deberían estar en otro archivo.c siendo este parte de tu proyecto. Puede que tengas errores en las funciones de tu archivo.h que no estas viendo por donde esta escrita la función. Eso también es condición del tp.

Lo de la condición para quedarse en posponer te diría que sea mientras tiempo actual < tiempo posponer.

La condición de alarma debería ser tiempo actual == tiempo alarma, quizá con algún delta de +- unos segundos.

con respecto a la resolución de la maquina, la estructura esta bien. solo te pido que la parte inicial, la del seteo, este dentro de una función de init.

Como veras no hay problema con los texto largos jaja.

Jacobo-Miguel commented 4 years ago

Gracias por el consejo profe, ya estoy viendo como funciona y me simplifica mucho el código, respecto a las funciones le queria preguntar si puedo tener las funciones de Estado y las funciones particulares en un solo archivo. c o las tengo que poner en archivos diferentes?

El mié., 26 ago. 2020 9:06 a. m., DamRCorba notifications@github.com escribió:

Hola Jacobo, con respecto al código varias cosas. La primera y mas disruptiva, Veo que estas tratando al tiempo como una entrada de texto por el usuario. Lo ideal es que uses la librería time.h https://www.tutorialspoint.com/c_standard_library/time_h.htm para que con solo setear la alarma la misma funcione con el tiempo. Te va a resultar mas cómodo consultar la hora en cada función en lugar de ingresarla. Te invito a que la veas y pruebes desde este link https://www.tutorialspoint.com/c_standard_library/time_h.htm

Por otro lado y mas semántico. Las funciones, por convención, no deberían llamarse _t ya que esta terminación es exclusiva de los tipos de datos. También esta mal el uso de los archivos .c y .h el archivo lib.h solo debería tener definiciones y prototipos. Las funciones deberían estar en otro archivo.c siendo este parte de tu proyecto. Puede que tengas errores en las funciones de tu archivo.h que no estas viendo por donde esta escrita la función. Eso también es condición del tp.

Lo de la condición para quedarse en posponer te diría que sea mientras tiempo actual < tiempo posponer.

La condición de alarma debería ser tiempo actual == tiempo alarma, quizá con algún delta de +- unos segundos.

con respecto a la resolución de la maquina, la estructura esta bien. solo te pido que la parte inicial, la del seteo, este dentro de una función de init.

Como veras no hay problema con los texto largos jaja.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/Jacobo-Miguel/Trabajo-Practico-Maquina-de-estados--Alarma-Despertdor/issues/1#issuecomment-680837960, or unsubscribe https://github.com/notifications/unsubscribe-auth/APWZ762WZFQFBT433PHZZK3SCT3DFANCNFSM4QIKYQRQ .

DamRCorba commented 4 years ago

Para este tp, podes tener todo junto en un archivo.c diferente del main.c donde solo deberia estar el main.

Como buena constubre la separacion de archivos se hace para poder reutilizar grupos de funciones o librerias en otros proyectos.

Saludos

Jacobo-Miguel commented 4 years ago

Hola profe buen día ya cambie el Código, queria preguntarle sobre una cosa, yo puse para ingresar cuantas veces se tenga posponer la alarma como pasa en los celulares, pero nose como puedo hacer para que cuando entre al posponer lo siga haciendo hasta que exceda el número de veces a repetir Nose si me entendió, si hay otra correccion avisame pero ahora de me hizo más fácil por el Consejo que me dio Saludos

El jue., 27 ago. 2020 9:32 a. m., DamRCorba notifications@github.com escribió:

Para este tp, podes tener todo junto en un archivo.c diferente del main.c donde solo deberia estar el main.

Como buena constubre la separacion de archivos se hace para poder reutilizar grupos de funciones o librerias en otros proyectos.

Saludos

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/Jacobo-Miguel/Trabajo-Practico-Maquina-de-estados--Alarma-Despertdor/issues/1#issuecomment-681919345, or unsubscribe https://github.com/notifications/unsubscribe-auth/APWZ766NRF4WAB7PFCKULKLSCZG4XANCNFSM4QIKYQRQ .

Jacobo-Miguel commented 4 years ago

Hola profe como esta, se me género una duda con lo de ayer que me explicó en cuanto al archivo de configuración, yo me guió por la hora de mi computadora para comparar con la hora programada, entonces lo que debería poner en el archivo de configuración es la hora actual en la que me encuentro para que arranque de ahí o no? y utilizarla en las funciones de Estados

El sáb., 29 ago. 2020 11:36 a. m., Jacobo Miguel jacobomiguel03@gmail.com escribió:

Hola profe buen día ya cambie el Código, queria preguntarle sobre una cosa, yo puse para ingresar cuantas veces se tenga posponer la alarma como pasa en los celulares, pero nose como puedo hacer para que cuando entre al posponer lo siga haciendo hasta que exceda el número de veces a repetir Nose si me entendió, si hay otra correccion avisame pero ahora de me hizo más fácil por el Consejo que me dio Saludos

El jue., 27 ago. 2020 9:32 a. m., DamRCorba notifications@github.com escribió:

Para este tp, podes tener todo junto en un archivo.c diferente del main.c donde solo deberia estar el main.

Como buena constubre la separacion de archivos se hace para poder reutilizar grupos de funciones o librerias en otros proyectos.

Saludos

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/Jacobo-Miguel/Trabajo-Practico-Maquina-de-estados--Alarma-Despertdor/issues/1#issuecomment-681919345, or unsubscribe https://github.com/notifications/unsubscribe-auth/APWZ766NRF4WAB7PFCKULKLSCZG4XANCNFSM4QIKYQRQ .

DamRCorba commented 4 years ago

Hola, jacobo. Si esta bien que lo hagas asi. Me confundi yo con la idea de que setees la hora inicial. Esa hora deberia ser la de tu pc. Pero lo que si deberias poner en el archivo de configuracion es la hora en que queres que suene la alarma. la cual deberias poder cambiar desde el codigo, como lo venias haciendo, para cerrar el circulo capaz podrias hacer que se guarde el cambio en el archivo. En ese caso podes elegir si seguis con archivo de configuracion de texto o si vas a un binario en el que guardas los datos.