/* CIF ProcessDiagram */ /* CIF Page ProcDefs (1850,2650) */ /* CIF Frame (0,0),(1850,2650) */ /* CIF Page ProcVars (1850,2650) */ /* CIF Frame (0,0),(1850,2650) */ /* CIF Page Procedures (1850,2650) */ /* CIF Frame (0,0),(1850,2650) */ /* CIF Page Idle (1850,2650) */ /* CIF Frame (0,0),(1850,2650) */ /* CIF Page PhaseB_R1 (1850,2650) */ /* CIF Frame (0,0),(1850,2650) */ /* CIF Page PhaseB_R2 (1850,2650) */ /* CIF Frame (0,0),(1850,2650) */ /* CIF Page PhaseC_R (1850,2650) */ /* CIF Frame (0,0),(1850,2650) */ /* CIF Page PhaseB_T1 (1850,2650) */ /* CIF Frame (0,0),(1850,2650) */ /* CIF Page PhaseE (1850,2650) */ /* CIF Frame (0,0),(1850,2650) */ /* CIF Page PhaseB_R3 (1850,2650) */ /* CIF Frame (0,0),(1850,2650) */ /* CIF Page Wait_CFR_1 (1900,2850) */ /* CIF Frame (0,0),(1900,2850) */ /* CIF Page PhaseD_MultPage_T1 (1850,2650) */ /* CIF Frame (0,0),(1850,2650) */ /* CIF Page PhaseD_MultPage_T2 (1850,2650) */ /* CIF Frame (0,0),(1850,2650) */ /* CIF Page AllState (1850,2650) */ /* CIF Frame (0,0),(1850,2650) */ /* CIF Page PhaseD_T1 (1850,2650) */ /* CIF Frame (0,0),(1850,2650) */ /* CIF Specific SDT Version 1.0 */ /* CIF Specific SDT OriginalFileName '/home/asker/etoxod/pretty/phase3.spr' */ /* CIF Specific SDT Page ProcDefs Scale 100 */ /* CIF Specific SDT Page ProcVars Scale 100 */ /* CIF Specific SDT Page Procedures Scale 100 */ /* CIF Specific SDT Page Idle Scale 100 */ /* CIF Specific SDT Page PhaseB_R1 Scale 100 */ /* CIF Specific SDT Page PhaseB_R2 Scale 100 */ /* CIF Specific SDT Page PhaseC_R Scale 100 */ /* CIF Specific SDT Page PhaseB_T1 Scale 100 */ /* CIF Specific SDT Page PhaseE Scale 100 */ /* CIF Specific SDT Page PhaseB_R3 Scale 100 */ /* CIF Specific SDT Page Wait_CFR_1 Scale 100 */ /* CIF Specific SDT Page PhaseD_MultPage_T1 Scale 100 */ /* CIF Specific SDT Page PhaseD_MultPage_T2 Scale 100 */ /* CIF Specific SDT Page AllState Scale 100 */ /* CIF Specific SDT Page PhaseD_T1 Scale 100 */ Process phase; /* CIF DefaultSize (200,100) */ /* CIF CurrentPage ProcDefs */ /* CIF Text (500,400) */ TIMER T1Timer, T2Timer, T3Timer, T4Timer, 75msecTimer; /* CIF End Text */ /* CIF CurrentPage ProcVars */ /* CIF Text (100,350) */ /* Fax identification. Since Calling and Transmitting FAX are not always the same (Called FAX may called and asked to transmitt a document) The Following names are used: -CalledFAX -CallingFAX -TransmittingFAX -ReceivingFAX */ DCL PageTries integer; /* This variable is used to count how many times transmitter has tried to send a fax page */ DCL TCFTries integer;/* This variable is used to count how many times transmitter has tried to send a training sequece */ DCL RetVal,Timeouts integer; /* This variable is used to count how many times timeouts of T4timer has occured */ DCL ChangeMode boolean; DCL CapableToReXmit boolean; DCL bResult,bIntrusion boolean; DCL bChoice boolean; DCL DisData, StoredDis Dis_T; DCL PageData PageData_T; DCL br BaudRate_T; /* temporary storage */ /* CIF End Text */ /* CIF Text (100,1050) */ DCL fifData FifArr_T; DCL FaxCaps FaxCaps_T; DCL kChoice Boolean; DCL NumPages integer; /* Stores number of pages in facsimile left to send*/ DCL TlfNumber integer; /* Stores B number */ DCL CompTries integer; /* This variable is used to count how many times receiver/transkmitter has tried to become compatible*/ /* CIF End Text */ /* CIF CurrentPage Procedures */ /* CIF Procedure (200,350) */ /* CIF TextPosition (225,375) */ procedure PhaseAnswerCall referenced; /* CIF Procedure (650,350) */ /* CIF TextPosition (675,375) */ procedure PhaseCopyDis_T referenced; /* CIF Procedure (1050,350) */ /* CIF TextPosition (1075,375) */ procedure PhaseTransmit_PRI_Q referenced; /* CIF Procedure (200,500) */ /* CIF TextPosition (200,525) */ procedure PhaseSetFaxMode referenced; /* CIF Procedure (650,500) */ /* CIF TextPosition (675,525) */ procedure PhaseChangeToMSG referenced; /* CIF Procedure (1050,500) */ /* CIF TextPosition (1075,525) */ procedure PhasePhoneToLine referenced; /* CIF Procedure (200,650) */ /* CIF TextPosition (200,675) */ procedure PhaseSetModemToBCS referenced; /* CIF Procedure (650,650) */ /* CIF TextPosition (650,675) */ procedure PhaseReceiveTraining referenced; /* CIF Procedure (1050,650) */ /* CIF TextPosition (1075,675) */ procedure PhaseCompRemoteTransmitter referenced; /* CIF Procedure (200,800) */ /* CIF TextPosition (225,825) */ procedure PhaseEstablishCall referenced; /* CIF Procedure (650,800) */ /* CIF TextPosition (650,825) */ procedure PhaseChangeToBCS referenced; /* CIF Procedure (1050,800) */ /* CIF TextPosition (1075,825) */ procedure PhaseCompRemoteReceiver referenced; /* CIF Procedure (200,950) */ /* CIF TextPosition (225,975) */ procedure PhaseGetFaxMode referenced; /* CIF Procedure (650,950) */ /* CIF TextPosition (675,975) */ procedure PhaseRephase referenced; /* CIF Procedure (1050,950) */ /* CIF TextPosition (1075,975) */ procedure PhaseTransmittTCF referenced; /* CIF Procedure (200,1100) */ /* CIF TextPosition (200,1125) */ procedure PhaseDelay75msec referenced; /* CIF Procedure (650,1100) */ /* CIF TextPosition (675,1125) */ procedure PhaseCopyQualityOK referenced; /* CIF Procedure (1050,1100) */ /* CIF TextPosition (1075,1125) */ procedure PhaseTCFOk referenced; /* CIF Procedure (200,1250) */ /* CIF TextPosition (225,1275) */ procedure PhaseDisconnectLine referenced; /* CIF Procedure (650,1250) */ /* CIF TextPosition (650,1275) */ procedure PhaseSendFaxPage referenced; /* CIF Procedure (1050,1250) */ /* CIF TextPosition (1075,1275) */ procedure PhaseRephaseSender referenced; /* CIF Procedure (200,1400) */ /* CIF TextPosition (225,1425) */ procedure PhaseSendFaxPageToEnv referenced; /* CIF Procedure (650,1400) */ /* CIF TextPosition (675,1425) */ procedure PhaseFaxPageIgnore referenced; /* CIF Procedure (1050,1400) */ /* CIF TextPosition (1075,1425) */ procedure PhaseAltSpeech referenced; /* CIF CurrentPage Idle */ /* CIF Start (300,200) */ start ; /* CIF Line (400,300),(400,350) */ /* CIF Task (300,350) */ task PageTries:=0; /* CIF Line (400,450),(400,600) */ /* CIF NextState (300,600) */ nextstate Idle; /* CIF State (300,600) */ state Idle; /* CIF Line (400,700),(400,750) */ /* CIF Input (300,750) Left */ input CallSetup /* CIF Comment (250,750) Left */ /* CIF Line (250,800),(300,800) Dashed */ comment 'Called Station ' ; /* CIF Line (400,850),(400,900) */ /* CIF ProcedureCall (300,900) */ call PhaseGetFaxMode (0,StoredDis,FaxCaps); /* CIF Line (400,1000),(400,1050) */ /* CIF ProcedureCall (300,1050) */ call PhaseAnswerCall; /* CIF Line (400,1150),(400,1200) */ /* CIF Output (300,1200) Right */ output CED via g; /* CIF Line (400,1300),(400,1350) */ /* CIF ProcedureCall (300,1350) */ call PhaseDelay75msec; /* CIF Line (400,1450),(400,1500) */ /* CIF Label (100,1250),(100,100) */ R_ref: /* CIF Line (150,1350),(150,1475),(400,1475),(400,1500) */ /* CIF ProcedureCall (300,1500) */ call PhaseSetModemToBCS; /* CIF Line (400,1600),(400,1650) */ /* CIF Output (300,1650) Right */ output DIS (StoredDis) VIA g; /* CIF Line (400,1750),(400,1800) */ /* CIF ProcedureCall (300,1800) */ call PhaseCopyDis_T (StoredDis,DisData); /* CIF Line (400,1900),(400,1950) */ /* CIF Set (300,1950) */ SET(now+T1Period,T1Timer); /* CIF Line (400,2050),(400,2100) */ /* CIF Set (300,2100) */ SET(now+T4Period,T4Timer); /* CIF Line (400,2200),(400,2250) */ /* CIF Task (300,2250) */ task Timeouts:=0; /* CIF Line (400,2350),(400,2400) */ /* CIF NextState (300,2400) */ nextstate PhaseB_R; /* CIF Line (400,700),(400,725),(800,725),(800,750) */ /* CIF Input (700,750) Left */ input CallFax (NumPages,TlfNumber, bIntrusion) /* CIF Comment (950,550) Right */ /* CIF Line (950,600),(925,600),(925,800),(900,800) Dashed */ comment 'Calling Station' ; /* CIF Line (800,850),(800,900) */ /* CIF ProcedureCall (700,900) */ call PhaseEstablishCall (TlfNumber); /* CIF Line (800,1000),(800,1050) */ /* CIF Output (700,1050) Right */ output CallSetup via k; /* CIF Line (800,1150),(800,1200) */ /* CIF Output (700,1200) Right */ output CNG via g; /* CIF Line (800,1300),(800,1350) */ /* CIF ProcedureCall (700,1350) */ call PhaseDelay75msec; /* CIF Line (800,1450),(800,1500) */ /* CIF Set (700,1500) */ SET(now+T1Period,T1Timer); /* CIF Line (800,1600),(800,1800) */ /* CIF NextState (700,1800) */ nextstate PhaseB_T; /* CIF Line (400,700),(400,725),(1300,725),(1300,750) */ /* CIF Input (1200,750) Right */ input InitFaxCaps (FaxCaps); /* CIF Line (1300,850),(1300,1050) */ /* CIF ProcedureCall (1200,1050) */ call PhaseSetFaxMode (DisData,FaxCaps); /* CIF Line (1300,1150),(1300,1200) */ /* CIF NextState (1200,1200) */ nextstate idle; /* CIF End State */ endstate; /* CIF CurrentPage ProcDefs */ /* CIF CurrentPage ProcVars */ /* CIF CurrentPage Procedures */ /* CIF CurrentPage PhaseB_R1 */ /* CIF State (150,350) */ state PhaseB_R /* CIF Comment (450,350) Right */ /* CIF Line (450,400),(350,400) Dashed */ comment 'respons rec' ; /* CIF Line (250,450),(250,500) */ /* CIF Input (150,500) Right */ input DCN (DisData); /* CIF Line (250,600),(250,650) */ /* CIF Reset (150,650) */ reset(T4Timer); /* CIF Line (250,750),(250,800) */ /* CIF Reset (150,800) */ RESET(T1Timer); /* CIF Line (250,900),(250,950) */ /* CIF ProcedureCall (150,950) */ call PhaseDisconnectLine; /* CIF Line (250,1050),(250,1100) */ /* CIF NextState (150,1100) */ nextstate Idle; /* CIF Line (250,450),(250,475),(550,475),(550,500) */ /* CIF Input (450,500) Right */ input CRP (DisData); /* CIF Line (550,600),(550,650) */ /* CIF Output (450,650) Right */ output DIS (StoredDis) VIA g; /* CIF Line (550,750),(550,950) */ /* CIF Set (450,950) */ SET(NOW+T4Period,T4Timer); /* CIF Line (550,1050),(550,1100) */ /* CIF NextState (450,1100) */ nextstate PhaseB_R; /* CIF End State */ endstate; /* CIF State (850,350) */ state *; /* CIF Line (950,450),(950,500) */ /* CIF Input (850,500) Right */ input CNG /* CIF Comment (1350,350) Right */ /* CIF Line (1350,400),(1075,400),(1075,550),(1050,550) Dashed */ comment 'to let dump people know this is a fax call' ; /* CIF Line (950,600),(950,650) */ /* CIF Label Invisible */ grst9: /* CIF NextState (850,650) */ nextstate -; /* CIF Line (950,450),(950,475),(1200,475),(1200,500) */ /* CIF Input (1100,500) Right */ input CED /* CIF Comment (1350,350) Right */ /* CIF Line (1350,400),(1325,400),(1325,550),(1300,550) Dashed */ comment 'to let dump people know this is a fax call' ; /* CIF Line (1200,600),(1200,625),(950,625),(950,650) */ /* CIF Join Invisible */ join grst9; /* CIF End State */ endstate; /* CIF State (1250,950) */ state phoneLine; /* CIF Line (1350,1050),(1350,1100) */ /* CIF Input (1250,1100) Right */ input NoContinueFax; /* CIF Line (1350,1200),(1350,1250) */ /* CIF Join (1300,1250),(100,100) */ join B_Ref; /* CIF End State */ endstate; /* CIF CurrentPage PhaseB_R2 */ /* CIF State (600,350) */ state PhaseB_R; /* CIF Line (700,450),(700,475),(150,475),(150,500) */ /* CIF Input (50,500) Right */ input DCS (StoredDis); /* CIF Line (150,600),(150,650) */ /* CIF Reset (50,650) */ RESET(T1Timer); /* CIF Line (150,750),(150,800) */ /* CIF Reset (50,800) */ RESET(T4Timer); /* CIF Line (150,900),(150,950) */ /* CIF Task (50,950) */ task 'A timer ? '; /* CIF Line (150,1050),(150,1100) */ /* CIF ProcedureCall (50,1100) */ call PhaseReceiveTraining (bResult); /* CIF Line (150,1200),(150,1300) */ /* CIF ProcedureCall (50,1300) */ call PhaseChangeToBCS; /* CIF Line (150,1400),(150,1550) */ /* CIF Decision (50,1550) */ decision bResult=true; /* CIF Answer InvisibleBrackets */ /* CIF Line (150,1650),(150,1700) */ /* CIF TextPosition (175,1675) */ (true): /* CIF Output (50,1700) Right */ output CFR (StoredDis) VIA g; /* CIF Line (150,1800),(150,1850) */ /* CIF Set (50,1850) */ SET(NOW+T2Period, T2Timer); /* CIF Line (150,1950),(150,2000) */ /* CIF ProcedureCall (50,2000) */ call PhaseChangeToMSG; /* CIF Line (150,2100),(150,2150) */ /* CIF NextState (50,2150) */ nextstate PhaseC_R; /* CIF Answer Right InvisibleBrackets */ /* CIF Line (250,1600),(450,1600),(450,1700) */ /* CIF TextPosition (475,1625) */ (false): /* CIF Output (350,1700) Right */ output FTT (DisData) VIA g; /* CIF Line (450,1800),(450,1900) */ /* CIF Set (350,1900) */ SET(NOW+T2Period, T2Timer); /* CIF Line (450,2000),(450,2150) */ /* CIF NextState (350,2150) */ nextstate PhaseB_R; /* CIF End Decision */ enddecision; /* CIF Line (700,450),(700,475),(500,475),(500,500) */ /* CIF Input (400,500) Right */ input DTC (DisData) /* CIF Comment (150,350) Right */ /* CIF Line (150,400),(125,400),(125,475),(375,475),(375,550),(400,550) Dashed */ comment 'CallingFAX wants me to be transmitting FAX' ; /* CIF Line (500,600),(500,650) */ /* CIF Reset (400,650) */ RESET(T1Timer); /* CIF Line (500,750),(500,800) */ /* CIF Reset (400,800) */ RESET(T4Timer); /* CIF Line (500,900),(500,950) */ /* CIF Task (400,950) */ task PageTries:=PageTries+1; /* CIF Line (500,1050),(500,1100) */ /* CIF Task (400,1100) */ task NumPages:=1; /* CIF Line (500,1200),(500,1250) */ /* CIF Join (450,1250),(100,100) */ join D_ref; /* CIF Line (700,450),(700,475),(900,475),(900,500) */ /* CIF Input (800,500) Right */ input DIS (DisData) /* CIF Comment (1050,350) Right */ /* CIF Line (1050,400),(1025,400),(1025,550),(1000,550) Dashed */ comment 'CallingFAX wants me to be transmitting FAX' ; /* CIF Line (900,600),(900,650) */ /* CIF ProcedureCall (800,650) */ call PhaseCopyDis_T (StoredDis,DisData); /* CIF Line (900,750),(900,800) */ /* CIF Reset (800,800) */ RESET(T1Timer); /* CIF Line (900,900),(900,950) */ /* CIF Reset (800,950) */ RESET(T4Timer); /* CIF Line (900,1050),(900,1100) */ /* CIF Task (800,1100) */ task PageTries:=PageTries+1; /* CIF Line (900,1200),(900,1250) */ /* CIF Task (800,1250) */ task NumPages:=2; /* CIF Line (900,1350),(900,1400) */ /* CIF Join (850,1400),(100,100) */ join A_ref; /* CIF Line (700,450),(700,475),(1150,475),(1150,500) */ /* CIF Input (1050,500) Right */ input T1Timer; /* CIF Line (1150,600),(1150,650) */ /* CIF Output (1050,650) Right */ output DCN (DisData) VIA g; /* CIF Line (1150,750),(1150,800) */ /* CIF ProcedureCall (1050,800) */ call PhaseDisconnectLine; /* CIF Line (1150,900),(1150,950) */ /* CIF Reset (1050,950) */ RESET(T4Timer); /* CIF Line (1150,1050),(1150,1100) */ /* CIF NextState (1050,1100) */ nextstate Idle; /* CIF Line (700,450),(700,475),(1400,475),(1400,500) */ /* CIF Input (1300,500) Right */ input T4Timer; /* CIF Line (1400,600),(1400,650) */ /* CIF Task (1300,650) */ task Timeouts:=Timeouts+1; /* CIF Line (1400,750),(1400,850) */ /* CIF Decision (1300,850) */ decision Timeouts=3 /* CIF Comment (1550,750) Right */ /* CIF Line (1550,800),(1525,800),(1525,900),(1500,900) Dashed */ comment 'LOOKs optional //ETOFLI' ; /* CIF Answer InvisibleBrackets */ /* CIF Line (1400,950),(1400,1050) */ /* CIF TextPosition (1425,975) */ (False): /* CIF Output (1300,1050) Right */ output DIS (DisData) VIA g; /* CIF Line (1400,1150),(1400,1200) */ /* CIF Set (1300,1200) */ set ( Now + T4Period,T4Timer); /* CIF Line (1400,1300),(1400,1500) */ /* CIF NextState (1300,1500) */ nextstate PhaseB_R; /* CIF Answer Right InvisibleBrackets */ /* CIF Line (1500,900),(1700,900),(1700,1050) */ /* CIF TextPosition (1725,925) */ (true): /* CIF Output (1600,1050) Right */ output DCN (DisData) VIA g; /* CIF Line (1700,1150),(1700,1200) */ /* CIF Reset (1600,1200) */ RESET(T4Timer); /* CIF Line (1700,1300),(1700,1350) */ /* CIF Reset (1600,1350) */ RESET(T1Timer); /* CIF Line (1700,1450),(1700,1500) */ /* CIF NextState (1600,1500) */ nextstate PhaseE; /* CIF End Decision */ enddecision; /* CIF End State */ endstate; /* CIF CurrentPage PhaseC_R */ /* CIF State (50,250) */ state PhaseC_R; /* CIF Line (150,350),(150,400) */ /* CIF Input (50,400) Right */ input FaxPage (PageData); /* CIF Line (150,500),(150,550) */ /* CIF Reset (50,550) */ RESET(T2Timer); /* CIF Line (150,650),(150,700) */ /* CIF Output (50,700) Right */ output FaxPage (PageData) TO self; /* CIF Line (150,800),(150,850) */ /* CIF ProcedureCall (50,850) */ call PhaseChangeToBCS; /* CIF Line (150,950),(150,1000) */ /* CIF NextState (50,1000) */ nextstate PhaseB_R; /* CIF End State */ endstate; /* CIF CurrentPage PhaseB_T1 */ /* CIF State (250,300) */ state PhaseB_T; /* CIF Line (350,400),(350,450) */ /* CIF Input (250,450) Right */ input DIS (DisData); /* CIF Line (350,550),(350,600) */ /* CIF Label Invisible */ grst10: /* CIF Reset (250,600) */ RESET(T1Timer); /* CIF Line (350,700),(350,750) */ /* CIF ProcedureCall (250,750) */ call PhaseCopyDis_T (StoredDis,DisData); /* CIF Line (350,850),(350,900) */ /* CIF Reset (250,900) */ RESET(T2Timer); /* CIF Line (350,1000),(350,1050) */ /* CIF Task (250,1050) */ task TCFTries:=0, CompTries:=0, PageTries:=0 /* Used to count tries one a single page*/; /* CIF Line (350,1150),(350,1250) */ /* CIF Join (300,1250),(100,100) */ join A_ref; /* CIF Line (350,400),(350,425),(600,425),(600,450) */ /* CIF Input (500,450) Right */ input DTC (DisData); /* CIF Line (600,550),(600,575),(350,575),(350,600) */ /* CIF Join Invisible */ join grst10; /* CIF Line (350,400),(350,425),(850,425),(850,450) */ /* CIF Input (750,450) Right */ input T1Timer; /* CIF Line (850,550),(850,700) */ /* CIF Label Invisible */ grst11: /* CIF ProcedureCall (750,700) */ call PhaseDisconnectLine; /* CIF Line (850,800),(850,850) */ /* CIF NextState (750,850) */ nextstate Idle; /* CIF Line (350,400),(350,425),(1100,425),(1100,450) */ /* CIF Input (1000,450) Right */ input *; /* CIF Line (1100,550),(1100,575),(850,575),(850,700) */ /* CIF Join Invisible */ join grst11; /* CIF Line (350,400),(350,425),(1350,425),(1350,450) */ /* CIF Input (1250,450) Right */ input DCN (DisData); /* CIF Line (1350,550),(1350,650),(850,650),(850,700) */ /* CIF Join Invisible */ join grst11; /* CIF End State */ endstate; /* CIF Label (1300,900),(100,100) */ connection D_ref /* CIF Comment (1500,900) Right */ /* CIF Line (1500,950),(1400,950) Dashed */ comment 'Transmitting FAX' : /* CIF Line (1350,1000),(1350,1100) */ /* CIF Task (1250,1100) */ task 'Set mode'; /* CIF Line (1350,1200),(1350,1250) */ /* CIF Output (1250,1250) Right */ output DCS (StoredDis) VIA g; /* CIF Line (1350,1350),(1350,1400) */ /* CIF ProcedureCall (1250,1400) */ call PhaseTransmittTCF; /* CIF Line (1350,1500),(1350,1550) */ /* CIF Set (1250,1550) */ SET(NOW + T4Period,T4Timer); /* CIF Line (1350,1650),(1350,1700) */ /* CIF Task (1250,1700) */ task TCFTries:=TCFTries+1; /* CIF Line (1350,1800),(1350,1850) */ /* CIF NextState (1250,1850) */ nextstate Wait_CFR; /* CIF End Label */ endconnection D_ref; /* CIF Label (300,1400),(100,100) */ connection A_ref /* CIF Comment (550,1400) Right */ /* CIF Line (550,1450),(400,1450) Dashed */ comment 'This reference i used when checking copatible rec/trans fax' : /* CIF Line (350,1500),(350,1550) */ /* CIF ProcedureCall (250,1550) */ call PhaseCompRemoteReceiver (bChoice,StoredDis,FaxCaps); /* CIF Line (350,1650),(350,1700) */ /* CIF Task (250,1700) */ task CompTries:=CompTries+1; /* CIF Line (350,1800),(350,1850) */ /* CIF Decision (250,1850) */ decision bChoice; /* CIF Answer InvisibleBrackets */ /* CIF Line (350,1950),(350,2050) */ /* CIF TextPosition (225,1950) */ (true): /* CIF Decision (250,2050) */ decision NumPages >0; /* CIF Answer Right InvisibleBrackets */ /* CIF Line (450,2100),(600,2100),(600,2150) */ /* CIF TextPosition (450,2050) */ (false): /* CIF ProcedureCall (500,2150) */ call PhaseCompRemoteTransmitter (fifData, bChoice); /* CIF Line (600,2250),(600,2350) */ /* CIF Decision (500,2350) */ decision bChoice; /* CIF Answer InvisibleBrackets */ /* CIF Line (600,2450),(600,2500) */ /* CIF TextPosition (625,2475) */ (true): /* CIF Join (550,2500),(100,100) */ join R_ref; /* CIF Answer Right InvisibleBrackets */ /* CIF Line (700,2400),(850,2400),(850,2500) */ /* CIF TextPosition (875,2425) */ (false): /* CIF End Decision */ enddecision; /* CIF Answer InvisibleBrackets */ /* CIF Line (350,2150),(350,2500) */ /* CIF TextPosition (275,2150) */ (true): /* CIF Join (300,2500),(100,100) */ join D_ref; /* CIF End Decision */ enddecision; /* CIF Answer Right InvisibleBrackets */ /* CIF Line (450,1900),(850,1900),(850,2500) */ /* CIF TextPosition (875,1925) */ (false): /* CIF End Decision */ enddecision; /* CIF Join (800,2500),(100,100) */ join C_ref; /* CIF End Label */ endconnection A_ref; /* CIF CurrentPage PhaseE */ /* CIF State (100,350) */ state PhaseE; /* CIF Line (200,450),(200,500) */ /* CIF Input (100,500) Right */ input *; /* CIF Line (200,600),(200,650) */ /* CIF NextState (100,650) */ nextstate Idle; /* CIF End State */ endstate; /* CIF Label (650,400),(100,100) */ connection IIRef: /* CIF Line (700,500),(700,550) */ /* CIF Decision (600,550) */ decision NumPages = 1; /* CIF Answer Right InvisibleBrackets */ /* CIF Line (800,600),(825,600),(825,625),(1550,625),(1550,650) */ /* CIF TextPosition (850,650) */ (false): /* CIF Output (1450,650) Right */ output MPS (DisData) VIA g; /* CIF Line (1550,750),(1550,800) */ /* CIF Task (1450,800) */ task timeouts:=0; /* CIF Line (1550,900),(1550,950) */ /* CIF Set (1450,950) */ SET(NOW + T4Period,T4Timer); /* CIF Line (1550,1050),(1550,1150) */ /* CIF NextState (1450,1150) */ nextstate PhaseD_MultPage_T; /* CIF Answer InvisibleBrackets */ /* CIF Line (700,650),(700,700) */ /* CIF TextPosition (725,675) */ (true): /* CIF Decision (600,700) */ decision ChangeMode; /* CIF Answer InvisibleBrackets */ /* CIF Line (700,800),(700,850) */ /* CIF TextPosition (725,800) */ (false): /* CIF Output (600,850) Right */ output EOP (DisData) VIA g; /* CIF Line (700,950),(700,1000) */ /* CIF Task (600,1000) */ task timeouts:=0; /* CIF Line (700,1100),(700,1150) */ /* CIF Set (600,1150) */ SET(NOW + T4Period,T4Timer); /* CIF Line (700,1250),(700,1300) */ /* CIF Decision (600,1300) */ decision bIntrusion; /* CIF Answer Right InvisibleBrackets */ /* CIF Line (800,1350),(950,1350),(950,1500) */ /* CIF TextPosition (975,1375) */ (true): /* CIF Output (850,1500) Right */ output PIP (DISData) VIA g; /* CIF Line (950,1600),(950,1650) */ /* CIF NextState (850,1650) */ nextstate PhaseD_T; /* CIF Answer InvisibleBrackets */ /* CIF Line (700,1400),(700,1650) */ /* CIF TextPosition (725,1425) */ (false): /* CIF NextState (600,1650) */ nextstate PhaseD_T; /* CIF End Decision */ enddecision; /* CIF Answer Right InvisibleBrackets */ /* CIF Line (800,750),(1200,750),(1200,850) */ /* CIF TextPosition (1225,775) */ (true): /* CIF Output (1100,850) Right */ output EOM (DisData) VIA g /* CIF Comment (1050,450) Right */ /* CIF Line (1050,500),(1025,500),(1025,900),(1100,900) Dashed */ comment 'The transmitting unit desires to exit from the transmitting mode of operations and re-establish the capabillities.' ; /* CIF Line (1200,950),(1200,1000) */ /* CIF Task (1100,1000) */ task timeouts:=0; /* CIF Line (1200,1100),(1200,1150) */ /* CIF Set (1100,1150) */ SET(NOW + T4Period,T4Timer); /* CIF Line (1200,1250),(1200,1300) */ /* CIF NextState (1100,1300) */ nextstate PhaseD_T /* CIF Comment (1350,1300) Right */ /* CIF Line (1350,1350),(1300,1350) Dashed */ comment '//ETOFLI Usikker ?!!' ; /* CIF End Decision */ enddecision; /* CIF End Decision */ enddecision; /* CIF End Label */ endconnection IIRef; /* CIF CurrentPage PhaseB_R3 */ /* CIF State (400,350) */ state PhaseB_R /* D phase */; /* CIF Line (500,450),(500,475),(300,475),(300,500) */ /* CIF Input (200,500) Right */ input MPS (DisData); /* CIF Line (300,600),(300,700) */ /* CIF Reset (200,700) */ RESET(T4Timer); /* CIF Line (300,800),(300,850) */ /* CIF ProcedureCall (200,850) */ call PhaseCopyQualityOK (bChoice); /* CIF Line (300,950),(300,1000) */ /* CIF Decision (200,1000) */ decision bChoice; /* CIF Answer InvisibleBrackets */ /* CIF Line (300,1100),(300,1200) */ /* CIF TextPosition (325,1125) */ (true): /* CIF ProcedureCall (200,1200) */ call PhaseRephaseSender (bChoice); /* CIF Line (300,1300),(300,1400) */ /* CIF Decision (200,1400) */ decision bChoice; /* CIF Answer InvisibleBrackets */ /* CIF Line (300,1500),(300,1600) */ /* CIF TextPosition (325,1525) */ (false): /* CIF ProcedureCall (200,1600) */ call PhaseSendFaxPageToEnv; /* CIF Line (300,1700),(300,1750) */ /* CIF Output (200,1750) Right */ output MCF (DisData) VIA g; /* CIF Line (300,1850),(300,1900) */ /* CIF ProcedureCall (200,1900) */ call PhaseChangeToMSG; /* CIF Line (300,2000),(300,2050) */ /* CIF NextState (200,2050) */ nextstate PhaseC_R /* CIF Comment (100,2200) Right */ /* CIF Line (100,2250),(75,2250),(75,2100),(200,2100) Dashed */ comment 'This is not exatly according to the standard State PhaseC_R does not really exist in the standard Is done to show all phases in a fax call ' ; /* CIF Answer Right InvisibleBrackets */ /* CIF Line (400,1450),(550,1450),(550,1600) */ /* CIF TextPosition (575,1525) */ (true): /* CIF Output (450,1600) Right */ output RTP (DisData) VIA g; /* CIF Line (550,1700),(550,1750) */ /* CIF ProcedureCall (450,1750) */ call PhaseFaxPageIgnore; /* CIF Line (550,1850),(550,1900) */ /* CIF NextState (450,1900) */ nextstate PhaseB_R; /* CIF End Decision */ enddecision; /* CIF Answer Right InvisibleBrackets */ /* CIF Line (400,1050),(800,1050),(800,1600) */ /* CIF TextPosition (825,1075) */ (false): /* CIF Output (700,1600) Right */ output RTN (DisData) VIA g; /* CIF Line (800,1700),(800,1750) */ /* CIF ProcedureCall (700,1750) */ call PhaseFaxPageIgnore; /* CIF Line (800,1850),(800,1900) */ /* CIF NextState (700,1900) */ nextstate PhaseB_R; /* CIF End Decision */ enddecision; /* CIF Line (500,450),(500,475),(650,475),(650,500) */ /* CIF Input (550,500) Right */ input *; /* CIF Line (650,600),(650,650) */ /* CIF ProcedureCall (550,650) */ call PhaseDisconnectLine; /* CIF Line (650,750),(650,800) */ /* CIF NextState (550,800) */ nextstate Idle; /* CIF Line (500,450),(500,475),(1100,475),(1100,500) */ /* CIF Input (1000,500) Right */ input EOM (DisData); /* CIF Line (1100,600),(1100,700) */ /* CIF Label Invisible */ grst12: /* CIF Reset (1000,700) */ RESET(T4Timer); /* CIF Line (1100,800),(1100,900) */ /* CIF ProcedureCall (1000,900) */ call PhaseCopyQualityOK (bChoice); /* CIF Line (1100,1000),(1100,1050) */ /* CIF Decision (1000,1050) */ decision bChoice; /* CIF Answer InvisibleBrackets */ /* CIF Line (1100,1150),(1100,1250) */ /* CIF TextPosition (1125,1175) */ (true): /* CIF ProcedureCall (1000,1250) */ call PhaseRephaseSender (bChoice); /* CIF Line (1100,1350),(1100,1400) */ /* CIF Decision (1000,1400) */ decision bChoice; /* CIF Answer InvisibleBrackets */ /* CIF Line (1100,1500),(1100,1600) */ /* CIF TextPosition (1125,1550) */ (false): /* CIF ProcedureCall (1000,1600) */ call PhaseSendFaxPageToEnv; /* CIF Line (1100,1700),(1100,1750) */ /* CIF Output (1000,1750) Right */ output MCF (DisData) VIA g; /* CIF Line (1100,1850),(1100,1900) */ /* CIF ProcedureCall (1000,1900) */ call PhaseChangeToMSG; /* CIF Line (1100,2000),(1100,2050) */ /* CIF NextState (1000,2050) */ nextstate PhaseB_R; /* CIF Answer Right InvisibleBrackets */ /* CIF Line (1200,1450),(1350,1450),(1350,1600) */ /* CIF TextPosition (1375,1475) */ (true): /* CIF ProcedureCall (1250,1600) */ call PhaseFaxPageIgnore; /* CIF Line (1350,1700),(1350,1750) */ /* CIF Output (1250,1750) Right */ output RTP (DisData) VIA g; /* CIF Line (1350,1850),(1350,1950) */ /* CIF NextState (1250,1950) */ nextstate PhaseB_R; /* CIF End Decision */ enddecision; /* CIF Answer Right InvisibleBrackets */ /* CIF Line (1200,1100),(1600,1100),(1600,1350) */ /* CIF TextPosition (1625,1125) */ (false): /* CIF ProcedureCall (1500,1350) */ call PhaseFaxPageIgnore; /* CIF Line (1600,1450),(1600,1750) */ /* CIF Output (1500,1750) Right */ output RTN (DisData) VIA g; /* CIF Line (1600,1850),(1600,1950) */ /* CIF NextState (1500,1950) */ nextstate PhaseB_R; /* CIF End Decision */ enddecision; /* CIF Line (500,450),(500,475),(1350,475),(1350,500) */ /* CIF Input (1250,500) Right */ input EOP (DisData); /* CIF Line (1350,600),(1350,625),(1100,625),(1100,700) */ /* CIF Join Invisible */ join grst12; /* CIF Line (500,450),(500,475),(1650,475),(1650,500) */ /* CIF Save (1550,500) */ save FaxPage; /* CIF End State */ endstate; /* CIF CurrentPage Wait_CFR_1 */ /* CIF State (650,450) */ state Wait_CFR; /* CIF Line (750,550),(750,575),(200,575),(200,600) */ /* CIF Input (100,600) Right */ input CFR (DisData); /* CIF Line (200,700),(200,750) */ /* CIF Reset (100,750) */ RESET(T4Timer); /* CIF Line (200,850),(200,900) */ /* CIF ProcedureCall (100,900) */ call PhaseSendFaxPage; /* CIF Line (200,1000),(200,1250) */ /* CIF Join (150,1250),(100,100) */ join IIRef; /* CIF Line (750,550),(750,575),(450,575),(450,600) */ /* CIF Input (350,600) Right */ input DIS (DisData); /* CIF Line (450,700),(450,900) */ /* CIF Label Invisible */ grst13: /* CIF Reset (350,900) */ RESET(T4Timer); /* CIF Line (450,1000),(450,1050) */ /* CIF Decision (350,1050) */ decision CompTries=3 /* CIF Comment (350,1450) Right */ /* CIF Line (350,1500),(325,1500),(325,1100),(350,1100) Dashed */ comment 'The T.30 protocol states that only 3 tries can be made to find a compatible fax transmission mode between calling and called fax.' ; /* CIF Answer InvisibleBrackets */ /* CIF Line (450,1150),(450,1250) */ /* CIF TextPosition (475,1175) */ (false): /* CIF Join (400,1250),(100,100) */ join A_ref; /* CIF Answer Right InvisibleBrackets */ /* CIF Line (550,1100),(700,1100),(700,1250) */ /* CIF TextPosition (575,1075) */ (true): /* CIF Join (650,1250),(100,100) */ join C_ref; /* CIF End Decision */ enddecision; /* CIF Line (750,550),(750,575),(700,575),(700,600) */ /* CIF Input (600,600) Right */ input DTC (DisData); /* CIF Line (700,700),(700,725),(450,725),(450,900) */ /* CIF Join Invisible */ join grst13; /* CIF Line (750,550),(750,575),(950,575),(950,600) */ /* CIF Input (850,600) Right */ input DCN (DisData); /* CIF Line (950,700),(950,750) */ /* CIF ProcedureCall (850,750) */ call PhaseDisconnectLine; /* CIF Line (950,850),(950,900) */ /* CIF NextState (850,900) */ nextstate Idle; /* CIF Line (750,550),(750,575),(1200,575),(1200,600) */ /* CIF Input (1100,600) Right */ input FTT (DisData); /* CIF Line (1200,700),(1200,750) */ /* CIF Reset (1100,750) */ RESET(T4Timer); /* CIF Line (1200,850),(1200,900) */ /* CIF ProcedureCall (1100,900) */ call PhaseRephase (bChoice); /* CIF Line (1200,1000),(1200,1050) */ /* CIF Decision (1100,1050) */ decision bChoice; /* CIF Answer InvisibleBrackets */ /* CIF Line (1200,1150),(1200,1250) */ /* CIF TextPosition (1225,1175) */ (true): /* CIF Join (1150,1250),(100,100) */ join D_Ref; /* CIF Answer Right InvisibleBrackets */ /* CIF Line (1300,1100),(1400,1100),(1400,1400) */ /* CIF TextPosition (1375,1125) */ (false): /* CIF Join (1350,1400),(100,100) */ join C_Ref; /* CIF End Decision */ enddecision; /* CIF Line (750,550),(750,575),(1450,575),(1450,600) */ /* CIF Input (1350,600) Right */ input T4Timer; /* CIF Line (1450,700),(1450,800) */ /* CIF Decision (1350,800) */ decision TCFTries=3; /* CIF Answer InvisibleBrackets */ /* CIF Line (1450,900),(1450,950) */ /* CIF TextPosition (1475,925) */ (true): /* CIF Join (1400,950),(100,100) */ join C_ref; /* CIF Answer Right InvisibleBrackets */ /* CIF Line (1550,850),(1700,850),(1700,950) */ /* CIF TextPosition (1725,875) */ (false): /* CIF End Decision */ enddecision; /* CIF Label Invisible */ grst14: /* CIF Task (1600,950) */ task 'Set mode'; /* CIF Line (1700,1050),(1700,1100) */ /* CIF Output (1600,1100) Right */ output DCS (DisData) VIA g; /* CIF Line (1700,1200),(1700,1250) */ /* CIF ProcedureCall (1600,1250) */ call PhaseTransmittTCF; /* CIF Line (1700,1350),(1700,1400) */ /* CIF Set (1600,1400) */ SET(NOW + T4Period,T4Timer); /* CIF Line (1700,1500),(1700,1550) */ /* CIF Task (1600,1550) */ task TCFTries:=TCFTries+1; /* CIF Line (1700,1650),(1700,1700) */ /* CIF NextState (1600,1700) */ nextstate Wait_CFR; /* CIF Line (750,550),(750,575),(1700,575),(1700,600) */ /* CIF Input (1600,600) Right */ input CRP (DisData) /* CIF Comment (1400,450) Right */ /* CIF Line (1400,500),(1375,500),(1375,575),(1575,575),(1575,650),(1600,650) Dashed */ comment '//ETOFLI This could solve DCS/CFR crash' ; /* CIF Line (1700,700),(1700,950) */ /* CIF Join Invisible */ join grst14; /* CIF End State */ endstate; /* CIF CurrentPage PhaseD_MultPage_T1 */ /* CIF State (750,100) */ state PhaseD_MultPage_T; /* CIF Line (850,200),(850,225),(300,225),(300,250) */ /* CIF Input (200,250) Right */ input MCF (DisData); /* CIF Line (300,350),(300,400) */ /* CIF Reset (200,400) */ RESET(T4Timer); /* CIF Line (300,500),(300,550) */ /* CIF Task (200,550) */ task NumPages:=NumPages-1; /* CIF Line (300,650),(300,750) */ /* CIF ProcedureCall (200,750) */ call PhaseSendFaxPage; /* CIF Line (300,850),(300,1050) */ /* CIF ProcedureCall (200,1050) */ call PhaseSetModemToBCS; /* CIF Line (300,1150),(300,1200) */ /* CIF Decision (200,1200) */ decision NumPages = 1 /* CIF Comment (500,1150) Right */ /* CIF Line (500,1200),(475,1200),(475,1250),(400,1250) Dashed */ comment 'last page has been sent' ; /* CIF Answer Right InvisibleBrackets */ /* CIF Line (400,1250),(425,1250),(425,1275),(850,1275),(850,1300) */ /* CIF TextPosition (450,1300) */ (false): /* CIF Output (750,1300) Right */ output MPS (DisData) VIA g; /* CIF Line (850,1400),(850,1500) */ /* CIF Task (750,1500) */ task timeouts:=0; /* CIF Line (850,1600),(850,1750) */ /* CIF Set (750,1750) */ SET(NOW + T4Period,T4Timer); /* CIF Line (850,1850),(850,1950) */ /* CIF NextState (750,1950) */ nextstate PhaseD_MultPage_T; /* CIF Answer InvisibleBrackets */ /* CIF Line (300,1300),(300,1350) */ /* CIF TextPosition (325,1325) */ (true): /* CIF Decision (200,1350) */ decision ChangeMode=true; /* CIF Answer InvisibleBrackets */ /* CIF Line (300,1450),(300,1500) */ /* CIF TextPosition (300,1475) */ (false): /* CIF Output (200,1500) Right */ output EOP (DisData) VIA g; /* CIF Line (300,1600),(300,1650) */ /* CIF Task (200,1650) */ task timeouts:=0; /* CIF Line (300,1750),(300,1800) */ /* CIF Set (200,1800) */ SET(NOW + T4Period,T4Timer); /* CIF Line (300,1900),(300,2100) */ /* CIF NextState (200,2100) */ nextstate PhaseD_T; /* CIF Answer Right InvisibleBrackets */ /* CIF Line (400,1400),(600,1400),(600,1500) */ /* CIF TextPosition (625,1425) */ (true): /* CIF Output (500,1500) Right */ output EOM (DisData) VIA g /* CIF Comment (200,2250) Right */ /* CIF Line (200,2300),(175,2300),(175,2225),(475,2225),(475,1550),(500,1550) Dashed */ comment 'The transmitting unit desires to exit from the transmitting mode of operations and re-establish the capabillities.' ; /* CIF Line (600,1600),(600,1650) */ /* CIF Task (500,1650) */ task timeouts:=0; /* CIF Line (600,1750),(600,1900) */ /* CIF Set (500,1900) */ SET(NOW + T4Period,T4Timer); /* CIF Line (600,2000),(600,2100) */ /* CIF NextState (500,2100) */ nextstate PhaseD_T /* CIF Comment (700,2300) Right */ /* CIF Line (700,2350),(675,2350),(675,2275),(725,2275),(725,2150),(700,2150) Dashed */ comment '//ETOFLI Usikker ?!!' ; /* CIF End Decision */ enddecision; /* CIF End Decision */ enddecision; /* CIF Line (850,200),(850,225),(550,225),(550,250) */ /* CIF Input (450,250) Right */ input RTN (DisData); /* CIF Line (550,350),(550,650) */ /* CIF Label Invisible */ grst15: /* CIF Reset (450,650) */ RESET(T4Timer); /* CIF Line (550,750),(550,850) */ /* CIF Task (450,850) */ task StoredDis!FifLit!BaudRateLit:= GetLowerBr(StoredDis!FifLit!BaudRateLit) /* try a lower baudrate */ ; /* CIF Line (550,950),(550,1000) */ /* CIF Join (500,1000),(100,100) */ join D_ref; /* CIF Line (850,200),(850,225),(800,225),(800,250) */ /* CIF Input (700,250) Right */ input RTP (DisData) /* CIF Comment (650,450) Right */ /* CIF Line (650,500),(625,500),(625,375),(675,375),(675,300),(700,300) Dashed */ comment 'Question: Do we resend page or not Decision: Resend previos page with new capabillities' ; /* CIF Line (800,350),(800,375),(550,375),(550,650) */ /* CIF Join Invisible */ join grst15; /* CIF Line (850,200),(850,225),(1050,225),(1050,250) */ /* CIF Input (950,250) Right */ input *; /* CIF Line (1050,350),(1050,400) */ /* CIF Join (1000,400),(100,100) */ join C_ref; /* CIF Line (850,200),(850,225),(1300,225),(1300,250) */ /* CIF Input (1200,250) Right */ input T4Timer; /* CIF Line (1300,350),(1300,400) */ /* CIF Task (1200,400) */ task PageTries:=PageTries+1; /* CIF Line (1300,500),(1300,550) */ /* CIF Decision (1200,550) */ decision PageTries=3; /* CIF Answer Right InvisibleBrackets */ /* CIF Line (1400,600),(1550,600),(1550,650) */ /* CIF TextPosition (1575,625) */ (false): /* CIF Answer InvisibleBrackets */ /* CIF Line (1300,650),(1300,750) */ /* CIF TextPosition (1325,675) */ (true): /* CIF Output (1200,750) Right */ output NokFax via a; /* CIF Line (1300,850),(1300,900) */ /* CIF Join (1250,900),(100,100) */ join C_ref; /* CIF End Decision */ enddecision; /* CIF Label Invisible */ grst16: /* CIF Task (1450,650) */ task 'Set mode'; /* CIF Line (1550,750),(1550,800) */ /* CIF Output (1450,800) Right */ output MPS (DisData) VIA g; /* CIF Line (1550,900),(1550,1000) */ /* CIF Reset (1450,1000) */ RESET(T4Timer) /* //ETOFLI put this elsewhere */; /* CIF Line (1550,1100),(1550,1150) */ /* CIF NextState (1450,1150) */ nextstate Wait_CFR; /* CIF Line (850,200),(850,225),(1550,225),(1550,250) */ /* CIF Input (1450,250) Right */ input CRP (DisData); /* CIF Line (1550,350),(1550,650) */ /* CIF Join Invisible */ join grst16; /* CIF End State */ endstate; /* CIF CurrentPage PhaseD_MultPage_T2 */ /* CIF Label (450,1900),(100,100) */ connection B_Ref: /* CIF Line (500,2000),(500,2050) */ /* CIF ProcedureCall (400,2050) */ call PhaseDisconnectLine; /* CIF Line (500,2150),(500,2200) */ /* CIF NextState (400,2200) */ nextstate idle; /* CIF End Label */ endconnection B_Ref; /* CIF CurrentPage AllState */ /* CIF State (650,300) */ state *; /* CIF Line (750,400),(750,450) */ /* CIF Input (650,450) Right */ input PIN (DISData); /* CIF Line (750,550),(750,650) */ /* CIF Label Invisible */ grst17: /* CIF Reset (650,650) */ RESET(T4Timer); /* CIF Line (750,750),(750,800) */ /* CIF Reset (650,800) */ RESET(T1Timer); /* CIF Line (750,900),(750,950) */ /* CIF Reset (650,950) */ RESET(T2Timer) /* CIF Comment (900,950) Right */ /* CIF Line (900,1000),(850,1000) Dashed */ comment '//etofli how to set timers again ?' ; /* CIF Line (750,1050),(750,1100) */ /* CIF ProcedureCall (650,1100) */ call PhaseAltSpeech (RetVal); /* CIF Line (750,1200),(750,1250) */ /* CIF Decision (650,1250) */ decision RetVal; /* CIF Answer Right InvisibleBrackets */ /* CIF Line (850,1300),(1000,1300),(1000,1400) */ /* CIF TextPosition (975,1325) */ (0): /* CIF ProcedureCall (900,1400) */ call PhaseDisconnectLine; /* CIF Line (1000,1500),(1000,1550) */ /* CIF NextState (900,1550) */ nextstate idle; /* CIF Answer InvisibleBrackets */ /* CIF Line (750,1350),(750,1550) */ /* CIF TextPosition (775,1375) */ (1): /* CIF NextState (650,1550) */ nextstate -; /* CIF Answer Right InvisibleBrackets */ /* CIF Line (850,1300),(1250,1300),(1250,1550) */ /* CIF TextPosition (1275,1325) */ (2): /* CIF NextState (1150,1550) */ nextstate PhaseB_R; /* CIF End Decision */ enddecision; /* CIF Line (750,400),(750,425),(1050,425),(1050,450) */ /* CIF Input (950,450) Right */ input PIP (DISData); /* CIF Line (1050,550),(1050,575),(750,575),(750,650) */ /* CIF Join Invisible */ join grst17; /* CIF End State */ endstate; /* CIF CurrentPage PhaseD_T1 */ /* CIF State (50,300) */ state phaseD_T /* CIF Comment (300,300) Right */ /* CIF Line (300,350),(250,350) Dashed */ comment 'Transmitting FAX in phase D' ; /* CIF Line (150,400),(150,450) */ /* CIF Input (50,450) Right */ input MCF (DisData); /* CIF Line (150,550),(150,600) */ /* CIF Reset (50,600) */ RESET(T4Timer); /* CIF Line (150,700),(150,750) */ /* CIF Output (50,750) Right */ output OkFax via a; /* CIF Line (150,850),(150,900) */ /* CIF Join (100,900),(100,100) */ join C_ref; /* CIF Line (150,400),(150,425),(400,425),(400,450) */ /* CIF Input (300,450) Right */ input RTP (DisData); /* CIF Line (400,550),(400,600) */ /* CIF Reset (300,600) */ RESET(T4Timer); /* CIF Line (400,700),(400,750) */ /* CIF Output (300,750) Right */ output NokFax via a; /* CIF Line (400,850),(400,900) */ /* CIF Join (350,900),(100,100) */ join C_ref; /* CIF Line (150,400),(150,425),(650,425),(650,450) */ /* CIF Input (550,450) Right */ input RTN (DisData); /* CIF Line (650,550),(650,600) */ /* CIF Reset (550,600) */ RESET(T4Timer); /* CIF Line (650,700),(650,750) */ /* CIF Decision (550,750) */ decision CapableToReXmit = true; /* CIF Answer InvisibleBrackets */ /* CIF Line (650,850),(650,900) */ /* CIF TextPosition (675,875) */ (true): /* CIF Join (600,900),(100,100) */ join D_ref; /* CIF Answer Right InvisibleBrackets */ /* CIF Line (750,800),(900,800),(900,1050) */ /* CIF TextPosition (925,825) */ (false): /* CIF Output (800,1050) Right */ output NokFax via a; /* CIF Line (900,1150),(900,1250) */ /* CIF Join (850,1250),(100,100) */ join C_ref; /* CIF End Decision */ enddecision; /* CIF Line (150,400),(150,425),(1100,425),(1100,450) */ /* CIF Input (1000,450) Right */ input *; /* CIF Line (1100,550),(1100,600) */ /* CIF Reset (1000,600) */ RESET(T4Timer); /* CIF Line (1100,700),(1100,750) */ /* CIF Output (1000,750) Right */ output NokFax via a; /* CIF Line (1100,850),(1100,900) */ /* CIF Join (1050,900),(100,100) */ join C_ref; /* CIF Line (150,400),(150,425),(1400,425),(1400,450) */ /* CIF Input (1300,450) Right */ input T4Timer; /* CIF Line (1400,550),(1400,600) */ /* CIF Task (1300,600) */ task Timeouts:=Timeouts+1; /* CIF Line (1400,700),(1400,750) */ /* CIF Set (1300,750) */ SET(NOW + T4Period,T4Timer); /* CIF Line (1400,850),(1400,900) */ /* CIF Decision (1300,900) */ decision Timeouts=3; /* CIF Answer InvisibleBrackets */ /* CIF Line (1400,1000),(1400,1050) */ /* CIF TextPosition (1425,1025) */ (false): /* CIF Output (1300,1050) Right */ output EOP (DisData) VIA g; /* CIF Line (1400,1150),(1400,1200) */ /* CIF NextState (1300,1200) */ nextstate phaseD_T; /* CIF Answer Right InvisibleBrackets */ /* CIF Line (1500,950),(1650,950),(1650,1050) */ /* CIF TextPosition (1675,975) */ (true): /* CIF Output (1550,1050) Right */ output NokFax via a; /* CIF Line (1650,1150),(1650,1200) */ /* CIF Join (1600,1200),(100,100) */ join C_ref; /* CIF End Decision */ enddecision; /* CIF End State */ endstate; /* CIF Label (100,1050),(100,100) */ connection C_ref: /* CIF Line (150,1150),(150,1200) */ /* CIF Output (50,1200) Right */ output DCN (DisData) VIA g; /* CIF Line (150,1300),(150,1350) */ /* CIF ProcedureCall (50,1350) */ call PhaseDisconnectLine; /* CIF Line (150,1450),(150,1500) */ /* CIF NextState (50,1500) */ nextstate idle; /* CIF End Label */ endconnection C_ref; /* CIF End ProcessDiagram */ endprocess phase;