2009-08-27 24 views
3

私はMetro Technologiesのバーコードスキャナを持っており、Microsoft POS を使用してスキャナからの入力を検出しています。 USB ポートを使用して私のシステムに接続されています。しかし、スキャナはPOSによって識別されない。スキャナがMicrosoft POSによって認識されない

public Form1() 
{ 
InitializeComponent(); 
explorer = new PosExplorer(this); 
explorer.DeviceAddedEvent += new 
DeviceChangedEventHandler(explorer_DeviceAddedEvent); 
} 


void explorer_DeviceAddedEvent(object sender, DeviceChangedEventArgs e) 
{ 
if (e.Device.Type == "Scanner") 
{ 
scanner = (Scanner)explorer.CreateInstance(e.Device); 
scanner.Open(); 
scanner.Claim(1000); 
scanner.DeviceEnabled = true; 
scanner.DataEvent += new 
DataEventHandler(activeScanner_DataEvent); 
scanner.DataEventEnabled = true; 
scanner.DecodeData = true; 
} 
} 

void activeScanner_DataEvent(object sender, DataEventArgs e) 
{ 
UpdateEventHistory("Data Event"); 
ASCIIEncoding encoder = new ASCIIEncoding(); 
try 
{ 
// Display the ASCII encoded label text 
txtbScanDataLabel.Text = 
encoder.GetString(activeScanner.ScanDataLabel); 
// Display the encoding type 
txtbScanDataType.Text = activeScanner.ScanDataType.ToString(); 

// re-enable the data event for subsequent scans 
activeScanner.DataEventEnabled = true; 
} 
catch (PosControlException) 
{ 
// Log any errors 
UpdateEventHistory("DataEvent Operation Failed"); 
} 
} 
+1

私は「Microsoft POS」とは、その用語がオンラインであるときに通常意味するものを意味するものではないと仮定します。 :-) –

+0

私はPOSが販売のポイントを意味することを本当に望んでいます...そしてそうではありません... T.E.D.考えている。 –

答えて

0

私はあなたが使用しているスキャナに慣れていないんだけど、あなたは一般的にスキャナ自体が正しいモード/設定は/ etcに設定されていることを確認する前に、私が一緒に働いてきたことすべてを持ちます。通常、これはマニュアルに記載されている設定シーケンスを経て、デバイスをプログラムするさまざまなバーコードをスキャンします。

他に何もない場合は、コードとは対照的にハードウェア設定の問題を排除することができます。

explorer_DeviceAddedEventはこれまでに起動しますか?

scanneractiveScannerは初期化されていますか?

[EDIT]

はあなたのコードに次の行を追加してみてください、スキャナ自体またはハードウェアID(HID)のためにそれに付属のドキュメントを確認してください。 XML設定ファイルの

[HardwareId(@"this is where the HID goes")] 

それはあなたにそれ以上の...詳細はhereを参照を取得した場合、あなたはHIDを提供したり、その情報を追加することができます参照してください

+0

イベントexplorer_DeviceAddedEventが発生していません。したがって、スキャナーオブジェクトが作成されるコードには決して到達しません。 スキャナをMicrosoft POSと連携させるには、スキャナを特定の方法で設定する必要がありますか? – RRR

+0

コードの残りの部分を投稿してください、使用するステートメント – curtisk

+0

以下のコード全体を – RRR

0

ここでは、全体のコード

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 
using Microsoft.PointOfService; 
using System.Collections; 

namespace MicrosoftPOSScannerSample 
{ 
    public partial class Form1 : Form 
    { 
     private PosExplorer explorer; 
     private Scanner scanner; 

     public Form1() 
     { 
      InitializeComponent(); 
      explorer = new PosExplorer(this); 
      explorer.DeviceAddedEvent += new DeviceChangedEventHandler(explorer_DeviceAddedEvent); 
     } 

     private void Form1_Load(object sender, EventArgs e) 
     { 
     } 

     private void UpdateEventHistory(string newEvent) 
     { 
      txtbEventHistory.Text = newEvent + System.Environment.NewLine + txtbEventHistory.Text; 
     } 

     void explorer_DeviceAddedEvent(object sender, DeviceChangedEventArgs e) 
     { 
      if (e.Device.Type == "Scanner") 
      { 
       scanner = (Scanner)explorer.CreateInstance(e.Device); 
       scanner.Open(); 
       scanner.Claim(1000); 
       scanner.DeviceEnabled = true; 
       scanner.DataEvent += new DataEventHandler(scanner_DataEvent); 
       scanner.DataEventEnabled = true; 
       scanner.DecodeData = true; 
      } 
     } 

     void scanner_DataEvent(object sender, DataEventArgs e) 
     { 
      UpdateEventHistory("Data Event"); 
      ASCIIEncoding encoder = new ASCIIEncoding(); 
      try 
      { 
       // Display the ASCII encoded label text 
       txtbScanDataLabel.Text = encoder.GetString(scanner.ScanDataLabel); 
       // Display the encoding type 
       txtbScanDataType.Text = scanner.ScanDataType.ToString(); 

       // re-enable the data event for subsequent scans 
       scanner.DataEventEnabled = true; 
      } 
      catch (PosControlException) 
      { 
       // Log any errors 
       UpdateEventHistory("DataEvent Operation Failed"); 
      } 
     } 

    } 
} 
ですPOS SDKドキュメントのいくつかのフォーラムやからも
+0

に更新してください。 – curtisk

2

あなたは、ディレクトリ内のXMLファイルでこれを追加する必要があります。

C:\Program Files\Common Files\microsoft shared\Point Of Service\Control Configurations\ 


<PointOfServiceConfig Version="1.0"> 
<ServiceObject Type="Scanner" Name="Example scanner"> 
    <HardwareId From="HID\VID_04B4&amp;PID_0100&amp;REV_0001" To="HID\VID_04B4&amp;PID_0100&amp;REV_0001" /> 
</ServiceObject> 
</PointOfServiceConfig> 

あなたは、あなたのデバイスのハードウェアIDを確認し、これはプラグアンドプレイの設定です<HardwareId>タグ内

をそれを交換する必要があります。

+0

を試してみてください。 – Jamaxack

-1

私はここで設定する(Windows 7プラットフォーム)が見つかりました:

C:\ DocumentsとSettings \ All Usersの\アプリケーションデータ\マイクロソフト\ポイントサービスの\構成\ configuration.xmlの

関連する問題