用密碼來控制是否啟動另一個while loop程式

password test.vi

各位大大您好,

小弟想做一個小程式,可以隨時動態更改密碼,當密碼對的時候,在同一面板執行while loop內的程式,如:不斷產生亂數。 同時,當輸入的密碼一店被變更時,此亂數while loop則須停止。 但整個程式並未停止,能在持續監視密碼的輸入,一旦密碼輸入正確,又能繼續執行亂數的while loop。

 

這裏附上小弟的程式,我總是不斷的陷入無窮while loop;不能再對密碼作變更。

謝謝 任何大大的幫忙

 

20091124.vi

 我並沒有用whilp+event;我是用whip+case....

除非您堅持用whilp+event的架構...

20091124-1.vi

天ㄚ

實在是非常謝謝LG大大熱情又徹底的解說。

感溫阿!!

還是想請問大大,

加了兩個 shift register的意義是什麼?  我好像知道上方的register 輸入0和1 是為了能一直去詢問 case0和case1? 對嗎?  那下方的register呢?

 

謝謝

您指的是whilp+case嗎?它是一種state machine的架構,根據您所設定的條件,依成立與否去決定下一個要跑的case;我個人是認為這個架構類似C語言裡面,使用if+switch case的寫法。根據if的條件是否成立來決定要跑哪一個case;當case內的動作處理完,或是遇到終止 該case內的條件成立時就結束該case,並再回到if ,做判斷(或是跳到下一個if)。至於0和1(就是指case 0和case1),只是我任意設這個case的類型為數值型態,您也可以設成字串型態。您可以隨便建立一個case,並在?的接點,接上一個string,那這個case就會變成字串型態的case了。

您也可以在find example裡,輸入"state machines",就會有範例了,這是個人滿常用的一種架構,覺得滿好用的,您可以把這種架構學起來,說不定以後也會用到^^

根據您的需求,只有2個條件,就是密碼對了,就執行產生亂數的程式;另外就是在執行亂數時,也要不斷偵測密碼是否有變更,是否正確。所以我的case就設成2個, 也就是case 0 和case 1。若您有要增加其他條件,依需求也可以再增加case的數量。

至於下面的shift register----------看起來是多餘的,抱歉,沒有想清楚,就把程式po上去^^

 

以上若有解釋錯誤或是觀念不正確,再請各位先進不吝指教