Skip to content

[WIP] Remove legacy Log.cs class from codebase#173

Closed
Copilot wants to merge 168 commits intomasterfrom
copilot/remove-old-log-class
Closed

[WIP] Remove legacy Log.cs class from codebase#173
Copilot wants to merge 168 commits intomasterfrom
copilot/remove-old-log-class

Conversation

Copy link
Contributor

Copilot AI commented Feb 6, 2026

Thanks for assigning this issue to me. I'm starting to work on it and will keep this PR's description up to date as I form a plan and make progress.

Original prompt

This section details on the original issue you should resolve

<issue_title>[5] Remove Old Log.cs Class</issue_title>
<issue_description>Estimate: 0.5 days
Sprint: Week 2
Assignee: [Developer]


Description

Remove the legacy Log.cs class after confirming all usages have been migrated to ILogger.

Context

Tasks

  • Search entire solution for Log.Debug, Log.Error, etc.
  • Verify zero occurrences found
  • Delete Libraries\ACATCore\Utility\Log.cs
  • Remove from project files
  • Update any documentation referencing Log class
  • Rebuild solution
  • Run full test suite

Acceptance Criteria

  • Log.cs file deleted
  • ✅ Zero compilation errors
  • ✅ Zero references to old Log class remain
  • ✅ Solution builds successfully
  • ✅ All tests pass
  • ✅ Documentation updated

Validation

# These should return 0 results
grep -r "Log\.Debug" --include="*.cs"
grep -r "Log\.Error" --include="*.cs"
grep -r "Log\.Info" --include="*.cs"
grep -r "using.*Log;" --include="*.cs"

# Verify file doesn't exist
ls Libraries/ACATCore/Utility/Log.cs
# Should return: No such file or directory

Dependencies


🎫 Ticket #6: Analyze XML Configuration Files

Labels: phase-1-foundation, configuration, P1-High, analysis, ai-generated
Estimate: 1 day
Assignee: [Developer]
Sprint: Week 3

Description

Use AI to analyze all XML configuration files in ACAT, document their schemas, and identify migration candidates for JSON conversion.

Context

  • Approximately 20 different XML schemas
  • Various configuration types (Actuators, Scanners, Themes, etc.)
  • Need comprehensive inventory before migration

AI Prompt

Analyze the ACAT repository and provide a comprehensive report on XML configuration files:

1. List all XML files and their purposes
2. Identify distinct schemas/types:
   - ActuatorSettings.xml
   - Scanner configuration XMLs
   - Theme XMLs
   - Animation XMLs (skip - handled in Phase 2)
   - Other configuration files

3. For each schema type:
   - Document the structure
   - Count number of instances
   - Identify complexity level (Simple/Medium/Complex)
   - Suggest JSON schema equivalent
   - Note any special handling needed

4. Generate C# POCO classes for top 5 most common schemas

5. Create priority list for migration:
   - Priority 1: High usage, simple structure
   - Priority 2: Medium usage, medium complexity
   - Priority 3: Low usage or complex structure

Output as markdown report with code samples.

Tasks

  • AI generates analysis report
  • Review and validate findings
  • Document edge cases
  • Create migration priority list
  • Identify risks or blockers
  • Create XML → JSON mapping document

Acceptance Criteria

  • ✅ Complete XML inventory document created
  • ✅ All schema types documented
  • ✅ POCO classes generated for top 5 schemas
  • ✅ Migration priority established
  • ✅ Risk assessment documented
  • ✅ Report stored in docs/xml-migration-analysis.md

Deliverable Structure

# XML Configuration Analysis Report

## Executive Summary
- Total XML files: [count]
- Distinct schemas: [count]
- Total file size: [size]
- Estimated migration effort: [hours]

## Schema Inventory

