Table of Contents

Acuit Pinpoint 7 Change History

Acuit Pinpoint uses semantic versioning.

7.6.0 - 2024-03-12

Server

  • POTENTIAL BREAKING CHANGE: Server now references CsvHelper 31.* with breaking changes, so Server plug-ins that reference CsvHelper might need to be updated.
  • Some internal components were updated: CsvHelper 31.0.2, Quartz 3.8.1.

Web

  • Some internal components were updated: .NET Runtime/ASP.NET Core/Entity Framework Core 8.0.3, CsvHelper 31.0.2, LigerShark.WebOptimizer.Core 3.0.405, Telerik.UI.for.Blazor 5.1.1, twitter-bootstrap 5.3.3.

Workstation

  • POTENTIAL BREAKING CHANGE: Workstation now references CsvHelper 31.* with breaking changes, so Workstation plug-ins that reference CsvHelper might need to be updated.
  • Fix: Problem where sometimes plug-ins cannot load dependencies, resulting in crashes upon startup or in runtime errors, with exceptions like FileNotFoundException or ReflectionTypeLoadException and with messages like "Could not load file or assembly." Now the Acuit Pinpoint Workstation application directory along with all plug-in directories are probed for assemblies that cannot be loaded automatically.
  • Some internal components were updated: CsvHelper 31.0.2, Microsoft.CodeAnalysis.CSharp.Scripting 4.9.2, Microsoft.Data.Sqlite 8.0.3, Microsoft.Extensions.Logging.Abstractions 8.0.1, SQLitePCLRaw.bundle_e_sqlite3 2.1.8, System.Text.Json 8.0.3, Telerik.Windows.Controls 2024.1.130.

Reporting

  • Some internal components were updated: .NET Runtime/ASP.NET Core 8.0.3, CsvHelper 31.0.2, Hangfire 1.8.11, Telerik.Reporting 18.0.24.305, twitter-bootstrap 5.3.3.

Developer API

Acuit.Pinpoint.BarCodeScanning Package

  • Now references Microsoft.Extensions.Logging.Abstractions 8.0.1.

Acuit.Pinpoint.Common Package

  • Now references Microsoft.Extensions.Logging.Abstractions 8.0.1.

Acuit.Pinpoint.Modbus Package

  • Now references Microsoft.Extensions.Logging.Abstractions 8.0.1.

Acuit.Pinpoint.ResourceManagement Package

  • Now references Microsoft.Data.Sqlite 8.0.3.
  • Now references SQLitePCLRaw.bundle_e_sqlite3 2.1.8.

Acuit.Pinpoint.Tables Package

  • Now references CsvHelper 31.0.2.

Acuit.Pinpoint.Workflows Package

  • Now references Microsoft.CodeAnalysis.CSharp.Scripting 4.9.2.
  • Now references Microsoft.Extensions.Logging.Abstractions 8.0.1.

7.5.0 - 2024-01-20

Server

  • Fix: Fixed a typo in admin email notifications when reference content cannot be retrieved due to an external data error (since v6.96.0).
  • Some internal components were upgraded for incremental performance and reliability improvements: Microsoft.AspNetCore.Authentication.Negotiate, Microsoft.EntityFrameworkCore.SqlServer, Serilog.AspNetCore

Workstation

  • New: See the "Acuit.Pinpoint.Workflows.Workstation Package" section below for changes that affect plug-ins or custom workflows.
  • Some internal components were upgraded for incremental performance and reliability improvements: Microsoft.Data.Sqlite, System.Text.Json

Reporting

  • Some internal components were upgraded for incremental performance and reliability improvements: Hangfire, Microsoft.AspNetCore.Authentication.Negotiate, Serilog.AspNetCore

Developer API

Acuit.Pinpoint.ResourceManagement Package

  • Now references Microsoft.Data.Sqlite 8.0.1

Acuit.Pinpoint.Workflows.Workstation Package

  • New: Added the new ITestingCoordinator service, which allows plug-ins to set the view content for test strips programmatically.

7.4.43 - 2023-12-11

Server

  • Some internal components were upgraded for incremental performance and reliability improvements: codemirror, Microsoft.Bcl.AsyncInterfaces, Microsoft.Extensions.Logging.Abstractions, Microsoft.TypeScript.MSBuild, .NET 8, Quartz, Serilog, System.Configuration.ConfigurationManager, System.Text.Encoding.CodePages, Telerik.UI.for.Blazor

Workstation

  • New: See the "Acuit.Pinpoint.Workflows.Testing Package" section below for changes that affect plug-ins or custom workflows.
  • Some internal components were upgraded for incremental performance and reliability improvements: Microsoft.Bcl.AsyncInterfaces, Microsoft.CodeAnalysis.CSharp.Scripting, Microsoft.Data.Sqlite, Microsoft.Extensions.Logging.Abstractions, Microsoft.Extensions.Primitives, SQLitePCLRaw.bundle_e_sqlite3, System.Configuration.ConfigurationManager, System.Text.Encoding.CodePages, System.Text.Json, Telerik.Windows.Controls.Data.for.Wpf.Xaml, Telerik.Windows.Controls.FixedDocumentViewers.for.Wpf.Xaml

Reporting

  • Some internal components were upgraded for incremental performance and reliability improvements: CronExpressionDescriptor, Microsoft.Bcl.AsyncInterfaces, Microsoft.Extensions.Logging.Abstractions, .NET 8, Serilog, System.Text.Encoding.CodePages, Telerik.Reporting.OpenXmlRendering, Telerik.Reporting.Services.AspNetCore

Developer API

Acuit.Pinpoint.BarCodeScanning Package

  • Now this package is published to NuGet (previously was only published to Acuit private feed).
  • Now references Microsoft.Extensions.Logging.Abstractions 8.0.0

Acuit.Pinpoint.Common Package

  • Now references Microsoft.Extensions.Logging.Abstractions 8.0.0

Acuit.Pinpoint.Configuration Package

  • Now references System.Configuration.ConfigurationManager 8.0.0

Acuit.Pinpoint.IO.Abstractions Package

  • Now references Microsoft.Bcl.AsyncInterfaces 8.0.0

Acuit.Pinpoint.Modbus Package

  • Now references Microsoft.Extensions.Logging.Abstractions 8.0.0

Acuit.Pinpoint.ResourceManagement Package

  • Now references Microsoft.Data.Sqlite 8.0.0
  • Now references SQLitePCLRaw.bundle_e_sqlite3 2.1.7

Acuit.Pinpoint.ResourceManagement.Abstractions Package

  • Now references Microsoft.Extensions.Primitives 8.0.0

Acuit.Pinpoint.Tables Package

  • Now references System.Text.Encoding.CodePages 8.0.0

Acuit.Pinpoint.Workflows Package

  • Now references Microsoft.CodeAnalysis.CSharp.Scripting 4.8.0
  • Now references Microsoft.Extensions.Logging.Abstractions 8.0.0

Acuit.Pinpoint.Workflows.Testing Package

  • New: Added the LogIfNotLoggedYet method to TestFailedException.
  • New: Added the ValidationComparer class (previously was internal).
  • Change: The RecordTest activity now uses an arrow symbol ("") instead of "->" to separate exception messages in the "UnexpectedError" test data item value that gets added when a test fails due to an unexpected error.
  • Change: Now when the RecordTest activity is handling a failed test, if the Reason property of a thrown TestFailedException exceeds the maximum length for test fail reasons (50 characters), a warning will be logged to the application log that the reason was truncated.
  • Fix: The RecordTest activity no longer duplicates the unexpected exception message in the "The test failed" test log entry when a test fails due to an unexpected error. For example:
    • Old: "The test failed due to an unexpected error: A communication error occurred. → A communication error occurred."
    • New: "The test failed: Unexpected error → A communication error occurred."
  • Now references Microsoft.Extensions.Logging.Abstractions 8.0.0

7.3.2 - 2023-10-31

Server

  • Improve: Now validates that worker passwords are unique when editing workers if any line is configured to allow authentication via a password only.
  • Change: No longer records error details to "Acuit.Pinpoint.Web_Error" in the user's temporary folder when an error occurs while the web service is starting before application logging is initialized. The Windows Application event log should be referenced for error details.
  • Fix: Now if a worker attempts to log in at a station using credentials that select multiple workers (e.g., because they have the same password and only a password was provided), a BusinessLogicFault will occur, which will result in a friendlier "Multiple workers matched the supplied credentials" message in Acuit Pinpoint Workstation instead of "An internal error occurred in Acuit Pinpoint Server").
  • Some internal components were upgraded for incremental performance and reliability improvements: CodeMirror, jquery, jquery-validate, LigerShark.WebOptimizer.Core, Microsoft.AspNetCore.Authentication.Negotiate, Microsoft.EntityFrameworkCore.SqlServer, Quartz, Telerik.UI.for.Blazor, twitter-bootstrap

Workstation

  • Some internal components were upgraded for incremental performance and reliability improvements: Microsoft.CodeAnalysis.CSharp.Scripting, Microsoft.Data.Sqlite, SQLitePCLRaw.bundle_e_sqlite3, System.ServiceModel.NetTcp, Telerik.Windows.Controls.Data.for.Wpf.Xaml, Telerik.Windows.Controls.FixedDocumentViewers.for.Wpf.Xaml

