mirror of
https://github.com/azaion/annotations.git
synced 2026-04-22 11:06:30 +00:00
update AI initializing
rework AIAvailabilityStatus events to mediatr
This commit is contained in:
@@ -14,6 +14,7 @@ using Azaion.Common.DTO.Config;
|
||||
using Azaion.Common.Events;
|
||||
using Azaion.Common.Extensions;
|
||||
using Azaion.Common.Services;
|
||||
using Azaion.Common.Services.Inference;
|
||||
using LibVLCSharp.Shared;
|
||||
using MediatR;
|
||||
using Microsoft.WindowsAPICodePack.Dialogs;
|
||||
@@ -106,38 +107,6 @@ public partial class Annotator
|
||||
_logger.LogError(e, e.Message);
|
||||
}
|
||||
};
|
||||
_inferenceClient.AIAvailabilityReceived += (_, command) =>
|
||||
{
|
||||
Dispatcher.Invoke(() =>
|
||||
{
|
||||
_logger.LogInformation(command.Message);
|
||||
var aiEnabled = command.Message == "enabled";
|
||||
AIDetectBtn.IsEnabled = aiEnabled;
|
||||
var aiDisabledText = "Будь ласка, зачекайте, наразі розпізнавання AI недоступне";
|
||||
var messagesDict = new Dictionary<string, string>
|
||||
{
|
||||
{ "disabled", aiDisabledText },
|
||||
{ "downloading", "Будь ласка зачекайте, йде завантаження AI для Вашої відеокарти" },
|
||||
{ "converting", "Будь ласка зачекайте, йде налаштування AI під Ваше залізо. (5-12 хвилин в залежності від моделі відеокарти, до 50 хв на старих GTX1650)" },
|
||||
{ "uploading", "Будь ласка зачекайте, йде зберігання" },
|
||||
{ "enabled", "AI готовий для розпізнавання" }
|
||||
};
|
||||
|
||||
if (command.Message?.StartsWith("Error") ?? false)
|
||||
{
|
||||
_logger.LogError(command.Message);
|
||||
StatusHelp.Text = command.Message;
|
||||
}
|
||||
|
||||
else
|
||||
StatusHelp.Text = messagesDict!.GetValueOrDefault(command.Message, aiDisabledText);
|
||||
|
||||
if (aiEnabled)
|
||||
StatusHelp.Foreground = aiEnabled ? Brushes.White : Brushes.Red;
|
||||
});
|
||||
};
|
||||
_inferenceClient.Send(RemoteCommand.Create(CommandType.AIAvailabilityCheck));
|
||||
|
||||
Editor.GetTimeFunc = () => TimeSpan.FromMilliseconds(_mediaPlayer.Time);
|
||||
MapMatcherComponent.Init(_appConfig, gpsMatcherService);
|
||||
}
|
||||
|
||||
@@ -12,6 +12,7 @@ using Azaion.Common.DTO.Config;
|
||||
using Azaion.Common.Events;
|
||||
using Azaion.Common.Extensions;
|
||||
using Azaion.Common.Services;
|
||||
using Azaion.Common.Services.Inference;
|
||||
using GMap.NET;
|
||||
using GMap.NET.WindowsPresentation;
|
||||
using LibVLCSharp.Shared;
|
||||
@@ -43,7 +44,8 @@ public class AnnotatorEventHandler(
|
||||
INotificationHandler<AnnotationsDeletedEvent>,
|
||||
INotificationHandler<AnnotationAddedEvent>,
|
||||
INotificationHandler<SetStatusTextEvent>,
|
||||
INotificationHandler<GPSMatcherResultProcessedEvent>
|
||||
INotificationHandler<GPSMatcherResultProcessedEvent>,
|
||||
INotificationHandler<AIAvailabilityStatusEvent>
|
||||
{
|
||||
private const int STEP = 20;
|
||||
private const int LARGE_STEP = 5000;
|
||||
@@ -472,4 +474,14 @@ public class AnnotatorEventHandler(
|
||||
map.SatelliteMap.Position = pointLatLon;
|
||||
map.SatelliteMap.ZoomAndCenterMarkers(null);
|
||||
}
|
||||
|
||||
public async Task Handle(AIAvailabilityStatusEvent e, CancellationToken cancellationToken)
|
||||
{
|
||||
mainWindow.Dispatcher.Invoke(() =>
|
||||
{
|
||||
logger.LogInformation(e.ToString());
|
||||
mainWindow.AIDetectBtn.IsEnabled = e.Status == AIAvailabilityEnum.Enabled;
|
||||
mainWindow.StatusHelp.Text = e.ToString();
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user