We seem to have information for PGN 65285 for Lowrance proprietary data.
{ "Lowrance: Temperature", 65285, false, 8, 0,
{ { "Manufacturer Code", 11, RES_MANUFACTURER, false, "=140", "Lowrance" }
, { "Reserved", 2, RES_NOTUSED, false, 0, "" }
, { "Industry Code", 3, RES_LOOKUP, false, "=4", "Marine Industry" }
, { "Temperature Instance", 4, 1, false, 0, "" }
, { "Temperature Source", 4, 1, false, 0, "" }
, { "Actual Temperature", BYTES(2), RES_TEMPERATURE, false, "K", "" }
, { 0 }
}
}
So write handler for PGN 65285 and try code:
bool ParseN2kLowranceTempPGN65285(const tN2kMsg &N2kMsg, unsigned char &TempInstance, tN2kTempSource &TempSource,
double &ActualTemperature) {
ActualTemperature=N2kDoubleNA;
TempInstance=0;
TempSource=N2kts_SeaTemperature;
if (N2kMsg.PGN!=65285L) return false;
int Index=0;
uint16_t Manufacturer=(N2kMsg.Get2ByteUInt(Index) & 0x7ff);
if ( Manufacturer != 140 ) return false; // Not Lowrance proprietary PGN
uint8_t b=N2kMsg.GetByte(Index);
TempInstance=(b & 0x0f);
TempSource=(tN2kTempSource)( (b & 0xf0) >> 4 );
ActualTemperature=N2kMsg.Get2ByteUDouble(0.01,Index);
return true;
}