Merge branch 'TheRaspyDev-master'

This commit is contained in:
joan 2018-02-04 09:12:40 +00:00
commit ec62750c36
6 changed files with 27 additions and 11 deletions

View File

@ -442,7 +442,7 @@ static errInfo_t errInfo[]=
{PI_BAD_PATHNAME , "can't open pathname"}, {PI_BAD_PATHNAME , "can't open pathname"},
{PI_NO_HANDLE , "no handle available"}, {PI_NO_HANDLE , "no handle available"},
{PI_BAD_HANDLE , "unknown handle"}, {PI_BAD_HANDLE , "unknown handle"},
{PI_BAD_IF_FLAGS , "ifFlags > 3"}, {PI_BAD_IF_FLAGS , "ifFlags > 4"},
{PI_BAD_CHANNEL , "DMA channel not 0-14"}, {PI_BAD_CHANNEL , "DMA channel not 0-14"},
{PI_BAD_SOCKET_PORT , "socket port not 1024-30000"}, {PI_BAD_SOCKET_PORT , "socket port not 1024-30000"},
{PI_BAD_FIFO_COMMAND , "unknown fifo command"}, {PI_BAD_FIFO_COMMAND , "unknown fifo command"},

View File

@ -9907,7 +9907,7 @@ A 16-bit word value.
.br .br
#define PI_BAD_HANDLE -25 // unknown handle #define PI_BAD_HANDLE -25 // unknown handle
.br .br
#define PI_BAD_IF_FLAGS -26 // ifFlags > 3 #define PI_BAD_IF_FLAGS -26 // ifFlags > 4
.br .br
#define PI_BAD_CHANNEL -27 // DMA channel not 0-14 #define PI_BAD_CHANNEL -27 // DMA channel not 0-14
.br .br

View File

@ -6292,10 +6292,13 @@ static void * pthAlertThread(void *x)
{ {
stickInited = 1; stickInited = 1;
numSamples = 0; numSamples = 0;
if (!(gpioCfg.ifFlags & PI_DISABLE_ALERT))
{
pthAlertRunning = PI_THREAD_RUNNING; pthAlertRunning = PI_THREAD_RUNNING;
} }
} }
} }
}
if (oldSlot == newSlot) moreToDo = 0; else moreToDo = 1; if (oldSlot == newSlot) moreToDo = 0; else moreToDo = 1;
@ -8140,10 +8143,13 @@ int initInitialise(void)
if (pthread_attr_setstacksize(&pthAttr, STACK_SIZE)) if (pthread_attr_setstacksize(&pthAttr, STACK_SIZE))
SOFT_ERROR(PI_INIT_FAILED, "pthread_attr_setstacksize failed (%m)"); SOFT_ERROR(PI_INIT_FAILED, "pthread_attr_setstacksize failed (%m)");
if (!(gpioCfg.ifFlags & PI_DISABLE_ALERT))
{
if (pthread_create(&pthAlert, &pthAttr, pthAlertThread, &i)) if (pthread_create(&pthAlert, &pthAttr, pthAlertThread, &i))
SOFT_ERROR(PI_INIT_FAILED, "pthread_create alert failed (%m)"); SOFT_ERROR(PI_INIT_FAILED, "pthread_create alert failed (%m)");
pthAlertRunning = PI_THREAD_STARTED; pthAlertRunning = PI_THREAD_STARTED;
}
if (!(gpioCfg.ifFlags & PI_DISABLE_FIFO_IF)) if (!(gpioCfg.ifFlags & PI_DISABLE_FIFO_IF))
{ {
@ -8471,9 +8477,13 @@ int gpioInitialise(void)
runState = PI_RUNNING; runState = PI_RUNNING;
if (!(gpioCfg.ifFlags & PI_DISABLE_ALERT))
{
while (pthAlertRunning != PI_THREAD_RUNNING) myGpioDelay(1000); while (pthAlertRunning != PI_THREAD_RUNNING) myGpioDelay(1000);
} }
}
return status; return status;
} }
@ -13377,7 +13387,7 @@ int gpioCfgInterfaces(unsigned ifFlags)
CHECK_NOT_INITED; CHECK_NOT_INITED;
if (ifFlags > 7) if (ifFlags > 15)
SOFT_ERROR(PI_BAD_IF_FLAGS, "bad ifFlags (%X)", ifFlags); SOFT_ERROR(PI_BAD_IF_FLAGS, "bad ifFlags (%X)", ifFlags);
gpioCfg.ifFlags = ifFlags; gpioCfg.ifFlags = ifFlags;

View File

