📄 pseudocode
字号:
; IF_F=1_CLEAR_REMOTE_BUSYBUSY14 OPTIONAL_SEND_RNR_XXX(X=0) UPDATE_N(R)_RECEIVED IF_DATA_FLAG=2_STOP_REJ_TIMER DATA_FLAG:=1; V(R):=V(R)+1; DATA_INDICATION; OPTIONAL_SEND_RNR_XXX(X=0); UPDATE_N(R)_RECEIVED; IF_DATA_FLAG=2_STOP_REJ_TIMER; DATA_FLAG:=0BUSY15 UPDATE_P_FLAG UPDATE_N(R)_RECEIVED CLEAR_REMOTE_BUSYBUSY16 SEND_RNR_RSP(F=1) UPDATE_N(R)_RECEIVED CLEAR_REMOTE_BUSYBUSY17 UPDATE_P_FLAG UPDATE_N(R)_RECEIVED SET_REMOTE_BUSYBUSY18 SEND_RNR_RSP(F=1) UPDATE_N(R)_RECEIVED SET_REMOTE_BUSYBUSY19 V(S):=N(R) UPDATE_N(R)_RECEIVED UPDATE_P_FLAG RE-SEND_I_XXX(X=0) CLEAR_REMOTE_BUSY; V(S):=N(R); UPDATE_N(R)_RECEIVED; RE-SEND_I_CMD(P=1); CLEAR_REMOTE_BUSYBUSY20 V(S):=N(R) UPDATE_N(R)_RECEIVED RE-SEND_I_XXX(X=0) CLEAR_REMOTE_BUSYBUSY21 V(S):=N(R) UPDATE_N(R)_RECEIVED SEND_RNR_RSP(F=1) RE-SEND_I_XXX(X=0) CLEAR_REMOTE_BUSYBUSY22 SEND_RNR_CMD(F=1) START_P_TIMERBUSY23 P_FLAG:=0; SEND_RNR_CMD(F=1); START_P_TIMER; RETRY_COUNT:=RETRY_COUNT+1BUSY24 SEND_RNR_CMD(F=1) START_P_TIMER RETRY_COUNT:=RETRY_COUNT+1BUSY25 DATA_FLAG:=1; SEND_RNR_CMD(F=1); START_P_TIMER; RETRY_COUNT:=RETRY_COUNT+1; DATA_FLAG:=1BUSY26 DATA_FLAG:=1;============================================================================REJECT1 SEND_I_CMD(P=1) START_P_TIMER START_ACK_TIMER_IF_NOT_RUNNING; SEND_I_XXX(X=0); START_ACK_TIMER_IF_NOT_RUNNINGREJECT2 SEND_I_XXX(X=0) START_ACK_TIMER_IF_NOT_RUNNINGREJECT3 SEND_RNR_CMD(F=1) START_P_TIMER DATA_FLAG:=2; SEND_RNR_XXX(X=0); DATA_FLAG:=2REJECT4 SEND_RNR_XXX(X=0) DATA_FLAG:=2REJECT5 UPDATE_N(R)_RECEIVED UPDATE_P_FLAG IF_F=1_CLEAR_REMOTE_BUSYREJECT6 SEND_RR_RSP(F=1) UPDATE_N(R)_RECEIVED;; order of opcodes in REJECT7 is changed REJECT7 V(R):=V(R)+1 SEND_ACKNOWLEDGE_CMD(P=1) START_P_TIMER UPDATE_N(R)_RECEIVED IF_F=1_CLEAR_REMOTE_BUSY STOP_REJ_TIMER DATA_INDICATION; V(R):=V(R)+1; DATA_INDICATION; UPDATE_P_FLAG; SEND_ACKNOWLEDGE_XXX(X=0); UPDATE_N(R)_RECEIVED; IF_F=1_CLEAR_REMOTE_BUSY; STOP_REJ_TIMER;; order of opcodes in REJECT8 is changed REJECT8 V(R):=V(R)+1 SEND_ACKNOWLEDGE_XXX(X=0) UPDATE_N(R)_RECEIVED STOP_REJ_TIMER DATA_INDICATION;; order of opcodes in REJECT9 is changed REJECT9 V(R):=V(R)+1 SEND_ACKNOWLEDGE_RSP(F=1) UPDATE_N(R)_RECEIVED STOP_REJ_TIMER DATA_INDICATIONREJECT10 UPDATE_P_FLAG UPDATE_N(R)_RECEIVED CLEAR_REMOTE_BUSYREJECT11 SEND_ACKNOWLEDGE_RSP(F=1) UPDATE_N(R)_RECEIVED CLEAR_REMOTE_BUSYREJECT12 UPDATE_P_FLAG UPDATE_N(R)_RECEIVED SET_REMOTE_BUSYREJECT13 SEND_RR_RSP(F=1) UPDATE_N(R)_RECEIVED SET_REMOTE_BUSYREJECT14 V(S):=N(R) UPDATE_N(R)_RECEIVED UPDATE_P_FLAG RE-SEND_I_XXX(X=0) CLEAR_REMOTE_BUSY; V(S):=N(R); UPDATE_N(R)_RECEIVED; RE-SEND_I_CMD(P=1); START_P_TIMER; CLEAR_REMOTE_BUSYREJECT15 V(S):=N(R) UPDATE_N(R)_RECEIVED RE-SEND_I_XXX(X=0) CLEAR_REMOTE_BUSYREJECT16 V(S):=N(R) UPDATE_N(R)_RECEIVED RE-SEND_I_RSP(F=1) CLEAR_REMOTE_BUSYREJECT17 SEND_RR_CMD(P=1) START_P_TIMERREJECT18 SEND_REJ_CMD(P=1) START_P_TIMER START_REJ_TIMER RETRY_COUNT:=RETRY_COUNT+1REJECT19 P_FLAG:=0; SEND_RR_CMD(P=1); START_P_TIMER; START_REJ_TIMER; RETRY_COUNT:=RETRY_COUNT+1REJECT20 SEND_RR_CMD(P=1) START_P_TIMER START_REJ_TIMER RETRY_COUNT:=RETRY_COUNT+1;============================================================================AWAIT1 SEND_RNR_XXX(X=0) DATA_FLAG:=0AWAIT2 SEND_REJ_XXX(X=0) UPDATE_N(R)_RECEIVED V(S):=N(R) STOP_P_TIMER RE-SEND_I_XXX(X=0) START_REJ_TIMER CLEAR_REMOTE_BUSY; SEND_REJ_CMD(P=1); UPDATE_N(R)_RECEIVED; V(S):=N(R); RE-SEND_I_XXX(X=0); START_P_TIMER; START_REJ_TIMER; CLEAR_REMOTE_BUSYAWAIT3 SEND_REJ_XXX(X=0) UPDATE_N(R)_RECEIVED START_REJ_TIMERAWAIT4 SEND_REJ_RSP(F=1) UPDATE_N(R)_RECEIVED START_REJ_TIMER;; order of opcode in AWAIT5 changedAWAIT5 V(R):=V(R)+1 UPDATE_N(R)_RECEIVED V(S):=N(R) RE-SEND_I_CMD(P=1)_OR_SEND_RR START_P_TIMER CLEAR_REMOTE_BUSY DATA_INDICATION; V(R):=V(R)+1; DATA_INDICATION; STOP_P_TIMER; UPDATE_N(R)_RECEIVED; V(S):=N(R); RE-SEND_I_XXX(X=0)_OR_SEND_RR; CLEAR_REMOTE_BUSY;; order of opcode in AWAIT6 changedAWAIT6 V(R):=V(R)+1 SEND_RR_XXX(X=0) UPDATE_N(R)_RECEIVED DATA_INDICATION;; order of opcode in AWAIT7 changedAWAIT7 V(R):=V(R)+1 SEND_RR_RSP(F=1) UPDATE_N(R)_RECEIVED DATA_INDICATIONAWAIT8 UPDATE_N(R)_RECEIVED V(S):=N(R) STOP_P_TIMER RE-SEND_I_XXX(X=0) CLEAR_REMOTE_BUSY; UPDATE_N(R)_RECEIVED; V(S):=N(R); RE-SEND_I_CMD(P=1); START_P_TIMER; CLEAR_REMOTE_BUSYAWAIT9 UPDATE_N(R)_RECEIVED CLEAR_REMOTE_BUSYAWAIT10 SEND_RR_RSP(F=1) UPDATE_N(R)_RECEIVED CLEAR_REMOTE_BUSYAWAIT11 UPDATE_N(R)_RECEIVED V(S):=N(R) STOP_P_TIMER SET_REMOTE_BUSYAWAIT12 UPDATE_N(R)_RECEIVED SET_REMOTE_BUSYAWAIT13 SEND_RR_RSP(F=1) UPDATE_N(R)_RECEIVED SET_REMOTE_BUSYAWAIT14 SEND_RR_CMD(P=1) START_P_TIMER RETRY_COUNT:=RETRY_COUNT+1;============================================================================AWAIT_BUSY1 SEND_REJ_XXX(X=0) START_REJ_TIMER AWAIT_BUSY2 SEND_RR_XXX(X=0)AWAIT_BUSY3 SEND_RR_XXX(X=0)AWAIT_BUSY4 OPTIONAL_SEND_RNR_XXX(X=0) UPDATE_N(R)_RECEIVED V(S):=N(R) STOP_P_TIMER DATA_FLAG:=1 CLEAR_REMOTE_BUSY RE-SEND_I_XXX(X=0); SEND_RNR_CMD(F=1); UPDATE_N(R)_RECEIVED; V(S):=N(R); START_P_TIMER; DATA_FLAG:=1; CLEAR_REMOTE_BUSY; RE-SEND_I_XXX(X=0)AWAIT_BUSY5 OPTIONAL_SEND_RNR_XXX(X=0) UPDATE_N(R)_RECEIVED DATA_FLAG:=1AWAIT_BUSY6 SEND_RNR_RSP(F=1) UPDATE_N(R)_RECEIVED DATA_FLAG:=1AWAIT_BUSY7 OPTIONAL_SEND_RNR_XXX(X=0) UPDATE_N(R)_RECEIVED V(S):=N(R) DATA_FLAG:=1 STOP_P_TIMER CLEAR_REMOTE_BUSY RE-SEND_I_XXX(X=0); SEND_RNR_CMD(F=1); V(R):=V(R)+1; DATA_INDICATION; START_P_TIMER; UPDATE_N(R)_RECEIVED; V(S):=N(R); DATA_FLAG:=0; CLEAR_REMOTE_BUSY; RE-SEND_I_XXX(X=0); OPTIONAL_SEND_RNR_XXX(X=0); V(R):=V(R)+1; DATA_INDICATION; STOP_P_TIMER; UPDATE_N(R)_RECEIVED; V(S):=N(R); DATA_FLAG:=0; CLEAR_REMOTE_BUSY; RE-SEND_I_XXX(X=0)AWAIT_BUSY8 OPTIONAL_SEND_RNR_XXX(X=0) UPDATE_N(R)_RECEIVED DATA_FLAG:=1; OPTIONAL_SEND_RNR_XXX(X=0); V(R):=V(R)+1; DATA_INDICATION; UPDATE_N(R)_RECEIVED; DATA_FLAG:=0AWAIT_BUSY9 SEND_RNR_RSP(F=1) UPDATE_N(R)_RECEIVED DATA_FLAG:=1; SEND_RNR_RSP(F=1); V(R):=V(R)+1; DATA_INDICATION; UPDATE_N(R)_RECEIVED; DATA_FLAG:=0AWAIT_BUSY10 UPDATE_N(R)_RECEIVED V(S):=N(R) STOP_P_TIMER RE-SEND_I_XXX(X=0) CLEAR_REMOTE_BUSY; UPDATE_N(R)_RECEIVED; V(S):=N(R); RE-SEND_I_CMD(P=1); START_P_TIMER; CLEAR_REMOTE_BUSYAWAIT_BUSY11 UPDATE_N(R)_RECEIVED CLEAR_REMOTE_BUSYAWAIT_BUSY12 SEND_RNR_RSP(F=1) UPDATE_N(R)_RECEIVED CLEAR_REMOTE_BUSYAWAIT_BUSY13 UPDATE_N(R)_RECEIVED V(S):=N(R) STOP_P_TIMER SET_REMOTE_BUSYAWAIT_BUSY14 UPDATE_N(R)_RECEIVED SET_REMOTE_BUSYAWAIT_BUSY15 SEND_RNR_RSP(F=1) UPDATE_N(R)_RECEIVED SET_REMOTE_BUSYAWAIT_BUSY16 SEND_RNR_CMD(F=1) START_P_TIMER RETRY_COUNT:=RETRY_COUNT+1;============================================================================AWAIT_REJECT1 SEND_RNR_XXX(X=0) DATA_FLAG:=2AWAIT_REJECT2 UPDATE_N(R)_RECEIVEDAWAIT_REJECT3 SEND_RR_RSP(F=1) UPDATE_N(R)_RECEIVED;; order of opcodes in AWAIT_REJECT4 changedAWAIT_REJECT4 V(R):=V(R)+1 UPDATE_N(R)_RECEIVED V(S):=N(R) RE-SEND_I_CMD(P=1)_OR_SEND_RR START_P_TIMER STOP_REJ_TIMER CLEAR_REMOTE_BUSY DATA_INDICATION; V(R):=V(R)+1; DATA_INDICATION; STOP_P_TIMER; STOP_REJ_TIMER; UPDATE_N(R)_RECEIVED; V(S):=N(R); RE-SEND_I_CMD(P=1)_OR_SEND_RR; CLEAR_REMOTE_BUSY;; order of opcodes in AWAIT_REJECT5 changedAWAIT_REJECT5 V(R):=V(R)+1 SEND_RR_XXX(X=0) STOP_REJ_TIMER UPDATE_N(R)_RECEIVED DATA_INDICATION;; order of opcodes in AWAIT_REJECT6 changedAWAIT_REJECT6 V(R):=V(R)+1 SEND_RR_RSP(F=1) STOP_REJ_TIMER UPDATE_N(R)_RECEIVED DATA_INDICATIONAWAIT_REJECT7 UPDATE_N(R)_RECEIVED V(S):=N(R) STOP_P_TIMER RE-SEND_I_XXX(X=0) CLEAR_REMOTE_BUSY; UPDATE_N(R)_RECEIVED; V(S):=N(R); RE-SEND_I_CMD(P=1); START_P_TIMER; CLEAR_REMOTE_BUSYAWAIT_REJECT8 UPDATE_N(R)_RECEIVED CLEAR_REMOTE_BUSYAWAIT_REJECT9 SEND_RR_RSP(F=1) UPDATE_N(R)_RECEIVED CLEAR_REMOTE_BUSYAWAIT_REJECT10 UPDATE_N(R)_RECEIVED V(S):=N(R) STOP_P_TIMER SET_REMOTE_BUSYAWAIT_REJECT11 UPDATE_N(R)_RECEIVED SET_REMOTE_BUSYAWAIT_REJECT12 SEND_RR_RSP(F=1) UPDATE_N(R)_RECEIVED SET_REMOTE_BUSYAWAIT_REJECT13 SEND_REJ_CMD(P=1) START_P_TIMER RETRY_COUNT:=RETRY_COUNT+1;============================================================================
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -