Ksandr0
-
Публикации
6 -
Зарегистрирован
-
Посещение
Сообщения, опубликованные пользователем Ksandr0
-
-
res={pcall(load("return "..any))}
res[1]>>true
res[2]>>80
res[3]>>25
res={pcall(load("return "..any))} tmp="" for id=2, #res do tmp=tmp.." | "..res[id] end modem.broadcast(port, tmp)Вот теперь дошло - в фигурные скобки заключить pcall(load.. забыл.
Спасибо за пояснения, вопрос закрыт.
-
На сколько я понял,pcall возвращает результат выполнения(true/false) и ответ от load
И надо прикрепить return
Что то вроде result, res = pcall(load("return "..any))
Здесь в переменную запишется только то, что функция выполнится, т.е. true в примере на скриншоте. Хотелось бы получить именно результат выполнения (из скриншота - 80 и 25).
-
Надо полагать, оператору load доступны только глобальные переменные, если их явно не передавать через окружение.
a=11 local b=12 load("print(a,b)")() --> 11 nilВероятно, так и есть

Отдельно уточнить хотел, как можно вывести результат в броадкаст? Попробовал :
res=pcall(load(any))
Но броадкаст передал nil.
-
Всех благодарю за участие, решение оказалось в ином - убрать все local, в итоге работает с:
modem = component.proxy(component.list('modem')())
drone = component.proxy(component.list('drone')())
modem.open(4455)
while true do
rnd, _, _, _, _, any = computer.pullSignal()
if rnd == "modem_message" then
pcall(load(any))
end
end -
Всем доброго дня.
Для управления дроном хотел использовать систему, передающую ему команды, а в его eeprom разместить только программу на прием и исполнение внешних команд.
На дроне использовал следующее:
local modem = component.proxy(component.list('modem')())
local drone = component.proxy(component.list('drone')())
modem.open(4455)
while true do
local rnd, _, _, _, _, any = computer.pullSignal()
if rnd == "modem_message" then
pcall(load(any))
end
endПередаю с компьютера сообщение "drone.move(0,1,0)", однако дрон на нее никак не реагирует.
Пробовал ради дебага заменить pcall(load(any)) на drone.setStatusText(any), и на дисплее дрона отобразилось отправленное сообщение (сколько влезло, разумеется).
Пришел к выводу, что не выполняется load(?).
Поясните, пожалуйста, в чем я не прав?

Дрон и Load
в Программы новичков
Опубликовано:
Видел эту тему, но тогда не обратил внимания на отсутствие local в объявлении переменных. К тому же не очень хорошо пока разбираю чужой однострочный код.
Впредь буду внимательней к деталям.