Differences between revisions 15 and 20 (spanning 5 versions)
Revision 15 as of 2009-06-30 04:31:45
Size: 4473
Comment:
Revision 20 as of 2009-08-18 05:42:32
Size: 2830
Comment:
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
[[TableOfContents]] <<TableOfContents>>
Line 8: Line 8:
Line 13: Line 12:
Line 18: Line 16:
Line 27: Line 24:
Line 35: Line 31:
Line 41: Line 36:
=== Error when compiling MATLAB (Mac OS X with Matlab R2009a only) ===
Under Mac OS X, if the BCVTB is compiled in Matlab R2009a, the following error may occur:

{{{
Undefined symbols:
  "_mxGetM", referenced from:
      _mexFunction in establishBSDSocket.o
  "_mxGetN", referenced from:
      _mexFunction in establishBSDSocket.o
  "_mxIsNumeric", referenced from:
      _mexFunction in establishBSDSocket.o
  "_mxGetClassID", referenced from:
      _ssGetDTypeIdFromMxArray in establishBSDSocket.o
  "_mxCalloc", referenced from:
      __RegNumInputPortsCB in establishBSDSocket.o
      __RegNumOutputPortsCB in establishBSDSocket.o
      _mexFunction in establishBSDSocket.o
  "_mxGetPr", referenced from:
      _mexFunction in establishBSDSocket.o
  "_mxIsComplex", referenced from:
      _mexFunction in establishBSDSocket.o
  "_mxCreateDoubleMatrix_700", referenced from:
      _mexFunction in establishBSDSocket.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
    mex: link of ' "establishBSDSocket.mexmaci"' failed.
??? Error using ==> mex at 218
Unable to complete successfully.
Error in ==> /Applications/MATLAB_R2009a.app/toolbox/simulink/simulink/+legacycode/@LCT/compile.p>compile at 261
Error in ==> /Applications/MATLAB_R2009a.app/toolbox/simulink/simulink/legacy_code.p>legacy_code at 91
Error in ==> compile at 58
    legacy_code('compile', def, ...
}}}
This problem is caused because the linker flags in Matlab changed in R2009a. To fix this problem, open the file {{{bcvtb/lib/simulink/compile.m}}} and remove the entry

{{{
-L/usr/lib
}}}
Then, recompile the file. This will be fixed in releases after version 0.1.1.
Line 83: Line 39:

=== Check program output ===
By default, the {{{Simulation}}} actor in Ptolemy writes a copy of the console output of the simulation program to a file called {{{simulation.log}}}. This file can typically be found in the directory from which the simulation program has been started.
Line 95: Line 54:
=== Display program output ===
Depending on how simulation programs are called by the {{{Simulation}}} actor in Ptolemy, the console output written by the simulation program may not be visible. To see the console output, change the command line of the Ptolemy actor from
=== Memory problem ===
Line 98: Line 56:
{{{
 bash ./runClient.sh
}}}
to

{{{
 xterm -e bash ./runClient.sh
}}}
This will start a terminal that shows the output of the running simulation program which help analyzing what goes wrong, for example, when the simulation program terminates due to an error before connecting to the BCVTB.
If the following error occurs:{{{
java.lang.OutOfMemoryError: Java heap space}}}
then increase the Java heap space by running vergil with the command{{{
java -Xmx1024m ptolemy.vergil.VergilApplication system.xml}}}
The argument {{{-Xmx1024m}}} declares how much memory is allocated. The default for Java is -Xmx128m

Help

1. Compilation problems

1.1. Error when compiling Ptolemy II (Windows only)

If running

make configPt
  • or running

./configure && make fast install
  • gives the following error

/bin/sh: -c: line 1: unexpected EOF while looking for matching `''
/bin/sh: -c: line 4: syntax error: unexpected end of file

then the source code is most likely with Unix line endings. Download the Windows source code from the Ptolemy web page.

1.2. Error when compiling MATLAB (Windows only)

Under Windows, if the BCVTB is compiled using the Microsoft compiler, then the MATLAB libraries also need to be compiled with the Microsoft compiler. If, however, the gcc compiler has been used when compiling the BCVTB, then the following compilation error may be obtained when compiling the MATLAB libraries:

Writing library for establishBSDSocket.mexw32
c:\docume~1\mwetter\locals~1\temp\mex_ae679\simulinksocket.obj .text: undefined reference to '_establishclientsocket'
c:\docume~1\mwetter\locals~1\temp\mex_ae679\simulinksocket.obj .text: undefined reference to '_exchangewithsocket'
c:\docume~1\mwetter\locals~1\temp\mex_ae679\simulinksocket.obj .text: undefined reference to '_closeipc'

To fix this problem, open Matlab, run

mex -setup

and select the Microsoft Visual C++ compiler from the menu. This need to be done only once as it updates your Matlab settings.

2. Runtime problems

The following steps typically help analyzing problems if a simulation program does not work as expected.

2.1. Check program output

By default, the Simulation actor in Ptolemy writes a copy of the console output of the simulation program to a file called simulation.log. This file can typically be found in the directory from which the simulation program has been started.

2.2. Check log files

If something goes wrong during the simulation, check the files simulation.log, utilSocket.log and utilClient.log. They contain log messages that may indicate the cause of the problem. If these files do not exist, go to the directory bcvtb/lib, open the file defines.h and add the line

#define NDEBUG

Then, from the directory bcvtb/lib/util compile the libraries using

ant clean all

and rerun the simulation. Now the log files should be written to the directory from which you started the BCVTB.

2.3. Memory problem

If the following error occurs:

java.lang.OutOfMemoryError: Java heap space

then increase the Java heap space by running vergil with the command

java -Xmx1024m ptolemy.vergil.VergilApplication system.xml

The argument -Xmx1024m declares how much memory is allocated. The default for Java is -Xmx128m

bcvtb: Help (last edited 2016-04-21 17:07:12 by ThierryNouidui)