convertHM method

  1. @override
Iterable<BarcodeHMBar> convertHM(
  1. String data
)
override

Implementation

@override
Iterable<BarcodeHMBar> convertHM(String data) sync* {
  yield fromBits(BarcodeMaps.postnetStartStop);

  int sum = 0;
  for (final int codeUnit in data.codeUnits) {
    if (codeUnit == 45) {
      continue;
    }
    final int? code = BarcodeMaps.postnet[codeUnit];
    if (code == null) {
      throw BarcodeException('Unable to encode "${String.fromCharCode(codeUnit)}" to $name');
    }
    yield* addHW(code, BarcodeMaps.postnetLen);

    sum += codeUnit - 0x30;
  }

  final int crc = (10 - (sum % 10)) % 10;
  yield* addHW(BarcodeMaps.postnet[crc + 0x30]!, BarcodeMaps.postnetLen);

  yield fromBits(BarcodeMaps.postnetStartStop);
}