Skip to content

Instantly share code, notes, and snippets.

@sixstringsg
Created August 1, 2016 03:57
Show Gist options
  • Select an option

  • Save sixstringsg/958de3b85a3ef60b386b18bfee795d12 to your computer and use it in GitHub Desktop.

Select an option

Save sixstringsg/958de3b85a3ef60b386b18bfee795d12 to your computer and use it in GitHub Desktop.
void SendN2KTransmissionParam() {
static unsigned long TransmissionUpdated=millis();
tN2kMsg N2kMsg;
if (TransmissionUpdated+TransmissionUpdatePeriod<millis()) {
TransmissionUpdated=millis();
SetN2kTransmissionParameters(N2kMsg,1,N2kTG_Forward,TransmissionOilPressure(),
TransmissionOilTemperature(),0x0);
NMEA2000.SendMsg(N2kMsg);
}
}
inline void SetN2kTransmissionParameters(tN2kMsg &N2kMsg, unsigned char
EngineInstance, tN2kTransmissionGear TransmissionGear,
double OilPressure, double OilTemperature,
bool flagCheck=false, bool
flagOverTemp=false, bool flagLowOilPressure=false, bool
flagLowOilLevel=false,
bool flagSailDrive=false) {
unsigned char DiscreteStatus1=0;
if (flagCheck) DiscreteStatus1 |= B00000001;
if (flagOverTemp) DiscreteStatus1 |= B00000010;
if (flagLowOilPressure) DiscreteStatus1 |= B00000100;
if (flagLowOilLevel) DiscreteStatus1 |= B00001000;
if (flagSailDrive) DiscreteStatus1 |= B00010000;
SetN2kPGN127493(N2kMsg, EngineInstance, TransmissionGear,
OilPressure, OilTemperature,DiscreteStatus1);
NMEA2000.SendMsg(N2kMsg);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment