summaryrefslogtreecommitdiff
authorzecke <zecke>2002-10-24 20:11:15 (UTC)
committer zecke <zecke>2002-10-24 20:11:15 (UTC)
commit56c10d4383d5de607727ca8bd1ef1b9c8e2e3047 (patch) (side-by-side diff)
treee484aa872b706c665f5e8ea756cc4754df887c33
parent91e3749c56ce2fd1280ff2114ba3dc9301181b6d (diff)
downloadopie-56c10d4383d5de607727ca8bd1ef1b9c8e2e3047.zip
opie-56c10d4383d5de607727ca8bd1ef1b9c8e2e3047.tar.gz
opie-56c10d4383d5de607727ca8bd1ef1b9c8e2e3047.tar.bz2
intent to fix modem
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/opie-console/dialer.cpp28
-rw-r--r--noncore/apps/opie-console/io_modem.cpp8
-rw-r--r--noncore/apps/opie-console/io_serial.cpp22
-rw-r--r--noncore/apps/opie-console/io_serial.h2
-rw-r--r--noncore/apps/opie-console/test/senderui.cpp10
5 files changed, 54 insertions, 16 deletions
diff --git a/noncore/apps/opie-console/dialer.cpp b/noncore/apps/opie-console/dialer.cpp
index 5056040..ce2b688 100644
--- a/noncore/apps/opie-console/dialer.cpp
+++ b/noncore/apps/opie-console/dialer.cpp
@@ -57,13 +57,13 @@ Dialer::Dialer(const Profile& profile, int fd, QWidget *parent, const char *name
//m_profile.writeEntry("DialPrefix1", "ATDT");
//m_profile.writeEntry("Termination", "\n");
usercancel = 0;
cleanshutdown = 0;
- fcntl(m_fd, F_SETFL, O_NONBLOCK);
+// fcntl(m_fd, F_SETFL, O_NONBLOCK);
desc = new QLabel(QObject::tr("Dialing number: %1").arg(m_profile.readEntry("Number")), this);
progress = new QProgressBar(this);
status = new QLabel("", this);
status->setFrameStyle(QFrame::Panel | QFrame::Sunken);
cancel = new QPushButton(QObject::tr("Cancel"), this);
@@ -100,12 +100,13 @@ void Dialer::slotCancel()
}
else accept();
}
void Dialer::reset()
{
+ qWarning("reset");
switchState(state_cancel);
}
void Dialer::slotAutostart()
{
//state = state_preinit;
@@ -131,56 +132,63 @@ void Dialer::dial(const QString& number)
reject();
}
}
void Dialer::trydial(const QString& number)
{
+ qWarning("TryDial:%s", number.latin1() );
if(state != state_cancel) switchState(state_preinit);
if(cleanshutdown)
{
+ qWarning("HangupString " + m_profile.readEntry("HangupString"));
send(m_profile.readEntry("HangupString"));
//send("+++ATH");
send("");
}
if(state != state_cancel)
{
switchState(state_init);
//send("ATZ");
- send(m_profile.readEntry("InitString"));
+ qWarning("Init String " + m_profile.readEntry("InitString") );
+// send(m_profile.readEntry("InitString", "AT"));
+ send("AT\r");
QString response2 = receive();
if(!response2.contains("\nOK\r"))
reset();
}
- if(state != state_cancel)
+/* if(state != state_cancel)
{
switchState(state_options);
- send("ATM3L3");
+ qWarning("ATM3l3");
+ send("ATM3L3\r");
QString response3 = receive();
if(!response3.contains("\nOK\r"))
reset();
}
+*/
if(state != state_cancel)
{
switchState(state_dialtone);
- send("ATX1");
+ send("ATX1\r");
QString response4 = receive();
if(!response4.contains("\nOK\r"))
reset();
}
if(state != state_cancel)
{
+ qWarning("progress");
switchState(state_dialing);
- //send(QString("ATDT %1").arg(number));
- send(QString("%1 %2").arg(m_profile.readEntry("DialPrefix1")).arg(number));
+ send(QString("ATDT %1\r").arg(number));
+// send(QString("%1 %2").arg(m_profile.readEntry("DialPrefix1")).arg(number));
QString response5 = receive();
if(!response5.contains("\n" + m_profile.readEntry("DefaultConnect")))
{
if(response5.contains("BUSY"))
switchState(state_dialing);
else
@@ -202,19 +210,21 @@ void Dialer::trydial(const QString& number)
void Dialer::send(const QString& msg)
{
QString m = msg;
int bytes;
QString termination;
- //qWarning("Sending: '%s'", m.latin1());
+ qWarning("Sending: %s", m.latin1());
- termination = "\r";
+/* termination = "\r";
//termination = m_profile.readEntry("Termination");
if(termination == "\n") m = m + "\n";
else if(termination == "\r") m = m + "\r";
else m = m + "\r\n";
+*/
+ m = m.replace(QRegExp("\n"), "\r");
bytes = ::write(m_fd, m.local8Bit(), strlen(m.local8Bit()));
if(bytes < 0)
{
reset();
}
diff --git a/noncore/apps/opie-console/io_modem.cpp b/noncore/apps/opie-console/io_modem.cpp
index d4ea0b2..b7901b9 100644
--- a/noncore/apps/opie-console/io_modem.cpp
+++ b/noncore/apps/opie-console/io_modem.cpp
@@ -26,17 +26,19 @@ void IOModem::close() {
}
bool IOModem::open() {
bool ret = IOSerial::open();
if(!ret) return false;
- int fd = rawIO();
- Dialer d(m_profile, fd);
+// int fd = rawIO();
+ internDetach();
+ Dialer d(m_profile, m_fd);
int result = d.exec();
- closeRawIO(fd);
+ internAttach();
+// closeRawIO(fd);
if(result == QDialog::Accepted)
{
return true;
}
else
{
diff --git a/noncore/apps/opie-console/io_serial.cpp b/noncore/apps/opie-console/io_serial.cpp
index e6d1688..0540d9e 100644
--- a/noncore/apps/opie-console/io_serial.cpp
+++ b/noncore/apps/opie-console/io_serial.cpp
@@ -201,6 +201,28 @@ QBitArray IOSerial::supports()const {
return ar;
}
bool IOSerial::isConnected() {
return m_connected;
}
+
+/*
+ * this is used to give the
+ * class below IOSerial
+ * the possibility of
+ * exclusive usage
+ */
+void IOSerial::internDetach() {
+ if (m_read )
+ disconnect(m_read, SIGNAL(activated(int)), this, SLOT(dataArrived()));
+ if (m_error )
+ disconnect(m_error, SIGNAL(activated(int)), this, SLOT(errorOccured()));
+}
+/*
+ * give power back
+ */
+void IOSerial::internAttach() {
+ if (m_read )
+ connect(m_read, SIGNAL(activated(int)), this, SLOT(dataArrived()));
+ if (m_error )
+ connect(m_error, SIGNAL(activated(int)), this, SLOT(errorOccured()));
+}
diff --git a/noncore/apps/opie-console/io_serial.h b/noncore/apps/opie-console/io_serial.h
index 7a1ea1d..edceac6 100644
--- a/noncore/apps/opie-console/io_serial.h
+++ b/noncore/apps/opie-console/io_serial.h
@@ -47,12 +47,14 @@ public slots:
void send(const QByteArray &);
bool open();
void close();
void reload(const Profile &);
protected:
int baud(int baud) const;
+ void internDetach();
+ void internAttach();
protected slots:
void dataArrived();
void errorOccured();
protected:
QSocketNotifier *m_read;
QSocketNotifier *m_error;
diff --git a/noncore/apps/opie-console/test/senderui.cpp b/noncore/apps/opie-console/test/senderui.cpp
index 2ce3f6d..4026808 100644
--- a/noncore/apps/opie-console/test/senderui.cpp
+++ b/noncore/apps/opie-console/test/senderui.cpp
@@ -17,15 +17,15 @@
SenderUI::SenderUI()
: Sender() {
/* we do that manually */
Profile prof;
- QString str = "/dev/ttyS0";
+ QString str = "/dev/bty0";
prof.writeEntry("Device",str );
- prof.writeEntry("Baud", 115200 );
+ prof.writeEntry("Baud", 19200 );
qWarning("prof " + prof.readEntry("Device") + " " + str);
ser = new IOSerial(prof);
connect(ser, SIGNAL(received(const QByteArray& ) ),
this, SLOT(got(const QByteArray&) ) );
@@ -48,19 +48,21 @@ void SenderUI::slotSendFile() {
this, SLOT(fileTransComplete()));
}
void SenderUI::slotSend() {
QCString str = MultiLineEdit1->text().utf8();
qWarning("sending: %s", str.data() );
+ str = str.replace( QRegExp("\n"), "\r");
ser->send( str );
}
void SenderUI::got(const QByteArray& ar) {
+ qWarning("got:");
for ( uint i = 0; i < ar.count(); i++ ) {
printf("%c", ar[i] );
}
- //printf("\n");
+ printf("\n");
}
void SenderUI::fileTransComplete() {
qWarning("file transfer complete");
}
@@ -69,7 +71,7 @@ void SenderUI::send() {
}
void SenderUI::slotRev(){
qWarning("Going to receive!");
FileReceive *rev = new FileReceive( FileReceive::SZ, ser );
rev->receive();
-} \ No newline at end of file
+}