\hypertarget{embryo_timer_8edc-example}{}\doxysection{embryo\+\_\+timer.\+edc}
This example shows the usage of timers in embryo.

This example shows the usage of timers in embryo.


\begin{DoxyCodeInclude}{0}
\DoxyCodeLine{collections\ \{}
\DoxyCodeLine{\ \ \ group\ \{\ name:\ "{}main"{};}
\DoxyCodeLine{\ \ \ \ \ \ script\ \{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ public\ timer\_cb(val)\ \{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ new\ x,\ y,\ w,\ h;}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ new\ buf[32];}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ /*\ set\ labels\ with\ object\ info\ */}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ get\_geometry(PART:"{}red\_rect"{},\ x,\ y,\ w,\ h);}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ snprintf(buf,\ sizeof(buf),\ "{}Timer\ called\ \%d\ times."{},\ val);}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ set\_text(PART:"{}label1"{},\ buf)}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ snprintf(buf,\ sizeof(buf),\ "{}Object\ x:\ \%d\ \ w:\ \%d"{},\ x,\ w);}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ set\_text(PART:"{}label2"{},\ buf)}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ /*\ renew\ the\ timer\ */}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ timer(1\ /\ 30,\ "{}timer\_cb"{},\ val\ +\ 1);}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\ \ \ \ \ \ \}}
\DoxyCodeLine{\ \ \ \ \ \ parts\ \{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ part\ \{\ name:\ "{}bg"{};}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ type:\ RECT;}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ description\ \{\ state:\ "{}default"{}\ 0.0;}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ color:\ 255\ 255\ 255\ 255;}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ part\ \{\ name:\ "{}label1"{};}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ type:\ TEXT;}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ description\ \{\ state:\ "{}default"{}\ 0.0;}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ color:\ 0\ 0\ 0\ 255;}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ text\ \{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ text:\ "{}"{};}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ font:\ "{}Sans"{};}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ size:\ 12;}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ align:\ 0.0\ 0.7;}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ part\ \{\ name:\ "{}label2"{};}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ type:\ TEXT;}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ description\ \{\ state:\ "{}default"{}\ 0.0;}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ color:\ 0\ 0\ 0\ 255;}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ text\ \{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ font:\ "{}Sans"{};}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ size:\ 12;}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ align:\ 0.0\ 0.8;}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ part\ \{\ name:\ "{}red\_rect"{};}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ type:\ RECT;}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ description\ \{\ state:\ "{}default"{}\ 0.0;}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ color:\ 255\ 0\ 0\ 255;}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ max:\ 30\ 30;}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ align:\ 0.1\ 0.2;}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ description\ \{\ state:\ "{}default"{}\ 1.0;}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ inherit:\ "{}default"{}\ 0.0;}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ color:\ 0\ 0\ 255\ 255;}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ max:\ 50\ 30;}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ align:\ 0.9\ 0.2;}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\ \ \ \ \ \ \}}
\DoxyCodeLine{\ \ \ \ \ \ programs\ \{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ /*\ move\ the\ red\ rect\ back\ an\ forth\ in\ a\ loop\ */}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ program\ \{\ name:\ "{}init"{};}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ signal:\ "{}load"{};}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ source:\ "{}"{};}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ action:\ STATE\_SET\ "{}default"{}\ 1.0;}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ transition:\ SINUSOIDAL\ 1.0;}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ target:\ "{}red\_rect"{};}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ after:\ "{}loop"{};}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ program\ \{\ name:\ "{}loop"{};}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ action:\ STATE\_SET\ "{}default"{}\ 0.0;}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ transition:\ SINUSOIDAL\ 1.0;}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ target:\ "{}red\_rect"{};}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ after:\ "{}init"{};}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ /*\ run\ the\ timer\_cb\ for\ the\ first\ time\ */}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ program\ \{\ name:\ "{}init2"{};}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ signal:\ "{}load"{};}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ source:\ "{}"{};}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ script\ \{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ timer\_cb(0);}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\ \ \ \ \ \ \}}
\DoxyCodeLine{\ \ \ \}}
\DoxyCodeLine{\}}

\end{DoxyCodeInclude}
 