Reporting

  • Change: No longer records error details to "Acuit.Pinpoint.Reporting_Error.txt" in the user's temporary folder when an error occurs while the service is starting before application logging is initialized. The Windows Application event log should be referenced for error details.
  • Some internal components were upgraded for incremental performance and reliability improvements: CronExpressionDescriptor, Hangfire, jquery, jquery-validate, Microsoft.AspNetCore.Authentication.Negotiate, Telerik.Reporting.OpenXmlRendering, Telerik.Reporting.Services.AspNetCore, twitter-bootstrap

Developer API

Server API

  • Fix: Now if the credentials provided to AuthenticateWorker or AuthenticateWorker2 select multiple workers (e.g., because they share the same password and only a password was provided), a BusinessLogicFault will occur with an appropriate reason and message instead of an unhandled exception: System.InvalidOperationException: Sequence contains more than one element.

Acuit.Pinpoint.Configuration Package

  • Now references System.ServiceModel.Primitives 4.10.3

Acuit.Pinpoint.ResourceManagement Package

  • Now references Microsoft.Data.Sqlite 7.0.13
  • Now references SQLitePCLRaw.bundle_e_sqlite3 2.1.6

Acuit.Pinpoint.Server.Client Package

  • Now references System.ServiceModel.NetTcp 4.10.3

Acuit.Pinpoint.Workflows Package

  • Now references Microsoft.CodeAnalysis.CSharp.Scripting 4.7.0

7.2.51 - 2023-07-13

Server

  • New: Now can configure authorization for setting and clearing buyoffs.
  • Change: Authorization permission names are now case-insensitive.
  • Changes to the installer:
    • Change: The default installation folder is now "C:\Program Files\Acuit Pinpoint Server 7" (previously was "C:\Program Files (x86)\Acuit Pinpoint Server 7").
    • Now creates a link to the Pinpoint web page on the desktop.
    • Fix: Installer not using install folder customized via bootstrapper, and removed feature selection screen.
  • Some internal components were upgraded for incremental performance and reliability improvements: CodeMirror, jquery, Microsoft.AspNetCore.Authentication.Negotiate, Microsoft.EntityFrameworkCore.SqlServer, Microsoft.Extensions.Hosting.WindowsServices, Microsoft.Extensions.Logging.Abstractions, Quartz, Serilog, Serilog.AspNetCore, Telerik.UI.for.Blazor, twitter-bootstrap

Workstation

  • New: See the "Acuit.Pinpoint.Workflows.Testing Package" section below for changes that affect plug-ins or custom workflows.
  • New capabilities in Acuit Pinpoint Server emulation via "ServerEmulation" config section:
    • New: Can now configure ExtendedData to return with unit scan status.
    • New: Now will not throw exception when plug-in adds a test result using the overload that takes an extended data dictionary.
  • Fix: Null reference exception that can happen when ITestViewModel.WorkflowData is referenced (e.g., from a workflow view) before a test has started (since v7.1.87).
  • Some internal components were upgraded for incremental performance and reliability improvements: Microsoft.CodeAnalysis.CSharp.Scripting, Microsoft.Data.Sqlite, Microsoft.Extensions.Logging.Abstractions, SQLitePCLRaw.bundle_e_sqlite3, System.Reactive, System.Text.Json, Telerik.Windows.Controls.Data.for.Wpf.Xaml, Telerik.Windows.Controls.FixedDocumentViewers.for.Wpf.Xaml

Reporting

  • Changes to the installer:
    • Change: The default installation folder is now "C:\Program Files\Acuit Pinpoint Reporting" (previously was "C:\Program Files (x86)\Acuit Pinpoint Reporting").
    • Fix: Installer not using install folder customized via bootstrapper, and removed feature selection screen.
  • Some internal components were upgraded for incremental performance and reliability improvements: CronExpressionDescriptor, Hangfire, jquery, Microsoft.AspNetCore.Authentication.Negotiate, Microsoft.Extensions.Hosting.WindowsServices, Microsoft.Extensions.Logging.Abstractions, Serilog, Serilog.AspNetCore, Telerik.Reporting.OpenXmlRendering, Telerik.Reporting.Services.AspNetCore, twitter-bootstrap

Developer API

Server API

  • Change: Now if an unknown buyoff name is provided to SetBuyOff, SetBuyoff2, ClearBuyOff, or ClearBuyoff2, a BusinessLogicFault will occur instead of throwing ConfigurationException. This will result in a friendlier "The buyoff ... is not a buyoff that is configured for the line" message in Acuit Pinpoint Workstation instead of "An internal error occurred in Acuit Pinpoint Server").

Acuit.Pinpoint.BarCodeScanning Package

  • Now references Microsoft.Extensions.Logging.Abstractions 7.0.1

Acuit.Pinpoint.Common Package

  • Now references Microsoft.Extensions.Logging.Abstractions 7.0.1

Acuit.Pinpoint.IO.Testing.Abstractions Package

  • Now references System.Reactive 6.0.0

