Пример #1
0
  Cities ()  :  DataSet ()
    { Load ("data/cities/geonames_cities5000.txt");

      city_name = StrColumn   (0);
      latitude  = FloatColumn (1);
      longitude = FloatColumn (2);

      LoadShaders ("shaders/foggy.vert", "shaders/null.frag");

      for (int64 i = 0  ;  i < Count ()  ;  i++)
        { Vect globe_position = LatLongToSphereSurface (GLOBE_RADIUS,
                                                        latitude[i],
                                                        longitude[i]);
          SetPointLocation (i, globe_position.x,
                               globe_position.y,
                               globe_position.z);

          // INFORM ( city_name[i] + ", "
          //        + ToStr (longitude[i]) + ", "
          //        + ToStr (latitude[i]) );

          SetPointColor (i, HSB (0.12, 0.2, 1.0, 1.0));
          SetPointSize (i, 2.0);
        }
      DataReady ();
    }
Пример #2
0
void SerialTool::openPort(){
    /*Get actual configuration */

    QString portName = this->portBox->currentText();
    if(this->port != NULL) {
        std::cout << "Desallocation of previous configuration" << std::endl;
        delete this->port;

    }
    this->port = new QextSerialPort(portName,this->getConfiguration());

    if( port->open(QIODevice::ReadWrite) < 1){
    QMessageBox mesg;
    mesg.setText(QString("Erreur opening").append(portName));
    mesg.exec();



    }
    else{
            this->openButton->setDisabled(true);
            this->closeButton->setDisabled(false);
            /* Disable configuration button  */
            this->Configuration(false);

            this->Rth = new ReadSerial(port,this);
            connect(this->Rth,SIGNAL(DataReady(QByteArray)),this,SLOT(printTerm(QByteArray)));
            Rth->start();



        }
}
Пример #3
0
int PerformFullTransmission(char id, char * temp, char * alt, char * pres)
{
	int retryCount = 0;
	int err = 0;
	//DataReady(id, FULL_TRANSMIT_NUM);
	DataReady(id, 1);
	err = WaitForServerReady(RADIO_TIMEOUT_MS);
	if(err < 0)
	{
		return SERVER_N_READY_ERR;
	}
	
	//SendString("Ready to transmit temperatures.\n");
	TemperatureSend(temp);
	//AltitudeSend(alt);
	//1PressureSend(pres);
	
	err = -1;
	//SendString("Wait for Ack. \n");
	while(err < 0 && retryCount < 3)
	{
		++retryCount;
		err = WaitForAck(RADIO_TIMEOUT_MS);
	}
	if (retryCount >= 3)
	{
		return -1;
	}
	
	return 1; 
}
Пример #4
0
//// Shift Register commands
//   Low level stuff
void dataready(client *c, int argc, sds *argv)
{
  uint32_t dReady;
  safe_strtoul(argv[1],&dReady);
  int ret= DataReady(dReady);

  if(ret==0) addReplyStatus(c, "+OK");
  else addReplyError(c, tubii_err);
}
Пример #5
0
void tSonarTestDigital::NewDepth( float DepthBelowTransducer, bool DepthValid, float /*DepthOffset*/, bool /*DepthOffsetValid*/ )
{
    QString TempStr;

    m_Depth = DepthBelowTransducer;
    m_DepthValid = DepthValid;

    TempStr = QString( "%1" ).arg( DepthBelowTransducer, 0, 'f', 1 );
    if ( DepthValid )
    {
        m_pDigitalDepth->setText( TempStr + " ft" );
        emit DataReady( DepthBelowTransducer );
    }
    else
    {
        m_pDigitalDepth->setText( "----" );
        emit DataReady( -1.0f );
    }
}
Пример #6
0
void NetServer::peerDisconnected_slot(PeerInfo *peerInfo)
{

    qDebug() << tr("Disconnected: ") << peerInfo->id << " ::: "  << peerInfo->address;
        int n = peers.indexOf(peerInfo);
    if (n != -1)
    {
      //   peers.at(n)->pThread->deleteLater();
        peerInfo->pThread->deleteLater();
            peers.removeAt(n);

            disconnect(this, SIGNAL(toThreadsDataReady(QList<float>)),
                       peerInfo->pThread, SLOT(DataReady(QList<float>)));
            disconnect(this, SIGNAL(toThreadsCustomDataReady(QList<float>)),
                       peerInfo->pThread, SLOT(DataReady(QList<float>)));
              emit peerDisconnected(peerInfo);
//emit peerDisconnected(peerInfo);
    }


}
Пример #7
0
void Test::NewData(Draw* , int idx) {
	for (size_t i = 0; i < m_dc->GetDrawsCount(); i++) {
		Draw* draw = m_dc->GetDraw(i);	
		const Draw::VT& vt = draw->GetValuesTable();
		for (size_t j = 0; j < vt.size(); j++) {
			const ValueInfo& vi = vt[j];
			if (vi.state != ValueInfo::PRESENT)
				return;
		}
	}

	DataReady();
}
Пример #8
0
  CountryBorders ()  :  DataSet ()
    { Load ("data/Tissot_indicatrix_world_map_equirectangular_proj_360x180_coords_cleaner2.txt");

      //  Interpret the 0th and 1th column in the data as floats,
      //  and the 2th column as ints
      longitude = FloatColumn (0);
      latitude  = FloatColumn (1);
      drawitude = IntColumn   (2);

      LoadShaders ("shaders/foggy.vert", "shaders/null.frag");

      for (int64 i = 4  ;  i < Count ()  ;  i++)
        { float64 mapped_longitude
            = Range (longitude[i], 0.0, 360.0, -180.0, 180.0) - 0.2;

          //  todo: - .2 because the borders data is a tad off
          float64 mapped_latitude
            = Range (latitude[i], 0.0, 180.0, 90.0, -90.0) + 0.25;

          //  todo: + .25 because the borders data is a tad off

          Vect globe_position = LatLongToSphereSurface (GLOBE_RADIUS - 0.5,
                                                        mapped_latitude,
                                                        mapped_longitude);
          SetPointLocation (i, globe_position.x,
                            globe_position.y,
                            globe_position.z);

          SetPointColor (i, HSB (0.5, 0.0, 0.2, 1.0 * drawitude[i]));
        }

      DataReady ();
      SetDrawMode (GL_LINE_STRIP);

      RotationAnimateChase (0.75);
      TranslationAnimateChase (0.25);
    }
