Чтение порта джойстика на сетевом компе в processing. Нужна помощь.

Maxfr
Offline
Зарегистрирован: 30.06.2017
Здравствуйте форумчане, прошу помощи!
Необходимо заставить Processing читать порт джойстика на удаленном компе.
Есть 2-а скетча по отдельности все работает - "скрестить" их не выходит.
 
Скетч чтения кликов мыши на сетевом компе:
 
import processing.net.*; 
Client myClient; 
int clicks;
 
void setup() { 
  // Connect to the local machine at port 10002.
  // This example will not run if you haven't
  // previously started a server on this port.
  myClient = new Client(this, "127.0.0.1", 10002);  // (подставлял свои значения все работает без проблем)//
  // Say hello
  myClient.write("Hi there");
 
void mouseReleased() {
  // Count the number of mouse clicks:
  clicks++;
  // Tell the server:
  myClient.write("Mouse pressed " + clicks + " times.\n");
}
 
void draw() { 
  // Change the background if the mouse is pressed
  if (mousePressed) {
    background(255);
  } else {
    background(0);
  }
}
 
Скетч чтения порта джойстика на компе:
 
import processing.serial.*;    //обработчик джойстика//
import org.gamecontrolplus.*;  //обработчик джойстика//
import java.io.*;              //обработчик джойстика//
 
Serial myPort;
PFont fontA;
ControlIO controll;
ControlDevice device;
ControlSlider sliderX;
byte X; //вперед/назад//
 
int c;
 
void setup() 
{
  size(200, 200);
  {
  String portName = Serial.list()[0];
  myPort = new Serial(this, portName, 9600);
  fontA = loadFont("Aharoni-Bold-20.vlw");
  textFont(fontA, 40);
  controll = ControlIO.getInstance(this);
  device = controll.getDevice("Logitech Extreme 3D");
  device.setTolerance(0.05f);
  sliderX = device.getSlider(0); //описание нужных слайдеров джойстика//
}
}
 
void draw()
   background(255, 200);
  { 
  X = byte(sliderX.getValue()  * (-90));
  myPort.write(X);  //запись в порт значений//
  fill(c); text("  x"+(X+90), 50, 100);
  }
}
 
Помогите!!!
Maxfr
Offline
Зарегистрирован: 30.06.2017

Всем Бобра.. т.е. Добра!

Maxfr
Offline
Зарегистрирован: 30.06.2017
Вобщем сделал так работает!
Серверная часть с джойстиком:
 
import processing.serial.*;
import org.gamecontrolplus.*;
import java.io.*;
import processing.net.*; 
Serial myPort;
ControlIO controll;
ControlDevice device;
ControlSlider sliderX;
Server myServer;
byte X;
 
void setup ()
{
  size (300, 300);
  myServer = new Server(this, 12345);
  
  String portName = Serial.list()[0];
  myPort= new Serial(this, portName, 9600);
  
  controll = ControlIO.getInstance(this);
  device = controll.getDevice("Logitech Extreme 3D");
  device.setTolerance(0.05f);
  sliderX = device.getSlider(0);
}
 
void draw() {
  background(200);
  X = byte(sliderX.getValue()  * (-90));
  myServer.write(X);
  text(X, 100, 30);
}
 
Клиентская часть принимающая джойстик, нуждается в доработке при 0 показывает 255, но уже есть с чем работать))
 
import processing.serial.*;
import processing.net.*; 
Serial myPort;
Server myServer;
 
Client myClient;
int X;
 
void setup ()
{
  size (300, 300);
  myClient = new Client(this, "192.168.0.9", 12345);
  String portName=Serial.list()[0];
  myPort=new Serial(this, portName, 9600);
  println(Serial.list());
 
}
 
 
void draw() {
  if (myClient.available() > 0) {
  X = myClient.read();
  }
  
  background(200);
  text(X, 100, 30);
}
 
А как передать видео с вебки? println пойдет или чейто другое надо?