[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Antw: [DDL-ML] Bugfix fuer SpDrS60
> Stefan Preis schrieb:
> >
> > Hey, und da habe ich schlimmstes vermutet und alle haben an den
> > falschen Stellen gesucht. Na immerhin ist s gefunden.
> >
> > Danke !
>
> Hi Stefan,
>
> bitte checke das selbst nochmals durch. Auf jeden Fall ist dies ein
> erkannter Fehler. Aber leider steckt der Teufel im Detail. Ich habe
> vermutlich nicht alle Stellen gefunden, die geaendert werden muessen.
> Du kennst Deinen Code besser.
>
> Torsten
es muss auch noch bFBport[496] in bFBport[496*4] geaendert
werden.
Hier noch weitere Bugs:
In der Datei element.cpp Zeile 290 steht write( iEDsocket,
sSocketCommand_.data(), sSocketCommand_.length()+1 );
es muss heissen write( iEDsocket, sSocketCommand_.data(),
sSocketCommand_.length() );
und in der Datei MainWindow.cpp Zeile 594 steht write(
iCmdSocket_, sSocketCommand_.data(),
sSocketCommand_.length()+1 );
es muss heissen write( iCmdSocket_, sSocketCommand_.data(),
sSocketCommand_.length() );
Fuer Stefan
Wenn eine gbs-Datei geladen ist und es fehlt die rts-Datei stuerzt
das Programm bei der Aenderung eines Rueckmeldekontaktes ab.
Das gleich passiert auch beim Laden (auch Autoload) einer Datei.
Der Fehler liegt in der 2. if-Abfrage folgender Routine
void GBSArea::slotFBportChanged( int iPortNr_ )
{
// do nothing if there´s no layout loaded
if( iNumOfElements == 0 )
return;
// first check if a changed port can reset a route
// if there are any routes available at all
QString s;
>>>> if( sRouteFilename_ != "" && listOfReleasePorts->find(
s.setNum(iPortNr_)) != -1 )
{
QString sRP, sLR;
for( unsigned int i=0; i<listOfReleasePorts->count(); i++)
{
// now reset a route if:
// -- the port number equals the release value in routing file
// -- if port changed from 0 to 1
// -- if this route is in SET state (= is active)
// there may be more than one route to be released with
same
// FB port, so do NOT break the for() here !
sRP = listOfReleasePorts->at( i );
sLR = listOfLockedRoutes->at( i );
if( iPortNr_ == sRP.toInt() && bFBport[iPortNr_] == 1 &&
sLR == "1" )
slotStartRouting( i, RESET );
}
}
else if( listOfReleasePorts->find( s.setNum(iPortNr_)) == -1 )
// else inform all elements to switch the track-LEDs to correct
colour
emit FBportChanged( iPortNr_ );
}
Dieter