getLatchBytes method

Uint8List getLatchBytes()

Implementation

Uint8List getLatchBytes() {
  switch (previousMode) {
    case Mode.ASCII:
    case Mode.B256: //after B256 ends (via length) we are back to ASCII
      switch (mode) {
        case Mode.B256:
          return getBytes(231);
        case Mode.C40:
          return getBytes(230);
        case Mode.TEXT:
          return getBytes(239);
        case Mode.X12:
          return getBytes(238);
        case Mode.EDF:
          return getBytes(240);
        case Mode.ASCII:
          break;
      }
      break;
    case Mode.C40:
    case Mode.TEXT:
    case Mode.X12:
      if (mode != previousMode) {
        switch (mode) {
          case Mode.ASCII:
            return getBytes(254);
          case Mode.B256:
            return getBytes(254, 231);
          case Mode.C40:
            return getBytes(254, 230);
          case Mode.TEXT:
            return getBytes(254, 239);
          case Mode.X12:
            return getBytes(254, 238);
          case Mode.EDF:
            return getBytes(254, 240);
        }
      }
      break;
    case Mode.EDF:
      //The rightmost EDIFACT edge always contains an unlatch character
      assert(mode == Mode.EDF);
      break;
  }
  return Uint8List(0);
}