Here is a simple action list:
delay(250);
sendbyte(27);
sendbyte(79);
sendbyte(78);
This action list first delays 250 milliseconds then it sends the escape character (27), then it sends a capital O (79) and a capital N (78).
If your device needed slower character transmission you could do something like:
delay(250);
sendbyte(27);
delay(15);
sendbyte(79);
delay(15);
sendbyte(78);
This would send the same exact code but each character would have a 15ms delay before the next character. Alternatively if your device uses plain text command you could do something like:
delay(250);
sendtext("ON");
sendbyte(13);
This would wait 250ms after connection then send the text ON and a carriage return (13).
The include() action allows you to include actions from another named code and execute them as part of the current sequence. Assume you had a code which turned your stereo receiver on named RON and another code which set the receiver input to your CD player named SETCD. You could write a new code which would do these to things without having to retype them:
delay(100);
include("RON");
delay(100);
include("SETCD");
This new code would include any actions from both RON and SETCD and run them as if you had typed them directly into this current code. You might name this code LISTEN TO CD.
With revision 1.01 (now available in the app store) it will be possible to have a code which does not create and use its own connection and simply acts as a wrapper for other codes using the execute command. For example, assume you have two codes: RECEIVER ON and SPEAKERS MAIN, in which the first one communicates with your stereo receiver and the second one communicates with a separate speaker switcher. You've tested each code on its own and you know that each one works correct.
With revision 1.01 and later you will be able to create a code with no connection that simply executes these two codes. Example:
Code name: RECEIVER ON SPKR MAIN
Address: (leave blank)
Port: (leave blank)
Actions:
execute("RECEIVER ON");
execute("SPEAKERS MAIN");
This code when run will create no connection of its own and it will execute (as separate tasks) each of the specified codes which will create their own connections and perform there own actions. Obviously the codes "RECEIVER ON" and "SPEAKERS MAIN" must be available and fully implemented.
The cool thing about wrapper codes under version 1.01 is that you can program up individual codes which do specific things like turning on your receiver, selecting an input, setting speakers. Once you have these individual actions working you can then make wrappers for them which act like macros on a programmable remote!