/* 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 PhaseB_R2part2 (1500,2200) */ /* CIF Frame (0,0),(1500,2200) */ /* 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 PhaseB_T1part2 (1500,2200) */ /* CIF Frame (0,0),(1500,2200) */ /* 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 PhaseB_R3part2 (1500,2200) */ /* CIF Frame (0,0),(1500,2200) */ /* CIF Page PhaseB_R3part3 (1500,2200) */ /* CIF Frame (0,0),(1500,2200) */ /* CIF Page Wait_CFR_1 (1900,2850) */ /* CIF Frame (0,0),(1900,2850) */ /* CIF Page Wait_CFR_1part2 (1500,2200) */ /* CIF Frame (0,0),(1500,2200) */ /* CIF Page Wait_CFR_1part3 (1500,2200) */ /* CIF Frame (0,0),(1500,2200) */ /* CIF Page Wait_CFR_1part4 (1500,2200) */ /* CIF Frame (0,0),(1500,2200) */ /* CIF Page PhaseD_MultPage_T1 (1850,2650) */ /* CIF Frame (0,0),(1850,2650) */ /* CIF Page PhaseD_MultPage_T1part2 (1500,2200) */ /* CIF Frame (0,0),(1500,2200) */ /* CIF Page PhaseD_MultPage_T1part3 (1500,2200) */ /* CIF Frame (0,0),(1500,2200) */ /* CIF Page PhaseD_MultPage_T2 (1850,2650) */ /* CIF Frame (0,0),(1850,2650) */ /* CIF Page PhaseD_MultPage_T2part2 (1500,2200) */ /* CIF Frame (0,0),(1500,2200) */ /* CIF Page AllState (1850,2650) */ /* CIF Frame (0,0),(1850,2650) */ /* CIF Page PhaseD_T1 (1850,2650) */ /* CIF Frame (0,0),(1850,2650) */ /* CIF Page PhaseD_T1part2 (1500,2200) */ /* CIF Frame (0,0),(1500,2200) */ /* CIF Page asterisk_state (1500,2200) */ /* CIF Frame (0,0),(1500,2200) */ /* CIF Page state_phoneLine (1500,2200) */ /* CIF Frame (0,0),(1500,2200) */ /* CIF Page connection_A_ref (1500,2200) */ /* CIF Frame (0,0),(1500,2200) */ /* 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 Procedure (600,100) */ /* CIF TextPosition (625,125) */ procedure d_ref referenced; /* 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),(780,725),(780,750) */ /* CIF Input (680,750) Left */ input CallFax (NumPages,TlfNumber, bIntrusion) /* CIF Comment (930,550) Right */ /* CIF Line (930,600),(905,600),(905,800),(880,800) Dashed */ comment 'Calling Station' ; /* CIF Line (780,850),(780,900) */ /* CIF ProcedureCall (680,900) */ call PhaseEstablishCall (TlfNumber); /* CIF Line (780,1000),(780,1050) */ /* CIF Output (680,1050) Right */ output CallSetup via k; /* CIF Line (780,1150),(780,1200) */ /* CIF Output (680,1200) Right */ output CNG via g; /* CIF Line (780,1300),(780,1350) */ /* CIF ProcedureCall (680,1350) */ call PhaseDelay75msec; /* CIF Line (780,1450),(780,1500) */ /* CIF Set (680,1500) */ SET(now+T1Period,T1Timer); /* CIF Line (780,1600),(780,2400) */ /* CIF NextState (680,2400) */ nextstate PhaseB_T; /* CIF Line (400,700),(400,725),(1160,725),(1160,750) */ /* CIF Input (1060,750) Right */ input InitFaxCaps (FaxCaps); /* CIF Line (1160,850),(1160,1050) */ /* CIF ProcedureCall (1060,1050) */ call PhaseSetFaxMode (DisData,FaxCaps); /* CIF Line (1160,1150),(1160,2400) */ /* CIF NextState (1060,2400) */ nextstate idle; /* CIF End State */ endstate; /* CIF CurrentPage ProcVars */ /* CIF CurrentPage PhaseB_R1 */ /* CIF State (300,100) */ state PhaseB_R /* CIF Comment (600,100) Right */ /* CIF Line (600,150),(500,150) Dashed */ comment 'respons rec' ; /* CIF Line (400,200),(400,250) */ /* CIF Input (300,250) Right */ input DCN (DisData); /* CIF Line (400,350),(400,400) */ /* CIF Reset (300,400) */ reset(T4Timer); /* CIF Line (400,500),(400,550) */ /* CIF Reset (300,550) */ RESET(T1Timer); /* CIF Line (400,650),(400,700) */ /* CIF ProcedureCall (300,700) */ call PhaseDisconnectLine; /* CIF Line (400,800),(400,850) */ /* CIF NextState (300,850) */ nextstate Idle; /* CIF Line (400,200),(400,225),(780,225),(780,250) */ /* CIF Input (680,250) Right */ input CRP (DisData); /* CIF Line (780,350),(780,400) */ /* CIF Output (680,400) Right */ output DIS (StoredDis) VIA g; /* CIF Line (780,500),(780,700) */ /* CIF Set (680,700) */ SET(NOW+T4Period,T4Timer); /* CIF Line (780,800),(780,850) */ /* CIF NextState (680,850) */ nextstate PhaseB_R; /* CIF End State */ endstate; /* CIF CurrentPage asterisk_state */ /* CIF State (300,100) */ state *; /* CIF Line (400,200),(400,250) */ /* CIF Input (300,250) Right */ input CNG /* CIF Comment (800,100) Right */ /* CIF Line (800,150),(525,150),(525,300),(500,300) Dashed */ comment 'to let dump people know this is a fax call' ; /* CIF Line (400,350),(400,400) */ /* CIF NextState (300,400) */ nextstate -; /* CIF Line (400,200),(400,225),(780,225),(780,250) */ /* CIF Input (680,250) Right */ input CED /* CIF Comment (930,100) Right */ /* CIF Line (930,150),(905,150),(905,300),(880,300) Dashed */ comment 'to let dump people know this is a fax call' ; /* CIF Line (780,350),(780,400) */ /* CIF NextState (680,400) */ nextstate -; /* CIF End State */ endstate; /* CIF CurrentPage state_phoneLine */ /* CIF State (300,100) */ state phoneLine; /* CIF Line (400,200),(400,250) */ /* CIF Input (300,250) Right */ input NoContinueFax; /* CIF Line (400,350),(400,400) */ /* CIF ProcedureCall (300,400) */ call PhaseDisconnectLine; /* CIF Line (400,500),(400,550) */ /* CIF NextState (300,550) */ nextstate idle; /* CIF End State */ endstate; /* CIF CurrentPage PhaseB_R2 */ /* CIF State (300,100) */ state PhaseB_R; /* CIF Line (950,200),(950,225),(400,225),(400,250) */ /* CIF Input (300,250) Right */ input DCS (StoredDis); /* CIF Line (400,350),(400,400) */ /* CIF Reset (300,400) */ RESET(T1Timer); /* CIF Line (400,500),(400,550) */ /* CIF Reset (300,550) */ RESET(T4Timer); /* CIF Line (400,650),(400,700) */ /* CIF Task (300,700) */ task 'A timer ? '; /* CIF Line (400,800),(400,850) */ /* CIF ProcedureCall (300,850) */ call PhaseReceiveTraining (bResult); /* CIF Line (400,950),(400,1050) */ /* CIF ProcedureCall (300,1050) */ call PhaseChangeToBCS; /* CIF Line (400,1150),(400,1300) */ /* CIF Decision (300,1300) */ decision bResult=true; /* CIF Answer InvisibleBrackets */ /* CIF Line (400,1400),(400,1450) */ /* CIF TextPosition (425,1425) */ (true): /* CIF Output (300,1450) Right */ output CFR (StoredDis) VIA g; /* CIF Line (400,1550),(400,1600) */ /* CIF Set (300,1600) */ SET(NOW+T2Period, T2Timer); /* CIF Line (400,1700),(400,1750) */ /* CIF ProcedureCall (300,1750) */ call PhaseChangeToMSG; /* CIF Line (400,1850),(400,1900) */ /* CIF NextState (300,1900) */ nextstate PhaseC_R; /* CIF Answer Right InvisibleBrackets */ /* CIF Line (500,1350),(700,1350),(700,1450) */ /* CIF TextPosition (725,1375) */ (false): /* CIF Output (600,1450) Right */ output FTT (DisData) VIA g; /* CIF Line (700,1550),(700,1650) */ /* CIF Set (600,1650) */ SET(NOW+T2Period, T2Timer); /* CIF Line (700,1750),(700,1900) */ /* CIF NextState (600,1900) */ nextstate PhaseB_R; /* CIF End Decision */ enddecision; /* CIF Line (400,200),(400,225),(1160,225),(1160,250) */ /* CIF Input (1060,250) Right */ input DTC (DisData) /* CIF Comment (810,100) Right */ /* CIF Line (810,150),(785,150),(785,225),(1035,225),(1035,300),(1060,300) Dashed */ comment 'CallingFAX wants me to be transmitting FAX' ; /* CIF Line (1160,350),(1160,400) */ /* CIF Reset (1060,400) */ RESET(T1Timer); /* CIF Line (1160,500),(1160,550) */ /* CIF Reset (1060,550) */ RESET(T4Timer); /* CIF Line (1160,650),(1160,700) */ /* CIF Task (1060,700) */ task PageTries:=PageTries+1; /* CIF Line (1160,800),(1160,850) */ /* CIF Task (1060,850) */ task NumPages:=1; /* CIF Line (1160,950),(1160,1000) */ /* CIF ProcedureCall (1060,1000) */ call d_ref; /* CIF Line (1160,1100),(1160,1900) */ /* CIF NextState (1060,1900) */ nextstate Wait_CFR; /* CIF Line (400,200),(400,225),(1540,225),(1540,250) */ /* CIF Input (1440,250) Right */ input DIS (DisData) /* CIF Comment (1690,100) Right */ /* CIF Line (1690,150),(1665,150),(1665,300),(1640,300) Dashed */ comment 'CallingFAX wants me to be transmitting FAX' ; /* CIF Line (1540,350),(1540,400) */ /* CIF ProcedureCall (1440,400) */ call PhaseCopyDis_T (StoredDis,DisData); /* CIF Line (1540,500),(1540,550) */ /* CIF Reset (1440,550) */ RESET(T1Timer); /* CIF Line (1540,650),(1540,700) */ /* CIF Reset (1440,700) */ RESET(T4Timer); /* CIF Line (1540,800),(1540,850) */ /* CIF Task (1440,850) */ task PageTries:=PageTries+1; /* CIF Line (1540,950),(1540,1000) */ /* CIF Task (1440,1000) */ task NumPages:=2; /* CIF Line (1540,1100),(1540,1150) */ /* CIF Join (1490,1150),(100,100) */ join A_ref; /* CIF End State */ endstate; /* CIF CurrentPage PhaseB_R2part2 */ /* CIF State (300,100) */ state PhaseB_R; /* CIF Line (400,200),(400,225),(400,225),(400,250) */ /* CIF Input (300,250) Right */ input T1Timer; /* CIF Line (400,350),(400,400) */ /* CIF Output (300,400) Right */ output DCN (DisData) VIA g; /* CIF Line (400,500),(400,550) */ /* CIF ProcedureCall (300,550) */ call PhaseDisconnectLine; /* CIF Line (400,650),(400,700) */ /* CIF Reset (300,700) */ RESET(T4Timer); /* CIF Line (400,800),(400,1250) */ /* CIF NextState (300,1250) */ nextstate Idle; /* CIF Line (400,200),(400,225),(780,225),(780,250) */ /* CIF Input (680,250) Right */ input T4Timer; /* CIF Line (780,350),(780,400) */ /* CIF Task (680,400) */ task Timeouts:=Timeouts+1; /* CIF Line (780,500),(780,600) */ /* CIF Decision (680,600) */ decision Timeouts=3 /* CIF Comment (930,500) Right */ /* CIF Line (930,550),(905,550),(905,650),(880,650) Dashed */ comment 'LOOKs optional //ETOFLI' ; /* CIF Answer InvisibleBrackets */ /* CIF Line (780,700),(780,800) */ /* CIF TextPosition (805,725) */ (False): /* CIF Output (680,800) Right */ output DIS (DisData) VIA g; /* CIF Line (780,900),(780,950) */ /* CIF Set (680,950) */ set ( Now + T4Period,T4Timer); /* CIF Line (780,1050),(780,1250) */ /* CIF NextState (680,1250) */ nextstate PhaseB_R; /* CIF Answer Right InvisibleBrackets */ /* CIF Line (2100,650),(2300,650),(2300,800) */ /* CIF TextPosition (2325,675) */ (true): /* CIF Output (2200,800) Right */ output DCN (DisData) VIA g; /* CIF Line (2300,900),(2300,950) */ /* CIF Reset (2200,950) */ RESET(T4Timer); /* CIF Line (2300,1050),(2300,1100) */ /* CIF Reset (2200,1100) */ RESET(T1Timer); /* CIF Line (2300,1200),(2300,1250) */ /* CIF NextState (980,1250) */ nextstate PhaseE; /* CIF End Decision */ enddecision; /* CIF End State */ endstate; /* CIF CurrentPage PhaseC_R */ /* CIF State (300,100) */ state PhaseC_R; /* CIF Line (400,200),(400,250) */ /* CIF Input (300,250) Right */ input FaxPage (PageData); /* CIF Line (400,350),(400,400) */ /* CIF Reset (300,400) */ RESET(T2Timer); /* CIF Line (400,500),(400,550) */ /* CIF Output (300,550) Right */ output FaxPage (PageData) TO self; /* CIF Line (400,650),(400,700) */ /* CIF ProcedureCall (300,700) */ call PhaseChangeToBCS; /* CIF Line (400,800),(400,850) */ /* CIF NextState (300,850) */ nextstate PhaseB_R; /* CIF End State */ endstate; /* CIF CurrentPage PhaseB_T1 */ /* CIF State (300,100) */ state PhaseB_T; /* CIF Line (400,200),(400,250) */ /* CIF Input (300,250) Right */ input DIS (DisData); /* CIF Line (400,350),(400,400) */ /* CIF Reset (300,400) */ RESET(T1Timer); /* CIF Line (400,500),(400,550) */ /* CIF ProcedureCall (300,550) */ call PhaseCopyDis_T (StoredDis,DisData); /* CIF Line (400,650),(400,700) */ /* CIF Reset (300,700) */ RESET(T2Timer); /* CIF Line (400,800),(400,850) */ /* CIF Task (300,850) */ task TCFTries:=0, CompTries:=0, PageTries:=0 /* Used to count tries one a single page*/; /* CIF Line (400,950),(400,1050) */ /* CIF Join (350,1050),(100,100) */ join A_ref; /* CIF Line (400,200),(400,225),(780,225),(780,250) */ /* CIF Input (680,250) Right */ input DTC (DisData); /* CIF Line (780,350),(780,400) */ /* CIF Reset (680,400) */ RESET(T1Timer); /* CIF Line (780,500),(780,550) */ /* CIF ProcedureCall (680,550) */ call PhaseCopyDis_T (StoredDis,DisData); /* CIF Line (780,650),(780,700) */ /* CIF Reset (680,700) */ RESET(T2Timer); /* CIF Line (780,800),(780,850) */ /* CIF Task (680,850) */ task TCFTries:=0, CompTries:=0, PageTries:=0 /* Used to count tries one a single page*/; /* CIF Line (780,950),(780,1050) */ /* CIF Join (730,1050),(100,100) */ join A_ref; /* CIF Line (400,200),(400,225),(1160,225),(1160,250) */ /* CIF Input (1060,250) Right */ input T1Timer; /* CIF Line (1160,350),(1160,500) */ /* CIF ProcedureCall (1060,500) */ call PhaseDisconnectLine; /* CIF Line (1160,600),(1160,650) */ /* CIF NextState (1060,650) */ nextstate Idle; /* CIF Line (400,200),(400,225),(1540,225),(1540,250) */ /* CIF Input (1440,250) Right */ input *; /* CIF Line (1540,350),(1540,400) */ /* CIF ProcedureCall (1440,400) */ call PhaseDisconnectLine; /* CIF Line (1540,500),(1540,650) */ /* CIF NextState (1440,650) */ nextstate Idle; /* CIF End State */ endstate; /* CIF CurrentPage PhaseB_T1part2 */ /* CIF State (300,100) */ state PhaseB_T; /* CIF Line (400,200),(400,225),(400,225),(400,250) */ /* CIF Input (300,250) Right */ input DCN (DisData); /* CIF Line (400,350),(400,400) */ /* CIF ProcedureCall (300,400) */ call PhaseDisconnectLine; /* CIF Line (400,500),(400,550) */ /* CIF NextState (300,550) */ nextstate Idle; /* CIF End State */ endstate; /* CIF CurrentPage connection_A_ref */ /* CIF Label (350,100),(100,100) */ connection A_ref /* CIF Comment (600,100) Right */ /* CIF Line (600,150),(450,150) Dashed */ comment 'This reference i used when checking copatible rec/trans fax' : /* CIF Line (400,200),(400,250) */ /* CIF ProcedureCall (300,250) */ call PhaseCompRemoteReceiver (bChoice,StoredDis,FaxCaps); /* CIF Line (400,350),(400,400) */ /* CIF Task (300,400) */ task CompTries:=CompTries+1; /* CIF Line (400,500),(400,550) */ /* CIF Decision (300,550) */ decision bChoice; /* CIF Answer InvisibleBrackets */ /* CIF Line (400,650),(400,750) */ /* CIF TextPosition (275,650) */ (true): /* CIF Decision (300,750) */ decision NumPages >0; /* CIF Answer Right InvisibleBrackets */ /* CIF Line (500,800),(650,800),(650,850) */ /* CIF TextPosition (500,750) */ (false): /* CIF ProcedureCall (550,850) */ call PhaseCompRemoteTransmitter (fifData, bChoice); /* CIF Line (650,950),(650,1050) */ /* CIF Decision (550,1050) */ decision bChoice; /* CIF Answer InvisibleBrackets */ /* CIF Line (650,1150),(650,1200) */ /* CIF TextPosition (675,1175) */ (true): /* CIF Join (600,1200),(100,100) */ join R_ref; /* CIF Answer Right InvisibleBrackets */ /* CIF Line (750,1100),(900,1100),(900,1200) */ /* CIF TextPosition (925,1125) */ (false): /* CIF End Decision */ enddecision; /* CIF Answer InvisibleBrackets */ /* CIF Line (400,850),(400,1200) */ /* CIF TextPosition (325,850) */ (true): /* CIF ProcedureCall (300,1200) */ call d_ref; /* CIF Line (400,1300),(400,1500) */ /* CIF NextState (300,1500) */ nextstate Wait_CFR; /* CIF End Decision */ enddecision; /* CIF Answer Right InvisibleBrackets */ /* CIF Line (500,600),(900,600),(900,1200) */ /* CIF TextPosition (925,625) */ (false): /* CIF End Decision */ enddecision; /* CIF Output (800,1200) Right */ output DCN (DisData) VIA g; /* CIF Line (900,1300),(900,1350) */ /* CIF ProcedureCall (800,1350) */ call PhaseDisconnectLine; /* CIF Line (900,1450),(900,1500) */ /* CIF NextState (800,1500) */ nextstate idle; /* CIF End Label */ endconnection A_ref; /* CIF CurrentPage PhaseE */ /* CIF State (300,100) */ state PhaseE; /* CIF Line (400,200),(400,250) */ /* CIF Input (300,250) Right */ input *; /* CIF Line (400,350),(400,400) */ /* CIF NextState (300,400) */ nextstate Idle; /* CIF End State */ endstate; /* CIF CurrentPage PhaseB_R3 */ /* CIF State (300,100) */ state PhaseB_R /* D phase */; /* CIF Line (600,200),(600,225),(400,225),(400,250) */ /* CIF Input (300,250) Right */ input MPS (DisData); /* CIF Line (400,350),(400,450) */ /* CIF Reset (300,450) */ RESET(T4Timer); /* CIF Line (400,550),(400,600) */ /* CIF ProcedureCall (300,600) */ call PhaseCopyQualityOK (bChoice); /* CIF Line (400,700),(400,750) */ /* CIF Decision (300,750) */ decision bChoice; /* CIF Answer InvisibleBrackets */ /* CIF Line (400,850),(400,950) */ /* CIF TextPosition (425,875) */ (true): /* CIF ProcedureCall (300,950) */ call PhaseRephaseSender (bChoice); /* CIF Line (400,1050),(400,1150) */ /* CIF Decision (300,1150) */ decision bChoice; /* CIF Answer InvisibleBrackets */ /* CIF Line (400,1250),(400,1350) */ /* CIF TextPosition (425,1275) */ (false): /* CIF ProcedureCall (300,1350) */ call PhaseSendFaxPageToEnv; /* CIF Line (400,1450),(400,1500) */ /* CIF Output (300,1500) Right */ output MCF (DisData) VIA g; /* CIF Line (400,1600),(400,1650) */ /* CIF ProcedureCall (300,1650) */ call PhaseChangeToMSG; /* CIF Line (400,1750),(400,1800) */ /* CIF NextState (300,1800) */ nextstate PhaseC_R /* CIF Comment (200,1950) Right */ /* CIF Line (200,2000),(175,2000),(175,1850),(300,1850) 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 (500,1200),(650,1200),(650,1350) */ /* CIF TextPosition (675,1275) */ (true): /* CIF Output (550,1350) Right */ output RTP (DisData) VIA g; /* CIF Line (650,1450),(650,1500) */ /* CIF ProcedureCall (550,1500) */ call PhaseFaxPageIgnore; /* CIF Line (650,1600),(650,1800) */ /* CIF NextState (550,1800) */ nextstate PhaseB_R; /* CIF End Decision */ enddecision; /* CIF Answer Right InvisibleBrackets */ /* CIF Line (500,800),(900,800),(900,1350) */ /* CIF TextPosition (925,825) */ (false): /* CIF Output (800,1350) Right */ output RTN (DisData) VIA g; /* CIF Line (900,1450),(900,1500) */ /* CIF ProcedureCall (800,1500) */ call PhaseFaxPageIgnore; /* CIF Line (900,1600),(900,1800) */ /* CIF NextState (800,1800) */ nextstate PhaseB_R; /* CIF End Decision */ enddecision; /* CIF Line (400,200),(400,225),(1540,225),(1540,250) */ /* CIF Input (1440,250) Right */ input *; /* CIF Line (1540,350),(1540,400) */ /* CIF ProcedureCall (1440,400) */ call PhaseDisconnectLine; /* CIF Line (1540,500),(1540,1800) */ /* CIF NextState (1440,1800) */ nextstate Idle; /* CIF End State */ endstate; /* CIF CurrentPage PhaseB_R3part2 */ /* CIF State (300,100) */ state PhaseB_R; /* CIF Line (400,200),(400,225),(400,225),(400,250) */ /* CIF Input (300,250) Right */ input EOM (DisData); /* CIF Line (400,350),(400,450) */ /* CIF Reset (300,450) */ RESET(T4Timer); /* CIF Line (400,550),(400,650) */ /* CIF ProcedureCall (300,650) */ call PhaseCopyQualityOK (bChoice); /* CIF Line (400,750),(400,800) */ /* CIF Decision (300,800) */ decision bChoice; /* CIF Answer InvisibleBrackets */ /* CIF Line (400,900),(400,1000) */ /* CIF TextPosition (425,925) */ (true): /* CIF ProcedureCall (300,1000) */ call PhaseRephaseSender (bChoice); /* CIF Line (400,1100),(400,1150) */ /* CIF Decision (300,1150) */ decision bChoice; /* CIF Answer InvisibleBrackets */ /* CIF Line (400,1250),(400,1350) */ /* CIF TextPosition (425,1300) */ (false): /* CIF ProcedureCall (300,1350) */ call PhaseSendFaxPageToEnv; /* CIF Line (400,1450),(400,1500) */ /* CIF Output (300,1500) Right */ output MCF (DisData) VIA g; /* CIF Line (400,1600),(400,1650) */ /* CIF ProcedureCall (300,1650) */ call PhaseChangeToMSG; /* CIF Line (400,1750),(400,1800) */ /* CIF NextState (300,1800) */ nextstate PhaseB_R; /* CIF Answer Right InvisibleBrackets */ /* CIF Line (1010,1200),(1160,1200),(1160,1350) */ /* CIF TextPosition (1185,1225) */ (true): /* CIF ProcedureCall (1060,1350) */ call PhaseFaxPageIgnore; /* CIF Line (1160,1450),(1160,1500) */ /* CIF Output (1060,1500) Right */ output RTP (DisData) VIA g; /* CIF Line (1160,1600),(1160,1800) */ /* CIF NextState (550,1800) */ nextstate PhaseB_R; /* CIF End Decision */ enddecision; /* CIF Answer Right InvisibleBrackets */ /* CIF Line (500,850),(900,850),(900,1100) */ /* CIF TextPosition (925,875) */ (false): /* CIF ProcedureCall (800,1100) */ call PhaseFaxPageIgnore; /* CIF Line (900,1200),(900,1500) */ /* CIF Output (800,1500) Right */ output RTN (DisData) VIA g; /* CIF Line (900,1600),(900,1800) */ /* CIF NextState (800,1800) */ nextstate PhaseB_R; /* CIF End Decision */ enddecision; /* CIF End State */ endstate; /* CIF CurrentPage PhaseB_R3part3 */ /* CIF State (300,100) */ state PhaseB_R; /* CIF Line (400,200),(400,225),(400,225),(400,250) */ /* CIF Input (300,250) Right */ input EOP (DisData); /* CIF Line (400,350),(400,400) */ /* CIF Reset (300,400) */ RESET(T4Timer); /* CIF Line (400,500),(400,600) */ /* CIF ProcedureCall (300,600) */ call PhaseCopyQualityOK (bChoice); /* CIF Line (400,700),(400,750) */ /* CIF Decision (300,750) */ decision bChoice; /* CIF Answer InvisibleBrackets */ /* CIF Line (400,850),(400,950) */ /* CIF TextPosition (425,875) */ (true): /* CIF ProcedureCall (300,950) */ call PhaseRephaseSender (bChoice); /* CIF Line (400,1050),(400,1100) */ /* CIF Decision (300,1100) */ decision bChoice; /* CIF Answer InvisibleBrackets */ /* CIF Line (400,1200),(400,1300) */ /* CIF TextPosition (425,1250) */ (false): /* CIF ProcedureCall (300,1300) */ call PhaseSendFaxPageToEnv; /* CIF Line (400,1400),(400,1450) */ /* CIF Output (300,1450) Right */ output MCF (DisData) VIA g; /* CIF Line (400,1550),(400,1600) */ /* CIF ProcedureCall (300,1600) */ call PhaseChangeToMSG; /* CIF Line (400,1700),(400,1750) */ /* CIF NextState (300,1750) */ nextstate PhaseB_R; /* CIF Answer Right InvisibleBrackets */ /* CIF Line (1010,1150),(1160,1150),(1160,1300) */ /* CIF TextPosition (1185,1175) */ (true): /* CIF ProcedureCall (1060,1300) */ call PhaseFaxPageIgnore; /* CIF Line (1160,1400),(1160,1450) */ /* CIF Output (1060,1450) Right */ output RTP (DisData) VIA g; /* CIF Line (1160,1550),(1160,1750) */ /* CIF NextState (550,1750) */ nextstate PhaseB_R; /* CIF End Decision */ enddecision; /* CIF Answer Right InvisibleBrackets */ /* CIF Line (500,800),(900,800),(900,1050) */ /* CIF TextPosition (925,825) */ (false): /* CIF ProcedureCall (800,1050) */ call PhaseFaxPageIgnore; /* CIF Line (900,1150),(900,1450) */ /* CIF Output (800,1450) Right */ output RTN (DisData) VIA g; /* CIF Line (900,1550),(900,1750) */ /* CIF NextState (800,1750) */ nextstate PhaseB_R; /* CIF End Decision */ enddecision; /* CIF Line (400,200),(400,225),(1540,225),(1540,250) */ /* CIF Save (1440,250) */ save FaxPage; /* CIF End State */ endstate; /* CIF CurrentPage Wait_CFR_1 */ /* CIF State (300,100) */ state Wait_CFR; /* CIF Line (950,200),(950,225),(400,225),(400,250) */ /* CIF Input (300,250) Right */ input CFR (DisData); /* CIF Line (400,350),(400,400) */ /* CIF Reset (300,400) */ RESET(T4Timer); /* CIF Line (400,500),(400,550) */ /* CIF ProcedureCall (300,550) */ call PhaseSendFaxPage; /* CIF Line (400,650),(400,900) */ /* CIF Decision (300,900) */ decision NumPages = 1; /* CIF Answer Right InvisibleBrackets */ /* CIF Line (500,950),(525,950),(525,975),(1250,975),(1250,1000) */ /* CIF TextPosition (550,1000) */ (false): /* CIF Output (1150,1000) Right */ output MPS (DisData) VIA g; /* CIF Line (1250,1100),(1250,1150) */ /* CIF Task (1150,1150) */ task timeouts:=0; /* CIF Line (1250,1250),(1250,1300) */ /* CIF Set (1150,1300) */ SET(NOW + T4Period,T4Timer); /* CIF Line (1250,1400),(1250,2000) */ /* CIF NextState (1150,2000) */ nextstate PhaseD_MultPage_T; /* CIF Answer InvisibleBrackets */ /* CIF Line (400,1000),(400,1050) */ /* CIF TextPosition (425,1025) */ (true): /* CIF Decision (300,1050) */ decision ChangeMode; /* CIF Answer InvisibleBrackets */ /* CIF Line (400,1150),(400,1200) */ /* CIF TextPosition (425,1150) */ (false): /* CIF Output (300,1200) Right */ output EOP (DisData) VIA g; /* CIF Line (400,1300),(400,1350) */ /* CIF Task (300,1350) */ task timeouts:=0; /* CIF Line (400,1450),(400,1500) */ /* CIF Set (300,1500) */ SET(NOW + T4Period,T4Timer); /* CIF Line (400,1600),(400,1650) */ /* CIF Decision (300,1650) */ decision bIntrusion; /* CIF Answer Right InvisibleBrackets */ /* CIF Line (500,1700),(650,1700),(650,1850) */ /* CIF TextPosition (675,1725) */ (true): /* CIF Output (550,1850) Right */ output PIP (DISData) VIA g; /* CIF Line (650,1950),(650,2000) */ /* CIF NextState (550,2000) */ nextstate PhaseD_T; /* CIF Answer InvisibleBrackets */ /* CIF Line (400,1750),(400,2000) */ /* CIF TextPosition (425,1775) */ (false): /* CIF NextState (300,2000) */ nextstate PhaseD_T; /* CIF End Decision */ enddecision; /* CIF Answer Right InvisibleBrackets */ /* CIF Line (500,1100),(900,1100),(900,1200) */ /* CIF TextPosition (925,1125) */ (true): /* CIF Output (800,1200) Right */ output EOM (DisData) VIA g /* CIF Comment (750,800) Right */ /* CIF Line (750,850),(725,850),(725,1250),(800,1250) Dashed */ comment 'The transmitting unit desires to exit from the transmitting mode of operations and re-establish the capabillities.' ; /* CIF Line (900,1300),(900,1350) */ /* CIF Task (800,1350) */ task timeouts:=0; /* CIF Line (900,1450),(900,1500) */ /* CIF Set (800,1500) */ SET(NOW + T4Period,T4Timer); /* CIF Line (900,1600),(900,2000) */ /* CIF NextState (800,2000) */ nextstate PhaseD_T /* CIF Comment (1050,1650) Right */ /* CIF Line (1050,1700),(1000,1700) Dashed */ comment '//ETOFLI Usikker ?!!' ; /* CIF End Decision */ enddecision; /* CIF End Decision */ enddecision; /* CIF End State */ endstate; /* CIF CurrentPage Wait_CFR_1part2 */ /* CIF State (300,100) */ state Wait_CFR; /* CIF Line (400,200),(400,225),(400,225),(400,250) */ /* CIF Input (300,250) Right */ input DIS (DisData); /* CIF Line (400,350),(400,550) */ /* CIF Reset (300,550) */ RESET(T4Timer); /* CIF Line (400,650),(400,700) */ /* CIF Decision (300,700) */ decision CompTries=3 /* CIF Comment (300,1100) Right */ /* CIF Line (300,1150),(275,1150),(275,750),(300,750) 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 (400,800),(400,900) */ /* CIF TextPosition (425,825) */ (false): /* CIF Join (350,900),(100,100) */ join A_ref; /* CIF Answer Right InvisibleBrackets */ /* CIF Line (1010,750),(1160,750),(1160,900) */ /* CIF TextPosition (1035,725) */ (true): /* CIF Output (1060,900) Right */ output DCN (DisData) VIA g; /* CIF Line (1160,1000),(1160,1050) */ /* CIF ProcedureCall (1060,1050) */ call PhaseDisconnectLine; /* CIF Line (1160,1150),(1160,1200) */ /* CIF NextState (550,1200) */ nextstate idle; /* CIF End Decision */ enddecision; /* CIF Line (400,200),(400,225),(1160,225),(1160,250) */ /* CIF Input (1060,250) Right */ input DTC (DisData); /* CIF Line (1160,350),(1160,400) */ /* CIF Reset (1060,400) */ RESET(T4Timer); /* CIF Line (1160,500),(1160,550) */ /* CIF Decision (1060,550) */ decision CompTries=3 /* CIF Comment (1060,950) Right */ /* CIF Line (1060,1000),(1035,1000),(1035,600),(1060,600) 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 (1160,650),(1160,750) */ /* CIF TextPosition (1185,675) */ (false): /* CIF Join (1110,750),(100,100) */ join A_ref; /* CIF Answer Right InvisibleBrackets */ /* CIF Line (1770,600),(1920,600),(1920,750) */ /* CIF TextPosition (1795,575) */ (true): /* CIF Output (1820,750) Right */ output DCN (DisData) VIA g; /* CIF Line (1920,850),(1920,900) */ /* CIF ProcedureCall (1820,900) */ call PhaseDisconnectLine; /* CIF Line (1920,1000),(1920,1200) */ /* CIF NextState (1310,1200) */ nextstate idle; /* CIF End Decision */ enddecision; /* CIF End State */ endstate; /* CIF CurrentPage Wait_CFR_1part3 */ /* CIF State (300,100) */ state Wait_CFR; /* CIF Line (400,200),(400,225),(400,225),(400,250) */ /* CIF Input (300,250) Right */ input DCN (DisData); /* CIF Line (400,350),(400,400) */ /* CIF ProcedureCall (300,400) */ call PhaseDisconnectLine; /* CIF Line (400,500),(400,1350) */ /* CIF NextState (300,1350) */ nextstate Idle; /* CIF Line (400,200),(400,225),(780,225),(780,250) */ /* CIF Input (680,250) Right */ input FTT (DisData); /* CIF Line (780,350),(780,400) */ /* CIF Reset (680,400) */ RESET(T4Timer); /* CIF Line (780,500),(780,550) */ /* CIF ProcedureCall (680,550) */ call PhaseRephase (bChoice); /* CIF Line (780,650),(780,700) */ /* CIF Decision (680,700) */ decision bChoice; /* CIF Answer InvisibleBrackets */ /* CIF Line (780,800),(780,900) */ /* CIF TextPosition (805,825) */ (true): /* CIF ProcedureCall (680,900) */ call d_ref; /* CIF Line (780,1000),(780,1350) */ /* CIF NextState (680,1350) */ nextstate Wait_CFR; /* CIF Answer Right InvisibleBrackets */ /* CIF Line (1440,750),(1540,750),(1540,1050) */ /* CIF TextPosition (1515,775) */ (false): /* CIF Output (1440,1050) Right */ output DCN (DisData) VIA g; /* CIF Line (1540,1150),(1540,1200) */ /* CIF ProcedureCall (1440,1200) */ call PhaseDisconnectLine; /* CIF Line (1540,1300),(1540,1350) */ /* CIF NextState (880,1350) */ nextstate idle; /* CIF End Decision */ enddecision; /* CIF End State */ endstate; /* CIF CurrentPage Wait_CFR_1part4 */ /* CIF State (300,100) */ state Wait_CFR; /* CIF Line (400,200),(400,225),(400,225),(400,250) */ /* CIF Input (300,250) Right */ input T4Timer; /* CIF Line (400,350),(400,450) */ /* CIF Decision (300,450) */ decision TCFTries=3; /* CIF Answer InvisibleBrackets */ /* CIF Line (400,550),(400,600) */ /* CIF TextPosition (425,575) */ (true): /* CIF Output (300,600) Right */ output DCN (DisData) VIA g; /* CIF Line (400,700),(400,750) */ /* CIF ProcedureCall (300,750) */ call PhaseDisconnectLine; /* CIF Line (400,850),(400,1350) */ /* CIF NextState (300,1350) */ nextstate idle; /* CIF Answer Right InvisibleBrackets */ /* CIF Line (1010,500),(1160,500),(1160,600) */ /* CIF TextPosition (1185,525) */ (false): /* CIF End Decision */ enddecision; /* CIF Task (1060,600) */ task 'Set mode'; /* CIF Line (1160,700),(1160,750) */ /* CIF Output (1060,750) Right */ output DCS (DisData) VIA g; /* CIF Line (1160,850),(1160,900) */ /* CIF ProcedureCall (1060,900) */ call PhaseTransmittTCF; /* CIF Line (1160,1000),(1160,1050) */ /* CIF Set (1060,1050) */ SET(NOW + T4Period,T4Timer); /* CIF Line (1160,1150),(1160,1200) */ /* CIF Task (1060,1200) */ task TCFTries:=TCFTries+1; /* CIF Line (1160,1300),(1160,1350) */ /* CIF NextState (550,1350) */ nextstate Wait_CFR; /* CIF Line (400,200),(400,225),(1160,225),(1160,250) */ /* CIF Input (1060,250) Right */ input CRP (DisData) /* CIF Comment (860,100) Right */ /* CIF Line (860,150),(835,150),(835,225),(1035,225),(1035,300),(1060,300) Dashed */ comment '//ETOFLI This could solve DCS/CFR crash' ; /* CIF Line (1160,350),(1160,400) */ /* CIF Task (1060,400) */ task 'Set mode'; /* CIF Line (1160,500),(1160,550) */ /* CIF Output (1060,550) Right */ output DCS (DisData) VIA g; /* CIF Line (1160,650),(1160,700) */ /* CIF ProcedureCall (1060,700) */ call PhaseTransmittTCF; /* CIF Line (1160,800),(1160,850) */ /* CIF Set (1060,850) */ SET(NOW + T4Period,T4Timer); /* CIF Line (1160,950),(1160,1000) */ /* CIF Task (1060,1000) */ task TCFTries:=TCFTries+1; /* CIF Line (1160,1100),(1160,1350) */ /* CIF NextState (1060,1350) */ nextstate Wait_CFR; /* CIF End State */ endstate; /* CIF CurrentPage PhaseD_MultPage_T1 */ /* CIF State (300,100) */ state PhaseD_MultPage_T; /* CIF Line (950,200),(950,225),(400,225),(400,250) */ /* CIF Input (300,250) Right */ input MCF (DisData); /* CIF Line (400,350),(400,400) */ /* CIF Reset (300,400) */ RESET(T4Timer); /* CIF Line (400,500),(400,550) */ /* CIF Task (300,550) */ task NumPages:=NumPages-1; /* CIF Line (400,650),(400,750) */ /* CIF ProcedureCall (300,750) */ call PhaseSendFaxPage; /* CIF Line (400,850),(400,1050) */ /* CIF ProcedureCall (300,1050) */ call PhaseSetModemToBCS; /* CIF Line (400,1150),(400,1200) */ /* CIF Decision (300,1200) */ decision NumPages = 1 /* CIF Comment (600,1150) Right */ /* CIF Line (600,1200),(575,1200),(575,1250),(500,1250) Dashed */ comment 'last page has been sent' ; /* CIF Answer Right InvisibleBrackets */ /* CIF Line (500,1250),(525,1250),(525,1275),(950,1275),(950,1300) */ /* CIF TextPosition (550,1300) */ (false): /* CIF Output (850,1300) Right */ output MPS (DisData) VIA g; /* CIF Line (950,1400),(950,1500) */ /* CIF Task (850,1500) */ task timeouts:=0; /* CIF Line (950,1600),(950,1750) */ /* CIF Set (850,1750) */ SET(NOW + T4Period,T4Timer); /* CIF Line (950,1850),(950,2050) */ /* CIF NextState (850,2050) */ nextstate PhaseD_MultPage_T; /* CIF Answer InvisibleBrackets */ /* CIF Line (400,1300),(400,1350) */ /* CIF TextPosition (425,1325) */ (true): /* CIF Decision (300,1350) */ decision ChangeMode=true; /* CIF Answer InvisibleBrackets */ /* CIF Line (400,1450),(400,1500) */ /* CIF TextPosition (400,1475) */ (false): /* CIF Output (300,1500) Right */ output EOP (DisData) VIA g; /* CIF Line (400,1600),(400,1650) */ /* CIF Task (300,1650) */ task timeouts:=0; /* CIF Line (400,1750),(400,1800) */ /* CIF Set (300,1800) */ SET(NOW + T4Period,T4Timer); /* CIF Line (400,1900),(400,2050) */ /* CIF NextState (300,2050) */ nextstate PhaseD_T; /* CIF Answer Right InvisibleBrackets */ /* CIF Line (500,1400),(700,1400),(700,1500) */ /* CIF TextPosition (725,1425) */ (true): /* CIF Output (600,1500) Right */ output EOM (DisData) VIA g /* CIF Comment (300,2250) Right */ /* CIF Line (300,2300),(275,2300),(275,2225),(575,2225),(575,1550),(600,1550) Dashed */ comment 'The transmitting unit desires to exit from the transmitting mode of operations and re-establish the capabillities.' ; /* CIF Line (700,1600),(700,1650) */ /* CIF Task (600,1650) */ task timeouts:=0; /* CIF Line (700,1750),(700,1900) */ /* CIF Set (600,1900) */ SET(NOW + T4Period,T4Timer); /* CIF Line (700,2000),(700,2050) */ /* CIF NextState (600,2050) */ nextstate PhaseD_T /* CIF Comment (800,2300) Right */ /* CIF Line (800,2350),(775,2350),(775,2275),(825,2275),(825,2150),(800,2150) Dashed */ comment '//ETOFLI Usikker ?!!' ; /* CIF End Decision */ enddecision; /* CIF End Decision */ enddecision; /* CIF Line (400,200),(400,225),(1540,225),(1540,250) */ /* CIF Input (1440,250) Right */ input RTN (DisData); /* CIF Line (1540,350),(1540,650) */ /* CIF Reset (1440,650) */ RESET(T4Timer); /* CIF Line (1540,750),(1540,850) */ /* CIF Task (1440,850) */ task StoredDis!FifLit!BaudRateLit:= GetLowerBr(StoredDis!FifLit!BaudRateLit) /* try a lower baudrate */ ; /* CIF Line (1540,950),(1540,1000) */ /* CIF ProcedureCall (1440,1000) */ call d_ref; /* CIF Line (1540,1100),(1540,2050) */ /* CIF NextState (1440,2050) */ nextstate Wait_CFR; /* CIF End State */ endstate; /* CIF CurrentPage PhaseD_MultPage_T1part2 */ /* CIF State (300,100) */ state PhaseD_MultPage_T; /* CIF Line (400,200),(400,225),(400,225),(400,250) */ /* CIF Input (300,250) Right */ input RTP (DisData) /* CIF Comment (250,450) Right */ /* CIF Line (250,500),(225,500),(225,375),(275,375),(275,300),(300,300) Dashed */ comment 'Question: Do we resend page or not Decision: Resend previos page with new capabillities' ; /* CIF Line (400,350),(400,400) */ /* CIF Reset (300,400) */ RESET(T4Timer); /* CIF Line (400,500),(400,600) */ /* CIF Task (300,600) */ task StoredDis!FifLit!BaudRateLit:= GetLowerBr(StoredDis!FifLit!BaudRateLit) /* try a lower baudrate */ ; /* CIF Line (400,700),(400,750) */ /* CIF ProcedureCall (300,750) */ call d_ref; /* CIF Line (400,850),(400,1200) */ /* CIF NextState (300,1200) */ nextstate Wait_CFR; /* CIF Line (400,200),(400,225),(780,225),(780,250) */ /* CIF Input (680,250) Right */ input *; /* CIF Line (780,350),(780,400) */ /* CIF Output (680,400) Right */ output DCN (DisData) VIA g; /* CIF Line (780,500),(780,550) */ /* CIF ProcedureCall (680,550) */ call PhaseDisconnectLine; /* CIF Line (780,650),(780,1200) */ /* CIF NextState (680,1200) */ nextstate idle; /* CIF Line (400,200),(400,225),(1160,225),(1160,250) */ /* CIF Input (1060,250) Right */ input T4Timer; /* CIF Line (1160,350),(1160,400) */ /* CIF Task (1060,400) */ task PageTries:=PageTries+1; /* CIF Line (1160,500),(1160,550) */ /* CIF Decision (1060,550) */ decision PageTries=3; /* CIF Answer Right InvisibleBrackets */ /* CIF Line (1260,600),(1410,600),(1410,650) */ /* CIF TextPosition (1435,625) */ (false): /* CIF Answer InvisibleBrackets */ /* CIF Line (1160,650),(1160,750) */ /* CIF TextPosition (1185,675) */ (true): /* CIF Output (1060,750) Right */ output NokFax via a; /* CIF Line (1160,850),(1160,900) */ /* CIF Output (1060,900) Right */ output DCN (DisData) VIA g; /* CIF Line (1160,1000),(1160,1050) */ /* CIF ProcedureCall (1060,1050) */ call PhaseDisconnectLine; /* CIF Line (1160,1150),(1160,1200) */ /* CIF NextState (1060,1200) */ nextstate idle; /* CIF End Decision */ enddecision; /* CIF Task (1310,650) */ task 'Set mode'; /* CIF Line (1410,750),(1410,800) */ /* CIF Output (1310,800) Right */ output MPS (DisData) VIA g; /* CIF Line (1410,900),(1410,1000) */ /* CIF Reset (1310,1000) */ RESET(T4Timer) /* //ETOFLI put this elsewhere */; /* CIF Line (1410,1100),(1410,1200) */ /* CIF NextState (1310,1200) */ nextstate Wait_CFR; /* CIF End State */ endstate; /* CIF CurrentPage PhaseD_MultPage_T1part3 */ /* CIF State (300,100) */ state PhaseD_MultPage_T; /* CIF Line (400,200),(400,225),(400,225),(400,250) */ /* CIF Input (300,250) Right */ input CRP (DisData); /* CIF Line (400,350),(400,400) */ /* CIF Task (300,400) */ task 'Set mode'; /* CIF Line (400,500),(400,550) */ /* CIF Output (300,550) Right */ output MPS (DisData) VIA g; /* CIF Line (400,650),(400,750) */ /* CIF Reset (300,750) */ RESET(T4Timer) /* //ETOFLI put this elsewhere */; /* CIF Line (400,850),(400,900) */ /* CIF NextState (300,900) */ nextstate Wait_CFR; /* CIF End State */ endstate; /* CIF CurrentPage AllState */ /* CIF State (300,100) */ state *; /* CIF Line (400,200),(400,250) */ /* CIF Input (300,250) Right */ input PIN (DISData); /* CIF Line (400,350),(400,450) */ /* CIF Reset (300,450) */ RESET(T4Timer); /* CIF Line (400,550),(400,600) */ /* CIF Reset (300,600) */ RESET(T1Timer); /* CIF Line (400,700),(400,750) */ /* CIF Reset (300,750) */ RESET(T2Timer) /* CIF Comment (550,750) Right */ /* CIF Line (550,800),(500,800) Dashed */ comment '//etofli how to set timers again ?' ; /* CIF Line (400,850),(400,900) */ /* CIF ProcedureCall (300,900) */ call PhaseAltSpeech (RetVal); /* CIF Line (400,1000),(400,1050) */ /* CIF Decision (300,1050) */ decision RetVal; /* CIF Answer Right InvisibleBrackets */ /* CIF Line (500,1100),(650,1100),(650,1200) */ /* CIF TextPosition (625,1125) */ (0): /* CIF ProcedureCall (550,1200) */ call PhaseDisconnectLine; /* CIF Line (650,1300),(650,1350) */ /* CIF NextState (550,1350) */ nextstate idle; /* CIF Answer InvisibleBrackets */ /* CIF Line (400,1150),(400,1350) */ /* CIF TextPosition (425,1175) */ (1): /* CIF NextState (300,1350) */ nextstate -; /* CIF Answer Right InvisibleBrackets */ /* CIF Line (500,1100),(900,1100),(900,1350) */ /* CIF TextPosition (925,1125) */ (2): /* CIF NextState (800,1350) */ nextstate PhaseB_R; /* CIF End Decision */ enddecision; /* CIF End State */ endstate; /* CIF CurrentPage PhaseD_MultPage_T2part2 */ /* CIF State (300,100) */ state PhaseD_MultPage_T; /* CIF Line (400,200),(400,225),(400,225),(400,250) */ /* CIF Input (300,250) Right */ input PIP (DISData); /* CIF Line (400,350),(400,400) */ /* CIF Reset (300,400) */ RESET(T4Timer); /* CIF Line (400,500),(400,550) */ /* CIF Reset (300,550) */ RESET(T1Timer); /* CIF Line (400,650),(400,700) */ /* CIF Reset (300,700) */ RESET(T2Timer) /* CIF Comment (550,700) Right */ /* CIF Line (550,750),(500,750) Dashed */ comment '//etofli how to set timers again ?' ; /* CIF Line (400,800),(400,850) */ /* CIF ProcedureCall (300,850) */ call PhaseAltSpeech (RetVal); /* CIF Line (400,950),(400,1000) */ /* CIF Decision (300,1000) */ decision RetVal; /* CIF Answer Right InvisibleBrackets */ /* CIF Line (500,1050),(650,1050),(650,1150) */ /* CIF TextPosition (625,1075) */ (0): /* CIF ProcedureCall (550,1150) */ call PhaseDisconnectLine; /* CIF Line (650,1250),(650,1300) */ /* CIF NextState (550,1300) */ nextstate idle; /* CIF Answer InvisibleBrackets */ /* CIF Line (6860,1100),(6860,1300) */ /* CIF TextPosition (6885,1125) */ (1): /* CIF NextState (300,1300) */ nextstate -; /* CIF Answer Right InvisibleBrackets */ /* CIF Line (6840,1050),(7240,1050),(7240,1300) */ /* CIF TextPosition (7265,1075) */ (2): /* CIF NextState (800,1300) */ nextstate PhaseB_R; /* CIF End Decision */ enddecision; /* CIF End State */ endstate; /* CIF CurrentPage PhaseD_T1 */ /* CIF State (300,100) */ state phaseD_T /* CIF Comment (550,100) Right */ /* CIF Line (550,150),(500,150) Dashed */ comment 'Transmitting FAX in phase D' ; /* CIF Line (400,200),(400,250) */ /* CIF Input (300,250) Right */ input MCF (DisData); /* CIF Line (400,350),(400,400) */ /* CIF Reset (300,400) */ RESET(T4Timer); /* CIF Line (400,500),(400,550) */ /* CIF Output (300,550) Right */ output OkFax via a; /* CIF Line (400,650),(400,700) */ /* CIF Output (300,700) Right */ output DCN (DisData) VIA g; /* CIF Line (400,800),(400,850) */ /* CIF ProcedureCall (300,850) */ call PhaseDisconnectLine; /* CIF Line (400,950),(400,1350) */ /* CIF NextState (300,1350) */ nextstate idle; /* CIF Line (400,200),(400,225),(780,225),(780,250) */ /* CIF Input (680,250) Right */ input RTP (DisData); /* CIF Line (780,350),(780,400) */ /* CIF Reset (680,400) */ RESET(T4Timer); /* CIF Line (780,500),(780,550) */ /* CIF Output (680,550) Right */ output NokFax via a; /* CIF Line (780,650),(780,700) */ /* CIF Output (680,700) Right */ output DCN (DisData) VIA g; /* CIF Line (780,800),(780,850) */ /* CIF ProcedureCall (680,850) */ call PhaseDisconnectLine; /* CIF Line (780,950),(780,1350) */ /* CIF NextState (680,1350) */ nextstate idle; /* CIF Line (400,200),(400,225),(1160,225),(1160,250) */ /* CIF Input (1060,250) Right */ input RTN (DisData); /* CIF Line (1160,350),(1160,400) */ /* CIF Reset (1060,400) */ RESET(T4Timer); /* CIF Line (1160,500),(1160,550) */ /* CIF Decision (1060,550) */ decision CapableToReXmit = true; /* CIF Answer InvisibleBrackets */ /* CIF Line (1160,650),(1160,700) */ /* CIF TextPosition (1185,675) */ (true): /* CIF ProcedureCall (1060,700) */ call d_ref; /* CIF Line (1160,800),(1160,1350) */ /* CIF NextState (1060,1350) */ nextstate Wait_CFR; /* CIF Answer Right InvisibleBrackets */ /* CIF Line (1770,600),(1920,600),(1920,850) */ /* CIF TextPosition (1945,625) */ (false): /* CIF Output (1820,850) Right */ output NokFax via a; /* CIF Line (1920,950),(1920,1050) */ /* CIF Output (1820,1050) Right */ output DCN (DisData) VIA g; /* CIF Line (1920,1150),(1920,1200) */ /* CIF ProcedureCall (1820,1200) */ call PhaseDisconnectLine; /* CIF Line (1920,1300),(1920,1350) */ /* CIF NextState (1310,1350) */ nextstate idle; /* CIF End Decision */ enddecision; /* CIF End State */ endstate; /* CIF CurrentPage PhaseD_T1part2 */ /* CIF State (300,100) */ state phaseD_T; /* CIF Line (400,200),(400,225),(400,225),(400,250) */ /* CIF Input (300,250) Right */ input *; /* CIF Line (400,350),(400,400) */ /* CIF Reset (300,400) */ RESET(T4Timer); /* CIF Line (400,500),(400,550) */ /* CIF Output (300,550) Right */ output NokFax via a; /* CIF Line (400,650),(400,700) */ /* CIF Output (300,700) Right */ output DCN (DisData) VIA g; /* CIF Line (400,800),(400,850) */ /* CIF ProcedureCall (300,850) */ call PhaseDisconnectLine; /* CIF Line (400,950),(400,1300) */ /* CIF NextState (300,1300) */ nextstate idle; /* CIF Line (400,200),(400,225),(780,225),(780,250) */ /* CIF Input (680,250) Right */ input T4Timer; /* CIF Line (780,350),(780,400) */ /* CIF Task (680,400) */ task Timeouts:=Timeouts+1; /* CIF Line (780,500),(780,550) */ /* CIF Set (680,550) */ SET(NOW + T4Period,T4Timer); /* CIF Line (780,650),(780,700) */ /* CIF Decision (680,700) */ decision Timeouts=3; /* CIF Answer InvisibleBrackets */ /* CIF Line (780,800),(780,850) */ /* CIF TextPosition (805,825) */ (false): /* CIF Output (680,850) Right */ output EOP (DisData) VIA g; /* CIF Line (780,950),(780,1300) */ /* CIF NextState (680,1300) */ nextstate phaseD_T; /* CIF Answer Right InvisibleBrackets */ /* CIF Line (1770,750),(1920,750),(1920,850) */ /* CIF TextPosition (1945,775) */ (true): /* CIF Output (1820,850) Right */ output NokFax via a; /* CIF Line (1920,950),(1920,1000) */ /* CIF Output (1820,1000) Right */ output DCN (DisData) VIA g; /* CIF Line (1920,1100),(1920,1150) */ /* CIF ProcedureCall (1820,1150) */ call PhaseDisconnectLine; /* CIF Line (1920,1250),(1920,1300) */ /* CIF NextState (930,1300) */ nextstate idle; /* CIF End Decision */ enddecision; /* CIF End State */ endstate; /* CIF End ProcessDiagram */ endprocess phase;