Overview | Package | Class | Tree | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## jcontrol.system
Class Management

    java.lang.Object
      jcontrol.system.Management

    public class Management

extends Object

Controls JControls system management functions.

This class provides some system properties, some are not present on some boards:

Key | Description of Associated Value | Provider
--- | --- | ---
`rs232.baudrate` (int) | RS232 baudrate | `RS232.setBaudrate(int)`
`rs232.params` (int) | RS232 parameters | `RS232.setParams(int)`
`io.adcchannels` (r/o) | # of useable ADC channels | `ADC`
`display.contrast` (int) | display contrast | `Display`
`display.dimensions` (r/o) | display dimensions (pixels) | `Display`
`flash.format` (r/o) | organisation of flash memory | `Flash`
`buzzer.keyboardbeep` (boolean) | turns buzzer on for keyboard press | `Keyboard`
`io.gpiochannels` (r/o) | # of useable portpins | `GPIO`
`io.pwmchannels` (r/o) | # of useable PWM channels | `PWM`
`profile.name` (r/o) | JControl board type | `Management`
`profile.date` (r/o) | the build date of the JControl VM | `Management`
`buzzer.enable` (boolean) | turns buzzer on for some actions | `Management`
`buzzer.systembeep` (boolean) | turns buzzer on for some actions | `Management`
`system.standbytimer` (int) | time for automatic turn off (seconds) | `Management`
`system.userbank` (int) | flash bank to launch application | `Management`
`system.heapsize` (r/o) | available memory for java | `Management`
`rtc.poweronbank` (int) | flash bank to launch on alarm | `RTC`

Author:
  Andreas Wesseler, Helge Böhme
Available on JControl Devices:

  all

Constructor Summary
`Management()`

Method Summary
`static void` | `arraycopy(Object src, int srcPos, Object dest, int destPos, int length)` Copies an array from the specified source array, beginning at the specified position, to the specified position of the destination array.
`static short` | `currentTimeMillis()` Returns the current value of the virtual machines millisecond counter.
`static void` | `gc()` Waits for completion of garbage collecton.
`static int` | `getPowerStatus()` Get power (battery) status.
`static String` | `getProperty(String key)` Returns the value of a JControl system property.
`static void` | `halt()` Just stops the processor.
`static String` | `nextKey(String previousKey)` Enumerates the system properties.
`static void` | `powerOff()` Turn `RTC` equipped JControl modules off.
`static void` | `powerOff(int time)` Turn `RTC` equipped JControl modules off.
`static void` | `reboot(boolean reset)` Reboots the virtual machine.
`static void` | `saveProperties()` Saves some properties to the persistent storage.
`static void` | `setClassPersistence(boolean keep)` Marks the calling class not to be removed from the garbage collector.
`static void` | `setLock(Object obj, boolean lock)` Locks or unlocks an object in memory.
`static boolean` | `setProperty(String key, String value)` Sets the JControl system Property to the specified value.
`static void` | `start(String clss, String[] args, boolean asThread)` Starts a Java application.
`static void` | `switchBank()` Switches the flash bank to the bank specified by property ``system.userbank``.

Methods inherited from class java.lang.Object
`clone, equals, notifyAll, wait`

Constructor Detail

### Management

    public Management()

Method Detail

### arraycopy

    public static void arraycopy(Object src,
                                 int srcPos,
                                 Object dest,
                                 int destPos,
                                 int length)

  Copies an array from the specified source array, beginning at the specified position, to the specified position of the destination array. A subsequence of array components are copied from the source array referenced by `src` to the destination array referenced by `dest`. The number of components copied is equal to the `length` argument. The components at positions `srcPos` through `srcPos+length-1` in the source array are copied into positions `destPos` through `destPos+length-1`, respectively, of the destination array.

  If the `src` and `dest` arguments refer to the same array object, then the copying is performed as if the components at positions `srcPos` through `srcPos+length-1` were first copied to a temporary array with `length` components and then the contents of the temporary array were copied into positions `destPos` through `destPos+length-1` of the destination array.

  If `dest` is `null`, then a `NullPointerException` is thrown.

  If `src` is `null`, then a `NullPointerException` is thrown and the destination array is not modified.

  Otherwise, if any of the following is true, an `ArrayStoreException` is thrown and the destination is not modified:

  - The `src` argument refers to an object that is not an array.
  - The `dest` argument refers to an object that is not an array.
  - The `src` argument and `dest` argument refer to arrays whose component types are different primitive types.
  - The `src` argument refers to an array with a primitive component type and the `dest` argument refers to an array with a reference component type.
  - The `src` argument refers to an array with a reference component type and the `dest` argument refers to an array with a primitive component type.

  Otherwise, if any of the following is true, an `IndexOutOfBoundsException` is thrown and the destination is not modified:

  - The `srcPos` argument is negative.
  - The `destPos` argument is negative.
  - The `length` argument is negative.
  - `srcPos+length` is greater than `src.length`, the length of the source array.
  - `destPos+length` is greater than `dest.length`, the length of the destination array.

  Otherwise, if any actual component of the source array from position `srcPos` through `srcPos+length-1` cannot be converted to the component type of the destination array by assignment conversion, an `ArrayStoreException` is thrown. In this case, let k be the smallest nonnegative integer less than length such that `src[srcPos+`k`]` cannot be converted to the component type of the destination array; when the exception is thrown, source array components from positions `srcPos` through `srcPos+`k`-1` will already have been copied to destination array positions `destPos` through `destPos+`k`-1` and no other positions of the destination array will have been modified. (Because of the restrictions already itemized, this paragraph effectively applies only to the situation where both arrays have component types that are reference types.)

  Arrays of type `boolean[]` not supported.

  Parameters:
    `src` - the source array.
    `srcPos` - starting position in the source array.
    `dest` - the destination array.
    `destPos` - starting position in the destination data.
    `length` - the number of array elements to be copied.
  Throws:
    `java.lang.IndexOutOfBoundsException` - if copying would cause access of data outside array bounds.
    `UnsupportedArrayTypeException` - if an element in the `src` array could not be stored into the `dest` array because of a type mismatch.
    `java.lang.NullPointerException` - if either `src` or `dest` is `null`.

