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

Управляемый дрон. ПДУ.

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

А можешь выделить протокол общения с дроном в отдельную либу?

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


Ссылка на сообщение
Поделиться на других сайтах
3 часа назад, hohserg сказал:

А можешь выделить протокол общения с дроном в отдельную либу?

Эээ, а какой там протокол общения?

Там просто modem.send, и всё 

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


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

Так формирование сообщений для отправки и их распознавание ведь происходит по определенным правилам. Это и есть протокол

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


Ссылка на сообщение
Поделиться на других сайтах
46 минут назад, hohserg сказал:

Так формирование сообщений для отправки и их распознавание ведь происходит по определенным правилам. Это и есть протокол

А что конкретно интересует? "Безопасная" связь? 

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


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

Да в общем то всё. Твоя программа покрывает все юзкейсы дрона

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

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


Ссылка на сообщение
Поделиться на других сайтах
1 час назад, hohserg сказал:

Так формирование сообщений для отправки и их распознавание ведь происходит по определенным правилам. Это и есть протокол

Посмотри на мой старый код, я пытался упростить управление дроном, и там есть защита от угона но нет ориентации по сторонам света

дрон    планшет

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


Ссылка на сообщение
Поделиться на других сайтах
1 минуту назад, serafim сказал:

Посмотри на мой старый код

local e = {computer.pullSignal('modem_message')}
  if e[3] == user then
    pcall(load(e[6]))

В общем то это аналогично фиче интерпретатора из апки BrightYC. Это разумеется покрывает все юзкейсы, однако, вроде, не эффективно в плане объема передаваемых данных.

"drone.move(1,10,1)" можно закодировать в более компактную форму при помощи специализированного протокола.

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


Ссылка на сообщение
Поделиться на других сайтах
2 минуты назад, hohserg сказал:

Да в общем то всё. Твоя программа покрывает все юзкейсы дрона

Так это целая программа. Она в открытом доступе. 

В основном, там есть таблица cmd = {}

В ней есть функции.

Я проверяю так:

 

if cmd[commandFromTablet] then

cmd[commandFromTable()

end

 

1 минуту назад, serafim сказал:

Посмотри на мой старый код, я пытался упростить управление дроном, и там есть защита от угона но нет ориентации по сторонам света

дрон    планшет

Да, я тоже думал что проще всего хранить весь код вообще на планшете, а на дроне только load()

Но почему-то мне захотелось хранить основные функции в eeprom(Припоминаю, что рассчитывал на минимальное количество телодвижений, и чтобы программу спокойно можно было запустить просто скопировав ctrl+ v без докачки всякой ереси с инета)

 

P.S Там modem.broadcast(), который всем виден. Лучше использовать modem.send, так как эти сообщения вообще никак нельзя отловить легальными слособами

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


Ссылка на сообщение
Поделиться на других сайтах
6 часов назад, hohserg сказал:

Да в общем то всё. Твоя программа покрывает все юзкейсы дрона

Если есть какие-то конкретные пожелания - пиши. Возможно реализую - ограничений на код нет.

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


Ссылка на сообщение
Поделиться на других сайтах
15 часов назад, hohserg сказал:

"drone.move(1,10,1)" можно закодировать в более компактную форму при помощи специализированного протокола.

можно, но нет смысла, пропускной способности достаточно чтоб дрон моментально выполнял команду

 

15 часов назад, BrightYC сказал:

Там modem.broadcast(), который всем виден. Лучше использовать modem.send()

Да пожалуй так лучше

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


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

В процессе использования возникли следующие баги:

  • В интерпретаторе при вводе "computer.uptime()" иногда срабатывает, иногда зависает(не знаю, что именно, планшет или дрон)
  • Имеем связанные дрон и планшет. Включаем сначала дрона, потом планшет. Планшет считает, что не приконектился, хотя сообщения быстрых клавиш(движения, например) отправляет, поэтому интерпритатор не работает, параметры дрона показывает N/A

Раньше проблемы не замечал, появилось после того, как попытался использовать uptime, но возможно, это не связано

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


Ссылка на сообщение
Поделиться на других сайтах
40 минут назад, hohserg сказал:

В процессе использования возникли следующие баги:

  • В интерпретаторе при вводе "computer.uptime()" иногда срабатывает, иногда зависает(не знаю, что именно, планшет или дрон)

Понятия не имею. Зависать на планшете не должно, скорее всего на дроне что-то. Проверю как будет время(и желание)

40 минут назад, hohserg сказал:

Имеем связанные дрон и планшет. Включаем сначала дрона, потом планшет. Планшет считает, что не приконектился, хотя сообщения быстрых клавиш(движения, например) отправляет, поэтому интерпритатор не работает, параметры дрона показывает N/A

А эта штука называется таймер обновления. Планшет не часто запрашивает обновление данных - поэтому N/A. Интерпретатор должен работать при N/A - он только отсылает команды. И вернуть, по идее, должен. Если данные N/A - принудительно обнови данные(вроде кнопка E). Если буду часто запрашивать - никакой батарейки не хватит(у дрона/планшета, энергия ведь тратится)

 

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

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


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

Протестировал. Да норм всё, ответ приходит мгновенно. 

image.png.faeefd788abdc1f568c6fd0bc4ed76dd.png

На счёт N/A - в программе при запуске есть функция send("data"), что исключает возможность N/A если дрон включен. Какие-то локальные проблемы. У меня всё нормально =\

Напиши, пожалуйста, версию OC, и версию майна.

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


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

Значит че-то неправильно с моими конкретными дроном-планшетом.

Версия OC 1.12.2-1.7.4.153

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

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


Ссылка на сообщение
Поделиться на других сайтах
1 минуту назад, hohserg сказал:

Значит че-то неправильно с моими конкретными дроном-планшетом.

Версия OC 1.12.2-1.7.4.153

Очень странно. Та же самая версия - ничего не тупит. =\

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


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

Небольшое обновление:

  • Добавлена поддержка локализаций. Пока что не вынесено в отдельный файл - возможно вынесу. Сменить язык можно изменив stuff.language на EN - английский, RU - русский, соответственно.
  • Убраны часы, добавлен показатель расхода оперативной памяти. (Стырено с майнос)
  • Добавлен "компас". Позволяет проще ориентироваться, в какую сторону смотрит дрон.
  • И самая здоровская фича которая была добавлена - автодополнение. Теперь, интерпретатор вообще ничем не отличается от того, что есть в стандартной поставке OpenOS. Огромное спасибо @hohserg.

Небольшая гифка:

Скрытый текст

8zcTKRR.gif

 

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

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


Ссылка на сообщение
Поделиться на других сайтах
9 минут назад, hot9rot сказал:

как исправить?

Введи команду   ls  (покажешь скрин) 

но помойму ошибка в последнем символе drc.lua    E вместо С из за этого пишет файл не найден

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


Ссылка на сообщение
Поделиться на других сайтах
3 минуты назад, serafim сказал:

E вместо С из за этого пишет файл не найден

нет там С

 

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


Ссылка на сообщение
Поделиться на других сайтах
16 минут назад, hot9rot сказал:

баг, как исправить?

А ещё wget ругается на невозможность октрыть файл в режиме записи. Скорее всего, система загружена с дискеты в режиме только для чтения.

 

Чтобы исправить эту ошибку, требуется установить систему на жёсткий диск командой install и загрузить её с жёсткого диска.

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


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

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

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

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

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

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

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

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

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


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