This commit is contained in:
Sina Blattmann 2023-02-28 11:07:03 +01:00
commit cbd68246a6
542 changed files with 1790 additions and 2775 deletions

View File

@ -1,12 +1,5 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<LangVersion>preview</LangVersion>
<RootNamespace>Innovenergy.Backend</RootNamespace>
</PropertyGroup>
<Import Project="../InnovEnergy.App.props" />
<ItemGroup>
<PackageReference Include="Flurl.Http" Version="3.2.4" />
@ -28,17 +21,10 @@
<PackageReference Include="Swashbuckle.AspNetCore.Filters.Abstractions" Version="7.0.6" />
</ItemGroup>
<ItemGroup>
<Reference Include="AWSSDK.Core">
<HintPath>..\..\..\..\..\..\.nuget\packages\awssdk.core\3.7.8.10\lib\netcoreapp3.1\AWSSDK.Core.dll</HintPath>
</Reference>
<Reference Include="SQLite-net">
<HintPath>..\..\..\..\..\.nuget\packages\sqlite-net-pcl\1.8.116\lib\netstandard2.0\SQLite-net.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\lib\WebServer\WebServer.csproj" />
<ProjectReference Include="../../Lib/Utils/Utils.csproj" />
</ItemGroup>
</Project>

Binary file not shown.

View File

@ -1,9 +1,9 @@
using CliWrap;
using CliWrap.Buffered;
using InnovEnergy.Lib.Utils;
using static InnovEnergy.BmsTunnel.CliPrograms;
using static InnovEnergy.App.BmsTunnel.CliPrograms;
namespace InnovEnergy.BmsTunnel;
namespace InnovEnergy.App.BmsTunnel;
using Nodes = IReadOnlyList<Byte>;

View File

@ -3,7 +3,7 @@ using System.Text;
using CliWrap.Buffered;
using InnovEnergy.Lib.Utils;
namespace InnovEnergy.BmsTunnel;
namespace InnovEnergy.App.BmsTunnel;
public class BmsTunnel : IDisposable

View File

@ -1,9 +1,5 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="../InnovEnergy.app.props" />
<PropertyGroup>
<RootNamespace>InnovEnergy.BmsTunnel</RootNamespace>
</PropertyGroup>
<Import Project="../InnovEnergy.App.props" />
<ItemGroup>
<PackageReference Include="CliWrap" Version="3.6.0" />
@ -11,7 +7,7 @@
</ItemGroup>
<ItemGroup>
<ProjectReference Include="../../lib/Utils/Utils.csproj" />
<ProjectReference Include="../../Lib/Utils/Utils.csproj" />
</ItemGroup>
</Project>

View File

