How to change the number of input/output-terminals based on mask parameter
10 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Teppei Tsujita
am 28 Aug. 2015
Kommentiert: Teppei Tsujita
am 18 Sep. 2015
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 Kommentare
Akzeptierte Antwort
Shruti Sapre
am 2 Sep. 2015
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
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Block and Blockset Authoring finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!