forked from Archive/PX4-Autopilot
NX console driver is code complete but untested
git-svn-id: https://nuttx.svn.sourceforge.net/svnroot/nuttx/trunk@4529 7fd9a85b-ad96-42d3-883c-3090e2eb8679
This commit is contained in:
parent
f5211035ab
commit
7ce2f90034
|
@ -44,7 +44,8 @@
|
||||||
<i>1.3.2 <a href="#nx1">NX (NXSU and NXMU)</a></i><br>
|
<i>1.3.2 <a href="#nx1">NX (NXSU and NXMU)</a></i><br>
|
||||||
<i>1.3.3 <a href="#nxtk1">NX Tool Kit (<code>NXTK</code>)</a></i><br>
|
<i>1.3.3 <a href="#nxtk1">NX Tool Kit (<code>NXTK</code>)</a></i><br>
|
||||||
<i>1.3.4 <a href="#nxfonts1">NX Fonts Support (<code>NXFONTS</code>)</a></i><br>
|
<i>1.3.4 <a href="#nxfonts1">NX Fonts Support (<code>NXFONTS</code>)</a></i><br>
|
||||||
<i>1.3.5 <a href="#nxwidgets1">NX Widgets (<code>NxWidgets</code>)</a></i>
|
<i>1.3.5 <a href="#nxwidgets1">NX Widgets (<code>NxWidgets</code>)</a></i><br>
|
||||||
|
<i>1.3.6 <a href="#nxconsole1">NX Console Driver (<code>NxConsole</code>)</a></i>
|
||||||
</ul>
|
</ul>
|
||||||
</p>
|
</p>
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -189,7 +190,8 @@
|
||||||
<i><b>B.3</b> <a href="#nxconfig">NX Configuration Settings</a></i><br>
|
<i><b>B.3</b> <a href="#nxconfig">NX Configuration Settings</a></i><br>
|
||||||
<i><b>B.4</b> <a href="#nxmuconfig">NX Multi-User (Only) Configuration Settings</a></i><br>
|
<i><b>B.4</b> <a href="#nxmuconfig">NX Multi-User (Only) Configuration Settings</a></i><br>
|
||||||
<i><b>B.5</b> <a href="#nxtkconfig">NXTK Configuration Settings</a></i><br>
|
<i><b>B.5</b> <a href="#nxtkconfig">NXTK Configuration Settings</a></i><br>
|
||||||
<i><b>B.6</b> <a href="#nxfpmtsconfig">NXFONTS Configuration Settings</a></i>
|
<i><b>B.6</b> <a href="#nxfpmtsconfig">NXFONTS Configuration Settings</a></i><br>
|
||||||
|
<i><b>B.7</b> <a href="#nxconsoleconfig">NxConsole Configuration Settings</a></i>
|
||||||
</ul>
|
</ul>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
|
@ -401,6 +403,13 @@
|
||||||
NxWidgets is built on top of the core NuttX graphics subsystem, but is not a part of the core graphics subystems.
|
NxWidgets is built on top of the core NuttX graphics subsystem, but is not a part of the core graphics subystems.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
<h3>1.3.6 <a name="nxconsole1">NX Console Driver (<code>NxConsole</code>)</a></h3>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
NxConsole is a write-only character device (not shown) that is built on top of an NX window.
|
||||||
|
This character device can be used to provide <code>stdout</code> and <code>stderr</code> and, hence, can provide the output side of NuttX console.
|
||||||
|
</p>
|
||||||
|
|
||||||
<table width ="100%">
|
<table width ="100%">
|
||||||
<tr bgcolor="#e4e4e4">
|
<tr bgcolor="#e4e4e4">
|
||||||
<td>
|
<td>
|
||||||
|
@ -3177,13 +3186,16 @@ int nxf_convert_32bpp(FAR uint32_t *dest, uint16_t height,
|
||||||
|
|
||||||
<dt><code>graphics/nxtk</code>
|
<dt><code>graphics/nxtk</code>
|
||||||
<dd>This is where the NXTOOLKIT implementation resides.
|
<dd>This is where the NXTOOLKIT implementation resides.
|
||||||
This toolkit is built on top of NX and works with either the single-user or
|
This toolkit is built on top of NX and works with either the single-user or multi-user NX version.
|
||||||
multi-user NX version.
|
|
||||||
See <code>include/nuttx/nx/nxtk.h</code>.
|
See <code>include/nuttx/nx/nxtk.h</code>.
|
||||||
|
|
||||||
<dt><code>nuttx/../nxwidgets</code>
|
<dt><code>nuttx/../nxwidgets</code>
|
||||||
<dd>The <a href="NxWidgets.html">NxWidgets</a> code is provided as a separate package located outside of the
|
<dd>The <a href="NxWidgets.html">NxWidgets</a> code is provided as a separate package located outside of the
|
||||||
NuttX source tree (probably at this location).
|
NuttX source tree (probably at this location).
|
||||||
|
|
||||||
|
<dt><code>graphics/nxconsole</code>
|
||||||
|
<dd>The NxConsole driver is built on top of NX and works with either the single-user or multi-user NX version.
|
||||||
|
See <code>include/nuttx/nx/nxconsole.h</code>.
|
||||||
</dl>
|
</dl>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
@ -3247,7 +3259,7 @@ int nxf_convert_32bpp(FAR uint32_t *dest, uint16_t height,
|
||||||
<dd>Configures NX in multi-user mode.
|
<dd>Configures NX in multi-user mode.
|
||||||
<dt><code>CONFIG_NX_BLOCKING</code>
|
<dt><code>CONFIG_NX_BLOCKING</code>
|
||||||
<dd>Open the client message queues in blocking mode. In this case,
|
<dd>Open the client message queues in blocking mode. In this case,
|
||||||
<dt><code>nx_eventhandler()</code> will not return until a message is received and processed.
|
<code>nx_eventhandler()</code> will not return until a message is received and processed.
|
||||||
<dt><code>CONFIG_NX_MXSERVERMSGS</code> and <code>CONFIG_NX_MXCLIENTMSGS</code>
|
<dt><code>CONFIG_NX_MXSERVERMSGS</code> and <code>CONFIG_NX_MXCLIENTMSGS</code>
|
||||||
<dd>Specifies the maximum number of messages that can fit in
|
<dd>Specifies the maximum number of messages that can fit in
|
||||||
the message queues. No additional resources are allocated, but
|
the message queues. No additional resources are allocated, but
|
||||||
|
@ -3337,6 +3349,37 @@ int nxf_convert_32bpp(FAR uint32_t *dest, uint16_t height,
|
||||||
</dl>
|
</dl>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
<h2>B.7 <a name="nxconsoleconfig">NxConsole Configuration Settings</a></h2>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<dl>
|
||||||
|
<dt><code>CONFIG_NXCONSOLE_BPP</code>:
|
||||||
|
<dd>Currently, NxConsole supports only a single pixel depth.
|
||||||
|
This configuration setting must be provided to support that single pixel depth.
|
||||||
|
Default: The smallest enabled pixel depth. (see <code>CONFIG_NX_DISABLE_*BPP</code>)
|
||||||
|
<dt><code>CONFIG_NXCONSOLE_NOGETRUN</code>:
|
||||||
|
<dd>NxConsole needs to know if it can read from the LCD or not.
|
||||||
|
If reading from the LCD is supported, then NxConsole can do more efficient scrolling.
|
||||||
|
Default: Supported
|
||||||
|
<dt><code>CONFIG_NXCONSOLE_MXCHARS</code>:
|
||||||
|
<dd>NxConsole needs to remember every character written to the console so that it can redraw the window.
|
||||||
|
This setting determines the size of some internal memory allocations used to hold the character data.
|
||||||
|
Default: 128.
|
||||||
|
<dt><code>CONFIG_NXCONSOLE_FONTCACHE</code>:
|
||||||
|
<dd>If this setting is defined, then caching of fonts will be supported by NxConsole.
|
||||||
|
Each font must be rendered from the tiny font storage format to the full display size and pixel depth.
|
||||||
|
If this setting is defined, then the more recently used font glyphs will be retained in a cache of size <code>CONFIG_NXCONSOLE_CACHESIZE</code>.
|
||||||
|
Default: No font caching.
|
||||||
|
<dt><code>CONFIG_NXCONSOLE_CACHESIZE</code>:
|
||||||
|
<dd>If <code>CONFIG_NXCONSOLE_FONTCACHE</code>, then this setting will control the size of the font cache (in number of glyphs). Default: 16.
|
||||||
|
<dt><code>CONFIG_NXCONSOLE_LINESEPARATION</code>:
|
||||||
|
<dd>This the space (in rows) between each row of test. Default: 2
|
||||||
|
<dt><code>CONFIG_NXCONSOLE_NOWRAP</code>:
|
||||||
|
<dd>By default, lines will wrap when the test reaches the right hand side of the window.
|
||||||
|
This setting can be defining to change this behavior so that the text is simply truncated until a new line is encountered.
|
||||||
|
</dl>
|
||||||
|
</ul>
|
||||||
|
|
||||||
<table width ="100%">
|
<table width ="100%">
|
||||||
<tr bgcolor="#e4e4e4">
|
<tr bgcolor="#e4e4e4">
|
||||||
<td>
|
<td>
|
||||||
|
@ -3457,10 +3500,10 @@ genfontsources:
|
||||||
</p>
|
</p>
|
||||||
<ul><pre>
|
<ul><pre>
|
||||||
ifeq ($(CONFIG_NXFONT_SANS23X27),y)
|
ifeq ($(CONFIG_NXFONT_SANS23X27),y)
|
||||||
NXFSET_CSRCS += nxfonts_bitmaps_sans23x27.c
|
NXFSET_CSRCS += nxfonts_bitmaps_sans23x27.c
|
||||||
endif
|
endif
|
||||||
ifeq ($(CONFIG_NXFONT_MYFONT),y)
|
ifeq ($(CONFIG_NXFONT_MYFONT),y)
|
||||||
NXFSET_CSRCS += nxfonts_bitmaps_myfont.c
|
NXFSET_CSRCS += nxfonts_bitmaps_myfont.c
|
||||||
endif
|
endif
|
||||||
</pre></ul>
|
</pre></ul>
|
||||||
</li>
|
</li>
|
||||||
|
|
|
@ -364,6 +364,20 @@ nx11
|
||||||
CONFG_NX_MULTIUSER=y
|
CONFG_NX_MULTIUSER=y
|
||||||
CONFIG_DISABLE_MQUEUE=n
|
CONFIG_DISABLE_MQUEUE=n
|
||||||
|
|
||||||
|
examples/nxconsole
|
||||||
|
------------------
|
||||||
|
This configuration is also set up to use the examples/nxconsole
|
||||||
|
test instead of examples/nx. Simply comment out the following
|
||||||
|
in the appconfig file:
|
||||||
|
|
||||||
|
-CONFIGURED_APPS += examples/nx
|
||||||
|
+#CONFIGURED_APPS += examples/nx
|
||||||
|
|
||||||
|
And uncomment the following:
|
||||||
|
|
||||||
|
-#CONFIGURED_APPS += examples/nxconsole
|
||||||
|
+CONFIGURED_APPS += examples/nxconsole
|
||||||
|
|
||||||
ostest
|
ostest
|
||||||
|
|
||||||
Description
|
Description
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
############################################################################
|
############################################################################
|
||||||
# configs/sim/nx/appconfig
|
# configs/sim/nx/appconfig
|
||||||
#
|
#
|
||||||
# Copyright (C) 2011 Gregory Nutt. All rights reserved.
|
# Copyright (C) 2011-2012 Gregory Nutt. All rights reserved.
|
||||||
# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
|
# Author: Gregory Nutt <gnutt@nuttx.org>
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
# modification, are permitted provided that the following conditions
|
# modification, are permitted provided that the following conditions
|
||||||
|
@ -34,6 +34,9 @@
|
||||||
############################################################################
|
############################################################################
|
||||||
|
|
||||||
# Path to example in apps/examples containing the user_start entry point
|
# Path to example in apps/examples containing the user_start entry point
|
||||||
|
# Various NX tests can be supported, simply comment-out examples/nx and
|
||||||
|
# uncomment the test you wish to perform
|
||||||
|
|
||||||
CONFIGURED_APPS += examples/nx
|
CONFIGURED_APPS += examples/nx
|
||||||
|
#CONFIGURED_APPS += examples/nxconsole
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
############################################################################
|
############################################################################
|
||||||
# sim/nx/defconfig
|
# sim/nx/defconfig
|
||||||
#
|
#
|
||||||
# Copyright (C) 2008-2010 Gregory Nutt. All rights reserved.
|
# Copyright (C) 2008-2010, 2012 Gregory Nutt. All rights reserved.
|
||||||
# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
|
# Author: Gregory Nutt <gnutt@nuttx.org>
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
# modification, are permitted provided that the following conditions
|
# modification, are permitted provided that the following conditions
|
||||||
|
@ -51,6 +51,7 @@ CONFIG_ARCH_BOARD_SIM=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# Simulated framebuffer configuration
|
# Simulated framebuffer configuration
|
||||||
|
#
|
||||||
CONFIG_SIM_X11FB=n
|
CONFIG_SIM_X11FB=n
|
||||||
CONFIG_SIM_FBWIDTH=480
|
CONFIG_SIM_FBWIDTH=480
|
||||||
CONFIG_SIM_FBHEIGHT=240
|
CONFIG_SIM_FBHEIGHT=240
|
||||||
|
@ -269,6 +270,7 @@ CONFIG_PREALLOC_TIMERS=8
|
||||||
|
|
||||||
#
|
#
|
||||||
# Framebuffer driver options
|
# Framebuffer driver options
|
||||||
|
#
|
||||||
CONFIG_FB_CMAP=n
|
CONFIG_FB_CMAP=n
|
||||||
CONFIG_FB_HWCURSOR=n
|
CONFIG_FB_HWCURSOR=n
|
||||||
CONFIG_FB_HWCURSORIMAGE=n
|
CONFIG_FB_HWCURSORIMAGE=n
|
||||||
|
@ -277,14 +279,17 @@ CONFIG_FB_HWCURSORIMAGE=n
|
||||||
|
|
||||||
#
|
#
|
||||||
# FAT filesystem configuration
|
# FAT filesystem configuration
|
||||||
|
#
|
||||||
# CONFIG_FS_FAT - Enable FAT filesystem support
|
# CONFIG_FS_FAT - Enable FAT filesystem support
|
||||||
# CONFIG_FAT_SECTORSIZE - Max supported sector size
|
# CONFIG_FAT_SECTORSIZE - Max supported sector size
|
||||||
# CONFIG_FS_ROMFS - Enable ROMFS filesystem support
|
# CONFIG_FS_ROMFS - Enable ROMFS filesystem support
|
||||||
|
#
|
||||||
CONFIG_FS_FAT=n
|
CONFIG_FS_FAT=n
|
||||||
CONFIG_FS_ROMFS=n
|
CONFIG_FS_ROMFS=n
|
||||||
|
|
||||||
#
|
#
|
||||||
# TCP/IP and UDP support via uIP
|
# TCP/IP and UDP support via uIP
|
||||||
|
#
|
||||||
# CONFIG_NET - Enable or disable all network features
|
# CONFIG_NET - Enable or disable all network features
|
||||||
# CONFIG_NET_IPv6 - Build in support for IPv6
|
# CONFIG_NET_IPv6 - Build in support for IPv6
|
||||||
# CONFIG_NSOCKET_DESCRIPTORS - Maximum number of socket descriptors per task/thread.
|
# CONFIG_NSOCKET_DESCRIPTORS - Maximum number of socket descriptors per task/thread.
|
||||||
|
@ -331,8 +336,10 @@ CONFIG_NET_BROADCAST=n
|
||||||
|
|
||||||
#
|
#
|
||||||
# UIP Network Utilities
|
# UIP Network Utilities
|
||||||
|
#
|
||||||
# CONFIG_NET_DHCP_LIGHT - Reduces size of DHCP
|
# CONFIG_NET_DHCP_LIGHT - Reduces size of DHCP
|
||||||
# CONFIG_NET_RESOLV_ENTRIES - Number of resolver entries
|
# CONFIG_NET_RESOLV_ENTRIES - Number of resolver entries
|
||||||
|
#
|
||||||
CONFIG_NET_DHCP_LIGHT=n
|
CONFIG_NET_DHCP_LIGHT=n
|
||||||
CONFIG_NET_RESOLV_ENTRIES=4
|
CONFIG_NET_RESOLV_ENTRIES=4
|
||||||
|
|
||||||
|
@ -414,8 +421,48 @@ CONFIG_NX_BLOCKING=y
|
||||||
CONFIG_NX_MXSERVERMSGS=32
|
CONFIG_NX_MXSERVERMSGS=32
|
||||||
CONFIG_NX_MXCLIENTMSGS=16
|
CONFIG_NX_MXCLIENTMSGS=16
|
||||||
|
|
||||||
|
#
|
||||||
|
# NxConsole Configuration Settings:
|
||||||
|
#
|
||||||
|
# CONFIG_NXCONSOLE_BPP
|
||||||
|
# Currently, NxConsole supports only a single pixel depth. This
|
||||||
|
# configuration setting must be provided to support that single pixel depth.
|
||||||
|
# Default: The smallest enabled pixel depth. (see CONFIG_NX_DISABLE_*BPP)
|
||||||
|
# CONFIG_NXCONSOLE_NOGETRUN
|
||||||
|
# NxConsole needs to know if it can read from the LCD or not. If reading
|
||||||
|
# from the LCD is supported, then NxConsole can do more efficient
|
||||||
|
# scrolling. Default: Supported
|
||||||
|
# CONFIG_NXCONSOLE_MXCHARS
|
||||||
|
# NxConsole needs to remember every character written to the console so
|
||||||
|
# that it can redraw the window. This setting determines the size of some
|
||||||
|
# internal memory allocations used to hold the character data. Default: 128.
|
||||||
|
# CONFIG_NXCONSOLE_FONTCACHE
|
||||||
|
# If this setting is defined, then caching of fonts will be supported by
|
||||||
|
# NxConsole. Each font must be rendered from the tiny font storage format
|
||||||
|
# to the full display size and pixel depth. If this setting is defined, then
|
||||||
|
# the more recently used font glyphs will be retained in a cache of size
|
||||||
|
# CONFIG_NXCONSOLE_CACHESIZE. Default: No font caching.
|
||||||
|
# CONFIG_NXCONSOLE_CACHESIZE
|
||||||
|
# If CONFIG_NXCONSOLE_FONTCACHE, then this setting will control the size
|
||||||
|
# of the font cache (in number of glyphs). Default: 16.
|
||||||
|
# CONFIG_NXCONSOLE_LINESEPARATION
|
||||||
|
# This the space (in rows) between each row of test. Default: 2
|
||||||
|
# CONFIG_NXCONSOLE_NOWRAP
|
||||||
|
# By default, lines will wrap when the test reaches the right hand side
|
||||||
|
# of the window. This setting can be defining to change this behavior so
|
||||||
|
# that the text is simply truncated until a new line is encountered.
|
||||||
|
#
|
||||||
|
CONFIG_NXCONSOLE_BPP=8
|
||||||
|
# CONFIG_NXCONSOLE_NOGETRUN
|
||||||
|
# CONFIG_NXCONSOLE_MXCHARS
|
||||||
|
# CONFIG_NXCONSOLE_FONTCACHE
|
||||||
|
# CONFIG_NXCONSOLE_CACHESIZE
|
||||||
|
# CONFIG_NXCONSOLE_LINESEPARATION
|
||||||
|
# CONFIG_NXCONSOLE_NOWRAP
|
||||||
|
|
||||||
#
|
#
|
||||||
# Settings for examples/uip
|
# Settings for examples/uip
|
||||||
|
#
|
||||||
CONFIG_EXAMPLE_UIP_IPADDR=(192<<24|168<<16|0<<8|128)
|
CONFIG_EXAMPLE_UIP_IPADDR=(192<<24|168<<16|0<<8|128)
|
||||||
CONFIG_EXAMPLE_UIP_DRIPADDR=(192<<24|168<<16|0<<8|1)
|
CONFIG_EXAMPLE_UIP_DRIPADDR=(192<<24|168<<16|0<<8|1)
|
||||||
CONFIG_EXAMPLE_UIP_NETMASK=(255<<24|255<<16|255<<8|0)
|
CONFIG_EXAMPLE_UIP_NETMASK=(255<<24|255<<16|255<<8|0)
|
||||||
|
@ -423,6 +470,7 @@ CONFIG_EXAMPLE_UIP_DHCPC=n
|
||||||
|
|
||||||
#
|
#
|
||||||
# Settings for examples/nettest
|
# Settings for examples/nettest
|
||||||
|
#
|
||||||
CONFIG_EXAMPLE_NETTEST_SERVER=n
|
CONFIG_EXAMPLE_NETTEST_SERVER=n
|
||||||
CONFIG_EXAMPLE_NETTEST_PERFORMANCE=n
|
CONFIG_EXAMPLE_NETTEST_PERFORMANCE=n
|
||||||
CONFIG_EXAMPLE_NETTEST_NOMAC=n
|
CONFIG_EXAMPLE_NETTEST_NOMAC=n
|
||||||
|
@ -433,6 +481,7 @@ CONFIG_EXAMPLE_NETTEST_CLIENTIP=(192<<24|168<<16|0<<8|106)
|
||||||
|
|
||||||
#
|
#
|
||||||
# Settings for examples/ostest
|
# Settings for examples/ostest
|
||||||
|
#
|
||||||
CONFIG_EXAMPLES_OSTEST_LOOPS=100
|
CONFIG_EXAMPLES_OSTEST_LOOPS=100
|
||||||
CONFIG_EXAMPLES_OSTEST_STACKSIZE=8192
|
CONFIG_EXAMPLES_OSTEST_STACKSIZE=8192
|
||||||
|
|
||||||
|
@ -466,6 +515,7 @@ CONFIG_EXAMPLES_OSTEST_STACKSIZE=8192
|
||||||
# CONFIG_NSH_FATSECTSIZE - FAT FS sector size
|
# CONFIG_NSH_FATSECTSIZE - FAT FS sector size
|
||||||
# CONFIG_NSH_FATNSECTORS - FAT FS number of sectors
|
# CONFIG_NSH_FATNSECTORS - FAT FS number of sectors
|
||||||
# CONFIG_NSH_FATMOUNTPT - FAT FS mountpoint
|
# CONFIG_NSH_FATMOUNTPT - FAT FS mountpoint
|
||||||
|
#
|
||||||
CONFIG_NSH_FILEIOSIZE=1024
|
CONFIG_NSH_FILEIOSIZE=1024
|
||||||
CONFIG_NSH_STRERROR=n
|
CONFIG_NSH_STRERROR=n
|
||||||
CONFIG_NSH_LINELEN=80
|
CONFIG_NSH_LINELEN=80
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
############################################################################
|
############################################################################
|
||||||
# configs/sim/nx11/appconfig
|
# configs/sim/nx11/appconfig
|
||||||
#
|
#
|
||||||
# Copyright (C) 2011 Gregory Nutt. All rights reserved.
|
# Copyright (C) 2011-2012 Gregory Nutt. All rights reserved.
|
||||||
# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
|
# Author: Gregory Nutt <gnutt@nuttx.org>
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
# modification, are permitted provided that the following conditions
|
# modification, are permitted provided that the following conditions
|
||||||
|
@ -34,6 +34,8 @@
|
||||||
############################################################################
|
############################################################################
|
||||||
|
|
||||||
# Path to example in apps/examples containing the user_start entry point
|
# Path to example in apps/examples containing the user_start entry point
|
||||||
|
# Various NX tests can be supported, simply comment-out examples/nx and
|
||||||
|
# uncomment the test you wish to perform
|
||||||
|
|
||||||
CONFIGURED_APPS += examples/nx
|
CONFIGURED_APPS += examples/nx
|
||||||
|
#CONFIGURED_APPS += examples/nxconsole
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
############################################################################
|
############################################################################
|
||||||
# sim/nx11/defconfig
|
# sim/nx11/defconfig
|
||||||
#
|
#
|
||||||
# Copyright (C) 2008, 2010-2011 Gregory Nutt. All rights reserved.
|
# Copyright (C) 2008, 2010-2012 Gregory Nutt. All rights reserved.
|
||||||
# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
|
# Author: Gregory Nutt <gnutt@nuttx.org>
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
# modification, are permitted provided that the following conditions
|
# modification, are permitted provided that the following conditions
|
||||||
|
@ -271,6 +271,7 @@ CONFIG_PREALLOC_TIMERS=8
|
||||||
|
|
||||||
#
|
#
|
||||||
# Framebuffer driver options
|
# Framebuffer driver options
|
||||||
|
#
|
||||||
CONFIG_FB_CMAP=y
|
CONFIG_FB_CMAP=y
|
||||||
CONFIG_FB_HWCURSOR=n
|
CONFIG_FB_HWCURSOR=n
|
||||||
CONFIG_FB_HWCURSORIMAGE=n
|
CONFIG_FB_HWCURSORIMAGE=n
|
||||||
|
@ -279,14 +280,17 @@ CONFIG_FB_HWCURSORIMAGE=n
|
||||||
|
|
||||||
#
|
#
|
||||||
# FAT filesystem configuration
|
# FAT filesystem configuration
|
||||||
|
#
|
||||||
# CONFIG_FS_FAT - Enable FAT filesystem support
|
# CONFIG_FS_FAT - Enable FAT filesystem support
|
||||||
# CONFIG_FAT_SECTORSIZE - Max supported sector size
|
# CONFIG_FAT_SECTORSIZE - Max supported sector size
|
||||||
# CONFIG_FS_ROMFS - Enable ROMFS filesystem support
|
# CONFIG_FS_ROMFS - Enable ROMFS filesystem support
|
||||||
|
#
|
||||||
CONFIG_FS_FAT=n
|
CONFIG_FS_FAT=n
|
||||||
CONFIG_FS_ROMFS=n
|
CONFIG_FS_ROMFS=n
|
||||||
|
|
||||||
#
|
#
|
||||||
# TCP/IP and UDP support via uIP
|
# TCP/IP and UDP support via uIP
|
||||||
|
#
|
||||||
# CONFIG_NET - Enable or disable all network features
|
# CONFIG_NET - Enable or disable all network features
|
||||||
# CONFIG_NET_IPv6 - Build in support for IPv6
|
# CONFIG_NET_IPv6 - Build in support for IPv6
|
||||||
# CONFIG_NSOCKET_DESCRIPTORS - Maximum number of socket descriptors per task/thread.
|
# CONFIG_NSOCKET_DESCRIPTORS - Maximum number of socket descriptors per task/thread.
|
||||||
|
@ -333,8 +337,10 @@ CONFIG_NET_BROADCAST=n
|
||||||
|
|
||||||
#
|
#
|
||||||
# UIP Network Utilities
|
# UIP Network Utilities
|
||||||
|
#
|
||||||
# CONFIG_NET_DHCP_LIGHT - Reduces size of DHCP
|
# CONFIG_NET_DHCP_LIGHT - Reduces size of DHCP
|
||||||
# CONFIG_NET_RESOLV_ENTRIES - Number of resolver entries
|
# CONFIG_NET_RESOLV_ENTRIES - Number of resolver entries
|
||||||
|
#
|
||||||
CONFIG_NET_DHCP_LIGHT=n
|
CONFIG_NET_DHCP_LIGHT=n
|
||||||
CONFIG_NET_RESOLV_ENTRIES=4
|
CONFIG_NET_RESOLV_ENTRIES=4
|
||||||
|
|
||||||
|
@ -416,8 +422,48 @@ CONFIG_NX_BLOCKING=y
|
||||||
CONFIG_NX_MXSERVERMSGS=32
|
CONFIG_NX_MXSERVERMSGS=32
|
||||||
CONFIG_NX_MXCLIENTMSGS=16
|
CONFIG_NX_MXCLIENTMSGS=16
|
||||||
|
|
||||||
|
#
|
||||||
|
# NxConsole Configuration Settings:
|
||||||
|
#
|
||||||
|
# CONFIG_NXCONSOLE_BPP
|
||||||
|
# Currently, NxConsole supports only a single pixel depth. This
|
||||||
|
# configuration setting must be provided to support that single pixel depth.
|
||||||
|
# Default: The smallest enabled pixel depth. (see CONFIG_NX_DISABLE_*BPP)
|
||||||
|
# CONFIG_NXCONSOLE_NOGETRUN
|
||||||
|
# NxConsole needs to know if it can read from the LCD or not. If reading
|
||||||
|
# from the LCD is supported, then NxConsole can do more efficient
|
||||||
|
# scrolling. Default: Supported
|
||||||
|
# CONFIG_NXCONSOLE_MXCHARS
|
||||||
|
# NxConsole needs to remember every character written to the console so
|
||||||
|
# that it can redraw the window. This setting determines the size of some
|
||||||
|
# internal memory allocations used to hold the character data. Default: 128.
|
||||||
|
# CONFIG_NXCONSOLE_FONTCACHE
|
||||||
|
# If this setting is defined, then caching of fonts will be supported by
|
||||||
|
# NxConsole. Each font must be rendered from the tiny font storage format
|
||||||
|
# to the full display size and pixel depth. If this setting is defined, then
|
||||||
|
# the more recently used font glyphs will be retained in a cache of size
|
||||||
|
# CONFIG_NXCONSOLE_CACHESIZE. Default: No font caching.
|
||||||
|
# CONFIG_NXCONSOLE_CACHESIZE
|
||||||
|
# If CONFIG_NXCONSOLE_FONTCACHE, then this setting will control the size
|
||||||
|
# of the font cache (in number of glyphs). Default: 16.
|
||||||
|
# CONFIG_NXCONSOLE_LINESEPARATION
|
||||||
|
# This the space (in rows) between each row of test. Default: 2
|
||||||
|
# CONFIG_NXCONSOLE_NOWRAP
|
||||||
|
# By default, lines will wrap when the test reaches the right hand side
|
||||||
|
# of the window. This setting can be defining to change this behavior so
|
||||||
|
# that the text is simply truncated until a new line is encountered.
|
||||||
|
#
|
||||||
|
CONFIG_NXCONSOLE_BPP=32
|
||||||
|
# CONFIG_NXCONSOLE_NOGETRUN
|
||||||
|
# CONFIG_NXCONSOLE_MXCHARS
|
||||||
|
# CONFIG_NXCONSOLE_FONTCACHE
|
||||||
|
# CONFIG_NXCONSOLE_CACHESIZE
|
||||||
|
# CONFIG_NXCONSOLE_LINESEPARATION
|
||||||
|
# CONFIG_NXCONSOLE_NOWRAP
|
||||||
|
|
||||||
#
|
#
|
||||||
# Settings for examples/uip
|
# Settings for examples/uip
|
||||||
|
#
|
||||||
CONFIG_EXAMPLE_UIP_IPADDR=(192<<24|168<<16|0<<8|128)
|
CONFIG_EXAMPLE_UIP_IPADDR=(192<<24|168<<16|0<<8|128)
|
||||||
CONFIG_EXAMPLE_UIP_DRIPADDR=(192<<24|168<<16|0<<8|1)
|
CONFIG_EXAMPLE_UIP_DRIPADDR=(192<<24|168<<16|0<<8|1)
|
||||||
CONFIG_EXAMPLE_UIP_NETMASK=(255<<24|255<<16|255<<8|0)
|
CONFIG_EXAMPLE_UIP_NETMASK=(255<<24|255<<16|255<<8|0)
|
||||||
|
@ -425,6 +471,7 @@ CONFIG_EXAMPLE_UIP_DHCPC=n
|
||||||
|
|
||||||
#
|
#
|
||||||
# Settings for examples/nettest
|
# Settings for examples/nettest
|
||||||
|
#
|
||||||
CONFIG_EXAMPLE_NETTEST_SERVER=n
|
CONFIG_EXAMPLE_NETTEST_SERVER=n
|
||||||
CONFIG_EXAMPLE_NETTEST_PERFORMANCE=n
|
CONFIG_EXAMPLE_NETTEST_PERFORMANCE=n
|
||||||
CONFIG_EXAMPLE_NETTEST_NOMAC=n
|
CONFIG_EXAMPLE_NETTEST_NOMAC=n
|
||||||
|
@ -435,6 +482,7 @@ CONFIG_EXAMPLE_NETTEST_CLIENTIP=(192<<24|168<<16|0<<8|106)
|
||||||
|
|
||||||
#
|
#
|
||||||
# Settings for examples/ostest
|
# Settings for examples/ostest
|
||||||
|
#
|
||||||
CONFIG_EXAMPLES_OSTEST_LOOPS=100
|
CONFIG_EXAMPLES_OSTEST_LOOPS=100
|
||||||
CONFIG_EXAMPLES_OSTEST_STACKSIZE=8192
|
CONFIG_EXAMPLES_OSTEST_STACKSIZE=8192
|
||||||
|
|
||||||
|
@ -468,6 +516,7 @@ CONFIG_EXAMPLES_OSTEST_STACKSIZE=8192
|
||||||
# CONFIG_NSH_FATSECTSIZE - FAT FS sector size
|
# CONFIG_NSH_FATSECTSIZE - FAT FS sector size
|
||||||
# CONFIG_NSH_FATNSECTORS - FAT FS number of sectors
|
# CONFIG_NSH_FATNSECTORS - FAT FS number of sectors
|
||||||
# CONFIG_NSH_FATMOUNTPT - FAT FS mountpoint
|
# CONFIG_NSH_FATMOUNTPT - FAT FS mountpoint
|
||||||
|
#
|
||||||
CONFIG_NSH_FILEIOSIZE=1024
|
CONFIG_NSH_FILEIOSIZE=1024
|
||||||
CONFIG_NSH_STRERROR=n
|
CONFIG_NSH_STRERROR=n
|
||||||
CONFIG_NSH_LINELEN=80
|
CONFIG_NSH_LINELEN=80
|
||||||
|
@ -517,6 +566,7 @@ CONFIG_NSH_FATMOUNTPT=/tmp
|
||||||
# CONFIG_EXAMPLES_NX_SERVERPRIO -- The server priority. Default: 120
|
# CONFIG_EXAMPLES_NX_SERVERPRIO -- The server priority. Default: 120
|
||||||
# CONFIG_EXAMPLES_NX_NOTIFYSIGNO -- The signal number to use with
|
# CONFIG_EXAMPLES_NX_NOTIFYSIGNO -- The signal number to use with
|
||||||
# nx_eventnotify(). Default: 4
|
# nx_eventnotify(). Default: 4
|
||||||
|
#
|
||||||
CONFIG_EXAMPLES_NX_VPLANE=0
|
CONFIG_EXAMPLES_NX_VPLANE=0
|
||||||
#CONFIG_EXAMPLES_NX_BGCOLOR
|
#CONFIG_EXAMPLES_NX_BGCOLOR
|
||||||
#CONFIG_EXAMPLES_NX_COLOR1
|
#CONFIG_EXAMPLES_NX_COLOR1
|
||||||
|
@ -532,6 +582,7 @@ CONFIG_EXAMPLES_NX_NOTIFYSIGNO=4
|
||||||
|
|
||||||
#
|
#
|
||||||
# Settings for examples/mount
|
# Settings for examples/mount
|
||||||
|
#
|
||||||
CONFIG_EXAMPLES_MOUNT_DEVNAME="/dev/ram0"
|
CONFIG_EXAMPLES_MOUNT_DEVNAME="/dev/ram0"
|
||||||
#CONFIG_EXAMPLES_MOUNT_NSECTORS=2048
|
#CONFIG_EXAMPLES_MOUNT_NSECTORS=2048
|
||||||
#CONFIG_EXAMPLES_MOUNT_SECTORSIZE=512
|
#CONFIG_EXAMPLES_MOUNT_SECTORSIZE=512
|
||||||
|
@ -563,7 +614,7 @@ CONFIG_BOOT_RUNFROMFLASH=n
|
||||||
CONFIG_BOOT_COPYTORAM=n
|
CONFIG_BOOT_COPYTORAM=n
|
||||||
CONFIG_CUSTOM_STACK=n
|
CONFIG_CUSTOM_STACK=n
|
||||||
CONFIG_IDLETHREAD_STACKSIZE=4096
|
CONFIG_IDLETHREAD_STACKSIZE=4096
|
||||||
CONFIG_USERMAIN_STACKSIZE=4096
|
CONFIG_USERMAIN_STACKSIZE=16384
|
||||||
CONFIG_PTHREAD_STACK_MIN=256
|
CONFIG_PTHREAD_STACK_MIN=256
|
||||||
CONFIG_PTHREAD_STACK_DEFAULT=8192
|
CONFIG_PTHREAD_STACK_DEFAULT=8192
|
||||||
CONFIG_HEAP_BASE=
|
CONFIG_HEAP_BASE=
|
||||||
|
|
|
@ -34,6 +34,9 @@ at the present, but here is the longer term roadmap:
|
||||||
and without NXTOOLKIT for raw access to window memory.
|
and without NXTOOLKIT for raw access to window memory.
|
||||||
NXGLIB - Low level graphics utilities and direct framebuffer rendering logic.
|
NXGLIB - Low level graphics utilities and direct framebuffer rendering logic.
|
||||||
NX is built on top of NXGLIB.
|
NX is built on top of NXGLIB.
|
||||||
|
NxConsole - NxConsole is a write-only character device that is built on top of
|
||||||
|
an NX window. This character device can be used to provide stdout
|
||||||
|
and stderr and, hence, can provide the output side of NuttX console.
|
||||||
|
|
||||||
Related Header Files
|
Related Header Files
|
||||||
^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^
|
||||||
|
@ -150,10 +153,10 @@ Installing New Fonts
|
||||||
|
|
||||||
genfontsources:
|
genfontsources:
|
||||||
ifeq ($(CONFIG_NXFONT_SANS23X27),y)
|
ifeq ($(CONFIG_NXFONT_SANS23X27),y)
|
||||||
@$(MAKE) -C nxfonts -f Makefile.sources TOPDIR=$(TOPDIR) NXFONTS_FONTID=1 EXTRADEFINES=$(EXTRADEFINES)
|
@$(MAKE) -C nxfonts -f Makefile.sources TOPDIR=$(TOPDIR) NXFONTS_FONTID=1 EXTRADEFINES=$(EXTRADEFINES)
|
||||||
endif
|
endif
|
||||||
ifeq ($(CONFIG_NXFONT_MYFONT),y)
|
ifeq ($(CONFIG_NXFONT_MYFONT),y)
|
||||||
@$(MAKE) -C nxfonts -f Makefile.sources TOPDIR=$(TOPDIR) NXFONTS_FONTID=2 EXTRADEFINES=$(EXTRADEFINES)
|
@$(MAKE) -C nxfonts -f Makefile.sources TOPDIR=$(TOPDIR) NXFONTS_FONTID=2 EXTRADEFINES=$(EXTRADEFINES)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
6. nuttx/graphics/nxfonts/Make.defs. Set the make variable NXFSET_CSRCS.
|
6. nuttx/graphics/nxfonts/Make.defs. Set the make variable NXFSET_CSRCS.
|
||||||
|
@ -161,10 +164,10 @@ Installing New Fonts
|
||||||
NXFONTS_FONTID=2:
|
NXFONTS_FONTID=2:
|
||||||
|
|
||||||
ifeq ($(CONFIG_NXFONT_SANS23X27),y)
|
ifeq ($(CONFIG_NXFONT_SANS23X27),y)
|
||||||
NXFSET_CSRCS += nxfonts_bitmaps_sans23x27.c
|
NXFSET_CSRCS += nxfonts_bitmaps_sans23x27.c
|
||||||
endif
|
endif
|
||||||
ifeq ($(CONFIG_NXFONT_MYFONT),y)
|
ifeq ($(CONFIG_NXFONT_MYFONT),y)
|
||||||
NXFSET_CSRCS += nxfonts_bitmaps_myfont.c
|
NXFSET_CSRCS += nxfonts_bitmaps_myfont.c
|
||||||
endif
|
endif
|
||||||
|
|
||||||
7. nuttx/graphics/nxfonts/Makefile.sources. This is the Makefile used
|
7. nuttx/graphics/nxfonts/Makefile.sources. This is the Makefile used
|
||||||
|
@ -175,12 +178,12 @@ Installing New Fonts
|
||||||
was used in nuttx/graphics/nxfonts/Make.defs):
|
was used in nuttx/graphics/nxfonts/Make.defs):
|
||||||
|
|
||||||
ifeq ($(NXFONTS_FONTID),1)
|
ifeq ($(NXFONTS_FONTID),1)
|
||||||
NXFONTS_PREFIX := g_sans23x27_
|
NXFONTS_PREFIX := g_sans23x27_
|
||||||
GEN_CSRC = nxfonts_bitmaps_sans23x27.c
|
GEN_CSRC = nxfonts_bitmaps_sans23x27.c
|
||||||
endif
|
endif
|
||||||
ifeq ($(NXFONTS_FONTID),2)
|
ifeq ($(NXFONTS_FONTID),2)
|
||||||
NXFONTS_PREFIX := g_myfont_
|
NXFONTS_PREFIX := g_myfont_
|
||||||
GEN_CSRC = nxfonts_bitmaps_myfont.c
|
GEN_CSRC = nxfonts_bitmaps_myfont.c
|
||||||
endif
|
endif
|
||||||
|
|
||||||
8. graphics/nxfonts/nxfonts_bitmaps.c. This is the file that contains
|
8. graphics/nxfonts/nxfonts_bitmaps.c. This is the file that contains
|
||||||
|
@ -314,6 +317,36 @@ CONFIG_NXFONT_SERIF38X49B
|
||||||
This option enables support for a large, 38x49 bold font (with serifs)
|
This option enables support for a large, 38x49 bold font (with serifs)
|
||||||
(font ID FONTID_SERIF38X49B == 13).
|
(font ID FONTID_SERIF38X49B == 13).
|
||||||
|
|
||||||
|
NxConsole Configuration Settings:
|
||||||
|
|
||||||
|
CONFIG_NXCONSOLE_BPP
|
||||||
|
Currently, NxConsole supports only a single pixel depth. This
|
||||||
|
configuration setting must be provided to support that single pixel depth.
|
||||||
|
Default: The smallest enabled pixel depth. (see CONFIG_NX_DISABLE_*BPP)
|
||||||
|
CONFIG_NXCONSOLE_NOGETRUN
|
||||||
|
NxConsole needs to know if it can read from the LCD or not. If reading
|
||||||
|
from the LCD is supported, then NxConsole can do more efficient
|
||||||
|
scrolling. Default: Supported
|
||||||
|
CONFIG_NXCONSOLE_MXCHARS
|
||||||
|
NxConsole needs to remember every character written to the console so
|
||||||
|
that it can redraw the window. This setting determines the size of some
|
||||||
|
internal memory allocations used to hold the character data. Default: 128.
|
||||||
|
CONFIG_NXCONSOLE_FONTCACHE
|
||||||
|
If this setting is defined, then caching of fonts will be supported by
|
||||||
|
NxConsole. Each font must be rendered from the tiny font storage format
|
||||||
|
to the full display size and pixel depth. If this setting is defined, then
|
||||||
|
the more recently used font glyphs will be retained in a cache of size
|
||||||
|
CONFIG_NXCONSOLE_CACHESIZE. Default: No font caching.
|
||||||
|
CONFIG_NXCONSOLE_CACHESIZE
|
||||||
|
If CONFIG_NXCONSOLE_FONTCACHE, then this setting will control the size
|
||||||
|
of the font cache (in number of glyphs). Default: 16.
|
||||||
|
CONFIG_NXCONSOLE_LINESEPARATION
|
||||||
|
This the space (in rows) between each row of test. Default: 2
|
||||||
|
CONFIG_NXCONSOLE_NOWRAP
|
||||||
|
By default, lines will wrap when the test reaches the right hand side
|
||||||
|
of the window. This setting can be defining to change this behavior so
|
||||||
|
that the text is simply truncated until a new line is encountered.
|
||||||
|
|
||||||
NX Multi-user only options:
|
NX Multi-user only options:
|
||||||
|
|
||||||
CONFIG_NX_BLOCKING
|
CONFIG_NX_BLOCKING
|
||||||
|
|
|
@ -34,5 +34,6 @@
|
||||||
############################################################################
|
############################################################################
|
||||||
|
|
||||||
NXCON_ASRCS =
|
NXCON_ASRCS =
|
||||||
NXCON_CSRCS = nx_register.c nxcon_driver.c nxcon_font.c nxcon_register.c
|
NXCON_CSRCS = nx_register.c nxcon_driver.c nxcon_font.c nxcon_redraw.c
|
||||||
NXCON_CSRCS += nxcon_unregister.c nxtk_register.c nxtool_register.c
|
NXCON_CSRCS += nxcon_register.c nxcon_scroll.c nxcon_unregister.c
|
||||||
|
NXCON_CSRCS += nxtk_register.c nxtool_register.c
|
||||||
|
|
|
@ -126,12 +126,21 @@ static ssize_t nxcon_write(FAR struct file *filep, FAR const char *buffer,
|
||||||
FAR struct nxcon_state_s *priv;
|
FAR struct nxcon_state_s *priv;
|
||||||
char ch;
|
char ch;
|
||||||
int lineheight;
|
int lineheight;
|
||||||
|
int ret;
|
||||||
|
|
||||||
/* Recover our private state structure */
|
/* Recover our private state structure */
|
||||||
|
|
||||||
DEBUGASSERT(filep && filep->f_priv);
|
DEBUGASSERT(filep && filep->f_priv);
|
||||||
priv = (FAR struct nxcon_state_s *)filep->f_priv;
|
priv = (FAR struct nxcon_state_s *)filep->f_priv;
|
||||||
|
|
||||||
|
/* Get exclusive access */
|
||||||
|
|
||||||
|
ret = sem_wait(&priv->exclsem);
|
||||||
|
if (ret < 0)
|
||||||
|
{
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
/* Loop writing each character to the display */
|
/* Loop writing each character to the display */
|
||||||
|
|
||||||
lineheight = (priv->fheight + CONFIG_NXCONSOLE_LINESEPARATION);
|
lineheight = (priv->fheight + CONFIG_NXCONSOLE_LINESEPARATION);
|
||||||
|
@ -185,6 +194,7 @@ static ssize_t nxcon_write(FAR struct file *filep, FAR const char *buffer,
|
||||||
nxcon_putc(priv, (uint8_t)ch);
|
nxcon_putc(priv, (uint8_t)ch);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sem_post(&priv->exclsem);
|
||||||
return buflen;
|
return buflen;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -58,8 +58,8 @@
|
||||||
/* Configuration ************************************************************/
|
/* Configuration ************************************************************/
|
||||||
/* The maximum number of characters that can be remembered */
|
/* The maximum number of characters that can be remembered */
|
||||||
|
|
||||||
#ifndef CONFIG_NXCONSOLE_BMCACHE
|
#ifndef CONFIG_NXCONSOLE_MXCHARS
|
||||||
# define CONFIG_NXCONSOLE_BMCACHE 128
|
# define CONFIG_NXCONSOLE_MXCHARS 128
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Font cache -- this is the number or pre-rendered font glyphs that can be
|
/* Font cache -- this is the number or pre-rendered font glyphs that can be
|
||||||
|
@ -67,11 +67,33 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifdef CONFIG_NXCONSOLE_FONTCACHE
|
#ifdef CONFIG_NXCONSOLE_FONTCACHE
|
||||||
# ifndef CONFIG_NXCONSOLE_GLCACHE
|
# ifndef CONFIG_NXCONSOLE_CACHESIZE
|
||||||
# define CONFIG_NXCONSOLE_GLCACHE 16
|
# define CONFIG_NXCONSOLE_CACHESIZE 16
|
||||||
# endif
|
# endif
|
||||||
#else
|
#else
|
||||||
# undef CONFIG_NXCONSOLE_GLCACHE
|
# undef CONFIG_NXCONSOLE_CACHESIZE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Pixel depth */
|
||||||
|
|
||||||
|
#ifndef CONFIG_NXCONSOLE_BPP
|
||||||
|
# if !defined(CONFIG_NX_DISABLE_1BPP)
|
||||||
|
# define CONFIG_NXCONSOLE_BPP 1
|
||||||
|
# elif !defined(CONFIG_NX_DISABLE_2BPP)
|
||||||
|
# define CONFIG_NXCONSOLE_BPP 2
|
||||||
|
# elif !defined(CONFIG_NX_DISABLE_4BPP)
|
||||||
|
# define CONFIG_NXCONSOLE_BPP 4
|
||||||
|
# elif !defined(CONFIG_NX_DISABLE_8BPP)
|
||||||
|
# define CONFIG_NXCONSOLE_BPP 8
|
||||||
|
# elif !defined(CONFIG_NX_DISABLE_16BPP)
|
||||||
|
# define CONFIG_NXCONSOLE_BPP 16
|
||||||
|
//#elif !defined(CONFIG_NX_DISABLE_24BPP)
|
||||||
|
//# define CONFIG_NXCONSOLE_BPP 24
|
||||||
|
# elif !defined(CONFIG_NX_DISABLE_32BPP)
|
||||||
|
# define CONFIG_NXCONSOLE_BPP 32
|
||||||
|
# else
|
||||||
|
# error "No pixel depth provided"
|
||||||
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Space (in rows) between lines */
|
/* Space (in rows) between lines */
|
||||||
|
@ -164,12 +186,12 @@ struct nxcon_state_s
|
||||||
|
|
||||||
/* Font cache data storage */
|
/* Font cache data storage */
|
||||||
|
|
||||||
struct nxcon_bitmap_s bm[CONFIG_NXCONSOLE_BMCACHE];
|
struct nxcon_bitmap_s bm[CONFIG_NXCONSOLE_MXCHARS];
|
||||||
|
|
||||||
/* Glyph cache data storage */
|
/* Glyph cache data storage */
|
||||||
|
|
||||||
#ifdef CONFIG_NXCONSOLE_FONTCACHE
|
#ifdef CONFIG_NXCONSOLE_FONTCACHE
|
||||||
struct nxcon_glyph_s glyph[CONFIG_NXCONSOLE_GLCACHE];
|
struct nxcon_glyph_s glyph[CONFIG_NXCONSOLE_CACHESIZE];
|
||||||
#else
|
#else
|
||||||
/* A glyph cache of size one -- all fonts will be re-rendered on each use */
|
/* A glyph cache of size one -- all fonts will be re-rendered on each use */
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,131 @@
|
||||||
|
/****************************************************************************
|
||||||
|
* nuttx/graphics/nxconsole/nxcon_bkgd.c
|
||||||
|
*
|
||||||
|
* Copyright (C) 2012 Gregory Nutt. All rights reserved.
|
||||||
|
* Author: Gregory Nutt <gnutt@nuttx.org>
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
*
|
||||||
|
* 1. Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in
|
||||||
|
* the documentation and/or other materials provided with the
|
||||||
|
* distribution.
|
||||||
|
* 3. Neither the name NuttX nor the names of its contributors may be
|
||||||
|
* used to endorse or promote products derived from this software
|
||||||
|
* without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||||
|
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||||
|
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||||
|
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||||
|
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||||
|
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||||
|
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||||
|
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||||
|
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Included Files
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
#include <nuttx/config.h>
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <stdbool.h>
|
||||||
|
#include <assert.h>
|
||||||
|
#include <errno.h>
|
||||||
|
#include <debug.h>
|
||||||
|
|
||||||
|
#include <nuttx/nx/nx.h>
|
||||||
|
#include <nuttx/nx/nxglib.h>
|
||||||
|
|
||||||
|
#include "nxcon_internal.h"
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Definitions
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Private Types
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Private Function Prototypes
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Private Data
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Public Data
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Private Functions
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Public Functions
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Name: nxcon_redraw
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* Re-draw a portion of the NX console. This function should be called
|
||||||
|
* from the appropriate window callback logic.
|
||||||
|
*
|
||||||
|
* Input Parameters:
|
||||||
|
* handle - A handle previously returned by nx_register, nxtk_register, or
|
||||||
|
* nxtool_register.
|
||||||
|
* rect - The rectangle that needs to be re-drawn (in window relative
|
||||||
|
* coordinates)
|
||||||
|
* more - true: More re-draw requests will follow
|
||||||
|
*
|
||||||
|
* Returned Value:
|
||||||
|
* None
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
void nxcon_redraw(NXCONSOLE handle, FAR const struct nxgl_rect_s *rect, bool more)
|
||||||
|
{
|
||||||
|
FAR struct nxcon_state_s *priv;
|
||||||
|
int ret;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
DEBUGASSERT(handle && rect);
|
||||||
|
gvdbg("rect={(%d,%d),(%d,%d)} more=%s\n",
|
||||||
|
rect->pt1.x, rect->pt1.y, rect->pt2.x, rect->pt2.y,
|
||||||
|
more ? "true" : "false");
|
||||||
|
|
||||||
|
/* Recover our private state structure */
|
||||||
|
|
||||||
|
priv = (FAR struct nxcon_state_s *)handle;
|
||||||
|
|
||||||
|
/* Fill the rectangular region with the window background color */
|
||||||
|
|
||||||
|
ret = priv->ops->fill(priv, rect, priv->wndo.wcolor);
|
||||||
|
if (ret < 0)
|
||||||
|
{
|
||||||
|
gdbg("fill failed: %d\n", errno);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Then redraw each character on the display (Only the characters within
|
||||||
|
* the rectangle will actually be redrawn).
|
||||||
|
*/
|
||||||
|
|
||||||
|
for (i = 0; i < priv->nchars; i++)
|
||||||
|
{
|
||||||
|
nxcon_fillchar(priv, rect, &priv->bm[i]);
|
||||||
|
}
|
||||||
|
}
|
|
@ -122,9 +122,9 @@ FAR struct nxcon_state_s *
|
||||||
|
|
||||||
/* Set up the text caches */
|
/* Set up the text caches */
|
||||||
|
|
||||||
priv->maxchars = CONFIG_NXCONSOLE_BMCACHE;
|
priv->maxchars = CONFIG_NXCONSOLE_MXCHARS;
|
||||||
#ifdef CONFIG_NXCONSOLE_FONTCACHE
|
#ifdef CONFIG_NXCONSOLE_FONTCACHE
|
||||||
priv->maxglyphs = CONFIG_NXCONSOLE_GLCACHE;
|
priv->maxglyphs = CONFIG_NXCONSOLE_CACHESIZE;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Set the initial display position */
|
/* Set the initial display position */
|
||||||
|
|
|
@ -0,0 +1,239 @@
|
||||||
|
/****************************************************************************
|
||||||
|
* nuttx/graphics/nxconsole/nxcon_scroll.c
|
||||||
|
*
|
||||||
|
* Copyright (C) 2012 Gregory Nutt. All rights reserved.
|
||||||
|
* Author: Gregory Nutt <gnutt@nuttx.org>
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
*
|
||||||
|
* 1. Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in
|
||||||
|
* the documentation and/or other materials provided with the
|
||||||
|
* distribution.
|
||||||
|
* 3. Neither the name NuttX nor the names of its contributors may be
|
||||||
|
* used to endorse or promote products derived from this software
|
||||||
|
* without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||||
|
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||||
|
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||||
|
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||||
|
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||||
|
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||||
|
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||||
|
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||||
|
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Included Files
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
#include <nuttx/config.h>
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <stdbool.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <semaphore.h>
|
||||||
|
#include <errno.h>
|
||||||
|
#include <debug.h>
|
||||||
|
|
||||||
|
#include <nuttx/nx/nx.h>
|
||||||
|
#include <nuttx/nx/nxfonts.h>
|
||||||
|
|
||||||
|
#include "nxcon_internal.h"
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Definitions
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Private Types
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Private Function Prototypes
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Private Data
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Public Data
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Private Functions
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Name: nxcon_movedisplay
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* This function implements the data movement for the scroll operation. If
|
||||||
|
* we can read the displays framebuffer memory, then the job is pretty
|
||||||
|
* easy. However, many displays (such as SPI-based LCDs) are often read-
|
||||||
|
* only.
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
#ifndef CONFIG_NXCONSOLE_NOGETRUN
|
||||||
|
static inline void nxcon_movedisplay(FAR struct nxcon_state_s *priv,
|
||||||
|
int bottom, int scrollheight)
|
||||||
|
{
|
||||||
|
FAR struct nxcon_bitmap_s *bm;
|
||||||
|
struct nxgl_rect_s rect;
|
||||||
|
nxgl_coord_t row;
|
||||||
|
int ret;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
/* Move each row, one at a time. They could all be moved at once (by calling
|
||||||
|
* nxcon_redraw), but the since the region is cleared, then re-written, the
|
||||||
|
* effect would not be good. Below the region is also cleared and re-written,
|
||||||
|
* however, in much smaller chunks.
|
||||||
|
*/
|
||||||
|
|
||||||
|
rect.pt1.x = 0;
|
||||||
|
rect.pt2.x = priv->wndo.wsize.w - 1;
|
||||||
|
|
||||||
|
for (row = CONFIG_NXCONSOLE_LINESEPARATION; row < bottom; row += scrollheight)
|
||||||
|
{
|
||||||
|
/* Create a bounding box the size of one row of characters */
|
||||||
|
|
||||||
|
rect.pt1.y = row;
|
||||||
|
rect.pt2.y = row + scrollheight - 1;
|
||||||
|
|
||||||
|
/* Clear the region */
|
||||||
|
|
||||||
|
ret = priv->ops->fill(priv, &rect, priv->wndo.wcolor);
|
||||||
|
if (ret < 0)
|
||||||
|
{
|
||||||
|
gdbg("fill failed: %d\n", errno);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Fill each character that might lie within in the bounding box */
|
||||||
|
|
||||||
|
for (i = 0; i < priv->nchars; i++)
|
||||||
|
{
|
||||||
|
bm = &priv->bm[i];
|
||||||
|
if (bm->pos.y <= rect.pt2.y && bm->pos.y + priv->fheight >= rect.pt1.y)
|
||||||
|
{
|
||||||
|
nxcon_fillchar(priv, &rect, bm);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Finally, clear the bottom part of the display */
|
||||||
|
|
||||||
|
rect.pt1.y = bottom;
|
||||||
|
rect.pt2.y = priv->wndo.wsize.h- 1;
|
||||||
|
|
||||||
|
ret = priv->ops->fill(priv, &rect, priv->wndo.wcolor);
|
||||||
|
if (ret < 0)
|
||||||
|
{
|
||||||
|
gdbg("nxcon_movedisplay: fill failed: %d\n", errno);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
static inline void nxcon_movedisplay(FAR struct nxcon_state_s *priv,
|
||||||
|
int bottom, int scrollheight)
|
||||||
|
{
|
||||||
|
struct nxgl_rect_s rect;
|
||||||
|
struct nxgl_point_s offset;
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
/* Move the display in the range of 0-height up one scrollheight. The
|
||||||
|
* line at the bottom will be reset to the background color automatically.
|
||||||
|
*
|
||||||
|
* The source rectangle to be moved.
|
||||||
|
*/
|
||||||
|
|
||||||
|
rect.pt1.x = 0;
|
||||||
|
rect.pt1.y = scrollheight + CONFIG_NXCONSOLE_LINESEPARATION;
|
||||||
|
rect.pt2.x = priv->wndo.wsize.w - 1;
|
||||||
|
rect.pt2.y = priv->wndo.wsize.h - 1;
|
||||||
|
|
||||||
|
/* The offset that determines how far to move the source rectangle */
|
||||||
|
|
||||||
|
offset.x = 0;
|
||||||
|
offset.y = -scrollheight;
|
||||||
|
|
||||||
|
/* Move the source rectangle */
|
||||||
|
|
||||||
|
ret = priv->move(priv, &rect, &offset);
|
||||||
|
if (ret < 0)
|
||||||
|
{
|
||||||
|
gdbg("move failed: %d\n", errno);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Public Functions
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Name: nxcon_scroll
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
void nxcon_scroll(FAR struct nxcon_state_s *priv, int scrollheight)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
int j;
|
||||||
|
|
||||||
|
/* Adjust the vertical position of each character */
|
||||||
|
|
||||||
|
for (i = 0; i < priv->nchars; )
|
||||||
|
{
|
||||||
|
FAR struct nxcon_bitmap_s *bm = &priv->bm[i];
|
||||||
|
|
||||||
|
/* Has any part of this character scrolled off the screen? */
|
||||||
|
|
||||||
|
if (bm->pos.y < scrollheight + CONFIG_NXCONSOLE_LINESEPARATION)
|
||||||
|
{
|
||||||
|
/* Yes... Delete the character by moving all of the data */
|
||||||
|
|
||||||
|
for (j = i; j < priv->nchars-1; j++)
|
||||||
|
{
|
||||||
|
memcpy(&priv->bm[j], &priv->bm[j+1], sizeof(struct nxcon_bitmap_s));
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Decrement the number of cached characters ('i' is not incremented
|
||||||
|
* in this case because it already points to the next character)
|
||||||
|
*/
|
||||||
|
|
||||||
|
priv->nchars--;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* No.. just decrement its vertical position (moving it "up" the
|
||||||
|
* display by one line).
|
||||||
|
*/
|
||||||
|
|
||||||
|
else
|
||||||
|
{
|
||||||
|
bm->pos.y -= scrollheight;
|
||||||
|
|
||||||
|
/* We are keeping this one so increment to the next character */
|
||||||
|
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* And move the next display position up by one line as well */
|
||||||
|
|
||||||
|
priv->fpos.y -= scrollheight;
|
||||||
|
|
||||||
|
/* Move the display in the range of 0-height up one scrollheight. */
|
||||||
|
|
||||||
|
nxcon_movedisplay(priv, priv->fpos.y, scrollheight);
|
||||||
|
}
|
Loading…
Reference in New Issue