Cleint и Server в одном флаконе.

ingener.solovyev
Offline
Зарегистрирован: 12.02.2013
import processing.net.*;

Server server;        
Client client;
int html_port = 80;
int arduino_port = 82;
String IP_arduino = "88.85.206.140";
String t= "";

void setup()
{
  size(400, 400);
  server = new Server(this, html_port);
  delay (3000);
  client = new Client(this, IP_arduino, arduino_port);
  delay (3000);
  client.write ("1");
  background(0);
}

void draw()
{
  //Считывание данных с ARDUINO
 while (client.available()>0){
  char ch = client.readChar(); 
  if (ch == '!') {t = client.readStringUntil('?');}
      delay(20);
 }
 
 println (t);
  
  // Запускаем html СЕРВЕР
  server = server.available();
  if (server != null) {
        String whatClientSaid = server.readString();
        if (whatClientSaid != null) {
          server.write ("<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'");
          server.write ("<html>");
          server.write ("<head> ");
          server.write ("<meta http-equiv= refresh  content=10;>");
          server.write ("<meta http-equiv='Content-Type' content='text/html; charset='utf-8' /> ");
          server.write ("</head> ");
          server.write ("<body>");
          server.write ("<b><font size='+3'>Микроклимат серверной </font></b>");
          server.write ("<br> ");
          server.write ("<b>Датчик №1</b>");
          server.write ("<br> ");
          server.write ("Температура: ");
//          server.write (t);
          server.write (" *C");
          server.write ("<br>");
          server.write ("Влажность:   ");
 //         server.write (h);
          server.write (" %");
          server.write ("<br> ");
          server.write ("<b>Датчик №2</b>");
          server.write ("<br> ");
          server.write ("Температура: ");
//          server.write (t1);
          server.write (" *C");
          server.write ("<br> ");
          server.write ("<b>Датчик №3</b>");
          server.write ("<br> ");
          server.write ("Температура: ");
//          server.write (t2);
          server.write (" *C");
          server.write ("<br> ");
          server.write ("<hr>");
          server.write ("<br> ");
          server.write ("<b>Заданные нормы температур и влажности:</b>");
          server.write ("<br> ");
          server.write ("Верхняя температурная граница регулирования: ");
 //         server.write (temperature_up);
          server.write (" *C");
          server.write ("<br> ");
          server.write ("Нижняя температурная граница регулирования: ");
//          server.write (temperature_down);
          server.write (" *C");
          server.write ("<br> ");
          server.write ("Максимум нормальной влажности воздуха: ");
//          server.write (humdity);
          server.write (" %");
          server.write ("<br> ");
          server.write ("<hr>");
          server.write ("<br> ");
          server.write ("<b>Уставки сигналов аварии:</b>");
          server.write ("<br> ");
          server.write ("Верхняя температурная граница сигнала аварии: ");
//          server.write (signal_T_up);
          server.write (" *C");
          server.write ("<br> ");
          server.write ("Нижняя температурная граница сигнала аварии: ");
//          server.write (signal_T_down);
          server.write (" *C");
          server.write ("<br> ");
          server.write ("Аварийный максимум влажности воздуха: ");
//          server.write (signal_H_up);
          server.write (" %");
          server.write ("<br> ");
          server.write ("<hr>");
          server.write ("<br> ");
          server.write ("<b>Состояние климата</b>");
          server.write ("<br>");
          server.write ("</body></html>");
          server.stop();
        }
        }//Конц html сервера
                
      } 
      
      

Не компелирует, ошибка:

The constructor Server(Server, int) is undefined.

 

С чем связано? С тем что и клиент и сервер инициализируются?

GraninDm
Offline
Зарегистрирован: 01.08.2013

В процессинге не силен, может так

Server myServer;

...

myServer = new Server(this, html_port);

GraninDm
Offline
Зарегистрирован: 01.08.2013

Код отсюда

http://processing.org/reference/libraries/net/Server.html

работает?

ingener.solovyev
Offline
Зарегистрирован: 12.02.2013

GraninDm пишет:

Код отсюда

http://processing.org/reference/libraries/net/Server.html

работает?

 

Нет. ведь myServer это всего лишь переменная, которую я объявил еще в начале.

 

По отдельности конструкции работают, а вместе - ошибка компиляции.

GraninDm
Offline
Зарегистрирован: 01.08.2013

Версия процессинга какая?

GraninDm
Offline
Зарегистрирован: 01.08.2013

И еще

server = server.available(); так нельзя делать

available() Returns the next client in line with a new message

http://processing.org/reference/libraries/net/Server_available_.html

GraninDm
Offline
Зарегистрирован: 01.08.2013
Client myClient = server.available();
  if (myClient != null) {
        String whatClientSaid = myClient.readString();

Вроде так нужно

У меня под 1,5 запускается

ingener.solovyev
Offline
Зарегистрирован: 12.02.2013

GraninDm пишет:

Client myClient = server.available();
  if (myClient != null) {
        String whatClientSaid = myClient.readString();

Вроде так нужно

У меня под 1,5 запускается

Спасиб, приду домой попробую.

 

Может еще подскажите

 

import processing.net.*;

Client client;
int arduino_port = 82;
String IP_arduino = "88.85.206.140";
long time=0;
char x;

void setup() {
  size(200, 200);
  client = new Client(this, IP_arduino, arduino_port);
  delay (3000);

}

void draw() {
  time ++;
  client.write ("GET Processing 2.0 Server. IP adress: "+Server.ip()+" Request: "+time);
  delay (1000);
  while (client.available() > 0){
   x = client.readChar();
  println (x);
  }
   background (0);
   fill (255);
   
 }

Вроде код простой, но выдает

 


java.lang.NullPointerException
	at processing.net.Client.write(Unknown Source)
	at processing.net.Client.write(Unknown Source)
	at sketch_130802b.draw(sketch_130802b.java:36)
	at processing.core.PApplet.handleDraw(PApplet.java:2270)
	at processing.core.PGraphicsJava2D.requestDraw(PGraphicsJava2D.java:243)
	at processing.core.PApplet.run(PApplet.java:2141)
	at java.lang.Thread.run(Thread.java:662)

 

Откуда вылазит NullPointerException ?????

 

Скетч можете запускать в своем процессинге, IP в нем прописан подключенного ардуино. 

 

GraninDm
Offline
Зарегистрирован: 01.08.2013

Под 1.5

client.write ("GET Processing 2.0 Server. IP adress: ");

Запустилось

 

Вот на это Server.ip() руглнулось, удалил.

Больше не подскажу, пусть гуры процессинга помогают.

И все же версия процессинга какая?

ingener.solovyev
Offline
Зарегистрирован: 12.02.2013

GraninDm пишет:

Под 1.5

client.write ("GET Processing 2.0 Server. IP adress: ");

Запустилось

 

Вот на это Server.ip() руглнулось, удалил.

Больше не подскажу, пусть гуры процессинга помогают.

И все же версия процессинга какая?

2.18