как сохранить сигнал тревоги красным, когда сигнал посылается с машины, которая постоянно меняется между 1 и 0? - PullRequest
0 голосов
/ 19 февраля 2012

У меня есть код, который используется для индикации тревоги от машины, и сигнализация машины будет мигать, чтобы показать, когда машина сталкивается с какой-либо проблемой ...

когда мигает сигнал тревоги,выход будет постоянно изменяться между 1 и 0. и, конечно, мой визуальный C # напишет оператор if else, чтобы показать, что сигнал тревоги звонит, если сигнал тревоги = 1, то изображение сигнала тревоги станет красным, в противном случае сигнал тревоги = 0, затем изображение сигнала тревогистанет зеленым.

, но при получении сигнала от машины мигала от 1 до 0, и мой сигнал тревоги на визуальном c # также будет меняться между красным и зеленым, что я мог сделать, чтобы присигнализация мигает, и моя картинка тревоги в визуальном c # просто продолжает показывать красный?потому что мне нужно хранить в базе данных тоже, когда сигнал тревоги звучит.вот мое утверждение если еще ...

if (bn4 == "1" || bn4 == "0")
{   
    if ((cmdstop4 == 1) || bn4 == "0")
    {
        alarm.Stop();
        pictureBox6.Show();
        pictureBox14.Hide();
        bn4 = "0";

    }
    if (bn4 == "1")
    {
        alarm.PlayLooping();
        pictureBox14.Show();
        pictureBox6.Hide();
    }
}

1 Ответ

0 голосов
/ 19 февраля 2012

Вы можете использовать часовое значение, чтобы определить, был ли сигнал тревоги ранее активирован. Он не должен быть сложным, просто для int устанавливается значение 0, если тревога выключена, и 1, если тревога была активирована.

// this sentinal should be declared somewhere useful, in the alarm would make most sense 
int alarmTriggered = 0; 

if (bn4 == "1" || bn4 == "0") 
{    
    if ((cmdstop4 == 1) || (alarmTriggered == 0 && bn4 == "0")) 
    { 
        alarmTriggered = 0;
        alarm.Stop(); 
        pictureBox6.Show(); 
        pictureBox14.Hide(); 
        bn4 = "0"; 

    } 
    if (bn4 == "1" || alarmTriggered == 1) 
    { 
        alarmTriggered = 1;
        alarm.PlayLooping(); 
        pictureBox14.Show(); 
        pictureBox6.Hide(); 
    } 
} 
...