7 Commits

Author SHA1 Message Date
Sandoun
ea106416ee Fixed an issue with doc file and build directory path 2022-06-21 18:05:14 +02:00
Felix Weiß
0afa146712 Counted up version number 2022-06-21 16:45:48 +02:00
Felix Weiß
325aa56d8a Added register collection base methods 2022-06-21 16:45:22 +02:00
Felix Weiß
f4fad297fb Merge branch 'master' of https://github.com/WOmed/MewtocolNet 2022-06-21 15:54:31 +02:00
Felix Weiß
664b32b92e Fixed plc info not getting set when reading it
- added auto poll of plc info each 25 cycles
- counted up version
2022-06-21 15:54:24 +02:00
Felix Weiß
a639a8eda8 Update README.md 2022-06-21 14:31:29 +02:00
Felix Weiß
23c2b0efb4 Update README.md 2022-06-21 14:20:25 +02:00
7 changed files with 46 additions and 12 deletions

View File

@@ -45,8 +45,7 @@ namespace Examples {
//corresponds to a DT7012 - DT7013 as a 32bit time value that gets parsed as a timespan (TIME)
//the smallest value to communicate to the PLC is 10ms
[Register(7012)]
public TimeSpan TestTime { get; private set; }
public TimeSpan TestTime { get; private set; }
}
}

View File

@@ -71,6 +71,8 @@ namespace MewtocolNet {
ContinousReaderRunning = true;
int getPLCinfoCycleCount = 0;
while (ContinousReaderRunning) {
//do priority tasks first
@@ -78,6 +80,11 @@ namespace MewtocolNet {
await PriorityTasks.FirstOrDefault(x => !x.IsCompleted);
} else if (getPLCinfoCycleCount > 25) {
await GetPLCInfoAsync();
getPLCinfoCycleCount = 0;
}
foreach (var registerPair in Registers) {
@@ -159,6 +166,8 @@ namespace MewtocolNet {
}
getPLCinfoCycleCount++;
//invoke cycle polled event
InvokePolledCycleDone();

View File

@@ -356,6 +356,14 @@ namespace MewtocolNet {
};
if (collection != null)
collection.OnInterfaceLinked(this);
Connected += (i) => {
if(collection != null)
collection.OnInterfaceLinkedAndOnline(this);
};
return this;
}

View File

@@ -44,6 +44,8 @@ namespace MewtocolNet {
ErrorCode = error,
StationNumber = int.Parse(station ?? "0"),
};
PlcInfo = retInfo;
return retInfo;
}

View File

@@ -10,17 +10,34 @@ using System.Threading.Tasks;
namespace MewtocolNet.RegisterAttributes {
/// <summary>
/// A register collection base with full auto read and notification support built in
/// </summary>
public class RegisterCollectionBase : INotifyPropertyChanged {
/// <summary>
/// Reference to its bound interface
/// </summary>
public MewtocolInterface PLCInterface { get; set; }
/// <summary>
/// Whenever one of its props changes
/// </summary>
public event PropertyChangedEventHandler PropertyChanged;
internal void TriggerPropertyChanged (string propertyName = null) {
/// <summary>
/// Triggers a property changed event
/// </summary>
/// <param name="propertyName">Name of the property to trigger for</param>
public void TriggerPropertyChanged (string propertyName = null) {
var handler = PropertyChanged;
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
public virtual void OnInterfaceLinked (MewtocolInterface plc) { }
public virtual void OnInterfaceLinkedAndOnline (MewtocolInterface plc) { }
}
}

View File

@@ -2,7 +2,7 @@
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<PackageId>MewtocolNet</PackageId>
<Version>0.3.0</Version>
<Version>0.3.2</Version>
<Authors>Felix Weiss</Authors>
<Company>Womed</Company>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
@@ -15,7 +15,7 @@
<UserSecretsId>2ccdcc9b-94a3-4e76-8827-453ab889ea33</UserSecretsId>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<DocumentationFile>C:\Users\Felix Weiß\source\repos\WOmed\MewtocolNet\Builds\MewtocolNet.xml</DocumentationFile>
<OutputPath>C:\Users\Felix Weiß\source\repos\WOmed\MewtocolNet\Builds</OutputPath>
<DocumentationFile>..\Builds\MewtocolNet.xml</DocumentationFile>
<OutputPath>..\Builds</OutputPath>
</PropertyGroup>
</Project>

View File

@@ -18,11 +18,10 @@ This software was written by WOLF Medizintechnik GmbH (@WOmed/dev).
- [x] Read out stats from your PLC
- [x] Read and write registers in real time
- [X] Dynamic register type casting from properties
- [ ] Change run / prog modes
- [ ] Write byte blocks in a whole chain
- [ ] Upload programs to the PLC
- [ ] Download programs from the PLC
- [x] Dynamic register type casting from properties
- [x] Change run / prog modes
- [x] Write / read byte blocks in a whole chain
- [ ] Upload / Download programs to the PLC
- [ ] Reading / writing PLC system registers
# Support
@@ -54,7 +53,7 @@ Where is the RS232/Serial support?
Install this package by using [Nuget](https://www.nuget.org/packages/MewtocolNet/) or reference
```XML
<PackageReference Include="MewtocolNet" Version="0.2.5" />
<PackageReference Include="MewtocolNet" Version="0.3.0" />
```
in your dependencies.
Alternatively use the dotnet CLI and run