Difference between revisions of "ENVIRONMENT"
Jump to navigation
Jump to search
ConvertBot (talk | contribs) (Performs various functions on the NeXtMidas environment) |
(No difference)
|
Latest revision as of 18:05, 27 April 2020
Performs various functions on the NeXtMidas environment
<func> Function to perform on environment [DEF=SHOW] <key> Function dependent keyword. Desired variable of interest for SET or GET <value> Results label for GET, or value for SET This command performs a number of functions from showing the NeXtMidas environment, to performing an NFSLOOKUP or showing system related information like memory usage or threads Java properties Since the environment variables are now the table ENV in the results table, they may be read directly without using this command. The NeXtMidas FILE intrinsic replaces the X-Midas environment file functions. Special keywords may not set an entry in the ENV table or may do more than just set the entry. FUNCTIONS: GET - ENV GET <key> <label> Get the keyword in the environment. Prints to screen if <label> is blank The environment variables in the ENV table are: NMROOT - The NeXtMidas root installation directory USER - User name HOME - The home directory HOSTNAME - The local host name HOSTADDR - The local host IP address OSTYPE - The operating system type (UNIX,WINDOWS,...) OSNAME - The operating system name (Linux,...) OSREP - The operating system data representation (EEEI,IEEE) EDITOR - The desired editor. Automatically chosen by EDIT command. VIEW - TBD THEME - The current theme (see LOOKANDFEEL). STYLE - TBD GRAPHICS - What graphics options to use. See details below. PID - Process ID MSF - The current Midas State File NMVERSION - The NeXtMidas version (x.y.z). JVMVERSION - The Java version (x.y.z). NMPRERELEASE - TRUE if version is a pre-release, FALSE otherwise. PAUSE - The default pause time between primitive process calls. VERIFY - The VERIFY mask string DEBUG - The DEBUG mask string of bar ("|") separated values. HWFILE - The hardware configuration file KEYMAP - Mapping of Plot keyboard shortcuts UIMANAGER - Adjustments made to the SWING UIManager IOOPTIONS - The options for input/output for files and other I/O. Special GET keywords (not necessarily in the table) are: COMPLETIONAUXEXCLUDE - Pipe-separated list of AUXes that are to be excluded when using FILES searching and tab-completion (since NeXtMidas 3.1.0) DEFAULTTABLEFLAGS - The default table flags (since NeXtMidas 2.7.1) DEFAULTTABLEMODE - The default table mode (since NeXtMidas 2.7.0) FileNameCASE - Default FileName case option (this is overridden by the FNCASE= qualifier). (since NeXtMidas 3.3.1) HOSTNAMEFQDN - Fully-Qualified-Domain-Name for the ENV.HOSTNAME (note that this will simply return ENV.HOSTNAME if the name resolution fails. (since NeXtMidas 3.3.2) NUMSCReens - The number of screens in this graphics environment NUMNONVIRTSCREENS - The number of non-virtual screens in this graphics environment (since NeXtMidas 2.8.0) PRIV - The privileges mask SERVER - Gets the current server address (this can be overridden by /REMOTE=<server>) SERVERFQDN - Fully-Qualified-Domain-Name for the ENV.SERVER (note that this will simply return ENV.SERVER if the name resolution fails. (since NeXtMidas 3.3.2) USENATIVE - The mask string defining native code use GRAPHICS - The graphics options (found in Theme.java) allow for control over the method NeXtMidas uses to display certain items such as plots and widgets. The current default in Theme.java is SWING|REALTIME but this can be overridden using the 'env set' command (such as in startup scripts). Options: -------- HEADLESS - Do not draw Windows (including Plots) on display AWT - use heavyweight (AWT) objects SWING - use lightweight (SWING) objects for Plots REALTIME - allow lightweight plots to draw in their own thread MOBILE - All-SWING with special parenting options for pop-ups SWINGDB - turn on SWING double buffering SWINGWIDGETS - GWidget controls drawn on SWING panels SWINGPOPUPS - GWidget controls drawn on SWING panels NOSLAF - No Swing Look and Feel theme support (or query) NOXLAF - No external swing look and feel changes via UIManagers INITONLOAD - Initialize graphics themes on load instead of on demand DEBUG - Enable graphics environment debug output KEYMAP - (Since 2.7.2) The keymap is a mapping of keyboard shortcuts to Plot zoom adjustments. Based on industry practices (most notably Google Maps), the keyboard shortcuts allow users to move the viewable area of a zoomed-in plot using only the keyboard. ENV.KEYMAP is typically set in nmstartup.mm, but can be modified at any time. If it is null, Plot will use default settings. The defaults are basically to use the arrow keys to make small adjustments, the home/page up/page down/end keys for larger adjustments, and the "+" and "-" keys for incremental zooming in and out. UIMANAGER - The SWING UIManager provides the ability to change many aspects of the Swing look and feel "on demand". Starting in NeXtMidas 2.7.3, users can alter the UIManager by using the "environment set uimanager <table>" command: nM> env set uimanager {scrollbar={width=10,thumb=red}} The above example will change the Swing scrollbar to be 10 pixels wide and have a color of red. Note that not all UIManager settings can be altered, as they may require inputs of sound files, images, etc.. Generally, the following input values types are supported: Data Types (int, long, double, boolean, etc) Strings (or char) Colors Fonts (font name only, e.g. "courier", "arial", etc) A complete list of UIManager properties depends on the Java version and OS, but can be found in Java by using the following: Enumeration<Object> keys = UIManager.getDefaults().keys(); IOOPTIONS - The options for input/output for files and other I/O. Since 2.9.0 DisableEscapeSequences - Turn off the handling of escape sequences in quoted Strings (inside macro/prompt) using the backslash character (i.e. '\') just like Java/C string escape sequences. Note: this does not apply to creating Tables from Strings or writing out the contents of a Table with Table.toByte(..). This option is DEPRECATED. In 3.1.0, escape sequences are enabled by default. StrictHTTP - Strictly follow HTTP 1.1 (RFC 2616) rules. E.g. Work around HTTP servers that return 200 status code to a GET/POST request with Range header (with desire to read partial content), which will potentially break communication with NeXtMidas 2.8.2 and prior HTTP servers that did not correctly returned 206 status code. TruncateBLUE - When overwriting existing BLUE files, truncate them on the storage device to minimum size necessary (Since 2.9.1). DisableQuadwordsEqualityChecks - Turn off the equality checks in DataFile that check quadwords in Type 5000 files. Setting this will enable the (buggy) behavior of NeXtMidas 3.2 and earlier which ignored quadwords in equality checks. (Since 3.3.0) WriteNoAbort - Do not abort even if an Exception occurs during writing. (Since 3.5.4) FileIONoAbort- Do not abort even if an Exception occurs during a file write or read. (Since 3.7.1) SET - ENV SET <key> <value> Set the keyword in the environment Special SET keywords are: COMPLETIONAUXEXCLUDE - Sets the pipe-separated list of AUXes which are ignored when searching via the FILES command or tab-completion. (Since NeXtMidas 3.1.1) DEFAULTTABLEFLAGS - The default table flags, this can also be set using the TABLE command. (since NeXtMidas 2.7.1) DEFAULTTABLEMODE - The default table mode, this can also be set using the TABLE command. (since NeXtMidas 2.7.0) FileNameCASE - Default FileName case option (this is overridden by the FNCASE= qualifier). (since NeXtMidas 3.3.1) PRIV - Sets the sandbox privileges (supports value=ALL) USENATIVE - Sets the property in nxm.sys.lib.Native for use of native code SHOW - ENV SHOW <key> By default shows the current environment is listed on the terminal or any of the other special SHOW functions listed below. Special SHOW functions are: "" - shows all NeXtMidas environment variables in ENV table and other special ones not in the table [DEFAULT] THREAD - shows all threads MEM - shows memory usage PROP <filter> - shows all Java Property values. Since 3.5.2, a simple case-insensitive <filter> search string can be specified for either property name or value. KEYGETS - Deprecated since NeXtMidas 2.7.0 (always blank) KEYSETS - Deprecated since NeXtMidas 2.7.0 (always blank) HANDLERS - show table of handlers for FILEs and PACKETs RESET - TBD - resets variables affecting pipes and macros NSLOOKUP - gets an IP address for the named node Syntax: ENV NSLOOKUP <hostname> <inetaddress> GC - runs the garbage collector. Use /VERBOSE=T to see output in a macro. Syntax: ENV GC Examples: 1. A typical set of the environment variables kept in the ENV table are nM> env T: ENV = Table of 24 entries 19S: NMROOT = /home/midas/nxmxxx/ 3S: USER = jph 10S: HOME = /home/jph/ 6S: HOSTNAME = JPHLAP 9S: HOSTADDR = 127.0.0.1 4S: OSTYPE = UNIX 5S: OSNAME = Linux 4S: OSREP = EEEI 3S: EDITOR = nedit 4S: VIEW = TEXT 5S: THEME = GEAR3 5S: STYLE = GEAR3 14S: GRAPHICS = SWING|REALTIME 4S: PID = 1172 19S: MSF = /home/jph/nmsf_1172 5S: NMVERSION = 3.4.3 5S: JVMVERSION = 1.8.0 4S: NMPRERELEASE = FALSE D: PAUSE = 0.0125 1S: VERIFY = | 17S: DEBUG = |Trace|Deprecate| 34S: USENATIVE = |IO|Math|Cast|CastX|Convert|Other| 20S: HWFILE = nxm.sys.dat.hwconfig T: KEYMAP = Table of 1 entries ------- Other Environment Settings ------ CompletionAuxExclude = |99| DefaultTableFlags = |AutoReadPrev| DefaultTableMode = SynchronizedLinkedHashMap FileNameCase = AutoCase HostNameFQDN = jphlap.localdomain NumNonVirtScreens = 1 NumScreens = 3 Priv = ALL Server = ServerFQDN = UseNative = |IO|Math|Cast|Convert|Other| 2. To determine the host address of this computer nM> ENV GET HOSTNAME myHostname 3. To set the control panel widgets to use SWING panels and double buffer nM> ENV SET GRAPHICS +SWINGWIDGETS|+SWINGDB 4. To set the Swing scrollbar to be 10 pixels wide and have a color of red: nM> env set uimanager {scrollbar={width=10,thumb=red}} 5. If the /SERVER switch is specified on a macro, it is to be run in server mode. If the /CLIENT switch is specified on a macro, it is to be run in client mode. The client macro gets the server address from the /REMOTE=host:port switch, the ENV.SERVER variable, or the Midas.getServer() function. This command will search this path for the servers address nM> ENV GET SERVER theServer 6. To determine how many screens your computer has: nM> env get NUMSCREENS ns 7. To determine how many screens your computer has that are not virtual (aka, cinerama is 1 screen not 3). nM> env get NUMNONVIRTSCREENS nsNonVirt 8. Disable the handling of escape sequences in Strings: nM> env set iooptions +DisableEscapeSequences 9. Set the list of AUXes to ignore when using the FILES command or tab-completion nM> env set COMPLETIONAUXEXCLUDE "RAM|99" Switches: /ALL - Enumerate contents of any tables in the environment for SHOW function /REMOTE=<r> - Override the default host:port for the ENV GET SERVER function /VERBOSE - Show additional information while command is running See Also: TABLE, LOOKANDFEEL