GRUPO DE LLAMADAS DOSxxx (6)
(Temporizadores)


DosAsyncTimer

DosAsyncTimer inicia un temporizador asíncrono de un sólo intervalo (solo cuenta una vez).

#define INCL_BASE
#include <os2.h>

ULONG ulTimeInterval;
HSEM hsemSemHandle;
PHTIMER pHandle;
APIRET rc; /* Codigo de error */

rc = DosAsyncTimer(ulTimeInterval, hsemSemHandle, pHandle);

Parámetros

ulTimeIntervalEl tiempo, en milisegundos, que debe pasar para que el temporizador active (post) el semáforo de evento. (El sistema redondea este valor al siguiente ciclo del conmutador de tareas).
hsemSemHandleEl handle de un semáforo de evento que será activado cuando pase el tiempo indicado en ulTimeInterval. Tiene que ser un semáforo de evento compartido, y debe ser reseteado antes de llamar a DosAsyncTimer.
pHandleUn puntero a una posición de memoria donde OS/2 devolverá el handle del temporizador. Este handle puede ser pasado a DosStopTimer para parar el temporizador antes de que termine el intervalo.

Codigos de error

0Sin error
323Semáforo del sistema
324No quedan temporizadores disponibles


DosGetDateTime

DosGetDateTime devuelve la fecha y hora actual del sistema.

#define INCL_BASE
#include <os2.h>

PDATETIME pPDateTime;
APIRET rc; /* Codigo de error */

rc = DosGetDateTime(pPDateTime);

Parámetros

pPDateTimePuntero a una estructura FechaHora, con los siguientes campos:
Hours (UCHAR) Hora actual, usando valores desde 0 hasta 23.
Minutes (UCHAR) Minuto actual, usando valores desde 0 hasta 59.
Seconds (UCHAR) Segundo actual, usando valores desde 0 hasta 59.
Hundredths (UCHAR) Centesima de segundo actual, usando valores desde 0 hasta 99.
Day (UCHAR) Día actual del mes, usando valores desde 1 hasta 31.
Month (UCHAR) Mes actual del año, usando valores desde 1 hasta 12.
Year (USHORT) Año actual.
TimeZone (SHORT) La diferencia en minutos entre la zona horaria actual y el meridiano de Greenwich (hora GMT). Este valor es positivo para zonas al oeste de Greenwich (Inglaterra) y negativo para zonas al este de Greenwich. Un valor de -1 indica que la zona horaria no está definida.
DayofWeek (UCHAR) Día actual de la semana, usando valores desde 0 hasta 6. (Domingo es igual a 0).

Codigos de error

No retorna ningún valor.


DosSetDateTime

DosSetDateTime permite cambiar la fecha y la hora actual.

#define INCL_BASE
#include <os2.h>

PDATETIME pPDateTime;
APIRET rc; /* Codigo de error */

rc = DosSetDateTime(pPDateTime);

Parámetros

pPDateTimePuntero a una estructura FechaHora donde se le dan a OS/2 los nuevos valores. Tiene los siguientes campos:
Hours (UCHAR) Hora actual, usando valores desde 0 hasta 23.
Minutes (UCHAR) Minuto actual, usando valores desde 0 hasta 59.
Seconds (UCHAR) Segundo actual, usando valores desde 0 hasta 59.
Hundredths (UCHAR) Centesima de segundo actual, usando valores desde 0 hasta 99.
Day (UCHAR) Día actual del mes, usando valores desde 1 hasta 31.
Month (UCHAR) Mes actual del año, usando valores desde 1 hasta 12.
Year (USHORT) Año actual.
TimeZone (SHORT) La diferencia en minutos entre la zona horaria actual y el meridiano de Greenwich (hora GMT). Este valor es positivo para zonas al oeste de Greenwich (Inglaterra) y negativo para zonas al este de Greenwich. Un valor de -1 indica que la zona horaria no está definida.
DayofWeek (UCHAR) Día actual de la semana, usando valores desde 0 hasta 6. (Domingo es igual a 0).

Codigos de error

0Sin error
327Fecha u hora no válida


DosSleep

DosSleep duerme el thread actual durante un intervalo de tiempo determinado. Este intervalo es redondeado al ciclo de conmutador de programas más próximo. Si el intervalo indicado es 0 y hay algún thread de igual o mayor prioridad en espera, pasará a ejecutarse, durmiendo el thread actual hasta el siguiente turno. Si no hay ningun thread que cumpla esa condición, se retornará inmediatamente (nunca se cede el control a un thread de menor prioridad). En aplicaciones PM no se debe usar esta llamada, sino WinStartTimer.

#define INCL_BASE
#include <os2.h>

ULONG ulTimeInterval;
APIRET rc; /* Codigo de error */

rc = DosSleep(ulTimeInterval);

Parámetros

ulTimeIntervalEl tiempo, en milisegundos, durante el cual se detendrá la ejecución del thread.

Codigos de error

0Sin error
322Incapaz de despertar


DosStartTimer

DosStartTimer inicia un temporizador asíncrono, que se repite indefinidamente.

#define INCL_BASE
#include <os2.h>

ULONG ulTimeInterval;
HSEM hsemSemHandle;
PHTIMER pHandle;
APIRET rc; /* Codigo de error */

rc = DosStartTimer(ulTimeInterval, hsemSemHandle, pHandle);

Parámetros

ulTimeIntervalEl tiempo, en milisegundos, que debe pasar para que el temporizador active (post) el semáforo de evento. (El sistema redondea este valor al siguiente ciclo del conmutador de tareas).
hsemSemHandleEl handle de un semáforo de evento que será activado cada vez que pase el tiempo indicado en ulTimeInterval. Tiene que ser un semáforo de evento compartido, y debe ser reseteado entre cada activación con DosResetEventSem.
pHandleUn puntero a una posición de memoria donde OS/2 devolverá el handle del temporizador. Este handle puede ser pasado a DosStopTimer para parar el temporizador.

Codigos de error

0Sin error
323Semáforo del sistema
324No quedan temporizadores disponibles


DosStopTimer

DosStopTimer detiene un temporizador asíncrono. Una vez hecho esto, no se puede hacer ninguna suposición sobre el estado del semáforo asociado a éste, por lo que si se va a reutilizar, es necesario inicializarlo con DosResetEventSem.

#define INCL_BASE
#include <os2.h>

HTIMER htimerHandle;
APIRET rc; /* Codigo de error */

rc = DosStopTimer(htimerHandle);

Parámetros

htimerHandleEl handle del temporizador a parar.

Codigos de error

0Sin error
326Handle de temporizador no válido

 Indice