テキストおよび日常ツール · QR & バーコード ツールキット
Code 128 チェック ディジットの仕組み: モジュロ 103 のチュートリアル
· 仕組み
エンコード 検証 開発者ワークフロー
短いラベルに対して手動で Code 128 チェック文字を計算し、加重合計、モジュロ 103 ステップ、および合計が間違っている場合にスキャナーがラベルを拒否する理由を説明します。
拒否されたラベルまたは誤って読み取られたラベルには診断が必要です。チェック文字は考えられる原因の 1 つにすぎません
スキャナーが何も返さなくても、チェック文字が失敗の原因であることは証明されません。クワイエット ゾーンの損傷、印刷品質、またはサポートされていない入力によっても、同様の症状が発生する可能性があります。リポジトリが証明しているのは、生成された Code 128 には、停止パターンの前に計算されたチェック シンボルが含まれているということです。
クリーンな障害調査は、返された正確なテキストと物理ラベルから始まります。 ToolAcre は、生成されたバイナリが有効な開始パターンで始まり、固定の停止パターンで終わることを保証します。傷のある印刷物、スキャナー構成、またはデコードされた識別子を拒否するアプリケーションを検査することはできません。 SVG と同じ値を再生成し、新しいプルーフをスキャンすると、チェックサムのせいにする前に、エンコードと損傷を区別するのに役立ちます。
ASCII コードではなくシンボル値 - Code 128 がコード セット内の各文字に 0 から 102 までの値を割り当てる方法
Code 128 は、表示された ASCII バイト値を単に追加するのではなく、シンボル値を操作します。 ToolAcre は、セットの選択とシンボルの構築を JsBarcode の CODE128_AUTO エンコーダーに委任し、返されたパターンがバイナリ モジュールのみで構成されていることを検証します。
この違いは、自動エンコーダーがセットを変更するときに表示されます。表示される数字には、コンテキストに関係なく 1 つのユニバーサル チェックサム番号が含まれません。そのシンボル値はアクティブな Code 128 セットに依存し、セット C は 1 つのシンボルとして 1 対の数字を表すことができます。このため、ASCII 文字コードを手動で追加するのは間違ったモデルです。チェックサムは、エンコーダによって選択されたセットの変更を含め、実際に発行されたシンボル シーケンスに従う必要があります。
加重合計 — 開始コードが 1 回カウントされ、その後、すべてのシンボルにその位置が乗算されて合計されます。
チェックサムは開始シンボル値で始まり、その後に続く各データ シンボルを 1 から始まる位置で重み付けします。位置の重み付けは、2 つのシンボルを交換することを意味し、表示される文字のセットが同じであっても、通常は合計が変わります。
位置ゼロは特殊です。開始値は 1 回入力され、後続の各シンボルには 1 から始まるデータ位置が乗算されます。これにより、チェックサムは順序に敏感になります。異なる位置に同じ文字が含まれる 2 つのシェルフ コードは通常、異なる剰余を生成します。これはまさに、バーが誤って読み取られた場合、または転置されたソース データからラベルが生成された場合に有用な失敗信号です。
モジュロ 103 — 100 ではなく 103 を使用する理由と、残りが停止パターンの前に描画されるチェック文字になる方法
103 を法とする加重和を取得すると、停止パターンの直前に配置されたチェック シンボル値が生成されます。リポジトリは、人間が読めるキャプションを信頼するのではなく、生成されたシンボルを解析し、残りを再計算することによって、この不変条件をテストします。
残りは 1 つの通常の Code 128 シンボル値に適合するため、ターミネータの前に挿入して、表示テキストを追加せずにリーダーによってチェックできます。 ToolAcre はその挿入を CODE128_AUTO に委任し、返されたバイナリをアーティファクトとして扱います。独自の 2 番目のゲートは、依存関係によって表現できないとされたパターンの修復や推測を試みるのではなく、無効なエンコーダー結果を拒否します。
有効な例: サポートされていないハンド結果を作成せずに、生成されたシンボル シーケンスを検査する
A12-07 と入力すると、ToolAcre は開始シンボル、データ シンボル、チェック シンボル、およびストップ シンボルを 1 つのバイナリ パターンとして構築します。ソースは、この正確な文字列に対して手動で派生したシンボル テーブルを公開していないため、このウォークスルーは、剰余を考案するのではなく、検証されたアルゴリズムで停止します。
したがって、責任ある動作チェックは、生成されたアーティファクトから開始されます。 `A12-07` と入力し、その正確なソース値を保持し、エクスポートされたバーコードのアクセス可能なラベルとオプションのキャプションに `A12-07` が表示されていることを確認します。手計算が必要な場合は、別の標準対応デコーダでシンボルを検査できます。このリポジトリは中間値を公開しないため、ここで数値の剰余を公開すると、ToolAcre からの証拠ではなく、サポートされていない再構築になります。
チェック文字を自分で入力しない理由 — ジェネレーターがチェック文字を追加し、手で入力したものは再度チェックサムが計算される
テキストフィールドにチェックキャラクタを追加しないでください。エンコーダーは、入力されたすべての文字をペイロードとして扱い、その拡張されたペイロードに対して新しいチェック シンボルを計算するため、スキャナーは意図しない余分なデータ文字を返すことになります。
余分な文字の失敗は概念的に簡単に再現できます。ウェアハウスのプロシージャがスタッフに想定されるチェック文字を追加するように指示した場合、ToolAcre はそれを通常のペイロードとして受け取り、ライブラリは長い文字列に対して別のチェックを計算します。その後、スキャナーは追加された文字をデータとして返します。生成時に間違った識別子が完全に保護されていたため、チェックサム検証は成功してもデータベース検索は失敗します。
これでカバーされないもの — GS1-128 アプリケーション識別子と、EAN および UPC で使用される mod 10 チェック ディジット
この計算では、GS1-128、EAN、または UPC は作成されません。このツールキットは通常の Code 128 を生成し、FNC1 や小売番号割り当てワークフローを持ちませんが、その構成により他のシンボルはツールの範囲外に明示的に配置されます。
GS1 と小売小切手は、データ構造が最終的な算術ステップ以上のものであるため、異なるワークフローに属します。 ToolAcre には、FNC1 コントロール、アプリケーション識別子パーサー、GTIN 割り当てチェック、または EAN/UPC 出力がありません。これらのいずれかを必要とするサプライヤー ラベルは、括弧で囲まれたテキストまたは mod-10 数字をこのプレーンな Code 128 フィールドにコピーすることによって準拠させることはできません。
要点 — QR & Barcode Toolkit はブラウザでチェック文字を計算して追加するため、ユーザーはデータを入力するだけです
実際の分割は簡単です。シェルフ識別子のみを入力し、エンコーダにコード セットを選択させ、モジュロ 103 を計算させ、生成されたクワイエット ゾーンを保存します。 ToolAcre はそのシーケンスをローカルで実行し、結果のバーを SVG または PNG としてエクスポートします。
生成されたファイルの横に、人間による信頼できる情報源 (リテラル識別子、その所有者、およびテスト スキャン結果) を保管してください。後の印刷が失敗した場合は、目でバーをトレースするのではなく、その値から再生成します。ブラウザ ジェネレータは、クワイエット ゾーン、印刷品質、およびインベントリ システムに対するバイト単位の検索を検証するという運用上の必要性を維持しながら、手動チェックサムの機会を 1 つ削減します。