Acuit.Pinpoint.Modbus Package

  • Now references Microsoft.Extensions.Logging.Abstractions 7.0.1

Acuit.Pinpoint.ResourceManagement Package

  • Now references Microsoft.Data.Sqlite 7.0.9
  • Now references SQLitePCLRaw.bundle_e_sqlite3 2.1.5

Acuit.Pinpoint.Server.Configuration

  • Change: Authorization permission names are now case-insensitive.

Acuit.Pinpoint.Workflows Package

  • Change: Changed guidance for activity implementations to not check cancellation token before doing anything else. Workflow engine now checks it before creating a new activity context within which to execute the activity.
  • Now references Microsoft.CodeAnalysis.CSharp.Scripting 4.6.0
  • Now references Microsoft.Extensions.Logging.Abstractions 7.0.1

Acuit.Pinpoint.Workflows.Testing Package

  • New: Added IsTrueValidator and IsFalseValidator validators.
  • New: Added {IsTrue} and {IsFalse} markup extensions.
  • Now references Microsoft.Extensions.Logging.Abstractions 7.0.1

7.1.94 - 2023-05-02

Workstation

  • Improve: The message added to the test log when a test being performed within a test workflow fails now includes right-arrow separators between the various detail messages to make them easier to read.

Developer API

Acuit.Pinpoint.Workflows Package

  • New: Added NullExtensions.IsNotNull overload for nullable value type arguments.

Acuit.Pinpoint.Workflows.Testing Package

  • Improve: Added right-arrow separators between inner exceptions shown in test log via TestFailedException CreateLogged and CreateLoggedFromReason methods.

7.1.91 - 2023-05-01

Workstation

  • Improve: Now when a test being performed within a test workflow fails, the message logged to the test log will include all details about the error (i.e., inner exception messages).

Developer API

Acuit.Pinpoint.Workflows.Testing Package

  • Improve: TestFailedException CreateLogged and CreateLoggedFromReason methods now include messages from inner exceptions in the log message.

7.1.89 - 2023-04-30

Developer API

Acuit.Pinpoint.Workflows.Testing Package

  • Change: TestFailedException now derives from WorkflowException.

7.1.87 - 2023-04-30

Major Workflows Update

This version includes a major update to Acuit Pinpoint Workflows that brings these major new enhancements:

  • Built-in, standardized support for readings from devices that can be used by a new suite of built-in workflow activities that can be used to easily create test workflows.
  • A new standardized way to track data values with metadata describing units, precision, etc.
  • Improved workflow activity input arguments design, including support for asynchronous value sources (including other activities) and for data sources that stream a series of values asynchronously.
  • Standardized support for activities that produce a result, with a new IActivity abstraction for executable activities. This replaces the old "OutputVariableName" method of producing output values.

BREAKING CHANGES:

  • The XAML for some workflows will require updates due to a few breaking changes to built-in activities. Changes are detailed below.
  • All Acuit Pinpoint Workstation plug-ins that reference any workflows NuGet packages (such as Acuit.Pinpoint.Workflows) to do things like provide custom activities for workflows must be recompiled against this new version, updating as needed to support the breaking changes.

Server

  • New: Can now configure rejected parts for component types via the <rejectParts> element.
  • New: Acuit.Pinpoint:PlugIns:SearchPaths key/value setting, to make configuring line plug-in search paths easier than with the existing Acuit.Pinpoint:PlugIns:SearchPath setting.
  • New: The Acuit.Pinpoint:PlugIns:SearchPath key/value setting (and the new Acuit.Pinpoint:PlugIns:SearchPaths setting) can now contain environment variables quoted with the percent sign character (%).
  • New: Now key/value configuration settings that specify paths to files that will be retrieved by Acuit Pinpoint Workstation (e.g., plug-ins referenced via line configuration or files like images used by certain plug-ins) can contain environment variables quoted with the percent sign character (%).
    Settings defined on Acuit Pinpoint Server with environment variables will work even with older versions of Acuit Pinpoint Workstation that retrieve these files.
  • Improve: Now logs warnings to the application log for configured plug-in search paths that don't exist.
  • Fix: Grammer error in a component scan tester logic details message.
  • Some internal components were upgraded for incremental performance and reliability improvements: jquery, LigerShark.WebOptimizer.Core, Microsoft.AspNetCore.Authentication.Negotiate, Microsoft.EntityFrameworkCore.SqlServer, Newtonsoft.Json, Telerik.UI.for.Blazor

