Seriously speaking now, the last lines of configureGCA() reads:
- Code: Select all
var buildCGA = func() {
. . .
gcaObject.start();
window.clearFocus();
print("demo starts");
} # buildCGA
var toggleGCA = func() {
if (gcaRunning) {
gcaObject.stop();
gcaRunning = 0;
toggleFields(!gcaRunning); # set editable
return;
}
if (!gcaRunning and validateFields()==STATUS.SUCCESS) {
gcaRunning = 1;
toggleFields(!gcaRunning); # set readonly
buildCGA();
return;
}
} # toggleGCA()
var button = canvas.gui.widgets.Button.new(root, canvas.style, {})
.setText("Start/Stop")
.setFixedSize(75, 25)
.listen("clicked", toggleGCA);
setupWidgetTooltip(widget:button, tooltip: "toggle GCA on/off");
myLayout.addItem(button);
}; # configureGCA();
When clicking the "Start/Stop" button, the toggleGCA() launches buildCGA() as expected.
Thus, PARScreen is instanced and set, PAR appears nicely and "demo starts" is printed,
. . . and FGFS crashes !
Looking my fgfs.log :
- Code: Select all
nasal:5:/build/flightgear-NrffwL/flightgear-2017.2.1/src/Scripting/NasalSys.cxx:449:demo starts
general:3:/build/simgear-BoF3P8/simgear-2017.2.1/simgear/canvas/elements/CanvasElement.cxx:284:addEventListener(/canvas[0]/by-index[0]/texture[5], mousedown)
general:3:/build/simgear-BoF3P8/simgear-2017.2.1/simgear/canvas/elements/CanvasElement.cxx:284:addEventListener(/canvas[0]/by-index[0]/texture[5], wm.focus-in)
general:3:/build/simgear-BoF3P8/simgear-2017.2.1/simgear/canvas/elements/CanvasElement.cxx:284:addEventListener(/canvas[0]/by-index[0]/texture[5], wm.focus-out)
general:3:/build/simgear-BoF3P8/simgear-2017.2.1/simgear/canvas/elements/CanvasElement.cxx:284:addEventListener(/canvas[0]/by-index[0]/texture[5]/group[0]/group[0]/image[0], mouseenter)
general:3:/build/simgear-BoF3P8/simgear-2017.2.1/simgear/canvas/elements/CanvasElement.cxx:284:addEventListener(/canvas[0]/by-index[0]/texture[5]/group[0]/group[0]/image[0], mousedown)
general:3:/build/simgear-BoF3P8/simgear-2017.2.1/simgear/canvas/elements/CanvasElement.cxx:284:addEventListener(/canvas[0]/by-index[0]/texture[5]/group[0]/group[0]/image[0], mouseleave)
general:3:/build/simgear-BoF3P8/simgear-2017.2.1/simgear/canvas/elements/CanvasElement.cxx:284:addEventListener(/canvas[0]/by-index[0]/texture[5]/group[0]/group[0]/image[0], mousedown)
general:3:/build/simgear-BoF3P8/simgear-2017.2.1/simgear/canvas/elements/CanvasElement.cxx:284:addEventListener(/canvas[0]/by-index[0]/texture[5]/group[0]/group[0]/image[0], mouseup)
general:3:/build/simgear-BoF3P8/simgear-2017.2.1/simgear/canvas/elements/CanvasElement.cxx:284:addEventListener(/canvas[0]/by-index[0]/texture[5]/group[0]/group[0]/image[0], click)
general:3:/build/simgear-BoF3P8/simgear-2017.2.1/simgear/canvas/elements/CanvasElement.cxx:284:addEventListener(/canvas[0]/by-index[0]/texture[5]/group[0]/group[0]/image[0], mouseleave)
general:3:/build/simgear-BoF3P8/simgear-2017.2.1/simgear/canvas/elements/CanvasElement.cxx:284:addEventListener(/canvas[0]/by-index[0]/texture[5]/group[0]/group[0]/image[0], drag)
general:3:/build/simgear-BoF3P8/simgear-2017.2.1/simgear/canvas/elements/CanvasElement.cxx:284:addEventListener(/canvas[0]/by-index[0]/texture[5]/group[0]/group[0]/image[0], cb.clicked)
general:3:/build/simgear-BoF3P8/simgear-2017.2.1/simgear/canvas/elements/CanvasElement.cxx:284:addEventListener(/canvas[0]/by-index[0]/texture[5]/group[0]/group[0], drag)
I'm really stuck here.
P.S.: Nop, wasn't that.
I have just commented the gcaObject.start() line and there is no crashing now.
Obviously, being the timer not started, no instruction is given and PAR do not updates the fly track.
( start() func does nothing but me.timer.start() . And the timer does nothing but calling me.update() funcion.)
The mystery here is : when I enter gca.demo,update(); (via Nasal Console) ... it works ! step by step clicking the "Execute" button.
I mean I'm manually doing the timer's job ... and all works.
But when entering gca.demo.timer.start(); . . . CRASH