【问题标题】:System call from Simulink with external hardware (Raspberry PI)来自 Simulink 的系统调用与外部硬件 (Raspberry PI)
【发布时间】:2018-07-15 18:34:27
【问题描述】:

我想对在外部硬件上运行的 Matlab Simulink 模型进行系统调用。 在我的情况下,我想关闭原来的 Raspberry Pi Touch Display (7") 和一个。

我尝试使用带有 Matlab“系统”命令的 Matlab 函数,但它对显示没有任何影响(系统调用本身适用于终端)

function display_backlight(old_status)
coder.extrinsic('system')

if old_status == 1
    system('echo 1 | sudo tee /sys/class/backlight/rpi_backlight/bl_power')
else 
    system('echo 0 | sudo tee /sys/class/backlight/rpi_backlight/bl_power')
end    
end

任何想法如何使这项工作或我是否需要使用此处提到的另一个块System call from Simulink possible?(答案中的链接不起作用)

或者我什至必须用 C 语言编写它并将其集成到 Simulink 中?

【问题讨论】:

    标签: matlab terminal raspberry-pi system-calls simulink


    【解决方案1】:

    这是我的解决方案,因为它不能直接在 matlab simulink 块中工作:

    1. 添加“Matlab 系统”块
    2. 添加一个运行 .c/.h 代码的 .m 源文件。
    3. 添加一个从 c 运行系统命令的 .c/.h 文件。
    #include <display_backlight_on.h>
    
    char command[50];        
    
    void display_backlight_on_command(boolean_T turn_on)
    {  
        if (turn_on == 1)
        {
            strcpy( command, "echo 0 | sudo tee /sys/class/backlight/rpi_backlight/bl_power" );
            system(command);
        }
    }
    

    【讨论】:

      【解决方案2】:

      MATLAB system 函数不支持代码生成。所以如果你在 MATLAB 函数块中使用system,它不会生成代码,所以不会有任何效果。

      如果你想要问题中提到的东西,你应该创建一个新块。

      【讨论】:

        猜你喜欢
        • 2013-10-13
        • 1970-01-01
        • 1970-01-01
        • 2017-09-11
        • 2021-03-31
        • 1970-01-01
        • 1970-01-01
        • 2022-08-30
        • 1970-01-01
        相关资源
        最近更新 更多