When executing a macro which sends equipment settings to more than one device, you might expect that the parameters are set in the same order they appear in the macro definition. In fact this is not the case, due to the parallel concept of the M&C software. The following example explains this issue:
#
# example macro definition
#
# switch off the carrier to avoid spurious transmissions
#
EIRP.on "OFF"
# turn the modulator to 8 MBit
#
# switch the carrier on again
#
EIRP.on "ON"
The example above which tries to clamp down the transmission while the modulator switches to another bit rate, definitely will not work as expected. The macro processor will send the settings in the order they appear to the M&C /VLC server. The latter receives the settings and passes them to the device drivers. Each device driver contains a buffer for the commands pending for execution. The driver for the EIRP setting and the modulator driver work in parallel. The driver for the TX-ON setting takes down the transmit power and immediately brings it up again. It does not wait until the modulator driver has finished the settings.
To overcome this problem, you should slow down the execution of the macro and insert %wait directives at the critical steps. Below the same example with programmed delays:
#
# example macro definition
#
# switch off the carrier to avoid spurious transmissions
#
EIRP.on "OFF"
# wait until the transmission is off
#
# turn the modulator to 8 MBit
#
# give the modulator 3 seconds to stabilize with the new bit rate
#
# switch the carrier on again
#
EIRP.on "ON"