[Company Logo Image]

Halegate Software
Making Life Easier For Software Developers

[Home]
[Features]
[ScreenShots]
[FAQ]
[Platforms]
[Download]
[Support]
[Contact Us]

 

 

 

 

 

 

 

 

 

 

 

 


AimAdt Frequently Asked Questions


General Questions


What exactly is AimAdt?

AimAdt is a tool for viewing two-dimensional numeric data. It consists of several operational components. The main component is the AimAdt library, which is a Java .jar class library. This library contains the AimViewer GUI and its associated methods, along with the AimImage I/O routines. The standalone AimAdt application is simply a main program wrapper for this library.

When you interface your Java programs with this library, you either embed calls to the AimViewer class methods in your code, or invoke these methods directly from your debugger. (See Using AimAdt With Debuggers for more information on various debugger capabilities.)

The C/C++ library files are additional components. These libraries are Java JNI "glue" routines that allow you to interface your C/C++ code with the AimAdt library without your having to get into the Java JNI library yourself. The C/C++ libraries are not system independent; you must have a compatible C/C++ library for your particular system.

Back to Top

How do I obtain AimAdt?

AimAdt is available through this web site. We have recently eliminated the trial version of AimAdt, and are now making the full edition of the current version of AimAdt (1.0.2) available at no charge. You can download the full edition here.

Note that even there is no charge for AimAdt, it is still owned and copyright by Halegate Software. It is not open source code, nor is it public domain software. If you use AimAdt, you must still abide by the AimAdt end user license.

Back to Top

What are the system requirements for AimAdt?

AimAdt is pure Java, so it should be able to run standalone or interface with your Java programs under any OS that supports a Java JRE/SDK 1.4.2 or later.

AimAdt uses approximately 1.5 MB of memory when running, excluding the image/matrix data itself and the memory used by the JVM.

AimAdt requires ~600KB of disk space, excluding the download file. The download  file is  ~480KB.

For information on current platform support, see the Platform page.

Back to Top

What is included with AimAdt?

The AimAdt release package includes:

  • The Java class library for AimAdt itself, in .jar format.
  • The AimAdt User's Manual, in html format.
  • A Readme.txt file
  • Installation instructions.
  • A license.txt file, which specifies the conditions of use for AimAdt.
  • A sample parameter file.
  • An executable main program (source included) that lets you use AimAdt as a standalone application.
  • *A Microsoft C/C++ aimadtintf.dll interface library for use with Microsoft Visual Studio Version 6 or .NET, along with a companion aimadtintf.lib import file. This dll might work with other C/C++ IDE's, but has not been tested with them.
  • *A Linux libaimadtintf.so interface shared library  file for use with gcc and similar Linux compilers and linkers (Intel i586+ platforms). The library might also work with other Intel i586 Unix-like OS's, but has not been tested with them. 
  • *A C/C++ include (.h) file for the interface library, which you add to the source code you want to interface with AimAdt.
  • Sample source code for using AimAdt to interface with Java and C/C++ programs. along with Microsoft Visual Studio project files and a Linux make file.

*You do not need the interface libraries if you only interface AimAdt with Java programs or only use AimAdt standalone.

Back to Top

What else do I need in order to use AimAdt on my system?

The only software that you need, other than the AimAdt package itself, is a Java 2 JRE/SDK, version 1.4.2 or later. This can be downloaded at no cost from Sun Microsystems at http://java.sun.com. The SDK is required if you intend to interface your code with AimAdt, either Java or C/C++. The JRE should be sufficient for stand-alone operation.

Back to Top

What base data types can AimAdt handle?

AimAdt can handle arrays of the following base data types when called by either a Java or C/C++ program that is interfacing with it. In C/C++, the arrays must be one contiguous block of memory. In Java, the array can be either a one dimensional array of primitive data, a two dimensional array of arrays (an array of objects, where each object is a one dimensional array of primitive type), or a Raster object.

  • 32 bit floating point
  • 64 bit floating point
  • 32 bit signed integer
  • 16 bit signed integer
  • 16 bit unsigned integer
  • 8 bit unsigned integer
AimAdt can write arrays of any of the above data types to disk using its custom binary AimAdt Array format, and can also write them to disk in comma-separated text format (csv). The AimAdt Array format is used to save data for reuse in future AimAdt sessions.
Back to Top

What image types can AimAdt handle?

The answer depends on several factors.

Under Java version 1.4.2, AimAdt can directly read the following image types from disk, whether it is in stand-alone mode or interface mode:

  • GIF
  • JPEG
  • PNG

Java version 1.5 (5.0) adds support for:

  •  BMP
  • WBMP

Finally, if you install the Java Advanced Imaging (JAI) Image I/O Tools package*, AimAdt can read these additional types:

  • BMP
  • WBMP
  • JPEG 2000
  • PNM
  • TIFF

(*Information on installing the JAI Image I/O Tools package can be found on the AimAdt support site, which you can get to through the AimAdt Support page. Read the document entitled "JAI Image I/O Tools" in the "Sections" area.)

When interfacing with a Java program, AimAdt can accept the Raster object of any of the above supported image types, as well as any Raster that can be legally created in-memory. It can also accept a BufferedImage or AimImage object. (the AimImage class reads and writes AimAdt Array format images).

AimAdt does not currently accept any image type objects from C/C++ programs. To display the image data, you must pass the data  to AimAdt as a pointer to a contiguous array of one of  the base data types.

AimAdt does not currently allow the direct writing of the above Java supported image types. It does, however, allow you to write any of the base data types, as well as the supported image types, in a special binary format we call AimAdt Array format (.aaa). AimAdt Array format can be used to save data for later reuse in another AimAdt session.

AimAdt can also write in ASCII comma separated (csv) format.  At the moment, ASCII output only works with single-band images and matrices.

Back to Top

In what formats can AimAdt display data?

AimAdt can display the base data types in any of these display formats:

  • Decimal - base 10 format, with up to 18 digits to the right of the decimal point. If any of the data values in an array are too large to fit into the maximum allowable field size (currently 64 digits), the entire array is instead displayed in Scientific format, with up to 18 digits to the right of the decimal point.
  • Octal - base 8 format, using the digits (0 .. 7), with 3 bits per digit.
  • Hexadecimal - base 16 format, using the digits (0 .. 9, A .. F), with 4 bits per digit.
  • Binary - base 2 format, using the digits (0 .. 1), with one bit per digit.
  • Scientific - base 10 digits, with a single (signed) digit to the left of the decimal point, followed by up to 18 digits to the right of the decimal point, followed by an exponent that indicates how far to the right or left the decimal point is shifted.

The octal, hex, and binary formats show 64 bit data in its entirety.

Back to Top


Can AimAdt edit the displayed array data?

No. At the current time, the data displayed by AimAdt cannot be modified, although it can be written to disk for later use by either AimAdt or an external application. You can also copy array data to the clipboard and paste it into another application (see below).

Back to Top

Do all of AimAdt's data arrays need to be the same size?

No. Each array can be a different size. For at  least the first version of AimAdt, however, all of the arrays will start at the upper-left position of the display grid, i.e. (0,0).

Back to Top

Can my program open and use more than one AimAdt grid window?

If your interfacing program is written in Java you can have more than one grid window open, but the first release of AimAdt will only allow one window for C/C++ programs. Remember, however, that a grid window can display many arrays simultaneously, whether it is working with Java or C/C++ programs. Only one grid window is allowed in standalone mode, but you can always run more than one standalone copy of AimAdt. Or you can write your own custom stand-alone application.

Back to Top

Can I copy and paste AimAdt array data between the grid display and the clipboard?

You can copy data from the AimAdt grid window to the clipboard, but at this time you cannot take data from the clipboard and paste it back into the grid. Data is copied as a numeric array, not as image data. The copied data can be pasted into an external application such as Microsoft Excel.

Back to Top

 

Copyright © 2004 Halegate Software