Silverlight4 を使用して RFID スキャナーのデータを読み取ろうとしています。Silverlight4 は、OOB モードでのクライアント COM ポートの読み取りと昇格されたアクセス許可の使用をサポートしているので、そうできることはわかっています。
RFID スキャナーは単純な win アプリでデータを読み取ると正常に動作しますが、Silverlight アプリで同じことをすると、Datareceived イベントが呼び出されたときに例外が発生します。なぜこれが起こるのかわかりません。以下は私が持っているコードです
PS: 以下のライブラリを使用して、Silverlight からシリアルポートにアクセスしています https://interopcom.codeplex.com/
private void button1_Click(object sender, RoutedEventArgs e)
{
if (Application.Current.IsRunningOutOfBrowser /*&& Application.Current.HasElevatedPermissions*/)
{
SerialPort sp1 = new SerialPort("COM7");
sp1.BaudRate = 9600;
sp1.Parity = Parity.None;
sp1.StopBits = StopBits.One;
sp1.DataBits = 8;
sp1.Handshake = Handshake.None;
sp1.DataReceived += new SerialDataReceivedEventHandler(sp1_DataReceived);
sp1.Open();
MessageBox.Show("opened");
}
}
private static void sp1_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
SerialPort sp2 = sender as SerialPort;
MessageBox.Show(sp2.ReadLine());
sp2.Close();
MessageBox.Show("closed");
}
