(Page 23 of 29 in this chapter) Version
typedef struct
{
DWORD bus;
DWORD stream;
DWORD timeslot;
} SWI_TERMINUS;
Note: Refer to Section 2.2.3, MVIP-95 Switch Block Model for information about stream numbering when making duplex connections or QUAD connections.
#define SIMPLEX 0
#define DUPLEX 1
void myMakeConnection(SWIHD hd, SWI_TERMINUS input, SWI_TERMINUS output,
unsigned count, DWORD mode)
{
unsigned i;
DWORD duplex = 0;
SWI_TERMINUS *outputs, *inputs;
if (mode == DUPLEX)
duplex = 1;
inputs = (SWI_TERMINUS *)malloc(sizeof(SWI_TERMINUS)*count);
outputs = (SWI_TERMINUS *)malloc(sizeof(SWI_TERMINUS)*count);
for (i = 0; i < count; i++)
{
inputs[i].bus = input.bus;
inputs[i].stream = input.stream;
inputs[i].timeslot = input.timeslot + i;
outputs[i].bus = output.bus;
outputs[i].stream = output.stream;
outputs[i].timeslot = output.timeslot + i;
}
swiMakeConnection(hd, inputs, outputs, count);
if( duplex )
{
for (i = 0; i < count; i++)
{
inputs[i].stream = inputs[i].stream + 1;
outputs[i].stream = outputs[i].stream - 1;
}
swiMakeConnection(hd, outputs, inputs, count);
}
}
(Page 23 of 29 in this chapter) Version