Workstation

  • BREAKING CHANGES: See the "Acuit.Pinpoint.Workflows Package", "Acuit.Pinpoint.Workflows.Testing Package", and "Acuit.Pinpoint.Workflows.Workstation Package" sections below for changes that affect plug-ins or custom workflows.
  • BREAKING CHANGES: Test workflows will no longer be provided a Tester parameter.
  • New: Now provides an IReadingsRegistry service that plug-ins can easily use to provide readings for use by workflows, including with automatic polling.
  • New: Now configuration settings defined in local configuration sources (e.g., settings.json) that specify paths to files that are retrieved by Acuit Pinpoint Workstation (e.g., plug-ins referenced via line configuration or files like images used by certain plug-ins) can contain environment variables quoted with the percent sign character (%).
  • Change: The alarm message and error log entries that occur when an error occurs in a unit workflow or in a test workflow due to parameter errors have changed wording slightly.
  • Fix: Now when a test workflow fails due to an unhandled error, the application will not crash, but instead will log an error and show an alarm message. If the test type was configured to use a view that required navigation (e.g., MainView), then the test view will be closed.
  • Fix: Bug where ITestViewModel.WorkflowData would clear as soon as a test workflow completed, which would cause test views that continued to display data from the workflow to stop working.
  • Fix: Crash when a plug-in attempts to display a message box (which can happen indirectly via an interactive alarm) after the main window has closed.
  • Fix: Shows incorrect "The method or operation is not implemented." alarm message and error log entry when configuration settings cannot be initialized due to some conditions.
  • Fix: Installer not using install folder customized via bootstrapper, and removed feature selection screen.
  • New capabilities in Acuit Pinpoint Server emulation via "ServerEmulation" config section:
    • New: Can now configure component scans with which to initially populate test units.
    • New: Can now emulate responding to invoked server plug-in methods.
    • Improve: Table source file paths can now include environment variables.
  • Some internal components were upgraded for incremental performance and reliability improvements: Microsoft.Data.Sqlite, Newtonsoft.Json, System.ServiceModel.NetTcp, Telerik.Windows.Controls.Data.for.Wpf.Xaml, Telerik.Windows.Controls.FixedDocumentViewers.for.Wpf.Xaml

Reporting

  • Some internal components were upgraded for incremental performance and reliability improvements: Hangfire, jquery, Microsoft.AspNetCore.Authentication.Negotiate, Newtonsoft.Json, Telerik.Reporting.OpenXmlRendering, Telerik.Reporting.Services.AspNetCore

Developer API

Server API

  • New: Now paths to files retrieved via the PinpointFileService API can contain environment variables quoted with the percent sign character (%).
  • Change: Now the ComponentScanTest method does not include a line feed at the end of each step result.

Acuit.Pinpoint.Configuration Package

  • Fix: NotImplementedException thrown when a file configuration source uses a relative path.
  • Now references Newtonsoft.Json 13.0.3
  • Now references System.ServiceModel.Primitives 4.10.2

Acuit.Pinpoint.IO.Abstractions Package

  • New: Added OptionalSingleConfiguredDeviceEnumerator.
  • New: Added PolledConnectedDevice.
  • Change: Now depends on Acuit.Pinpoint.ErrorHandling.Abstractions and Acuit.Pinpoint.Timing.Abstractions.
  • Added separate .NET 4.7.2 target.

Acuit.Pinpoint.IO.Testing.Abstractions Package

  • New: Initial version of this new package, which provides a new standardized way for plug-ins to provide data readings from devices that can be consumed via standard workflow activities. Primary types include IDataValue, IDataValueDescriptor, and IReadingsRegistry.

Acuit.Pinpoint.ResourceManagement Package

  • Now references Microsoft.Data.Sqlite 7.0.5

Acuit.Pinpoint.Server.Client Package

  • Now references System.ServiceModel.NetTcp 4.10.2

Acuit.Pinpoint.Timing.Abstractions Package

  • New: Timeout timers, via ITimeService.StartNewTimeoutTimer extension method that returns an ITimeoutTimer.

Acuit.Pinpoint.Windows Package

  • Fix: "Cannot set Owner property to a Window that has not been shown previously" InvalidOperationException in BaseUserInterfaceService when it attempts to display a message box with no visible application window.

Acuit.Pinpoint.Workflows Package

The following changes to this package affect workflows (i.e., XAML workflow definitions):

  • BREAKING CHANGE: The syntax used to escape a string value in XAML that would normally be interpreted as a code expression (e.g., "[...]") has changed. To specify the string literal of "[Literal]", this should be used: "%[Literal]" (the old method used "[][Literal]").
  • BREAKING CHANGE: Removed support for workflows that used the old http://schemas.acuit.com/pinpoint/2020/xaml/testing namespace. http://schemas.acuit.com/pinpoint/2020/xaml/workflows should be used instead.
  • New: Added the following new workflow activity:
    • DoWithCleanup
  • Changes to existing workflow activities include:
    • ExecuteWorkflow
      • Improve: The ParameterValue item's Value property can now be set via content.
    • SetVariable
      • Improve: The Value property can now be set via content.
  • Improve: All workflow activities with input arguments that are collections now use collection types recognized by the Visual Studio XAML editor, reducing nuisance errors in the editor.

