0

編集:ハードウェアの問題でした.....重複したデバイスまたはケーブルを入手すると、問題が解決したようです。

こんにちは、私は.NETCFのシリアルポートから大量のデータ(〜1MB)を読み取ろうとして髪を引っ張っています。

GPSデータのダンプを読み取っていますが、m_serial.Read(..)の呼び出しでTimeoutExceptionをランダムに受信しています。

シリアルポートには間違いなくデータストリーミングがあります。ダンプには数分かかります。タイムアウトが発生したら、シリアルケーブルを別のコンピューターに接続するだけで、データが安定してストリーミングされるのを確認できます。

私はこれをいくつかの異なる方法(SerialPort.Read、SerialPort.ReadLine、SerialPort.ReadExisting)で実装しようとしましたが、それらはすべて短時間(ランダムな量)で読み取られ、TimeoutExceptionで失敗します。

どんな助けでも大歓迎です、ありがとう!確かに利用可能なデータがあり、38400ボーでストリーミングしているときにタイムアウトが発生するため、基本的に途方に暮れています。

//m_serial is a SerialPort object, ReadTimeout set to 9000

                    string eoftest = "\r\n$PSRF206";
                    byte[] bEOFTest = ASCIIEncoding.ASCII.GetBytes(eoftest);

                    int bufferSize = 1024 * 16;
                    byte[] buffer = new byte[bufferSize];
                    int testingIndex = 0;

                    while (testingIndex < bEOFTest.Length)
                    {
                        int count = m_serial.Read(buffer, 0, bufferSize);

                        if (count > 0)
                        {
                            for (int i = 0; i < count; i++)
                            {
                                if (buffer[i] == bEOFTest[testingIndex])
                                {
                                    testingIndex++;
                                    if (testingIndex >= bEOFTest.Length)
                                        break;
                                }
                                else
                                    testingIndex = 0;
                            }

                            writer.Write(buffer, 0, count);
                        }
                  }

アップデート:

コードはMotorolaSymbolデバイスでは正常に実行されますが、使用しているintermecデバイスでは正常に実行されないことがわかりました。可能性としてそれを排除するためにすべてのハードウェアを交換しましたが、それでも機能しません。

どちらのデバイスもWindowsMo​​bile5.0です

4

2 に答える 2

0

提案として、 OpenNETCFシリアルポートライブラリをいつでも使用してみることができます。インターフェイスと互換性があり、デバイスマネージャーの呼び出しに至るまですべてのソースを使用できるため、エラーがスローされる理由を確認できます。

于 2009-06-16T14:59:12.700 に答える
0

素晴らしい....ハードウェアの問題のようです....他のデバイスを利用できるようになりましたが、正常に動作しています.....

于 2009-06-17T13:50:40.337 に答える