### 1. ActuatorSettings.xml
- **Purpose:** Configure input devices and switches
- **Instances:** 1 per user profile
- **Complexity:** Medium
- **Priority:** P1 (High usage)
- **Sample:**
```xml
<ActuatorSettings>
  <Actuator name="Keyboard" enabled="true">
    <Switch name="Enter" action="Select" />
  </Actuator>
</ActuatorSettings>

[Continue for all schema types...]

Recommended Migration Order

  1. ActuatorSettings.xml - High usage, well-defined
  2. ThemeSettings.xml - Simple structure
  3. [etc...]

Generated POCO Classes

[Include code samples]


### Dependencies
- None (independent analysis)

### Related Files
- All `*.xml` files in repository

---

## 🎫 Ticket intel/acat#7: Create JSON Schemas for Top 5 Configurations

**Labels:** `phase-1-foundation`, `configuration`, `P1-High`, `ai-generated`  
**Estimate:** 2 days  
**Assignee:** [Developer]  
**Sprint:** Week 3

### Description
Generate JSON schemas and C# POCO classes for the top 5 most-used XML configurations identified in Ticket intel/acat#6.

### Context
- Based on analysis from Ticket intel/acat#6
- Create strongly-typed configuration classes
- Enable IntelliSense in VS Code for JSON editing

### AI Prompt

For each of the top 5 XML configuration schemas in ACAT:

  1. Generate equivale...

💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

michaelbeale-IL and others added 20 commits May 2, 2025 11:11
* Update actuator DLL loading pattern and streamline WPF application initialization in PreferencesEditForm

* Add HasSettings property to DescriptorAttribute and update related classes

* refactoring and removing grid in selectform

* DataGrid Removed on SelectForm- #CuelloButNoYet is the logic stored for datagrid that is already implemented for flowpanel

* Start cleaning up of editform

* Work of yesterday

* Enhance error handling in ReadCallback to ensure pipe connectivity and send exit message on disconnection

* Refactor panel configuration and update XML files for Talk and Dashboard applications; rename and add new scanner configurations.

* Refactor ACATApp: remove ACATDashboard class, update AppId and startup arguments, and change Descriptor type in UI components

* Refactor onboarding and UI components to use ClassDescriptorAttribute

- Updated onboarding classes (OnboardingFinish, OnboardingKeyboardConfigSelect, OnboardingLanguageSelect, OnboardingSwitchSelect, OnboardingWelcome) to replace DescriptorAttribute with ClassDescriptorAttribute for consistency and clarity.
- Refactored UI components (HorizontalStripScanner, MenuPanel, ScanTimeAdjustForm, UserControlDefaultTryout, UserControlLayoutInterface, UserControlScreenLock) to utilize ClassDescriptorAttribute instead of DescriptorAttribute.
- Removed unused HorizontalStripScanner2 class and its associated resources to streamline the codebase.
- Cleaned up UserControlContainerForm by removing unnecessary methods and comments, enhancing readability and maintainability.

* Add animation management interfaces and implementations for panel and user control animations

- Introduced IAnimationManager, IPanelAnimationManager, and IUserControlAnimationManager interfaces to define the structure for animation management.
- Implemented PanelAnimationManager and UserControlAnimationManager classes to handle animations specific to panel and user control contexts.
- Updated DialogCommon and ScannerCommon classes to utilize PanelAnimationManager instead of the generic AnimationManager.
- Modified IUserControlCommon interface to return UserControlAnimationManager.
- Adjusted UserControlKeyboardCommon to use UserControlAnimationManager and updated related methods accordingly.
- Ensured proper event handling and initialization for animation managers in both panel and user control contexts.

* Add UserControlCommon.cs to the project compilation list

* Add UserControlCommon class to manage user control functionalities and animations

* Set dialog results for buttons in ConfirmBoxTwoOption and adjust panel docking in PreferencesCategorySelectForm

* Remove DataGrid On Edit Form

* removed datagrid on selectform

* correction on select Forms

* Refactor animation management: enhance error handling, implement virtual methods, and add IUserControl interfaces

* Enhance WindowActiveWatchdog constructor: set form to TopMost and manage event subscriptions in debug mode

* Add external libraries and executables for CameraActuator

- Added x64 and x86 versions of various OpenCV libraries (e.g., opencv_calib3d, opencv_core, opencv_imgproc, etc.) for version 2413.
- Included additional libraries such as libinfra, libivcp, and libpipeline for both architectures.
- Added executables for VisionWindowsAppCS, acat_gestures, ivcp_markup, and ivcp_region_markup.
- Included shape predictor data file for face landmarks.

* Refactor descriptor attributes: replace Descriptor with ClassDescriptorAttribute in multiple files and update CameraActuator project to use platform-specific paths for external resources

* Update language version to 8.0 in multiple project files

* Update language version to 9.0 in project files and simplify XML content inclusion

* Update project files to use C# language version 9.0 across multiple extensions and libraries. Fix typo in UserControlManager.cs and add new ToolbarUserControl and ACATAppToolbar implementations for enhanced UI functionality.

* Setup Button Set

* Redo Of AcatConfig

* Add DashboardUserControl and refactor ToolbarUserControl

- Introduced DashboardUserControl for the ACAT Dashboard, featuring a dynamic layout with scanner buttons.
- Refactored ToolbarUserControl to improve layout management and button creation.
- Updated ActuatorManagement to skip additional directories during loading.
- Simplified logging in UserControlAnimationManager.
- Adjusted font loading logic in various widget classes to enhance font management.
- Removed deprecated KeyboardUserControl and replaced it with a new implementation in the ACAT extension.
- Enhanced DirectoryWalker to skip specified directories during file traversal.
- Updated command handling interfaces and implementations for better command execution flow.
- Improved logging messages for better clarity and debugging.

* add ignore for vscode directory

* First pass at updating log messages to use more than Debug to allow for better filtering during debugging.

* Refactor DirectoryWalker usage to support recursive file searching across multiple components

* Refactor logging calls to use Warn instead of Warning and fix parameter naming for recursive methods

* C-MONDOS-TUFF Region

* railing is working now. GAIN set to 1 and it is using raw signal now.

* correct way of populating actuators?

* Actuators loading

* wordPredictionpanel refactorized

* Enhance ACATCore with TypeLoader and Plugin Extension Support

- Added IPluginExtension interface to standardize plugin identification with a Guid.
- Introduced ITypeLoader interface and TypeLoader class for dynamic loading of types implementing specified interfaces.
- Updated IApplicationAgent and ITTSEngine interfaces to inherit from IPluginExtension.
- Refactored AgentsCache and TTSEngines to utilize TypeLoader for loading agent and TTS engine types from assemblies.
- Simplified loading logic in various management classes (e.g., WordPredictors, PanelManager) to improve maintainability.
- Enhanced error handling and logging during assembly loading processes.
- Removed redundant code related to assembly verification and loading, centralizing logic in TypeLoader.
- Updated DirectoryWalker to streamline file searching and reduce complexity.

* Refactor ACAT UI components and improve command handling in scanners

* Add onboarding extension and welcome user control

- Introduced UserControlWelcome to display the onboarding welcome screen.
- Created associated resource file UserControlWelcome.resx for localization.
- Updated solution file to include ACAT.Extensions.Onboarding project.
- Refactored onboarding logic into AppCommon class for better organization.
- Removed deprecated onboarding methods from ACATApp and ACATTalk.
- Added new interfaces for onboarding extension, user control, and wizard.
- Updated actuator management to support onboarding extensions.
- Cleaned up unused onboarding code and resources from the project.

* All panels workings

* Refactorization and solved buf switch between categories

* Add DashboardMenu and update DashboardUserControl and PanelConfigMap for new menu integration

* Refactor panel initialization and logging

- Updated the ScannerCommon class to handle panel configuration more flexibly by checking for a specific panel configuration before falling back to the panel class.
- Modified the StartupArg class to include a new property for PanelConfig, allowing for more detailed initialization of scanner panels.
- Added a method in PanelConfigMap to retrieve panel configuration entries based on configuration names.
- Enhanced the PanelManager to support creating panels from configuration entries.
- Cleaned up the PanelStack class by removing commented-out code and adding a method for creating panels from configuration.
- Refactored MenuPanelBase to improve method naming conventions and added a helper method for matching controls with widgets.
- Improved logging in various utility classes to use a more structured approach, including the use of verbose logging for better traceability.
- Updated the WindowActivityMonitor to replace debug logs with verbose logs for better clarity on window activity.
- Fixed exception handling in the Layout class to log exceptions more effectively.
- Enhanced the ScannerButtonBase class to ensure font scaling is only applied when a font family is set, preventing potential null reference exceptions.

* Update DashboardUserControl and Program.cs for improved command handling and UI flow

* Remove LangVersion specification from multiple project files to streamline configuration. Added FontUtility.cs to ACAT.Extensions.UI project. Updated Directory.Build.props to set LangVersion globally.

* Remove LangVersion specification from multiple project files and update content inclusion for localization resources.

* Refactor user control classes to inherit from GenericUserControl and update toolbar button creation for improved UI consistency

* Update signal quality gradient image references to use the correct namespace

* Update project configuration to specify x86 and x64 platform targets

* Refactor project configuration by removing redundant Debug|x64 property group

* Add ProduceReferenceAssembly property to project configuration

* small changes..

* Update ExtensionPath to a static value for consistency

* Extensions setting added ( only actuators is complete)
 IGNORE VISUALS

* CreateTTSSpecificControls

* Refactor ToolbarUserControl and enhance UI layout

- Removed unused button dictionaries and consolidated button initialization.
- Improved layout of ToolbarBox and DefaultButtonsBox for better UI responsiveness.
- Updated button creation logic to dynamically adjust based on available buttons.
- Cleaned up commented-out code and improved readability.

Update font loading and logging in Fonts utility

- Changed log level from Error to Info when no user fonts are installed.
- Enhanced logging verbosity for directory walking and font file discovery.

Optimize UserControlManager logging

- Removed debug logs for user control list modifications to reduce log clutter.

Refine DirectoryWalker logging

- Updated log level from Debug to Verbose for file discovery logs.

Enhance FileUtils assembly resolution logging

- Improved logging for assembly resolution with clearer context.

Adjust GlobalPreferences for default log level

- Set default log level to "Verbose" for improved logging control.

Modify WidgetAttribute initialization

- Set default font properties to null or zero to avoid unintended behavior.

Update WidgetManager logging for layout initialization

- Changed log message to include the name of the root widget for clarity.

Refactor ScannerButtonBase font setting logic

- Simplified font setting logic to improve maintainability.

Add UserControlContainerForm with enhanced layout

- Created a new UserControlContainerForm to serve as a generic container for user controls.
- Implemented a table layout for better organization of contained controls.
- Updated event handling for form lifecycle events.

Add resource file for UserControlContainerForm

- Included a .resx file for managing UI resources associated with UserControlContainerForm.

* Simplify XML content inclusion by using wildcard for language files

* Enhance onboarding form and confirmation dialog with localized strings and UI adjustments

* Update UI components for Sentence and Word Prediction UserControls with improved layout and accessibility features

* WordPrediction +  Save function

* Disposable changes

* Add WPF initialization helper and update settings form size

* Add user controls for settings management and update UI components

* Refactor ACAT Configuration and Management

- Updated GroupedSettingsPanel to inherit from UserControl and modified its constructor to accept IEnumerable<IExtension> for settings.
- Changed ActuatorManager to use ActuatorsList instead of Actuators for better clarity and consistency.
- Enhanced ITTSEngine interface to include ISupportsPreferences, ensuring all TTS engines can manage preferences.
- Implemented preferences handling in NullTTSEngine with placeholder methods for preferences management.
- Introduced TTSEnginesList property in TTSManager and TTSEngines classes to expose the list of TTS engines.
- Updated WordPredictor interface to inherit from ISupportsPreferences and added WordPredictorsList property for better access to the list of predictors.
- Refactored WordPredictionManager and WordPredictors classes to include new properties and ensure proper management of word predictors.

* Refactor ACATConfigNext and related components

- Removed unused code and comments from Program.cs to streamline the application startup.
- Updated GroupedSettingsPanel to improve handling of extensions and their preferences.
- Enhanced SettingsPanel to utilize a new builder for creating scrollable views.
- Modified ActuatorManager to consistently use ActuatorsList instead of Actuators for better clarity and performance.
- Adjusted onboarding components to reference ActuatorsList, ensuring consistency across the onboarding process.

* Refactor preference selection forms and related components for better organization and clarity

* Refactor user control classes to improve code consistency and readability

- Updated access modifiers for _scanner fields in various keyboard user control classes to private for better encapsulation.
- Removed unnecessary blank lines and added missing newlines at the end of files for consistency.
- Cleaned up comments and adjusted formatting in the Keyboard user control classes.
- Refactored settings classes to streamline property initializations and removed redundant using directives.
- Enhanced the CameraSensor and Settings classes by adding spacing for better readability.
- Updated the Actuators and WordPredictor interfaces to improve clarity and maintainability.
- Adjusted namespaces in WpfUserControlUtilities for consistency across the project.
- Commented out unused properties in IWordPredictor and UserControlDefaultTryout to indicate potential future use.

* Refactor exception logging in AssemblyResolve method and update default Extensions value in Preferences class

* Refactor UiRootDir initialization in PanelManager and improve argument validation in AssemblyResolve method

* Add resource files for localization support and update project configuration for x86/x64 builds

* Update device availability checks and clean up commented code in BCI actuator and DAQ_gTecBCI

* minor changes to finish re-enabling BCI code.

* Add bootstrap-icons font file to assets

* Force resources to be included in the binaries.

* Refactor assembly resolution logic to improve error handling for resource assemblies

* Enhance onboarding extension functionality and improve logging configuration

* Add GetInvoker method to OnboardingExtensionBase class

* Update ExtensionPath computation in Directory.Build.props for improved path resolution

* Improve preferences handling in GroupedSettingsPanel and update attribute retrieval in SettingsPanelBuilder

* Add CursorControlUserControl and update related configurations in XML files

* Refactor project files and add new user controls for enhanced dashboard functionality

* SettingsForm corrected calls

* Enhance cursor control functionality and improve logging details

* Acat Confignext: Added Arrow Missing save button logic

* Refactor UI components and enhance settings functionality
- Updated SettingsForm to enforce size constraints
- Adjusted layout and properties in ConfirmBox components
- Improved GroupedSettingsPanel with transparent background
- Corrected namespace in SettingsPanelBuilder
- Added new UI hints and descriptions in ACATPreferences
- Updated project references in Core.csproj

* Add onboarding user control and related resources

- Implemented UserControlWelcome for onboarding process with a countdown timer and configuration button.
- Created associated designer and resource files for UserControlWelcome.
- Added localization support through resource files.
- Updated project file to include new user control and ensure proper build configurations.
- Modified CameraActuator settings to prevent automatic saving on load.
- Enhanced PreferencesBase to support observable properties and improved settings management.
- Updated SettingsPanelBuilder to utilize data binding for dynamic UI updates.

* Refactor preferences management to use SystemPreferences class for consistency

* Refactor preferences management: add Preferences.cs and update SystemPreferences to inherit from Preferences

* Refactor preferences management: update settings panels to use observable properties and improve event handling

* Refactor preferences management: update preferences type to PreferencesBase in GroupedSettingsPanel

* Refactor user control classes to override initialization and event handling methods for consistency

* Refactor project structure: remove obsolete batch files and update output paths in build configurations

* Remove obsolete Camera Actuator binaries and update actuator loading logic

- Deleted various unused binary files related to the Camera Actuator, including DLLs and executables.
- Modified the actuator loading logic to use a more specific pattern for loading actuator DLLs.
- Updated spell checker and TTS engine loading methods to reflect the new DLL naming conventions.
- Adjusted logging level from "Info" to "Warning" for better traceability.
- Cleaned up the UserControlContainerForm by removing commented-out code and refactoring methods for clarity.
- Added a new NuGet package for AcatCameraNative.

* Disable sensor usage in initialization method for testing purposes

* Refactor settings management: streamline saving preferences and update SettingsPanel to expose Save method

* Update AcatCameraNative package version to 1.0.16 and remove obsolete 1.0.8 package

* Moving nupkg up a level

* Add .nupkg files to LFS tracking in .gitattributes

* Remove unused using directives in DashboardAppScanner.cs

* Refactor BCI Control Classes

- Removed unused constructors from various BCI control classes including BCICalibrationInput, BCICalibrationResult, BCICalibrationStatus, BCILogEntrNewScanningSectionStarted, BCILogEntryClassifierLoad, BCILogEntryEyesClosed, BCILogEntryLanguageModelProbabilitiesReceived, BCILogEntrySignalQuality, BCILogEntryTypingEnd, BCIMapOptions, BCIMode, BCIParameters, BCISensorStatus, BCIStartSessionResult, BCITriggerTestParameters, BCITriggerTestResult, and BCITypingRepetitionResult.
- Updated BCIInterfaceUtils to improve dialog handling and user interaction.
- Enhanced logging verbosity in various components for better debugging and monitoring.
- Adjusted user control initialization and event handling in UserControlContainerForm and UserControlLayoutInterface for improved functionality and maintainability.

* Add Outlook agent components and enhance scanner form functionality

- Introduced OutlookAgentKeyLoggerTextInterface to manage key logging features such as learning, abbreviation expansion, spell check, and smart punctuation.
- Created OutlookAgentTextInterface to handle text input in Outlook, disabling abbreviation expansion and spell check for specific fields.
- Implemented OutlookInspector to identify various Outlook window types and their controls, enhancing interaction with the Outlook application.
- Updated Extension.csproj to include new Outlook agent files in the project build.
- Modified GenericScannerForm to allow for partial class implementation, enabling virtual methods for better extensibility and overriding capabilities.

* Remove ignored files from FunctionalAgents directory in .gitignore

* Update project references to use $(SolutionDir) for consistency across projects

* Add localized strings for Tryout alerts and refactor user control classes

* Implement unzip dependency task in build process and remove obsolete content item

* Update output directory for dependency files in UnzipDependency target

* Update PostBuildSolution.csproj

fixed output path for ConvAssist

* it is broken but working on to fix.

* Refactor BCIError initialization to use object initializer syntax for improved readability

* Refactor calibration parameter classes to use auto-implemented properties for improved readability and initialization

* Remove obsolete XML configuration files for various user control interfaces and scanners in the Spanish resource directory. This includes files related to TalkApplicationBCIScanner, TalkApplicationScanner, UserControl configurations, Word Prediction, Yes/No response interfaces, and others. These deletions streamline the resource files and eliminate unused configurations.

* Changed the order of Manager creation.  Moved AgentManager to the start in order for all the additional user controls that are stored in the LaunchAppAgent and SwitchWindowAgent to be loaded in time for the panel manager.

* Added Resources

* Add missing properties to BCI calibration settings for improved functionality

* Initialize properties with default values in BCI calibration classes for improved stability

* added Resources

* added resources

* Initialize properties with default values and add constructors in BCI control classes for improved stability and consistency

* Added Resources

* Add Resources

* Refactor LaunchApp functionality and enhance user control management

- Updated DashboardAppScanner to utilize LaunchAppAgent for launching applications.
- Added support for launching Microsoft Edge in DashboardAppScanner.
- Refactored LaunchAppUserControl to handle app launching through events and improved button specifications.
- Removed obsolete AppInfo class from LaunchAppAgent and integrated its properties into the existing AppInfo class in ACAT.Core.Utility.
- Enhanced BCISettings to use consistent naming conventions for classifier channels.
- Modified FunctionalAgentBase and IFunctionalAgent interfaces to include Activate method with IUserControl parameter.
- Updated SplashScreen to display custom messages during initialization.
- Improved UserControlManager to retrieve user controls by GUID.
- Adjusted LaunchAppAgent to handle application launching with new AppInfo properties.

* Comment out font installation check in ACATApp and ACATTalk main methods

* Refactor project files to remove default Debug configuration and change platform target to x64

* added resources

* Exit Button Added

* Refactor BCISettings and AgentManager for improved readability and maintainability

* Fixed G-Tec integration.

* refactored out old way to JSON serialization

* More cleanup

* Added missing ScollingText usercontrol for GTec

* Reset Button -> Cancel Button

* adding ndp481-web.exe to lfs

* CommandManager is properly initialized before opening the SwitchCommandMapForm

* Disable command

* Project sdk update (#122)

* Converted Core, Resources and Extension to SDK Style project files to support Debug and Release builds.

* Refactored to hide async call to WindowActivityMonitor

* Converted Onboarding and UI extensions to SDK project style

* Moved SampleActuators out of main build path and into dev support

* Removing unused spell checker.

* Converted CameraActuator, ConvAssist, TTSClient and SAPIEngine to SDK style projects.

* Moved project references to the top

* Converted all agents to SDK Style projects

* Converted FunctionalAgents to SDK Style projects.

* Resolved(?) abiguous definition of MicroSecondTimer.  need to test

* Consolidated BCI UI assemblies into a single assembly, similar to Default.  Converted projects to SDK style

* Renamed projects to match new standard

* Updated all actuactor support projects to SDK style

* Converted BCIActuator to SDK Style project file

* renamed ACATResources and upgraded to SDK style project

* upgarded ACATApp, Watch and Common to SDK Style

* updated acatApp to SDK style and updated namespaces accordingly.  Many bug fixes also.

* updated project types to SdkWindowsDesktop

* removed zedgraph stuff.

* code cleanup.  removing unused projects.

* cleanup

* fix for namespace path problems.  need to fix this post 4.0

* Application changes to support namespace alignment

* code cleanup suggestion fixes

* Fixes for CT0130 and other code cleanup suggestions.

* Implemented ResetToDefault function in IPreferences and corresponding classes

* optimized onboarding to reduce launch time.

* moved common Assembly Info to build.props

* minor bug fixes.

* add nullable to nullable method.

* upgraded to SDK style project.

* removed unused project settings.

* third ring of hell.

* forcing project to only be 64-bit

* converted to 64bit builds only.

* Moved TargetFramework to Build.props and fixed a bug in PanelClassConfig for release.

* adding build to ignore list.

* Refactor preference loading to use IPreferences interface for better type safety

* Removed the optical sensor UI. Tested functionality after that it sworking...

* adding ignores for new setup stuff

* adding new setup script and placeholder for license.

* Update AcatCameraNative package to version 1.0.17 and remove old package version.  Also have fix for misconfigured LFS files.

* removing .net installer (we don't need it anymore.) and the old installGenerator script (also don't need it.)  Updated attributes to remove unused lines.

* Gtec Device connection screen redesinged.

* fix for BCI UI not loading

* Added support for BrainFlow Synthetic Board for testing purposes.

* removing unneeded forms folder reference

* two Option box fix

* Optical Sensor code removed mostly.

* adding config for Debug_TestGTEC

* Refactor Bluetooth device handling and improve ListBox item rendering

* Save button fix for keyboard actuator

* Refactor DAQ_gTecBCI and related components to improve structure and maintainability

- Updated DAQ_gTecBCI class to inherit from BaseDAQ and removed redundant fields and methods.
- Introduced a new DAQ_DeviceType property in BCISettings for better device management.
- Refactored OpenBCIDeviceTester and SensorForm to utilize the new BaseDAQ instance for device operations.
- Streamlined data acquisition methods and error handling across various components.
- Removed obsolete methods and comments to clean up the codebase.
- Enhanced documentation for clarity on method functionalities and parameters.

* Refactor project structure: rename ACATConfigNext to ACATConfig, update project files, and add missing application icons.

* Fix list box item drawing to handle null ListViewItem gracefully

* Refactor DAQFactory to default to GTecBCI, clean up DAQ_gTecBCI code by removing unused hotkey functionality, and enhance gTecDeviceTester to ensure proper device closure on exit. Update NSIS installer script to improve registry entries for ACAT installation details.

* Refactor project files to use Microsoft.NET.Sdk instead of Microsoft.NET.Sdk.WindowsDesktop for consistency across applications and extensions. Update ACAT solution to include Directory.Build.targets. Adjust WordPredictionSetModeScanner layout for better scaling and usability. Enhance logging in ConvAssistWordPredictor for improved diagnostics. Update NSIS installer script with new versioning and publisher information.

* Add resource files and update project configuration

- Added a new resource file (Resources.resx) containing various image references for the BCI control.
- Included multiple image files for UI elements, including icons and gradients related to signal quality.
- Updated project file to use the Microsoft.NET.Sdk instead of Microsoft.NET.Sdk.WindowsDesktop, ensuring compatibility with library output type.

* Update WordPredictionSetModeScanner layout attributes for consistency and adjust YesNoScanner button text for clarity. Update NSIS installer script version to 4.0.0.081725.

* Complete refactor of AlwaysOnTop Management.

* Fix device connection initialization by ensuring the device name is converted to string format.

* More cleanup

* Refactor DAQ_gTecBCI to remove unused channel retrievals and update device initialization. Fix device selection logic in UserControlErrorBluetoothDisconnected for accurate device name retrieval.

* Rename BCI EEG Actuator to BCI for consistency across actuator settings and code references.

* Add resource files and update project configuration for BCIControl

* Fixed mis-alignment of string.

* Refactor marker value writing to use the common DAQ instance for both OpenBCI and Gtec devices.

* Refactor gTecDeviceTester to use DAQFactory for gTecBCI instance creation

* Moved panelconfigs from ACATResources to the Apps Install directory.

* Removed custom target to copy panelconfigs

* Refactor panel configuration management to use a unified key and directory structure

* Add Id property to various classes to expose Descriptor Id

* Ui changes on acatconfig

* Refactor TypeLoader methods to improve assembly loading and type caching logic

* Remove commented-out code and improve DLL loading logic in UserControlConfigMap

* more cleanup of installer script.

* Refactor WindowActivityMonitor usage to replace GetForegroundWindowInfo with CurrentWindowInfo for improved clarity and consistency across multiple agents and utilities.

* Enhance installer script to support font installation and shortcut options, improving user experience during setup.

* UI Changes

* Refactor UI components to improve DPI scaling and font handling; add FontUtil for font checks and scaling.

* Refactor Dashboard and Talk Application Scanners

- Updated DashboardAppScanner to handle new command modes for talking applications.
- Replaced DashboardUserControl with ToolsMenuUserControl for better functionality.
- Introduced new command handlers for launching applications and switching windows.
- Enhanced UI scaling and button management in toolbar controls.
- Improved word prediction modes handling in TalkApplicationScanner.
- Adjusted logging levels for better debugging.
- Added new command handlers for repositioning and resizing scanners.
- Cleaned up unused code and comments for better readability.

* Update version number to 4.0.0.082225 in installer script; adjust color definitions in UserControlDefaultTryout for consistency.

* Add LaunchAppScanner configuration and refactor LaunchAppAgent for improved app launching functionality

* Added basePanel 3x3 grid that will always center the settings in the parent form.

* UI Config + Scale Factor

* Increase timeout values for named pipe server and add exception handling for agent context retrieval

* Refactor SplashScreen and UserControlManager logging levels; update WindowActivityMonitor to use Form instead of IntPtr; add WindowsExplorerAgentBase for file navigation and operations; adjust command handlers for new WindowActivityMonitor structure; improve logging and error handling in various components.

* Trying to fix UI zoom support

* Fix UI Flicker and match UI to designed.  WIP

* more work towards a functioning Config app.

* Refactor SettingsForm and GroupedSettingsPanel for improved button management and layout; enhance PreferencesBase with IDisposable and IsDirty tracking; update SettingsPanelBuilder for better UI binding and control handling.

* Add new configuration and resource files for ConvAssist

- Created README file to outline required resources for ConvAssist.
- Added personalized canned phrases in personalizedCannedPhrases.txt.
- Introduced shorthand_sqlite.db for shorthand predictions.
- Added start sentences in startSentences.txt.
- Created startWords.json for initial word predictions.
- Implemented cannedPhrasesMode.ini for canned phrases predictor settings.
- Added sentenceMode.ini for sentence completion predictor settings.
- Introduced shortHandMode.ini for shorthand predictor settings.
- Created wordPredMode.ini for word prediction settings with multiple predictors.

* Surgical revert of Hwnd handle change that broke predictions.

* Update scaling factors in DashboardAppScanner and LargeToolbarUserControl; enhance word prediction handling in WordPredictionsRequestHandler.

* Add Spanish language support for ConvAssist

- Introduced a new filter_words.txt file containing a list of offensive words in Spanish to enhance content filtering.
- Added a new binary database file, spanish_conversation.db, for improved conversation handling in Spanish.
- Created a stopwords.txt file with common Spanish stopwords to optimize text processing.
- Updated ConvAssistUtils.cs to improve character filtering by utilizing Unicode categories for better handling of various character types.

* Refactor ConvAssist utilities for improved text cleaning and update NamedPipeServer for better error handling

* Add Spanish language support and update punctuation scanner

- Created new XML configuration files for Spanish language settings, including punctuation and letters (A, E, I, N, O, U, and ?).
- Implemented a new punctuation scanner layout with various punctuation marks and symbols.
- Removed outdated video files related to ACAT camera switch and overview.

* Enhance build configurations and signing process

- Added new build configurations: Debug_signed and Release_signed in Directory.Build.props.
- Configured strong-naming and assembly signing for Debug_signed and Release_signed configurations.
- Updated Directory.Build.targets to include signing targets for the new configurations using SignTool.
- Modified TypeLoader.cs to check for strong-naming based on STRONG_ASSEMBLY_CHECK instead of SIGNED_RELEASE.
- Updated NSIS installer script to point to the new Debug_signed build output directory.

* Add signing certificate files to .gitignore

* Refactor panel configuration loading and improve resource directory handling

* Add panel configuration copying and update Spanish shorthand database

* Refactor UI components: restore labelCurrentTypingMode and adjust scaleFactor calculations in toolbar controls

* Add new panel configuration files for Windows Explorer context menus and enhance agent management functionality

* Add localized strings for keyboard hotkey and switch configuration prompts

* Update switch type selection label to use localized string resource

* Fix splash screen handling: ensure it closes before post-initialization (#138)

* Enhance installer script: update uninstall and installation messages, streamline shortcut options handling

* Refactor culture handling: replace DefaultThreadCurrentUICulture with CurrentUICulture for consistency across TTS and ConvAssist components

* Add new panel configurations for letter menus and enhance language selection handling

* Enhance keyboard panel configurations and improve theme handling across UI components

* Refactor code structure for improved readability and maintainability

* Update default widget states and adjust window positions for consistency

* Fix web browser event handling and ensure document loading in hardware switch setup

* Add UsePreviewSdk property and enhance signing messages in build targets

* Update widget attributes to disable 'SwitchWindow' and 'LaunchApp' buttons; add application manifest and adjust logging preferences

* Update .gitignore to exclude .exe files; add shorthand_sqlite.db for user preferences; modify build properties for Debug and Release configurations; enhance logging setup in Log.cs; update SystemPreferences for debug log settings; create NSIS installer script for setup; revise license information.

* Refactor and update UI components and logic in UserControlHardwareSwitchSetup

- Fixed incorrect WidgetAttribute value for SPLItem5 in SentencePredictionUserControl.xml.
- Added Load event handler to UserControlHardwareSwitchSetup to initialize UI elements.
- Moved initialization logic from Initialize() to UserControlHardwareSwitchSetup_Load for better clarity and separation of concerns.
- Updated UserControlKeyboardConfigSelect.cs to reorder using directives for consistency.
- Removed unnecessary webBrowserDesc.Refresh() call in UserControlSwitchSelect.cs.
- Cleaned up debug logging in KeyboardHook.cs to reduce clutter.
- Updated AnimationManager.cs to initialize the Interpret instance correctly.
- Removed commented-out code in various files for better readability and maintainability.
- Enhanced Splash.cs to ensure the splash screen is displayed correctly and brought to the front.
- Cleaned up UserControlCommon.cs by removing unused method calls.
- Removed unused IsForegroundApp() method in User32Interop.cs to streamline the codebase.

* Fix cross-thread invokations comment in Windows.cs; streamline display state handling in ScannerCommon.cs; ensure early return in ActiveWordPredictor_EvtModeChanged method

* Enhance logging for scanner closure attempts and error handling in panel management

* Update resource files and license information; streamline instructional text and remove video links for setup guides

* Update Spanish resource file; improve error handling in PreferencesEditForm initialization; adjust contextual menu settings in ACATTalk; enhance logging in ACATWatch; modify project files for consistency.

* Add handling for calibration mismatch status; fix text box event naming; improve logging messages

---------

Co-authored-by: Olmedo Garcia, Oscar <oscar.olmedo.garcia@intel.com>
Co-authored-by: Savur, Celal <celal.savur@intel.com>
Co-authored-by: Sangita Sharma <sangita.sharma@intel.com>
…ionDir)

- Updated project files across multiple applications and extensions to replace $(SolutionDir) with $(SolutionRoot) for consistency in path references.
- This change ensures that all project references point to the correct locations, improving build reliability and maintainability.
…levels in AnimationPlayer; adjust UserControlManager to prevent stopping top-level animation
* Add HasSettings property to DescriptorAttribute and update related classes

* refactoring and removing grid in selectform

* DataGrid Removed on SelectForm- #CuelloButNoYet is the logic stored for datagrid that is already implemented for flowpanel

* Start cleaning up of editform

* Work of yesterday

* Enhance error handling in ReadCallback to ensure pipe connectivity and send exit message on disconnection

* Refactor panel configuration and update XML files for Talk and Dashboard applications; rename and add new scanner configurations.

* Refactor ACATApp: remove ACATDashboard class, update AppId and startup arguments, and change Descriptor type in UI components

* Refactor onboarding and UI components to use ClassDescriptorAttribute

- Updated onboarding classes (OnboardingFinish, OnboardingKeyboardConfigSelect, OnboardingLanguageSelect, OnboardingSwitchSelect, OnboardingWelcome) to replace DescriptorAttribute with ClassDescriptorAttribute for consistency and clarity.
- Refactored UI components (HorizontalStripScanner, MenuPanel, ScanTimeAdjustForm, UserControlDefaultTryout, UserControlLayoutInterface, UserControlScreenLock) to utilize ClassDescriptorAttribute instead of DescriptorAttribute.
- Removed unused HorizontalStripScanner2 class and its associated resources to streamline the codebase.
- Cleaned up UserControlContainerForm by removing unnecessary methods and comments, enhancing readability and maintainability.

* Add animation management interfaces and implementations for panel and user control animations

- Introduced IAnimationManager, IPanelAnimationManager, and IUserControlAnimationManager interfaces to define the structure for animation management.
- Implemented PanelAnimationManager and UserControlAnimationManager classes to handle animations specific to panel and user control contexts.
- Updated DialogCommon and ScannerCommon classes to utilize PanelAnimationManager instead of the generic AnimationManager.
- Modified IUserControlCommon interface to return UserControlAnimationManager.
- Adjusted UserControlKeyboardCommon to use UserControlAnimationManager and updated related methods accordingly.
- Ensured proper event handling and initialization for animation managers in both panel and user control contexts.

* Add UserControlCommon.cs to the project compilation list

* Add UserControlCommon class to manage user control functionalities and animations

* Set dialog results for buttons in ConfirmBoxTwoOption and adjust panel docking in PreferencesCategorySelectForm

* Remove DataGrid On Edit Form

* removed datagrid on selectform

* correction on select Forms

* Refactor animation management: enhance error handling, implement virtual methods, and add IUserControl interfaces

* Enhance WindowActiveWatchdog constructor: set form to TopMost and manage event subscriptions in debug mode

* Add external libraries and executables for CameraActuator

- Added x64 and x86 versions of various OpenCV libraries (e.g., opencv_calib3d, opencv_core, opencv_imgproc, etc.) for version 2413.
- Included additional libraries such as libinfra, libivcp, and libpipeline for both architectures.
- Added executables for VisionWindowsAppCS, acat_gestures, ivcp_markup, and ivcp_region_markup.
- Included shape predictor data file for face landmarks.

* Refactor descriptor attributes: replace Descriptor with ClassDescriptorAttribute in multiple files and update CameraActuator project to use platform-specific paths for external resources

* Update language version to 8.0 in multiple project files

* Update language version to 9.0 in project files and simplify XML content inclusion

* Update project files to use C# language version 9.0 across multiple extensions and libraries. Fix typo in UserControlManager.cs and add new ToolbarUserControl and ACATAppToolbar implementations for enhanced UI functionality.

* Setup Button Set

* Redo Of AcatConfig

* Add DashboardUserControl and refactor ToolbarUserControl

- Introduced DashboardUserControl for the ACAT Dashboard, featuring a dynamic layout with scanner buttons.
- Refactored ToolbarUserControl to improve layout management and button creation.
- Updated ActuatorManagement to skip additional directories during loading.
- Simplified logging in UserControlAnimationManager.
- Adjusted font loading logic in various widget classes to enhance font management.
- Removed deprecated KeyboardUserControl and replaced it with a new implementation in the ACAT extension.
- Enhanced DirectoryWalker to skip specified directories during file traversal.
- Updated command handling interfaces and implementations for better command execution flow.
- Improved logging messages for better clarity and debugging.

* add ignore for vscode directory

* First pass at updating log messages to use more than Debug to allow for better filtering during debugging.

* Refactor DirectoryWalker usage to support recursive file searching across multiple components

* Refactor logging calls to use Warn instead of Warning and fix parameter naming for recursive methods

* C-MONDOS-TUFF Region

* railing is working now. GAIN set to 1 and it is using raw signal now.

* correct way of populating actuators?

* Actuators loading

* wordPredictionpanel refactorized

* Enhance ACATCore with TypeLoader and Plugin Extension Support

- Added IPluginExtension interface to standardize plugin identification with a Guid.
- Introduced ITypeLoader interface and TypeLoader class for dynamic loading of types implementing specified interfaces.
- Updated IApplicationAgent and ITTSEngine interfaces to inherit from IPluginExtension.
- Refactored AgentsCache and TTSEngines to utilize TypeLoader for loading agent and TTS engine types from assemblies.
- Simplified loading logic in various management classes (e.g., WordPredictors, PanelManager) to improve maintainability.
- Enhanced error handling and logging during assembly loading processes.
- Removed redundant code related to assembly verification and loading, centralizing logic in TypeLoader.
- Updated DirectoryWalker to streamline file searching and reduce complexity.

* Refactor ACAT UI components and improve command handling in scanners

* Add onboarding extension and welcome user control

- Introduced UserControlWelcome to display the onboarding welcome screen.
- Created associated resource file UserControlWelcome.resx for localization.
- Updated solution file to include ACAT.Extensions.Onboarding project.
- Refactored onboarding logic into AppCommon class for better organization.
- Removed deprecated onboarding methods from ACATApp and ACATTalk.
- Added new interfaces for onboarding extension, user control, and wizard.
- Updated actuator management to support onboarding extensions.
- Cleaned up unused onboarding code and resources from the project.

* All panels workings

* Refactorization and solved buf switch between categories

* Add DashboardMenu and update DashboardUserControl and PanelConfigMap for new menu integration

* Refactor panel initialization and logging

- Updated the ScannerCommon class to handle panel configuration more flexibly by checking for a specific panel configuration before falling back to the panel class.
- Modified the StartupArg class to include a new property for PanelConfig, allowing for more detailed initialization of scanner panels.
- Added a method in PanelConfigMap to retrieve panel configuration entries based on configuration names.
- Enhanced the PanelManager to support creating panels from configuration entries.
- Cleaned up the PanelStack class by removing commented-out code and adding a method for creating panels from configuration.
- Refactored MenuPanelBase to improve method naming conventions and added a helper method for matching controls with widgets.
- Improved logging in various utility classes to use a more structured approach, including the use of verbose logging for better traceability.
- Updated the WindowActivityMonitor to replace debug logs with verbose logs for better clarity on window activity.
- Fixed exception handling in the Layout class to log exceptions more effectively.
- Enhanced the ScannerButtonBase class to ensure font scaling is only applied when a font family is set, preventing potential null reference exceptions.

* Update DashboardUserControl and Program.cs for improved command handling and UI flow

* Remove LangVersion specification from multiple project files to streamline configuration. Added FontUtility.cs to ACAT.Extensions.UI project. Updated Directory.Build.props to set LangVersion globally.

* Remove LangVersion specification from multiple project files and update content inclusion for localization resources.

* Refactor user control classes to inherit from GenericUserControl and update toolbar button creation for improved UI consistency

* Update signal quality gradient image references to use the correct namespace

* Update project configuration to specify x86 and x64 platform targets

* Refactor project configuration by removing redundant Debug|x64 property group

* Add ProduceReferenceAssembly property to project configuration

* small changes..

* Update ExtensionPath to a static value for consistency

* Extensions setting added ( only actuators is complete)
 IGNORE VISUALS

* CreateTTSSpecificControls

* Refactor ToolbarUserControl and enhance UI layout

- Removed unused button dictionaries and consolidated button initialization.
- Improved layout of ToolbarBox and DefaultButtonsBox for better UI responsiveness.
- Updated button creation logic to dynamically adjust based on available buttons.
- Cleaned up commented-out code and improved readability.

Update font loading and logging in Fonts utility

- Changed log level from Error to Info when no user fonts are installed.
- Enhanced logging verbosity for directory walking and font file discovery.

Optimize UserControlManager logging

- Removed debug logs for user control list modifications to reduce log clutter.

Refine DirectoryWalker logging

- Updated log level from Debug to Verbose for file discovery logs.

Enhance FileUtils assembly resolution logging

- Improved logging for assembly resolution with clearer context.

Adjust GlobalPreferences for default log level

- Set default log level to "Verbose" for improved logging control.

Modify WidgetAttribute initialization

- Set default font properties to null or zero to avoid unintended behavior.

Update WidgetManager logging for layout initialization

- Changed log message to include the name of the root widget for clarity.

Refactor ScannerButtonBase font setting logic

- Simplified font setting logic to improve maintainability.

Add UserControlContainerForm with enhanced layout

- Created a new UserControlContainerForm to serve as a generic container for user controls.
- Implemented a table layout for better organization of contained controls.
- Updated event handling for form lifecycle events.

Add resource file for UserControlContainerForm

- Included a .resx file for managing UI resources associated with UserControlContainerForm.

* Simplify XML content inclusion by using wildcard for language files

* Enhance onboarding form and confirmation dialog with localized strings and UI adjustments

* Update UI components for Sentence and Word Prediction UserControls with improved layout and accessibility features

* WordPrediction +  Save function

* Disposable changes

* Add WPF initialization helper and update settings form size

* Add user controls for settings management and update UI components

* Refactor ACAT Configuration and Management

- Updated GroupedSettingsPanel to inherit from UserControl and modified its constructor to accept IEnumerable<IExtension> for settings.
- Changed ActuatorManager to use ActuatorsList instead of Actuators for better clarity and consistency.
- Enhanced ITTSEngine interface to include ISupportsPreferences, ensuring all TTS engines can manage preferences.
- Implemented preferences handling in NullTTSEngine with placeholder methods for preferences management.
- Introduced TTSEnginesList property in TTSManager and TTSEngines classes to expose the list of TTS engines.
- Updated WordPredictor interface to inherit from ISupportsPreferences and added WordPredictorsList property for better access to the list of predictors.
- Refactored WordPredictionManager and WordPredictors classes to include new properties and ensure proper management of word predictors.

* Refactor ACATConfigNext and related components

- Removed unused code and comments from Program.cs to streamline the application startup.
- Updated GroupedSettingsPanel to improve handling of extensions and their preferences.
- Enhanced SettingsPanel to utilize a new builder for creating scrollable views.
- Modified ActuatorManager to consistently use ActuatorsList instead of Actuators for better clarity and performance.
- Adjusted onboarding components to reference ActuatorsList, ensuring consistency across the onboarding process.

* Refactor preference selection forms and related components for better organization and clarity

* Refactor user control classes to improve code consistency and readability

- Updated access modifiers for _scanner fields in various keyboard user control classes to private for better encapsulation.
- Removed unnecessary blank lines and added missing newlines at the end of files for consistency.
- Cleaned up comments and adjusted formatting in the Keyboard user control classes.
- Refactored settings classes to streamline property initializations and removed redundant using directives.
- Enhanced the CameraSensor and Settings classes by adding spacing for better readability.
- Updated the Actuators and WordPredictor interfaces to improve clarity and maintainability.
- Adjusted namespaces in WpfUserControlUtilities for consistency across the project.
- Commented out unused properties in IWordPredictor and UserControlDefaultTryout to indicate potential future use.

* Refactor exception logging in AssemblyResolve method and update default Extensions value in Preferences class

* Refactor UiRootDir initialization in PanelManager and improve argument validation in AssemblyResolve method

* Add resource files for localization support and update project configuration for x86/x64 builds

* Update device availability checks and clean up commented code in BCI actuator and DAQ_gTecBCI

* minor changes to finish re-enabling BCI code.

* Add bootstrap-icons font file to assets

* Force resources to be included in the binaries.

* Refactor assembly resolution logic to improve error handling for resource assemblies

* Enhance onboarding extension functionality and improve logging configuration

* Add GetInvoker method to OnboardingExtensionBase class

* Update ExtensionPath computation in Directory.Build.props for improved path resolution

* Improve preferences handling in GroupedSettingsPanel and update attribute retrieval in SettingsPanelBuilder

* Add CursorControlUserControl and update related configurations in XML files

* Refactor project files and add new user controls for enhanced dashboard functionality

* SettingsForm corrected calls

* Enhance cursor control functionality and improve logging details

* Acat Confignext: Added Arrow Missing save button logic

* Refactor UI components and enhance settings functionality
- Updated SettingsForm to enforce size constraints
- Adjusted layout and properties in ConfirmBox components
- Improved GroupedSettingsPanel with transparent background
- Corrected namespace in SettingsPanelBuilder
- Added new UI hints and descriptions in ACATPreferences
- Updated project references in Core.csproj

* Add onboarding user control and related resources

- Implemented UserControlWelcome for onboarding process with a countdown timer and configuration button.
- Created associated designer and resource files for UserControlWelcome.
- Added localization support through resource files.
- Updated project file to include new user control and ensure proper build configurations.
- Modified CameraActuator settings to prevent automatic saving on load.
- Enhanced PreferencesBase to support observable properties and improved settings management.
- Updated SettingsPanelBuilder to utilize data binding for dynamic UI updates.

* Refactor preferences management to use SystemPreferences class for consistency

* Refactor preferences management: add Preferences.cs and update SystemPreferences to inherit from Preferences

* Refactor preferences management: update settings panels to use observable properties and improve event handling

* Refactor preferences management: update preferences type to PreferencesBase in GroupedSettingsPanel

* Refactor user control classes to override initialization and event handling methods for consistency

* Refactor project structure: remove obsolete batch files and update output paths in build configurations

* Remove obsolete Camera Actuator binaries and update actuator loading logic

- Deleted various unused binary files related to the Camera Actuator, including DLLs and executables.
- Modified the actuator loading logic to use a more specific pattern for loading actuator DLLs.
- Updated spell checker and TTS engine loading methods to reflect the new DLL naming conventions.
- Adjusted logging level from "Info" to "Warning" for better traceability.
- Cleaned up the UserControlContainerForm by removing commented-out code and refactoring methods for clarity.
- Added a new NuGet package for AcatCameraNative.

* Disable sensor usage in initialization method for testing purposes

* Refactor settings management: streamline saving preferences and update SettingsPanel to expose Save method

* Update AcatCameraNative package version to 1.0.16 and remove obsolete 1.0.8 package

* Moving nupkg up a level

* Add .nupkg files to LFS tracking in .gitattributes

* Remove unused using directives in DashboardAppScanner.cs

* Refactor BCI Control Classes

- Removed unused constructors from various BCI control classes including BCICalibrationInput, BCICalibrationResult, BCICalibrationStatus, BCILogEntrNewScanningSectionStarted, BCILogEntryClassifierLoad, BCILogEntryEyesClosed, BCILogEntryLanguageModelProbabilitiesReceived, BCILogEntrySignalQuality, BCILogEntryTypingEnd, BCIMapOptions, BCIMode, BCIParameters, BCISensorStatus, BCIStartSessionResult, BCITriggerTestParameters, BCITriggerTestResult, and BCITypingRepetitionResult.
- Updated BCIInterfaceUtils to improve dialog handling and user interaction.
- Enhanced logging verbosity in various components for better debugging and monitoring.
- Adjusted user control initialization and event handling in UserControlContainerForm and UserControlLayoutInterface for improved functionality and maintainability.

* Add Outlook agent components and enhance scanner form functionality

- Introduced OutlookAgentKeyLoggerTextInterface to manage key logging features such as learning, abbreviation expansion, spell check, and smart punctuation.
- Created OutlookAgentTextInterface to handle text input in Outlook, disabling abbreviation expansion and spell check for specific fields.
- Implemented OutlookInspector to identify various Outlook window types and their controls, enhancing interaction with the Outlook application.
- Updated Extension.csproj to include new Outlook agent files in the project build.
- Modified GenericScannerForm to allow for partial class implementation, enabling virtual methods for better extensibility and overriding capabilities.

* Remove ignored files from FunctionalAgents directory in .gitignore

* Update project references to use $(SolutionDir) for consistency across projects

* Add localized strings for Tryout alerts and refactor user control classes

* Implement unzip dependency task in build process and remove obsolete content item

* Update output directory for dependency files in UnzipDependency target

* Update PostBuildSolution.csproj

fixed output path for ConvAssist

* it is broken but working on to fix.

* Refactor BCIError initialization to use object initializer syntax for improved readability

* Refactor calibration parameter classes to use auto-implemented properties for improved readability and initialization

* Remove obsolete XML configuration files for various user control interfaces and scanners in the Spanish resource directory. This includes files related to TalkApplicationBCIScanner, TalkApplicationScanner, UserControl configurations, Word Prediction, Yes/No response interfaces, and others. These deletions streamline the resource files and eliminate unused configurations.

* Changed the order of Manager creation.  Moved AgentManager to the start in order for all the additional user controls that are stored in the LaunchAppAgent and SwitchWindowAgent to be loaded in time for the panel manager.

* Added Resources

* Add missing properties to BCI calibration settings for improved functionality

* Initialize properties with default values in BCI calibration classes for improved stability

* added Resources

* added resources

* Initialize properties with default values and add constructors in BCI control classes for improved stability and consistency

* Added Resources

* Add Resources

* Refactor LaunchApp functionality and enhance user control management

- Updated DashboardAppScanner to utilize LaunchAppAgent for launching applications.
- Added support for launching Microsoft Edge in DashboardAppScanner.
- Refactored LaunchAppUserControl to handle app launching through events and improved button specifications.
- Removed obsolete AppInfo class from LaunchAppAgent and integrated its properties into the existing AppInfo class in ACAT.Core.Utility.
- Enhanced BCISettings to use consistent naming conventions for classifier channels.
- Modified FunctionalAgentBase and IFunctionalAgent interfaces to include Activate method with IUserControl parameter.
- Updated SplashScreen to display custom messages during initialization.
- Improved UserControlManager to retrieve user controls by GUID.
- Adjusted LaunchAppAgent to handle application launching with new AppInfo properties.

* Comment out font installation check in ACATApp and ACATTalk main methods

* Refactor project files to remove default Debug configuration and change platform target to x64

* added resources

* Exit Button Added

* Refactor BCISettings and AgentManager for improved readability and maintainability

* Fixed G-Tec integration.

* refactored out old way to JSON serialization

* More cleanup

* Added missing ScollingText usercontrol for GTec

* Reset Button -> Cancel Button

* adding ndp481-web.exe to lfs

* CommandManager is properly initialized before opening the SwitchCommandMapForm

* Disable command

* Project sdk update (#122)

* Converted Core, Resources and Extension to SDK Style project files to support Debug and Release builds.

* Refactored to hide async call to WindowActivityMonitor

* Converted Onboarding and UI extensions to SDK project style

* Moved SampleActuators out of main build path and into dev support

* Removing unused spell checker.

* Converted CameraActuator, ConvAssist, TTSClient and SAPIEngine to SDK style projects.

* Moved project references to the top

* Converted all agents to SDK Style projects

* Converted FunctionalAgents to SDK Style projects.

* Resolved(?) abiguous definition of MicroSecondTimer.  need to test

* Consolidated BCI UI assemblies into a single assembly, similar to Default.  Converted projects to SDK style

* Renamed projects to match new standard

* Updated all actuactor support projects to SDK style

* Converted BCIActuator to SDK Style project file

* renamed ACATResources and upgraded to SDK style project

* upgarded ACATApp, Watch and Common to SDK Style

* updated acatApp to SDK style and updated namespaces accordingly.  Many bug fixes also.

* updated project types to SdkWindowsDesktop

* removed zedgraph stuff.

* code cleanup.  removing unused projects.

* cleanup

* fix for namespace path problems.  need to fix this post 4.0

* Application changes to support namespace alignment

* code cleanup suggestion fixes

* Fixes for CT0130 and other code cleanup suggestions.

* Implemented ResetToDefault function in IPreferences and corresponding classes

* optimized onboarding to reduce launch time.

* moved common Assembly Info to build.props

* minor bug fixes.

* add nullable to nullable method.

* upgraded to SDK style project.

* removed unused project settings.

* third ring of hell.

* forcing project to only be 64-bit

* converted to 64bit builds only.

* Moved TargetFramework to Build.props and fixed a bug in PanelClassConfig for release.

* adding build to ignore list.

* Refactor preference loading to use IPreferences interface for better type safety

* Removed the optical sensor UI. Tested functionality after that it sworking...

* adding ignores for new setup stuff

* adding new setup script and placeholder for license.

* Update AcatCameraNative package to version 1.0.17 and remove old package version.  Also have fix for misconfigured LFS files.

* removing .net installer (we don't need it anymore.) and the old installGenerator script (also don't need it.)  Updated attributes to remove unused lines.

* Gtec Device connection screen redesinged.

* fix for BCI UI not loading

* Added support for BrainFlow Synthetic Board for testing purposes.

* removing unneeded forms folder reference

* two Option box fix

* Optical Sensor code removed mostly.

* adding config for Debug_TestGTEC

* Refactor Bluetooth device handling and improve ListBox item rendering

* Save button fix for keyboard actuator

* Refactor DAQ_gTecBCI and related components to improve structure and maintainability

- Updated DAQ_gTecBCI class to inherit from BaseDAQ and removed redundant fields and methods.
- Introduced a new DAQ_DeviceType property in BCISettings for better device management.
- Refactored OpenBCIDeviceTester and SensorForm to utilize the new BaseDAQ instance for device operations.
- Streamlined data acquisition methods and error handling across various components.
- Removed obsolete methods and comments to clean up the codebase.
- Enhanced documentation for clarity on method functionalities and parameters.

* Refactor project structure: rename ACATConfigNext to ACATConfig, update project files, and add missing application icons.

* Fix list box item drawing to handle null ListViewItem gracefully

* Refactor DAQFactory to default to GTecBCI, clean up DAQ_gTecBCI code by removing unused hotkey functionality, and enhance gTecDeviceTester to ensure proper device closure on exit. Update NSIS installer script to improve registry entries for ACAT installation details.

* Refactor project files to use Microsoft.NET.Sdk instead of Microsoft.NET.Sdk.WindowsDesktop for consistency across applications and extensions. Update ACAT solution to include Directory.Build.targets. Adjust WordPredictionSetModeScanner layout for better scaling and usability. Enhance logging in ConvAssistWordPredictor for improved diagnostics. Update NSIS installer script with new versioning and publisher information.

* Add resource files and update project configuration

- Added a new resource file (Resources.resx) containing various image references for the BCI control.
- Included multiple image files for UI elements, including icons and gradients related to signal quality.
- Updated project file to use the Microsoft.NET.Sdk instead of Microsoft.NET.Sdk.WindowsDesktop, ensuring compatibility with library output type.

* Update WordPredictionSetModeScanner layout attributes for consistency and adjust YesNoScanner button text for clarity. Update NSIS installer script version to 4.0.0.081725.

* Complete refactor of AlwaysOnTop Management.

* Fix device connection initialization by ensuring the device name is converted to string format.

* More cleanup

* Refactor DAQ_gTecBCI to remove unused channel retrievals and update device initialization. Fix device selection logic in UserControlErrorBluetoothDisconnected for accurate device name retrieval.

* Rename BCI EEG Actuator to BCI for consistency across actuator settings and code references.

* Add resource files and update project configuration for BCIControl

* Fixed mis-alignment of string.

* Refactor marker value writing to use the common DAQ instance for both OpenBCI and Gtec devices.

* Refactor gTecDeviceTester to use DAQFactory for gTecBCI instance creation

* Moved panelconfigs from ACATResources to the Apps Install directory.

* Removed custom target to copy panelconfigs

* Refactor panel configuration management to use a unified key and directory structure

* Add Id property to various classes to expose Descriptor Id

* Ui changes on acatconfig

* Refactor TypeLoader methods to improve assembly loading and type caching logic

* Remove commented-out code and improve DLL loading logic in UserControlConfigMap

* more cleanup of installer script.

* Refactor WindowActivityMonitor usage to replace GetForegroundWindowInfo with CurrentWindowInfo for improved clarity and consistency across multiple agents and utilities.

* Enhance installer script to support font installation and shortcut options, improving user experience during setup.

* UI Changes

* Refactor UI components to improve DPI scaling and font handling; add FontUtil for font checks and scaling.

* Refactor Dashboard and Talk Application Scanners

- Updated DashboardAppScanner to handle new command modes for talking applications.
- Replaced DashboardUserControl with ToolsMenuUserControl for better functionality.
- Introduced new command handlers for launching applications and switching windows.
- Enhanced UI scaling and button management in toolbar controls.
- Improved word prediction modes handling in TalkApplicationScanner.
- Adjusted logging levels for better debugging.
- Added new command handlers for repositioning and resizing scanners.
- Cleaned up unused code and comments for better readability.

* Update version number to 4.0.0.082225 in installer script; adjust color definitions in UserControlDefaultTryout for consistency.

* Add LaunchAppScanner configuration and refactor LaunchAppAgent for improved app launching functionality

* Added basePanel 3x3 grid that will always center the settings in the parent form.

* UI Config + Scale Factor

* Increase timeout values for named pipe server and add exception handling for agent context retrieval

* Refactor SplashScreen and UserControlManager logging levels; update WindowActivityMonitor to use Form instead of IntPtr; add WindowsExplorerAgentBase for file navigation and operations; adjust command handlers for new WindowActivityMonitor structure; improve logging and error handling in various components.

* Trying to fix UI zoom support

* Fix UI Flicker and match UI to designed.  WIP

* more work towards a functioning Config app.

* Refactor SettingsForm and GroupedSettingsPanel for improved button management and layout; enhance PreferencesBase with IDisposable and IsDirty tracking; update SettingsPanelBuilder for better UI binding and control handling.

* Add new configuration and resource files for ConvAssist

- Created README file to outline required resources for ConvAssist.
- Added personalized canned phrases in personalizedCannedPhrases.txt.
- Introduced shorthand_sqlite.db for shorthand predictions.
- Added start sentences in startSentences.txt.
- Created startWords.json for initial word predictions.
- Implemented cannedPhrasesMode.ini for canned phrases predictor settings.
- Added sentenceMode.ini for sentence completion predictor settings.
- Introduced shortHandMode.ini for shorthand predictor settings.
- Created wordPredMode.ini for word prediction settings with multiple predictors.

* Surgical revert of Hwnd handle change that broke predictions.

* Update scaling factors in DashboardAppScanner and LargeToolbarUserControl; enhance word prediction handling in WordPredictionsRequestHandler.

* Add Spanish language support for ConvAssist

- Introduced a new filter_words.txt file containing a list of offensive words in Spanish to enhance content filtering.
- Added a new binary database file, spanish_conversation.db, for improved conversation handling in Spanish.
- Created a stopwords.txt file with common Spanish stopwords to optimize text processing.
- Updated ConvAssistUtils.cs to improve character filtering by utilizing Unicode categories for better handling of various character types.

* Refactor ConvAssist utilities for improved text cleaning and update NamedPipeServer for better error handling

* Add Spanish language support and update punctuation scanner

- Created new XML configuration files for Spanish language settings, including punctuation and letters (A, E, I, N, O, U, and ?).
- Implemented a new punctuation scanner layout with various punctuation marks and symbols.
- Removed outdated video files related to ACAT camera switch and overview.

* Enhance build configurations and signing process

- Added new build configurations: Debug_signed and Release_signed in Directory.Build.props.
- Configured strong-naming and assembly signing for Debug_signed and Release_signed configurations.
- Updated Directory.Build.targets to include signing targets for the new configurations using SignTool.
- Modified TypeLoader.cs to check for strong-naming based on STRONG_ASSEMBLY_CHECK instead of SIGNED_RELEASE.
- Updated NSIS installer script to point to the new Debug_signed build output directory.

* Add signing certificate files to .gitignore

* Refactor panel configuration loading and improve resource directory handling

* Add panel configuration copying and update Spanish shorthand database

* Refactor UI components: restore labelCurrentTypingMode and adjust scaleFactor calculations in toolbar controls

* Add new panel configuration files for Windows Explorer context menus and enhance agent management functionality

* Add localized strings for keyboard hotkey and switch configuration prompts

* Update switch type selection label to use localized string resource

* Fix splash screen handling: ensure it closes before post-initialization (#138)

* Enhance installer script: update uninstall and installation messages, streamline shortcut options handling

* Refactor culture handling: replace DefaultThreadCurrentUICulture with CurrentUICulture for consistency across TTS and ConvAssist components

* Add new panel configurations for letter menus and enhance language selection handling

* Enhance keyboard panel configurations and improve theme handling across UI components

* Refactor code structure for improved readability and maintainability

* Update default widget states and adjust window positions for consistency

* Fix web browser event handling and ensure document loading in hardware switch setup

* Add UsePreviewSdk property and enhance signing messages in build targets

* Update widget attributes to disable 'SwitchWindow' and 'LaunchApp' buttons; add application manifest and adjust logging preferences

* Update .gitignore to exclude .exe files; add shorthand_sqlite.db for user preferences; modify build properties for Debug and Release configurations; enhance logging setup in Log.cs; update SystemPreferences for debug log settings; create NSIS installer script for setup; revise license information.

* Refactor and update UI components and logic in UserControlHardwareSwitchSetup

- Fixed incorrect WidgetAttribute value for SPLItem5 in SentencePredictionUserControl.xml.
- Added Load event handler to UserControlHardwareSwitchSetup to initialize UI elements.
- Moved initialization logic from Initialize() to UserControlHardwareSwitchSetup_Load for better clarity and separation of concerns.
- Updated UserControlKeyboardConfigSelect.cs to reorder using directives for consistency.
- Removed unnecessary webBrowserDesc.Refresh() call in UserControlSwitchSelect.cs.
- Cleaned up debug logging in KeyboardHook.cs to reduce clutter.
- Updated AnimationManager.cs to initialize the Interpret instance correctly.
- Removed commented-out code in various files for better readability and maintainability.
- Enhanced Splash.cs to ensure the splash screen is displayed correctly and brought to the front.
- Cleaned up UserControlCommon.cs by removing unused method calls.
- Removed unused IsForegroundApp() method in User32Interop.cs to streamline the codebase.

* Fix cross-thread invokations comment in Windows.cs; streamline display state handling in ScannerCommon.cs; ensure early return in ActiveWordPredictor_EvtModeChanged method

* Enhance logging for scanner closure attempts and error handling in panel management

* Update resource files and license information; streamline instructional text and remove video links for setup guides

* Update Spanish resource file; improve error handling in PreferencesEditForm initialization; adjust contextual menu settings in ACATTalk; enhance logging in ACATWatch; modify project files for consistency.

* Add handling for calibration mismatch status; fix text box event naming; improve logging messages

---------

Co-authored-by: Olmedo Garcia, Oscar <oscar.olmedo.garcia@intel.com>
Co-authored-by: Savur, Celal <celal.savur@intel.com>
Co-authored-by: Sangita Sharma <sangita.sharma@intel.com>
…165)

* Initial plan

* Add comprehensive logging migration analysis and guide

Co-authored-by: michaelbeale-IL <63321611+michaelbeale-IL@users.noreply.github.com>

* Add migration summary explaining analysis-first approach

Co-authored-by: michaelbeale-IL <63321611+michaelbeale-IL@users.noreply.github.com>

* Add quick reference guide for logging migration

Co-authored-by: michaelbeale-IL <63321611+michaelbeale-IL@users.noreply.github.com>

* Add comprehensive project README for logging migration

Co-authored-by: michaelbeale-IL <63321611+michaelbeale-IL@users.noreply.github.com>

* Add documentation index for easy navigation

Co-authored-by: michaelbeale-IL <63321611+michaelbeale-IL@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: michaelbeale-IL <63321611+michaelbeale-IL@users.noreply.github.com>
* Initial plan

* Add Microsoft.Extensions.Logging infrastructure and packages to all projects

Co-authored-by: michaelbeale-IL <63321611+michaelbeale-IL@users.noreply.github.com>

* Add logging configuration test and update project file

Co-authored-by: michaelbeale-IL <63321611+michaelbeale-IL@users.noreply.github.com>

* Add comprehensive implementation summary document

Co-authored-by: michaelbeale-IL <63321611+michaelbeale-IL@users.noreply.github.com>

* Fix LoggingConfiguration to use AddFile correctly on ILoggerFactory

AddFile is an extension method for ILoggerFactory, not ILoggingBuilder.
Separated file logging configuration into ConfigureFileLogging() method
that is called after the logger factory is built.

Co-authored-by: michaelbeale-IL <63321611+michaelbeale-IL@users.noreply.github.com>

* Extract magic numbers as named constants for better maintainability

Co-authored-by: michaelbeale-IL <63321611+michaelbeale-IL@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: michaelbeale-IL <63321611+michaelbeale-IL@users.noreply.github.com>
Co-authored-by: Michael Beale <michael.beale@intel.com>
* Initial plan

* Complete XML configuration analysis report for Phase 1 migration planning

Co-authored-by: michaelbeale-IL <63321611+michaelbeale-IL@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: michaelbeale-IL <63321611+michaelbeale-IL@users.noreply.github.com>
…166)

* Initial plan

* Initialize modern logging in application entry points

Co-authored-by: michaelbeale-IL <63321611+michaelbeale-IL@users.noreply.github.com>

* Fix resource disposal in ACATApp and address code review feedback

Co-authored-by: michaelbeale-IL <63321611+michaelbeale-IL@users.noreply.github.com>

* Add implementation summary documentation

Co-authored-by: michaelbeale-IL <63321611+michaelbeale-IL@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: michaelbeale-IL <63321611+michaelbeale-IL@users.noreply.github.com>
Co-authored-by: Michael Beale <michael.beale@intel.com>
* Initial plan

* Add comprehensive logging unit tests with 32 passing tests

Co-authored-by: michaelbeale-IL <63321611+michaelbeale-IL@users.noreply.github.com>

* Add test execution to CI workflow and document completion

Co-authored-by: michaelbeale-IL <63321611+michaelbeale-IL@users.noreply.github.com>

* Add implementation summary document

* Add designer code for CalibrationForm and ScannerButtonControl

* Remove unnecessary comments and clean up ActuatorErrorForm.Designer.cs

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: michaelbeale-IL <63321611+michaelbeale-IL@users.noreply.github.com>
Co-authored-by: Michael Beale <michael.beale@intel.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants