Author |
|
GCollins Groupie
Joined: March 27 2011 Location: United States
Online Status: Offline Posts: 54
|
Posted: March 08 2015 at 19:16 | IP Logged
|
|
|
I'm running PH v2.1.4. I'm having trouble with a conditional Goto Label statement in a macro. The exported macro follows:
insert into macroheader values ('MA-MOTION_ON','Front Motion On',0,0,1);
insert into macrodetail values ('MA-MOTION_ON',1,10,'DARK',NULL,'0',0,'','');
insert into macrodetail values ('MA-MOTION_ON',2,27,'',NULL,'if("{DARK}"="0", "END", "BEGIN")',0,'','');
insert into macrodetail values ('MA-MOTION_ON',3,26,'',NULL,'BEGIN',0,'','');
insert into macrodetail values ('MA-MOTION_ON',4,23,'80-FRONT-DOOR',2,'',0,'','');
insert into macrodetail values ('MA-MOTION_ON',5,23,'15-FOYER',2,'',0,'','');
insert into macrodetail values ('MA-MOTION_ON',6,26,'',NULL,'END',0,'','');
In the first macro statement (2nd line above) I'm doing a Set Global {DARK} = 0 for testing purposes. In the second statement I'm doing a Goto Label with the following in the Formula | TTS |Dim
column:
if("{DARK}"="0", "END", "BEGIN")
The next statement is a Label named BEGIN, then there are some X10 commands and finally a Label called END.
After playing the macro at least once the Check Formula tool properly returns "The formula evaluates to END". However, playing the macro falls straight through and executes each line.
What am I doing wrong?
Thanks,
Gregg
|
Back to Top |
|
|
GCollins Groupie
Joined: March 27 2011 Location: United States
Online Status: Offline Posts: 54
|
Posted: March 08 2015 at 20:37 | IP Logged
|
|
|
FWIW, same problem after upgrading to v2.1.5c.
That said, for this particular task I've opted to take the more efficient approach of moving the logic to the Boolean column of the trigger
that launches this macro. eg: if("{DARK}"="0", 0, 1)
I'd still like to understand what I'm doing wrong with the macro, though.
Thanks
|
Back to Top |
|
|
dhoward Admin Group
Joined: June 29 2001 Location: United States
Online Status: Offline Posts: 4447
|
Posted: March 09 2015 at 23:27 | IP Logged
|
|
|
GC,
I imported your macro and tested on my system and it
worked fine for me. I changed the first line back and
forth between 1 and 0 and then run the macro and could
not get it to fail. I also added a message box command
just after the BEGIN label to determine when hit that
label or not.
I tried to figure out a couple of ways to make it fail
and was only able to if I deleted (or renamed) the
DARK global variable in the Global Variables screen.
With that change, then it would always hit the BEGIN
label and execute the macro no matter what value was
assigned to DARK.
I cant see anything you're doing wrong from this end.
Dave.
|
Back to Top |
|
|
GCollins Groupie
Joined: March 27 2011 Location: United States
Online Status: Offline Posts: 54
|
Posted: March 10 2015 at 10:16 | IP Logged
|
|
|
Dave,
Thanks for taking the time to test my macro!
I've gone back to it this morning and am driving
myself crazy with different variations trying to get
it to work. I cannot. I've tried deleting/recreating
the global variable, changing the name of the
variable, deleting/recreating the Goto Label
statement, changing variable values, using quotes
around it or not, etc., etc. It just falls straight
thru every time.
A positive sign is that no matter what I set the
variable to in the macro, this is reflected in the
Global Variables screen afterwards.
Maybe I'm just doing something really dumb, but I sure
am stumped. I wish I could show you a screen shot,
but the forum won't let me upload images. Maybe that
has to do with my newbie status. Can you upgrade me?
Thanks
|
Back to Top |
|
|
dhoward Admin Group
Joined: June 29 2001 Location: United States
Online Status: Offline Posts: 4447
|
Posted: March 11 2015 at 21:48 | IP Logged
|
|
|
G,
Nothing to upgrade...image uploading should be active
for all users. It is problematic though and seems to
work better with certain browsers (Chrome seems to
have a problem). In any event, you can always email me
a screenshot direct.
Just wondering how you're able to tell when the macro
terminates early vs playing all the way through. Are
you using a messagebox, user message, or some other
mechanism to tell which lines in the macro are
actually being executed?
Let me know,
Dave.
|
Back to Top |
|
|
GCollins Groupie
Joined: March 27 2011 Location: United States
Online Status: Offline Posts: 54
|
Posted: March 15 2015 at 22:01 | IP Logged
|
|
|
Hi Dave,
I was just watching a light, but then added a message box.
Was using Chrome, but can't upload w/ Firefox either so will email.
I keep tinkering with syntax or char/numeric issue, but still banging head...
Thanks,
G
|
Back to Top |
|
|
|
|