問題タブ [cdc]
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.
sql - テーブルを変更した後、CDCを再起動できません
すでに追跡されているテーブルのCDCにいくつかの列を追加する必要があります。私のアプローチは次のとおりです。
ただし、再追加後にジョブを再度実行すると、の主キー制約に違反しているというエラーが生成されCDC.lsn_time_mapping
ます。
助言がありますか?
ありがとう!
visual-c++ - 画像コントロールでピクセル値を見つけてグラフを描画する
タスクマネージャーに似たプロジェクトを作成していますが、
ここで、CPU 使用率を示すグラフを描きたいと思います。
私の問題は、vc ++でのペイントに関する知識がないことですが、最初にタスクマネージャーのようにグリッドを作成する必要があるというのが私の考えですが、ピクセル情報はありません。コントロール。
embedded - USB CDC デバイスのストール
古いシリアル ポートを報告する単純な仮想シリアル ポート デバイスを作成しています。この時点で、デバイスを列挙し、文字を送受信できるようになりました。
ホストからデバイスへのさまざまな数のバルクアウト送信の後、エンドポイントはあきらめてデータ転送を停止したように見えます。PC 側で書き込みエラーが発生し、USBlyzer トレースから判断すると、音楽がストール (USBD_STATUS_STALL_PID) で停止します。ただし、私のコードはそのエンドポイントで意図的に STALL 条件を発行することはなく、生成されたステータス フラグは決して設定されません。
リクエストの発行と STALL の間の経過時間が短い (<300 µs) ことを考えると、タイムアウトではなく、何らかの無効なレスポンスのように見えます。デバイス側では、バッファ内のデータと適切な DATA0/1 同期により、出力エンドポイントの準備が整いましたが、それ以上何も起こりません。
「大量の」データの送信を開始するまで、デバイスは長時間でも正常に動作しているように見えることに注意してください。私が知る限り、デバイスの列挙/構成も正常に完了したようです。ああ、バルクイン エンドポイントはこの後も問題なく動作し続けます。
記録のために、私は標準の Windows usbser.sys ドライバーと XMega128A4U µP を使用しています。また、複数の Windows Vista および 7 マシンで同じ動作が見られます。
私が間違っていること、または物事を絞り込むためにさらにどのようなテストを実行する可能性があるかについてのアイデアはありますか?
java - JavaとRXTXを使用してUSB CDCデバイスの接続/切断を検出
マシンに接続された USB CDC デバイスの有無にかかわらず実行できるアプリケーションがあります。このデバイスは、質問に対して特定の回答を返すようにプログラムされているため、どのシリアル ポートが接続されているかを検出できます。問題は、このチェックをいつ実行するかを知る必要があるということです。このチェックを何度も実行するスレッドを作成したくないので、「接続されたデバイス」イベントをリッスンする方法を知る必要があります。以前に検索したことがありますが、適切なキーワードを使用していないだけかもしれません。
Obs: Java 1.7 と RXTX ライブラリを使用しています。
serial-port - シリアルCOMポートはどのUSBクラスを使用しますか?
WindowのデバイスマネージャにCOMポートとして表示されるUSBデバイスとの通信を処理するUSBクラスの名前は何ですか?Linuxの場合(少なくともFedora17とUbuntu12.04の場合)、これらのポートはACM(Abstract Control Model、/ dev / ttyACM#)として表示されます。
歴史的に、シリアル通信は主にRS-232シリアルポートを介して行われていたことを理解していますが、現在は廃止されています。今日の標準は、HIDを使用してUSB経由で通信することだと思います。
ACMをグーグル検索すると、それがHIDの反対のUSB通信クラスであるCDC(通信デバイスクラス)の一部であることがわかります(つまり、USBデバイスはHIDまたはCDCを使用する場合があります)。このウィキペディアの記事は、CDC/ACMがUSBを介したRS-232通信をエミュレートする方法であることを明らかにしています。
この情報から、この形式のシリアル通信を「CDC」または「CDC / ACM」と呼ぶべきではありませんか?
c++ - SelectObjectが2回呼び出されるのはなぜですか?
MFCでコードを読みましたが、以下のコードと混同されました。
CDCが最初にデフォルトのフォントを選択するのに(CFont* pFont = pDC->SelectObject(CFont::FromHandle(hFont));
)、pFontを再度選択するのはなぜですか?
join - ETL でのテーブル結合を使用した変更データ キャプチャ
私の ETL プロセスでは、変更データ キャプチャ (CDC) を使用して、最後の抽出以降にソース テーブルで変更された行のみを検出しています。次に、この行に対してのみ変換を行います。問題は、たとえば、1 つのディメンションに結合したい 2 つのテーブルがあり、そのうちの 1 つだけが変更された場合です。たとえば、次のような国と町のテーブルがあります。
国:
町:
ここで、Towns テーブルに新しい行が追加されたとします。
Countries テーブルは変更されていないため、これらのテーブルの CDC には、Towns テーブルの行のみが表示されます。問題は、Countries と Towns の間で結合を行うと、Countries 変更セットに行がないため、結合によって空のセットが生じることです。
それを解決する方法はありますか?もちろん、3 つ以上のテーブルと結果結合を含む、より困難なケースがあるかもしれません。
sql-server - HOWTO: MSSQL CDC の "__$update_mask" フィールドを解釈する
「$update_mask」フィールドの操作方法が非常に困難だったため (パフォーマンス上の理由から fn_cdc_is_bit_set を呼び出したくありません)、C# コードを次に示します。
- updateMaskは、CDC の「fn_cdc_get_all_changes_[table]」クエリの「__$update_mask」フィールドの内容です。
- colOrdinalは、変更フラグを取得する列の序数です (この値を取得するには、「n_cdc_get_column_ordinal」を使用します)。
結果は " hasChanged " フラグです。フィールドが更新で変更された場合、true に設定されます。
これは SQL Server 2008 および 2012 では機能しますが、将来のリリースでは機能しない可能性があることに注意してください。
sql - sysadmin ロールでログイン アカウントを使用すると CDC が有効にならない
sysadmin 固定サーバー ロールのメンバーであるログイン アカウントを使用して、SQL2012 インスタンスの 1 つで CDC を有効にしようとすると、エラーが発生します。
Procedure sp_cdc_enable_db_internal
、
データベースで変更データ キャプチャが有効になっていることを示すメタデータを更新できませんでした。コマンド 'SetCDCTracked(Value = 1)' の実行中にエラーが発生しました WindowsNT グループ/ユーザーに関する情報を取得できませんでした"
問題のログイン アカウントは最初にデータベースを作成したため、この特定のデータベースの dbo ユーザーの下の「ログイン名:」に記載されています。
データベースでsp_changedbowner 'sa'を実行し、コマンドを再度実行してCDCを有効にすると、機能しました。何故ですか?
CDC を有効にするには、実際のデータベースの「db_owner」ロールのメンバーであるか、sysadmin ロールのメンバーである必要があると考えました。
誰かが私に説明するのを手伝ってもらえますか?
ありがとう。
linux - Linuxcdc_acmデバイス-予期しない文字がデバイスに送信されました
cdc_acmドライバーを使用して予期しない文字がUSBポートに送信されるのに問題があります。これをさらに厄介なものにしているのは、コードがUbuntu 12.04(3.2カーネル)では正常に実行されるが、Centos 6(3.6カーネル)では失敗する(この質問の主題)ことです。
USBデバイスはBluegigaBLED112BluetoothSmartドングルです。埋め込まれたマイクロコントローラーは、USBインターフェイスの予期しない入力でいつでもリセットされます。
テストコードはポートを開き、4バイト(helloメッセージ)を書き込み、応答を読み取ることを期待します。予期しない文字によってデバイスがリセットされ、ハブがデバイスをドロップして再列挙するため、読み取りが完了しません。
トラブルシューティングのために、これが私がしたことです:
- cdc_acmドライバーのソースコードをダウンロードしました。何が起こっているかを追跡するために、一連のprintkデバッグメッセージとstack_dumpsを追加しました。
- 「ストック」cdc_acmをrmmodし、インストルメントされたモジュールをinsmodしました。すべてのデバイスの列挙が機能し、適切なドライバーが接続されているなど。
- コードはUbuntu12.04/ Linux 3.2で動作するため、3.2 cdc_acmコードを取得し、そのモジュールをCentos 6 /Linux3.6プラットフォームでコンパイルしました。3.6モジュールの代わりにその3.2モジュールを使用しても、違いはありませんでした。3.6モジュールに戻しました。
- usbmonでデバッグファイルシステムをオンにし、USBトラフィックを監視しました。USBインターフェースで余分な文字が送信されていることがわかります。
- 何が起こっているかを監視するために、cdc_acmモジュールのprintkに加えて、usb monの出力(cat / sys / kernel / debug / usb / usbmon / 3u | logger)とテストアプリケーションの出力(cat / sys / kernel / debug / usb / usbmon / 3u | logger)をマージしました。 scan_example / dev / ttyACM0 | logger -s)なので、時間相関のあるデバッグトレイルの単一ストリームがあります。
- USBエンドポイントで送信される偽の文字はx5Ex40x5E x40 x5E x40 x5E x40 x41(ASCIIでは^ @ ^ @ ^ @ ^ @ A)であり、モデムの注意を引くための何らかの調査または試みのように見えます。アプリケーションのwrite()によって4つのhelloバイトがエンドポイントに送信された直後に送信されます。
cdc_acmデバイスはモデムであると想定されているため、cdc_acm.cのusb_device_id acm_ids []にこれを追加して、モデム制御をオフにしようとしました。
/li>再コンパイルしてinsmodし、syslogは、これが認識されたことを示しています(quirksは8です)が、機能に変更はありません。
NetowrkManagerもmodem-managerも実行されていませんが、どこかで何らかのモデム制御機能が実行されているのではないかと思います。どこにあるのかわかりません。
これが注釈付きのデバッグログです(MDVはcdc_acmに追加したprintkのプレフィックスです)
これがアプリケーションによって送信された4バイトです000000 01
...そしてこれらの追加の文字が予期せず表示されます5e405e 40 5e40...。
この時点で、自発的に切断されます。
切断時のスタックトレース