2016-07-26 10 views
0

あなたが私を助けてくれることを願っています。私はMonoDevelopでRaspberry Piをコーディングしています。開始直後にプロセスが終了する

私はPythonスクリプトをC#で実行し、そこから読み込みたいと思っています。

class Program 
{ 
    public static void Main(string[] args) 
    { 
     Process p = new Process(); 
     p.OutputDataReceived += new DataReceivedEventHandler(OutputHandler); 
     p.StartInfo.FileName = "sudo"; 
     p.StartInfo.Arguments = "python gpio.py"; 
     p.StartInfo.UseShellExecute = false; 
     p.StartInfo.CreateNoWindow = true; 
     p.StartInfo.RedirectStandardOutput = true; 

     p.Start(); 
     p.BeginOutputReadLine(); 
     p.WaitForExit(); 
    } 

    private static void OutputHandler(Object sender, DataReceivedEventArgs args) 
    { 
     Console.WriteLine(args.Data); 
    } 
} 

は、デバッグの間、私は、プロセスは、プロセスがまだ実行されていることを、 Click for image

しかし、私が見ることができるタスクマネージャで から出たことがわかります。 また、スクリプトはgpioピンを制御します。また、「プロセスが終了した」場合でも、スクリプトはピン(Led on/off)を制御します。しかし、私はredirectOutputから何も得られません。

なぜプロセスは起動後すぐに終了するのですか(スクリプトには本当のことがありますが、停止してはいけません)?これはスクリプトを実行する正しい方法ですか?
端末からPythonスクリプトを実行すると、正常に動作します。スクリプトのエラーであってはなりません。 処理を開始すると、 FileName "libreoffice"、それも動作します。

スクリプトはプロジェクトフォルダの "/ bin/Debug /"(フォルダ)にあります 実行権限は誰にでも設定されています。 @Gusmanが言ったように

おかげで、
挨拶

+1

私はこの問題がsudoだと思うのですが、すでにsudo'edされているC#プログラムを実行して、ファイル名としてpythonを使用し、パラメータとしてgpio.pyを使用してください。しかし最終的には、gpioの使用を直接C#で制御するためにPythonを使用する代わりに、これを見てください:https://github.com/gusmanb/BCM2835Managed – Gusman

答えて

0

、問題がsudoはでした。そして、私は今、GPIOピンにアクセスするためにDLLを使用しています。ラズベリーパイが完全にサポートされていない場合でも。

関連する問題