convertHM method
Implementation
@override
Iterable<BarcodeHMBar> convertHM(String data) sync* {
yield fromBits(BarcodeMaps.rm4sccStart);
int sumTop = 0;
int sumBottom = 0;
final List<int> keys = BarcodeMaps.rm4scc.keys.toList();
for (final int codeUnit in data.codeUnits) {
final int? code = BarcodeMaps.rm4scc[codeUnit];
if (code == null) {
throw BarcodeException('Unable to encode "${String.fromCharCode(codeUnit)}" to $name');
}
yield* addHW(code, BarcodeMaps.rm4sccLen);
final int index = keys.indexOf(codeUnit);
sumTop += (index ~/ 6 + 1) % 6;
sumBottom += (index + 1) % 6;
}
final int crc = ((sumTop - 1) % 6) * 6 + (sumBottom - 1) % 6;
yield* addHW(BarcodeMaps.rm4scc[keys[crc]]!, BarcodeMaps.rm4sccLen);
yield fromBits(BarcodeMaps.rm4sccStop);
}