configs/lpcxpresso-lpc54628: Modify the TWM configurations to properly inject keyboard data. This way, in the case of multiple NxTERMs, only the NxTerm at the top of the heiararchy gets the keyboard input. Otherwise, it is not possible to use multiple NxTerms with each the keyboard input going to a different NxTerm window.

This commit is contained in:
Gregory Nutt 2019-05-26 13:17:56 -06:00
parent 788f77a9af
commit a82e8db811
3 changed files with 22 additions and 20 deletions

View File

@ -538,30 +538,30 @@ Configurations
just some issues/topics unique to the LPCXpresso-LPC54628 and/or this
configuration.
1. The NxTerm application is available as the "NuttShell" entry in the
Main Menu. When pressed, this will bring up an NSH session in a
Twm4Nx window. There is an issue, however: The NxTerm gets its
input from the console (/dev/console). Since the NxTerm keyboard
input comes directly from /dev/console, it goes to whichever task has
an outstanding read on the console device. That works well if there
is only a single NxTerm window. But if there are multiple NxTerm
windows, then it is anyone's guess which will receive the keyboard
input. That does not work well in such cases.
2. There is a responsive-ness issue the the FT5x06 touchscreen controller.
1. There is a responsive-ness issue the the FT5x06 touchscreen controller.
The pin selected by the board designers will not support interrupts.
Therefore, a fallback polled mode is use. This polled mode has
significant inherent delays that effect the user experience when
touching buttons or grabbing and moving objects on the desktop.
3. There is no touchscreen calibration yet. But fortunately, the FT5x06
has the same resolution and orientation as the LCD and so can be used
without any calibration. There are still inaccuracies due to the
lack of calibration, however. These show up especially along the
very top of the display where it can be very difficult to touch
buttons or grab'n'move object.
2. The NxTerm application is available as the "NuttShell" entry in the
Main Menu. When pressed, this will bring up an NSH session in a
Twm4Nx window. There is a performance issue, however, due to another
issue with the polled mode in the ft5x06 driver. When that driver
runs in polled mode, it samples the touch data at a high rate. Each
sample is sufficient to wake up the Twm4Nx poll() with POLLIN data
availability. But when Twm4Nx tries to read the data, it falls under
the FT5x06.c there threshold and no data is returned.
4. Color artifacts: In the CLASSIC configuration, the background of the
The actual delay various dynamically from 50 to 200 millisecond
intervals.
A possible solution might be to beef up the POLLIN notification logic
in FT5x06.c to avoid these false poll() wake-ups. That, however, is
non-trivial since it would have to support the polled as well as the
non-polled mode.
3. Color artifacts: In the CLASSIC configuration, the background of the
cental NX image is a slightly different hue of blue. For the
CONTEMPORARY configuration, the toolbar buttons are supposed to be
borderless. There is however, a fine border around each toolbar

View File

@ -65,6 +65,7 @@ CONFIG_NXTERM=y
CONFIG_NXTERM_CACHESIZE=32
CONFIG_NXTERM_CURSORCHAR=95
CONFIG_NXTERM_MXCHARS=325
CONFIG_NXTERM_NXKBDIN=y
CONFIG_NXTK_BORDERCOLOR1=0x5cb7
CONFIG_NXTK_BORDERCOLOR2=0x21c9
CONFIG_NXTK_BORDERCOLOR3=0xffdf
@ -99,7 +100,7 @@ CONFIG_SYMTAB_ORDEREDBYNAME=y
CONFIG_TASK_NAME_SIZE=0
CONFIG_TWM4NX_ARCHINIT=y
CONFIG_TWM4NX_ICONMGR_NCOLUMNS=2
CONFIG_TWM4NX_NOKEYBOARD=y
CONFIG_TWM4NX_KEYBOARD_DEVPATH="/dev/console"
CONFIG_TWM4NX_TOUCHSCREEN=y
CONFIG_USART0_SERIAL_CONSOLE=y
CONFIG_USER_ENTRYPOINT="twm4nx_main"

View File

@ -65,6 +65,7 @@ CONFIG_NXTERM=y
CONFIG_NXTERM_CACHESIZE=32
CONFIG_NXTERM_CURSORCHAR=95
CONFIG_NXTERM_MXCHARS=325
CONFIG_NXTERM_NXKBDIN=y
CONFIG_NXTK_BORDERCOLOR1=0x5cb7
CONFIG_NXTK_BORDERCOLOR2=0x21c9
CONFIG_NXTK_BORDERCOLOR3=0xffdf
@ -101,7 +102,7 @@ CONFIG_TASK_NAME_SIZE=0
CONFIG_TWM4NX_ARCHINIT=y
CONFIG_TWM4NX_CONTEMPORARY=y
CONFIG_TWM4NX_ICONMGR_NCOLUMNS=2
CONFIG_TWM4NX_NOKEYBOARD=y
CONFIG_TWM4NX_KEYBOARD_DEVPATH="/dev/console"
CONFIG_TWM4NX_TOUCHSCREEN=y
CONFIG_USART0_SERIAL_CONSOLE=y
CONFIG_USER_ENTRYPOINT="twm4nx_main"