У меня возникает странная функциональность при выполнении следующего кода на Mac и в установке Ubuntu.
Мой код устанавливает соединение с моим Arduino, который затем проверяет, подключен ли клиент (он успешно соединяется), и затем я использую код Ruby для отправки команды на мой Arduino через t.puts
с использованием гема socket
, который затем выводит все, что я посылаю, на последовательный выход, используя программное обеспечение Arduino. Это легкая часть.
Когда на Mac выполняется следующее, мой последовательный выводит следующее, что правильно:
{power, tv} # t.puts "{power, tv}"
Однако, когда тот же код выполняется в Ubuntu, я получаю следующее в последовательном выводе, как будто он пытается подключиться снова. Это не дает вышеупомянутый последовательный вывод, который это делает на Mac:
Connecting... # t.puts "{power, tv}" # Connecting... (text is actually coming from Arduino not the below code).
Я дважды проверил, что мой Arduino, IP, код и порт верны (к чему он подключается). Я просто не вижу причины, по которой выходные данные будут отличаться на Mac и Ubuntu.
Есть ли какие-либо причины, по которым это могло бы произойти, и можно ли изменить следующий код таким образом, чтобы он правильно отправлялся во все среды?
#!/usr/bin/ruby
require "socket"
#Thread.new {
begin
puts "Connecting to 10.1.1.45..."
t = TCPSocket.new("10.1.1.45", 80)
rescue
puts "error : #{$!}"
else
t.print "{power,tv}"
t.close
puts "Sent command..."
end
#}
Имейте в виду, что я могу нормально подключиться к 10.1.1.45 (я могу PING и т. Д.), Так что реальный код Arduino здесь не виноват, насколько я знаю, потому что я тестирую это, подключая его к Mac и Ubuntu и выполнение точно такой же код выше. Не стесняйтесь задавать мне любые дополнительные вопросы, и я буду рад ответить на них как можно более подробно, чтобы помочь мне в моем пути.
Заранее спасибо.