private void ClarionVWPremium4SafeCode(IKW1281Dialog kwp1281) { if (_controllerAddress != (int)ControllerAddress.Radio) { Logger.WriteLine("Only supported for radio address 56"); return; } // Thanks to Mike Naberezny for this (https://github.com/mnaberez) const byte readWriteSafeCode = 0xF0; const byte read = 0x00; kwp1281.SendBlock(new List <byte> { readWriteSafeCode, read }); var block = kwp1281.ReceiveBlocks().FirstOrDefault(b => !b.IsAckNak); if (block == null) { Logger.WriteLine("No response received from radio."); } else if (block.Title != readWriteSafeCode) { Logger.WriteLine( $"Unexpected response received from radio. Block title: ${block.Title:X2}"); } else { var safeCode = block.Body[0] * 256 + block.Body[1]; Logger.WriteLine($"Safe code: {safeCode:X4}"); } }