Fix sleep macros and newcat.c set_powerstat

pull/155/head
Michael Black 2019-12-24 15:01:08 -06:00
rodzic 4f05f09eed
commit 24eaeecfdf
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 6599353EC683404D
3 zmienionych plików z 13 dodań i 13 usunięć

Wyświetl plik

@ -97,16 +97,18 @@
#undef usleep
#define usleep(n)\
do {\
unsigned long sec = n/1000000ul;\
unsigned long nsec = n*1000ul - (sec * 1000000000ul);\
struct timespec t;\
t.tv_sec=0;\
t.tv_nsec = n*1000ul;\
t.tv_sec=sec;\
t.tv_nsec = nsec;\
nanosleep(&t,NULL);\
} while(0)
#define sleep(n)\
do {\
struct timespec t;\
t.tv_sec=0;\
t.tv_nsec = n*1000000000ul;\
t.tv_sec=n;\
t.tv_nsec = 0;\
nanosleep(&t,NULL);\
} while(0)

Wyświetl plik

@ -2260,6 +2260,10 @@ int newcat_set_powerstat(RIG *rig, powerstat_t status)
{
case RIG_POWER_ON:
ps = '1';
// when powering on need a dummy byte to wake it up
// then sleep from 1 to 2 seconds so we'll do 1.5 secs
write_block(&state->rigport, "\n", 1);
usleep(1500000);
break;
case RIG_POWER_OFF:
@ -2273,15 +2277,9 @@ int newcat_set_powerstat(RIG *rig, powerstat_t status)
snprintf(priv->cmd_str, sizeof(priv->cmd_str), "PS%c%c", ps, cat_term);
if (RIG_OK != (err = write_block(&state->rigport, priv->cmd_str,
strlen(priv->cmd_str))))
{
return err;
}
err = write_block(&state->rigport, priv->cmd_str, strlen(priv->cmd_str));
// delay 1.5 seconds
usleep(1500000);
return write_block(&state->rigport, priv->cmd_str, strlen(priv->cmd_str));
return err;
}

Wyświetl plik

@ -50,7 +50,7 @@
typedef char ncboolean;
/* shared function version */
#define NEWCAT_VER "0.25"
#define NEWCAT_VER "0.26"
/* Hopefully large enough for future use, 128 chars plus '\0' */
#define NEWCAT_DATA_LEN 129