From 5b1f702f012e9fcb0e64cdb6954759acc4c13e31 Mon Sep 17 00:00:00 2001 From: schodet Date: Wed, 10 Sep 2003 20:12:26 +0000 Subject: Aprés 2003 --- 2003/i/buzz/src/date/date.cc | 54 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 2003/i/buzz/src/date/date.cc (limited to '2003/i/buzz/src/date/date.cc') diff --git a/2003/i/buzz/src/date/date.cc b/2003/i/buzz/src/date/date.cc new file mode 100644 index 0000000..daffd74 --- /dev/null +++ b/2003/i/buzz/src/date/date.cc @@ -0,0 +1,54 @@ +// date.cc +// buzz - Programme du robot Efrei Robotique I1-I2 2003 +// Copyright (C) 2003 Nicolas Schodet +// +#include "date.h" + +#include +#include + +// Pointeur vers l'instance unique. +Date *Date::m_instance = 0; + +// Constructeur. +Date::Date (void) +{ + m_start = getDate (); + m_round = -1; + m_instance = this; +} + +// Destructeur. +Date::~Date (void) +{ + m_instance = 0; +} + +// Signale le début du match. +void +Date::startRound (void) +{ + m_round = getDate (); +} + +// Retourne la date système. +int +Date::getDate (void) +{ + timeval tv; + gettimeofday (&tv, 0); + // Ça veut dire, un bug tous les 11 jours... + // Cette année : le 26/05/2003, et le 06/05/2003. Mais le robot n'est pas + // à l'heure de toue façon. + return (tv.tv_sec % 1000000) * 1000 + tv.tv_usec / 1000; +} + +// Attend un nombre de millisecondes. +void +Date::wait (int t) +{ + timespec ts, r; + ts.tv_sec = t / 1000; + ts.tv_nsec = t * 1000000; + nanosleep (&ts, &r); +} -- cgit v1.2.3