[SOLVED] How to work with the Serial Port in Qt
-
I delete the m_sender object here:
[CODE]
MainWindow::~MainWindow()
{
delete ui;
delete m_sender;
}
[/CODE] -
The main problem: my application crash when I call .isOpen() Method. Why? Who can say the reason?
[CODE]
void Sender::send( const QByteArray &data ) throw( PortError )
{
if ( !m_port.isOpen() ) {
throw PortError( m_port.errorString().toStdString() );
}// Write data to the port if ( m_port.write( data ) == -1 ) { throw PortError( m_port.errorString().toStdString() ); }
}[/CODE]
P.S. You see that it is very simple application
-
Hi,
Please run your application using a debugger, it will tell you exactly where the code is crashing
-
I've written. Here: "if ( !m_port.isOpen() )" in my last post. And I see this message:
http://i6.pixs.ru/storage/4/6/9/288png_9391611_13540469.png -
Indeed, but running with the debugger, it will show you the stack trace and that would be more useful to help finding where the problem is.
-
I was helped here: [url]http://www.prog.org.ru/index.php?topic=27520[/url]
The error on this line "m_port( portName ),"
[CODE]
Sender::Sender( const QString &portName,
QSerialPort::BaudRate baudRate,
QSerialPort::DataBits dataBits,
QSerialPort::Parity parity,
QSerialPort::StopBits stopBits,
QSerialPort::FlowControl flowControl ) :
m_port( portName ),
m_baudRate( baudRate ),
m_dataBits( dataBits ),
m_parity( parity ),
m_stopBits( stopBits ),
m_flowControl( flowControl )
{
// Set the port name
m_port.setPortName( m_portName );[/CODE]I should have written m_portName instead m_port.
I replaced "QSerialPort m_port;" on "QSerialPort m_serialPort;" And I delete the m_portName because I can to write m_serialPort( portName ) in the "Sender" constructor.
It is my project: [url]https://github.com/8Observer8/ComPort[/url]
-
Since you are using exceptions, please take a look at the corresponding chapter in Qt's documentation.
-
Please, show me what do you mean? Cannot I use exceptions?
-
Yes, you can, but there are some rules. Read "this":http://qt-project.org/doc/qt-5/exceptionsafety.html
-
Thank you very much! :)