kamaroman68
USA
Asked
— Edited
Resolved by Dunning-Kruger!
Can someone look at this script and tell me what is missing? Ive tried several elseif, endif, combinations and can not make work? Thanks
:MonitorDistances $leftsensor = getadc(adc5) $topsensor = getadc(adc7) $rightsensor = getadc(adc6)
if ($leftsensor 60) ControlCommand("Script Manager ", ScriptStop, "forward_3_Seconds") ElseIf goto(MonitorDistances)
:MonitorDistances $leftsensor = getadc(adc5) $topsensor = getadc(adc7) $rightsensor = getadc(adc6)
if ($leftsensor <60)And ($rightsensor <60) ControlCommand("Script Manager ", ScriptStop, "forward_3_Seconds") ElseIf if ($leftsensor >60) ControlCommand("Script Manager ", ScriptStop, "forward_3_Seconds") ElseIf goto(MonitorDistances)
You need an "endif" and a sleep(100) or so to slow down the loop a bit and a comparison on this line if ($leftsensor 60)
However in your script if either of the conditions are met the controlcommad executes the same forward_3_seconds Cheat Sheet command
I have no idea why my first script posted like that. I assume you looked at the second one? Thanks
Hey Chris
or
I did... have a look... I am not sure it is what you want but it should run without error...
@kamaroman68 You can give the credit to David if you like...I am not looking to get any more credits right now... By the way, there wasn't really anything wrong with your script... just need a bit of tweaking.... You had the logic down so that was good...
You both deserve the credit. Your speedy response warrants the credit! I appreciate the help immensely! Thanks
With that.............
I am missing a very easy and fundamental part of programming with ez script...
I actually program allen Bradley, Schneider electric, and direct logic PLCs for a living in a factory environment. When there is a line of code that is not correct it will tell me exactly which line or lines are at fault. My error when doing "check syntax" kept giving me an error of missing end statements or something like that. I wasn't sure how to determine which line was causing the error. Is there such a function in ez script? I see the little orange lines in the script editor to the left of each line but what do those mean? Thanks again!
There is nothing that will take you to the error like in other languages. You will be directed that there there is a missing closing statement (endif/endrepeat/endrepeatuntil/repeatwhile/endrepeatwhile/etc)
This is one of the main reasons that I like to make each script do one thing and only one thing as yours is doing. its when they get long and are doing many things that finding the missing (endif/endrepeat/endrepeatuntil/repeatwhile/endrepeatwhile/etc) becomes difficult.
Every if statement must have an endif even if there is an elseif between them
you can nest if statements like this
one other piece of advice.
if you put this into the script, notice that there is a + sign next to the if statement. there is a line down to the end if there is a little line going right to the end if.
This lets you know which endif is going with which if. This will let you see that this is a complete block. if the line just keeps going, it isnt a complete block of code.
This will let you know that the endif is where you expect it to be.