Netduinoがあり、現在、加速度計のデータをシステムに出力しています。Diagnostics.Debug ウィンドウ。メールでUSB-> 232コンバーターを待って、シリアルポートを介してデバイスからアプリにデータを適切に取得しますが、簡単なテストの目的で、データを読み取ることができるかどうかを誰かが知っているかどうか疑問に思っていましたデバッグ ウィンドウをアプリに戻しますか?
編集 - 解決策: 私の解決策が必要な人のために、ここに投稿しています。私は当初、Nufの答えが「System.Diagnostics.Debugに書き込まれたデータはTraceListenerクラスでキャプチャできます。MSDNにはセットアップ方法の短いチュートリアルがあります。」しかし、リスナーは独自のアプリケーション内からのみデータを取得できることがわかりました。私は Netduino を使用していたため、デバッグ出力は別のプログラムからのものであり、トレース リスナーがそれを読み取ることができませんでした。そこで、出力ボックスのテキストを直接読み取る方法を見つけました。
MSDN のコードに基づく: プロジェクトへの 3 つの参照が必要です。これらは、.Net 参照タブ (EnvDTE、EnvDTE80、および拡張性) にあります。
using EnvDTE80;
using EnvDTE;
using Extensibility;
public static string ReadDebugBox()
{
EnvDTE80.DTE2 dte = (EnvDTE80.DTE2)System.Runtime.InteropServices.Marshal.GetActiveObject("VisualStudio.DTE.10.0");
string data = "";
OutputWindow ow = dte.ToolWindows.OutputWindow;
OutputWindowPane owP;
TextDocument owPTxtDoc;
EditPoint2 strtPt;
owP = ow.OutputWindowPanes.Item("Debug");
owP.Activate();
owPTxtDoc = owP.TextDocument;
strtPt = (EditPoint2)owPTxtDoc.StartPoint.CreateEditPoint();
return strtPt.GetText(owPTxtDoc.EndPoint);
}
public static void ClearDebugBox()
{
EnvDTE80.DTE2 dte = (EnvDTE80.DTE2)System.Runtime.InteropServices.Marshal.GetActiveObject("VisualStudio.DTE.10.0");
OutputWindow ow = dte.ToolWindows.OutputWindow;
OutputWindowPane owP;
TextDocument owPTxtDoc;
EditPoint2 strtPt;
owP = ow.OutputWindowPanes.Item("Debug");
owP.Activate();
owP.Clear();
}
もっと良い方法があるかもしれませんが、これは私にとってうまくいった方法の1つに過ぎないので、共有したいと思いました.