The following changes to this package affect plug-ins that reference this package (i.e., code):

  • BREAKING CHANGE: The Expression<TValue> expression type and the obsolete non-generic expression types (e.g., StringExpression), have been removed and replaced by the new, more general ValueSource/ValueSource<T> types that support asynchronous evaluation.
  • BREAKING CHANGE: Removed ActivityWithOutput<TOutput>, replacing with Activity<TResult> that allows activities that produce result values to do so in a standard way that can be consumed by other activities, including in workflow XAML as values for activity input arguments. Custom activities should derive from either Activity (if they do not produce a result value) or Activity<TResult> (if they do produce a result value). Because Activity<TResult> does not derive from Activity, properties and parameters that accept any activity for execution now use IActivity so that any executable activity can be provided, whether or not it produces a result value. ActivityContext, WorkflowHost, and WorkflowInvoker all have added support for obtaining result values from activities that produce them.
  • BREAKING CHANGE: The old expression validation helpers have been replaced with new ActivityContext extension methods for evaluating and validating value sources that support fluent validation (in Acuit.Pinpoint.Workflows.Validation.ValidationExtensions).
  • BREAKING CHANGE: Activities and other types that have optional input arguments now all use nullable types for their values (e.g., Transition.Condition now yields a bool? instead of bool).
  • BREAKING CHANGE: Workflow execution errors will now always yield a WorkflowException (or derived). Unhandled exceptions thrown by the workflow will be wrapped in a WorkflowException. This changes the exceptions that can be produced from:
    • WorkflowHost.Task
    • All of the WorkflowInvoker.InvokeAsync methods
    • IWorkflowEventManager.RaiseEventAsync
  • BREAKING CHANGE: In the TypeConverterHelper static class, the Convert, ConvertValueFromInvariantString, and TryConvertValueFromInvariantString methods have been replaced by new Convert and InvariantConvert methods with different signatures and expanded capabilities.
  • BREAKING CHANGE: Removed the XamlLoader and XamlParser helper classes. WorkflowXamlServices should be used instead.
  • Change: WorkflowParameterException now derives from WorkflowException and has a new ParameterName property.
  • Change: WorkflowHost methods can now throw ObjectDisposedException.

Acuit.Pinpoint.Workflows.Testing Package

The following changes to this package affect workflows (i.e., XAML workflow definitions):

  • BREAKING CHANGE: Removed the following workflow activities and types:
    • AggregateMaximum, AggregateMinimum, AggregateReadings, BooleanTestDataValidator, MinMaxTestDataValidator, PowerOff, PowerOn, ReadingMonitor, TargetToleranceTestDataValidator, ThermostatClear, ThermostatSet (these used the old tester registry and have been replaced by new activities listed below)
    • PerformTest (obsolete, replaced by RecordTest)
  • New: Added the following new workflow activities and types:
    • MonitorData
    • TakeValue
    • Readings markup extensions: {Reading ...}, {ReadingNow ...}
    • Data value samplers: SampleAfterDelay, SampleAverageOverTime, SampleMinimumOverTime, SampleValidOverSlidingWindow, SampleValidOverTime, SampleWhenAny, SampleWhenBecomesValid
    • Validators: EqualToValidator, GreaterThanOrEqualToValidator, GreaterThanValidator, LessThanOrEqualToValidator, LessThanValidator, MinMaxValidator, NotEqualToValidator, TargetToleranceValidator
  • Improve: All activities that can fail the active test now use the ITestLog service (if available) to first log a test failure message before throwing the exception, and then the RecordTest activity will not log the test failure message when handling the exception (if already logged). This improves the test logs, ensuring that (1) the sequence of events in the test log is accurate, since cleanup actions that perform their own logging can occur in response to the test failure, and (2) the time stamp for the test failure event is accurate.
  • Changes to existing workflow activities include:
    • FailTest
      • Improve: The test failure message will be logged before failing the test.
    • FailTestIfTestDataItemBad
      • Improve: When failing the test, the test failure message will be logged first.
    • Log
      • Change: Now supports other activities redirecting logging from the active test log, and will now not fail if it executes when there is no active test.
    • SetTestDataItem
      • Improve: When failing the test, the test failure message will be logged first.
      • Change: Now supports other activities redirecting logging from the active test log.
    • RecordTest
      • Improve: If another activity emits a test failure log entry before failing the test, the test failure log entry will not be added again by RecordTest.
    • SetTestDataItem
      • BREAKING CHANGE: The Validator property was removed, replaced by the IsGood property from which the good/bad status is determined directly.
      • Improve: When failing the test, the test failure message will be logged first.
      • Improve: Now automatically uses all available information about a data value (e.g., validation status, units, formatting).
      • Improve: The Value property can now be set via content.
    • TakeValue
      • BREAKING CHANGE: The Sampler property has been replaced by Value that accepts any type of value. The new sampler activities can be used to obtain sampled readings.

