問題タブ [opennetcf]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - イベントハンドラの問題
Windows Mobile で通話ログをインターセプトするためのイベント ハンドラーがあります。この問題は、Windows モバイルではなく、C# のイベント ハンドラーに固有のものです。初めてイベント ハンドラーをアタッチおよびデタッチできます。問題は次のとおりです。イベント ハンドラーを少なくとも 1 回切り離した後、イベント ハンドラーをアタッチできません。デタッチされて再度アタッチされた後、イベント ハンドラーが呼び出されないのはなぜですか?
以下は私のコードです:
編集: クラス レベル変数を含めるようにコードを更新しました。また、以下の回答は互いに矛盾しています。オブジェクトを破棄する場合、イベント ハンドラーをアタッチする必要があるときにオブジェクトを再作成する必要があります。これは理にかなっていますか?
編集 2: 問題は、オブジェクトやイベント処理コードにはありません。OpenNETCF の LargeIntervalTimer を使用しています。LargeIntervalTimer を使用してタイマーを実行していると、イベント ハンドラーが正しくアタッチされません。LargeIntervalTimer がなければ、すべて正常に動作します。
c# - OpenNETCF:無料で使用できますか?
すべてのOpenNETCFdllをダウンロードしました。無料なの?それとも、1年後に機能しなくなりますか?
c# - Windows CE 6.0 で opennetcf Ras を使用して永続的な RAS 接続を作成する
Windows ce 6 を搭載した PDA で GPRS 接続を作成する必要があります。通常は製造元の dll を使用して作成する必要がありますが、これを行うには ras を使用するとのことでした。それを使用する唯一の問題は、.net c# でプログラムし、ライブラリがアンマネージ コードであることです。
幸いなことに、Windows ras ライブラリに必要な pInvokes を既に実行している opennetcf ras ライブラリにたどり着きました。唯一の問題はドキュメントが貧弱であることです。
次に、Windows で必要な GPRS 接続を呼び出してセットアップするライブラリを作成しました。私は、次の定義を使用するポルトガルの通信事業者を使用しています。
gsm モジュールの定義を参照すると、次のモデム設定がありました。
そしてもちろん、追加の設定 (または私はそれを atCall と呼んでいます)
コントロールパネルを使用してそのプロファイルに接続すると、この設定が接続され、エラーなしですべてのWebサービスを呼び出すことができます。また、IP アドレス、サブネット マスク、さらにはデフォルト ゲートウェイを含む、デバイスの設定を示すモデムの追加プロファイルも表示されます。
問題は、作成したライブラリを使用して gprs 接続をプログラムで作成し、ある時点で Web サービスを呼び出すと、Web 例外がスローされることです。リモート名を解決できませんでした。私も確認しましたが、余分なアイコンは表示されませんが、GPRS ステータスを見ると接続されていると表示されます。
接続が存在するかどうかを作成、破棄、および照会するコードは次のとおりです。
}
質問を再開するのは、opennetcf ras ライブラリとの実行可能な接続を作成する方法です。
よろしくお願いします
c# - シリアル、RS422、C#、TxDone イベントが発生しない、データが受信されない
Windows CE 6.0 デバイスでのシリアル通信にOpenNETCF.IO.Serial (オープン ソース、こちらのシリアル コードを参照) を使用するアプリケーションを作成しています。このアプリケーションは、Compact Framework 2.0 の C# でコーディングされています。これから説明する問題がこれらの詳細に特に関連しているとは思いませんが、その点で間違っていることが証明される可能性があります.
私が抱えている問題は、デバイス自体が再起動されるまで、一見ランダムに (断続的な問題として、まだ確実に複製できないという意味で)、データの送信または受信に失敗することです。Windows CE デバイスは、まったく異なるアプリケーションを実行するシステムと通信します。この他のシステムを再起動し、通信ケーブルを切断/再接続しても、この問題は解決されないようで、Windows CE デバイスを再起動するだけです。
この問題が発生する唯一の兆候は、OpenNETCF の起動 (OpenNETCF.IO.Serial クラスで "TxDone();" を探します) からの TxDone イベントの欠如と、接続されているという事実を知っているときにデータが受信されないことです。システムがデータを送信しています。
当社のシリアル通信では、1 ~ 255 (0x01 ~ 0xFF) の任意の文字値を送受信できます。Null 値は破棄されます。
私のシリアル設定は、38400 ボー、8 データ ビット、パリティなし、1 ストップ ビット (38400、8n1) です。入力および出力バッファ サイズを 256 バイトに設定しました。メッセージは可変長であるため、DataReceived イベントは 1 つ以上の文字を受信するたびに発生し、出力バッファーに 1 つ以上のバイトがある場合に送信が発生します。
ハンドシェイクは使用されません。これは RS422 であるため、RX+、RX-、TX+、TX- の 4 つの信号のみが使用されています。
「DataReceived」イベントを受け取り、入力バッファーからすべてのデータを読み取り、コード内に独自のバッファーを作成して、DataReceived イベントの外で暇なときにそれを解析します。コマンド メッセージを受信すると、クイック確認メッセージを返信します。他のシステムは、Windows CE デバイスからコマンド メッセージを受信すると、クイック確認メッセージを返信します。確認メッセージは単純な「はい、了解しました」として意図されているため、それ以上の返信はありません。私のコードでは、複数のスレッドを介して送受信するため、lock キーワードを使用して、複数のスレッドで複数のメッセージを同時に送信しないようにしています。コードを再確認したところ、どのロックにもかかっていないことがわかりました。
この時点で、空でないときに入力バッファーから読み取って送信バッファーに書き込むのではなく、変数やプロパティを設定する必要があるかどうかなど、シリアル通信のしくみについて明らかな何かを継続的に見逃していないかどうか疑問に思っています。
洞察、チェックするオプション、提案、アイデアなどは大歓迎です。これは私が何ヶ月も自分で取り組んできたことです。ここで受け取った回答やコメントがこの問題の解決に役立つことを願っています. 前もって感謝します。
編集、2011 年 2 月 24 日:
(1) Windows CE デバイスが通信しているシステムの起動時にのみエラーを再現できるようであり、起動するたびに再現できるわけではありません。信号も調べましたが、コモンモード電圧は変動しますが、システムの起動時に発生するノイズの振幅は、問題が発生するかどうかとは関係ないようです。 -問題が再発したピークまで)。
問題はますますハードウェアに関連しているように聞こえますが、私が見ている症状の原因を突き止めようとしています。少なくとも私が到達できた場所では、実際にハードウェアが故障またはシャットダウンしているようには見えないためです。信号を測定します。申し訳ありませんが、ハードウェア部品の部品番号はお答えできませんので、使用されている部品についてはお尋ねにならないでください。
(2) @ctacke の提案に従って、保守性のためにすべての送信が同じ場所を通過するようにしました。私が入れたスレッドセーフは基本的に次のとおりです。
(3) 38400 ボーで約 300 ミリ秒の時間間隔で 10 バイト未満の送受信が行われたテストで、UART OVERRUN エラーが発生しました。エラーが発生すると、次のループ反復に進み、ReadFile を実行せず、TxDone イベント (またはその他の行チェック手順) を実行しません。また、ポートを閉じて再度開いても問題が解決しないだけでなく、デバイスがまだ実行されている間にソフトウェアを再起動しても何も起こりません。ハードウェアの再起動のみ。
私の DataReceived イベントは次のとおりです。
ただし、WriteFile 呼び出しがタイムアウトした直後に、テストで初めて UART OVERRUN エラーが発生し始めました。正直なところ、自分のコードが UART OVERRUN 状態を引き起こしていることがわかりません。
考え?ハードウェアまたはソフトウェア関連で、チェックできると思われるものはすべてチェックしています。
.net - ユーザーがWindowsCEでアプリケーションを実行できないようにする
Windows CE 5.0デバイスがあり、それらをロックダウンしたいと考えています。ユーザーに、デバイスにインストールされているアプリケーションの実行のみを許可します。このロックダウンモードをオフにできる方法があるのではないかと考えています。
たとえば、ユーザーがInternetExplorerやWindowsMediaPlayerなどを実行できないようにする必要があります。
おそらく、これを支援できるライブラリがいくつかありますか?Opennetcfライブラリをチェックアウトしましたが、方向性がわかりません。
助けてくれてありがとう
windows-mobile - LargeIntervalTimer を破棄するにはどうすればよいですか
特定の条件で特定の画面にいるときに、OpenNetCF の LargeIntervalTimer を使用してポーリングを実行しています。
タイマーを常に起動させたくないので、不要になったら破棄しようとしますが、UI スレッドで Dispose() を呼び出すか、Enabled を false に設定すると、アプリケーションがハングすることがよくあります。
タイマーの処理コードをタイマーのスレッドに移動しようとしました ( tick メソッドで呼び出すことにより)。
このタイマーで同様の問題を見た人はいますか? もしそうなら、どのように修正しましたか?
起動用コード:
シャットダウンのコード:
c# - Windows Mobile - インターネットの使用 C#
Windows モバイルでインターネット トラフィック (アップロードとダウンロードの両方) を監視する必要があります。Windows モバイル (C#) でインターネット データ トラフィックを監視するために使用できる API はありますか? プロジェクトで OpenNetCF を使用しています。OpenNetCF からの API も利用できます。
c# - OpenNetCF でプロジェクトをコンパイルするとエラーが発生しました
OpenNetCF の丸いボタンを使用する古いプロジェクトで作業する必要があります
すべての OpenNetCF dll をプロジェクトに参照します。
私には2つの問題があります:
フォームに丸いボタンが表示されない
コンパイルすると、次のエラーが表示されます。
タイプ 'MyControl.Controls.RoundPictureButton' が見つかりませんでした。この型を含むアセンブリが参照されていることを確認してください。このタイプが開発プロジェクトの一部である場合は、プロジェクトが正常にビルドされていることを確認してください。
c# - OpenNETCF を使用して特定の AccessPoint に再接続する
特定の WEP 対応ネットワークが利用可能になった場合に、そのネットワークに Windows Mobile CE 用のアプリケーションを再接続しようとしています。このコードは、現在利用可能なアクセス ポイントをスキャンして、必要なネットワークへの参照を取得していると思います。
昨日OpenNETCFライブラリを見つけたので、少し詳しく知りません。ネットワークACが利用可能かどうかをテストし、利用できる場合は接続するコードの例があるかどうかを尋ねたいと思います。
c# - Windows Mobile-USBを無効にする(コンパクトフレームワーク-C#)
WindowsMobileでUSBを無効にする必要があります。Compact Framework 2.0(C#)を使用してWindows MobileでUSBを無効にする方法は?私もOpenNETCFを使用しています。USBを無効にするクラスがあれば、私も使用できます。