Example #1
0
void PanasonicProtocol::generateChecksum(
  const CommandSequence &device,
  const CommandSequence &subdevice,
  const CommandSequence &command,
  CommandSequence &checksum)
{
  checksum.clear(); // probably unnecessary sanity check.

  CommandSequence::const_iterator diter = device.begin();
  CommandSequence::const_iterator siter = subdevice.begin();
  CommandSequence::const_iterator citer = command.begin();

  while (diter !=device.end()
      && siter != subdevice.end()
      && citer != command.end())
  {
    checksum.push_back(*diter ^ *siter ^ *citer);
    ++diter;
    ++siter;
    ++citer;
  }
}