Skip to content

Commit a16024f

Browse files
authored
Merge pull request #24 from Z-bit-Systems-LLC/develop
Sync
2 parents d599ba3 + 0889b39 commit a16024f

11 files changed

+150
-26
lines changed

Directory.Build.props

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<Project>
2+
<PropertyGroup>
3+
<AssemblyVersion>3.0.8.0</AssemblyVersion>
4+
<FileVersion>3.0.8.0</FileVersion>
5+
</PropertyGroup>
6+
</Project>

OSDP-Bench.sln

+3
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ EndProject
88
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "UI", "UI", "{6AF5FFEF-AFBA-4BB8-A14F-FDE4AEEC19AB}"
99
EndProject
1010
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Settings", "Settings", "{8FB5794C-299E-4B9E-8D0D-6BFC695DA91B}"
11+
ProjectSection(SolutionItems) = preProject
12+
Directory.Build.props = Directory.Build.props
13+
EndProjectSection
1114
EndProject
1215
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ci", "ci", "{5D426D86-43BB-4D6D-A6BF-0ACC65A19C92}"
1316
ProjectSection(SolutionItems) = preProject

azure-pipelines.yml

+97-6
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,100 @@ jobs:
2828
# vmImage: 'windows-latest'
2929
# steps:
3030
# - template: ci/winui-build.yml
31-
32-
- job: testing
33-
pool:
34-
vmImage: 'windows-latest'
35-
steps:
36-
- template: ci/testing.yml
31+
32+
- job: testing
33+
pool:
34+
vmImage: 'windows-latest'
35+
steps:
36+
- template: ci/testing.yml
37+
38+
- job: version_bump
39+
condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/main'))
40+
pool:
41+
vmImage: 'windows-latest'
42+
dependsOn:
43+
testing
44+
steps:
45+
- checkout: self
46+
persistCredentials: true
47+
48+
- powershell: |
49+
# Find version file (could be Directory.Build.props, .csproj, or AssemblyInfo.cs)
50+
# This example assumes Directory.Build.props
51+
$versionFile = "Directory.Build.props"
52+
53+
if (Test-Path $versionFile) {
54+
Write-Host "Using $versionFile for version"
55+
} else {
56+
# Try to find the main project file
57+
$versionFile = Get-ChildItem -Path . -Filter "*.csproj" -Recurse | Select-Object -First 1 -ExpandProperty FullName
58+
Write-Host "Using $versionFile for version"
59+
}
60+
61+
# Read current version
62+
$fileContent = Get-Content $versionFile -Raw
63+
if ($fileContent -match '<AssemblyVersion>(.*?)</AssemblyVersion>') {
64+
$currentVersion = $matches[1]
65+
Write-Host "Current version: $currentVersion"
66+
67+
# Parse version components
68+
$versionParts = $currentVersion.Split('.')
69+
$major = $versionParts[0]
70+
$minor = $versionParts[1]
71+
$patch = [int]$versionParts[2]
72+
$build = $versionParts[3]
73+
74+
# Increment patch number instead of build number
75+
$patch++
76+
77+
# Keep build number if it exists, otherwise just use major.minor.patch
78+
if ($versionParts.Length -gt 3) {
79+
$build = $versionParts[3]
80+
$newVersion = "$major.$minor.$patch.$build"
81+
} else {
82+
$newVersion = "$major.$minor.$patch"
83+
}
84+
85+
Write-Host "New version: $newVersion"
86+
87+
# Update version in file
88+
$fileContent = $fileContent -replace '<AssemblyVersion>(.*?)</AssemblyVersion>', "<AssemblyVersion>$newVersion</AssemblyVersion>"
89+
$fileContent = $fileContent -replace '<FileVersion>(.*?)</FileVersion>', "<FileVersion>$newVersion</FileVersion>"
90+
Set-Content -Path $versionFile -Value $fileContent
91+
92+
# Set version number as build variable
93+
Write-Host "##vso[task.setvariable variable=BuildVersion]$newVersion"
94+
95+
# Configure git
96+
git config user.email "azuredevops@z-bitco.com"
97+
git config user.name "Azure DevOps Pipeline"
98+
99+
# Commit and push changes
100+
git add $versionFile
101+
git commit -m "Bump version to $newVersion [skip ci]"
102+
103+
# Set remote url with credentials
104+
$accessToken = "$(System.AccessToken)"
105+
$repoUrl = "$(Build.Repository.Uri)"
106+
107+
# Remove the 'https://' prefix and add the PAT
108+
$repoUrl = $repoUrl -replace "https://", "https://`:$accessToken@"
109+
110+
git push $repoUrl HEAD:main
111+
112+
Write-Host "Version bumped to $newVersion"
113+
} else {
114+
Write-Host "##vso[task.logissue type=warning]No version tag found in $versionFile"
115+
}
116+
displayName: 'Bump patch version'
117+
env:
118+
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
119+
120+
# Update build number with the version we just set
121+
- powershell: |
122+
# Set the build number to the version
123+
if ("$(BuildVersion)" -ne "") {
124+
Write-Host "##vso[build.updatebuildnumber]$(BuildVersion)"
125+
}
126+
displayName: 'Update build number'
127+
condition: and(succeeded(), ne(variables['BuildVersion'], ''))

