diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json
new file mode 100644
index 0000000..1d7f3e1
--- /dev/null
+++ b/.devcontainer/devcontainer.json
@@ -0,0 +1,21 @@
+{
+ "name": "VirtualSpeed .NET Development",
+ "image": "mcr.microsoft.com/devcontainers/dotnet:1-10.0",
+ "features": {
+ "ghcr.io/devcontainers/features/github-cli:1": {}
+ },
+ "customizations": {
+ "vscode": {
+ "extensions": [
+ "ms-dotnettools.csharp",
+ "ms-dotnettools.csdevkit",
+ "GitHub.copilot"
+ ],
+ "settings": {
+ "dotnet.defaultSolution": "VirtualSpeed/VirtualSpeed.sln"
+ }
+ }
+ },
+ "postCreateCommand": "dotnet restore VirtualSpeed/VirtualSpeed.sln",
+ "remoteUser": "vscode"
+}
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
new file mode 100644
index 0000000..9c8ce1f
--- /dev/null
+++ b/.github/workflows/build.yml
@@ -0,0 +1,40 @@
+name: Build and Test
+
+on:
+ push:
+ branches: [ main, master ]
+ pull_request:
+ branches: [ main, master ]
+ workflow_dispatch:
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ permissions:
+ contents: read
+
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Setup .NET
+ uses: actions/setup-dotnet@v4
+ with:
+ dotnet-version: '10.0.x'
+
+ - name: Restore dependencies
+ run: dotnet restore VirtualSpeed/VirtualSpeed.sln
+
+ - name: Build
+ run: dotnet build VirtualSpeed/VirtualSpeed.sln --no-restore --configuration Release
+
+ - name: Test application runs
+ run: |
+ cd VirtualSpeed/VirtualSpeed
+ dotnet run --no-build --configuration Release -- powerData.tcx
+ if [ -f powerData_fixed.tcx ]; then
+ echo "✓ Application successfully generated output file"
+ ls -lh powerData_fixed.tcx
+ else
+ echo "✗ Application did not generate expected output file"
+ exit 1
+ fi
diff --git a/.gitignore b/.gitignore
index 94420dc..204edb2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -234,3 +234,6 @@ _Pvt_Extensions
# FAKE - F# Make
.fake/
+
+# Output files from VirtualSpeed application
+*_fixed.tcx
diff --git a/VirtualSpeed/VirtualSpeed/App.config b/VirtualSpeed/VirtualSpeed/App.config
deleted file mode 100644
index 8324aa6..0000000
--- a/VirtualSpeed/VirtualSpeed/App.config
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/VirtualSpeed/VirtualSpeed/Properties/AssemblyInfo.cs b/VirtualSpeed/VirtualSpeed/Properties/AssemblyInfo.cs
deleted file mode 100644
index 830df1f..0000000
--- a/VirtualSpeed/VirtualSpeed/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,36 +0,0 @@
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("VirtualSpeed")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("Microsoft")]
-[assembly: AssemblyProduct("VirtualSpeed")]
-[assembly: AssemblyCopyright("Copyright © 2016")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components. If you need to access a type in this assembly from
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("a94d3d1c-766c-4747-b6e2-5203d39e9f7f")]
-
-// Version information for an assembly consists of the following four values:
-//
-// Major Version
-// Minor Version
-// Build Number
-// Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/VirtualSpeed/VirtualSpeed/VirtualSpeed.csproj b/VirtualSpeed/VirtualSpeed/VirtualSpeed.csproj
index 5c31abe..7fd79c5 100644
--- a/VirtualSpeed/VirtualSpeed/VirtualSpeed.csproj
+++ b/VirtualSpeed/VirtualSpeed/VirtualSpeed.csproj
@@ -1,64 +1,16 @@
-
-
-
+
+
- Debug
- AnyCPU
- {A94D3D1C-766C-4747-B6E2-5203D39E9F7F}
Exe
- Properties
+ net10.0
VirtualSpeed
VirtualSpeed
- v4.6
- 512
- true
-
- AnyCPU
- true
- full
- false
- bin\Debug\
- DEBUG;TRACE
- prompt
- 4
-
-
- AnyCPU
- pdbonly
- true
- bin\Release\
- TRACE
- prompt
- 4
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
+
Always
-
+
-
-
+
\ No newline at end of file