Autor
|
Tema: Tareas programadas en C ¿Como? (Leído 8,193 veces)
|
dgg006
Desconectado
Mensajes: 20
|
Hola. Otra ves molestando por acá...
Lo que ahora necesito, puede ser algo útil para muchos, no se como explicarlo bien, así que les cuento lo que debería hacer...
"Es un programa en C, para planificar tareas por horario. Tendría que leer en un TXT, un hora X (ej:15:22) Cuando la hora del sistema, sea igual que esa hora X, debe escribir un valor en otro TXT y dejar en blanco el TXT anterior"
Para orientarlos a lo que va dedicado este código, les cuento: Estoy diseñando un sistema domotico, que a través de internet controla unos relay conectados al paralelo. La pagina (en PHP) crea un TXT con un 0 o un 1 Un programa en C, lee ese txt, y dependiendo si es un 0 o un 1, apaga o enciende el relay. Todo eso ya esta echo y funcionando, pero quiero agregarle un estilo de planificación, entonces a la hora elegida, se escribe un 0 o un 1 en el TXT.
Espero su ayuda
|
|
|
En línea
|
|
|
|
Died
Desconectado
Mensajes: 32
|
No he leído a fondo, pero para programar tareas sencillamente coge la hora en el formato que necesites y compárala con lo que quieres. Un saludo. Sagrini
|
|
|
En línea
|
|
|
|
dgg006
Desconectado
Mensajes: 20
|
El tema es ¿como?
|
|
|
En línea
|
|
|
|
ksiksi
Desconectado
Mensajes: 3
|
No sé si entendi bien, pero la idea seria hacer un createprocess con un bucle para mantenerlo vivo y usar localtime para averiguar la hora: http://c.conclase.net/librerias/?ansifun=localtime#inicioEso si estas en windows, pq createprocess es una api de windows. Sin embargo, sospecho que debe haber una forma mas facil de hacerlo.
|
|
|
En línea
|
|
|
|
dgg006
Desconectado
Mensajes: 20
|
Creo que no lo aclare... Es bajo Linux.. (Ubuntu Server)
|
|
|
En línea
|
|
|
|
Died
Desconectado
Mensajes: 32
|
#include <string.h> #include <stdio.h> #include <time.h> char buffer [40]; char *times () { struct tm *ahora; strftime (buffer , 40, "%d/%m/%Y", ahora ); return (char *) buffer; } int main () { return 0; }
$ gcc -o code code.c $ ./code 1 $
La próxima vez mira algo en Google Un saludo. Sagrini
|
|
|
En línea
|
|
|
|
dgg006
Desconectado
Mensajes: 20
|
Lo voy a probar y les cuento.. Igual te cuento que busque, pero google te ayuda cuando sabes que buscas, y yo no estoy seguro de que es
|
|
|
En línea
|
|
|
|
dakomt
Desconectado
Mensajes: 76
Viking Metal
|
jeje recuerdo tu proyecto.. me alegro de que hayas progresado El problema de hacerlo de esa forma es que desde el programa en C deberás estar todo el rato comprobando la hora en un bucle... A menos que te compliques la vida usando algun manejador de señales o algo similar (ejemplo--> http://linux.die.net/man/3/sem_wait ) tu programa se volverá muy ineficiente. Mi consejo..., ya que vas a usar un sistema Linux, es que te ayudes de los comandos del sistema, por ejemplo " at" o " crontab" y los llames desde el programa en C con los parametros correspondientes (fecha de ejecución,comando a ejecutar, etc) PD: es más.. ya que tienes un "sistema" domótico compuesto de diversos programas también podrías contemplar la posibilidad de usar un " script en bash" directamente para gestionar la programacion de tareas (invocando a alguno de los comandos que te he mencionado anteriormente) y olvidarte de C. Como tu lo veas más facil
|
|
« Última modificación: 17 Junio 2011, 05:23 am por dakomt »
|
En línea
|
|
|
|
dgg006
Desconectado
Mensajes: 20
|
Hola dakomt. Me alegro que recuerdes mi proyecto, y si, mi bebe está creciendo a pasos agigantados Entiendo lo que dicen sobre la ineficiencia de lo que busco. Voy a buscar sobre los comandos que me pasaste,. Para Died: Hice un par de modificaciones en el codigo que me pasaste, y casi funciona. #include <string.h> #include <stdio.h> #include <time.h> char buffer [40]; char *times () { time_t now = time (0); struct tm *ahora; ahora=localtime ((const time_t*)&now); strftime (buffer, 40, "%H:%M", ahora); return (char *) buffer; } int main () { if (strcmp (times (), "20:45") == 0) printf ("1"); else printf ("0"); return 0; } Donde dice "20:45" es donde se ingresa la hora que quieres. La pregunta es, si tengo la hora en un TXT, que comando uso??? Ya he trabajado con TXT pero este me confundió
|
|
|
En línea
|
|
|
|
Died
Desconectado
Mensajes: 32
|
Usa las funciones fopen (), fclose (), fgets (), etc... Un saludo. Sagrini
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Asistente virtual, reconocimiento de voz, tareas programadas etc. Existe?
« 1 2 »
Software
|
Littlehorse
|
13
|
12,172
|
14 Junio 2013, 12:20 pm
por topomanuel
|
|
|
Llamar a tareas programadas con BAT
Scripting
|
elecktra
|
1
|
8,399
|
27 Agosto 2009, 20:24 pm
por Novlucker
|
|
|
tareas programadas
Programación Visual Basic
|
Fabricio
|
2
|
2,454
|
8 Septiembre 2009, 16:24 pm
por Fabricio
|
|
|
Creacion de Script con tareas programadas.
Scripting
|
UrbanIT
|
2
|
6,123
|
7 Febrero 2012, 11:59 am
por UrbanIT
|
|