@@ -33,7 +33,6 @@ PropellerLoader::PropellerLoader(PropellerManager * manager, const QString & por
3333 _ack = 0 ;
3434
3535 this ->session = new PropellerSession (manager, portname);
36- session->setBaudRate (115200 );
3736
3837 totalTimeout.setSingleShot (true );
3938 handshakeTimeout.setSingleShot (true );
@@ -46,20 +45,20 @@ PropellerLoader::PropellerLoader(PropellerManager * manager, const QString & por
4645 connect (session,&PropellerSession::sendError,
4746 this , &PropellerLoader::error);
4847
49- QFinalState * s_failure = new QFinalState ();
50- QFinalState * s_success = new QFinalState ();
48+ QFinalState * s_failure = new QFinalState ();
49+ QFinalState * s_success = new QFinalState ();
5150
5251 connect (s_success, SIGNAL (entered ()), this , SLOT (success_entry ()));
5352 connect (s_failure, SIGNAL (entered ()), this , SLOT (failure_entry ()));
5453
55- s_active = new QState ();
54+ s_active = new QState ();
5655
57- QState * s_start = new QState (s_active);
58- QState * s_prepare = new QState (s_active);
59- QState * s_payload = new QState (s_active);
60- QState * s_verify = new QState (s_active);
61- QState * s_write = new QState (s_active);
62- QState * s_verifywrite = new QState (s_active);
56+ QState * s_start = new QState (s_active);
57+ QState * s_prepare = new QState (s_active);
58+ QState * s_payload = new QState (s_active);
59+ QState * s_verify = new QState (s_active);
60+ QState * s_write = new QState (s_active);
61+ QState * s_verifywrite = new QState (s_active);
6362
6463 s_prepare ->assignProperty (this , " status" , tr (" Preparing image..." ));
6564 s_payload ->assignProperty (this , " status" , tr (" Downloading to RAM..." ));
@@ -72,8 +71,8 @@ PropellerLoader::PropellerLoader(PropellerManager * manager, const QString & por
7271 s_verifywrite->assignProperty (this , " stat" , 3 );
7372
7473 s_active->setInitialState (s_start);
75- s_active-> addTransition (this , SIGNAL (failure ()), s_failure);
76- s_active-> addTransition (&machine, SIGNAL (started ()), s_prepare);
74+ s_active-> addTransition (this , SIGNAL (failure ()), s_failure);
75+ s_active-> addTransition (&machine, SIGNAL (started ()), s_prepare);
7776
7877 machine.addState (s_failure);
7978 machine.addState (s_success);
@@ -106,8 +105,6 @@ PropellerLoader::PropellerLoader(PropellerManager * manager, const QString & por
106105 connect (s_verifywrite, SIGNAL (exited ()), this , SLOT (acknowledge_exit ()));
107106
108107 s_verifywrite->addTransition (this , SIGNAL (success ()), s_success);
109-
110- // connect(this, SIGNAL(statusChanged(const QString &)), this, SLOT(message(const QString &)));
111108}
112109
113110PropellerLoader::~PropellerLoader ()
@@ -116,7 +113,6 @@ PropellerLoader::~PropellerLoader()
116113 delete session;
117114}
118115
119-
120116void PropellerLoader::message (const QString & text)
121117{
122118 qCDebug (ploader) << qPrintable (" [" +session->portName ()+" ]" ) << qPrintable (text);
@@ -178,7 +174,6 @@ void PropellerLoader::prepare_entry()
178174 _error = NoError;
179175 _completed = 0 ;
180176 m_stat = 0 ;
181- session->setBaudRate (115200 );
182177
183178 _command = 2 *_write + _run;
184179
@@ -208,7 +203,7 @@ void PropellerLoader::prepare_entry()
208203
209204void PropellerLoader::handshake_read ()
210205{
211- // message( "BYTES "+QString::number( session->bytesAvailable()) );
206+ // qDebug() << "BYTES" << session->bytesAvailable();
212207 if (session->bytesAvailable () == protocol.reply ().size () + 4 )
213208 {
214209 handshakeTimeout.stop ();
@@ -247,7 +242,7 @@ void PropellerLoader::sendpayload_entry()
247242 connect (this , SIGNAL (handshake_received ()), this , SLOT (upload_status ()));
248243 connect (this , SIGNAL (payload_sent ()), this , SLOT (upload_status ()));
249244
250- session->readAll (); // clear mysterious junk data that arrives just before this write().
245+ session->clear (); // clear mysterious junk data that arrives just before this write().
251246 session->write (_payload);
252247}
253248
@@ -361,6 +356,12 @@ bool PropellerLoader::upload(PropellerImage image, bool write, bool run, bool wa
361356 return false ;
362357 }
363358
359+ if (!session->setBaudRate (115200 ))
360+ {
361+ error (" Couldn't set baud rate" );
362+ return false ;
363+ }
364+
364365 _image = image;
365366 _write = write;
366367 _run = run;
0 commit comments