src/Core/Core.csproj

-2
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,6 @@
1919
<RepositoryType>git</RepositoryType>
2020
<PublishRepositoryUrl>true</PublishRepositoryUrl>
2121
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
22-
<AssemblyVersion>3.0.7.0</AssemblyVersion>
23-
<FileVersion>3.0.7.0</FileVersion>
2422
<Platforms>AnyCPU;ARM64;x64</Platforms>
2523
</PropertyGroup>
2624

src/Core/ViewModels/Pages/ConnectViewModel.cs

+3-3
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ private void DeviceManagementServiceOnNakReplyReceived(object? sender, string na
7777

7878
[ObservableProperty] private int _selectedBaudRate = 9600;
7979

80-
[ObservableProperty] private byte _selectedAddress;
80+
[ObservableProperty] private double _selectedAddress;
8181

8282
[ObservableProperty] private byte _connectedAddress;
8383

@@ -249,9 +249,9 @@ await _dialogService.ShowMessageDialog("Connect", $"Invalid security key entered
249249

250250
await _deviceManagementService.Shutdown();
251251
await _deviceManagementService.Connect(
252-
serialPortConnectionService.GetConnection(serialPortName, SelectedBaudRate), SelectedAddress,
252+
serialPortConnectionService.GetConnection(serialPortName, SelectedBaudRate), (byte)SelectedAddress,
253253
UseSecureChannel, UseDefaultKey, securityKey);
254-
ConnectedAddress = SelectedAddress;
254+
ConnectedAddress = (byte)SelectedAddress;
255255
ConnectedBaudRate = SelectedBaudRate;
256256
}
257257
}

src/UI/Windows/Views/Controls/SetCommunicationControl.xaml

+4-2
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,15 @@
2020
<ComboBox Name="BaudRateComboBox"
2121
Margin="0 0 20 0"
2222
ItemsSource="{Binding AvailableBaudRates}"
23-
SelectedItem="{Binding SelectedBaudRate}"/>
23+
SelectedItem="{Binding SelectedBaudRate, Mode=TwoWay}"/>
2424
</StackPanel>
2525
<StackPanel Grid.Column="1" Orientation="Vertical">
2626
<Label Content="Address"
2727
Target="{Binding ElementName=BaudRateComboBox}" />
2828
<ui:NumberBox Name="AddressNumberBox"
29-
Value="{Binding SelectedAddress}"
29+
TextChanged="AddressNumberBox_OnTextChanged"
30+
ValueChanged="AddressNumberBox_OnValueChanged"
31+
Value="{Binding SelectedAddress, Mode=TwoWay}"
3032
Margin="0 0 20 0"
3133
Minimum="0"
3234
Maximum="127"

src/UI/Windows/Views/Controls/SetCommunicationControl.xaml.cs

+16-4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
using System.ComponentModel;
22
using System.Runtime.CompilerServices;
3+
using System.Windows.Controls;
4+
using Wpf.Ui.Controls;
35

46
namespace OSDPBench.Windows.Views.Controls;
57

@@ -10,8 +12,8 @@ public SetCommunicationControl(int[] availableBaudRates, uint connectedBaudRate,
1012
DataContext = this;
1113

1214
AvailableBaudRates = availableBaudRates;
13-
_selectedBaudRate = (int)connectedBaudRate;
14-
_selectedAddress = connectedAddress;
15+
SelectedBaudRate = (int)connectedBaudRate;
16+
SelectedAddress = connectedAddress;
1517

1618
InitializeComponent();
1719
}
@@ -25,8 +27,8 @@ public int SelectedBaudRate
2527
set => SetField(ref _selectedBaudRate, value);
2628
}
2729

28-
private byte _selectedAddress;
29-
public byte SelectedAddress
30+
private double _selectedAddress;
31+
public double SelectedAddress
3032
{
3133
get => _selectedAddress;
3234
set => SetField(ref _selectedAddress, value);
@@ -45,4 +47,14 @@ private void SetField<T>(ref T field, T value, [CallerMemberName] string? proper
4547
field = value;
4648
OnPropertyChanged(propertyName);
4749
}
50+
51+
private void AddressNumberBox_OnTextChanged(object sender, TextChangedEventArgs e)
52+
{
53+
SelectedAddress = AddressNumberBox.Value ?? 0;
54+
}
55+
56+
private void AddressNumberBox_OnValueChanged(object sender, NumberBoxValueChangedEventArgs args)
57+
{
58+
SelectedAddress = AddressNumberBox.Value ?? 0;
59+
}
4860
}

