Here is a script which configures a PIDController in MultiInstrument mode
from moku.instruments import MultiInstrument, PIDController
MIM = MultiInstrument(‘XXX.XXX.XXX.XXX’, force_connect=True, platform_id=4)
PID = MIM.set_instrument(1, PIDController)
connections = [dict(source=“Input1”, destination=“Slot1InA”),
dict(source=“Slot1OutA”, destination=“Output1”)]
MIM.set_connections(connections=connections)
PID.set_by_frequency(channel=1, prop_gain=-10, int_crossover=1e2,
diff_crossover=1e4, int_saturation=10,
diff_saturation=10)
PID.relinquish_ownership()
MIM.relinquish_ownership()
After the script is run, I connect to the Moku Pro using the iPad app. It tells me that Multi-Instrument is running, and when I open it shows me the PIDController instrument in slot 1 with the input and output configured as specified in the script.
However, when I look at the channel 1 controller it is set to the default, not the controller specified by the set_by_frequency() call. Is the filter changed when the iPad connects? When relinquish_ownership() is called? Is it possible to configure an instrument with the API in such a way that the settings persist when an iPad is connected?
I am interested in the reverse as well. Is it possible to configure an instrument with the iPad and then communicate with the instrument via API?