ネットワークフラットベッドスキャナー

こんにちは、ハブレッチク!



このトピック-過去の反響。

2006年に戻った。 「ネットワーク」に関する用語ペーパーを作成する必要があり、タスクは自分で考案する必要がありました。主なことは、クライアントサーバーアーキテクチャを使用するコースにプログラムがあることです。 誰がどこで何を噛んでいるのかわかりませんが、ネットワーク化されたフラットベッドスキャナーから写真を取得するプログラムを提案しました。 つまり、近くに2台のコンピューターがあり、2台のスキャナーが1台あります。 今ではソフトウェアとハ​​ードウェアの両方のこの種の実装で既にいっぱいになっていると思いますが、この作業は長い間行われており、この開発を親愛なるユーザーに共有したいと考えました。







アイデアは次のとおりです。



TWAINドライバーで動作するはずだったサーバーは、インストールされているドライバーと可能な設定のリストを受け取り、イメージをスキャンしてネットワーク経由でクライアントに送信します。

サーバーからスキャナーのリストを受け取り、スキャナーの設定を行い、最終的に画像を取得できるクライアント。



残念ながら、開発時間はほとんどなく、TWAINドライバーを適切に処理することはできませんでした。交換は、指定されたフォルダーに画像をスキャンして保存するだけのシェアウェアコンソールプログラムとしてすぐに見つかりました。写真、デモ版のようなもの。 学期論文については、これはまったく受け入れられました。さらに、この作業の最終日の前夜に行われ、すべて同じでした。



私は、Windowsの下でQt3でこれらすべてを開発することを約束しました。 サーバーとクライアントが開発され、さらにTWAINスキャナーエミュレーターが使用されたため、実際のスキャナーがスキャンされるまで待たずに、仮想スキャナーがすぐに画像を提供しました。 通信プロトコルは、最も単純な方法で開発されました。1バイトのパケットサイズ、次にパケットタイプバイト、追加情報(オプション)。

このコースでレポート(ifolderでダウンロードするためのリンク)を見つけましたが、ここから抜粋します。



クライアント/サーバー相互作用プロトコルの説明。



3.1.1プロトコルは次の構造に基づいています:メッセージの最初のビットは、画像を含むパケットを除き、パケットサイズです;画像を送信する場合、サイズは2バイトです。 最小パケットサイズは2バイトです。 サイズの最初のバイトの後に、制御文字が続きます。0〜3のクライアントの場合、0〜7のサーバーの場合、画像を送信するとき、制御文字の後に、画像自体のサイズの長い数字があり、その後に画像自体が続きます。

3.1.2クライアントの制御文字:

3.1.2.1 0-サーバーでの最後の操作は成功しました。

2.1.2.2 1-サーバーでエラーが発生した後、1バイトの行サイズがあり、その後にエラーの説明を含む行自体があります。

3.1.2.3 2-TWAINドライバーのリストが受信された後、ドライバーの数のバイトがあり、その後、最初のドライバーの名前が付いた行のサイズがあり、その後に行自体が続き、サイズと行がサーバーから受信されたドライバーの数と同じ回数です

3.1.2.4 3-画像が受信され、その後、画像のサイズと画像自体が長くなります。

3.1.3サーバーの制御文字。

3.1.3.1 0-設定をリセットします。

3.1.3.2 1-グリーティング、次にクライアントバージョン番号付きの1バイト;バージョンがサーバーバージョンと一致しない場合、接続は閉じられます。

3.1.3.3 2-TWAINドライバーのリストの要求。このような要求を受信すると、サーバーはTWAINドライバーのリストをクライアントに送信します(このバージョンでは、この機能は使用できません)。

3.1.3.4 3-デフォルトのドライバーを選択します。

3.1.3.5 4-操作用のドライバーが受信され、その後に1バイトの行サイズがあり、次にドライバーの名前の行があります。

3.1.3.6 5-スキャンする画像のタイプ、1バイトの行のサイズ、その後に画像のタイプの行が続きます。

3.1.3.7 6-スキャンの開始、サーバーはスキャンを開始し、クライアントに画像を送信します。

3.1.3.8 7-ピクチャの解像度を設定します。その後、ピクチャの拡張子が2バイト(int)あります。



サーバー:



サーバーにはグラフィカルユーザーインターフェイスがありません。 サーバーはクライアントがバックグラウンドで接続するのを待ち、その後設定を受け入れ、これらの設定に関する回答を送信します。 次に、クライアントからのスキャン要求を待ちます。 クライアントはスキャン要求をすぐに送信することもできます。その場合、すべての設定がデフォルトになります。 スキャンコマンドを受信すると、サーバーはコマンドラインユーティリティを起動して、イメージをスキャンし、page001.jpgファイルまたは別の選択した形式で保存し、ネットワーク経由でクライアントコンピューターに転送します。



顧客:



画像

ユーザーは、クライアント設定の入力を求められます。 デフォルト設定が最初に入力されます。 [サーバー名またはIPアドレス]列に、スキャンサーバーが実行されているコンピューターの名前またはIPアドレスを入力します。

ドライバーを選択するための列で、ドライバーを選択するか、デフォルトのドライバーのままにすることができます。 (プログラムのこのバージョンでは、デフォルトのドライバーのみが使用可能です)。

次に、スキャナーから受信した画像の設定を選択できます。画像の解像度、形式、およびクライアントコンピューターに保存するパスです。 ファイルが存在する場合、ファイルを上書きするオプションも使用できます。

参加ボタンをクリックすると、クライアントはサーバーへの接続を試みます。接続が成功すると、スキャンおよび切断機能が利用可能になります

終了ボタンをクリックすると、スキャンクライアントプログラムが終了します。

テキストフィールドは、プログラムの進行状況に関する情報を表示することを目的としています。

テキストフィールドをクリアする[クリア]ボタン。

スキャンボタンをクリックすると、選択した設定とスキャンコマンドがサーバーに送信されます。 スキャンの終了時に、サーバーは応答を送信し、プログラムの右側に画像が表示されます。これは、サーバーからすでに受信した結果のインターフェースの画像です。



さて、実際にはこれをすべて含むアーカイブはをダウンロードすることです。

ソースコードは記事自体で説明し始めていませんでした、すべてはアーカイブにあります。

ご清聴ありがとうございました。



All Articles