comprehensive update

1) remove unused components: camera view (due it causes segmentation faults), compute resources and all related, illuminator controller (due in useless without camera view), image storage service, temperature and humidity service
2) database schema - reduce tables references, features storing in records themselves in compressed form, add records creation and editing date and time, add separator comment column
3) analysis - rework of pipeline and ui, now database storing only raw data and all display values calculated from it
4) lights service - add reconnection if disconnected
5) add width and height command line arguments
6) fix some typos and other issues
This commit is contained in:
2026-06-29 15:13:29 +03:00
parent caee9fafd5
commit 72ae26eee7
74 changed files with 5219 additions and 4248 deletions
@@ -14,7 +14,7 @@
<Grid Background="{StaticResource MainBackground}">
<!-- Основная форма -->
<Grid IsEnabled="{Binding !MenuOpened}">
<Grid IsEnabled="{Binding CanInteract}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" /> <!-- Кнопка "Удалить" -->
@@ -80,7 +80,8 @@
<RowDefinition Height="Auto" /> <!-- Id (поле ) | Uuid (поле ) -->
<RowDefinition Height="Auto" /> <!-- Type (подпись) -->
<RowDefinition Height="Auto" /> <!-- Type (поле ) -->
<RowDefinition Height="*" /> <!-- Пустое пространство -->
<RowDefinition Height="Auto" /> <!-- Comment (подпись) -->
<RowDefinition Height="*" /> <!-- Comment (поле ) -->
</Grid.RowDefinitions>
<Grid.RowSpacing>5</Grid.RowSpacing>
@@ -99,7 +100,7 @@
Grid.Row="1"
IsReadOnly="True"
PlaceholderText="ИД"
Text="{Binding SelectedId}"
Text="{Binding Record.Id}"
/>
<!-- Uuid (подпись) -->
<TextBlock
@@ -115,7 +116,7 @@
Grid.Row="1"
IsReadOnly="True"
PlaceholderText="Уникальный ИД"
Text="{Binding SelectedUuid}"
Text="{Binding Record.Uuid}"
/>
<!-- Type (подпись) -->
<TextBlock
@@ -131,25 +132,27 @@
Grid.ColumnSpan="2"
Grid.Row="3"
PlaceholderText="Тип"
Text="{Binding SelectedType}"
Text="{Binding Record.Type}"
/>
</Grid>
<!-- Comment (подпись) -->
<TextBlock
Classes="mini"
Grid.Column="0"
Grid.ColumnSpan="2"
Grid.Row="4"
Text="Дополнительная информация:"
/>
<!-- Comment (поле) -->
<controls:TouchTextBox
Classes="multiline"
Grid.Column="0"
Grid.ColumnSpan="2"
Grid.Row="5"
PlaceholderText="Дополнительная информация"
Text="{Binding Record.Comment}"
/>
<!-- Информация -->
<Grid Grid.Column="1">
<!-- ИД (подпись) -->
<!-- <TextBlock Grid.Row="0" Grid.Column="1" Classes="mini" Text="ИД:" /> -->
<!-- ИД (поле) -->
<!-- <TextBox Grid.Row="1" Grid.Column="1" Classes="singleline" Text="{Binding EditingRecord.Id}" PlaceholderText="ИД" IsReadOnly="True" /> -->
<!-- Тип (подпись) -->
<!-- <TextBlock Grid.Row="2" Grid.Column="1" Classes="mini" Text="Тип:" /> -->
<!-- Тип (поле) -->
<!-- <controls:TouchTextBox Grid.Row="3" Grid.Column="1" Classes="singleline" Text="{Binding EditingRecord.Type}" PlaceholderText="Тип" /> -->
<!-- Партия (подпись) -->
<!-- <TextBlock Grid.Row="4" Grid.Column="1" Classes="mini" Text="Партия:" /> -->
<!-- Партия (поле) -->
<!-- <controls:TouchTextBox Grid.Row="5" Grid.Column="1" Classes="singleline" Text="{Binding EditingRecord.Batch}" PlaceholderText="Партия" /> -->
</Grid>
</Grid>
@@ -166,25 +169,19 @@
<!-- Изображение -->
<Grid>
<!-- Изображение -->
<Grid>
</Grid>
<!-- Изображение -->
<core:ZoomPanImage
Background="Black"
HorizontalAlignment="Stretch"
ImageSource="{Binding SelectedImage.Image}"
IsVisible="{Binding SelectedImage.IsLoading, Converter={x:Static BoolConverters.Not}}"
ImageSource="{Binding Record.Image.Image}"
VerticalAlignment="Stretch"
>
<core:ZoomPanImage.IsVisible>
<MultiBinding Converter="{x:Static BoolConverters.And}">
<Binding Converter="{x:Static ObjectConverters.IsNotNull}" Path="SelectedImage.Data" />
<Binding Converter="{x:Static BoolConverters.Not}" Path="SelectedImage.IsLoading" />
<Binding Converter="{x:Static StringConverters.IsNotNullOrEmpty}" Path="Record.Image.Data" />
<Binding Converter="{x:Static BoolConverters.Not}" Path="Record.Image.IsLoading" />
<Binding Converter="{x:Static BoolConverters.Not}" Path="ImagesIsCapturing" />
</MultiBinding>
</core:ZoomPanImage.IsVisible>
@@ -196,7 +193,7 @@
<StackPanel.IsVisible>
<MultiBinding Converter="{x:Static BoolConverters.And}">
<Binding Path="SelectedImage.IsLoading" />
<Binding Path="Record.Image.IsLoading" />
<Binding Converter="{x:Static BoolConverters.Not}" Path="ImagesIsCapturing" />
</MultiBinding>
</StackPanel.IsVisible>
@@ -215,8 +212,8 @@
>
<TextBlock.IsVisible>
<MultiBinding Converter="{x:Static BoolConverters.And}">
<Binding Converter="{x:Static ObjectConverters.IsNull}" Path="SelectedImage.Data" />
<Binding Converter="{x:Static BoolConverters.Not}" Path="SelectedImage.IsLoading" />
<Binding Converter="{x:Static StringConverters.IsNullOrEmpty}" Path="Record.Image.Data" />
<Binding Converter="{x:Static BoolConverters.Not}" Path="Record.Image.IsLoading" />
<Binding Converter="{x:Static BoolConverters.Not}" Path="ImagesIsCapturing" />
</MultiBinding>
</TextBlock.IsVisible>
@@ -230,8 +227,8 @@
<StackPanel.IsVisible>
<MultiBinding Converter="{x:Static BoolConverters.And}">
<Binding Converter="{x:Static ObjectConverters.IsNull}" Path="SelectedImage.Data" />
<Binding Converter="{x:Static BoolConverters.Not}" Path="SelectedImage.IsLoading" />
<Binding Converter="{x:Static StringConverters.IsNullOrEmpty}" Path="Record.Image.Data" />
<Binding Converter="{x:Static BoolConverters.Not}" Path="Record.Image.IsLoading" />
<Binding Path="ImagesIsCapturing" />
</MultiBinding>
</StackPanel.IsVisible>
@@ -246,18 +243,20 @@
<!-- Кнопка "Получить изображения" -->
<Button
Command="{Binding CaptureImageCommand}"
Grid.Row="1"
HorizontalAlignment="Stretch"
Command="{Binding CaptureImageCommand}"
IsVisible="{Binding !ImagesIsCapturing}"
>
<TextBlock Text="Получить изображения"/>
</Button>
<!-- Кнопка "Отменить съёмку" -->
<Button
Command="{Binding CancelImageCapturingCommand}"
Grid.Row="1"
HorizontalAlignment="Stretch"
Command="{Binding CancelImageCapturingCommand}"
IsVisible="{Binding ImagesIsCapturing}"
>
<TextBlock Text="Отменить съёмку"/>
</Button>