@ -1,6 +1,6 @@
using CliWrap;
namespace InnovEnergy.BmsTunnel;
namespace InnovEnergy.App.BmsTunnel;
public static class CliPrograms
{

View File

@ -5,7 +5,7 @@
using InnovEnergy.Lib.Utils;
using static System.String;
namespace InnovEnergy.BmsTunnel;
namespace InnovEnergy.App.BmsTunnel;
public static class Program
{

View File

@ -0,0 +1,13 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="../InnovEnergy.App.props" />
<ItemGroup>
<ProjectReference Include="../../Lib/Utils/Utils.csproj" />
<ProjectReference Include="../../Lib/WebServer/WebServer.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="System.Linq.Async" Version="5.0.0" />
</ItemGroup>
</Project>

View File

@ -1,14 +1,14 @@
using System.Net;
using System.Text;
using InnovEnergy.Collector.Influx;
using InnovEnergy.Collector.Records;
using InnovEnergy.Collector.Utils;
using InnovEnergy.App.Collector.Influx;
using InnovEnergy.App.Collector.Records;
using InnovEnergy.App.Collector.Utils;
using InnovEnergy.Lib.Utils;
using InnovEnergy.Lib.Utils.Net;
using Convert = System.Convert;
namespace InnovEnergy.Collector;
namespace InnovEnergy.App.Collector;
using Data = IReadOnlyList<String>;

View File

@ -1,15 +1,15 @@
using System.Net;
using System.Text;
using InnovEnergy.Collector.Influx;
using InnovEnergy.Collector.Records;
using InnovEnergy.Collector.Utils;
using InnovEnergy.App.Collector.Influx;
using InnovEnergy.App.Collector.Records;
using InnovEnergy.App.Collector.Utils;
using InnovEnergy.Lib.Utils;
using Convert = System.Convert;
// NOT (YET) USED
namespace InnovEnergy.Collector;
namespace InnovEnergy.App.Collector;
using Data = IReadOnlyList<String>;

View File

@ -2,7 +2,7 @@ using static System.AttributeTargets;
#nullable disable
namespace InnovEnergy.Collector.Influx;
namespace InnovEnergy.App.Collector.Influx;
[AttributeUsage(Property)]
public class FieldAttribute : Attribute

View File

@ -1,10 +1,10 @@
using System.Text;
using InnovEnergy.Collector.Utils;
using InnovEnergy.App.Collector.Utils;
using InnovEnergy.Lib.Utils;
using static System.Globalization.CultureInfo;
using static InnovEnergy.Collector.Influx.LineProtocolSyntax;
using static InnovEnergy.App.Collector.Influx.LineProtocolSyntax;
namespace InnovEnergy.Collector.Influx;
namespace InnovEnergy.App.Collector.Influx;
public static class InfluxRecord
{

View File

@ -1,7 +1,7 @@
using System.Diagnostics.CodeAnalysis;
using static System.Globalization.CultureInfo;
namespace InnovEnergy.Collector.Influx;
namespace InnovEnergy.App.Collector.Influx;
internal static class LineProtocolSyntax
{

View File

@ -1,6 +1,6 @@
using static System.AttributeTargets;
namespace InnovEnergy.Collector.Influx;
namespace InnovEnergy.App.Collector.Influx;
[AttributeUsage(Property)]
public class TagAttribute : Attribute

View File

@ -2,17 +2,17 @@
using System.Reactive.Concurrency;
using System.Reactive.Linq;
using System.Reactive.Subjects;
using InnovEnergy.Collector.Influx;
using InnovEnergy.Collector.Records;
using InnovEnergy.Lib.Utils;
using static System.Text.Encoding;
using static InnovEnergy.Lib.Utils.ExceptionHandling;
using System.Text.Json;
using InnovEnergy.App.Collector.Influx;
using InnovEnergy.App.Collector.Records;
using InnovEnergy.Lib.Utils;
using InnovEnergy.Lib.Utils.Net;
using InnovEnergy.Lib.WebServer;
using static System.Text.Encoding;
using static InnovEnergy.Lib.Utils.ExceptionHandling;
namespace InnovEnergy.Collector;
namespace InnovEnergy.App.Collector;
// TODO: net6

View File

@ -1,10 +1,10 @@
using InnovEnergy.Collector.Influx;
using InnovEnergy.App.Collector.Influx;
// ReSharper disable IdentifierTypo
// ReSharper disable UnusedAutoPropertyAccessor.Global
// ReSharper disable InconsistentNaming
namespace InnovEnergy.Collector.Records;
namespace InnovEnergy.App.Collector.Records;
public class Alarms : BatteryRecord
{

View File

@ -0,0 +1,4 @@
namespace InnovEnergy.App.Collector.Records;
public abstract class BatteryRecord
{}

View File

@ -1,9 +1,9 @@
using InnovEnergy.Collector.Influx;
using InnovEnergy.App.Collector.Influx;
// ReSharper disable UnusedAutoPropertyAccessor.Global
// ReSharper disable MemberCanBePrivate.Global
namespace InnovEnergy.Collector.Records;
namespace InnovEnergy.App.Collector.Records;
public class BatteryStatus : BatteryRecord
{

View File

@ -1,8 +1,8 @@
using InnovEnergy.Collector.Influx;
using InnovEnergy.App.Collector.Influx;
// ReSharper disable UnusedAutoPropertyAccessor.Global
namespace InnovEnergy.Collector.Records;
namespace InnovEnergy.App.Collector.Records;
public class Error : BatteryRecord
{

View File

@ -1,6 +1,6 @@
using InnovEnergy.Collector.Influx;
using InnovEnergy.App.Collector.Influx;
namespace InnovEnergy.Collector.Records;
namespace InnovEnergy.App.Collector.Records;
public class InstallationStatus : BatteryRecord
{

View File

@ -1,8 +1,8 @@
using InnovEnergy.Collector.Influx;
using InnovEnergy.App.Collector.Influx;
// ReSharper disable UnusedAutoPropertyAccessor.Global
namespace InnovEnergy.Collector.Records;
namespace InnovEnergy.App.Collector.Records;
public class IoStatus : BatteryRecord
{

View File

@ -1,9 +1,9 @@
using InnovEnergy.Collector.Influx;
using InnovEnergy.App.Collector.Influx;
// ReSharper disable UnusedAutoPropertyAccessor.Global
// ReSharper disable UnusedMember.Global
namespace InnovEnergy.Collector.Records;
namespace InnovEnergy.App.Collector.Records;
public class Leds : BatteryRecord
{

View File

@ -1,7 +1,6 @@
using InnovEnergy.Collector.Influx;
using InnovEnergy.App.Collector.Influx;
namespace InnovEnergy.Collector.Records;
namespace InnovEnergy.App.Collector.Records;
#pragma warning disable CS8618

View File

@ -1,7 +1,6 @@
using InnovEnergy.Collector.Influx;
using InnovEnergy.App.Collector.Influx;
namespace InnovEnergy.Collector.Records;
namespace InnovEnergy.App.Collector.Records;
#pragma warning disable CS8618

View File

@ -1,6 +1,6 @@
using System.Net;
namespace InnovEnergy.Collector;
namespace InnovEnergy.App.Collector;
public static class Settings
{

View File

@ -1,6 +1,6 @@
using System.Globalization;
namespace InnovEnergy.Collector.Utils;
namespace InnovEnergy.App.Collector.Utils;
public static class Extensions
{

View File

@ -1,4 +1,4 @@
namespace InnovEnergy.Collector.Utils;
namespace InnovEnergy.App.Collector.Utils;
internal static class Log
{

View File

@ -1,7 +1,7 @@
using System.Reflection;
using InnovEnergy.Lib.Utils;
namespace InnovEnergy.Collector.Utils;
namespace InnovEnergy.App.Collector.Utils;
public readonly struct Property
{

View File

@ -1,4 +1,4 @@
namespace InnovEnergy.Collector.Utils;
namespace InnovEnergy.App.Collector.Utils;
public static class ReadOnlyListExtensions
{

View File

@ -1,4 +1,4 @@
namespace InnovEnergy.Collector.Utils;
namespace InnovEnergy.App.Collector.Utils;
public static class Utils
{

View File

@ -1,7 +1,7 @@
using System.Reflection;
using InnovEnergy.Lib.Victron.VeDBus;
namespace InnovEnergy.EmuMeter;
namespace InnovEnergy.App.EmuMeterDriver;
public static class Config
{

View File

@ -5,8 +5,7 @@ using InnovEnergy.Lib.Protocols.Modbus.Clients;
using InnovEnergy.Lib.Utils;
using InnovEnergy.Lib.Victron.VeDBus;
namespace InnovEnergy.EmuMeter;
namespace InnovEnergy.App.EmuMeterDriver;
public static class EmuMeterDriver
{

View File

@ -0,0 +1,16 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="../InnovEnergy.App.props" />
<ItemGroup>
<ProjectReference Include="../../Lib/Devices/EmuMeter/EmuMeter.csproj" />
<ProjectReference Include="../../Lib/Protocols/DBus/DBus.csproj" />
<ProjectReference Include="../../Lib/Protocols/Modbus/Modbus.csproj" />
<ProjectReference Include="../../Lib/Utils/Utils.csproj" />
<ProjectReference Include="../../Lib/Victron/VeDBus/VeDBus.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="CliWrap" Version="3.6.0" />
</ItemGroup>
</Project>

View File

@ -2,7 +2,7 @@ using System.Text.Json.Nodes;
using CliWrap;
using CliWrap.Buffered;
namespace InnovEnergy.EmuMeter;
namespace InnovEnergy.App.EmuMeterDriver;
public readonly struct Nic
{

View File

@ -1,4 +1,4 @@
using InnovEnergy.EmuMeter;
using InnovEnergy.App.EmuMeterDriver;
using InnovEnergy.Lib.Protocols.DBus;
using InnovEnergy.Lib.Utils;
using InnovEnergy.Lib.Utils.Net;

View File

@ -2,7 +2,7 @@ using InnovEnergy.Lib.Devices.EmuMeter;
using InnovEnergy.Lib.Protocols.DBus.Protocol.DataTypes;
using InnovEnergy.Lib.Victron.VeDBus;
namespace InnovEnergy.EmuMeter;
namespace InnovEnergy.App.EmuMeterDriver;
public record Signal(Func<EmuMeterStatus, Object> Source, ObjectPath Path, String Format = "")
{

View File

@ -1,4 +1,4 @@
namespace InnovEnergy.EmuMeter;
namespace InnovEnergy.App.EmuMeterDriver;
public static class Utils
{

View File

@ -11,7 +11,6 @@
<PublishSingleFile>true</PublishSingleFile>
<PublishReadyToRun>true</PublishReadyToRun>
<TrimmerRemoveSymbols>true</TrimmerRemoveSymbols>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
@ -20,6 +19,7 @@
<PropertyGroup>
<OutputType>Exe</OutputType>
<RootNamespace>InnovEnergy.App.$(AssemblyName)</RootNamespace>
</PropertyGroup>
</Project>

View File

@ -1,6 +1,4 @@
namespace InnovEnergy.OpenVpnCertificatesServer;
using System;
namespace InnovEnergy.App.OpenVpnCertificatesServer;
public static class Files
{

View File

@ -1,9 +1,8 @@
namespace InnovEnergy.OpenVpnCertificatesServer;
using System;
using System.Net;
using Flurl;
namespace InnovEnergy.App.OpenVpnCertificatesServer;
public static class Http
{
// TODO: use worker thread

View File

@ -1,10 +1,6 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="../InnovEnergy.app.props" />
<Import Project="../InnovEnergy.App.props" />
<PropertyGroup>
<RootNamespace>InnovEnergy.OpenVpnCertificatesServer</RootNamespace>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="BouncyCastle" Version="1.8.9" />
<PackageReference Include="Flurl.Http" Version="3.2.2" />
@ -12,8 +8,9 @@
</ItemGroup>
<ItemGroup>
<ProjectReference Include="../../lib/Protocols/DBus/DBus.csproj" />
<ProjectReference Include="../../lib/Victron/VictronVRM/VictronVRM.csproj" />
<ProjectReference Include="../../Lib/Protocols/DBus/DBus.csproj" />
<ProjectReference Include="../../Lib/Victron/VictronVRM/VictronVRM.csproj" />
<ProjectReference Include="../../Lib/Utils/Utils.csproj" />
</ItemGroup>
</Project>

View File

@ -7,7 +7,7 @@ using Org.BouncyCastle.Math;
using Org.BouncyCastle.Security;
using Org.BouncyCastle.X509;
namespace InnovEnergy.OpenVpnCertificatesServer.PKI;
namespace InnovEnergy.App.OpenVpnCertificatesServer.PKI;
public static class CertificateAuthority
{

View File

@ -1,6 +1,6 @@
using Org.BouncyCastle.OpenSsl;
namespace InnovEnergy.OpenVpnCertificatesServer.PKI;
namespace InnovEnergy.App.OpenVpnCertificatesServer.PKI;
public static class Pem
{

View File

@ -1,6 +1,6 @@
using Org.BouncyCastle.OpenSsl;
namespace InnovEnergy.OpenVpnCertificatesServer.PKI;
namespace InnovEnergy.App.OpenVpnCertificatesServer.PKI;
public class PwdFinder : IPasswordFinder
{

View File

@ -1,15 +1,14 @@
using InnovEnergy.Lib.Utils;
using InnovEnergy.Lib.Victron.VictronVRM;
using InnovEnergy.OpenVpnCertificatesServer.PKI;
using System.Diagnostics;
using System.Diagnostics;
using System.Text;
using Flurl;
using ICSharpCode.SharpZipLib.Tar;
using InnovEnergy.App.OpenVpnCertificatesServer.PKI;
using InnovEnergy.Lib.Utils;
using InnovEnergy.Lib.Victron.VictronVRM;
using Org.BouncyCastle.Crypto;
using static InnovEnergy.App.OpenVpnCertificatesServer.PKI.CertificateAuthority;
using static InnovEnergy.OpenVpnCertificatesServer.PKI.CertificateAuthority;
namespace InnovEnergy.OpenVpnCertificatesServer;
namespace InnovEnergy.App.OpenVpnCertificatesServer;
// dotnet publish OpenVpnCertificatesServer.csproj -c Release -r linux-x64 -p:PublishSingleFile=true --self-contained true && scp bin/Release/net6.0/linux-x64/publish/OpenVpnCertificatesServer ig@salidomo.innovenergy.ch:~/get_cert/get_cert

View File

@ -1,9 +1,8 @@
namespace InnovEnergy.OpenVpnCertificatesServer;
using System;
using System.Text;
using ICSharpCode.SharpZipLib.Tar;
namespace InnovEnergy.App.OpenVpnCertificatesServer;
public static class Utils
{
public static void WriteFile(this TarOutputStream tar, String fileName, Byte[] contents, Boolean executable = false)

View File

@ -1,4 +1,4 @@
namespace InnovEnergy.RemoteSupportConsole;
namespace InnovEnergy.App.RemoteSupportConsole;
public static class Login
{

View File

@ -2,7 +2,7 @@ using System.Reactive.Linq;
using System.Reactive.Threading.Tasks;
using CliWrap;
namespace InnovEnergy.RemoteSupportConsole;
namespace InnovEnergy.App.RemoteSupportConsole;
public static class ObservablePipeSource
{

View File

@ -4,7 +4,7 @@ using InnovEnergy.Lib.Utils;
using InnovEnergy.Lib.Victron.VictronVRM;
using static System.Globalization.CompareOptions;
namespace InnovEnergy.RemoteSupportConsole;
namespace InnovEnergy.App.RemoteSupportConsole;
// dotnet publish -c release -r ubuntu-x64
// dotnet publish RemoteSupportConsole.csproj -c Release -r linux-x64 -p:PublishSingleFile=true --self-contained true

View File

@ -1,13 +1,9 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="../InnovEnergy.app.props" />
<PropertyGroup>
<RootNamespace>InnovEnergy.RemoteSupportConsole</RootNamespace>
</PropertyGroup>
<Import Project="../InnovEnergy.App.props" />
<ItemGroup>
<ProjectReference Include="../../lib/Utils/Utils.csproj" />
<ProjectReference Include="../../lib/Victron/VictronVRM/VictronVRM.csproj" />
<ProjectReference Include="../../Lib/Utils/Utils.csproj" />
<ProjectReference Include="../../Lib/Victron/VictronVRM/VictronVRM.csproj" />
</ItemGroup>
<ItemGroup>

View File

@ -1,7 +1,7 @@
using CliWrap;
using InnovEnergy.Lib.Utils;
namespace InnovEnergy.RemoteSupportConsole;
namespace InnovEnergy.App.RemoteSupportConsole;
public static class Ssh
{

View File

@ -2,7 +2,7 @@ using InnovEnergy.Lib.Utils;
using InnovEnergy.Lib.Victron.VictronVRM;
using static System.ConsoleColor;
namespace InnovEnergy.RemoteSupportConsole;
namespace InnovEnergy.App.RemoteSupportConsole;
public static class VpnConnection
{

View File

@ -2,7 +2,7 @@ using Flurl;
using Flurl.Http;
using InnovEnergy.Lib.Utils;
namespace InnovEnergy.RemoteSupportConsole;
namespace InnovEnergy.App.RemoteSupportConsole;
public static class VpnInfo
{

View File

@ -7,7 +7,7 @@ using InnovEnergy.Lib.Victron.VictronVRM;
using static System.ConsoleColor;
using static System.StringSplitOptions;
namespace InnovEnergy.RemoteSupportConsole;
namespace InnovEnergy.App.RemoteSupportConsole;
public static class VrmConnection
{

View File

@ -3,7 +3,7 @@ using InnovEnergy.Lib.Utils;
using InnovEnergy.Lib.Victron.VictronVRM;
using static System.ConsoleColor;
namespace InnovEnergy.RemoteSupportConsole;
namespace InnovEnergy.App.RemoteSupportConsole;
public static class VrmInfo

View File

@ -1,4 +1,4 @@
namespace InnovEnergy.RemoteSupportConsole;
namespace InnovEnergy.App.RemoteSupportConsole;
public readonly record struct VrmProxy(IDisposable Connection, String User, String Host, String Port) : IDisposable
{

View File

@ -0,0 +1,25 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="../InnovEnergy.App.props" />
<ItemGroup>
<ProjectReference Include="../../Lib/Devices/Adam6060/Adam6060.csproj"/>
<ProjectReference Include="../../Lib/Devices/AMPT/Ampt.csproj"/>
<ProjectReference Include="../../Lib/Devices/Battery48TL/Battery48TL.csproj"/>
<ProjectReference Include="../../Lib/Devices/EmuMeter/EmuMeter.csproj"/>
<ProjectReference Include="../../Lib/Devices/Trumpf/TruConvertAc/TruConvertAc.csproj"/>
<ProjectReference Include="../../Lib/Devices/Trumpf/TruConvertDc/TruConvertDc.csproj"/>
<ProjectReference Include="../../Lib/Devices/Trumpf/TruConvert/TruConvert.csproj"/>
<ProjectReference Include="../../Lib/StatusApi/StatusApi.csproj"/>
<ProjectReference Include="../../Lib/Utils/Utils.csproj"/>
<ProjectReference Include="../../Lib/Time/Time.csproj"/>
</ItemGroup>
<ItemGroup>
<PackageReference Include="CliWrap" Version="3.6.0"/>
<PackageReference Include="Flurl.Http" Version="3.2.4"/>
<PackageReference Include="System.IO.Ports" Version="7.0.0"/>
<PackageReference Include="DecimalMath.DecimalEx" Version="1.0.2"/>
</ItemGroup>
</Project>

View File

@ -1,6 +1,6 @@
using InnovEnergy.Lib.Utils;
namespace InnovEnergy.SaliMax;
namespace InnovEnergy.App.SaliMax;
public static class AsciiArt
{

View File

@ -1,4 +1,4 @@
namespace InnovEnergy.SaliMax;
namespace InnovEnergy.App.SaliMax;
public enum BusPort
{

View File

@ -1,6 +1,6 @@
using InnovEnergy.Lib.Devices.Battery48TL;
namespace InnovEnergy.SaliMax.Controller;
namespace InnovEnergy.App.SaliMax.Controller;
public class AvgBatteriesStatus
{

View File

@ -1,6 +1,4 @@
using static InnovEnergy.SaliMax.SystemConfig.SalimaxConfig;
namespace InnovEnergy.SaliMax.Controller;
namespace InnovEnergy.App.SaliMax.Controller;
public static class Control
{

View File

@ -1,9 +1,9 @@
using InnovEnergy.App.SaliMax.SaliMaxRelays;
using InnovEnergy.App.SaliMax.SystemConfig;
using InnovEnergy.Lib.Devices.Trumpf.TruConvertAc;
using InnovEnergy.Lib.Devices.Trumpf.TruConvertDc;
using InnovEnergy.SaliMax.SaliMaxRelays;
using InnovEnergy.SaliMax.SystemConfig;
namespace InnovEnergy.SaliMax.Controller;
namespace InnovEnergy.App.SaliMax.Controller;
public class ControlRecord
{

View File

@ -1,4 +1,4 @@
namespace InnovEnergy.SaliMax.Controller;
namespace InnovEnergy.App.SaliMax.Controller;
public enum ControlTarget // TODO to delete
{

Some files were not shown because too many files have changed in this diff Show More