Posted 02 May 2013 - 08:48 AM
hello all
This topic is about my wireless turtle program : WirelessTurtle v1.5
The "cool" feature about this is no other signals will interfere,
It can be controlled from a nearby turtle/computer.
It's easy to set up, in your turtle and/or computer you have to type :
Once you launched the program the program will ask you a few questions.
Once you have answered them all you can get started.
If you don't understand all questions here's the possible answers
Does this program already exist on your device?
The answer to this question is :"yes/no"
This question is made so if you put the file on a disk as disk/startup it will be copied from the disk without having to do it yourself (for the lazy people)
question 2:
do you want to transmit or receive?
The answer should be "receive/transmit"
This question is made to tell the program whether you want to receive, or transmit.
question 3:
What id would you like to link to?
This id will be show in the other device.
So go check that, it will say this is computer #[number]
Type that number in the other device
This is to make sure the computer will only control one turtle, and the turtle(receiver) will only accept messages from 1 computer(transmitter).
the code:
pastebin link:
Screenshots:
the "menu" in the turtle
Proof it works (spoilerception)
and see wehre it goes
Things being worked on:
This topic is about my wireless turtle program : WirelessTurtle v1.5
The "cool" feature about this is no other signals will interfere,
It can be controlled from a nearby turtle/computer.
It's easy to set up, in your turtle and/or computer you have to type :
pastebin get Zxq5hFqr startup
It's best to run it as startup.Once you launched the program the program will ask you a few questions.
Once you have answered them all you can get started.
If you don't understand all questions here's the possible answers
Spoiler
question 1:Does this program already exist on your device?
The answer to this question is :"yes/no"
This question is made so if you put the file on a disk as disk/startup it will be copied from the disk without having to do it yourself (for the lazy people)
question 2:
do you want to transmit or receive?
The answer should be "receive/transmit"
This question is made to tell the program whether you want to receive, or transmit.
question 3:
What id would you like to link to?
This id will be show in the other device.
So go check that, it will say this is computer #[number]
Type that number in the other device
This is to make sure the computer will only control one turtle, and the turtle(receiver) will only accept messages from 1 computer(transmitter).
the code:
Spoiler
if turtle then
print[[---------------------------------------
Welcome to RemoteTurtle V2.0
---------------------------------------]]
else
if term.isColor() then
term.setTextColor(colors.lime)
end
print[[---------------------------------------------------
Welcome to RemoteTurtle V2.0
---------------------------------------------------
]]
end
if term.isColor() then
term.setTextColor(colors.white)
end
repeat
print("Does the program already exist on your device")
q=read()
if
q==("yes")
then
sleep(0)
else
if
q==("no")
then
os.setComputerLabel("not yet defined")
fs.copy("disk/startup","startup")
print("You can now safely break the device and place it somewhere else without program loss")
error()
end
end
until q==("yes") or q==("no")
print("")
repeat
print("Do you want this device to transmit or receive?")
p=read()
if
p==("receive")
then
os.setComputerLabel("Remote Turtle")
print("")
shell.run("id")
rednet.open("right")
print("")
print("What Id Do You Want To Link To?")
l=tonumber(read())
repeat
i,k=rednet.receive()
z=turtle.getFuelLevel()
if
z==0 then
shell.run("refuel")
end
z=turtle.getFuelLevel()
if
z==0 then
rednet.send(l,"p2")
end
if
l==i and k==("w") then
turtle.forward()
elseif
l==i and k==("a") then
turtle.turnLeft()
turtle.forward()
elseif
l==i and k==("s") then
turtle.turnRight()
turtle.turnRight()
turtle.forward()
elseif
l==i and k==("d") then
turtle.turnRight()
turtle.forward()
elseif
l==i and k==("q") then
turtle.up()
elseif
l==i and k==("z") then
turtle.down()
elseif
l==i and k==("r") then
shell.run("refuel")
elseif
l==i and k==("x") then
turtle.dig()
elseif
l==i and k==("xup") then
turtle.digUp()
elseif
l==i and k==("xdown") then
turtle.digDown()
elseif
l==i and k==("turnleft") then
turtle.turnLeft()
elseif
l==i and k==("turnright") then
turtle.turnRight()
elseif
l==i and k==("clear") then
os.setComputerLabel("")
elseif
l==i and k==("f") then
turtle.attack()
elseif
l==i and k==("fup") then
turtle.attackUp()
elseif
l==i and k==("fdown") then
turtle.attackDown()
elseif
l==i and k==("reboot") then
os.reboot()
elseif
l==i and k==("shutdown") then
os.shutdown()
elseif
l==i and k==(cmd1) then
turtle[cmd1e]()
elseif
l==i and k==(cmd2) then
turtle[cmd2e]()
elseif
l==i and k==(cmd3) then
turtle[cmd3e]()
elseif
l==i and k==("AddCommand") then
print("Which command do you want to change? 1/2/3")
cwhat=read()
print("for the question :What do you want to execute? you answer has to be what would fill in the blank spot: turtle.[BLANK SPOT]()")
if cwhat == ("1") then
print("What do you want to type to to execute")
cmd1=read()
print("What do you want to execute?")
cmd1e=read()
elseif
chwat == ("2") then
print("What do you want to type to execute?")
cmd2=read()
print("What do you want to execute?")
cmd2e=read()
elseif
chwat == ("3") then
print("What do you want to type to execute?")
cmd3=read()
print("What do you want to execute?")
cmd3e=read()
end
else
sleep(0.2)
print("Doesn't match")
rednet.send(l,"p")
end
sleep(0.2)
rednet.send(l,"Matches")
until
l==i and k==("stop") or l==i and k==("clear")
elseif
p==("transmit")
then
os.setComputerLabel("Remote Controller")
print("")
shell.run("id")
print("")
if
peripheral.getType("right") == "modem" then
rednet.open("right")
elseif
peripheral.getType("left") == "modem" then
rednet.open("left")
elseif
peripheral.getType("top") == "modem" then
rednet.open("top")
elseif
peripheral.getType("bottom") == "modem" then
rednet.open("bottom")
elseif
peripheral.getType("back") == "modem" then
rednet.open("back")
elseif
peripheral.getType("front") == "modem" then
rednet.open("front")
end
print("")
print("What id would you like to connect to?")
l=tonumber(read())
print("")
print("Type /list for a list of commands")
print("")
repeat
write("Command : ")
x=read()
if
x==("/list")
then
print("r --> refuel (This should be done automaticly)")
print("w/a/s/d --> movement")
print("q/z --> up/down")
print("x --> dig")
print("xup --> dig up")
print("xdown --> dig down")
print("turnleft/turnright --> turn left/ turn right")
print("f --> attack")
print("fup/fdown --> attacks up/down")
print("shutdown --> Shuts down transmitter and receiver")
print("reboot --> reboots transmitter and receiver")
print("stop --> Stops using this program")
print("clear --> Clear Memory after picking up")
print("AddCommand --> Allows you to add commands")
elseif
x==("AddCommand") then
print("To set this up you have to go to your turtle")
rednet.send(l,x)
else
rednet.send(l,x)
sleep(0.00000001)
y,u=rednet.receive(3)
if u==("p2") and y==l then
if term.isColor() then
term.setTextColor(colors.red)
end
print("Out of coal and fuel")
if term.setTextColor then
term.setTextColor(colors.white)
end
end
if u==("p") and y==l then
if term.isColor() then
term.setTextColor(colors.red)
end
print("Incorrect Comand")
if term.isColor() then
term.setTextColor(colors.white)
end
elseif u==("Matches") and y==l then
if term.isColor() then
term.setTextColor(colors.green)
end
end
print("Command Correct")
if term.isColor() then
term.setTextColor(colors.white)
end
end
until
x==("clear") or x==("stop")
end
if
x==("clear")
then
os.setComputerLabel("")
end
until
p==("receive") or p==("transmit")
pastebin link:
Spoiler
http://pastebin.com/Zxq5hFqrScreenshots:
Spoiler
the "menu"the "menu" in the turtle
Proof it works (spoilerception)
Spoiler
watch the turtle on the leftand see wehre it goes
Things being worked on: