[英]Writing to linux tty (/dev/) files in c#
我需要我的程序來執行Bash中的命令,如下所示:“ echo P1-12 = 175> / dev / servoblaster”。 如何在Linux上的Mono / C#中做到這一點? 我寫了下面的課:
public static class ServoBlasterPWM
{
private static FileStream devFile;
public static bool IsRunning
{
get;
private set;
}
public static bool Initialize()
{
try
{
devFile = File.Open("/dev/servoblaster", FileMode.Open);
}
catch (Exception e)
{
Log.Error("Error while setting up port for Servo Blaster: " + e.Message);
return false;
}
Log.Success("ServoBlaster is set up.");
IsRunning = true;
return true;
}
public static void SetPWMOutput(int pin, int valueSteps)
{
//byte[] bytes = Encoding.ASCII.GetBytes("P1-" + pin.ToString() + "=" + valueSteps.ToString());
byte[] bytes = Encoding.ASCII.GetBytes("P1-12=175");
devFile.Write(bytes, 0, bytes.Length);
devFile.Flush();
Console.WriteLine("Wrote to file");
}
public static void Shutdown()
{
devFile.Close();
IsRunning = false;
Log.Info("Servo Blaster has been shut down.");
}
}
此代碼無效。 我還嘗試了StreamWriter而不是FileStream,但是它崩潰了,並說了一個異常,說該流不支持查找。 我不知道該怎么做。 請幫忙。
嘗試通過以下方式將字符串替換為數組代碼:
byte[] bytes = ASCIIEncoding.UTF8.GetBytes("P1-12=175") ;
要么:
byte[] bytes = ASCIIEncoding.Default.GetBytes("P1-12=175") ;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.