Я пытаюсь запустить клуб программирования в своей школе, и нецелесообразно физически подключать Pi к kb, мышке и монитору, чтобы все они автоматически запускали VNC, а мы подключались к машинам с помощью Ultra-VNC. Программы написаны в общем каталоге, и Eclipse C ++ работает на хосте; поэтому весь вывод программы просматривается через VNC.
Все было хорошо при программировании на Python и когда мы начали использовать C ++. Тем не менее, я попал в стену Брик, пытаясь получить графику для отображения. Я мог бы создать программу, которая, казалось бы, работала, но давала только вывод терминала — она никогда не отображала бы рисунки на экране. Пытаясь решить проблему, в какой-то момент подключил клавиатуру и мышь и заметил, что они, казалось, были распознаны (включился лазер, переключился Caps Lock и т. Д.), Но они ничего не сделали, когда переместили / набрали текст.
В конце концов копейка начала волноваться, так как я все больше запутывался в том, почему ни у кого больше не было этой проблемы, учитывая, что, похоже, многие люди используют openvg, и я начал задумываться о проблеме kb / mouse.
Я попытался подключить выход HDMI к монитору дома (все еще аналоговые d-sub!), И вот, физический кб и мышь работали. Тогда это стало действительно странно!
Как-то у меня одновременно работают 2 рабочих стола. Физическая клавиатура и мышь управляют одним, а VNC — другим. Если я запускаю окно терминала на «Физическом» рабочем столе, оно не отображается на рабочем столе «VNC» и наоборот — они кажутся независимыми, хотя это не совсем так.
Когда я запускаю графический исполняемый файл на «физическом» рабочем столе, он работает нормально и может управляться только с помощью физического кб. Когда я запускаю его на рабочем столе ‘VNC’, им можно управлять только с помощью VNC kb, но вывод выводится на физический экран.
Я действительно не понимаю этого!
Я вроде как должен иметь возможность запускать программы через VNC, но мне нужно уметь сообщать коду, который я запускаю, какой рабочий стол выводить, так как кажется, что он по умолчанию неверный. На самом деле, было бы предпочтительнее, чтобы VNC подключался к существующему рабочему столу HDMI, а не запускал новый, но я не могу выяснить, как заставить InVC сделать это.
Код здесь, но я думаю, что проблема может быть в функции init (), которая находится в библиотеке, поэтому, вероятно, лучше установить VNC на нужный рабочий стол …
Заранее благодарю за любую помощь!
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
extern "C" {
#include "VG/openvg.h"#include "VG/vgu.h"#include "fontinfo.h"#include "shapes.h"}
using namespace std;
int main (void) {
int width, height;
VGfloat w2, h2, w;
char s[3];
init(&width, &height); // Graphics initialization
w2 = (VGfloat)(width/2);
h2 = (VGfloat)(height/2);
w = (VGfloat)w;
Start(width, height); // Start the picture
Background(0, 0, 0); // Black background
Fill(44, 77, 232, 1); // Big blue marble
Circle(w2, 0, w); // The "world"Fill(255, 255, 255, 1); // White text
TextMid(w2, h2, "hello, world", SerifTypeface, width/10); // Greetings
End(); // End the picture
fgets(s, 2, stdin); // Pause until RETURN]
finish(); // Graphics cleanup
exit(0);
}
Смотрите последний комментарий — заброшенный openvg и использующий X Windows.