пользовательский интерфейс — C ++ Finch Gui через Linker

В моем Adv. C++ В классе мы работаем с роботами Finch, которые являются маленькими USB-роботами, которые имеют множество различных функций, встроенных в аппаратное обеспечение, например, цвет клюва, управление двигателем и множество датчиков.

Нам «дали» C++ Функциональное меню Finch Test построить из GUI от. Мы должны использовать Visual Studio 2017, и C++ создать форму Windows, которая запускает команды из функций Finch, другими словами MyForm.h запускает команды из main.cpp,

Теперь мы (весь класс разбит на четыре группы) полностью остановились, нам нужно выяснить, как запускаться из формы Windows (MyForm.h) вместо командной строки (main.cpp) все еще используя код внутри main.cpp,

У нас также есть доступ к Finch.cpp, который я не смог уместить в этом посте, который, как я вижу, просто связывает зяблик с компьютером, но я подумал, что добавлю его в любом случае на всякий случай.

Мы спросили профессора, как мы должны это делать, и он сказал, «Это то, что вы пытаетесь выяснить» поэтому здесь я прошу всей вашей помощи в попытке выяснить это.

Спасибо всем за ваше время!

main.cpp

#include "./Finch/Finch.h"#include <iostream>

using namespace std;

void printMenu() {
std::cout << "Finch Test Menu: \n"<< "A - print accelerometer values\n"<< "o - print orientation state\n"<< "L - print light sensor values\n"<< "I - print IR sensor values\n"<< "T - print temperature\n"<< "S - print if Finch has been shaken\n"<< "t - print if Finch has been tapped\n"<< "B - turn on buzzer\n"<< "b - turn off buzzer\n"<< "M - turn on Motors\n"<< "X - motor stop\n"<< "O - set beak LED\n"<< "m - print menu\n"<< "Q - quit program\n";
}

int main(int /*argc*/, char* /*argv*/[]) {
Finch myFinch;
if (!myFinch.isInitialized()) {
return -1;
}
double* accel = 0;
int* lightSense = 0;
int* obstacles = 0;
char option = 0;
double temperature;
int leftSpeed, rightSpeed;
int rLED, gLED, bLED;
int frequency;
int shaken, tapped;

int duration;

printMenu();

while(option != 'Q') {
cout << "Enter desired command: ";
cin >> option;
if (cin.fail()) {
// End of input
break;
}
cin.ignore(10000, '\n');
switch(option) {
case 'A':
accel = myFinch.getAccelerations();
cout << "X: " << accel[0]
<< ", Y: " << accel[1]
<< ", Z: " << accel[2] << '\n';
delete [] accel;
accel = 0;
break;
case 'o':
cout << "Level: " << myFinch.isFinchLevel() << '\n'
<< "Beak Up: " << myFinch.isBeakUp() << '\n'
<< "Beak Down: " << myFinch.isBeakDown() << '\n'
<< "Upside Down: " << myFinch.isFinchUpsideDown() << '\n'
<< "Left Wheel Down: " << myFinch.isLeftWingDown() << '\n'
<< "Right Wheel Down: " << myFinch.isRightWingDown() << '\n';
break;
case 'L':
lightSense = myFinch.getLightSensors();
cout << "Left: " << lightSense[0]
<< ", Right: " << lightSense[1] << '\n';
delete [] lightSense;
lightSense = 0;
break;
case 'I':
obstacles = myFinch.getObstacleSensors();
cout << "Left: " << obstacles[0]
<< ", Right: " << obstacles[1] << '\n';
delete [] obstacles;
obstacles = 0;
break;
case 'T':
temperature = myFinch.getTemperature();
cout << temperature << " Celcius\n";
break;
case 'S':
shaken = myFinch.wasShaken();
cout << "Shaken state: " << shaken << '\n';
break;
case 't':
tapped = myFinch.wasTapped();
cout << "Tapped state: " << tapped << '\n';
break;
case 'B':
cout << "Enter frequency in Hz: ";
cin >> frequency;
cin.ignore(10000, '\n');
myFinch.noteOn(frequency);
break;
case 'b':
myFinch.noteOff();
break;
case 'M':
cout << "Enter left wheel speed (-255 to 255): ";
cin >> leftSpeed;
cout << "Enter right wheel speed (-255 to 255): ";
cin >> rightSpeed;
cin.ignore(10000, '\n');
myFinch.setMotors(leftSpeed, rightSpeed);
break;
case 'Z':
cout << "Enter left wheel speed (-255 to 255): ";
cin >> leftSpeed;
cout << "Enter right wheel speed (-255 to 255): ";
cin >> rightSpeed;
cout << "Enter duration in ms: ";
cin >> duration;
cin.ignore(10000, '\n');
myFinch.setMotors(leftSpeed, rightSpeed, duration);
break;
case 'X':
myFinch.setMotors(0, 0);
break;
case 'O':
cout << "Enter red color value (0-255): ";
cin >> rLED;
cout << "Enter green color value (0-255): ";
cin >> gLED;
cout << "Enter blue color value (0-255): ";
cin >> bLED;
cin.ignore(10000, '\n');
myFinch.setLED(rLED, gLED, bLED);
break;
case 'c':
cout << myFinch.counter() << '\n';
break;
case 'm':
printMenu();
break;
default:
break;
}
}
return 0;
}

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]