Diferencia entre revisiones de «Manual de programación de OS/2/Llamadas DOSxxx para temporizadores»
Contenido eliminado Contenido añadido
m Bot controlado: actualizada sintaxis de tabla; cambios triviales |
|||
Línea 3:
<P>DosAsyncTimer inicia un temporizador asíncrono de un sólo intervalo (solo cuenta una vez).
<P>#define INCL_BASE<
<P>ULONG
<
<
<
<P>rc = DosAsyncTimer(ulTimeInterval, hsemSemHandle, pHandle);
== Parámetros ==
{|
|-
| ulTimeInterval
| El 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).
|-
| hsemSemHandle
| El 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'''.
|-
| pHandle
| Un 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 ==
{|
|-
| 0 || Sin error
|-
|-
| 324
| No quedan temporizadores disponibles
|}
<P>
= DosGetDateTime =
<P>DosGetDateTime devuelve la fecha y hora actual del sistema.
<P>#define INCL_BASE<
<P>PDATETIME
<
<P>rc = DosGetDateTime(pPDateTime);
== Parámetros ==
{|
|-
| pPDateTime
| Puntero a una estructura FechaHora, con los siguientes campos:
|-
|
||
{| BORDER="1"
|-
| 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.
|}
<P>
= DosSetDateTime =
<P>DosSetDateTime permite cambiar la fecha y la hora actual.
<P>#define INCL_BASE<
<P>PDATETIME
<
<P>rc = DosSetDateTime(pPDateTime);
== Parámetros ==
{|
|-
| pPDateTime
| Puntero a una estructura FechaHora donde se le dan a OS/2 los nuevos valores. Tiene los siguientes campos:
|-
|
||
{| BORDER="1"
|-
| 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 ==
{|
|-
| 0 || Sin error
|-
| 327 || Fecha u hora no válida
|}
<P>
= DosSleep =
<P>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
<P>#define INCL_BASE<
<P>ULONG
<
<P>rc = DosSleep(ulTimeInterval);
== Parámetros ==
{|
|-
| ulTimeInterval
| El tiempo, en milisegundos, durante el cual se detendrá la ejecución del thread.
|}
== Codigos de error ==
{|
|-
| 0 || Sin error
|-
| 322 || Incapaz de despertar
|}
<P>
= DosStartTimer =
<P>DosStartTimer inicia un temporizador asíncrono, que se repite indefinidamente.
<P>#define INCL_BASE<
<P>ULONG
<
<
<
<P>rc = DosStartTimer(ulTimeInterval, hsemSemHandle, pHandle);
== Parámetros ==
{|
|-
| ulTimeInterval
| El 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).
|-
| hsemSemHandle
| El 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'''.
|-
| pHandle
| Un 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 ==
{|
|-
| 0 || Sin error
|-
| 323 || Semáforo del sistema
|-
| 324
| No quedan temporizadores disponibles
|}
<P>
= DosStopTimer =
<P>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
<P>#define INCL_BASE<
<P>HTIMER
<
<P>rc = DosStopTimer(htimerHandle);
== Parámetros ==
{|
|-
| htimerHandle || El handle del temporizador a parar.
|}
== Codigos de error ==
{|
|-
| 0 || Sin error
|-
| 326
| Handle de temporizador no válido
|}
<P>
|