Пример #9
0
void NHandsFree::
eventLoop()
{
	/*
	 * Currently, this function's only purpose is to poll
	 * sockets and push I/O-bound processes.
	 * It's a hack.  It will be here until libnghost gets a
	 * proper I/O notification mechanism.
	 */
	switch (m_hfpd_state) {
	case NHS_HFPD_DISCONNECTED:
		/* Nothing to poll */
		return;

	case NHS_HFPD_CONNECTING: {
		fd_set wfds;
		struct timeval tv;

		/* Test if m_sock is writable */
		FD_ZERO(&wfds);
		FD_SET(m_sock, &wfds);
		tv.tv_sec = tv.tv_usec = 0;
		if (select(m_sock + 1, NULL, &wfds, NULL, &tv) <= 0)
			return;
	}
		ConnectNotify();
		return;

	case NHS_HFPD_CONNECTED:
		/* We just let read return EAGAIN every time here */
		DataReady();
		break;

	default:
		abort();
	}
}
Пример #10
0
uchar *cRingBufferLinear::Get(int &Count)
{
  int Head = head;
  if (getThreadTid <= 0)
     getThreadTid = cThread::ThreadId();
  int rest = Size() - tail;
  if (rest < margin && Head < tail) {
     int t = margin - rest;
     memcpy(buffer + t, buffer + tail, rest);
     tail = t;
     rest = Head - tail;
     }
  int diff = Head - tail;
  int cont = (diff >= 0) ? diff : Size() + diff - margin;
  if (cont > rest)
     cont = rest;
  uchar *p = buffer + tail;
  if ((cont = DataReady(p, cont)) > 0) {
     Count = gotten = cont;
     return p;
     }
  WaitForGet();
  return NULL;
}
Пример #11
0
void NetServer::incomingMessage_slot(PeerInfo *peerInfo, QByteArray msg)
{
    if (msg.startsWith("GET"))              // Http запрос
    {
        peerInfo->dataMode = DataModes(web_browser);
        peerInfo->pThread->SendMessage(httpServer->request(msg));
        return;
    }

    QString s = msg;
    qDebug() << s;
    QStringList sl = s.split('\n');

    for (int i = 0; i < sl.count(); i++)
    {
        QString s = sl[i];
        if (s.indexOf("My name is: ") == 0)
        {
            s = s.remove(0, 12);
            if (s[s.length()-1] == '\n')
                s = s.remove(s.length()-1, 1);
            if (s[s.length()-1] == '\r')
                s = s.remove(s.length()-1, 1);

            QString oldname = peerInfo->name;
            peerInfo->name = s;
            peerInfo->pThread->SendMessage("OK. Your name changed.\n");
            emit peerNameChanged(peerInfo, oldname);
        } else

            if (s.startsWith("Start data transfer"))
            {
  connect(this, SIGNAL(toThreadsDataReady(QList<float>)), peerInfo->pThread, SLOT(DataReady(QList<float>)));
            } else
{
                if (s.startsWith("Set data mode: "))
                {
                    s = s.remove(0, 15);
                    if (s[s.length()-1] == '\n')
                        s = s.remove(s.length()-1, 1);
                    if (s[s.length()-1] == '\r')
                        s = s.remove(s.length()-1, 1);
                    if (s == "raw")
                    {
                        peerInfo->dataMode = DataModes(raw);
                        peerInfo->pThread->SendMessage("OK. Data mode: raw\n");
                    }
                    else if (s == "visualisation_programm")
                    {
                        peerInfo->dataMode = DataModes(matlab);
                        peerInfo->pThread->SendMessage("OK. Data mode: visualisation_programm\n");
                        //qDebug()<<"Подключено";
                    }
                    else if (s == "filtered")
                    {
                        peerInfo->dataMode = DataModes(filtered);
                        peerInfo->pThread->SendMessage("OK. Data mode: filtered\n");
                    }
                    else if (s == "undefined")
                    {
                        peerInfo->dataMode = DataModes(undefined);
                        peerInfo->pThread->SendMessage("OK. Data mode: undefined\n");
                    }
                    else if (s == "matlab")
                    {
                        peerInfo->dataMode = DataModes(matlab);
                        peerInfo->pThread->SendMessage("OK. Data mode: matlab\n");
                    }
                    else
                    {
                        peerInfo->dataMode = DataModes(undefined);
                        peerInfo->pThread->SendMessage("FAIL. Unknown data mode\n");
                    }
                }
            }
        if (s.startsWith("Get: "))
        {
            s=s.remove(0,5);
            QStringList datalist = s.split(",");
           QList<int> dataNumbers;
            foreach (QString st,datalist)
            {
            dataNumbers.append(st.toInt());
            }
//            QString str="you request "+QString::number(dataNumbers.size())+"\n";

//            peerInfo->pThread->SendMessage(str.toAscii());

            emit getServerData(dataNumbers);

        }
Пример #12
0
void NetServer::peerConnected_slot(PeerInfo *peerInfo)
{
    peers.append(peerInfo);
    qDebug() << tr("New connection: ") << peerInfo->id << " ::: "  << peerInfo->address;
    connect(this, SIGNAL(toThreadsCustomDataReady(QList<float>)), peerInfo->pThread, SLOT(DataReady(QList<float>)));
    emit peerConnected(peerInfo);
}