Mike O Brien の HID ライブラリを使用してデジタル スケールに接続しています。デバイスが正常に開き、デバイスの取り付けと取り外しのメッセージが完全に表示されます。しかし、最初は OnReport を約 20
回しか実行しません OnReport で最初に約 20 回実行した後、USB ケーブルを取り外して再接続しない限り、二度と実行されません。
私のコードは以下です
if (scale.IsConnected)
{
scale.Inserted += DeviceAttachedHandler;
scale.Removed += DeviceRemovedHandler;
scale.MonitorDeviceEvents = true;
scale.ReadReport(OnReport);
MessageBox.Show("Hold Application Here");
スケールのイベント ハンドラー
private void DeviceAttachedHandler()
{
MessageBox.Show("Device attached.");
scale.ReadReport(OnReport);
}
private static void DeviceRemovedHandler()
{
MessageBox.Show("Device removed.");
}
private void OnReport(HidReport report)
{
if (!scale.IsConnected) { return; }
//var cardData = new Data(report.Data);
decimal weight = Convert.ToDecimal(report.Data[4]);// (Convert.ToDecimal(report.Data[4]) +
MessageBox.Show(weight.ToString());
//Convert.ToDecimal(report.Data[5]) * 256) / 100;
//Console.WriteLine(!cardData.Error ? Encoding.ASCII.GetString(cardData.CardData) : cardData.ErrorMessage);
//Console.WriteLine(report.Data);
scale.ReadReport(OnReport);
}