Jump to content
  • Sky
  • Blueberry
  • Slate
  • Blackcurrant
  • Watermelon
  • Strawberry
  • Orange
  • Banana
  • Apple
  • Emerald
  • Chocolate
  • Charcoal
Forum Connectivity Upgrade Read more... ×
  • 0
spenoi

Help with Nanomachine cycling

Question

I need help with nanomachine "probing". I'm trying to create a very basic program that cycles trough nanomachine slots. I intialize a variable in the beginning then create a for loop and increment the variable with 1 each time it's finishes. However it does not work. I can for example initialize the same variable in the first line, gave it a number and then it will check if that nanomachine slot do anything but as soon as I add the commented out code parts the program does nothing besided priting x.

x = 17

local component = require("component")
local m = require("component").modem
local event = require("event")
local term = require("term")

--for i=1,10 do


component.modem.broadcast(1, "nanomachines", "setInput", x, true)
os.sleep(2)

component.modem.broadcast(1, "nanomachines", "setInput", x, false)
print(x)

--x = x+1
--end

 

Share this post


Link to post
Share on other sites

4 answers to this question

Recommended Posts

  • 1
5 hours ago, Lizzian said:

The variable 'x' is only ever defined as 17 and is never changed.

your loop will just iterate over the code 10 times.

if you change the 'x' variables to 'i', then the modem calls will use the current number stored in i (which for your for loop above, would be 1 through to 10)

 

 

Not correct, there is x=x+1 line near the bottom. 

Share this post


Link to post
Share on other sites
  • 0

The variable 'x' is only ever defined as 17 and is never changed.

your loop will just iterate over the code 10 times.

if you change the 'x' variables to 'i', then the modem calls will use the current number stored in i (which for your for loop above, would be 1 through to 10)

 

 

Share this post


Link to post
Share on other sites
  • 0
On 11/21/2018 at 9:30 AM, Mystery said:

I suppose that you should add "os.sleep(1)" after "print (x)". There is no delay between setInput calls here.

 

On 11/21/2018 at 3:50 PM, Lizzian said:

The variable 'x' is only ever defined as 17 and is never changed.

your loop will just iterate over the code 10 times.

if you change the 'x' variables to 'i', then the modem calls will use the current number stored in i (which for your for loop above, would be 1 through to 10)

 

 

Ahh actually, I got to set x as local (And equal to 1) in the first line. Now it does cycl trough the channels. Easy and cheesy!:)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site, you agree to our Terms of Use and Privacy Policy.