private void UpdateWirelessModule(Instrument settings, WirelessModule installedModule) { if (!_instCtrlr.Driver.Definition.HasWirelessFeature) { return; } // only SafeCore and Ventis Pro supports changing wireless module settings/options if (settings.Type != DeviceType.SC && settings.Type != DeviceType.VPRO) { return; } // ensure a wireless module is installed and we have settings to apply before continuing if (installedModule == null || settings.WirelessModule == null) { return; } Log.Debug(string.Format("{0}.UpdateWirelessModule", Name)); WirelessModule moduleSettings = settings.WirelessModule; if (moduleSettings.TransmissionInterval != installedModule.TransmissionInterval) { LogUpdate("TransmissionInterval", moduleSettings.TransmissionInterval, installedModule.TransmissionInterval); _instCtrlr.Driver.setWirelessTransmissionInterval(moduleSettings.TransmissionInterval); installedModule.TransmissionInterval = moduleSettings.TransmissionInterval; } if (moduleSettings.EncryptionKey != installedModule.EncryptionKey) { #if DEBUG // don't show encryption keys in release builds LogUpdate("CustomEncryptionKey", moduleSettings.EncryptionKey, installedModule.EncryptionKey); #else LogUpdate("CustomEncryptionKey", string.Empty.PadRight(moduleSettings.EncryptionKey.Length, '*'), string.Empty.PadRight(installedModule.EncryptionKey.Length, '*')); #endif _instCtrlr.Driver.setWirelessCustomEncryptionKey(moduleSettings.EncryptionKey); installedModule.EncryptionKey = moduleSettings.EncryptionKey; } if (moduleSettings.MessageHops != installedModule.MessageHops) { LogUpdate("MessageHops", moduleSettings.MessageHops, installedModule.MessageHops); _instCtrlr.Driver.setWirelessMessageHops(moduleSettings.MessageHops); installedModule.MessageHops = moduleSettings.MessageHops; } if (moduleSettings.MaxPeers != installedModule.MaxPeers) { LogUpdate("MaxPeers", moduleSettings.MaxPeers, installedModule.MaxPeers); _instCtrlr.Driver.setWirelessMaximumPeers(moduleSettings.MaxPeers); installedModule.MaxPeers = moduleSettings.MaxPeers; } if (moduleSettings.PrimaryChannel != installedModule.PrimaryChannel) { LogUpdate("PrimaryChannel", moduleSettings.PrimaryChannel, installedModule.PrimaryChannel); _instCtrlr.Driver.setWirelessPrimaryChannel(moduleSettings.PrimaryChannel); installedModule.PrimaryChannel = moduleSettings.PrimaryChannel; } if (moduleSettings.SecondaryChannel != installedModule.SecondaryChannel) { LogUpdate("SecondaryChannel", moduleSettings.SecondaryChannel, installedModule.SecondaryChannel); _instCtrlr.Driver.setWirelessSecondaryChannel(moduleSettings.SecondaryChannel); installedModule.SecondaryChannel = moduleSettings.SecondaryChannel; } if (moduleSettings.ActiveChannelMask != installedModule.ActiveChannelMask) { LogUpdate("ActiveChannelMask", moduleSettings.ActiveChannelMask, installedModule.ActiveChannelMask); _instCtrlr.SetWirelessActiveChannelMask(moduleSettings.ActiveChannelMask); installedModule.ActiveChannelMask = moduleSettings.ActiveChannelMask; } if (moduleSettings.WirelessFeatureBits != installedModule.WirelessFeatureBits) { LogUpdate("WirelessFeatureBits", moduleSettings.WirelessFeatureBits, installedModule.WirelessFeatureBits); _instCtrlr.SetWirelessFeatureBits(moduleSettings.WirelessFeatureBits); installedModule.WirelessFeatureBits = moduleSettings.WirelessFeatureBits; } if (_instCtrlr.Driver.Definition.HasWirelessBindingTimeoutConfigFeature) { if (moduleSettings.WirelessBindingTimeout != installedModule.WirelessBindingTimeout) { LogUpdate("WirelessBindingTimeout", moduleSettings.WirelessBindingTimeout, installedModule.WirelessBindingTimeout); _instCtrlr.SetWirelessBindingTimeout(moduleSettings.WirelessBindingTimeout); installedModule.WirelessBindingTimeout = moduleSettings.WirelessBindingTimeout; } } if (_instCtrlr.Driver.Definition.HasWirelessListeningPostChannelMaskFeature) { if (moduleSettings.ListeningPostChannelMask != installedModule.ListeningPostChannelMask) { LogUpdate("ListeningPostChannelMask", moduleSettings.ListeningPostChannelMask, installedModule.ListeningPostChannelMask); _instCtrlr.SetWirelessListeningPostChannelMask(moduleSettings.ListeningPostChannelMask); installedModule.ListeningPostChannelMask = moduleSettings.ListeningPostChannelMask; } } // wireless module options installedModule.Options = _instCtrlr.SetWirelessModuleOptions(moduleSettings.Options); }