• Skip to content
  • Skip to link menu
KDE 4.2 API Reference
  • KDE API Reference
  • kdepim
  • Sitemap
  • Contact Us
 

kmobiletools

testphonedevice.cpp

Go to the documentation of this file.
00001 /***************************************************************************
00002    Copyright (C) 2007
00003    by Marco Gulino <marco@kmobiletools.org>
00004 
00005    This program is free software; you can redistribute it and/or modify
00006    it under the terms of the GNU General Public License as published by
00007    the Free Software Foundation; either version 2 of the License, or
00008    (at your option) any later version.
00009 
00010    This program is distributed in the hope that it will be useful,
00011    but WITHOUT ANY WARRANTY; without even the implied warranty of
00012    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00013    GNU General Public License for more details.
00014 
00015    You should have received a copy of the GNU General Public License
00016    along with this program; if not, write to the
00017    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
00018    Boston, MA 02110-1301, USA.
00019  ***************************************************************************/
00020 #include "testphonedevice.h"
00021 #include <libkmobiletools/serialdevice.h>
00022 #include <libkmobiletools/enginedata.h>
00023 #include <QFile>
00024 
00025 TestPhoneDeviceJob::TestPhoneDeviceJob(const QString &devicename, AT_Engine* parent): kmobiletoolsATJob(NULL, parent),
00026     b_found(false), enginedata(0), b_closeafterimei(true)
00027 {
00028     this->deviceName=devicename;
00029     p_device=new KMobileTools::SerialManager(parent, parent->objectName(), devicename);
00030 }
00031 
00032 
00033 TestPhoneDeviceJob::~TestPhoneDeviceJob()
00034 {
00035     delete p_device;
00036     delete enginedata;
00037 }
00038 
00039 void TestPhoneDeviceJob::run() {
00040     if(! QFile::exists(deviceName)) { return; }
00041     if(!p_device->open(this)) return;
00042     enginedata=new KMobileTools::EngineData(0);
00043     enginedata->setProperty("devicePath", path() );
00044     QString buffer;
00045     const int probeTimeout=600;
00046     buffer=p_device->sendATCommand(this, "AT+CGSN\r", probeTimeout);
00047     kDebug() <<"Sent CGSN probe, got" << buffer;
00048     if( !KMobileTools::SerialManager::ATError(buffer) ) // Phone imei
00049         enginedata->setIMEI( kmobiletoolsATJob::parseInfo( buffer ) );
00050         else {
00051             p_device->close();
00052             return;
00053         }
00054     if(b_closeafterimei) p_device->close();
00055     b_found=true;
00056 }
00057 
00058 FindDeviceDataJob::FindDeviceDataJob(const QString &devicename, AT_Engine* parent): TestPhoneDeviceJob(devicename, parent)
00059 {
00060     b_closeafterimei=false;
00061 }
00062 
00063 void FindDeviceDataJob::run() {
00064     TestPhoneDeviceJob::run();
00065     if(!found()) {
00066         p_device->close();
00067         return;
00068     }
00069     QString buffer, temp;
00070     const int probeTimeout=600;
00071 
00072     buffer=p_device->sendATCommand(this, "AT+CGMR\r", probeTimeout);
00073     if(!KMobileTools::SerialManager::ATError(buffer)) // Phone revision
00074         enginedata->setRevision( kmobiletoolsATJob::parseInfo( buffer ) );
00075 
00076     buffer=p_device->sendATCommand(this, "AT+CGMI\r", probeTimeout);
00077     if( !KMobileTools::SerialManager::ATError(buffer) ) // Phone manufacturer
00078         enginedata->setManufacturer( kmobiletoolsATJob::parseInfo( buffer ) );
00079 
00080     buffer=p_device->sendATCommand(this, "AT+CPMS=?\r", probeTimeout);
00081     if( !KMobileTools::SerialManager::ATError(buffer) ) // SMS Slots
00082         temp = kmobiletoolsATJob::parseInfo( buffer );
00083     else temp.clear();
00084 //     enginedata->setSMSSlots( kmobiletoolsATJob::parseList( temp.replace("AT+CPMS=?", "") ) ); @TODO port
00085 
00086     buffer=p_device->sendATCommand(this, "AT+CPBS=?\r", probeTimeout);
00087     if( !KMobileTools::SerialManager::ATError(buffer) ) // PhoneBook Slots
00088         temp = kmobiletoolsATJob::parseInfo( buffer );
00089     else temp.clear();
00090 //     enginedata->setPbSlots( kmobiletoolsATJob::parseList( temp.replace("AT+CPBS=?", "") ) ); @TODO port
00091 
00092     buffer=p_device->sendATCommand(this, "AT+CGMM\r", probeTimeout);
00093     if(!KMobileTools::SerialManager::ATError(buffer)) // Phone model
00094         enginedata->setModel( kmobiletoolsATJob::parseInfo( buffer ) );
00095 
00096     buffer=p_device->sendATCommand(this, "AT+CSCS=?\r", probeTimeout);
00097     if( !KMobileTools::SerialManager::ATError(buffer) ) // Charset
00098         temp = kmobiletoolsATJob::parseInfo( buffer );
00099     else temp.clear();
00100 //     enginedata->setCharsets( kmobiletoolsATJob::parseList( temp ) ); @TODO port
00101 
00102     buffer=p_device->sendATCommand(this, "AT+CSCA?\r", probeTimeout); // SMS Center
00103     if(!KMobileTools::SerialManager::ATError(buffer))
00104     {
00105         temp=kmobiletoolsATJob::parseInfo( buffer);
00106         QRegExp tempRegexp;
00107         tempRegexp.setPattern( ".*\"(.*)\".*");
00108         if(tempRegexp.indexIn(temp)>=0) temp=tempRegexp.cap( 1 ); else temp.clear();
00109         enginedata->setSMSCenter( temp );
00110     }
00111     p_device->close();
00112 }
00113 
00114 #include "testphonedevice.moc"

kmobiletools

Skip menu "kmobiletools"
  • Main Page
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members
  • Related Pages

kdepim

Skip menu "kdepim"
  • akonadi
  •   clients
  •   kabc
  •   kcal
  •   kcm
  • akregator
  • console
  •   kabcclient
  •   konsolekalendar
  • kaddressbook
  • kalarm
  •   lib
  • kdgantt
  • kdgantt1
  • kjots
  • kleopatra
  • kmail
  • kmobiletools
  • knode
  • knotes
  • kontact
  • kontactinterfaces
  • korganizer
  •   korgac
  • kpilot
  • ktimetracker
  •   doc
  • libkdepim
  • libkholidays
  • libkleo
  • libkpgp
  • maildir
Generated for kdepim by doxygen 1.5.4
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal