2017-11-06 6 views
-4

a1count 및 b1count라는 2 개의 카운터가 있습니다. 코드의 일부는 스테퍼 모터를 제어하는 ​​데 사용됩니다. 모터 드라이버가 1을 반환 할 때마다 회전주기가 완료되고 a1count가 증가한다는 의미입니다. 사이클 동안 어떤 이유로 모터가 스핀을 완료 할 수없는 경우 (실패 조건) 드라이버는 0을 반환하고 b1count가 증가합니다.C#, 조건이 참이 될 때 카운터 재설정

이제 c1count라는 연속적인 실패 조건 계수를 만들려고합니다. b1count가 10이라고 가정하면 messagebox가 팝업됩니다. c1count < = 10이면 오류를 알리는 메시지 상자가 팝업됩니다. 그러나 그 10 개의 카운트 사이에 a1count가 증가하면 c1count를 0으로 재설정하려고합니다. b1count가 1 카운트 증가없이 연속적으로 10에 도달하면 ans는 다시 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# 클래스로'// comments'로 작성한 다음 코멘트 아래에 코드를 둡니다. 우리는 네이티브로 생각한 언어 (예 : 영어)를 사용하여 복잡한 알고리즘을 의사 코드로 작성한 다음에 에세이 계획을 작성하는 것처럼 합리적이기 때문에 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

하하 ... 완벽한. 나는 이것에 대한 간단한 해결책이있을 수 있음을 알지 못했다. 나는 이것을 달성하기 위해 아침 이후로 반복하면서 내 머리를 부러 뜨 렸습니다. 블라디미르 라자르에게 감사드립니다. – Interceptor

관련 문제