我想在外部硬件上运行的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中?
答案 0 :(得分:1)
这是我的解决方案,因为它不能直接从matlab simulink块中工作:
#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); } }
答案 1 :(得分:0)
MATLAB system
函数不支持codegen。因此,如果您在MATLAB功能块中使用system
,它将不会生成代码,因此不会产生任何影响。
如果你想要问题中提到的东西,你应该创建一个新的块。