The following changes to this package affect plug-ins that reference this package (i.e., code):

  • BREAKING CHANGE: All types in the package have been updated to be consistent with the changes in the Acuit.Pinpoint.Workflows package, as listed above.
  • BREAKING CHANGE: Removed the types related to the obsolete tester registry (e.g., ITester, ITesterReading, ITesterRegistry), replacing them with services in the new Acuit.Pinpoint.IO.Testing.Abstractions package. Plug-ins can no longer register ITester instances; they should instead register readings providers via IReadingsRegistry.
  • BREAKING CHANGE: Data value validators have been redesigned to work with the new data value types provided by the Acuit.Pinpoint.IO.Testing.Abstractions package.
  • BREAKING CHANGE: Added StartDateTime and EndDateTime to IActiveTest, and CompleteTest will now throw InvalidOperationException if the test has already been completed.
  • New: Now the RecordTest activity provides an ITestLog service to child activities.

Acuit.Pinpoint.Workflows.Workstation Package

The following changes to this package affect workflows (i.e., XAML workflow definitions):

  • BREAKING CHANGE: The Tester property on the test view model (ITestViewModel) has been removed.
  • New: Added LatestReadings to the test view model (ITestViewModel).
  • Changes to existing workflow activities include:
    • AddPreassembly
      • BREAKING CHANGE: Removed the OutputVariableName and Output properties; its output value is now available via a returned value from the activity.
    • RemoveComponent
      • BREAKING CHANGE: Removed the OutputVariableName and Output properties; its output value is now available via a returned value from the activity.
    • RemovePreassembly
      • BREAKING CHANGE: Removed the OutputVariableName and Output properties; its output value is now available via a returned value from the activity.
    • ScanItem
      • BREAKING CHANGE: Removed the OutputVariableName and Output properties; its output value is now available via a returned value from the activity.
    • ShowMessageBox
      • BREAKING CHANGE: Removed the OutputVariableName and Output properties; its output value is now available via a returned value from the activity.
    • VerifyAndAddComponentScan
      • BREAKING CHANGE: Removed the OutputVariableName and Output properties; its output value is now available via a returned value from the activity.

The following changes to this package affect plug-ins that reference this package (i.e., code):

  • BREAKING CHANGE: All types in the package have been updated to be consistent with the changes in the Acuit.Pinpoint.Workflows package, as listed above.
  • New: Added IWorkflowEventManager.HandleWorkflowEventHandlerError.
  • Change: Added a new IWorkflowEventManager.RaiseEventAsync overload that takes a RaisedWorkflowEventOptions containing all of the options. Deprecated the old RaiseEventAsync overload.
  • Change: Now UnitWorkflowCanceledException derives from WorkflowException.

Acuit.Pinpoint.Workstation.Interfaces Package (Workstation Plug-in API)

  • New: SimpleDeviceTester<TDevice> added to make it easier to create simple device testers.

7.0.148 - 2023-02-27

Server

  • Improve: Make Monitor line index page more responsive.
  • Fix: "An error has occurred. This application may no longer respond until reloaded." errors that can intermittently occur on the Monitor, View/Search, Admin, and Component Verification Tester pages (since v7.0.59).
  • Fix: Incorrect line configuration editor autofill suggestions (e.g., "buyoff" instead of "buyOff") (since v7.0.59).
  • Some internal components were upgraded for incremental performance and reliability improvements: CodeMirror, LigerShark.WebOptimizer.Core, Microsoft.AspNetCore.Authentication.Negotiate, Microsoft.EntityFrameworkCore.SqlServer, Quartz

Workstation

  • Improve: Pinpoint Server emulation via "ServerEmulation" config section by adding emulation of normal error handling when plug-in tries to invoke a server plug-in method.
  • Fix: Crash in Tools, Configure Local Hardware when using a registered custom device that does not use any configuration settings (since v6.220.172).
  • Some internal components were upgraded for incremental performance and reliability improvements: Microsoft.CodeAnalysis.CSharp.Scripting
  • Fix: Unexpected error that can happen when certain plug-ins are being closed, with an error in the app log similar to (since v6.227.120-alpha):

    System.AggregateException: One or more errors occurred. ---> System.ObjectDisposedException: Cannot access a disposed object.
    Object name: 'Acuit.Pinpoint.Workstation.ResourceManagement.TableCsvReferencedResource'.

  • Some internal components were upgraded for incremental performance and reliability improvements: Microsoft.Data.Sqlite, System.Text.Json

Reporting

  • Some internal components were upgraded for incremental performance and reliability improvements: Microsoft.AspNetCore.Authentication.Negotiate

