/// <summary> /// searchForNew is used when panel has been detached => attached but not found again because there is no hook (new HID instance ID). /// So already found panels should be left as is. /// </summary> /// <param name="loadStreamDeck"></param> /// <param name="searchForNew"></param> public void Startup(bool loadStreamDeck) { try { foreach (var gamingPanelSkeleton in Common.GamingPanelSkeletons) { foreach (var hidDevice in HidDevices.Enumerate(gamingPanelSkeleton.VendorId, gamingPanelSkeleton.ProductId)) { if (hidDevice != null) { if (!loadStreamDeck && gamingPanelSkeleton.VendorId == (int)GamingPanelVendorEnum.Elgato) { continue; } var hidIinstance = hidDevice.DevicePath; if (!HIDDeviceAlreadyExists(hidIinstance)) { var hidSkeleton = new HIDSkeleton(gamingPanelSkeleton, hidIinstance); HIDSkeletons.Add(hidSkeleton); hidDevice.MonitorDeviceEvents = true; hidDevice.Inserted += hidSkeleton.HIDDeviceOnInserted; hidDevice.Removed += hidSkeleton.HIDDeviceOnRemoved; //Only Saitek needs this hid library, Stream Deck uses an other. But Stream Deck is added in order to have references. if (hidSkeleton.PanelInfo.VendorId == (int)GamingPanelVendorEnum.Saitek || hidSkeleton.PanelInfo.VendorId == (int)GamingPanelVendorEnum.MadCatz) { hidSkeleton.HIDReadDevice = hidDevice; hidSkeleton.HIDReadDevice.OpenDevice(DeviceMode.NonOverlapped, DeviceMode.NonOverlapped, ShareMode.ShareRead | ShareMode.ShareWrite); hidSkeleton.HIDReadDevice.MonitorDeviceEvents = true; hidSkeleton.HIDWriteDevice = hidDevice; hidSkeleton.HIDWriteDevice.OpenDevice(DeviceMode.NonOverlapped, DeviceMode.NonOverlapped, ShareMode.ShareRead | ShareMode.ShareWrite); hidSkeleton.HIDWriteDevice.MonitorDeviceEvents = true; } } } } } /*foreach (var hidSkeleton in HIDSkeletons) * { * if (hidSkeleton.IsAttached) * { * Debug.WriteLine(hidSkeleton.GamingPanelType + " " + hidSkeleton.HIDInstance); * } * }*/ Debug.WriteLine("*** HIDSkeleton count is " + HIDSkeletons.Count); //Broadcast that this panel was found. HIDSkeletons.FindAll(o => o.IsAttached).ToList().ForEach(o => AppEventHandler.PanelEvent(this, o.HIDInstance, o, PanelEventType.Found)); //Broadcast that panel search is over and all panels have been found that exists. AppEventHandler.PanelEvent(this, null, null, PanelEventType.AllPanelsFound); } catch (Exception ex) { Common.ShowErrorMessageBox(ex); } }
public override void ImportSettings(GenericPanelBinding genericPanelBinding) { ClearSettings(); BindingHash = genericPanelBinding.BindingHash; var settings = genericPanelBinding.Settings; foreach (var setting in settings) { if (!setting.StartsWith("#") && setting.Length > 2) { if (setting.StartsWith(DCSBIOSBrightnessBinding.Keyword)) { _dcsBiosBrightnessBinding = new DCSBIOSBrightnessBinding(); _dcsBiosBrightnessBinding.ImportSettings(setting); HandleBrightnessBinding(); } else { var colorOutput = new DcsOutputAndColorBindingBIP(); colorOutput.ImportSettings(setting); _listColorOutputBinding.Add(colorOutput); } } } AppEventHandler.SettingsApplied(this, HIDSkeletonBase.HIDInstance, TypeOfPanel); }
public BackLitPanelUserControl(TabItem parentTabItem, HIDSkeleton hidSkeleton) { InitializeComponent(); ParentTabItem = parentTabItem; _backlitPanelBIP = new BacklitPanelBIP(Settings.Default.BIPLedStrength, hidSkeleton); AppEventHandler.AttachGamingPanelListener(this); AppEventHandler.AttachLEDLightListener(this); }
public TPMPanelUserControl(HIDSkeleton hidSkeleton, TabItem parentTabItem) { InitializeComponent(); ParentTabItem = parentTabItem; _tpmPanel = new TPMPanel(hidSkeleton); AppEventHandler.AttachGamingPanelListener(this); }
public MultiPanelUserControl(HIDSkeleton hidSkeleton, TabItem parentTabItem) { InitializeComponent(); ParentTabItem = parentTabItem; _multiPanelPZ70 = new MultiPanelPZ70(hidSkeleton); AppEventHandler.AttachGamingPanelListener(this); HideAllImages(); }
public SwitchPanelPZ55UserControl(HIDSkeleton hidSkeleton, TabItem parentTabItem) { InitializeComponent(); ParentTabItem = parentTabItem; _switchPanelPZ55 = new SwitchPanelPZ55(hidSkeleton); AppEventHandler.AttachGamingPanelListener(this); AppEventHandler.AttachLEDLightListener(this); }
public FarmingPanelUserControl(HIDSkeleton hidSkeleton, TabItem parentTabItem) { InitializeComponent(); ParentTabItem = parentTabItem; _farmingSidePanel = new FarmingSidePanel(hidSkeleton); AppEventHandler.AttachGamingPanelListener(this); HideAllImages(); }
private void CheckBoxDisableKeyboardAPI_OnUnchecked(object sender, RoutedEventArgs e) { try { AppEventHandler.ForwardKeyPressEvent(this, true); GeneralDirty(sender, e); } catch (Exception ex) { Common.ShowErrorMessageBox(ex); } }
public StreamDeckUserControl(GamingPanelEnum panelType, HIDSkeleton hidSkeleton, TabItem parentTabItem) { InitializeComponent(); ParentTabItem = parentTabItem; _streamDeckPanel = new StreamDeckPanel(panelType, hidSkeleton); UCStreamDeckButtonAction.SetStreamDeckPanel(_streamDeckPanel); UCStreamDeckButtonFace.SetStreamDeckPanel(_streamDeckPanel); StackPanelButtonUI.Children.Clear(); switch (panelType) { case GamingPanelEnum.StreamDeckMini: { var child = new UserControlStreamDeckUIMini(_streamDeckPanel); _uiButtonGrid = child; StackPanelButtonUI.Children.Add(child); break; } case GamingPanelEnum.StreamDeck: case GamingPanelEnum.StreamDeckV2: case GamingPanelEnum.StreamDeckMK2: { var child = new UserControlStreamDeckUINormal(_streamDeckPanel); _uiButtonGrid = child; StackPanelButtonUI.Children.Add(child); break; } case GamingPanelEnum.StreamDeckXL: { var child = new UserControlStreamDeckUIXL(_streamDeckPanel); _uiButtonGrid = child; StackPanelButtonUI.Children.Add(child); break; } } SDEventHandler.AttachStreamDeckListener(UCStreamDeckButtonAction); SDEventHandler.AttachStreamDeckListener(UCStreamDeckButtonFace); SDEventHandler.AttachStreamDeckListener(_uiButtonGrid); SDEventHandler.AttachStreamDeckConfigListener(_uiButtonGrid); SDEventHandler.AttachStreamDeckListener(this); SDEventHandler.AttachActionTypeChangedListener(UCStreamDeckButtonFace); AppEventHandler.AttachGamingPanelListener(this); UCStreamDeckButtonFace.SetStreamDeckPanel(_streamDeckPanel); UCStreamDeckButtonAction.SetStreamDeckPanel(_streamDeckPanel); }
public RadioPanelPZ69UserControlBf109(HIDSkeleton hidSkeleton, TabItem parentTabItem) { InitializeComponent(); ParentTabItem = parentTabItem; HideAllImages(); _radioPanelPZ69 = new RadioPanelPZ69Bf109(hidSkeleton) { FrequencyKnobSensitivity = Settings.Default.RadioFrequencyKnobSensitivity }; AppEventHandler.AttachGamingPanelListener(this); }
public RadioPanelPZ69UserControlAV8BNA(HIDSkeleton hidSkeleton, TabItem parentTabItem) { InitializeComponent(); ParentTabItem = parentTabItem; HideAllImages(); _radioPanelPZ69 = new RadioPanelPZ69AV8BNA(hidSkeleton) { FrequencyKnobSensitivity = -1//doesn't work with 0 value Settings.Default.RadioFrequencyKnobSensitivity; }; AppEventHandler.AttachGamingPanelListener(this); }
public void Event_MultiPanel_SettingsModified_Proper_Attachment() { var gamingPanelSkeleton = new GamingPanelSkeleton(GamingPanelVendorEnum.Saitek, GamingPanelEnum.PZ70MultiPanel); var multiPanelPZ70 = new MultiPanelPZ70(new HIDSkeleton(gamingPanelSkeleton, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA")); //MultiPanel Assert.True(BIOSEventHandler.OnDcsDataAddressValueEventSubscribed()); Assert.True(AppEventHandler.OnForwardPanelEventChangedSubscribed()); //GamingPanel Assert.True(AppEventHandler.OnProfileEventSubscribed()); Assert.True(AppEventHandler.OnSavePanelSettingsSubscribed()); Assert.True(AppEventHandler.OnSavePanelSettingsJSONSubscribed()); }
public static void SendBinding(HIDSkeleton hidSkeleton) { lock (_genericBindingsLock) { foreach (var genericPanelBinding in _genericBindings) { if (genericPanelBinding.Match(hidSkeleton)) { genericPanelBinding.InUse = true; AppEventHandler.ProfileEvent(null, ProfileEventEnum.ProfileSettings, genericPanelBinding, DCSFPProfile.SelectedProfile); } } } }
// Protected implementation of Dispose pattern. protected override void Dispose(bool disposing) { if (!_disposed) { if (disposing) { _radioPanelPZ69.Dispose(); AppEventHandler.DetachGamingPanelListener(this); } _disposed = true; } // Call base class implementation. base.Dispose(disposing); }
// Protected implementation of Dispose pattern. protected override void Dispose(bool disposing) { if (!_disposed) { if (disposing) { _backlitPanelBIP.Dispose(); AppEventHandler.DetachGamingPanelListener(this); AppEventHandler.DetachLEDLightListener(this); } _disposed = true; } // Call base class implementation. base.Dispose(disposing); }
public static void SendBinding(string hidInstance) { lock (_genericBindingsLock) { var hardwareFound = HIDHandler.GetInstance().HIDSkeletons .Any(o => o.IsAttached && o.HIDInstance.Equals(hidInstance)); foreach (var genericPanelBinding in _genericBindings) { if (genericPanelBinding.HIDInstance.Equals(hidInstance) && genericPanelBinding.InUse == false && hardwareFound) { genericPanelBinding.InUse = true; AppEventHandler.ProfileEvent(null, ProfileEventEnum.ProfileSettings, genericPanelBinding, DCSFPProfile.SelectedProfile); } } } }
private void OnReport(HidReport report) { if (TypeOfPanel == GamingPanelEnum.TPM && report.Data.Length == 5) { Array.Copy(NewSaitekPanelValueTPM, OldSaitekPanelValueTPM, 5); Array.Copy(report.Data, NewSaitekPanelValueTPM, 5); var hashSet = GetHashSetOfChangedKnobs(OldSaitekPanelValueTPM, NewSaitekPanelValueTPM); if (hashSet.Count > 0) { GamingPanelKnobChanged(!FirstReportHasBeenRead, hashSet); AppEventHandler.SwitchesChanged(this, HIDSkeletonBase.HIDInstance, TypeOfPanel, hashSet); } FirstReportHasBeenRead = true; } else if (report.Data.Length == 3) { Array.Copy(NewSaitekPanelValue, OldSaitekPanelValue, 3); Array.Copy(report.Data, NewSaitekPanelValue, 3); var hashSet = GetHashSetOfChangedKnobs(OldSaitekPanelValue, NewSaitekPanelValue); if (hashSet.Count > 0) { GamingPanelKnobChanged(!FirstReportHasBeenRead, hashSet); AppEventHandler.SwitchesChanged(this, HIDSkeletonBase.HIDInstance, TypeOfPanel, hashSet); } FirstReportHasBeenRead = true; } else if (report.Data.Length == 27) { Array.Copy(NewPanelValueFarmingPanel, OldPanelValueFarmingPanel, 27); Array.Copy(report.Data, NewPanelValueFarmingPanel, 27); var hashSet = GetHashSetOfChangedKnobs(OldPanelValueFarmingPanel, NewPanelValueFarmingPanel); if (hashSet.Count > 0) { GamingPanelKnobChanged(!FirstReportHasBeenRead, hashSet); AppEventHandler.SwitchesChanged(this, HIDSkeletonBase.HIDInstance, TypeOfPanel, hashSet); } FirstReportHasBeenRead = true; } StartListeningForHidPanelChanges(); }
public override void ImportSettings(GenericPanelBinding genericPanelBinding) { ClearSettings(); BindingHash = genericPanelBinding.BindingHash; var settings = genericPanelBinding.Settings; foreach (var setting in settings) { if (!setting.StartsWith("#") && setting.Length > 2) { if (setting.StartsWith("TPMPanelSwitch{")) { var keyBinding = new KeyBindingTPM(); keyBinding.ImportSettings(setting); _keyBindings.Add(keyBinding); } else if (setting.StartsWith("TPMPanelOSCommand")) { var operatingSystemCommand = new OSCommandBindingTPM(); operatingSystemCommand.ImportSettings(setting); _operatingSystemCommandBindings.Add(operatingSystemCommand); } else if (setting.StartsWith("TPMPanelDCSBIOSControl{")) { var dcsBIOSBindingTPM = new DCSBIOSActionBindingTPM(); dcsBIOSBindingTPM.ImportSettings(setting); _dcsBiosBindings.Add(dcsBIOSBindingTPM); } else if (setting.StartsWith("TPMPanelBipLink{")) { var tmpBipLink = new BIPLinkTPM(); tmpBipLink.ImportSettings(setting); _bipLinks.Add(tmpBipLink); } } } _keyBindings = KeyBindingTPM.SetNegators(_keyBindings); AppEventHandler.SettingsApplied(this, HIDSkeletonBase.HIDInstance, TypeOfPanel); }
public override void ImportSettings(GenericPanelBinding genericPanelBinding) { ClearSettings(); BindingHash = genericPanelBinding.BindingHash; var settings = genericPanelBinding.Settings; foreach (var setting in settings) { if (!setting.StartsWith("#") && setting.Length > 2) { if (setting.StartsWith("RadioPanelKey{")) { var keyBinding = new KeyBindingPZ69(); keyBinding.ImportSettings(setting); _keyBindings.Add(keyBinding); } else if (setting.StartsWith("RadioPanelOSPZ69")) { var operatingSystemCommand = new OSCommandBindingPZ69Emulator(); operatingSystemCommand.ImportSettings(setting); _operatingSystemCommandBindings.Add(operatingSystemCommand); } else if (setting.StartsWith("PZ69DisplayValue{")) { var radioPanelPZ69DisplayValue = new RadioPanelPZ69DisplayValue(); radioPanelPZ69DisplayValue.ImportSettings(setting); _displayValues.Add(radioPanelPZ69DisplayValue); } else if (setting.StartsWith("RadioPanelBIPLink{")) { var bipLinkPZ69 = new BIPLinkPZ69(); bipLinkPZ69.ImportSettings(setting); _bipLinks.Add(bipLinkPZ69); } } } _keyBindings = KeyBindingPZ69.SetNegators(_keyBindings); AppEventHandler.SettingsApplied(this, HIDSkeletonBase.HIDInstance, TypeOfPanel); }
public void Event_StreamDeck_OnDirtyConfigurations_Proper_Attachment() { var gamingPanelSkeleton = new GamingPanelSkeleton(GamingPanelVendorEnum.Saitek, GamingPanelEnum.PZ70MultiPanel); var streamDeckPanel = new StreamDeckPanel(GamingPanelEnum.StreamDeck, new HIDSkeleton(gamingPanelSkeleton, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"), true); //GamingPanel Assert.True(AppEventHandler.OnProfileEventSubscribed()); Assert.True(AppEventHandler.OnSavePanelSettingsSubscribed()); Assert.True(AppEventHandler.OnSavePanelSettingsJSONSubscribed()); //StreamDeckPanel Assert.True(SDEventHandler.OnStreamDeckSyncConfigurationEventSubscribed()); Assert.True(SDEventHandler.OnDirtyConfigurationsEventHandlerEventSubscribed()); Assert.True(SDEventHandler.OnDirtyNotificationEventHandlerSubscribed()); Assert.True(SDEventHandler.OnStreamDeckShowNewLayerEventSubscribed()); Assert.True(SDEventHandler.OnRemoteStreamDeckShowNewLayerEventSubscribed()); Assert.True(SDEventHandler.OnStreamDeckSelectedButtonChangedEventSubscribed()); Assert.True(SDEventHandler.OnStreamDeckClearSettingsEventSubscribed()); }
// Protected implementation of Dispose pattern. protected override void Dispose(bool disposing) { if (!_disposed) { if (disposing) { StackPanelButtonUI.Children.Clear(); SDEventHandler.DetachStreamDeckListener(UCStreamDeckButtonAction); SDEventHandler.DetachStreamDeckListener(UCStreamDeckButtonFace); SDEventHandler.DetachStreamDeckListener(_uiButtonGrid); SDEventHandler.DetachStreamDeckConfigListener(_uiButtonGrid); SDEventHandler.DetachStreamDeckListener(this); SDEventHandler.DetachActionTypeChangedListener(UCStreamDeckButtonFace); AppEventHandler.DetachGamingPanelListener(this); _streamDeckPanel.Dispose(); } _disposed = true; } // Call base class implementation. base.Dispose(disposing); }
public override void ImportSettings(GenericPanelBinding genericPanelBinding) { ClearSettings(); BindingHash = genericPanelBinding.BindingHash; var settings = genericPanelBinding.Settings; foreach (var setting in settings) { if (!setting.StartsWith("#") && setting.Length > 2) { if (setting.StartsWith("SwitchPanelKey{")) { var keyBinding = new KeyBindingPZ55(); keyBinding.ImportSettings(setting); _keyBindings.Add(keyBinding); } else if (setting.StartsWith("SwitchPanelOSPZ55")) { var operatingSystemCommand = new OSCommandBindingPZ55(); operatingSystemCommand.ImportSettings(setting); _operatingSystemCommandBindings.Add(operatingSystemCommand); } else if (setting.StartsWith("SwitchPanelLed")) { var colorOutput = new DcsOutputAndColorBindingPZ55(); colorOutput.ImportSettings(setting); _listColorOutputBinding.Add(colorOutput); } else if (setting.StartsWith("SwitchPanelDCSBIOSControl{")) { var dcsBIOSBindingPZ55 = new DCSBIOSActionBindingPZ55(); dcsBIOSBindingPZ55.ImportSettings(setting); _dcsBiosBindings.Add(dcsBIOSBindingPZ55); } else if (setting.StartsWith("SwitchPanelBIPLink{")) { var bipLinkPZ55 = new BIPLinkPZ55(); bipLinkPZ55.ImportSettings(setting); _bipLinks.Add(bipLinkPZ55); } else if (setting.StartsWith("ManualLandingGearLEDs{")) { _manualLandingGearLeds = setting.Contains("True"); } else if (setting.StartsWith("ManualLandingGearLedsColorDown{")) { _manualLandingGearLedsColorDown = GetSettingPanelLEDColor(setting); } else if (setting.StartsWith("ManualLandingGearLedsColorUp{")) { _manualLandingGearLedsColorUp = GetSettingPanelLEDColor(setting); } else if (setting.StartsWith("ManualLandingGearLedsColorTrans{")) { _manualLandingGearLedsColorTrans = GetSettingPanelLEDColor(setting); } else if (setting.StartsWith("ManualLandingGearTransTimeSeconds{")) { _manualLandingGearTransTimeSeconds = Convert.ToInt16(GetValueFromSetting(setting)); } } } AppEventHandler.SettingsApplied(this, HIDSkeletonBase.HIDInstance, TypeOfPanel); _keyBindings = KeyBindingPZ55.SetNegators(_keyBindings); }
/// <summary> /// Adds the shop event. /// </summary> /// <param name = "objectType">Type of the object.</param> /// <param name = "addEvent">The add event.</param> public void RegisterHandler(Type objectType, AppEventHandler addEvent) { if (!_events.ContainsKey(objectType)) { _events[objectType] = new List<Delegate>(); } _events[objectType].Add(addEvent); }
internal static IWindsorContainer BuildContainer() { string assemblyName; Func <SAPbobsCOM.Company>[] companyFactory = (customCompanyFactory == null) ? new Func <SAPbobsCOM.Company>[] { SAPServiceFactory.CompanyFactory } : customCompanyFactory; Container = new WindsorContainer(); Container.Kernel.Resolver.AddSubResolver(new ArrayResolver(Container.Kernel)); // proxy for forms. Container.Register(Component.For <IInterceptor>().ImplementedBy <FormProxy>().Named("formProxy")); // proxy for FormEvents Container.Register(Component.For <IInterceptor>().ImplementedBy <EventProxy>().Named("eventProxy")); // proxy for Transactions Container.Register(Component.For <IInterceptor>().ImplementedBy <TransactionProxy>().Named("transactionProxy")); // forms are Transient. Container.Register(Classes.FromThisAssembly().IncludeNonPublicTypes().InNamespace("Dover.Framework.Form") .WithService.DefaultInterfaces().LifestyleTransient()); // SAP App Facttory. Container.Register(Component.For <SAPbouiCOM.Application>().UsingFactoryMethod(SAPServiceFactory.ApplicationFactory)); // company factory (use default, that initializes DI API from App if none was provided). for (int i = 0; i < companyFactory.Length; i++) { Container.Register(Component.For <SAPbobsCOM.Company>().UsingFactoryMethod(companyFactory[i]).Named("company" + i)); } for (int i = 0; i < companyFactory.Length; i++) { Container.Register(Component.For <BusinessOneDAO>().ImplementedBy <BusinessOneDAOSQLImpl>() .DependsOn(Dependency.OnComponent(typeof(SAPbobsCOM.Company), "company" + i)).Named("b1dao" + i)); } string runningFolder = Path.GetDirectoryName(AppDomain.CurrentDomain.BaseDirectory); // AddinManager registration. If I'm an AddIn, get addinManager from AppDomain, so // both (addin AppDomain and inception AppDomain) references the same implementation. AddinManager addinManager = (AddinManager)AppDomain.CurrentDomain.GetData("frameworkManager"); if (addinManager != null) { addinManagerSponsor = new Sponsor <AddinManager>(addinManager); Container.Register(Component.For <AddinManager>().Instance(addinManager)); } AppEventHandler appEventHandler = (AppEventHandler)AppDomain.CurrentDomain.GetData("appHandler"); if (appEventHandler != null) { appEventHandlerSponsor = new Sponsor <AppEventHandler>(appEventHandler); Container.Register(Component.For <AppEventHandler>().Instance(appEventHandler)); } // Service registration, they are singleton. Container.Register(Classes.FromThisAssembly().IncludeNonPublicTypes().InNamespace("Dover.Framework.Service") .WithService.DefaultInterfaces().LifestyleSingleton()); // DAO registration. Abstract classes, they're singleton. Container.Register(Component.For <BusinessOneUIDAO>().ImplementedBy <BusinessOneUIDAOImpl>()); Container.Register(Component.For <AssemblyDAO>().ImplementedBy <AssemblyDAOImpl>()); Container.Register(Component.For <PermissionDAO>().ImplementedBy <PermissionDAOSQLImpl>()); // Core and MicroCore Container.Register(Component.For <MicroCore>().LifestyleSingleton()); Container.Register(Component.For <MicroBoot>().LifestyleSingleton()); Container.Register(Component.For <Boot>().LifestyleSingleton()); assemblyName = Assembly.GetEntryAssembly() == null ? (string)AppDomain.CurrentDomain.GetData("assemblyName") : Assembly.GetEntryAssembly().GetName().Name; if (assemblyName == "Framework") { #if DEBUG CheckProxy(Assembly.Load(assemblyName)); // if passed on debug tests, we do not need this on production. #endif assemblyName = "Dover"; // Framework should be threated the same as Dover. } if (!File.Exists(assemblyName + ".config")) { assemblyName = "DoverTemp"; // Temp AppDomain logging. } Container.AddFacility <LoggingFacility>(f => f.UseLog4Net(assemblyName + ".config")); var logger = Container.Resolve <ILogger>(); logger.Debug(DebugString.Format(Messages.StartupFolder, runningFolder)); SAPServiceFactory.Logger = logger; var b1dao = Container.Resolve <BusinessOneDAO>(); SAPAppender.B1DAO = b1dao; return(Container); }
internal static extern bool SetConsoleCtrlHandler(AppEventHandler handler, bool add);
public MenuConfiguration(BusinessOneDAO b1DAO, AppEventHandler appEvent) { this.b1DAO = b1DAO; this.appEvent = appEvent; }
public void SetLED(BIPLedPositionEnum bipLedPositionEnum, PanelLEDColor panelLEDColor) { try { var row = GetRow(bipLedPositionEnum); var index = GetIndex(bipLedPositionEnum); byte[] array = { 0x0 }; byte mask = 0; switch (row) { case 1: { array = _upperRowBytes; break; } case 2: { array = _middleRowBytes; break; } case 3: { array = _lowerRowBytes; break; } } switch (index) { case 1: { mask = _1BIPMask; break; } case 2: { mask = _2BIPMask; break; } case 3: { mask = _3BIPMask; break; } case 4: { mask = _4BIPMask; break; } case 5: { mask = _5BIPMask; break; } case 6: { mask = _6BIPMask; break; } case 7: { mask = _7BIPMask; break; } case 8: { mask = _8BIPMask; break; } } switch (panelLEDColor) { case PanelLEDColor.DARK: { // Set all to 0 array[0] = (array[0] &= (byte)~mask); array[1] = (array[1] &= (byte)~mask); break; } case PanelLEDColor.GREEN: { // Set first byte's bit to 1 array[0] = array[0] |= mask; array[1] = (array[1] &= (byte)~mask); break; } case PanelLEDColor.YELLOW: { // Set both byte's bit to 1 array[0] = array[0] |= mask; array[1] = array[1] |= mask; break; } case PanelLEDColor.RED: { // Set second byte's bit to 1 array[0] = (array[0] &= (byte)~mask); array[1] = array[1] |= mask; break; } } /* * 01000000 2nd BIP from left GREEN * 00000000 * * 01000000 2nd BIP from left YELLOW * 01000000 * * 00000000 2nd BIP from left RED * 01000000 * * 00000000 2nd BIP from left DARK * 00000000 * */ // _upperRowBytes = { (byte)0x0, (byte)0x0 }; //byte 1 & 4 // _middleRowBytes = { (byte)0x0, (byte)0x0 };//byte 2 & 5 // _lowerRowBytes = { (byte)0x0, (byte)0x0 }; //byte 3 & 6 var finalArray = new byte[7]; finalArray[0] = 0xb8; finalArray[1] = _upperRowBytes[0]; finalArray[2] = _middleRowBytes[0]; finalArray[3] = _lowerRowBytes[0]; finalArray[4] = _upperRowBytes[1]; finalArray[5] = _middleRowBytes[1]; finalArray[6] = _lowerRowBytes[1]; SendLEDData(finalArray); AppEventHandler.LedLightChanged(this, HIDInstance, null, PanelLEDColor.DARK); } catch (Exception ex) { Common.ShowErrorMessageBox(ex); } }