WELCOME TO THE TMO TOOL-KIT DOWNLOAD WEB!

Click here to register and download your TMO Tool-Kit v4.2.3

What is

the Tool-Kit?

The TMO Tool-Kit is a zip-file regrouping all the material a programmer needs to create and develop TMO applications, from the user manual to some sample TMO applications. The essential piece being the TMO Support Library (the C++ API of the TMO Support Middleware).

With this Tool-Kit, any programmer can create very easily complex real-time distributed applications of all kinds (multimedia, control systems, sensor networks...).

The TMO Tool-Kit is in continuous development, and suggestions from users to improve it (the manual, the tools or the API itself)  are more than welcome! Please address your comments at tmodownload@dream.eng.uci.edu

The current version v4.2.3 should still be viewed as an a version. It runs on three different major OS kernel platforms:  Windows XP, Windows CE, and Linux v2.6. This version of the toolkit allows creating multi-platforms TMO networks. Two configurations are currently supported: (Windows XP + WinCE) and (Windows XP + Linux). But TMOs running on WinCE cannot yet communicate with TMOs running on Linux due to differences in message formats (Unicode vs. Non-Unicode).

An history of the changes made to the TMO Tool-Kit since version 4.2.3 is available here.

How to download

the Tool-Kit?

In order to be able to download the TMO Tool-Kit you first need to register. Registering for download simply consists in accepting the Tool-Kit user agreement and providing some personal information. Once you do that an email with a link containing a download key will be sent to you. This link grants you access to the TMO Tool-kit download page during the three days following your registration.

On this download page you will be able to select one or more of the platforms that are currently supported by TMOSM (Windows XP, Windows CE, and Linux 2.6). The download of the corresponding package will start right after you submit your choice.

Click here to start registering.

How to use

the Tool-Kit?

Each Tool-Kit contains the TMO Support Library (TMOSL) user manual.

This manual describes the TMO Programming Environment with emphasis on the TMO support library APIs which will allow you to create real-time distributed computing applications easily by using the Time-triggered Message-triggered Object (TMO) scheme.

The Tool-Kits also contain a program that will help you generate easily the necessary TMO configuration files (config.ini) used by all TMO applications. This config assistant is currently only running on Windows 2000/XP but the config files produced  can be used on any platform. The tool allows you to open and modify an existing config.ini file or to create a whole new one by changing some of the default parameter values.

Depending on the platform(s) you selected for download, you will find in the package one folder per operating system. Each of these folders contains a 'lib' subfolder and a 'Application' subfolder.

- 'lib' contains the TMOSL binaries and header files you need to build and run your TMO application. It also contains one folder named 'NonTMO2TMO' in which are stored three files necessary to support sending messages from non-TMO threads to TMO application threads.

- 'Application' contains some sample applications (source code and binaries) that you can run for testing.

The following paragraphs describe how to use the Tool-Kit to set up a working environment on Windows XP, Windows CE and Linux.

Windows XP

- \'lib'\ :

The files TMOSL.dll and TMOSL.lib must be copied to the executable directory in which your application's .exe file resides, in \Application\Node1\Debug\ for example. Those users who run a version of visual studio older than .NET 2003 must also include the dlls msvcp71d.dll msvcr71d.dll (provided in the Tool-Kit) in the same ".exe" directory. TMOSL.h must be included by any TMO application. NonTMO2TMO.lib, NonTMO2TMO.h and NonTMOConfig.ini are found in the subfolder 'NonTMO2TMO'. The manual explains how to use those three files in order to be able to send messages from a non TMO thread to a TMO application thread.

- \'Application'\ :

The application provided in Tool-Kit v4.2.3, "AudioCapture" is a very simple program running on one node only. This program captures sound and plays it back (requires a microphone and a speaker). Users can open its project file, modify the application, recompile it, see what happens and learn from it!

Do not forget to adapt the template config.ini file present in the \Debug\ directory to your environment (IP address, ...) manually or by help of the configuration assistant tool provided.

To learn how to create you own TMO applications under Visual Studio, read Appendix G in the TMOSL manual.

Windows CE

- \'lib'\ :

Just as for the XP version the Windows CE 'lib' provides the three files needed to compile and run TMO applications: TMOSL.dll, TMOSL.lib and TMOSL.h. They are used in the same way on both platform: the .dll and .lib files must be in the directory in which the .exe of the application resides (usually \Windows\). Note that the config file should also be copied in the \Windows directory. TMOSL.h doesn't need to be copied on the WinCE device where the application is ran, but should be included in the platform builder project when building a TMO application. As in the Windows XP package, 'lib' contains a subfolder with the files NonTMO2TMO.lib, NonTMO2TMO.h and NonTMOConfig.ini.

- \'Application'\ :

Two applications are provided in the WinCE package: SimpleSpM, a one-node application, and SimpleTMO, a two-nodes application.

SimpleSpM simply prints a message on the screen periodically.

In SimpleTMO, two nodes periodically exchange some messages which are printed on the screen. The SimpleTMO application is composed of three directories: SimpleTMO, which contains the source code for both nodes; SimpleTMO1, which contains the platform builder project files and .exe file for node1; and SimpleTMO2, which contains the platform builder project files and .exe file for node 2.

For more information on how to use Platform Builder to create TMO applications for WinCE, you can read the document WinCE_TMOApp.pdf in the \Application\ directory, which explains how to use Platform Builder to build a TMO application. A short description of the WinCE device we - at the DREAM lab - are using to run WinCE/TMO applications  is given in the file Mini-ITX.ppt also included in the package.

Linux

- \'lib'\ :

With the Linux version, the TMO application programmer needs to include only one binary file, the static library 'libTMOSL.a'. TMOSL.h along with a few other header files given in \'lib\include\' and containing mostly type re-definitions should be included by the application program. And as always, a config.ini file should exist in the folders that contain the application's executable files. Similarly to the Windows XP and WinCE packages, the Linux 'lib' folder contains a subfolder with one header file (NonTMO2TMO.h) , one library (NonTMO2TMO.a) and a sample configuration file (NonTMOConfig.ini) for sending messages from non-TMOs to TMOs.

- \'Application'\ :

Two applications are provided in the Linux package: SimpleTMO, the same two-nodes application that is also provided in the WinCE package, and TeleAudioMono, another 2 nodes-application in which sound is recorded on one node and transmitted to the second node where it is played back.

The source code, binary files and Makefiles are provided for both applications. The Makefiles assume that the file/directory structure of the Linux package is kept unchanged (TMOToolkitXxX\Linux\...).

- C++ Compilers & Libraries:

To compile TMO applications on Linux, you need the followings in your system:

       gcc 3.3 or higher

       C++ library "libstdc++.so.6"