Releases: ASCOMInitiative/ConformU
Conform Universal 1.0.0 Release Candidate 1
Introduction
Conform Universal (ConformU) is a cross-platform tool to validate that Alpaca Devices and ASCOM Drivers conform to the ASCOM interface specification. ConformU runs natively on Linux, Arm, MacOS and Windows and, when out of beta, will supersede the original Windows Forms based Conform application.
Please be aware that this release will reset Conform Universal's configuration to default values.
New Features since beta 0.9.0.0
- The application will now look for and report application updates that are available on Github.
- The 32bit and 64bit Windows versions are now provided through a conventional installer, which removes the need to manually install and update the application.
- The MacOS version is now provided as an Apple signed DMG file that installs a Universal Mac App that contains both Apple and Intel silicon binaries.
- All long running operations now provide dynamic status progress messages.
- At startup the application's server component now automatically chooses a free IP port on which to run. The port number can also be configured to any required fixed value through the Settings page.
- A select device button has been added to the application home page
- The application now returns directly to the home page when a new device is selected instead of staying on the device selection page. This behaviour can be disabled through the Settings page.
- COM exception messages are now translated to more meaningful descriptions e.g. COMException (0x8004040B) is translated to "Invalid Operation.
- The Camera "wait for exposure to complete" time is now configurable through the Settings page.
- The Rotator is restored to the starting position after tests are complete.
- The Telescope "wait for slew to complete" time is now configurable through the Settings page.
- All Linux application executables are now supplied with the execute flags set so they are ready to run and no longer need to be chmod'd before use.
Bug fixes
- Errors during telescope pre-run checks are now handled gracefully.
- Excessive font sizes have been reduced.
- Window resizing is now more responsive.
- Occasional JavaScript exceptions when starting and closing the application have been fixed.
- The application now terminates reliably on all operating systems. By default, the server component will close 2 seconds after the browser page closes but this value can be changed as required on the Settings page.
- The bug that prevented testing of the COM Video.LastVideoFrame property has been fixed.
Installers
All installers are completely self-contained and do not have dependencies on any other packages.
- Windows
- The Windows installer supports both 32bit and 64bit OS and will create the expected start menu entries. Optionally it will create a desktop icon.
- MacOS
- The MacOS application is supplied as a DMG file that self mounts when double clicked and displays a basic GUI. Using this you can drag and drop the application to the Applications folder and can then use it as normal.
- Linux
- The Linux 64bit and Arm 32/64bit versions are supplied as compressed archives that need to be expanded using tar -xf before use. The application can then be run from the command line by the command ./conformu
Conform Universal - Beta 0.9.0.0
Conform Universal (ConformU) is a cross-platform tool to validate that Alpaca Devices and ASCOM Drivers conform to the ASCOM interface specification. ConformU runs natively on Linux, Arm, MacOS and Windows and, when out of beta, will supersede the original Windows Forms based Conform application.
Features
- Tests Alpaca devices on all Platforms and COM Drivers on the Windows platform
- Alpaca devices that support the Alpaca discovery protocol will automatically be presented for selection.
- An Alpaca device URL, port number and device number can be set manually to target devices that don't support discovery.
- When running on Windows, COM Drivers will be presented for testing as well as Alpaca devices.
- The application can run:
- in the user's default browser as a Blazor single page application
- as a command line utility without any graphical UI
- Test outcomes are reported:
- in the browser UI and console
- as a human readable log file
- as a structured machine readable JSON report file
- The new Alpaca Discovery Map provides an Alpaca Device view of discovered ASCOM devices and a unique ASCOM Device view of discovered Alpaca devices.
Changes from current Conform behaviour
- An issue summary is appended at the end of the conformance report.
- All conformance deviations are reported as "issues" rather than as a mix of "errors" and "issues".
- Settings can be reset to default if required.
- Navigation is locked while Alpaca discovery and device testing is underway, but the conformance test run can still be interrupted on demand.
Command line options
- '--commandline' - Run as a command line application with no graphical interface using a pre-configured settings file.
- '--settings fullyqualifiedfilename' - Fully qualified file name of the application configuration file. Leave blank to use the default location.
- '--logfilepath fullyqualifiedlogfilepath' - Fully qualified path to the log file folder. Leave blank to use the default mechanic, which creates a new folder each day,
- '--logfile filename' - If filename has no directory/folder component it will be appended to the log file path to create the fully qualified log file name. If filename is fully qualified, any logfilepath parameter will be ignored. Leave filename blank to use automatic file naming, where the file name will be based on the file creation time.
- '--resultsfile fullyqualifiedfilename' - Fully qualified file name of the results file.
- '--debugdiscovery' - Write discovery debug information to the log.
- '--debugstartup' - Write start-up debug information to the log.
- '--help' - Dislay a help screen.
- '--version' - Display version information.
Supported Operating Systems and Hardware
- Linux (tested on Mint 64bit)
- Arm (tested on Raspberry Pi)
- 32bit OS (Pi-3B 1Gb)
- 64bit OS (Pi-4 8Gb)
- Windows (tested)
- x64 pre-compiled
- x86 pre-compiled
- x64 requires DotNet support to be installed
- x86 requires DotNet support to be installed
- MacOS (not tested)
Installation and support requirements
Except for the Windows specific builds that require .NET to be pre-installed, the applications are self-contained and do not require any additional support components to be installed on the target machine. To install ConformU:
- Create a folder on your device to hold the ConformU application.
- Expand the appropriate "zip" or "tar" archive that corresponds to your device's hardware / OS architecture into the newly created folder.
- Linux environments only: Give the executable run permissions with the 'chmod 755 ./conformu' command.
- The application executable (conformu (Linux) or conformu.exe (Windows))can now be run directly from a file browser or from the command line.
- When run, the executable starts a command line server application and, if operating in the default GUI mode, automatically starts the default browser and creates a new tab to hold the application window.
Known Issues
- The server console application does not always close immediately the browser window is closed. Pressing CTRL/C in the console window will terminate the server application.
- Raspberry Pi3B - If the Chromium browser is the default browser and is not already running, the ConformU UI will not be displayed, and Chromium error messages will appear in the console. If Chromium is already running, the ConformU UI is displayed as expected. The Firefox browser displays the ConformU UI correctly regardless of whether or not it is already running. The issue with Chromium does not appear on the 64bit Pi4.
- When testing COM Video drivers, the Video.LastVideoFrame property incorrectly reports a PropertyNotImplemented error. This will be fixed in the next release.
ConformU - RC2
Functional and appearance changes
- Dome default Slew tolerance is now 1 degree
- Telescope default Slew tolerance is now 10 arc-seconds
- Small READ.ME updates
-
Bug fixes
- None
Infrastructure changes
- Now uses the repository version of ASCOM.Standard.Utilities/
ConformU - Release Candidate 1
Functional and appearance changes
- An Alpaca device can now be manually configured on the Device Selection page
- A machine readable JSON test summary file summarising the number of issues and providing text details of each issue found is now provided.
- by default this appears in the log file folder as a file: conform.report.txt
- the name and path to the summary file can be set through a command line option
- The log format is now consistent between console, screen and log file
- Safety interlocks have been added to prevent more than one activity being undertaken at a time
- Setup dialogues have coloured titles
- Device lists are now consistently sorted alphabetically
- The conformance test screen log now resizes to fill available screen area as the browser window size changes
- ConformU now behaves in a much more responsive manner to display size changes.
- It now reformats and is usable on a phone sized portrait UI when browsing from the phone to a running ConformU instance.
- Camera properties are now reset to legal values at the end of a conformance test.
- Dome and slew tests will now raise issues if reported locations are more than a configurable distance from the requested location.
- Error and Issue reporting.
- For consistency, all interface conformance deviations are now reported as ISSUES.
- ERRORS are reserved for unrecoverable or unhandled problems within the Conform application itself that, in theory, should never occur.
Bug fixes
- Ability to interrupt some running long running processes restored
- Video devices can no longer be selected on the Alpaca device select screen
- COM devices now shut down properly at the end of a test
- Fixed bugs in some Telescope and Dome slew tests that terminated waits for completion too early
Infrastructure changes
- Extensive code tidying and checks on correct migration from VB
- Now uses Daniel's COM client v18
ConformU Beta 5
- Addresses Observing conditions failures due to bad conversion logic from original VB source code
- Removes all dependence on VB.NET support library
- Logic reviewed for correctness throughout.
ConformU Beta 4
- Fixes MoveAxis "missing Minimum" bug.
- Fixes "exception while finding the executable last updated time".
- Fixes "delay in exiting process when browser is closed".
This version has been tested on Linux64 using Daniel's Omni-Drivers, also running on Linux, and all devices pass with no issues.
ConformU Beta3
Adds support for non-standard JSON element name casing and includes extra debug information for Alpaca devices.
ConformU Beta 2
- Adds a command line option -d or --debugdiscovery that includes discovery diagnostics in the log file
- Fixed an issue with log folder naming on Linux. (Month number was actually minutes number)
- Fixed an issue that caused an application failure if an Alpaca device returned an ASCOM device type string that was cased differently than the application was expecting e.g. it returned 'telescope' instead of 'Telescope'. I've made the application tolerant of device type casing so 'telescope' or other casings are now accepted.
- I've changed the publish process so that most support files are now compressed into a single executable and there are now only a handful of files to be deployed. My understanding is that this is expanded on first run to a location on the file system and reused from there on subsequent uses. This does mess up a few functions such as assembly.location and the build date is now in the first century!
ConformU Beta 1
Initial beta
This is a combined command line and Blazor single page application. By default the application launches a browser for manual testing but use of the -c command line option inhibits the Blazor presentation.
Use of the GUI should be self-explanatory for those familiar with the original Conform application.
- All devices implemented
- Can test COM and Alpaca devices on Windows and Alpaca devices on Linux
- Can be used as a command line utility with -c switch. Open a command prompt and enter "conformu --help" for command line options.
- Specify the location of a settings file that defines required test parameters
- Specify the name and location of the output log file
- Alpaca discover can be configured as required
- Dome and Switch testers default to safe operation until full capability is enabled through the settings dialogue
- COM driver testing on WIndows can be configured to use DriverAccess or Native access.
- Binaries
- Windows for 32/64bit WIndows OS - tested on Win 10 64bit
- Linux-Arm for Raspberry Pi 32bit OS - tested on Pi 3 Model B
- Linux-x64 for 64bit Linux distros. - Tested on Mint (Debian 64bit)
- These are .NET 5 stand-alone builds that have no installation dependencies and don't require any support files (which is why there are a large number of files 😀)
- Deployment
- Unzip everything to the required location, including the www folder and contents.
- conformu is the primary executable name in all three binary files and running this is the way to start the application.
- By default log files appear in the usual place on Windows and in Home/ascom on Linux
- Configuration File Default Location
- Windows - C:\Users\USERNAME\AppData\Local\conform\conform.settings
- Linux - home/.local/share/conform/conform.settings
Possible Issues
- The generated executables are not code signed and some anti-virus products may quarantine them or otherwise mess things up.
Known Issues
- In Blazor mode the launch process sometimes does not terminate when the browser closes. On Linux GUIs the process appears as a console, which usually closes after a few minutes on its own or can be closed / killed as required. On Windows there is no console window so you need to use Task Manager to kill any currently running ConformU process if the application won't start correctly.
- There appears to be an issue in the DriverAccess Rotator.Sync member that I haven't had time to track down.
- The DriverAccess COM test option runs drivers on the tester's thread i.e. not in a Windows message loop thread. Native mode runs drivers on a hidden Windows Form / message loop thread.
- Running on the tester's thread doesn't appear to impact test outcomes with DriverAccess
- Some in-process drivers that use Windows Forms timers do not update their hand box GUIs e.g. the Focuser simulator
- I'll migrate DriverAccess to use the Forms thread in a later beta.