Photomechanics API
Class List
Here are the classes, structs, unions and interfaces with brief descriptions:
 CAsyncDisposableExtendedBaseProvides base implementation of IAsyncDisposableExtended with disposal behavior intended for this interface.
 CAsyncDisposableExtendedImplWhen inheriting from AsyncDisposableExtendedBase directly is not possible, use this to implement IAsyncDisposableExtended pattern. Implementation of every interface member can be passed through to instance of this class.
 CAsyncEventHandlersExtensionsExtension methods for using asynchronous event handlers.
 CAsyncSerialQueueFIFO tasks serial queue. Enqueued task will be processed one at time. Uses similar approach as https://github.com/Gentlee/SerialQueue modified to handle async actions instead.
 CCancelRotationCommandCancel rotation command.
 CComponentBasedDeviceApiBaseDefault device API implementation base.
 CComponentBasedDeviceApiExtensionsExtensions for IComponentBasedDeviceApi.
 CDateTimeExtensionsProvides extension methods for DateTime.
 CDisposableExtendedExtensionsIAsyncDisposableExtended extensions.
 CEnumerableExtensionsFrom https://stackoverflow.com/a/25877042.
 CExecuteCustomEsp8266CommandCommandSet acceleration in steps per second^2 command.
 CExecuteCustomEsp8266CommandCommandAppendNewlineSet acceleration in steps per second^2 command.
 CFirmwareAssertionFailedExceptionThe exception that is thrown when firmware reports internal error.
 CGetAccumulatedStepsCountCommandQuery current accumulated steps counter value.
 CGetCurrentStepsCommandQuery current steps command.
 CGetInitialSpeedCommandQuery initial speed.
 CGetIsCancellationRequestedCommandQuery is cancellation requested.
 CGetIsRotatingCommandDetermine whether the table is currently rotating.
 CGetLampBrightnessCommandGet brightness value of specified lamp by its index.
 CGetLampsCountCommandGet number of lamps supported by light dimmer.
 CGetManualRotationModeEnabledCommandDetermine whether the turntable is in manual rotation mode.
 CGetMaxAllowedSpeedCommandQuery maximal allowed speed.
 CGetStepsPerRoundCommandQuery steps per round.
 CGetVersionInfoCommandQuery version info string.
 CIAccelerationControlProviderProvides acceleration control.
 CIAccumulatedStepsCountProviderProvides basic turn table functions.
 CIAsyncDisposableExtendedExtended IAsyncDisposable interface with additional object state info providers and specific implementation pattern expected from implementation. Should be used for heavy and complex hardware API objects with complex dispose routines like cameras. IAsyncDisposable.DisposeAsync implementation should either 1) Set IsDisposed to true, perform resource cleanup and logging associated with it and invoke Disposed event in the end. 2) If disposal is already in progress, await its completion. This way, any caller of IAsyncDisposable.DisposeAsync can assume that disposal was fully complete after awaiting the call, even when used concurrently.
 CIComponentBasedDeviceApiRepresents high level device API.
 CIDataTransportProvides means to exchange string data with turntable.
 CIDeviceApiComponentRepresents device API component.
 CIEmbeddedPhotoShootingProviderProvides methods to shoot photos directly from table through sync cable.
 CIEngineLockControlProviderEngine lock control component.
 CIExtendedRotationProviderProvides additional rotation features.
 CILaserControlProviderProvides control over lasers state.
 CILightControlProviderProvides control over lighting lamps.
 CIManualRotationProviderProvides manual control over rotation speed.
 CIModbusListenerRepresents listener which periodically updates provided registers.
 CInvalidDataReceivedExceptionThe exception that is thrown when unable to correctly parse data received from turn table.
 CIObservableRegisterObservable register with Int16 value.
 CIPhotomechanicsDevicesManagerServiceSearches for turntables and cranes and instantiates API.
 CIRotationFeedbackProviderProvides info about current steps.
 CIRotationProviderProvides basic turn table functions.
 CIsExternalInitWon't be needed after .NET 5 migration
 CITurntableApiTurntable high-level component-based API.
 CITurntableApiComponentRepresents turn table API component.
 CITurntableCommandRepresents turntable command that has status and can be awaited.
 CIVersionInfoProviderProvides info about current steps.
 CIWiFiSettingsProviderProvides basic turn table functions.
 CLegacyMftApiAPI implementation for MFT turn tables.
 CLegacyMftCommandBaseRepresents turn table API command.
 CLegacyMftCommandRunnerProvides methods to send commands and receive messages from turntable.
 CLegacyMftMessagesTransportRepresents physical turn table messages transport. Provides methods for send and receive messages.
 CLocalizedEnumAttributeMarks enum field with translation key.
 CLoggerSuppressionTokenProvides suppressed logger. Disables suppression when disposed.
 CMathExtensionsExtensions for Math.
 CMftApiAPI implementation for MFT turn tables.
 CMftCommandBaseRepresents turn table API command.
 CMftCommandRunnerProvides methods to send commands and receive messages from turntable.
 CMftMessagesTransportRepresents physical turn table messages transport. Provides methods for send and receive messages.
 CModbusCommandRunnerRuns command for modbus-based turn table (RD-300).
 CModbusListener
 CNetworkDataTransportNetwork data transport. Intended for use with our ESP8266 equipped turntables.
 COneAtATimeTaskRunnerProvides logic to ensure that given asynchronous action will not be run concurrently.
 COperationRecords operation timings to provided logger.
 CPhotomechanicsDevicesManagerServiceDefault devices manager implementation. Currently searches for MFT series turntables and K-1x cranes.
 CPhotomechanicsFakeDevicesManagerServiceDefault devices manager implementation. Currently searches for MFT series turntables and K-1x cranes.
 CProxyLoggerWrapper around ILogger allowing to dynamically change it. Useful to update context of already injected loggers.
 CRandomExtensionsExtensions for Random.
 CRD300TurntableApiTurntable API implementation for RD-300.
 CRegisterValueChangedEventArgsContains information about register's value change.
 CResetAccumulatedStepsCountCommandReset accumulated steps counter to zero.
 CRotateInfiniteCommandRotate infinite command.
 CRotateStepsCommandRotate steps command.
 CSerialDataTransportMessages transport for serial port. When connected via USB, turntables appear as COM ports.
 CSerilogExtensionsProvides helper extensions to Serilog logging.
 CSetAccelerationCommandSet acceleration in steps per second^2 command.
 CSetCommonBrightnessCommandSet brightness value for all available lamps.
 CSetCustomEsp8266CommandsDelayCommandSet acceleration in steps per second^2 command.
 CSetEngineEnabledCommandSet engine lock command.
 CSetInitialSpeedCommandSet initial speed in steps per second command.
 CSetLampBrightnessCommandSet brightness value for specified lamp by its index.
 CSetManualRotationModeEnabledEnable or disable manual rotation mode commandl.
 CSetSpeedManuallySet speed in manual rotation mode.
 CSetStepsPerNotifyCommandSet rotation steps per notify command.
 CSetTargetSpeedCommandSet target peak speed in steps per second.
 CStepsDegreesConversionsExtensions for IRotationProvider to simplify conversion between steps and degrees.
 CStringExtensionsSystem.String extensions.
 CSuppressableLoggerILogger wrapper that can be temporarily suppressed.
 CTaskCompletionSourceExtensionsExtensions for TaskCompletionSource.
 CTaskExtensionsTask custom extensions.
 CThreadHelperThread related utility methods.
 CTurntableCommandBaseBase class for ITurntableCommand, implements common functionality.
 CTurntableCommandDataAccessExceptionException that is thrown when attempted to access command data properties before it is finished.
 CTurntableCommandExtensionsExtensions for ITurntableCommand.
 CTurntableModelExtensionsTurntable model extension methods.
 CTurntableOperationFailedExceptionThe exception that is thrown when requested turn table operation failed.
 CTurntableVersionInfoRepresents version info received from turntable.