@ -846,6 +846,7 @@ typedef void *(gpioThreadFunc_t) (void *);
#define PI_DISABLE_FIFO_IF 1 #define PI_DISABLE_FIFO_IF 1
#define PI_DISABLE_SOCK_IF 2 #define PI_DISABLE_SOCK_IF 2
#define PI_LOCALHOST_SOCK_IF 4 #define PI_LOCALHOST_SOCK_IF 4
#define PI_DISABLE_ALERT 8
/* memAllocMode */ /* memAllocMode */
@ -6196,7 +6197,7 @@ after this command is issued.
#define PI_BAD_PATHNAME -23 // can't open pathname #define PI_BAD_PATHNAME -23 // can't open pathname
#define PI_NO_HANDLE -24 // no handle available #define PI_NO_HANDLE -24 // no handle available
#define PI_BAD_HANDLE -25 // unknown handle #define PI_BAD_HANDLE -25 // unknown handle
#define PI_BAD_IF_FLAGS -26 // ifFlags > 3 #define PI_BAD_IF_FLAGS -26 // ifFlags > 4
#define PI_BAD_CHANNEL -27 // DMA channel not 0-14 #define PI_BAD_CHANNEL -27 // DMA channel not 0-14
#define PI_BAD_PRIM_CHANNEL -27 // DMA primary channel not 0-14 #define PI_BAD_PRIM_CHANNEL -27 // DMA primary channel not 0-14
#define PI_BAD_SOCKET_PORT -28 // socket port not 1024-32000 #define PI_BAD_SOCKET_PORT -28 // socket port not 1024-32000

View File

@ -714,7 +714,7 @@ _errors=[
[_PI_BAD_PATHNAME , "can't open pathname"], [_PI_BAD_PATHNAME , "can't open pathname"],
[PI_NO_HANDLE , "no handle available"], [PI_NO_HANDLE , "no handle available"],
[PI_BAD_HANDLE , "unknown handle"], [PI_BAD_HANDLE , "unknown handle"],
[_PI_BAD_IF_FLAGS , "ifFlags > 3"], [_PI_BAD_IF_FLAGS , "ifFlags > 4"],
[_PI_BAD_CHANNEL , "DMA channel not 0-14"], [_PI_BAD_CHANNEL , "DMA channel not 0-14"],
[_PI_BAD_SOCKET_PORT , "socket port not 1024-30000"], [_PI_BAD_SOCKET_PORT , "socket port not 1024-30000"],
[_PI_BAD_FIFO_COMMAND , "unknown fifo command"], [_PI_BAD_FIFO_COMMAND , "unknown fifo command"],

View File

@ -103,6 +103,7 @@ void usage()
" -k, disable socket interface, default enabled\n" \ " -k, disable socket interface, default enabled\n" \
" -l, localhost socket only default local+remote\n" \ " -l, localhost socket only default local+remote\n" \
" -n IP addr, allow address, name or dotted, default allow all\n" \ " -n IP addr, allow address, name or dotted, default allow all\n" \
" -m, disable alerts default enabled\n" \
" -p value, socket port, 1024-32000, default 8888\n" \ " -p value, socket port, 1024-32000, default 8888\n" \
" -s value, sample rate, 1, 2, 4, 5, 8, or 10, default 5\n" \ " -s value, sample rate, 1, 2, 4, 5, 8, or 10, default 5\n" \
" -t value, clock peripheral, 0=PWM 1=PCM, default PCM\n" \ " -t value, clock peripheral, 0=PWM 1=PCM, default PCM\n" \
@ -162,7 +163,7 @@ static void initOpts(int argc, char *argv[])
uint32_t addr; uint32_t addr;
int64_t mask; int64_t mask;
while ((opt = getopt(argc, argv, "a:b:c:d:e:fgkln:p:s:t:x:vV")) != -1) while ((opt = getopt(argc, argv, "a:b:c:d:e:fgkln:mp:s:t:x:vV")) != -1)
{ {
switch (opt) switch (opt)
{ {
@ -217,6 +218,10 @@ static void initOpts(int argc, char *argv[])
ifFlags |= PI_LOCALHOST_SOCK_IF; ifFlags |= PI_LOCALHOST_SOCK_IF;
break; break;
case 'm':
ifFlags |= PI_DISABLE_ALERT;
break;
case 'n': case 'n':
addr = checkAddr(optarg); addr = checkAddr(optarg);
if (addr && (numSockNetAddr<MAX_CONNECT_ADDRESSES)) if (addr && (numSockNetAddr<MAX_CONNECT_ADDRESSES))