src/UI/Windows/Views/Pages/ConnectPage.xaml

+7-5
Original file line numberDiff line numberDiff line change
@@ -152,13 +152,15 @@
152152
<ComboBox Name="BaudRateComboBox"
153153
Margin="0 0 20 0"
154154
ItemsSource="{Binding ViewModel.AvailableBaudRates}"
155-
SelectedItem="{Binding ViewModel.SelectedBaudRate}"/>
155+
SelectedItem="{Binding Path=ViewModel.SelectedBaudRate, Mode=TwoWay}"/>
156156
</StackPanel>
157157
<StackPanel Grid.Row="0" Grid.Column="1" Orientation="Vertical">
158158
<Label Content="Address"
159159
Target="{Binding ElementName=AddressNumberBox}" />
160160
<ui:NumberBox Name="AddressNumberBox"
161-
Value="{Binding ViewModel.SelectedAddress}"
161+
Value="{Binding Path=ViewModel.SelectedAddress, Mode=TwoWay}"
162+
TextChanged="AddressNumberBox_OnTextChanged"
163+
ValueChanged="AddressNumberBox_OnValueChanged"
162164
Margin="0 0 20 0"
163165
Minimum="0"
164166
Maximum="127"
@@ -171,19 +173,19 @@
171173
<StackPanel Orientation="Horizontal">
172174
<CheckBox Name="UseSecureChannelCheckBox"
173175
Content="Use Secure Channel"
174-
IsChecked="{Binding ViewModel.UseSecureChannel}"/>
176+
IsChecked="{Binding Path=ViewModel.UseSecureChannel, Mode=TwoWay}"/>
175177

176178
<CheckBox Name="UseDefaultKeyCheckBox"
177179
Content="Use Default Key"
178180
Margin="10,0,0,0"
179181
IsEnabled="{Binding ElementName=UseSecureChannelCheckBox, Path=IsChecked}"
180-
IsChecked="{Binding ViewModel.UseDefaultKey}"/>
182+
IsChecked="{Binding Path=ViewModel.UseDefaultKey, Mode=TwoWay}"/>
181183
</StackPanel>
182184

183185
<StackPanel Orientation="Vertical">
184186
<Label Content="Security Key"
185187
Target="{Binding ElementName=AddressNumberBox}" />
186-
<TextBox Text="{Binding ViewModel.SecurityKey}">
188+
<TextBox Text="{Binding Path=ViewModel.SecurityKey, Mode=TwoWay}">
187189
<TextBox.Style>
188190
<Style TargetType="TextBox" BasedOn="{StaticResource {x:Type TextBox}}">
189191
<!-- Only add the specific triggers needed -->

src/UI/Windows/Views/Pages/ConnectPage.xaml.cs

+13-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1-
using OSDPBench.Core.ViewModels.Pages;
1+
using System.Windows.Controls;
2+
using OSDPBench.Core.ViewModels.Pages;
23
using Wpf.Ui.Abstractions.Controls;
4+
using Wpf.Ui.Controls;
35

46
namespace OSDPBench.Windows.Views.Pages;
57

@@ -27,4 +29,14 @@ public ConnectPage(ConnectViewModel viewModel)
2729
public ConnectViewModel ViewModel { get; }
2830

2931
public IEnumerable<string> ConnectionTypes => ["Discover", "Manual"];
32+
33+
private void AddressNumberBox_OnTextChanged(object sender, TextChangedEventArgs e)
34+
{
35+
ViewModel.SelectedAddress = AddressNumberBox.Value ?? 0;
36+
}
37+
38+
private void AddressNumberBox_OnValueChanged(object sender, NumberBoxValueChangedEventArgs args)
39+
{
40+
ViewModel.SelectedAddress = AddressNumberBox.Value ?? 0;
41+
}
3042
}

src/UI/Windows/Views/Pages/ManagePage.xaml.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ private void SetCommunicationActionControl()
108108
{
109109
ViewModel.DeviceActionParameter = new CommunicationParameters(
110110
ViewModel.ConnectedPortName, (uint)actionControl.SelectedBaudRate,
111-
actionControl.SelectedAddress);
111+
(byte)actionControl.SelectedAddress);
112112
};
113113
DeviceActionControl.Children.Add(actionControl);
114114
}

src/UI/Windows/Windows.csproj

-2
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,6 @@
1313
<AssemblyName>OSDPBench</AssemblyName>
1414
<RootNamespace>OSDPBench.Windows</RootNamespace>
1515
<StartupObject>OSDPBench.Windows.App</StartupObject>
16-
<AssemblyVersion>3.0.7.0</AssemblyVersion>
17-
<FileVersion>3.0.7.0</FileVersion>
1816
</PropertyGroup>
1917

2018
<ItemGroup>

0 commit comments

Comments
 (0)