Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions Kepware-ConfigAPI-SDK-dotnet.sln
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 18
VisualStudioVersion = 18.3.11505.172 d18.3
VisualStudioVersion = 18.3.11505.172
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Kepware.SyncService", "KepwareSync.Service\Kepware.SyncService.csproj", "{19B2841F-01D1-4A7E-BE26-A93CF8C57628}"
EndProject
Expand All @@ -13,7 +13,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SolutionFiles", "SolutionFi
Directory.Build.props = Directory.Build.props
LICENSE.txt = LICENSE.txt
README.md = README.md
version.json = version.json
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Kepware.Api", "Kepware.Api\Kepware.Api.csproj", "{ABB368B9-7D95-4946-9579-F7AA7A5750F7}"
Expand Down
15 changes: 8 additions & 7 deletions Kepware.Api/README.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
# Kepware.Api

[![Build Status](https://github.com/PTCInc/Kepware-ConfigAPI-SDK-dotnet/actions/workflows/nuget-test-and-build.yml/badge.svg)](https://github.com/PTCInc/Kepware-ConfigAPI-SDK-dotnet/actions)
[![NuGet](https://img.shields.io/nuget/v/Kepware.Api.svg)](https://www.nuget.org/packages/Kepware.Api/)
![Dynamic XML Badge](https://img.shields.io/badge/dynamic/xml?url=https%3A%2F%2Fraw.githubusercontent.com%2FPTCInc%2FKepware-ConfigAPI-SDK-dotnet%2Frefs%2Fheads%2Fmain%2FKepware.Api%2FKepware.Api.csproj&query=%2F%2FTargetFrameworks&logo=.net&label=versions)
[![Build Status](https://github.com/PTCInc/Kepware-ConfigAPI-SDK-dotnet/actions/workflows/nuget-test-and-build.yml/badge.svg)](https://github.com/PTCInc/Kepware-ConfigAPI-SDK-dotnet/actions)
![NuGet Downloads](https://img.shields.io/nuget/dt/Kepware.Api?label=nuget%20downloads)

## Overview
The `Kepware.Api` library provides a robust client implementation to interact with the Kepware Configuration API. It supports managing channels, devices, tags, and other configurations programmatically while ensuring secure and efficient communication.

This package is designed to work with all versions of Kepware that support the Configuration API including Kepware Server (KS), and Kepware Edge (KE). For reference, Kepware Server in this documentation will also imply Thingworx Kepware Server and KEPServerEX versions prior to v7.0 when v6.x is referenced.

This package is designed to work with all versions of Kepware that support the Configuration API including Kepware Server (KS), Kepware Edge (KE), Thingworx Kepware Server (TKS), and KEPServerEX (KEP). For reference, when Kepware Server v6.x is referenced in this documentation, this implies Thingworx Kepware Server and KEPServerEX branded products.
## Features

1. Connect to Kepware Configuration APIs securely with HTTPS and optional certificate validation.
Expand All @@ -20,12 +21,12 @@ This package is designed to work with all versions of Kepware that support the C
| **Administration** <br /> *(User Groups, Users, UA Endpoints, Local License Server)* | Y[^1] | Y |
| **Product Info and Health Status** | Y[^4] | Y |
| **Export Project** | Y[^2] | Y |
| **Import Project (via JsonProjectLoad Service)** | N[^2] | N |
| **Import Project (via JsonProjectLoad Service)[^3]** | N | N |
| **Import Project (via CompareAndApply)[^3]** | Y | Y |

[^1]: UA Endpoints and Local License Server supported for Kepware Edge only
[^2]: JsonProjectLoad was added to Kepware Server v6.17 and later builds, the SDK detects the server version and uses the appropriate service or loads the project by multiple requests if using KepwareApiClient.LoadProject.
[^3]: CompareAndApply is handled by the SDK, it compares the source project with the server project and applies the changes. The JsonProjectLoad service is a direct call to the server to load a project.
[^2]: Json serialization for the whole project was added to Kepware Server v6.17 and later builds, the SDK detects the server version and uses the appropriate service or exports the project by multiple requests if using KepwareApiClient.LoadProject.
[^3]: CompareAndApply is handled by the SDK, it compares the source project with the server project and applies the changes. The JsonProjectLoad service (added v6.17 and later) is a direct call to the server to load a new project serialize JSON configuration to the server/edge instance.
[^4]: Added to Kepware Server v6.13 and later builds

3. Configuration API *Services* implemented:
Expand All @@ -35,7 +36,7 @@ This package is designed to work with all versions of Kepware that support the C
| **TagGeneration** <br /> *(for supported drivers)* | Y | Y |
| **ReinitializeRuntime** | Y* | Y |
| **ProjectLoad and ProjectSave** | N | N |
| **JsonProjectLoad\*\*** <br /> *(used for import project feature)* | Y | Y |
| **JsonProjectLoad\*\*** <br /> *(used for import project feature)* | N | N |

4. Synchronize configurations between your application and Kepware server.
5. Supports advanced operations like project comparison, entity synchronization, and driver property queries.
Expand Down
2 changes: 1 addition & 1 deletion Kepware.Api/version.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"$schema": "https://raw.githubusercontent.com/dotnet/Nerdbank.GitVersioning/main/src/NerdBank.GitVersioning/version.schema.json",
"version": "1.0-beta",
"version": "1.0",
"pathFilters": [ "." ],
"publicReleaseRefSpec": [
"^refs/heads/main$",
Expand Down
11 changes: 11 additions & 0 deletions KepwareSync.Service/Properties/launchSettings.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,17 @@
},
"Container (Dockerfile)": {
"commandName": "Docker"
},
// For WSL2, ensure that the distribution name is set to your WSL distribution (e.g., "Ubuntu-20.04") if you
// want to specify the specific distribution to run the project in. If left empty, it will use the default WSL distribution.
// You can find the distribution names and defaults by running `wsl -l -v` in a command prompt.
"WSL": {
"commandName": "WSL2",
"environmentVariables": {
"DOTNET_ENVIRONMENT": "Development",
"MODBUS_HOST": "HostByEnv"
},
"distributionName": ""
}
},
"$schema": "https://json.schemastore.org/launchsettings.json"
Expand Down
14 changes: 9 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,23 @@
# Kepware Configuration API SDK for .NET (Currently in Beta)
# Kepware Configuration API SDK for .NET

[![NuGet](https://img.shields.io/nuget/v/Kepware.Api.svg)](https://www.nuget.org/packages/Kepware.Api/)
![Dynamic XML Badge](https://img.shields.io/badge/dynamic/xml?url=https%3A%2F%2Fraw.githubusercontent.com%2FPTCInc%2FKepware-ConfigAPI-SDK-dotnet%2Frefs%2Fheads%2Fmain%2FKepware.Api%2FKepware.Api.csproj&query=%2F%2FTargetFrameworks&logo=.net&label=versions)
[![Build Status](https://github.com/PTCInc/Kepware-ConfigAPI-SDK-dotnet/actions/workflows/nuget-test-and-build.yml/badge.svg)](https://github.com/PTCInc/Kepware-ConfigAPI-SDK-dotnet/actions)
![NuGet Downloads](https://img.shields.io/nuget/dt/Kepware.Api?label=nuget%20downloads)

[![Build Status](https://github.com/PTCInc/Kepware-ConfigAPI-SDK-dotnet/actions/workflows/docker-build-and-push.yml/badge.svg)](https://github.com/PTCInc/Kepware-ConfigAPI-SDK-dotnet/actions)
[![Build Status](https://github.com/PTCInc/Kepware-ConfigAPI-SDK-dotnet/actions/workflows/syncservice-build.yml/badge.svg)](https://github.com/PTCInc/Kepware-ConfigAPI-SDK-dotnet/actions)
[![NuGet](https://img.shields.io/nuget/v/Kepware.Api.svg)](https://www.nuget.org/packages/Kepware.Api/)



## Overview
The Kepware Configuration API SDK for .NET provides tools and libraries to interact with the Kepware Configuration REST API, enabling configuration management for Kepware servers. This repository includes examples and utilities to streamline development for deployment tools, including a service for continuous synchronization and an API client library.

This package is designed to work with all versions of Kepware that support the Configuration API including Kepware Server (KS), Kepware Edge (KE), Thingworx Kepware Server (TKS), and KEPServerEX (KEP). For reference, Kepware Server in this documentation will also imply Thingworx Kepware Server and KEPServerEX versions prior to v7.0 when v6.x is referenced.
This package is designed to work with all versions of Kepware that support the Configuration API including Kepware Server (KS), Kepware Edge (KE), Thingworx Kepware Server (TKS), and KEPServerEX (KEP). For reference, when Kepware Server v6.x is referenced in this documentation, this implies Thingworx Kepware Server and KEPServerEX branded products.

## Features
- [**API Client Library**](./Kepware.Api/README.md): Simplify interaction with the Kepware Configuration API.
- [**Service for Synchronization**](./KepwareSync.Service/README.md):
- [**Service for Synchronization** (Currently in Beta)](./KepwareSync.Service/README.md):
- Bi-directional synchronization between Kepware servers and local filesystems.
- Support for one-way and two-way synchronization modes.
- [**Sample Applications**](./Kepware.Api.Sample/README.md): Demonstrates API usage with real-world examples.
Expand All @@ -29,7 +33,7 @@ A .NET library providing an easy-to-use client for interacting with the Kepware

**API reference documentation is available on [Github Pages](https://ptcinc.github.io/Kepware-ConfigAPI-SDK-dotnet/api/Kepware.Api.html)**

### 2. `KepwareSync.Service`
### 2. `KepwareSync.Service` (Currently in Beta)
A service application for synchronizing configurations between Kepware servers and the local filesystem. It supports monitoring and synchronization in real time.

[Readme for KepwareSync.Service](./KepwareSync.Service/README.md)
Expand Down
6 changes: 4 additions & 2 deletions docs/nuget-README.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
# Kepware.Api

[![NuGet](https://img.shields.io/nuget/v/Kepware.Api.svg)](https://www.nuget.org/packages/Kepware.Api/)
![Dynamic XML Badge](https://img.shields.io/badge/dynamic/xml?url=https%3A%2F%2Fraw.githubusercontent.com%2FPTCInc%2FKepware-ConfigAPI-SDK-dotnet%2Frefs%2Fheads%2Fmain%2FKepware.Api%2FKepware.Api.csproj&query=%2F%2FTargetFrameworks&logo=.net&label=versions)
[![Build Status](https://github.com/PTCInc/Kepware-ConfigAPI-SDK-dotnet/actions/workflows/nuget-test-and-build.yml/badge.svg)](https://github.com/PTCInc/Kepware-ConfigAPI-SDK-dotnet/actions)

## Overview
The `Kepware.Api` library provides a robust client implementation to interact with the Kepware Configuration API. It supports managing channels, devices, tags, and other configurations programmatically while ensuring secure and efficient communication.
The `Kepware.Api` library provides a robust client implementation to interact with the Kepware Configuration REST API. It supports managing channels, devices, tags, and other configurations programmatically while ensuring secure and efficient communication.

This package is designed to work with all versions of Kepware that support the Configuration API including Thingworx Kepware Server (TKS), Thingworx Kepware Edge (TKE) and KEPServerEX (KEP). For reference, Kepware Server in this documentation will refer to both TKS and KEP versions.
This package is designed to work with all versions of Kepware that support the Configuration API including Kepware Server (KS), Kepware Edge (KE), Thingworx Kepware Server (TKS), and KEPServerEX (KEP). For reference, Kepware Server in this documentation will also imply Thingworx Kepware Server and KEPServerEX versions prior to v7.0 when v6.x is referenced.

## Licensing
This SDK is provided "as is" under the MIT License. See the [LICENSE](https://github.com/PTCInc/Kepware-ConfigAPI-SDK-dotnet/blob/main/LICENSE.txt) file for details.
Expand Down
12 changes: 12 additions & 0 deletions testEnvironments.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"version": "1",
"environments": [
// See https://aka.ms/remotetesting for more details
// about how to configure remote environments.
{
"name": "WSL Ubuntu",
"type": "wsl",
"wslDistribution": "Ubuntu-24.04"
}
]
}
Loading