树莓派实践总和

1.树莓派开机启动net core程序

首先在建立一个.sh脚本文件,文件内容为需要启动的netcore程序,示例如下

chmod 777 /home/pi/Documents/HuiBo/publish/AutoStart
 
/home/pi/Documents/HuiBo/publish/AutoStart

在/home/pi/.config下创建一个文件夹autostart

mkdir /home/pi/.config/autostart

在该文件夹下创建一个以.desktop结尾的文件,文件名称可自定义,文件内容如下: 一定要在Terminal终端启动,不然不成功

复制代码
[Desktop Entry]
Name=autostart
Comment=My C Program
Exec=lxterminal --working-directory=/home/pi/ --command=./autostart.sh
Terminal=false
MultipleArgs=false
Type=Application
Categories=Application;Development;
StartupNotify=true
复制代码

重启系统完成   sudo  reboot

 

2.获取树莓派CPU的序列号

    private  OperateResult<string> GetId()
        {
            try
            {
                string[] tmp = File.ReadAllLines("/proc/cpuinfo", System.Text.Encoding.UTF8);
                for (int i = 0; i < tmp.Length; i++)
                {
                    if (tmp[i].StartsWith("Serial"))
                    {
                        return new OperateResult<string>()
                        {
                            IsSuccess = true,
                            Content = tmp[i].Substring(tmp[i].IndexOf(':') + 2)
                        };                    
                    }
                }
            }
            catch (Exception ex)
            {
                return new OperateResult<string>() {  IsSuccess = false, };
            }
            return new OperateResult<string>()  { IsSuccess = false, };
        }

代码本质是读取文件内容,cpu序列号就存在/proc/cpuinfo文件中

 

3.  net core 程序执行P处理指令

  比如你要实现利用C#程序去把树莓派关机,手动操作很简单,打开终端输入sudo poweroff。但是再C#程序里面调用,用下列方法:

  

  //执行关闭树莓派
  string cmd = "#!/bin/bash" + Environment.NewLine + "sudo poweroff";
  ExecCmd(cmd);


        /// <summary>
        /// 执行P处理指令
        /// </summary>
        /// <param name="cmd"></param>
        public void ExecCmd(string cmd)
        {
            string args = cmd.Replace("\"", "\\\"");
            System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo()
            {
                FileName = "/bin/bash",
                Arguments = $"-c \"{args}\"",
                RedirectStandardOutput = true,
                UseShellExecute = false,
                CreateNoWindow = false,
            };
            System.Diagnostics.Process.Start(startInfo);
        }

 



 

posted on 2020-03-31 15:50  风筝追风12  阅读(268)  评论(0编辑  收藏  举报

导航