Developer API

Acuit.Pinpoint.ResourceManagement Package

  • Now references Microsoft.Data.Sqlite 7.0.3

Acuit.Pinpoint.Workflows Package

  • Now references Microsoft.CodeAnalysis.CSharp.Scripting 4.5.0

7.0.112 - 2023-02-12

Server

  • Improve: Monitor, Admin, and Component Verification Tester page responsiveness has been improved.
  • Improve: View/Search page now supports proper web navigation and linking.
  • Improve: Component Verification Tester web page is now cleaner and supports proper web navigation and linking.
  • Improve: Minor improvements to Component Verification Tester page messages.
  • Change: The Production Monitor page URLs have changed, so saved links may not work (since v7.0.59).
  • Fix: Edit links on Edit Security Group page result int 404 page not found (since v7.0.67).
  • Fix: Custom test data added by a server plug-in is not included in the View Unit History page (since v7.0.59).
  • Fix: Broken unit details links in Monitor Latest Defects page (since v7.0.59).
  • Fix: Broken Acuit Pinpoint Workstation installer link on About page (since v7.0.59).
  • Fix: Incorrect page titles for admin and monitor pages (since v7.0.59).
  • Fix: Help, Check for Update broken from Acuit Pinpoint Workstation v6 (since v7.0.59).
  • Fix: When quickly navigating between web pages, sometimes the Monitor, View, or Admin pages will show an unexpected error with an app log error entry like (since v7.0.59):

    Microsoft.AspNetCore.Components.Server.Circuits.CircuitHost: Unhandled exception in circuit.
    Microsoft.JSInterop.JSException: Could not find 'TelerikBlazor.initMediaQuery' ('TelerikBlazor' was undefined).

  • Fix: Change language selector does not work sometimes from Monitor and other pages (since v7.0.59).
  • Fix: Monitor page not showing any content when query parameters are formatted improperly or an internal error occurs (since v7.0.59).

7.0.75 - 2023-02-05

Server

  • Fix: Bug where switching between Monitor tabs doesn't work when the line name has a space (since v7.0.74).

7.0.74 - 2023-02-05

Server

  • Fix: Bug where switching between Monitor tabs doesn't work (since v7.0.59).

7.0.72 - 2023-02-05

Server

  • Fix: Bug where Monitor and Admin page links are incorrect (since v7.0.59).

7.0.70 - 2023-02-05

Server

  • Fix: ExceptionHandlerMiddleware unhandled exception in web app (since v7.0.59):

    System.UnauthorizedAccessException: Access to the path 'C:\Program Files (x86)\Acuit Pinpoint Server 7\Web\obj\WebOptimizerCache' is denied.

7.0.67 - 2023-02-05

Server

  • Change: Web app URLs are now lowercase.
  • Change: "index" removed from web app URLs.
  • Fix: Cleaned up some items when printing pages from web app.
  • Fix: Crash in web app maintenance/productionqueuesender page when a line has a configuration error.

7.0.59 - 2023-02-04

Server

  • BREAKING CHANGE: New Acuit Pinpoint web application with these main improvements (along with many minor improvements):
    • Modern web interface that no longer uses Microsoft Silverlight.
    • Built-in web server; Microsoft Internet Information Services (IIS) is no longer used.
    • Note that some page addresses have changed, so some saved shortcuts will need to be changed.
  • Some internal components were upgraded for incremental performance and reliability improvements: Quartz

Server Console

  • BREAKING CHANGE: This application has been removed. The Acuit Pinpoint services should now be managed via standard Windows services management facilities.

Workstation

  • Some internal components were upgraded for incremental performance and reliability improvements: Microsoft.Data.Sqlite, SQLitePCLRaw.bundle_e_sqlite3, Telerik.Windows.Controls.Data.for.Wpf.Xaml, Telerik.Windows.Controls.FixedDocumentViewers.for.Wpf.Xaml

Reporting

  • Fix: Report parameters does not indicate current selection.
  • Fix: Missing thread identifier in application log file.
  • Some internal components were upgraded for incremental performance and reliability improvements: Hangfire, jquery, Microsoft.AspNetCore.Authentication.Negotiate, Telerik.Reporting.OpenXmlRendering, Telerik.Reporting.Services.AspNetCore

Developer API

Acuit.Pinpoint.Configuration Package

  • Now targets .NET Standard 2.0.

Acuit.Pinpoint.HealthChecks Package

  • Now targets .NET Standard 2.0.

Acuit.Pinpoint.IO.Abstractions Package

  • Now targets .NET Standard 2.0.

Acuit.Pinpoint.ResourceManagement Package

  • Now references Microsoft.Data.Sqlite 7.0.2
  • Now references SQLitePCLRaw.bundle_e_sqlite3 2.1.4

Older

See Acuit Pinpoint 6 Change History