дополнение к проекту 21 (excel робот)

Тема в разделе "Iskra JS, Espruino, Йодо", создана пользователем azazel1, 1 авг 2018.

Метки:
  1. azazel1

    azazel1 Нуб

    Хочу дополнить 21 проект в наборе йодо. Хотел сделать так, чтобы когда микроконтроллер 5 раз записывал данные, он нажимал на ctrl+s(сохранение). Но у меня не получается, буква s не нажимается эмуляцией клавиатурой. Что делать?

    Код (Javascript):

    var senso = require('@amperka/light-sensor').connect(A2);
    var thermo = require('@amperka/thermometer').connect(A4);
    var button = require('@amperka/button').connect(P3);
    var kb = require('@amperka/usb-keyboard');
    var timer = require('@amperka/timer').create(5);

    var shet = 0;

    button.on('press', function() {
      if(timer.isRunning()){
        timer.stop();
      } else {
        timer.tick().run();
      }
    });

    timer.on('tick', function() {
      shet = shet+1;
      var time = getTime();
      var lx = senso.read('lx');
      var c = thermo.read('C');
     
      kb.type(time.toFixed(0) +'\t' +
             lx.toFixed(0) + '\t' +
             c.toFixed(0) + '\n');
    });


    if (shet === 5){
      kb.tap(kb.MODIFY.CTRL, 's');
    }
     
     
  2. azazel1

    azazel1 Нуб

    каждый раз, когда микро записывает данные, переменная shet увеличивается на один, когда shet = 5, должно появиться окно сохранения
     
  3. ostrov

    ostrov Гуру

    Почему бы
    Код (Java):
    if (shet === 5){
      kb.tap(kb.MODIFY.CTRL, 's');
    }
    не вставить внутрь функции?
     
    ИгорьК нравится это.
  4. azazel1

    azazel1 Нуб

    это всё равно не решает мою проблему
     
  5. ostrov

    ostrov Гуру

    Что именно не получается? Сама функция раз в 5 сек работает? Раз в 25 сек условие срабатывает?

    И еще, рассчитано на один раз записать или каждые 5 раз? Если второй, то не вижу сброса счетчика.
     
    ИгорьК нравится это.
  6. azazel1

    azazel1 Нуб

    Я хочу просто сделать так, чтобы эмуляция клавиатуры нажала на ctrl+s. Когда это получится, изменю свой код, чтобы был корректнее
     
  7. azazel1

    azazel1 Нуб

    но не работает эта функция:
    kb.tap(kb.MODIFY.CTRL,'s');
     
  8. azazel1

    azazel1 Нуб

    поменял kb.tap(kb.MODIFY.CTRL,'s'); на kb.tap(kb.MODIFY.CTRL, kb.KEY.S);
    теперь выдаёт эту ошибку:
    in function called from system
    Uncaught Error: Function or String not supplied!
    at line 1 col 51
    E.sendUSBHID([0,0,0,0,0,0,0,0]),b&&setTimeout(b,10)

    может сейчас кто-то чем-то может помочь?
     
  9. sys

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

  10. azazel1

    azazel1 Нуб

    спасибо, проблема решена!