-rw-r--r-- | noncore/apps/opie-console/io_serial.cpp | 14 | ||||
-rw-r--r-- | noncore/apps/opie-console/profile.cpp | 2 | ||||
-rw-r--r-- | noncore/apps/opie-console/test/console.pro | 15 | ||||
-rw-r--r-- | noncore/apps/opie-console/test/main.cpp | 13 | ||||
-rw-r--r-- | noncore/apps/opie-console/test/sender.ui | 60 | ||||
-rw-r--r-- | noncore/apps/opie-console/test/senderui.cpp | 47 | ||||
-rw-r--r-- | noncore/apps/opie-console/test/senderui.h | 23 |
7 files changed, 170 insertions, 4 deletions
diff --git a/noncore/apps/opie-console/io_serial.cpp b/noncore/apps/opie-console/io_serial.cpp index 77ced85..929aeff 100644 --- a/noncore/apps/opie-console/io_serial.cpp +++ b/noncore/apps/opie-console/io_serial.cpp @@ -35,24 +35,28 @@ void IOSerial::close() { } else { emit error(Refuse, tr("Not connected")); } } bool IOSerial::open() { + qWarning("open"); if (!m_fd) { + qWarning("going to open %s", m_device.latin1()); struct termios tty; m_fd = ::open(m_device, O_RDWR | O_NOCTTY | O_NONBLOCK); if (m_fd < 0) { + qWarning(" fd < 0 "); emit error(CouldNotOpen, strerror(errno)); return FALSE; } tcgetattr(m_fd, &tty); /* Baud rate */ int speed = baud(m_baud); if (speed == -1) { + qWarning("speed -1"); emit error(Refuse, tr("Invalid baud rate")); } cfsetospeed(&tty, speed); cfsetispeed(&tty, speed); /* Take care of Space / Mark parity */ @@ -110,20 +114,23 @@ bool IOSerial::open() { m_read = new QSocketNotifier(m_fd, QSocketNotifier::Read, this); m_error = new QSocketNotifier(m_fd, QSocketNotifier::Exception, this); connect(m_read, SIGNAL(activated(int)), this, SLOT(dataArrived())); connect(m_error, SIGNAL(activated(int)), this, SLOT(errorOccured())); return TRUE; } else { + qWarning("opened"); emit error(Refuse, tr("Device is already connected")); m_fd = 0; return FALSE; } } void IOSerial::reload(const Profile &config) { m_device = config.readEntry("Device", SERIAL_DEFAULT_DEVICE); + qWarning( "Dev" +m_device ); + qWarning( "Conf:" +config.readEntry("Device") ); m_baud = config.readNumEntry("Baud", SERIAL_DEFAULT_BAUD); m_parity = config.readNumEntry("Parity", SERIAL_DEFAULT_PARITY); m_dbits = config.readNumEntry("DataBits", SERIAL_DEFAULT_DBITS); m_sbits = config.readNumEntry("StopBits", SERIAL_DEFAULT_SBITS); m_flow = config.readNumEntry("Flow", SERIAL_DEFAULT_FLOW); } @@ -147,21 +154,20 @@ int IOSerial::baud(int baud) const { void IOSerial::errorOccured() { emit error(ClosedUnexpected, strerror(errno)); close(); } void IOSerial::dataArrived() { - QByteArray array; - char buf[4096]; + QByteArray array(4096); - int len = read(m_fd, buf, 4096); + int len = read(m_fd, array.data(), 4096); if (len == 0) close(); if (len < 0) return; - array.setRawData(buf, len); + array.resize( len ); emit received(array); } QString IOSerial::identifier() const { return "serial"; } diff --git a/noncore/apps/opie-console/profile.cpp b/noncore/apps/opie-console/profile.cpp index 1a94619..ffd672e 100644 --- a/noncore/apps/opie-console/profile.cpp +++ b/noncore/apps/opie-console/profile.cpp @@ -75,15 +75,17 @@ void Profile::setTerminal( int term ) { } /* config stuff */ void Profile::clearConf() { m_conf.clear(); } void Profile::writeEntry( const QString& key, const QString& value ) { + qWarning("key %s value %s", key.latin1(), value.latin1() ); m_conf.replace( key, value ); } void Profile::writeEntry( const QString& key, int num ) { + qWarning("num"); writeEntry( key, QString::number( num ) ); } void Profile::writeEntry( const QString& key, bool b ) { writeEntry( key, QString::number(b) ); } void Profile::writeEntry( const QString& key, const QStringList& lis, const QChar& sep ) { diff --git a/noncore/apps/opie-console/test/console.pro b/noncore/apps/opie-console/test/console.pro new file mode 100644 index 0000000..721b820 --- a/dev/null +++ b/noncore/apps/opie-console/test/console.pro @@ -0,0 +1,15 @@ +TEMPLATE = app +#CONFIG = qt warn_on release +CONFIG = qt debug +#DESTDIR = $(OPIEDIR)/bin +HEADERS = ../io_layer.h ../io_serial.h \ + senderui.h ../profile.h +SOURCES = ../io_layer.cpp ../io_serial.cpp \ + ../profile.cpp \ + main.cpp senderui.cpp +INTERFACES = sender.ui +INCLUDEPATH += $(OPIEDIR)/include +DEPENDPATH += $(OPIEDIR)/include +LIBS += -lqpe -lopie +TARGET = test + diff --git a/noncore/apps/opie-console/test/main.cpp b/noncore/apps/opie-console/test/main.cpp new file mode 100644 index 0000000..f5e8722 --- a/dev/null +++ b/noncore/apps/opie-console/test/main.cpp @@ -0,0 +1,13 @@ +#include <qpe/qpeapplication.h> + +#include "senderui.h" + + +int main( int argc, char* argv[] ){ +QPEApplication app(argc,argv ); + +SenderUI ui; +app.showMainWidget(&ui); + +return app.exec(); +}
\ No newline at end of file diff --git a/noncore/apps/opie-console/test/sender.ui b/noncore/apps/opie-console/test/sender.ui new file mode 100644 index 0000000..092f6e3 --- a/dev/null +++ b/noncore/apps/opie-console/test/sender.ui @@ -0,0 +1,60 @@ +<!DOCTYPE UI><UI> +<class>Sender</class> +<widget> + <class>QWidget</class> + <property stdset="1"> + <name>name</name> + <cstring>Form1</cstring> + </property> + <property stdset="1"> + <name>geometry</name> + <rect> + <x>0</x> + <y>0</y> + <width>596</width> + <height>480</height> + </rect> + </property> + <property stdset="1"> + <name>caption</name> + <string>Form1</string> + </property> + <vbox> + <property stdset="1"> + <name>margin</name> + <number>11</number> + </property> + <property stdset="1"> + <name>spacing</name> + <number>6</number> + </property> + <widget> + <class>QMultiLineEdit</class> + <property stdset="1"> + <name>name</name> + <cstring>MultiLineEdit1</cstring> + </property> + </widget> + <widget> + <class>QPushButton</class> + <property stdset="1"> + <name>name</name> + <cstring>PushButton1</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>&Send</string> + </property> + </widget> + </vbox> +</widget> +<connections> + <connection> + <sender>PushButton1</sender> + <signal>clicked()</signal> + <receiver>Form1</receiver> + <slot>slotSend()</slot> + </connection> + <slot access="public">slotSend()</slot> +</connections> +</UI> diff --git a/noncore/apps/opie-console/test/senderui.cpp b/noncore/apps/opie-console/test/senderui.cpp new file mode 100644 index 0000000..fc93c04 --- a/dev/null +++ b/noncore/apps/opie-console/test/senderui.cpp @@ -0,0 +1,47 @@ +#include <stdlib.h> +#include <stdio.h> + +#include <qmultilineedit.h> + +#include "../profile.h" +#include "../io_serial.h" + + +#include "senderui.h" + +SenderUI::SenderUI() + : Sender() { + + /* we do that manually */ + Profile prof; + QString str = "/dev/ttyS0"; + prof.writeEntry("Device",str ); + prof.writeEntry("Baud", 115200 ); + + qWarning("prof " + prof.readEntry("Device") + " " + str); + ser = new IOSerial(prof); + connect(ser, SIGNAL(received(const QByteArray& ) ), + this, SLOT(got(const QByteArray&) ) ); + + if ( ser->open() ) + qWarning("opened!!!"); + else + qWarning("could not open"); + + + +} +SenderUI::~SenderUI() { + +} +void SenderUI::slotSend() { + QCString str = MultiLineEdit1->text().utf8(); + qWarning("sending: %s", str.data() ); + ser->send( str ); +} +void SenderUI::got(const QByteArray& ar) { + for ( uint i = 0; i < ar.count(); i++ ) { + printf("%c", ar[i] ); + } + //printf("\n"); +} diff --git a/noncore/apps/opie-console/test/senderui.h b/noncore/apps/opie-console/test/senderui.h new file mode 100644 index 0000000..bc69f5d --- a/dev/null +++ b/noncore/apps/opie-console/test/senderui.h @@ -0,0 +1,23 @@ +#ifndef SENDER_UI_H +#define SENDER_UI_H + +#include <qcstring.h> + +#include "sender.h" + +class IOSerial; +class SenderUI : public Sender { + Q_OBJECT +public: + SenderUI(); + ~SenderUI(); + +public slots: + void slotSend(); + void got(const QByteArray& ); +private: + IOSerial* ser; +}; + + +#endif |