Pages: [1]   Go Down
Author Topic: Timestamp unix ou format UTC ?  (Read 575 times)
0 Members and 1 Guest are viewing this topic.
Forum Moderator
Geneva
Offline Offline
Faraday Member
*****
Karma: 30
Posts: 3231
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

J'ai des PCs dédié pour faire certaine tâches à des dates/heures programmées par une action extérieure, donc les dates peuvent changer et il peut y en avoir plusieurs à des dates/heures différentes.

J'ai fait un script bash qui contrôle si des tâches existent, le cas échéant les timestamps de ces tâches sont comparés au timestamp courant.

Un Cronjob inscrit dans un fichier le timestamp et/ou la date UTC de la prochaine tâche à effectuer.

Avec un arduino et un shield ethernet, je lis le contenu de ce fichier afin de garder en mémoire cette "date", ainsi je peux mettre mes PCs en veille ou les éteindre et les rallumer avec l'arduino 5 minutes avant l'execution de cette tâche.

En cas de panne de courant,lors du rétablissement de ce dernier le setup allumerait par défaut les PCs, connecterait l'arduino afin de remettre à jour le timestamp actuel et contrôler si une tâche est programmée.... ça m'évite d'utiliser une carte SD ou l'Eeprom.... de toute façon, en cas de panne de courant, l'arduino n'arrivera pas à allumer les PCs  smiley-lol

Le problème :
  • Le format UTC, l'aquisition et le traitement de la date est un peux ardue, ensuite, il faut tenir compte des horaires d'été/hiver. Utilisation d'une RTC possible (ds1307), directement utilisable pour lire sur un lcd la prochaine occurrence
  • Le format timestamp Unix, facilité d'aquisition et de traitement, on ne tient compte que d'une différence entre deux timestamp pour lancer l'exécution d'une tâche. Un quartz d'horloge et une interruption par seconde permettrait de tenir à jour "précisement" le timestamp. Il faut convertir dans un autre format pour lire la prochaine occurrence sur un lcd.

Quel format choisir et comment le mettre en oeuvre/convertir ?

La précision ne doit pas être à la seconde, une latence de une à deux minutes est envisageable, le Cronjob ne remet à jour le fichier qu'un fois par minute (d'ailleurs si quelqu'un connait un moyen d'augmenter cette fréquence...  smiley-mr-green)
« Last Edit: January 19, 2013, 06:30:14 am by Jean-François » Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Ile-de-France (92 sud), France
Offline Offline
Edison Member
*
Karma: 24
Posts: 2055
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Pour moi, si ton appli n'a pas besoin de durer jusqu'en 2036, le bon timestamp c'est le timestamp unix traditionnel time_t qui exprime le nombre de secondes écoulées depuis le 1 janvier 1970 00:00 UTC.

Après dans Linux tu as si besoin des fonctions pour convertir ce timestamp en heure légale en tenant compte de changements heure d'été/hiver

par contre l'Arduino n'aura pas accès à cette gestion des locales donc a voir si tu as besoin de communiquer à l'Arduino des heures UTC ou pas.

Il me semble que l'Arduino n'a pas besoin de ca. Si elle à une RTC callée en UTC et que le fichier est créé en UTC, ca sera bon.
Logged

Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

Forum Moderator
Geneva
Offline Offline
Faraday Member
*****
Karma: 30
Posts: 3231
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Tu confortes ce que je pensais....  smiley-lol

Après en lisant ta réponse, je me disais que la méthode la "plus simple" est d'envoyer à l'arduino le timestamp Unix actuel (précision dans la minute), le timestamp Unix et UTC de la tâches à effectuer.

L'arduino fait le décompte avec le système Unix, mais m'affiche sur le lcd l'échéance en UTC ......
Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

France
Offline Offline
Faraday Member
**
Karma: 55
Posts: 5347
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Salut,

Tu devrais aimer cette librairie smiley-wink
https://github.com/JChristensen/Timezone
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Forum Moderator
Geneva
Offline Offline
Faraday Member
*****
Karma: 30
Posts: 3231
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Merci Skywodd,

Je vais malgré tout garder la solution du traitement maxi de l'information par les PCs.
Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Pages: [1]   Go Up
Jump to: