This is a read-only snapshot of the ComputerCraft forums, taken in April 2020.
Romfly's profile picture

how to send a function via rednet ?

Started by Romfly, 09 December 2012 - 01:42 AM
Romfly #1
Posted 09 December 2012 - 02:42 AM
Hi all,!

I know that is a lot of topics like this one, but no one helped me. I've a project with turtles, but I need to make a "server" with a computer, wich would send functions to the turtles. The problem is that, I don't know how send a function to a turtle and how make it do this…

Need your help !

Thanks

Romain

P-S : sorry for my bad english, I'm French
Viproz #2
Posted 09 December 2012 - 03:41 AM
Envoyer des fonction est impossible mais tu peut envoyer l'ordre d'exécuter une fonction, regarde le wiki, si ça ne suffit pas je pourrais expliquer plus plus tard.
Romfly #3
Posted 09 December 2012 - 03:43 AM
si envoyer des fonctions est impossible, est-il possible d'envoyer un programme ?
Viproz #4
Posted 09 December 2012 - 03:45 AM
À priori oui mais je te conseille plutôt d'utiliser l'api http pour

Ps : via c'est français ;)/>
Romfly #5
Posted 09 December 2012 - 03:49 AM
Ok, je vais me pencher sur l'API HTTP. Pour information, est-ce que les tortues gardent en mémoire le programme ou est-ce qu'elles l'oublient dès qu'elles ont fini de l'utiliser ? Et pour faire fonctionner un programme, on utilise bien shell.run() ?
PixelToast #6
Posted 09 December 2012 - 03:51 AM
sorry, i dont know french

but
this program works for serializing functions:
http://pastebin.com/dYgkPmbd

you can then safely send it across rednet

then to convert it back into a function just run unserialize on the message

unless you want to send direct lua commands
then you can just use:

pcall(loadstring(message))
and it will run the lua command in message
Romfly #7
Posted 09 December 2012 - 03:58 AM
Thanks PixelToast for this reply, I'll check it and try it in game
bjornir90 #8
Posted 09 December 2012 - 08:45 AM
That is for sending programs. Mais si tu veut envoyer une "commande" tu dois envoyer le nom du programme, qui doit etre sur l'ordinateur recepteur, puis utiliser shell.run(nomDuProgramme) pour le faire fonctionner. Ah oui et les turtles (comme les pcs d'ailleurs) gardent les programmes si ils sont sauvegardés en tant que fichiers.
Romfly #9
Posted 10 December 2012 - 01:22 AM
ok merci, je vais tester