Перейти к содержимому

Oleshe

Пользователи
  • Публикации

    155
  • Зарегистрирован

  • Посещение

  • Победитель дней

    12

Сообщения, опубликованные пользователем Oleshe


  1. В 23.12.2021 в 09:51, Zer0Galaxy сказал:

    @Oleshe, приведи пример кода, который выполняется на роботе и ПК. Какие сетевые платы ты используешь? Я помню обнаруживал, что беспроводные платы первого уровня не работали даже на дистанции в 1 блок, хотя платы 2-го уровня на том же месте работали прекрасно. Объяснения этому я не нашел.

    Если только то что относится к процессу:
    if io.read() == 'hi' then
         modem.broadcast(1, 'hi')
    end
    Мы что-нибудь вводим, действие, а затем происходит отправка чего-либо, робот просто ждёт события.
    Плата на пк 2-я, а  на роботе 1-я
    Изменено: куда вставлять то что на ссылке, какой файл?


  2. Я отсылаю на порт робота, возьмём 1, функцией broadcast, a робот не принимает с event.pull, оно не принимает ничего, почему? Но если с пк на пк, то получается. У робота есть сетевая карта, и пк тоже, так почему? Может из-за того что я на сервере?


  3. Я сижу и надумал сделать себе что то типа смс, но, когда запускаю сравнение с even.pull даже с задержкой 2, оно не даёт пользывателю написать сообщение, выглядит это примерно так: запрашиваем от сервера свободный порт, получает его и сравнивает цифра, ставит отметку на тот порт который ему прислал сервер, открывает его, после ждёт сообщения(even.pull) и ждёт сообщения для отправки(io.read) если сообщение отправлено то оно посылает порт для получателя и само сообщение, сервер отправляет сообщение по порту на планшет (или ПК) но указанный порт, если мы введём exit то мы отправим что ранее записанный порт программой свободен сервер отметит, и мы закрываем порт, если сообщение приходит, то мы выводим его на экран.2021-10-13_14_35_06.thumb.png.2ed31a74321e8526b68abc37237f8b53.png

    Также может прислать просто пустое сообщение.

    извините что так много но я очь много времени потратил ;-;

    event = require('event')
    cmp = require('component')
    os = require('os')
    modem = cmp.modem
    print('удачность соединения:')
    print(modem.open(1))
    two = false
    thre = false
    four = false
    five = false
    beep = cmp.computer.beep()
    function prog()
      while boo == false do
        _, _, _, _, _, sus = event.pull("modem_message")
        print(sus)
        if sus == 'sms_chek' then
          if two == false then
            modem.broadcast(16, '2')
            print('послано 2')
            two = true
          else
            os.sleep(0.5)
            if thre == false then
              modem.broadcast(16, '3')
              print('послано 3')
              thre = true
            else
              os.sleep(0.5)
              if four == false then
                modem.broadcast(16, '4')
                print('послано 4')
                four = true
              else
                os.sleep(0.5)
                if five == false then
                  modem.broadcast(16, '5')
                  print('послано 5')
                  five = true
                else
                  print('ОШИБКА, НЕТ МЕСТ <SMS>')
                end
              end
            end
          end
        end
        if sus == 'sms_exit' then
          _, _, _, _, _, oi = event.pull("modem_message")
          if oi == '2' then
            two = false
          else if oi == '3' then
            thre = fasle
           end
          end
        if oi == '4' then
          four = false
        else if oi == '5' then
          five = false
        end
        end
        end
        if sus == 'sms_messege' then
          _, _, _, _, _, s = event.pull("modem_message")
          os.sleep(1)
          _, _, _, _, _, sms = event.pull("modem_message")
          if s == '' then
            print('чуть не произошла ошибка')
          else
          print('oправленно: ' .. sms .. '  ' .. 'на порт: ' .. s)
          portsms = tonumber(s)
          smska = sms
          modem.broadcast(portsms, 'SMS')
          os.sleep(1)
          modem.broadcast(portsms, sms)
          end
        end
      end
    end
    boo = false
    function shell ()
      while exit == false do
        as = io.read()
        if as == 'exit' then exit = true
      end
        end
    end
    shell()
    prog()

    ето код сервера

    реально много получается

    код: планшета:

    local cmp = require('component')
    local modem = cmp.modem
    local event = require('event')
    local exit = false
    print(modem.open(16))
    local a = 0
    modem.open(16)
    sms = ''
    while sms == '' do
      modem.broadcast(1, 'sms_chek')
      print('попытка соединения с сервером')
      _, _, _, _, _, sms = event.pull("modem_message")
      if sms == '2' then
       modem.close(16)
       modem.open(2)
       port = '2'
       print('порт: 2')
        print(modem.open(2))
      else if sms == '3' then
        modem.close(16)
        modem.open(3)
        port = '3'
        print('порт: 3')
        print(modem.open(3))
      else if sms == '4' then
        modem.close(16)
        modem.open(4)
        port = '4'
        print('порт: 4')
        print(modem.open(4))
      else if sms == '5' then
        modem.close(16)
        modem.open(5)
        port = '5'
        print('порт: 5')
        print(modem.open(5))
      end
    end
    end
    end
    end
    smsRAM = false
    RAM = ''
    function send ()
      while exit == false do
        _, _, _, _, _, sms = event.pull(2, "modem_message")
        if sms == '' then
          
        else if sms == 'SMS' then
          print('получен смс:')
          _, _, _, _, _, sms = event.pull(2, "modem_message")
          RAM = sms
          smsRAM = true
          print(sms)
        end
        end
        local sa = io.read()
        if sa == 'exit' then
           exit = true
           modem.broadcast(1, 'sms_exit')
           modem.broadcast(1, port)
           
           cmp.computer.beep()
        else
          modem.broadcast(1, 'sms_messege')
          os.sleep(1)
          modem.broadcast(1, sa)
          local sa =io.read()
          modem.broadcast(1, sa)
          print('отправлено')
        end
        if sa == '' then
          if smsRAM == true then
            print(RAM)
            smsRAM = false
          end
        end
      end
    end
    send()

    еше раз извините что много, прост хочется решить проблему

     

    • Грусть 1
×
×
  • Создать...