### currentTimeMillis

    public static short currentTimeMillis()

  Returns the current value of the virtual machines millisecond counter. You can use this for measuring periods.

  Returns:
    the difference between system startup and now (measured in milliseconds, modulo 65536)

### gc

    public static void gc()

  Waits for completion of garbage collecton. This method blocks until the GC passed its loop twice, since classes are unloaded with a delay the heap still don't need to be in its optimal free to used ratio. During `gc()` other threads may continue unaffected.

### getPowerStatus

    public static int getPowerStatus()

  Get power (battery) status. Only makes sense on battery powered Devices.

  Returns:
    integer indicating battery power (range 0 (empty) ... 255 (good))

### getProperty

    public static String getProperty(String key)

  Returns the value of a JControl system property. Refer to the properties list at this class `desciption` above.

  Parameters:
    `key` - speciefies the property to get
  Returns:
    the value of the Property or `null` if this property doesn't exist

### halt

    public static void halt()

  Just stops the processor. All threads are haltet, the virtual machine is halted and even most of the peripheral components of the processor are halted. Only a reset is able to get JControl back to work. Use this only for debugging.

### nextKey

    public static String nextKey(String previousKey)

  Enumerates the system properties. The properties are dependent from the JControl implementation.

  Parameters:
    `previousKey` - some system property key, or `null`
  Returns:
    the first key in the internal list if `previousKey` is `null`, the next key or `null` if `previousKey` is the last key in the list.

### powerOff

    public static void powerOff()

  Turn `RTC` equipped JControl modules off. The module is shut down immediately.

### powerOff

    public static void powerOff(int time)

  Turn `RTC` equipped JControl modules off. If `time` is set to a positive value, the module is shut down after the specified time in seconds (use this method or any keypress on the JControl module to reset this counter). Use `time=0` to disable auto powering off.

  Parameters:
    `time` - to delay powering off

### reboot

    public static void reboot(boolean reset)

  Reboots the virtual machine. The virtual Machine is terminated and re-initialized from scratch.

  Parameters:
    `reset` - set to `true` if a full reset has to be done, otherwise the VM is only restarted in the previously selected bank

### saveProperties

    public static void saveProperties()

  Saves some properties to the persistent storage. Refer to the properties list at this class `desciption` above.

  See Also:
    `setProperty(String, String)`

### setClassPersistence

    public static void setClassPersistence(boolean keep)

  Marks the calling class not to be removed from the garbage collector. This is reasonable for classes that keep runtime data in static variables and do not have any instances.

  Parameters:
    `keep` - `true` sets the flag, `false` removes it

### setLock

    public static void setLock(Object obj,
                               boolean lock)

  Locks or unlocks an object in memory. A locked object can't be moved around by the garbage collector so it's contents can be used by interrupt routines. Only useful for native code. Before an object is locked the current thread stops until all garbage collection is finished to avoid strong memory fragmentation. Locked objects also rely on garbage collection as unlocked objects. `Class`-, `Thread`- and `String`-Objects cannot be locked.

  Parameters:
    `obj` - the object to lock or unlock
    `lock` - `true` if the lock is to be set, `false` to unset

### setProperty

    public static boolean setProperty(String key,
                                      String value)

  Sets the JControl system Property to the specified value. Note that some properties are read-only, changing properties could affect JControl hardware immediately. Refer to the properties list at this class `desciption` above.

  Parameters:
    `key` - specifies the property to change
    `value` - for the property to change to
  Returns:
    `true` if the property changed successfully, `false` if the property is read-only or the value is not valid

### start

    public static void start(String clss,
                             String[] args,
                             boolean asThread)

  Starts a Java application. Invokes the `public static void main(String[] args)`-method of a class. The class name could be determined at runtime. Class package names must be delemitered with '/'. The method parameters are fixed to `String[]` (like `main(String[] args)`).

  Parameters:
    `clss` - name of the the class to locate
    `args` - the args to be submitted to main
    `asThread` - set to `true` to start the application in a new Thread
  Throws:
    `java.lang.NoClassDefFoundError` - if the class could not be found
    `java.lang.NoSuchMethodError` - if the method main(String[] args) isn't accessible in the class

### switchBank

    public static void switchBank()

  Switches the flash bank to the bank specified by property ``system.userbank``. Currently there are up to four banks supported (depends on hardware model), bank 0 is reserved for JControls internal use the other banks are for user applications. After reset bank 0 is automatically selected then JControl may switch to a user bank. If the current bank is already switched this method returns normally otherwise the virtual machine is restarted in the new bank.

  See Also:
    `reboot(boolean)`

Overview | Package | Class | Tree | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD