<?xml version="1.0" encoding="UTF-8"?>
<nta><declaration>//
// Specification: Autograph Window
//
// Specification was drawn in Autograph version 3.

//
// Global declaration section
//

clock c;
// === Sender_A ===
clock A_c;
int A_Pf, A_Pn, A_S1, A_S2,
  A_start, A_stop;
// === Sender_B ===
clock B_c;
int B_Pf, B_Pn, B_S1, B_S2,
  B_start, B_stop;
// === Frame_Generator_A ===
chan A_frame, A_reset, A_new_Pn;
int A_msg, A_no, A_eof, A_T4;
// === Frame_Generator_B ===
chan B_frame, B_reset, B_new_Pn;
int B_msg, B_no, B_eof, B_T4;
// === Detector_A ===
chan A_check;
int A_err, A_res;
// === Detector_B ===
chan B_check;
int B_err, B_res;
// === Observer_A ===
chan A_observe;
int A_diff;
// === Observer_B ===
chan B_observe;
int B_diff;
// === Bus ===
chan one, zero;</declaration><template><name x="5" y="5">Sender_A</name><parameter x="10" y="25"/><declaration/><location id="id3" x="1158" y="1340"><name x="1148" y="1310">end_jam</name></location><location id="id1" x="1066" y="1048"><name x="1056" y="1018">call_observe</name><committed/></location><location id="id16" x="52" y="214"><name x="42" y="184">start</name><label kind="invariant" x="42" y="229">A_c &lt;= 0</label></location><location id="id14" x="658" y="356"><name x="648" y="326">other_started</name><label kind="invariant" x="648" y="371">A_c &lt;= 3124</label></location><location id="id11" x="238" y="1424"><name x="228" y="1394">jam</name><label kind="invariant" x="228" y="1439">A_c &lt;= 25000</label></location><location id="id18" x="1068" y="584"><name x="1058" y="554">transmit</name><label kind="invariant" x="1058" y="599">A_c &lt;= 781</label></location><location id="id7" x="656" y="214"><name x="646" y="184">ex_start</name><committed/></location><location id="id9" x="1064" y="1244"><name x="1054" y="1214">hold</name><label kind="invariant" x="1054" y="1259">A_c &lt;= 28116</label></location><location id="id10" x="246" y="216"><name x="236" y="186">idle</name><label kind="invariant" x="236" y="231">A_c &lt;= 781</label></location><location id="id0" x="660" y="1050"><name x="650" y="1020">call_check</name><committed/></location><location id="id13" x="240" y="786"><name x="230" y="756">newPn</name><label kind="invariant" x="230" y="801">A_c &lt;= 40</label></location><location id="id19" x="658" y="1244"><name x="648" y="1214">until_silence</name><label kind="invariant" x="648" y="1259">A_c &lt;= 781</label></location><location id="id17" x="244" y="396"><name x="234" y="366">stop</name></location><location id="id2" x="244" y="584"><name x="234" y="554">check_eof</name><committed/></location><location id="id15" x="1066" y="786"><name x="1056" y="756">sample</name><label kind="invariant" x="1056" y="801">A_c &lt;= 781</label></location><location id="id8" x="1220" y="304"><name x="1210" y="274">goto_idle</name><committed/></location><location id="id4" x="238" y="1048"><name x="228" y="1018">ex_jam</name><label kind="invariant" x="228" y="1063">A_c &lt;= 781</label></location><location id="id12" x="112" y="584"><name x="102" y="554">nPf</name><committed/></location><location id="id6" x="1066" y="404"><name x="1056" y="374">ex_silence2</name><label kind="invariant" x="1056" y="419">A_c &lt;= 781</label></location><location id="id5" x="1064" y="216"><name x="1054" y="186">ex_silence1</name><label kind="invariant" x="1054" y="231">A_c &lt;= 2343</label></location><init ref="id16"/><transition><source ref="id0"/><target ref="id4"/><label kind="guard" x="389" y="1019">A_stop == 0</label><label kind="synchronisation" x="389" y="1034">A_check!</label><label kind="assignment" x="389" y="1064">A_c := 0</label></transition><transition><source ref="id0"/><target ref="id4"/><label kind="guard" x="389" y="1019">A_stop == 1</label><label kind="assignment" x="389" y="1064">A_res := 0,A_c := 0</label><nail x="649" y="1039"/><nail x="589" y="973"/><nail x="331" y="973"/></transition><transition><source ref="id1"/><target ref="id0"/><label kind="guard" x="803" y="1019">A_stop == 0</label><label kind="synchronisation" x="803" y="1034">A_observe!</label></transition><transition><source ref="id1"/><target ref="id0"/><label kind="guard" x="803" y="1019">A_stop == 1</label><nail x="1055" y="1037"/><nail x="987" y="973"/><nail x="741" y="973"/></transition><transition><source ref="id2"/><target ref="id13"/><label kind="guard" x="182" y="655">A_eof == 0</label><label kind="synchronisation" x="182" y="670">one?</label><label kind="assignment" x="182" y="700">A_S1 := 1,A_c := 0</label><nail x="244" y="599"/><nail x="254" y="699"/></transition><transition><source ref="id2"/><target ref="id13"/><label kind="guard" x="182" y="655">A_eof == 0</label><label kind="synchronisation" x="182" y="670">zero?</label><label kind="assignment" x="182" y="700">A_S1 := 0,A_c := 0</label><nail x="240" y="599"/><nail x="226" y="697"/></transition><transition><source ref="id2"/><target ref="id17"/><label kind="guard" x="184" y="460">A_eof== 1</label><label kind="assignment" x="184" y="505">A_c := 0</label></transition><transition><source ref="id4"/><target ref="id11"/><label kind="guard" x="178" y="1206">A_c == 781,A_res == 1</label><label kind="synchronisation" x="178" y="1221">A_reset!</label><label kind="assignment" x="178" y="1251">A_Pn := 0,A_c := 0</label></transition><transition><source ref="id4"/><target ref="id12"/><label kind="guard" x="115" y="786">A_c == 781,A_res == 0</label><nail x="227" y="1036"/><nail x="113" y="930"/></transition><transition><source ref="id4"/><target ref="id19"/><label kind="guard" x="388" y="1116">A_c == 781,A_res == 2</label><label kind="synchronisation" x="388" y="1131">A_reset!</label><label kind="assignment" x="388" y="1161">A_Pn := 1,A_start := 0,A_c := 0</label></transition><transition><source ref="id5"/><target ref="id6"/><label kind="guard" x="1005" y="280">A_c == 2343</label><label kind="synchronisation" x="1005" y="295">one?</label><label kind="assignment" x="1005" y="325">A_c := 0</label></transition><transition><source ref="id5"/><target ref="id8"/><label kind="guard" x="1082" y="230">A_c == 2343</label><label kind="synchronisation" x="1082" y="245">zero?</label></transition><transition><source ref="id6"/><target ref="id8"/><label kind="guard" x="1083" y="324">A_c == 781</label><label kind="synchronisation" x="1083" y="339">zero?</label></transition><transition><source ref="id6"/><target ref="id18"/><label kind="guard" x="1007" y="464">A_c == 781</label><label kind="synchronisation" x="1007" y="479">one?</label><label kind="assignment" x="1007" y="509">A_c := 0</label></transition><transition><source ref="id7"/><target ref="id5"/><label kind="guard" x="800" y="185">B_start == 0</label><label kind="assignment" x="800" y="230">A_c := 0</label></transition><transition><source ref="id7"/><target ref="id14"/><label kind="guard" x="597" y="255">B_start == 1</label><label kind="assignment" x="597" y="300">A_c := 0</label></transition><transition><source ref="id8"/><target ref="id10"/><label kind="assignment" x="673" y="275">A_c := 0</label><nail x="1219" y="288"/><nail x="1219" y="134"/><nail x="331" y="134"/></transition><transition><source ref="id9"/><target ref="id3"/><label kind="guard" x="1051" y="1262">A_c == 28116</label><label kind="assignment" x="1051" y="1307">A_res := 0</label></transition><transition><source ref="id10"/><target ref="id7"/><label kind="guard" x="391" y="185">A_c == 781</label></transition><transition><source ref="id11"/><target ref="id3"/><label kind="guard" x="638" y="1352">A_c == 25000</label><label kind="assignment" x="638" y="1397">A_Pn := 1,A_start := 0,A_res := 0,A_c := 0</label><nail x="252" y="1422"/><nail x="1064" y="1422"/></transition><transition><source ref="id12"/><target ref="id2"/><label kind="guard" x="118" y="554">A_Pn == 1</label><label kind="assignment" x="118" y="599">A_Pf := 1</label><nail x="126" y="586"/><nail x="174" y="596"/></transition><transition><source ref="id12"/><target ref="id2"/><label kind="guard" x="118" y="554">A_Pn == 0</label><label kind="assignment" x="118" y="599">A_Pf := 0</label><nail x="126" y="578"/><nail x="174" y="566"/></transition><transition><source ref="id13"/><target ref="id15"/><label kind="guard" x="593" y="756">A_c == 40,A_err &gt; 0</label><label kind="assignment" x="593" y="801">A_Pn := 1</label><nail x="255" y="788"/><nail x="509" y="826"/><nail x="833" y="826"/></transition><transition><source ref="id13"/><target ref="id15"/><label kind="guard" x="593" y="756">A_c == 40,A_err == 0</label><label kind="synchronisation" x="593" y="771">A_new_Pn!</label></transition><transition><source ref="id14"/><target ref="id5"/><label kind="guard" x="801" y="256">A_c == 3124,B_start == 0</label><label kind="assignment" x="801" y="301">A_c := 0</label></transition><transition><source ref="id14"/><target ref="id14"/><label kind="guard" x="598" y="326">A_c == 3124,B_start == 1</label><label kind="assignment" x="598" y="371">A_c := 0</label><nail x="662" y="370"/><nail x="680" y="440"/><nail x="620" y="440"/></transition><transition><source ref="id15"/><target ref="id1"/><label kind="guard" x="1006" y="887">A_c == 781</label><label kind="synchronisation" x="1006" y="902">one?</label><label kind="assignment" x="1006" y="932">A_S2 := 1</label><nail x="1066" y="801"/><nail x="1082" y="915"/></transition><transition><source ref="id15"/><target ref="id1"/><label kind="guard" x="1006" y="887">A_c == 781</label><label kind="synchronisation" x="1006" y="902">zero?</label><label kind="assignment" x="1006" y="932">A_S2 := 0</label><nail x="1064" y="801"/><nail x="1052" y="915"/></transition><transition><source ref="id16"/><target ref="id10"/><label kind="guard" x="89" y="185">A_c == 0</label></transition><transition><source ref="id18"/><target ref="id2"/><label kind="guard" x="596" y="554">A_c == 781</label><label kind="synchronisation" x="596" y="569">A_frame!</label><label kind="assignment" x="596" y="599">A_err := 0,A_diff := 0,A_Pf := 1</label></transition><transition><source ref="id19"/><target ref="id9"/><label kind="guard" x="801" y="1214">A_c == 781</label><label kind="synchronisation" x="801" y="1229">one?</label><label kind="assignment" x="801" y="1259">A_c := 0</label></transition><transition><source ref="id19"/><target ref="id19"/><label kind="guard" x="598" y="1214">A_c == 781</label><label kind="synchronisation" x="598" y="1229">zero?</label><label kind="assignment" x="598" y="1259">A_c := 0</label><nail x="648" y="1256"/><nail x="606" y="1318"/><nail x="694" y="1318"/></transition></template><template><name x="5" y="5">Sender_B</name><parameter x="10" y="25"/><declaration/><location id="id23" x="1152" y="1346"><name x="1142" y="1316">end_jam</name></location><location id="id21" x="1066" y="1048"><name x="1056" y="1018">call_observe</name><committed/></location><location id="id36" x="52" y="214"><name x="42" y="184">start</name></location><location id="id34" x="658" y="356"><name x="648" y="326">other_started</name><label kind="invariant" x="648" y="371">B_c &lt;= 3124</label></location><location id="id31" x="236" y="1430"><name x="226" y="1400">jam</name><label kind="invariant" x="226" y="1445">B_c &lt;= 25000</label></location><location id="id38" x="1068" y="584"><name x="1058" y="554">transmit</name><label kind="invariant" x="1058" y="599">B_c &lt;= 781</label></location><location id="id27" x="656" y="214"><name x="646" y="184">ex_start</name><committed/></location><location id="id29" x="1064" y="1244"><name x="1054" y="1214">hold</name><label kind="invariant" x="1054" y="1259">B_c &lt;= 28116</label></location><location id="id30" x="246" y="216"><name x="236" y="186">idle</name><label kind="invariant" x="236" y="231">B_c &lt;= 781</label></location><location id="id20" x="660" y="1050"><name x="650" y="1020">call_check</name><committed/></location><location id="id33" x="240" y="786"><name x="230" y="756">newPn</name><label kind="invariant" x="230" y="801">B_c &lt;= 40</label></location><location id="id39" x="658" y="1242"><name x="648" y="1212">until_silence</name><label kind="invariant" x="648" y="1257">B_c &lt;= 781</label></location><location id="id37" x="244" y="396"><name x="234" y="366">stop</name></location><location id="id22" x="244" y="584"><name x="234" y="554">check_eof</name><committed/></location><location id="id35" x="1066" y="786"><name x="1056" y="756">sample</name><label kind="invariant" x="1056" y="801">B_c &lt;= 781</label></location><location id="id28" x="1220" y="304"><name x="1210" y="274">goto_idle</name><committed/></location><location id="id24" x="238" y="1052"><name x="228" y="1022">ex_jam</name><label kind="invariant" x="228" y="1067">B_c &lt;= 781</label></location><location id="id32" x="112" y="584"><name x="102" y="554">nPf</name><committed/></location><location id="id26" x="1066" y="404"><name x="1056" y="374">ex_silence2</name><label kind="invariant" x="1056" y="419">B_c &lt;= 781</label></location><location id="id25" x="1064" y="216"><name x="1054" y="186">ex_silence1</name><label kind="invariant" x="1054" y="231">B_c &lt;= 2343</label></location><init ref="id36"/><transition><source ref="id20"/><target ref="id24"/><label kind="guard" x="389" y="1021">B_stop == 1</label><label kind="assignment" x="389" y="1066">B_res := 0,B_c := 0</label><nail x="651" y="1037"/><nail x="601" y="975"/><nail x="315" y="975"/></transition><transition><source ref="id20"/><target ref="id24"/><label kind="guard" x="389" y="1021">B_stop == 0</label><label kind="synchronisation" x="389" y="1036">B_check!</label><label kind="assignment" x="389" y="1066">B_c := 0</label></transition><transition><source ref="id21"/><target ref="id20"/><label kind="guard" x="803" y="1019">B_stop == 1</label><nail x="1055" y="1035"/><nail x="999" y="971"/><nail x="731" y="971"/></transition><transition><source ref="id21"/><target ref="id20"/><label kind="guard" x="803" y="1019">B_stop == 0</label><label kind="synchronisation" x="803" y="1034">B_observe!</label></transition><transition><source ref="id22"/><target ref="id33"/><label kind="guard" x="182" y="655">B_eof == 0</label><label kind="synchronisation" x="182" y="670">zero?</label><label kind="assignment" x="182" y="700">B_S1 := 0,B_c := 0</label><nail x="240" y="599"/><nail x="226" y="697"/></transition><transition><source ref="id22"/><target ref="id33"/><label kind="guard" x="182" y="655">B_eof == 0</label><label kind="synchronisation" x="182" y="670">one?</label><label kind="assignment" x="182" y="700">B_S1 := 1,B_c := 0</label><nail x="244" y="599"/><nail x="254" y="699"/></transition><transition><source ref="id22"/><target ref="id37"/><label kind="guard" x="184" y="460">B_eof == 1</label><label kind="assignment" x="184" y="505">B_c := 0</label></transition><transition><source ref="id24"/><target ref="id31"/><label kind="guard" x="177" y="1211">B_c == 781,B_res == 1</label><label kind="synchronisation" x="177" y="1226">B_reset!</label><label kind="assignment" x="177" y="1256">B_Pn := 0,B_c := 0</label></transition><transition><source ref="id24"/><target ref="id32"/><label kind="guard" x="115" y="788">B_c == 781,B_res == 0</label><nail x="227" y="1040"/><nail x="113" y="930"/></transition><transition><source ref="id24"/><target ref="id39"/><label kind="guard" x="388" y="1117">B_c == 781,B_res == 2</label><label kind="synchronisation" x="388" y="1132">B_reset!</label><label kind="assignment" x="388" y="1162">B_Pn := 1,B_start := 0,B_c := 0</label></transition><transition><source ref="id25"/><target ref="id26"/><label kind="guard" x="1005" y="280">B_c == 2343</label><label kind="synchronisation" x="1005" y="295">one?</label><label kind="assignment" x="1005" y="325">B_c := 0</label></transition><transition><source ref="id25"/><target ref="id28"/><label kind="guard" x="1082" y="230">B_c == 2343</label><label kind="synchronisation" x="1082" y="245">zero?</label></transition><transition><source ref="id26"/><target ref="id28"/><label kind="guard" x="1083" y="324">B_c == 781</label><label kind="synchronisation" x="1083" y="339">zero?</label></transition><transition><source ref="id26"/><target ref="id38"/><label kind="guard" x="1007" y="464">B_c == 781</label><label kind="synchronisation" x="1007" y="479">one?</label><label kind="assignment" x="1007" y="509">B_c := 0</label></transition><transition><source ref="id27"/><target ref="id25"/><label kind="guard" x="800" y="185">A_start == 0</label><label kind="assignment" x="800" y="230">B_c := 0</label></transition><transition><source ref="id27"/><target ref="id34"/><label kind="guard" x="597" y="255">A_start == 1</label><label kind="assignment" x="597" y="300">B_c := 0</label></transition><transition><source ref="id28"/><target ref="id30"/><label kind="assignment" x="673" y="275">B_c := 0</label><nail x="1219" y="288"/><nail x="1219" y="134"/><nail x="331" y="134"/></transition><transition><source ref="id29"/><target ref="id23"/><label kind="guard" x="1048" y="1265">B_c == 28116</label><label kind="assignment" x="1048" y="1310">B_res := 0</label></transition><transition><source ref="id30"/><target ref="id27"/><label kind="guard" x="391" y="185">B_c == 781</label></transition><transition><source ref="id31"/><target ref="id23"/><label kind="guard" x="634" y="1358">B_c == 25000</label><label kind="assignment" x="634" y="1403">B_Pn := 1,B_start := 0,B_res := 0,B_c := 0</label><nail x="252" y="1430"/><nail x="1066" y="1430"/></transition><transition><source ref="id32"/><target ref="id22"/><label kind="guard" x="118" y="554">B_Pn == 1</label><label kind="assignment" x="118" y="599">B_Pf := 1</label><nail x="126" y="586"/><nail x="174" y="596"/></transition><transition><source ref="id32"/><target ref="id22"/><label kind="guard" x="118" y="554">B_Pn == 0</label><label kind="assignment" x="118" y="599">B_Pf := 0</label><nail x="126" y="578"/><nail x="174" y="566"/></transition><transition><source ref="id33"/><target ref="id35"/><label kind="guard" x="593" y="756">B_c == 40,B_err == 0</label><label kind="synchronisation" x="593" y="771">B_new_Pn!</label></transition><transition><source ref="id33"/><target ref="id35"/><label kind="guard" x="593" y="756">B_c == 40,B_err &gt; 0</label><label kind="assignment" x="593" y="801">B_Pn := 1</label><nail x="255" y="788"/><nail x="515" y="832"/><nail x="829" y="832"/></transition><transition><source ref="id34"/><target ref="id25"/><label kind="guard" x="801" y="256">B_c == 3124,A_start == 0</label><label kind="assignment" x="801" y="301">B_c := 0</label></transition><transition><source ref="id34"/><target ref="id34"/><label kind="guard" x="598" y="326">B_c == 3124,A_start == 1</label><label kind="assignment" x="598" y="371">B_c := 0</label><nail x="662" y="370"/><nail x="680" y="440"/><nail x="620" y="440"/></transition><transition><source ref="id35"/><target ref="id21"/><label kind="guard" x="1006" y="887">B_c == 781</label><label kind="synchronisation" x="1006" y="902">zero?</label><label kind="assignment" x="1006" y="932">B_S2 := 0</label><nail x="1064" y="801"/><nail x="1054" y="915"/></transition><transition><source ref="id35"/><target ref="id21"/><label kind="guard" x="1006" y="887">B_c == 781</label><label kind="synchronisation" x="1006" y="902">one?</label><label kind="assignment" x="1006" y="932">B_S2 := 1</label><nail x="1066" y="801"/><nail x="1082" y="915"/></transition><transition><source ref="id36"/><target ref="id30"/><label kind="assignment" x="89" y="230">B_c := 0</label></transition><transition><source ref="id38"/><target ref="id22"/><label kind="guard" x="596" y="554">B_c == 781</label><label kind="synchronisation" x="596" y="569">B_frame!</label><label kind="assignment" x="596" y="599">B_err := 0,B_diff := 0,B_Pf := 1</label></transition><transition><source ref="id39"/><target ref="id29"/><label kind="guard" x="801" y="1213">B_c == 781</label><label kind="synchronisation" x="801" y="1228">one?</label><label kind="assignment" x="801" y="1258">B_c := 0</label></transition><transition><source ref="id39"/><target ref="id39"/><label kind="guard" x="598" y="1212">B_c == 781</label><label kind="synchronisation" x="598" y="1227">zero?</label><label kind="assignment" x="598" y="1257">B_c := 0</label><nail x="648" y="1254"/><nail x="610" y="1318"/><nail x="690" y="1318"/></transition></template><template><name x="5" y="5">Detector_A</name><parameter x="10" y="25"/><declaration/><location id="id43" x="404" y="120"><name x="394" y="90">ex_Pf</name><committed/></location><location id="id42" x="676" y="682"><name x="666" y="652">ex1_S2</name><committed/></location><location id="id41" x="676" y="530"><name x="666" y="500">ex1_S1</name><committed/></location><location id="id47" x="168" y="682"><name x="158" y="652">wait_call</name></location><location id="id46" x="402" y="530"><name x="392" y="500">ex_S2</name><committed/></location><location id="id44" x="402" y="384"><name x="392" y="354">ex_Pn</name><committed/></location><location id="id40" x="166" y="896"><name x="156" y="866">calc_res</name><committed/></location><location id="id45" x="404" y="248"><name x="394" y="218">ex_S1</name><committed/></location><init ref="id47"/><transition><source ref="id40"/><target ref="id47"/><label kind="guard" x="107" y="759">A_err == 0</label><label kind="assignment" x="107" y="804">A_res := 0</label><nail x="155" y="885"/><nail x="41" y="781"/></transition><transition><source ref="id40"/><target ref="id47"/><label kind="guard" x="107" y="759">A_err &gt; 0,A_err &lt;= 3</label><label kind="assignment" x="107" y="804">A_res := 1</label></transition><transition><source ref="id40"/><target ref="id47"/><label kind="guard" x="107" y="759">A_err &gt; 3</label><label kind="assignment" x="107" y="804">A_res := 2</label><nail x="177" y="885"/><nail x="291" y="783"/></transition><transition><source ref="id41"/><target ref="id40"/><label kind="guard" x="361" y="683">A_S1 == 1</label><nail x="693" y="531"/><nail x="729" y="531"/><nail x="729" y="895"/></transition><transition><source ref="id41"/><target ref="id42"/><label kind="guard" x="616" y="576">A_S1 == 0</label></transition><transition><source ref="id42"/><target ref="id40"/><label kind="guard" x="361" y="759">A_S2 == 1</label></transition><transition><source ref="id42"/><target ref="id47"/><label kind="guard" x="362" y="652">A_S2 == 0</label></transition><transition><source ref="id43"/><target ref="id41"/><label kind="guard" x="480" y="295">A_Pf == 0</label><nail x="420" y="121"/><nail x="674" y="121"/></transition><transition><source ref="id43"/><target ref="id45"/><label kind="guard" x="344" y="154">A_Pf == 1</label></transition><transition><source ref="id44"/><target ref="id41"/><label kind="guard" x="479" y="427">A_Pn == 0</label></transition><transition><source ref="id44"/><target ref="id46"/><label kind="guard" x="342" y="427">A_Pn == 1</label></transition><transition><source ref="id45"/><target ref="id44"/><label kind="guard" x="343" y="286">A_S1 == 1</label></transition><transition><source ref="id45"/><target ref="id44"/><label kind="guard" x="343" y="286">A_S1 == 0,A_err &gt; 3</label><nail x="417" y="256"/><nail x="441" y="276"/><nail x="441" y="346"/></transition><transition><source ref="id45"/><target ref="id44"/><label kind="guard" x="343" y="286">A_S1 == 0,A_err &lt;= 3</label><label kind="assignment" x="343" y="331">A_err := A_err + 1</label><nail x="419" y="250"/><nail x="573" y="278"/><nail x="573" y="346"/></transition><transition><source ref="id46"/><target ref="id41"/><label kind="guard" x="479" y="500">A_S2 == 1</label></transition><transition><source ref="id46"/><target ref="id47"/><label kind="guard" x="225" y="576">A_S2 == 0,A_err &lt;= 3</label><label kind="assignment" x="225" y="621">A_err := A_err + 1</label><nail x="389" y="538"/><nail x="297" y="606"/></transition><transition><source ref="id46"/><target ref="id47"/><label kind="guard" x="225" y="576">A_S2 == 0,A_err &gt; 3</label><nail x="387" y="536"/><nail x="283" y="582"/></transition><transition><source ref="id47"/><target ref="id43"/><label kind="synchronisation" x="226" y="386">A_check?</label><label kind="assignment" x="226" y="416">A_res := 0</label><nail x="166" y="667"/><nail x="166" y="121"/></transition></template><template><name x="5" y="5">Detector_B</name><parameter x="10" y="25"/><declaration/><location id="id51" x="404" y="120"><name x="394" y="90">ex_Pf</name><committed/></location><location id="id50" x="676" y="682"><name x="666" y="652">ex1_S2</name><committed/></location><location id="id49" x="676" y="530"><name x="666" y="500">ex1_S1</name><committed/></location><location id="id55" x="168" y="682"><name x="158" y="652">wait_call</name></location><location id="id54" x="402" y="530"><name x="392" y="500">ex_S2</name><committed/></location><location id="id52" x="402" y="384"><name x="392" y="354">ex_Pn</name><committed/></location><location id="id48" x="166" y="896"><name x="156" y="866">calc_res</name><committed/></location><location id="id53" x="404" y="248"><name x="394" y="218">ex_S1</name><committed/></location><init ref="id55"/><transition><source ref="id48"/><target ref="id55"/><label kind="guard" x="107" y="759">B_err == 0</label><label kind="assignment" x="107" y="804">B_res := 0</label><nail x="155" y="885"/><nail x="41" y="781"/></transition><transition><source ref="id48"/><target ref="id55"/><label kind="guard" x="107" y="759">B_err &gt; 0,B_err &lt;= 3</label><label kind="assignment" x="107" y="804">B_res := 1</label></transition><transition><source ref="id48"/><target ref="id55"/><label kind="guard" x="107" y="759">B_err &gt; 3</label><label kind="assignment" x="107" y="804">B_res := 2</label><nail x="177" y="885"/><nail x="291" y="783"/></transition><transition><source ref="id49"/><target ref="id48"/><label kind="guard" x="361" y="683">B_S1 == 1</label><nail x="693" y="531"/><nail x="729" y="531"/><nail x="729" y="895"/></transition><transition><source ref="id49"/><target ref="id50"/><label kind="guard" x="616" y="576">B_S1 == 0</label></transition><transition><source ref="id50"/><target ref="id48"/><label kind="guard" x="361" y="759">B_S2 == 1</label></transition><transition><source ref="id50"/><target ref="id55"/><label kind="guard" x="362" y="652">B_S2 == 0</label></transition><transition><source ref="id51"/><target ref="id49"/><label kind="guard" x="480" y="295">B_Pf == 0</label><nail x="420" y="121"/><nail x="674" y="121"/></transition><transition><source ref="id51"/><target ref="id53"/><label kind="guard" x="344" y="154">B_Pf == 1</label></transition><transition><source ref="id52"/><target ref="id49"/><label kind="guard" x="479" y="427">B_Pn == 0</label></transition><transition><source ref="id52"/><target ref="id54"/><label kind="guard" x="342" y="427">B_Pn == 1</label></transition><transition><source ref="id53"/><target ref="id52"/><label kind="guard" x="343" y="286">B_S1 == 1</label></transition><transition><source ref="id53"/><target ref="id52"/><label kind="guard" x="343" y="286">B_S1 == 0,B_err &gt; 3</label><nail x="417" y="256"/><nail x="441" y="276"/><nail x="441" y="346"/></transition><transition><source ref="id53"/><target ref="id52"/><label kind="guard" x="343" y="286">B_S1 == 0,B_err &lt;= 3</label><label kind="assignment" x="343" y="331">B_err := B_err + 1</label><nail x="419" y="250"/><nail x="573" y="278"/><nail x="573" y="346"/></transition><transition><source ref="id54"/><target ref="id49"/><label kind="guard" x="479" y="500">B_S2 == 1</label></transition><transition><source ref="id54"/><target ref="id55"/><label kind="guard" x="225" y="576">B_S2 == 0,B_err &lt;= 3</label><label kind="assignment" x="225" y="621">B_err := B_err + 1</label><nail x="389" y="538"/><nail x="297" y="606"/></transition><transition><source ref="id54"/><target ref="id55"/><label kind="guard" x="225" y="576">B_S2 == 0,B_err &gt; 3</label><nail x="387" y="536"/><nail x="283" y="582"/></transition><transition><source ref="id55"/><target ref="id51"/><label kind="synchronisation" x="226" y="386">B_check?</label><label kind="assignment" x="226" y="416">B_res := 0</label><nail x="166" y="667"/><nail x="166" y="121"/></transition></template><template><name x="5" y="5">Bus</name><parameter x="10" y="25"/><declaration/><location id="id57" x="246" y="80"><name x="236" y="50">initialize</name><committed/></location><location id="id56" x="244" y="224"><name x="234" y="194">active</name></location><init ref="id57"/><transition><source ref="id56"/><target ref="id56"/><label kind="guard" x="184" y="194">A_Pn == 1,B_Pn == 1</label><label kind="synchronisation" x="184" y="209">one!</label><nail x="238" y="238"/><nail x="216" y="318"/><nail x="272" y="318"/></transition><transition><source ref="id56"/><target ref="id56"/><label kind="guard" x="184" y="194">B_Pn == 0</label><label kind="synchronisation" x="184" y="209">zero!</label><nail x="258" y="218"/><nail x="338" y="188"/><nail x="338" y="246"/></transition><transition><source ref="id56"/><target ref="id56"/><label kind="guard" x="184" y="194">A_Pn == 0</label><label kind="synchronisation" x="184" y="209">zero!</label><nail x="228" y="218"/><nail x="144" y="188"/><nail x="144" y="244"/></transition><transition><source ref="id57"/><target ref="id56"/><label kind="assignment" x="185" y="167">A_Pn := 1,B_Pn := 1</label></transition></template><template><name x="5" y="5">Observer_A</name><parameter x="10" y="25"/><declaration/><location id="id58" x="224" y="250"><name x="214" y="220">compare</name></location><init ref="id58"/><transition><source ref="id58"/><target ref="id58"/><label kind="guard" x="164" y="220">A_Pf == A_S1,A_Pn == A_S2</label><label kind="synchronisation" x="164" y="235">A_observe?</label><nail x="216" y="234"/><nail x="190" y="176"/><nail x="252" y="176"/></transition><transition><source ref="id58"/><target ref="id58"/><label kind="guard" x="164" y="220">A_Pn == 1,A_S2 == 0</label><label kind="synchronisation" x="164" y="235">A_observe?</label><label kind="assignment" x="164" y="265">A_diff := 1</label><nail x="238" y="254"/><nail x="298" y="270"/><nail x="270" y="320"/></transition><transition><source ref="id58"/><target ref="id58"/><label kind="guard" x="164" y="220">A_Pf == 1,A_S1 == 0</label><label kind="synchronisation" x="164" y="235">A_observe?</label><label kind="assignment" x="164" y="265">A_diff := 1</label><nail x="214" y="262"/><nail x="180" y="318"/><nail x="144" y="272"/></transition></template><template><name x="5" y="5">Observer_B</name><parameter x="10" y="25"/><declaration/><location id="id59" x="224" y="250"><name x="214" y="220">compare</name></location><init ref="id59"/><transition><source ref="id59"/><target ref="id59"/><label kind="guard" x="164" y="220">B_Pf == 1,B_S1 == 0</label><label kind="synchronisation" x="164" y="235">B_observe?</label><label kind="assignment" x="164" y="265">B_diff := 1</label><nail x="214" y="262"/><nail x="180" y="318"/><nail x="144" y="272"/></transition><transition><source ref="id59"/><target ref="id59"/><label kind="guard" x="164" y="220">B_Pn == 1,B_S2 == 0</label><label kind="synchronisation" x="164" y="235">B_observe?</label><label kind="assignment" x="164" y="265">B_diff := 1</label><nail x="238" y="254"/><nail x="298" y="270"/><nail x="270" y="320"/></transition><transition><source ref="id59"/><target ref="id59"/><label kind="guard" x="164" y="220">B_Pf == B_S1,B_Pn == B_S2</label><label kind="synchronisation" x="164" y="235">B_observe?</label><nail x="216" y="234"/><nail x="190" y="176"/><nail x="252" y="176"/></transition></template><template><name x="5" y="5">Frame_Generator_B</name><parameter x="10" y="25"/><declaration/><location id="id61" x="58" y="768"><name x="48" y="738">last</name></location><location id="id63" x="566" y="518"><name x="556" y="488">set_msg</name><committed/></location><location id="id62" x="308" y="518"><name x="298" y="488">msg</name></location><location id="id60" x="308" y="324"><name x="298" y="294">first</name></location><location id="id64" x="310" y="118"><name x="300" y="88">start</name></location><init ref="id64"/><transition><source ref="id60"/><target ref="id62"/><label kind="synchronisation" x="248" y="406">B_new_Pn?</label><label kind="assignment" x="248" y="436">B_Pn := 0</label></transition><transition><source ref="id61"/><target ref="id64"/><label kind="synchronisation" x="124" y="428">B_new_Pn?</label><label kind="assignment" x="124" y="458">B_Pn := 1,B_eof := 1,B_start := 0</label><nail x="56" y="753"/><nail x="56" y="117"/></transition><transition><source ref="id62"/><target ref="id61"/><label kind="guard" x="123" y="613">B_T4 == 1,B_msg == 0</label><label kind="synchronisation" x="123" y="628">B_new_Pn?</label><label kind="assignment" x="123" y="658">B_Pn := 0,B_stop := 1</label><nail x="305" y="533"/><nail x="255" y="769"/></transition><transition><source ref="id62"/><target ref="id62"/><label kind="guard" x="248" y="488">B_msg &gt; 0</label><label kind="synchronisation" x="248" y="503">B_new_Pn?</label><label kind="assignment" x="248" y="533">B_Pn := 1,B_msg := B_msg - 1</label><nail x="314" y="530"/><nail x="448" y="766"/><nail x="346" y="766"/></transition><transition><source ref="id62"/><target ref="id63"/><label kind="guard" x="377" y="488">B_T4 == 0,B_msg == 0</label><label kind="synchronisation" x="377" y="503">B_new_Pn?</label><label kind="assignment" x="377" y="533">B_no := B_no + 1,B_Pn := 0,B_start := 1</label><nail x="313" y="502"/><nail x="391" y="308"/><nail x="485" y="308"/></transition><transition><source ref="id62"/><target ref="id64"/><label kind="synchronisation" x="249" y="303">B_reset?</label><nail x="295" y="508"/><nail x="105" y="394"/><nail x="105" y="188"/></transition><transition><source ref="id63"/><target ref="id62"/><label kind="guard" x="377" y="488">B_no &gt; 16,B_no &lt;= 20</label><label kind="assignment" x="377" y="533">B_msg := 8,B_T4 := 1</label><nail x="553" y="526"/><nail x="501" y="564"/><nail x="389" y="564"/></transition><transition><source ref="id63"/><target ref="id62"/><label kind="guard" x="377" y="488">B_no &lt; 20</label><label kind="assignment" x="377" y="533">B_msg := 6</label><nail x="551" y="510"/><nail x="491" y="478"/><nail x="395" y="478"/></transition><transition><source ref="id63"/><target ref="id62"/><label kind="guard" x="377" y="488">B_no &lt; 20</label><label kind="assignment" x="377" y="533">B_msg := 4</label><nail x="555" y="504"/><nail x="487" y="422"/><nail x="395" y="422"/></transition><transition><source ref="id63"/><target ref="id62"/><label kind="guard" x="377" y="488">B_no &lt; 20</label><label kind="assignment" x="377" y="533">B_msg := 2</label><nail x="559" y="504"/><nail x="481" y="364"/><nail x="391" y="364"/></transition><transition><source ref="id64"/><target ref="id60"/><label kind="synchronisation" x="249" y="206">B_frame?</label><label kind="assignment" x="249" y="236">B_no := 1,B_msg := 10,B_eof := 0,B_stop := 0,B_T4 := 0</label></transition></template><template><name x="5" y="5">Frame_Generator_A</name><parameter x="10" y="25"/><declaration/><location id="id66" x="58" y="768"><name x="48" y="738">last</name></location><location id="id68" x="566" y="518"><name x="556" y="488">set_msg</name><committed/></location><location id="id67" x="308" y="518"><name x="298" y="488">msg</name></location><location id="id65" x="308" y="324"><name x="298" y="294">first</name></location><location id="id69" x="310" y="118"><name x="300" y="88">start</name></location><init ref="id69"/><transition><source ref="id65"/><target ref="id67"/><label kind="synchronisation" x="248" y="406">A_new_Pn?</label><label kind="assignment" x="248" y="436">A_Pn := 0</label></transition><transition><source ref="id66"/><target ref="id69"/><label kind="synchronisation" x="124" y="428">A_new_Pn?</label><label kind="assignment" x="124" y="458">A_Pn := 1,A_eof := 1,A_start := 0</label><nail x="56" y="753"/><nail x="56" y="117"/></transition><transition><source ref="id67"/><target ref="id66"/><label kind="guard" x="123" y="613">A_T4 == 1,A_msg == 0</label><label kind="synchronisation" x="123" y="628">A_new_Pn?</label><label kind="assignment" x="123" y="658">A_Pn := 0,A_stop := 1</label><nail x="305" y="533"/><nail x="255" y="769"/></transition><transition><source ref="id67"/><target ref="id67"/><label kind="guard" x="248" y="488">A_msg &gt; 0</label><label kind="synchronisation" x="248" y="503">A_new_Pn?</label><label kind="assignment" x="248" y="533">A_Pn := 1,A_msg := A_msg - 1</label><nail x="316" y="530"/><nail x="462" y="764"/><nail x="358" y="764"/></transition><transition><source ref="id67"/><target ref="id68"/><label kind="guard" x="377" y="488">A_T4 == 0,A_msg == 0</label><label kind="synchronisation" x="377" y="503">A_new_Pn?</label><label kind="assignment" x="377" y="533">A_no := A_no + 1,A_Pn := 0,A_start := 1</label><nail x="313" y="502"/><nail x="391" y="308"/><nail x="485" y="308"/></transition><transition><source ref="id67"/><target ref="id69"/><label kind="synchronisation" x="249" y="303">A_reset?</label><nail x="295" y="508"/><nail x="105" y="394"/><nail x="105" y="188"/></transition><transition><source ref="id68"/><target ref="id67"/><label kind="guard" x="377" y="488">A_no &lt; 20</label><label kind="assignment" x="377" y="533">A_msg := 2</label><nail x="559" y="504"/><nail x="481" y="364"/><nail x="391" y="364"/></transition><transition><source ref="id68"/><target ref="id67"/><label kind="guard" x="377" y="488">A_no &gt; 16,A_no &lt;= 20</label><label kind="assignment" x="377" y="533">A_msg := 8,A_T4 := 1</label><nail x="553" y="526"/><nail x="501" y="564"/><nail x="389" y="564"/></transition><transition><source ref="id69"/><target ref="id65"/><label kind="synchronisation" x="249" y="206">A_frame?</label><label kind="assignment" x="249" y="236">A_no := 1,A_msg := 10,A_eof := 0,A_stop := 0,A_T4 := 0</label></transition></template><instantiation/><system>system Sender_A, Sender_B, 
  Frame_Generator_A, Frame_Generator_B,
  Detector_A, Detector_B,
  Observer_A, Observer_B,
  Bus;</system></nta>