|
Contributing to the OSRail Project |
|
|
|
Saturday, 05 April 2008 09:27 |
|
We welcome anyone wishing to contribute to the development of OSRail. The project is in the inception phase with only boiler-plate code for the simulator and utilities. A near complete build system using CMake and CodeBlocks for both Windows and Linux has been created. Programmers can review or download the source from the SVN. For commit authority, for the Project SVN, contact
This e-mail address is being protected from spambots. You need JavaScript enabled to view it
. Suggestions and design ideas can be added to this site or posted on the Project Trac. For authority to modify the Trac, contact
This e-mail address is being protected from spambots. You need JavaScript enabled to view it
. You may, if you wish, only outline the idea in an e-mail and it will be placed on this site and/or on the project Trac. |
|
Advantages of a Virtual Railroad |
|
|
|
|
Written by Samuel E. Henley
|
|
Saturday, 05 April 2008 09:25 |
|
The advantages of a virtual railroad simulation: club members may be many miles apart, the railroad and its equipment can be synchronized to a particular era, operation may be accomplished in real-time with the affects of real distances, the session can be paused and resumed at the groups convenience, and software driven operating session is more adaptable then typical model railroad layout. Sharing your latest model with the group has an exact equivalent in sharing a newly created 3d model, but with a 3d model each member can have their own copy where the cost of producing the model is only having the use of a computer with an internet connection. OSRail is Open Source project licensed under GNU General Public License. The source is available from the Project SVN. |
|
Last Updated on Wednesday, 03 June 2009 08:14 |
|
Console Utility and IPC (Inter Process Communication) |
|
|
|
|
Written by Samuel E. Henley
|
|
Friday, 16 May 2008 12:13 |
|
The Console utilities primary purpose is to display the Inter-Process Communication output from the Simulator program and its utilities. The program reads the command structures in the ConsoleFrame::readNextFromClient(consoleframe.cpp) routine of the Console Utility. The following commands are implemented or planned:
- ASSERT – implemented – example (src\simulator\main.cpp) Assert prints source file, line number and message. Assert will stop on the initial discovery, but can be overridden from the Console.
- MESSAGE - implemented – example (src\simulator\main.cpp) Message prints the source file, line number and a message.
- MEMORY – not implemented – Create memory statistics.
PROFILE/PROFILE_START/PROFILE_STOP – implemented – example (src\simulator\main.cpp) Produces a min, max and average instruction counter(rdtsc) output (hex).
-
EXCEPTION – implemented – example (src\simulator\main.cpp) Exception prints source file, line number and a message. Exception reference the line number of the exception in the “catch” statement.
-
PLOT – not implemented – Will produce 2D or 3D graphics of a variable (time) or an array of variables.
-
DUMP – implemented – example (src\utilities\msts2blender\mstsace.cpp) Dump will print a variable ("sprintf" format) to the Console utility.
-
TWEAKER – implemented – example ( src/simulator/graphics.cpp )Allows simulator variables to be displayed and changed in real time. )
-
UNITTEST – implemented – UNITTEST is not a macro, but is implemented in vendor/cxxtest/cxxtest/TGConsoleGui.h. The source TGConsoleGui.h is used to tie cxxtest unit tests to the Console IPC. The TGConsoleGui GUI displays detail test results in a Console frame if the Console utility is running prior to the RUN_TEST project of the build system.
"Program Name" will generate a new Console window frame, (card box) with that title and "Page Name" will generate a new tab on that frame with "Page Name" for a title (card). Although the labels imply program and page name they my be any classification that will server to order the Console output. |
|
Last Updated on Sunday, 29 November 2009 13:59 |
|
Project Definition and Goals |
|
|
|
Saturday, 05 April 2008 09:23 |
|
OSRail is a network enabled railroad simulation game. The OSRail project intends to create an open source, network enabled, railroad simulation, that provides the same experience as a model railroad club operating session. The software created must build and run on both Linux and Windows. |
|
|
Written by Samuel E. Henley
|
|
Saturday, 05 April 2008 09:29 |
|
OSRail is a simulation program and the utilities required to support the simulation. Additionally OSRail uses many third party libraries to build the cross-platform simulation and utilities. The essentially third party libraries and links to their web-sites are listed below:
|
|
Last Updated on Monday, 05 October 2009 14:04 |
|
Building OSRail for Windows |
|
|
|
Written by Samuel E. Henley
|
|
Saturday, 05 April 2008 16:40 |
Install the SDKs for these 3rd party libraries and required tools.
Create Working Directory
This directory should be at the top of the OSRail development tree and will contain the downloaded third party software. Create a working directory (c:/working) and for convenience add a directory for downloads (c:/working/download).
7z
TortoiseSVN
-
Version Control System client.
-
Download from http://tortoisesvn.net
-
Run TortoiseSVN-1.6.7.18415-win32-svn-1.6.9.msi
Platform SDK
-
Win32 API - Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1
-
Download from http://download.microsoft.com
-
Run winsdk_web.exe
-
Add Microsoft Windows SDK for Windows 7 - add to environment (computer properties, advanced, environment variables) set MSSDK to Microsoft Windows SDK for Windows 7 location (C:\Program Files\Microsoft SDKs\Windows\v7.0\) and add %MSSDK%Lib; to LIB; %MSSDK%Include to INCLUDE and add %MSSDK%Utilities\Bin\x86 to PATH.
DirectX
-
Graphics, Input, Sound - DXSDK_Aug09.exe
-
Download or Install from http://download.microsoft.com
-
Add Microsoft DirectX SDK (August 2009) - add to environment (computer properties, advanced, environment variables) %DXSDK_DIR%lib\x86 to LIB; %DXSDK_DIR%Include to INCLUDE
PoEdit
Doxygen
Graphviz (dot)
MinGW
TDM Twilight Dragon Media
-
Download and run/install (tdm-mingw-1.908.0-4.4.1-2.exe) GCC 4.4.1 compiler, linker and mingw32-make utilities over C:/MinGW http://www.tdragon.net
-
Add "C:\MinGW\bin;C:\MinGW\mingw32\bin;C:\MinGW\libexec\gcc\mingw32\4.4.1" to PATH (computer properties, advanced, environment variables)
Open Command Window Here
Pkg-config
Python
-
Used for Unit Testing (cxxtest) of OSRail http://www.python.org
-
Run Python-2.6.4.msi (Any version will do, as long as it has a windows installer (.msi)).
Install wxWidgets
-
Get current version of wxWidgets from wxPack http://wxPack.sourceforge.net .
-
Download and run/install wxPack_v2.8.10.05.exe in the default location ( c:\wxWidgets2.8 ).
-
Add WXWIN=C:\wxWidgets\ to the enviroment and add C:\wxWidgets2.8\lib\gcc_dll to the PATH (computer properties, advanced, environment variables).
Build wxrc
-
cd to c:\wxWidgets2.8\utils
-
Get commandline in directory ...\wxrc.
-
mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1 BUILD=release
Install CodeBlocks
-
Download codeblocks-8.02-setup.exe from http://www.codeblocks.org and/or install then use the nightly build (svn 5859)
-
Run codeblocks-8.02-setup.exe.
-
If using the nightly build load it over the CodeBlocks directory (C:\Program Files\CodeBlocks).
-
Run CodeBlocks.
-
Set the "wx" variable: Menu: Setting, Global Variable Editor, Select variable wx, and set the "base" to "c:/wxWidgets2.8". (In later version of codeblocks a dialog will ask.) only setting Base is required.
-
Goto menu Settings->Environment and uncheck "one running instance" Settings->Compiler&Debugger->Debugger Settings and uncheck "Catch C++ exceptions"
-
Add C:\Program Files\CodeBlocks to your PATH in the environment: (Computer Properties – Advance – Environment)
Test CodeBlocks & wxWidgets
-
Run CodeBlocks
-
File -> new project -> wxWidgets project
-
Go, next, 2.8.x, title=wxtest, folder=c:/wxWidgets2.8
-
Author = etc.
-
none, frame based
-
Create a release and debug configuration.
-
Use default wxWidgets, Create PCH
-
Finish
-
Build workspace
-
Run workspace
libcurl
-
Get libcurl from http://curl.haxx.se/
-
Install curl-7.19.7-devel-mingw32.zip in the working directory (c:/working/curl)
-
Copy the program curl.exe and its dlls in (F:\working\curl\bin) to Windows/system32.
OSRail Repository
-
Browse Repository at: http://wush.net/svn/sehenley/simulator
-
Create a path in home: c:/working/simulator/trunk
-
Select trunk and checkout to c:/ workspace/simulator/trunk
-
If committing changes, request a password and user name for the svn site from
This e-mail address is being protected from spambots. You need JavaScript enabled to view it
CMake (Special version with a CodeBlocks generator – source in vendor sub-directory)
-
Get cmake from http://www.cmake.org/cmake/resources/software.html
-
Download and run cmake-2.8.0-win32-x86.exe, use install path C:\Program Files\CMake. (Add cmake to system PATH, for example, set path to: C:\Program Files\CMake )
-
Get a command prompt in directory c:/working/trunk/vendor/cmake
-
cmake -G"MinGW Makefiles"
-
mingw32-make
-
mingw-make install
-
Insure that the modified version is on the path with the command cmake –copyright.
-
Use TortoiseSVN to revert any changes to the cmake source ( right click on c:/working/trunk/vendor/cmake, TortoiseSVN, revert... )
Build GDAL/OGR
-
Get Gdal from from svn https://svn.osgeo.org/gdal/tags/1.7.1/gdal
-
Checkout to "c:/working/gdal"
-
In "c:/working/gdal" create directory "MINGW".
-
Get a commandline in "MINGW"
-
cmake -G"MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug c:/working/simulator/trunk/src/builds/gdalogr
-
mingw32-make
-
del CMakeCache.txt
-
cmake -G"MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release c:/working/simulator/trunk/src/builds/gdalogr
-
mingw32-make
CG Toolkit
Install Ogre
angelscript
boost
Open-Soft (OpenAL)
GetText
Subversion Client
- Download from http://subversion.tigris.org, Collab Net (must register) CollabNetSubversion-client-1.6.5-6.win32.exe
- Run CollabNetSubversion-client-1.6.5-6.win32.exe
Building OSRail under Windows with CodeBlocks
To build a CODEBLOCKS build under Windows, create a directory CODEBLOCKS in the "/branch/tag or trunk directory" and get a command prompt in the CODEBLOCKS sub-directory, type the command: "cmake -GCodeBlocks .. ". The cmake scripts will check that all 3rd party libraries are installed and build some required utilities for OSRail. The cmake script will create the workspace file OSRail.workspace.
Building OSRail under Windows with mingw32-make
To build a mingw32-make build under Windows, create a directory MINGW in the "/branch/tag or trunk directory" and get a command prompt in the MINGW sub-directory, type the command: "cmake -G"MinGW Makefiles" .. ". The cmake scripts will check that all 3rd party libraries are installed and build some required utilities for OSRail. The cmake script will create Makefile. Run mingw32-make in the MINGW sub-directory. |
|
Last Updated on Monday, 26 July 2010 18:08 |
|
Building OSRail for Linux |
|
|
|
|
Written by Samuel E. Henley
|
|
Saturday, 05 April 2008 09:21 |
Install Libraries and Tools (Debian)
Install using the package system
-
kdesvn
-
poedit, gettext-doc, icons at /usr/share/pixmaps locales-all
-
doxygen, doxygen-doc and doxygen-gui(doxygen-wizard)
-
graphviz and graphviz-doc
-
autoconf, autoproject, autoconf-archive and pkg-config, all automake ( automake >1.6 required for IOS)
-
libtool and libtool-doc
-
libgtk2.0-dev and libgtk2.0-doc
-
g++(should be installed by default)
-
libxaw7-dev (OIS)
-
libpcre3-dev (CEGUI)
-
libzzip-dev (Ogre)
-
libxxf86vm-dev (Ogre)
-
libglu1-mesa-dev (Ogre)
-
libode0-dev (Ogre)
-
libfreetype6-dev (Ogre) should be in the default system
-
libgtkmm2.0-dev (Ogre)
-
libstl5.1-dev(Boost)
-
Subversion, subversion-tools
- libapr-dev
- libsvncpp-dev libsvn-doc
-
freeimage-dev (Ogre) - You must install the freeimage package (freeimage-dev) because the freeimage downloaded build does not create a link from libfreeimage.so (as of 8 Sept 09).
-
libboost1.35-dev (Ogre)
-
nautilus-open-terminal – kill x-term (ctrl-alt-backspace) log on, adds a terminal to Nautilus menus that opens in the current directory.
Setup sudo
Setup ldconfig
Create Working Directory
This directory should be at the top of OSRail directory tree and will contain the download third party sofware.
Build wxWidgets
-
Get current version of wxWidgets from svn at http://svn.wxwidgets.org/svn/wx/wxWidgets/tags/WX_2_8_10
-
Checkout to "working/WX_2_8_10".
-
In working/wxwidgets-2_8_10 create directories with: mkdir gtk28 gtk28d gtk28u
-
cd gtk28
-
../configure --enable-xrc --enable-monolithic
-
make
-
sudo make install
-
sudo ldconfig
-
cd ../gtk28d
-
../configure --enable-xrc --enable-monolithic --enable-debug
-
make
-
sudo make install
-
sudo ldconfig
-
cd ../gtk28u (required for CodeBlocks)
-
../configure --enable-xrc --enable-monolithic --enable-unicode
-
make
-
sudo make install
-
sudo ldconfig
-
(sometimes required)
-
cd ..
-
sudo cp wxwin.m4 /usr/share/aclocal
Build CodeBlocks
-
Run: kdesvn
-
Browse Repository at: http://svn.berlios.de/svnroot/repos/codeblocks/trunk, get trunk release number 5857. Note: the current trunk does not always build.
-
Checkout to local "working/codeblocks".
-
Goto "working/codeblocks"
-
./bootstrap
-
mkdir build
-
cd build
-
../configure
-
make
-
sudo make install
-
sudo ldconfig
-
Disable the movement Key under Window Preference - set to Super (windows logo) -The Alt key used for block select mode in CodeBlocks
-
Run codeblocks – goto menu Settings->Environment and uncheck "one running instance" Settings->Compiler&Debugger->Debugger Settings and uncheck "Catch C++ exceptions"
Test CodeBlocks & wxWidgets
-
Run CodeBlocks
-
File -> new project -> wxWidgets project
-
Go, next, 2.8.x, title=wxtest, folder=/home/
-
Author = etc.
-
none, frame based
-
Create a release and debug configuration.
-
Use default wxWidgets, Create PCH
-
Finish
-
Build workspace
-
Run workspace
Build libcurl
Build Gdal/Ogr
-
Get Gdal from from svn https://svn.osgeo.org/gdal/tags/1.7.1/gdal Checkout to "working/gdal"
-
./configure --with-curl=no --enable-debug
-
Does not build a makefile only fills out an *.in file, make will default to GNUMakefile
-
make
-
sudo make install
-
sudo ldconfig
Build OIS
Build FreeImage
-
Download: FreeImage3130.zip from http://freeimage.sourceforge.net
-
Extract: FreeImage3130.zip into working/FreeImage
-
Goto directory "FreeImage"
-
make (makefile - NO - .configure)
-
sudo make install (installs in /usr/lib)
-
sudo ldconfig
CG Toolkit
Build Ogre
Test Ogre
angelscript
boost
OSRail Repository
-
Browse Repository at: http://wush.net/svn/sehenley/simulator/trunk
-
Create a path in home: working/simulator/trunk
-
Select trunk and checkout to local workspace/simulator/trunk
-
If committing changes, request a password and user name for the svn site from
This e-mail address is being protected from spambots. You need JavaScript enabled to view it
CMake (Special version with a CodeBlocks generator – source in vendor sub-directory)
Open-Soft (OpenAL)
-
Download: openal-soft-1.8.466.tar.bz2 from http://kcat.strangesoft.net/openal.html
-
Extract: openal-soft-1.8.466.tar.bz2 into working/openal-soft-1.9.563
-
Goto directory "working/openal-soft-1.9.563"
-
mkdir build
-
cd build
-
cmake ..
-
make
-
sudo make install
-
sudo ldconfig
Building OSRail under Linux with CodeBlocks
To build a CODEBLOCKS build under Linux, create a directory CODEBLOCKS in the "/branch/tag or trunk directory" and get a command prompt in the CODEBLOCKS sub-directory, type the command: "cmake -GCodeBlocks .. ". The cmake scripts will check that all 3rd party libraries are installed and build some required utilities for OSRail. The cmake script will create the workspace file OSRail.workspace.
Building OSRail under Linux with Make
To build a MAKE build under Linux, create a directory MAKE in the "/branch/tag or trunk directory" and get a command prompt in the MAKE sub-directory, type the command: "cmake .. ". The cmake scripts will check that all 3rd party libraries are installed and build some required utilities for OSRail. The cmake script will create Makefile. Run make in the MAKE sub-directory.
|
|
Last Updated on Monday, 15 March 2010 05:16 |
|