Jump to content
  • Sky
  • Blueberry
  • Slate
  • Blackcurrant
  • Watermelon
  • Strawberry
  • Orange
  • Banana
  • Apple
  • Emerald
  • Chocolate
  • Charcoal
  • 0
parmort

Function runs twice

Question

Hi.

I wrote a program that harvests sugarcane on demand (via modems). I have a main run loop, but the harvesting code runs twice per message received.

local event = require "event"
local running = true

-- ...

while running do
  local _, _, _, port, _, message = event.pull("modem_message")
  doHarvestRoutine() -- The bit that runs twice per event pull
  print("Message: "..port.." "..tostring(message))
end

Any ideas why this is happening?

Share this post


Link to post
Share on other sites

2 answers to this question

Recommended Posts

  • 0

It's a bit unclear for me what kind of problem you have. Is print also called twice per supposedly one sent modem message? Or is it only the doHarvestRoutine call that's repeated?

If it's the former case (the print line is also run twice), it means your sent messages are somehow duplicated. First thing to check for is whether you have any relays nearby. These blocks LOVE to mess up with network packets. If you use them, I advice you to remove them and use linked cards or a network that checks for duplicates. If you don't, it's very likely that the sender program has a bug that causes it to send each packet twice.

Share this post


Link to post
Share on other sites
  • 0

So it turned out being a bug in the sender. I ended up rewriting the program to add more functionality, and it disappeared.

Thanks for taking the time to look at this!

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.