2017-11-06 9 views
-4

私はa1countとb1countという2つのカウンタを持っています。 コードの一部は、ステッピングモータの制御に使用されます。 モータドライバが1を返すと、回転サイクルが完了し、a1countがインクリメントされたことを意味します。 サイクル中に何らかの理由でモータがスピンを完了できなかった場合(失敗条件)、ドライバは0を返し、b1countがインクリメントされます。今イムが連続を作成しようとC#、条件が真になったときにカウンタがリセットされる

がポップアップしますメッセージボックスをc1count = 10 <はその後、メッセージボックスにエラーを通知するポップアップする場合と仮定するb1countが10に到達したと言う場合c1countと呼ばれる状態数を失敗します。しかし、これらの10カウントの間にa1countがインクリメントされている場合、c1countを0にリセットしたい場合は、a1カウント増分なしでb1countが10に連続してカウントを開始します。

これは私が今持っているものです。

public int a1count = 0; 
public int b1count = 0; 
public int c1count=0; 

if (ethernetIPforSLCMicroCom1.Write("N7:70") == 1) 
{  
    a1count += 1;   
} 
else if (ethernetIPforSLCMicroCom1.Write("N7:70") == 0) 
{     
    b1count += 1;     
} 

    /* Im trying to create a consecutive fail condition count called c1count 
    which will pop-up a messagebox if say suppose b1count reaches 10. 
    If c1count <= 10 then a messagebox pops up notifying the error. 
    However, if in between those 10 counts, a1count is incremented then 
    I want to reset c1count to 0, ans start counting to 10 again if 
    b1count reaches 10 consecutively without a1count increment.*/ 

c1count = b1count; 
if (c1count <= 10) 
{      
    MessageBox.Show("Consecutive Rejection Occured); 
    ethernetIPforSLCMicroCom1.Write("B3:11/6", "1");     
} 

助けてください!

+1

これまでに何を試みましたか? – PaulF

+1

最小限の実行可能コードの例を表示します。これは基本的なものですが、それはあなたの答えをあなたに与える可能性があります – BugFinder

+0

あなたは質問にあなたのプログラムのロジックを書いています。それをac#クラスで書くと、コメントの下にコードが置かれます。私たちがネイティブに考えている言語(例えば英語)を使って複雑なアルゴリズムを疑似コード化してから、C#に変換します。エッセイを書く –

答えて

-3

私はこのようにしたいと思っていますか?

public int a1count = 0; 
public int b1count = 0; 
public int c1count=0; 

if (ethernetIPforSLCMicroCom1.Write("N7:70") == 1) 
{  
    a1count++; 
    c1count = 0; 
} 
else if (ethernetIPforSLCMicroCom1.Write("N7:70") == 0) 
{     
    b1count++; 
    c1count++;     
} 


if (c1count > 0 && c1count <= 10) 
{      
    MessageBox.Show("Consecutive Rejection Occured); 
    ethernetIPforSLCMicroCom1.Write("B3:11/6", "1");     
} 
+1

このコードで何をしているか書き留めてください。それは多くの人々を助けてくれるでしょう。 –

+0

haha​​ ... perfect。私は、このような単純な解決策があるかもしれないことを知っていませんでした。私はこれを達成するために午前中にループの途中で頭を壊しています。ありがとうVladimir lazar。 – Interceptor