I've used the Ocelot for over a decade, and it has been a very reliable controller. The last time I even connected to it was to adjust the irrigation cycle last year because watering was prohibited after 8AM.
The Ocelot uses C-max, which is a ladder-logic program for industrial controllers. It doesn't use C++.
With C-max, you use two statements to set up a flag. The first statement is the IF (condition). The condition can be just about anything from receiving an X10 command to a timed event. The second statement is the THEN (do something). That again can be just about anything from transmitting an X10 command to setting an internal variable (flag). Once the flag is set, you can use it in subsequent IF statements.
The was a very good document on the ADI website that described how all of this worked.
Jeff