kmobiletools
testphonedevice.cpp
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
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) )
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))
00074 enginedata->setRevision( kmobiletoolsATJob::parseInfo( buffer ) );
00075
00076 buffer=p_device->sendATCommand(this, "AT+CGMI\r", probeTimeout);
00077 if( !KMobileTools::SerialManager::ATError(buffer) )
00078 enginedata->setManufacturer( kmobiletoolsATJob::parseInfo( buffer ) );
00079
00080 buffer=p_device->sendATCommand(this, "AT+CPMS=?\r", probeTimeout);
00081 if( !KMobileTools::SerialManager::ATError(buffer) )
00082 temp = kmobiletoolsATJob::parseInfo( buffer );
00083 else temp.clear();
00084
00085
00086 buffer=p_device->sendATCommand(this, "AT+CPBS=?\r", probeTimeout);
00087 if( !KMobileTools::SerialManager::ATError(buffer) )
00088 temp = kmobiletoolsATJob::parseInfo( buffer );
00089 else temp.clear();
00090
00091
00092 buffer=p_device->sendATCommand(this, "AT+CGMM\r", probeTimeout);
00093 if(!KMobileTools::SerialManager::ATError(buffer))
00094 enginedata->setModel( kmobiletoolsATJob::parseInfo( buffer ) );
00095
00096 buffer=p_device->sendATCommand(this, "AT+CSCS=?\r", probeTimeout);
00097 if( !KMobileTools::SerialManager::ATError(buffer) )
00098 temp = kmobiletoolsATJob::parseInfo( buffer );
00099 else temp.clear();
00100
00101
00102 buffer=p_device->sendATCommand(this, "AT+CSCA?\r", probeTimeout);
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"