Ethernet Shield 2 + Iskra js

Тема в разделе "Iskra JS, Espruino, Йодо", создана пользователем Norbi, 10 июл 2016.

  1. Norbi

    Norbi Нуб

    SPI2.setup({ mosi: B15, miso: B14, sck: B13});
    var eth = require('WIZnet').connect(SPI2, B10);
    var net = require('net');
    eth.setIP();

    Здравствуйте!
    Запустил этот код ( из примера "лабиринт для крыс" ) , получил ошибку ( скриншот ошибки во вложении)
    Подскажите пожалуйста что может быть?
     

    Вложения:

  2. sys

    sys Злобный Буратино Модератор

    DHCP у вас по сети раздается?
     
  3. Norbi

    Norbi Нуб

    Честно говоря незнаю. В настройках сети написано " используя DHCP "
     

    Вложения:

  4. sys

    sys Злобный Буратино Модератор

    из картинки судя по вашему IP 169.254.(компьютер назначает такой адрес сам себе при невозможности получить адрес от DHCP сервера).... делаю вывод что DHCP у вас в сети не работает, поэтому скорее всего и ошибка такая
     
  5. Norbi

    Norbi Нуб

    попробовал вручную дать ip адрес

    SPI2.setup({ mosi:B15, miso:B14, sck:B13 });
    var eth = require("WIZnet").connect(SPI2, B10);
    eth.setIP({ ip : "192.168.254.248" });
    console.log(eth.getIP());

    получил в ответ другой ip

    в консоле написал console.log(eth.getIP());

    получил третий ip

    это правильно?
     

    Вложения:

  6. sys

    sys Злобный Буратино Модератор

  7. Norbi

    Norbi Нуб

    Здравствуйте!
    клиент получает Hello Wirld, а сервер Get только один раз, хотя вроде должен по setinterval каждые 3 секунды.
    В чем может быть ошибка?

    client
    var client = require("net").connect({host: "192.168.1.5", port: 1234}, function() {
    console.log('client connected');
    setInterval(function() {
    client.write('Get');
    }, 1000);
    client.on('data', function(data) {
    console.log(">"+data);
    });
    });

    server
    SPI2.setup({ mosi:B15, miso:B14, sck:B13 });
    var eth = require("WIZnet").connect(SPI2, P10);
    eth.setIP({ ip: '192.168.1.5' });
    console.log("IP = "+eth.getIP().ip);

    var server = require("net").createServer(function(socket) {
    socket.write("Hello World");
    socket.on('data', function(data) {
    console.log(">"+JSON.stringify(data));
    socket.write("Hello");
    });
    });
    server.listen(1234);
     
  8. sys

    sys Злобный Буратино Модератор

    кстати, в редакторе сообщения есть пункт "код" - удобная обертка для кода -горазде легче воспринимать :)

    у вас и клиент и сервер подключены к компьютеру с запущенной консолью?
     
  9. Norbi

    Norbi Нуб

    Клиент - это сервер запущенный на компьтере с открытой консолью. Скрвер - запущен на iskra js тоже с открытой консолью
     
  10. Norbi

    Norbi Нуб

    Причем если запустить эти два сервера на компьютере, то все работает
     
  11. sys

    sys Злобный Буратино Модератор

    Что в данном случае вы называете сервером?

    вы говорите каждые 3 сек, а в коде 1 сек...

    и попробуйте для чистоты эксперимента закомментить console.log на сервер (который сервер на искре)
     
  12. Norbi

    Norbi Нуб

    ладно не важно, оба запущены с консолью в ответ на ваш вопрос
     
  13. sys

    sys Злобный Буратино Модератор

    консоль консоле рознь... ноде по барабану вывод, а вот искре нет - при наличие вывода в виртуальную консоль та должна быть подключена иначе ступор... потому и спрашивал...
     
  14. Norbi

    Norbi Нуб

    Вы про подключение к IDE, если да то подключена
     
  15. sys

    sys Злобный Буратино Модератор

    а если грубо по таймауту несколько запросов сделать - проходят, не пробовали?
     
  16. Norbi

    Norbi Нуб

    Код (C++):
    var client = require("net").connect({host: "192.168.1.6", port: 3003}, function() {
      console.log('client connected');

      setTimeout(function(){ client.write('Get1')} ,1000);

      setTimeout(function(){ client.write('Get2')},2000);

      setTimeout(function(){ client.write('Get3')} ,3000);

      client.on('data', function(data) {
        console.log(">"+data);
      });
     
    });
    срабатывает первый таймаут
    сервер консолит "Get1" и все на этом
    при этом socket.write("Hello"); не проходит
     
  17. sys

    sys Злобный Буратино Модератор

    попробуй добавить \r\n в .write("...\r\n")
     
  18. Norbi

    Norbi Нуб

    не помогло
     
  19. neptun

    neptun Нерд

    Я видимо по тем же граблям гуляю :D
    Код:
    Код (Javascript):
    SPI2.setup({mosi:B15, miso:B14, sck:B13 });
    var eth = require("WIZnet").connect(SPI2, P10);
    eth.setIP();
    var server = require("net").createServer(function(socket) {
    socket.write("Hello World");
    socket.on('data', function(data) {
    console.log(">"+JSON.stringify(data));
    });
    socket.end();
    });
    server.listen(1234);
    Пример взял с http://www.espruino.com/Internet
    Итог: подключение проходит, но данные на сервер Iskra JS не передаются ни в какую....
     
  20. neptun

    neptun Нерд

    Клиент Java, при попытки передать данные, выплевывает ошибку:
    java.net.SocketException: sendto failed: EBADF