TSDの下に書き込みます。 フォームコンポーネントとしてのバーコードスキャナーの接続

データ収集端末(TSD)用の産業用ソフトウェアがビジネスプロセス、特に倉庫プロセスを自動化するために記述されていることは周知の事実です。 バーコードスキャナーはデバイスに組み込まれているため、TSDを使用して解決する必要があるタスクのほとんどはバーコーディングに関連しています。

この記事では、データ収集端末用のプログラムの作成を開始する方法、およびバーコードスキャナーを接続して使用する方法について説明します。











プロトタイプのMotorola MC3190にはレーザーバーコードスキャナーがあります。 (近い将来、メッセンジャーでDatalogicを密接に扱う予定です)。



興味がある場合は、仕様に慣れることができます



Windows CEはそれぞれデバイスにインストールされており、そのために書き込む必要があります。 もちろん、TSDで書いたことがない場合は、Hello Worldから始めてください。 このデバイスでC#で記述されたアプリケーションを実行するには、それに.NET 3.5 Compactをインストールする必要があります。 また、Visual Studio 2008が手元にあります。後続のすべてのリリースには、スマートデバイスプロジェクトのオプションはありません(残念ながら、新しいテクノロジを強制するような小さなものは、以前のバージョンのオペレーティングシステムと常に互換性があるとは限りません)。







したがって、簡単なアプリケーションを作成したら、すぐに起動することができます。 デバイスがコンピューターに接続されている場合、スタジオはすぐにデバイス上で直接起動することを提案します。もちろん、デバッグの可能性もあります。 数分待ってから、デバイスでフォームの起動を確認できます。









これで、最も興味深いものに進むことができます。



C#で既に実装されているオブジェクトモデルを使用するために、Motorolaは多くのライブラリを準備しました。 実際、彼らの助けを借りて、私たちが望むすべてのものを作成できます。 この奇跡はシンボルと呼ばれます。 この場合、Symbol.Barcodeが使用されます。 残念ながら、現時点では、symbol.comライブラリの公式サイトからmotorolaso​​lutions.comにリダイレクトされ、技術が古いことを通知しています。 しかし、私は一度すべてのリファレンスのコピーを例とともに作成しました:



cloud.mail.ru/public/6716403f96ac%2FSymbolReference.7z

cloud.mail.ru/public/c48120476007%2FSymbolExample.7z



例では、もちろん、興味のある人は掘り下げることができますが、私はすぐにすべてのものをはるかに簡単で便利に説明している記事があることをすぐに警告できます。 。 ただし、それでも、バーコードスキャナーを毎回接続することは、特にアプリケーションがマルチウィンドウになるように計画されている場合、あまり便利ではないと考えています。 さらに、場合によっては、フォーカスが子から親ウィンドウに戻るときに読み取りに問題が発生する場合があります。



インターネット上で見つけることができるすべてのうち、認識すべき主なことは、バーコードを処理する最も便利な方法がイベントベースのモデルであることです:

1.バーコードスキャナーが機能した。

2.バーコードを正しく認識しました。

3.プログラムでこのバーコードを処理するイベントをトリガーします。これはすでに分解されており、読みやすいものです。



フォームコンポーネントは、スタジオのフォームデザイナーにコントロールを追加できるパターンです。 これを使用します。 また、フォームの開発が簡単になるだけでなく、将来的にモトローラだけでなくスキャナーもサポートするようにコンポーネントを変更できるためです。







次に、コンポーネントクラスを記述する必要があります。



public partial class BarcodeReader : Component { private Symbol.Barcode.BarcodeReader barcodeReader = null; public delegate void OnReadBarcodeReaderEventHandler(string Text); public event OnReadBarcodeReaderEventHandler OnRead; public BarcodeReader() { InitializeComponent(); InitializeBarcodeReader(); } public BarcodeReader(IContainer container) { container.Add(this); InitializeComponent(); InitializeBarcodeReader(); } private void InitializeBarcodeReader() { this.barcodeReader = new Symbol.Barcode.BarcodeReader(); this.barcodeReader.ListChanged += new System.ComponentModel.ListChangedEventHandler(BarcodeReader_ListChanged); this.barcodeReader.Start(); this.components.Add(this.barcodeReader); } void BarcodeReader_ListChanged(object sender, System.ComponentModel.ListChangedEventArgs e) { if (this.barcodeReader.ReaderData.Result == Symbol.Results.SUCCESS) { OnRead(this.barcodeReader.ReaderData.Text); } } }
      
      







あなたが注意を払う必要があるもの:

1.コンポーネントに追加されたイベントは、フォームコンストラクターで使用可能になります。

2. IContainerコンテナに基づいて、フォームデザイナは、管理されていないオブジェクトを含むメモリを解放するメカニズムを実装します。 したがって、使用しないのは罪です。 バーコードリーダーオブジェクトをコンテナに追加すると、ここで説明するコンポーネントを含むフォームを閉じると、メモリが再帰的に解放されます。

//

デザイナーで作成されたフォームのいずれかをデザイナーで開き、オーバーロードを見ると、これがどのように起こるかを理解できます。



  private System.ComponentModel.IContainer components = null; /// <summary> /// Clean up any resources being used. /// </summary> /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); }
      
      





//

3.読み取りイベントをわずかに再定義し、エラーのある読み取りデータの処理を省きます。



次に、中小企業です。コンポーネントをフォームにドラッグします。







そして、バーコード処理イベントを追加します。





次のコードで十分であることを確認してください。



  private void barcodeReader1_OnRead(string Text) { MessageBox.Show(Text); }
      
      







それはやや面倒で、多くのスクリーンショットが見つかりました。 上記の手順を繰り返すことで、3つのことを一度に学習できます。



1.データ収集端末のプログラムをデバッグモードで作成して実行します。

2.バーコードスキャナーの使用方法を理解します。

3.フォームコンポーネントの作成方法を学びます。



この記事が、TSDのプログラミングを理解し始めたばかりの人々の助けとなり、生活をいくらか簡素化することを願っています。



githubの例



All Articles