How to change the number of input/output-terminals based on mask parameter
12 ビュー (過去 30 日間)
古いコメントを表示
I’m now writing a custom driver for Simulink Real-time and have a question about how to change the number of input/output-terminals. I want to change the number of the terminals by setting the mask parameter “channel” like pre-installed drivers, e.g. MM-32 Diamond Analog Input or PCI-6621 National Instr. Analog Input.
I started to write the driver using “xpcdrivertool” and added initialization function (below) using these pre-installed drivers as examples.
function [maskdisplay] = init(channel)
maskdisplay = sprintf( 'disp(''Interface Baord'');' );
for i=1:length(channel)
maskdisplay = sprintf('%s port_label(''output'', %d, ''%d'');', maskdisplay, i, channel(i) );
end
In the mask editor of the driver block, I added ‘channel’ parameter and wrote an initialization command as follows.
[maskDisplay] = init(channel);
set_param(gcb, 'MaskDisplay', maskDisplay);
Also, I’m changing the number of terminals in the initialization function in C code as follows.
if (!ssSetNumOutputPorts(S, number_of_channels)) return;
for (i = 0; i < number_of_channels; i++) {
ssSetOutputPortWidth(S, i, 1);
}
However, the number of terminals does not change in the block diagram. Can someone please help me out?
0 件のコメント
採用された回答
Shruti Sapre
2015 年 9 月 2 日
Hi Teppei,
The following link could help you in resolving this issue:
The “xpcdrivertool” seems to be from MATLAB Central, so it might also help to contact the author directly.
Hope this helps!
-Shruti
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Author Block Masks についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!