48 lines
1.4 KiB
C
48 lines
1.4 KiB
C
/****************************************************************
|
|
* *
|
|
* Copyright 2001 Sanchez Computer Associates, Inc. *
|
|
* *
|
|
* This source code contains the intellectual property *
|
|
* of its copyright holder(s), and is made available *
|
|
* under a license. If you do not know the terms of *
|
|
* the license, please stop and do not read further. *
|
|
* *
|
|
****************************************************************/
|
|
|
|
#include "mdef.h"
|
|
|
|
#include "cli.h"
|
|
#include "iosp.h"
|
|
#include "timers.h"
|
|
|
|
#define ONE_HOUR (10 * 100 * 60 * 60) /* (decisec / millisec) * (decisec / sec) * (sec /min) * (min / hour) */
|
|
|
|
|
|
void change_fhead_timer(char *timer_name, sm_int_ptr_t timer_address, int default_time, bool zero_is_ok)
|
|
/* default_time is in milliseconds */
|
|
{
|
|
uint4 status, value;
|
|
|
|
error_def(ERR_TIMRBADVAL);
|
|
|
|
default_time = default_time * TIMER_SCALE;
|
|
timer_address[1] = 0;
|
|
status = cli_present((char *)timer_name);
|
|
if (status == CLI_NEGATED)
|
|
timer_address[0] = zero_is_ok ? 0 : default_time;
|
|
else if (status == CLI_PRESENT)
|
|
{
|
|
status = cli_get_time((char *)timer_name, &value);
|
|
if (TRUE == status)
|
|
{
|
|
if ((ONE_HOUR < value) || ((0 == value) && (FALSE == zero_is_ok)))
|
|
rts_error(VARLSTCNT(1) ERR_TIMRBADVAL);
|
|
else /* the above error is of type GTM-I- */
|
|
timer_address[0] = value;
|
|
|
|
} else
|
|
rts_error(VARLSTCNT(1) ERR_TIMRBADVAL);
|
|
}
|
|
return;
|
|
}
|