! - логический оператор. Пример !1=0 (false), !0=1 (true). Если на ножке 0 то условие выполняется
Можно немного ускорить работу, чтобы было поменьше лишних проверок:
Код:
if(!digitalRead(2)) // check if data coming
{
CAN.readMsgBuf(&len, buf);
canId = CAN.getCanId();
if(canId == 246) //0F6
{
...
goto output; // пропускаем остальные ID
}
if(canId == 182) //0B6
{
...
goto output; // пропускаем остальные ID
}
if(canId == 545) //221
{
...
goto output; // пропускаем остальные ID
}
if(canId == 543) //21F
{
...
goto output; // пропускаем остальные ID
}
if(canId == 997) //3E5
{
...
goto output; // пропускаем остальные ID
}
if(canId == 357) //165
{
...
goto output; // пропускаем остальные ID
}
if(canId == 549) //225
{
...
goto output; // пропускаем остальные ID
}
if(canId == 421) //1A5
{
VOL = buf[0];
}
output: //прыгаем сразу сюда
//Выводим данные.
if (incomingByte == 98){;Serial.print("Speed: "); Serial.println(Speed);}
if (incomingByte == 99){Serial.print("RPM: "); Serial.println(RPM);}
if (incomingByte == 100){Serial.print("Instant fuel consumption /100Km: "); Serial.println(ILPK);}
if (incomingByte == 101){Serial.print("Run on current fuel level: "); Serial.println(ARCFL);}
if (incomingByte == 102){Serial.print("Themperature: "); Serial.println(Themperature);}
...
}