mirror of
https://git.savannah.nongnu.org/git/lwip.git
synced 2025-08-05 14:04:38 +08:00
Try to implement platform-independent keypressed()
This commit is contained in:
parent
c35dd079ee
commit
a0d7b01186
@ -86,6 +86,16 @@
|
|||||||
|
|
||||||
#include "default_netif.h"
|
#include "default_netif.h"
|
||||||
|
|
||||||
|
static u8_t
|
||||||
|
keypressed(void)
|
||||||
|
{
|
||||||
|
struct timeval tv = { 0L, 0L };
|
||||||
|
fd_set fds;
|
||||||
|
FD_ZERO(&fds);
|
||||||
|
FD_SET(0, &fds);
|
||||||
|
return select(1, &fds, NULL, NULL, &tv);
|
||||||
|
}
|
||||||
|
|
||||||
#if NO_SYS
|
#if NO_SYS
|
||||||
/* ... then we need information about the timer intervals: */
|
/* ... then we need information about the timer intervals: */
|
||||||
#include "lwip/ip4_frag.h"
|
#include "lwip/ip4_frag.h"
|
||||||
@ -107,10 +117,6 @@
|
|||||||
/* include the port-dependent configuration */
|
/* include the port-dependent configuration */
|
||||||
#include "lwipcfg.h"
|
#include "lwipcfg.h"
|
||||||
|
|
||||||
#ifndef LWIP_EXAMPLE_APP_ABORT
|
|
||||||
#define LWIP_EXAMPLE_APP_ABORT() 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/** Define this to 1 to enable a port-specific ethernet interface as default interface. */
|
/** Define this to 1 to enable a port-specific ethernet interface as default interface. */
|
||||||
#ifndef USE_DEFAULT_ETH_NETIF
|
#ifndef USE_DEFAULT_ETH_NETIF
|
||||||
#define USE_DEFAULT_ETH_NETIF 1
|
#define USE_DEFAULT_ETH_NETIF 1
|
||||||
@ -657,7 +663,7 @@ main_loop(void)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* MAIN LOOP for driver update (and timers if NO_SYS) */
|
/* MAIN LOOP for driver update (and timers if NO_SYS) */
|
||||||
while (!LWIP_EXAMPLE_APP_ABORT()) {
|
while (!keypressed()) {
|
||||||
#if NO_SYS
|
#if NO_SYS
|
||||||
/* handle timers (already done in tcpip.c when NO_SYS=0) */
|
/* handle timers (already done in tcpip.c when NO_SYS=0) */
|
||||||
sys_check_timeouts();
|
sys_check_timeouts();
|
||||||
|
@ -74,8 +74,4 @@ void sys_arch_netconn_sem_free(void);
|
|||||||
#define LWIP_NETCONN_THREAD_SEM_ALLOC() sys_arch_netconn_sem_alloc()
|
#define LWIP_NETCONN_THREAD_SEM_ALLOC() sys_arch_netconn_sem_alloc()
|
||||||
#define LWIP_NETCONN_THREAD_SEM_FREE() sys_arch_netconn_sem_free()
|
#define LWIP_NETCONN_THREAD_SEM_FREE() sys_arch_netconn_sem_free()
|
||||||
|
|
||||||
#define LWIP_EXAMPLE_APP_ABORT() lwip_win32_keypressed()
|
|
||||||
int lwip_win32_keypressed(void);
|
|
||||||
|
|
||||||
#endif /* LWIP_ARCH_SYS_ARCH_H */
|
#endif /* LWIP_ARCH_SYS_ARCH_H */
|
||||||
|
|
||||||
|
@ -732,28 +732,6 @@ sys_arch_netconn_sem_free(void)
|
|||||||
|
|
||||||
#endif /* !NO_SYS */
|
#endif /* !NO_SYS */
|
||||||
|
|
||||||
/* get keyboard state to terminate the debug app on any kbhit event using win32 API */
|
|
||||||
int
|
|
||||||
lwip_win32_keypressed(void)
|
|
||||||
{
|
|
||||||
INPUT_RECORD rec;
|
|
||||||
DWORD num = 0;
|
|
||||||
HANDLE h = GetStdHandle(STD_INPUT_HANDLE);
|
|
||||||
BOOL ret = PeekConsoleInput(h, &rec, 1, &num);
|
|
||||||
if (ret && num) {
|
|
||||||
ReadConsoleInput(h, &rec, 1, &num);
|
|
||||||
if (rec.EventType == KEY_EVENT) {
|
|
||||||
if (rec.Event.KeyEvent.bKeyDown) {
|
|
||||||
/* not a special key? */
|
|
||||||
if (rec.Event.KeyEvent.uChar.AsciiChar != 0) {
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
|
|
||||||
/* This is an example implementation for LWIP_PLATFORM_DIAG:
|
/* This is an example implementation for LWIP_PLATFORM_DIAG:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user