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

Android & OpenComputers

Рекомендуемые сообщения

Рид, я кажется понял, почему у меня не получилось отослать сообщение с windows-приложения. Если получится, сделаю и windows-клиента.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Рид, я кажется понял, почему у меня не получилось отослать сообщение с windows-приложения. Если получится, сделаю и windows-клиента.

 

Потом выложу кроссплатформенный клиент в jar формате. Можно будет с компьютера соединяться. Он в принципе есть, на нем тестировал и отрабатывал соединения с мостом перед тем, как перевести на андроид

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

На мой взгляд сильной визуальной стилизации не нужно, совершенно точно необходима система ключей, но в консольном виде ничего плохого нет. Однако может быть имеет смысл добавить хоткеи куда можно забиндить определённые команды которые будут использоваться чаще других. Однако как мне кажется легче пойти другим путём - создать клиентскую программу на ОК, это будет базовая программа с описанием и примерами что бы любой мог разобраться, так же в теме где будет размещена программа\пастебин приложить различные модули к этой программе (например начиная с elseif) на подачу редстоун сигнала, на проверку состояния и так далее. Чем менее требовательно и минималистичнее тем лучше и нам и вам.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Написал ОС часть, которую можно подгрузить в свою программу и использовать. Написал об этом в своем блоге

Рид, а самого приложения в общем доступе пока что нет?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Рид, а самого приложения в общем доступе пока что нет?

В нем один критичный баг, который я думаю исправить на выходных. А так в принципе оно готово, в дальнейшем будет лишь изменяться внешний интерфейс, в роде закладок, спекуляции ввода и тд.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Выложил первую версию приложения для андроид. Ссылка в конце первого топика, под картинками.

При попытке отослать сообщение на мост после разрыва соединения с мостом - будет происходить краш приложения. Об этом баге знаю, на выходных исправлю

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Выложил первую версию приложения для андроид. Ссылка в конце первого топика, под картинками.

При попытке отослать сообщение на мост после разрыва соединения с мостом - будет происходить краш приложения. Об этом баге знаю, на выходных исправлю

Затестил приложение, увидел 2 не очень приятных штуки:

1. Экран не ворочается, что очень неприятно при работе на планшетах с дополнительной клавиатурой;

2. Нет возможности отправлять сообщение нажатием Enter, что не очень удобно порой.

 

В остальном всё удобно и практично)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я так понимаю, ключ может быть произвольной строкой, не только набором цифр?
Может ли один ОС-компьютер держать одновременно несколько соединений, созданных при помощи разных ключей?

А что будет если кто то не закроет за собой соединение?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

Я так понимаю, ключ может быть произвольной строкой, не только набором цифр?

Может ли один ОС-компьютер держать одновременно несколько соединений, созданных при помощи разных ключей?

А что будет если кто то не закроет за собой соединение?

 

Конечно можно любой ключ,хоть строка на 1 мегабайт.Только в начале строки нужно поставить метку,что это OC ,или Android. 

Изменено пользователем NEO

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Здравствуйте уважаемые формучане,По просьбе 1Ridav дописать Библиотеку,мы решили с Totoro совместно ее до делать.Ув. Totoro если что меня дополнит ниже в сообщениях.

Библиотека работает на ивентах.

Pastebin: http://pastebin.com/dETumgeU

lib= require('bridge')
event= require('event')
lib.init()
lib.auth('123')
while true do
   lib.pull()
   events,message= event.pull()
   if (events == 'bridge_message') then
      print(message)
   end
end
lib.finish()

Событие которое создаёт библиотека,называется 'bridge_message',аргумент всего один ,и он несет в себе сообщение.

Мы добавили обработчик команд,называются Хендлер, то есть см код ниже

function fhw()
   print('Hello World')
end

lib= require('bridge')
event= require('event')
lib.init()
lib.auth('123')
lib.addHandler('hw',fhw)
while true do
   lib.pull()
end 
lib.finish()

addHandler добавляет в список команду,и функцию если вы передадите hw из андроида,тогда сработает функция fhw ,и выведет Hello World.

removeHandler удаляет хендлер из списка.

  • init(): boolean

Устанавливает соединение с мостом.

  • auth(key: string): boolean

Авторизуется на мосту используя переданный ключ.

  • pull()

Проверяет сообщения с моста. Если сообщение пришло - создает эвент bridge_message и управляет хандлерами.

  • addHandler(command: string, callback: function)

Создает новый хандлер: это пара "команда-функция". То есть, когда от моста приходит команда, с аргументами через пробел, хандлер вызовет соответствующую функцию, передав ей все аргументы в виде строк.

  • removeHandler(command: string)

Удаляет хандрер "повешенный" на заданную команду.

  • finish()

Закрывает соединение с мостом и завершает работу.

Изменено пользователем NEO

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

уже сделали для тебя.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну так теперь надо мост CC-OC делать.

Это несложно. Получится примерно такая программа:

local event = require('event')
local br = require('bridge')
local modem = require('component').modem

local PORT = 27

modem.open(PORT)

local ready = false
ready = br.init()
print("Подключение: ", ready)
if not ready then
  print("[ОШИБКА] Не удалось установить соединение с мостом. Проверьте наличие интернет платы!")
end

io.write("Введите ключ: ")
local key = io.read()
ready = br.auth(key)
print("Авторизация: ", ready)
if not ready then
  print("[ОШИБКА] Не удалось авторизоваться с выбранным ключем!")
else
  print("Авторизация успешна.")
end

print("Нажмите любую клавишу для выхода.")

while ready do
  br.pull()
  name, data = event.pull(0.5)
  if name == 'key_down' then break
  elseif name == 'socket_message' then
    modem.broadcast(data)
  end
end

modem.close()
br.finish()
print("Трансляция завершена.")

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А есть ли возможность ОС-компьютер включить в Craftnet?

СС-компьютер подключается по Craftnet к ОС-компьютеру. То подключается к мосту и регистрирует канал с именем, совпадающим с адресом СС-компьютера. Может ли такой ОС-компьютер обслуживать несколько клиентов?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Здравствуйте уважаемые формучане,По просьбе 1Ridav дописать Библиотеку,мы решили с Totoro совместно ее до делать.Ув. Totoro если что меня дополнит ниже в сообщениях.

Библиотека работает на ивентах.

Pastebin: http://pastebin.com/dETumgeU

Особенно порадовала строчка 93 :lol:

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А есть ли возможность ОС-компьютер включить в Craftnet?

СС-компьютер подключается по Craftnet к ОС-компьютеру. То подключается к мосту и регистрирует канал с именем, совпадающим с адресом СС-компьютера. Может ли такой ОС-компьютер обслуживать несколько клиентов?

Мне нужно разобраться с подключением к CraftNet из OC. Думаю, особых проблем не будет.

Что касается нескольких клиентов: программа может авторизоваться несколько раз, с разными ключами. Но, она не сможет отсортировать приходящие сообщения. Мост не уточняет для какого ключа сообщение (или от какого). Поэтому они будут просто приходить кучей, со всех ключей.

 

Особенно порадовала строчка 93 :lol:

:)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Мост не уточняет для какого ключа сообщение (или от какого). Поэтому они будут просто приходить кучей, со всех ключей.

 

Рид, можно допилить мост?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в тему...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...