void MainWindow::keyPressEvent(QKeyEvent *qkeyevent) //Tatstertur ............. { switch(qkeyevent->key()) { case Qt::Key_Up: vor(); break; case Qt::Key_Down: back(); break; case Qt::Key_Right: rechts(); break; case Qt::Key_Left: links(); break; case Qt::Key_Space: stop(); break; case Qt::Key_X: hoch(); break; case Qt::Key_Y: runter(); break; } }
int main(){ window w( vector( 128, 64 ), 1); ball b( w, vector( 70, 30 ), 9, vector( 5, 2 ) ); line test(w,vector (128,0),vector(128,64)); muur boven(w,vector (0,0),vector(128,4), vector (128,0), false,5,vector (1,-1)); muur rechts(w,vector (124,0),vector(128,64), vector (4,64), false,5,vector (-1,1)); muur links(w,vector (0,0),vector(4,64), vector (0,64), false,5,vector (-1,1)); muur onder(w,vector (0,60),vector(128,64), vector (128,0),false,5,vector (1,-1)); drawable * objects[] = { &b,&boven,&rechts,&links,&onder}; for(;;){ w.clear(); for( auto & p : objects ){ p->draw(); } wait_ms(20); for( auto & p : objects ){ p->update(); } for( auto & p : objects ){ for( auto & other : objects ){ p->interact( *other ); } } } }
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); //IPS Stationen Arduino-Simulation /*ui->s1x->setValue(1000);ui->s1y->setValue(1000);ui->s1z->setValue(0); ui->s2x->setValue(2000);ui->s2y->setValue(1000);ui->s2z->setValue(0); ui->s3x->setValue(2000);ui->s3y->setValue(0000);ui->s3z->setValue(1000); ui->s4x->setValue(1000);ui->s4y->setValue(0000);ui->s4z->setValue(0); ui->s5x->setValue(0000);ui->s5y->setValue(0000);ui->s5z->setValue(1000); ui->s6x->setValue(0000);ui->s6y->setValue(1000);ui->s6z->setValue(0); ui->s7x->setValue(0000);ui->s7y->setValue(2000);ui->s7z->setValue(1000); ui->s8x->setValue(1000);ui->s8y->setValue(2000);ui->s8z->setValue(0); ui->s9x->setValue(2000);ui->s9y->setValue(2000);ui->s9z->setValue(1000);*/ //Ende IPS Stationen; //Karte erstellen map = new QGraphicsScene(this); ui->graphicsView->setScene(map); ui->graphicsView->scale(0.1,0.1); //zoomen der Karte so ist platz für 7,5 meter // GUI Einstellunegn setWindowTitle(tr("Zentrale - Sturzflug@daedalus")); //PortBox ComPort Einstellungen //COM Ports suchen foreach (QextPortInfo info, QextSerialEnumerator::getPorts()) ui->XbeeportBox->addItem(info.portName); foreach (QextPortInfo info, QextSerialEnumerator::getPorts()) ui->IPSportBox->addItem(info.portName); //selber eintargen Möglich machen ui->XbeeportBox->setEditable(true); ui->IPSportBox->setEditable(true); //Port Box STOP //BaudRateBox kompatible Werte mit Win und Linux ui->XbeeBaudRateBox->addItem("1200", BAUD1200); ui->XbeeBaudRateBox->addItem("2400", BAUD2400); ui->XbeeBaudRateBox->addItem("4800", BAUD4800); ui->XbeeBaudRateBox->addItem("9600", BAUD9600); ui->XbeeBaudRateBox->addItem("19200", BAUD19200); ui->XbeeBaudRateBox->addItem("115200", BAUD115200); ui->XbeeBaudRateBox->setCurrentIndex(3); //Vorsicht nur Ändern wenn auch PorSettings geändert ui->IPSBaudRateBox->addItem("115200", BAUD115200); //IPS nur mit dieser BaudRate ui->IPSBaudRateBox->setCurrentIndex(0); //Vorsicht nur Ändern wenn auch PorSettings geändert // BaudRateBox STOP //ComText Box ui->XbeeComText->setReadOnly(true); ui->IPSComText->setReadOnly(true); //ComText Box STOP Xbeetimer = new QTimer(this); Xbeetimer->setInterval(80); IPStimer = new QTimer(this); IPStimer->setInterval(155); //könnte probleme lösen Refreshtimer = new QTimer(this); Refreshtimer->setInterval(ui->refreshTime->value()); //Aktuallisierungsrate aus der GUI in ms //Vordefinierte Einstelluneg PortSettings Xbeesettings = {BAUD9600, DATA_8, PAR_NONE, STOP_1, FLOW_OFF, 10}; Xbeeport = new QextSerialPort(ui->XbeeportBox->currentText(), Xbeesettings, QextSerialPort::Polling); PortSettings IPSsettings = {BAUD115200, DATA_8, PAR_NONE, STOP_1, FLOW_OFF, 10}; IPSport = new QextSerialPort(ui->IPSportBox->currentText(), IPSsettings, QextSerialPort::Polling); //Vordefinierte Einstellungen STOP //Connectoren ----------------------------------------------------------------------------------------------------- //globale Connectoren //connect(ui->TestButton, SIGNAL(clicked()), SLOT(onTestButtonClicked())); connect(ui->reset_imu, SIGNAL(clicked()), SLOT(onreset_imuClicked())); //Xbee connectoren connect(ui->XbeeBaudRateBox, SIGNAL(currentIndexChanged(int)), SLOT(XbeeonBaudRateChanged(int))); connect(ui->XbeeportBox, SIGNAL(editTextChanged(QString)), SLOT(XbeeonPortNameChanged(QString))); connect(Xbeetimer, SIGNAL(timeout()), SLOT(XbeeonReadyRead())); connect(Xbeeport, SIGNAL(readyRead()), SLOT(XbeeonReadyRead())); //IPS connectoren connect(ui->IPSBaudRateBox, SIGNAL(currentIndexChanged(int)), SLOT(IPSonBaudRateChanged(int))); connect(ui->IPSportBox, SIGNAL(editTextChanged(QString)), SLOT(IPSonPortNameChanged(QString))); connect(IPStimer, SIGNAL(timeout()), SLOT(IPSonReadyRead())); connect(IPSport, SIGNAL(readyRead()), SLOT(IPSonReadyRead())); connect(ui->posStationSetzen, SIGNAL(clicked()), SLOT(setPosStation())); //refresh connector ZENTRALES Takt-Element connect(Refreshtimer, SIGNAL(timeout()), SLOT(refresh())); connect(ui->setRefresh, SIGNAL(clicked()), SLOT(setrefreshrate())); // Karte connect(ui->deletkoordinaten, SIGNAL(clicked()), SLOT(deletekoordinaten())); //Einstellungen connect(ui->setAbweichung, SIGNAL(clicked()), SLOT(setAbweichung())); connect(ui->setZiel, SIGNAL(clicked()), SLOT(setZiel())); connect(ui->setZieltolleranz, SIGNAL(clicked()), SLOT(setZieltolleranz())); connect(ui->setHoehe, SIGNAL(clicked()), SLOT(setHoehe())); connect(ui->setFilter, SIGNAL(clicked()), SLOT(setFilter())); connect(ui->setHindernisse, SIGNAL(clicked()), SLOT(setHindernisse())); connect(ui->setSchub, SIGNAL(clicked()), SLOT(setRueckschub())); connect(ui->ultraschall, SIGNAL(stateChanged(int)), SLOT(setUltraschall())); //Handsteuerung connect(ui->Handsteuerung, SIGNAL(stateChanged(int)), SLOT(setHandsteuerung())); connect(ui->vor, SIGNAL(clicked()), SLOT(vor())); connect(ui->back, SIGNAL(clicked()), SLOT(back())); connect(ui->links, SIGNAL(clicked()), SLOT(links())); connect(ui->rechts, SIGNAL(clicked()), SLOT(rechts())); connect(ui->stop, SIGNAL(clicked()), SLOT(stop())); connect(ui->hoch, SIGNAL(clicked()), SLOT(hoch())); connect(ui->runter, SIGNAL(clicked()), SLOT(runter())); connect(ui->abwurf, SIGNAL(clicked()), SLOT(abwurf())); //ENDE Connectoren ------------------------------------------------------------------------------------------------ setup(); }