void QDSActionPrivate::connectToChannel() { // Connect slots to response messages if ( mResponseChannel == 0 ) { mResponseChannel = new QtopiaIpcAdaptor( responseChannel() ); QtopiaIpcAdaptor::connect( mResponseChannel, MESSAGE( heartbeat() ), this, SLOT(heartbeatSlot()), QtopiaIpcAdaptor::SenderIsChannel ); QtopiaIpcAdaptor::connect( mResponseChannel, MESSAGE( response() ), this, SLOT(responseSlot()), QtopiaIpcAdaptor::SenderIsChannel ); QtopiaIpcAdaptor::connect( mResponseChannel, MESSAGE( response( const QDSData& ) ), this, SLOT(responseSlot(QDSData)), QtopiaIpcAdaptor::SenderIsChannel ); QtopiaIpcAdaptor::connect( mResponseChannel, MESSAGE( error( const QString& ) ), this, SLOT(errorSlot(QString)), QtopiaIpcAdaptor::SenderIsChannel ); }
void HttpGet::run() { if (!m_connection->m_networkAccessManager) { m_message = "Invalid Network Access Manager"; m_status = Error; finished(); return; } m_status = Running; QNetworkRequest request; request.setUrl(m_url); QLOG_DEBUG() << "Retrieving:" << m_url; m_networkReply = m_connection->m_networkAccessManager->get(request); connect(m_networkReply, SIGNAL(readyRead()), &m_timer, SLOT(start())); if (m_file) { connect(m_networkReply, SIGNAL(readyRead()), this, SLOT(readToFile())); connect(m_networkReply, SIGNAL(finished()), this, SLOT(closeFile()) ); } else { connect(m_networkReply, SIGNAL(readyRead()), this, SLOT(readToString())); } connect(m_networkReply, SIGNAL(finished()), this, SLOT(finishedSlot()) ); connect(m_networkReply, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(errorSlot(QNetworkReply::NetworkError))); m_timer.start(); }
/*! * \brief Rs232DevicePrivate::Rs232DevicePrivate - CTor * \param info * \param parent */ Rs232DevicePrivate::Rs232DevicePrivate(const QSerialPortInfo &info, QObject *parent) : QSerialPort(info, parent) { m_debug = false; qDebug() << headDebug << "CTor" << info.portName(); // Faccio partire un timer: se entro il suo timeout non ho trovato il converter mi autodistruggo connect (&m_timerAutodelete, SIGNAL(timeout()), this, SLOT(deleteLater())); m_timerAutodelete.start(2000); connect (&m_timerSendGetId, SIGNAL(timeout()), this, SLOT(sendMsgGetId())); // Sono riuscito a configurare la porta? if (configPort()) { // Si, la porta e' fisica e non virtuale. m_statoParser = STATO_RS232_DLE_STX; m_checksum = 0; connect(this, SIGNAL(error(QSerialPort::SerialPortError)), this, SLOT(errorSlot(QSerialPort::SerialPortError))); connect(this, SIGNAL(readyRead()), this, SLOT(fromDeviceSlot())); // Spedisco il messaggio per sapere se e' collegato un converter sendMsgGetId(); } }
/*! * \brief SerialDev::configPort - Parametri per configurare la porta seriale * \return true se riesce a configurare correttamente la porta seriale */ bool SerialDev::configPort (const QString &name) { bool debugVal = m_debug; m_debug = true; setPortName(name); if (!open(QIODevice::ReadWrite)) { QString testo = QString("Can't open %1, error code %2") .arg(portName()).arg(error()); debug(testo); return false; } if (!setBaudRate(QSerialPort::Baud115200)) { QString testo = QString("Can't set rate 115200 baud to port %1, error code %2") .arg(portName()).arg(error()); debug(testo); return false; } if (!setDataBits(QSerialPort::Data8)) { QString testo = QString("Can't set 8 data bits to port %1, error code %2") .arg(portName()).arg(error()); debug(testo); return false; } if (!setParity(QSerialPort::NoParity)) { QString testo = QString("Can't set no patity to port %1, error code %2") .arg(portName()).arg(error()); debug(testo); return false; } if (!setStopBits(QSerialPort::OneStop)) { QString testo = QString("Can't set 1 stop bit to port %1, error code %2") .arg(portName()).arg(error()); debug(testo); return false; } if (!setFlowControl(QSerialPort::NoFlowControl)) { QString testo = QString("Can't set no flow control to port %1, error code %2") .arg(portName()).arg(error()); debug(testo); return false; } connect(this, SIGNAL(error(QSerialPort::SerialPortError)), this, SLOT(errorSlot(QSerialPort::SerialPortError))); connect(this, SIGNAL(readyRead()), this, SLOT(fromDeviceSlot())); m_debug = debugVal; return true; }
GBluetoothServer::GBluetoothServer(QBluetoothServiceInfo::Protocol x,QObject *parent,VM *pVM) : QBluetoothServer(x,parent) { this->pVM = pVM; this->pParaList = ring_list_new(0); strcpy(this->cerrorEvent,""); strcpy(this->cnewConnectionEvent,""); QObject::connect(this, SIGNAL(error(QBluetoothServer::Error)),this, SLOT(errorSlot())); QObject::connect(this, SIGNAL(newConnection()),this, SLOT(newConnectionSlot())); }
void HttpPost::run() { if (!m_connection->m_networkAccessManager) { m_message = "Invalid Network Access Manager"; m_status = Error; finished(); return; } m_status = Running; QNetworkRequest request; request.setUrl(m_url); request.setHeader(QNetworkRequest::ContentTypeHeader, "text/plain; charset=UTF-8"); QByteArray data(m_postData.toLatin1()); qDebug() << "POST:" << data; m_networkReply = m_connection->m_networkAccessManager->post(request, data); QList<QByteArray> headers(m_networkReply->request().rawHeaderList()); QList<QByteArray>::iterator iter; for (iter = headers.begin(); iter != headers.end(); ++iter) { qDebug() << "HEADER:" << *iter << m_networkReply->request().rawHeader(*iter); } connect(m_networkReply, SIGNAL(readyRead()), &m_timer, SLOT(start())); connect(m_networkReply, SIGNAL(readyRead()), this, SLOT(readToString())); connect(m_networkReply, SIGNAL(finished()), this, SLOT(finishedSlot()) ); connect(m_networkReply, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(errorSlot(QNetworkReply::NetworkError))); m_timer.start(); }
void CtrlComm::run() { openComm(); carSocket_ = new QTcpSocket(); // carSocket_->setSocketOption(QAbstractSocket::SendBufferSizeSocketOption, // 0); connect(carSocket_, SIGNAL(connected()), this, SLOT(connectedSlot()), Qt::DirectConnection); connect(carSocket_, SIGNAL(disconnected()), this, SLOT(disconnectedSlot()), Qt::DirectConnection); connect(carSocket_, SIGNAL(readyRead()), this, SLOT(readyReadSlot()), Qt::DirectConnection); connect(carSocket_, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(errorSlot(QAbstractSocket::SocketError)), Qt::DirectConnection); connect(this, SIGNAL(sendToServerSignal(QByteArray)), this, SLOT(sendToServer(QByteArray)), Qt::DirectConnection); QSettings *configIniRead = new QSettings("xcar.ini", QSettings::IniFormat); QString ipResult = configIniRead->value("/cmd_server/ip").toString(); QString portResult = configIniRead->value("/cmd_server/port").toString(); delete configIniRead; char tmpdata[5] = {(unsigned char)0xff, (unsigned char)0x02, (unsigned char)0x02, (unsigned char)0x80, (unsigned char)0xff}; connectToServer(ipResult.toStdString().c_str(), portResult.toShort()); while (true) { #if 1 if (!serial_->isOpen()) { sleep(1); // emit sendToServerSignal(tmpdata); LOG_ERROR << "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; continue; } unsigned char tmp[5]; memset(&tmp, 0x00, 5); int count = serial_->readData((char *)tmp, 5, timeOut); if (count <= 0) { // emit sendToServerSignal(tmpdata); continue; } // LOG_ERROR<<"1 ===================================== not // find data\n "; // carSocket_->write((const char*)tmp, count); // LOG_ERROR<<"2 ===================================== not // find data\n "; // carSocket_->waitForBytesWritten(timeOut); // LOG_ERROR<<"3 ===================================== not find // data\n "; // continue; QByteArray okData((const char *)tmp); serialArray_.append(okData); // LOG_DEBUG<<"[Serial], recv data: "<<serialArray_.toHex(); // 0xFF 0xFF char spos[2] = {(unsigned char)0xff}; char epos[2] = {(unsigned char)0xff}; int startPos = serialArray_.indexOf(spos, 0); if (startPos == -1) { LOG_ERROR << "1 not find data\n "; serialArray_.clear(); continue; } int endPos = serialArray_.indexOf(epos, startPos + 1); if (endPos == -1) { LOG_ERROR << "2 not find data\n "; continue; } if (endPos - startPos == 1) { serialArray_.clear(); //TODO !!! LOG_ERROR << "3 not find data\n "; continue; } QByteArray serialBuf = serialArray_.mid(startPos, endPos - startPos + 1); if (serialBuf[1] == 0x02 && (serialBuf[3] != 0x80 || serialBuf[3] != 0x7f)) { QByteArray t = serialBuf.toHex(); // LOG_ERROR<<t; } serialArray_.clear(); char light_front[5] = {(unsigned char)0xff, (unsigned char)0x03, (unsigned char)0x03, (unsigned char)0x01}; char light_back[5] = {(unsigned char)0xff, (unsigned char)0x03, (unsigned char)0x03, (unsigned char)0x02}; char power[3] = {(unsigned char)0xff, (unsigned char)0x07}; if (serialBuf.indexOf(light_front, 0) == 0) { emit sendLightMode(1); } else if (serialBuf.indexOf(light_back, 0) == 0) { emit sendLightMode(2); } else if (serialBuf.indexOf(power, 0) == 0) { short a = serialBuf[2]; short b = serialBuf[3]; int value = a << 8 | b; emit showLeftPowerSignal(value); } #endif // sleep(0.1); if (isConnected_) { // f = sendToServer(tmp); // QByteArray serialBuf; // serialBuf.append("test socket\n"); emit sendToServerSignal(serialBuf); // LOG_INFO<<"*****************\n"; // printf("send: %x\n", tmp); } else ; // printf("not connected !\n"); } }
//reply finished void Downloader::finishedSlot(){ if (reply->error() == QNetworkReply::NoError){ QVariant possibleRedirectUrl = reply->attribute(QNetworkRequest::RedirectionTargetAttribute); if (!possibleRedirectUrl.toUrl().isEmpty()) { //there is redirect //make new request //emit sendInfo("Redirected to "+possibleRedirectUrl.toUrl().toString()); reply->deleteLater(); reply = nam.get(QNetworkRequest(possibleRedirectUrl.toUrl())); //when this reply is finished this slot will get re-triggered emit sendInfo("Redirecting..."); emit sendInfo(""); tmpBuffer.clear(); //CLEAR THE GODDAMN BUFFER!!!! file->resize(0); //reconnect since deleting reply disconnects all slots QObject::connect(reply, SIGNAL(finished()), this, SLOT(finishedSlot())); QObject::connect(reply, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(errorSlot(QNetworkReply::NetworkError))); QObject::connect(reply, SIGNAL(downloadProgress(qint64, qint64)), this, SLOT(progressSlot(qint64, qint64))); } else { //all ok emit sendInfo("Downloader exiting with no errors"); //Read whatever is left tmpBuffer.append(reply->readAll()); file->write(tmpBuffer); file->close(); emit sendInfo("Handing off work to updater"); emit finisheddl(); } } else { if (!erroremitted) { emit sendInfo("Network err code: "+reply->errorString()); erroremitted=true; emit finisheddl(); } } }
// Slot to be triggered from the updater thread void Downloader::startDl() { if (reply==nullptr) { //Prep appdata file if (!QDir(config->APPDATA).exists()) { QDir().mkpath(config->APPDATA); } file = new QFile(config->APPDATA+"\\patch.zip"); file->open(QFile::WriteOnly | QFile::Truncate); //nam.setNetworkAccessible(QNetworkAccessManager::Accessible); reply = nam.get(QNetworkRequest(url)); emit sendInfo("Starting download"); emit sendInfo(""); //empty line which will be removed for the progress text QObject::connect(reply, SIGNAL(finished()), this, SLOT(finishedSlot())); QObject::connect(reply, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(errorSlot(QNetworkReply::NetworkError))); QObject::connect(reply, SIGNAL(downloadProgress(qint64, qint64)), this, SLOT(progressSlot(qint64, qint64))); QObject::connect(reply, SIGNAL(readyRead()), this, SLOT(writeToFileSlot())); } else { emit sendInfo("You can't start the same download several times!!!"); } }
#include "jsonreader.h" #include <QJsonDocument> #include <QJsonObject> #include <QJsonValue> #include <QJsonArray> #include <QDebug> JsonReader::JsonReader(ProgressBar *progressBar) { QObject::connect(this,SIGNAL(progressBarSetup(QString,int,int)),progressBar,SLOT(setInfo(QString,int,int))); QObject::connect(this,SIGNAL(progressBarUpdate(QString,int)),progressBar,SLOT(setValue(QString,int))); QObject::connect(this,SIGNAL(progressFinished()),progressBar,SLOT(progressFinished())); emit progressBarSetup(QString("Checking for updates"),0,0); QObject::connect(&m_ApiReader,SIGNAL(sigJsonData(QString,ApiReader::DataType)),this,SLOT(readHttpData(QString,ApiReader::DataType))); QObject::connect(&m_ApiReader,SIGNAL(networkError(QString,NetworkHandler::ErrorCode)),this,SLOT(errorSlot(QString,NetworkHandler::ErrorCode))); m_ApiReader.startCheckUpdateNecessary(); m_IterationStep = eIndexData; } void JsonReader::triggerLeagueRead() { emit progressBarSetup(QString("Downloading leagues ..."),0,0); m_ApiReader.startLeageJsonDownload(); } void JsonReader::triggerFixtureRead(QString leagueCaption,int matchday) { emit progressBarSetup(QString("Downloading Fixtures ..."),0,0); m_ApiReader.startFixtureJsonDownload(m_LeagueNameMap.key(leagueCaption),matchday); }