Innovenergy_trunk/csharp/Lib/Victron/VeDBus/VeDbusService.cs

60 lines
2.1 KiB
C#

// using System.Diagnostics;
// using System.Reactive.Linq;
// using InnovEnergy.Lib.Protocols.DBus;
// using InnovEnergy.Lib.Protocols.DBus.Protocol;
// using InnovEnergy.Lib.Protocols.DBus.Protocol.DataTypes;
// using InnovEnergy.Lib.Protocols.DBus.Protocol.Header;
//
// namespace InnovEnergy.Lib.Victron.VeDBus;
//
// public class VeDbusService : IDisposable
// {
// private DBusConnection DbusConnection { get; }
// public VeProperties Properties { get; }
//
// public VeDbusService(Bus bus, String busName, VeProperties properties)
// {
// DbusConnection = new DBusConnection(bus);
//
// DbusConnection.IncomingMessages
// .Where(m => m.Type == MessageType.MethodCall)
// .Do(m => Debug.WriteLine($"Got call from {m.Sender} : {m.Member} {m.ObjectPath}"))
// .Select(AnswerMethodCalls)
// .Subscribe(DbusConnection.OutgoingMessages.OnNext);
// }
//
//
// private Message AnswerMethodCalls(Message msg)
// {
// if (!msg.ObjectPath.HasValue)
// return msg.CreateErrorReply("Unknown ObjectPath");
//
//
// if (msg.ObjectPath == ObjectPath.Root)
// {
// return msg.Member switch
// {
// VeDBusApi.GetValue => msg.CreateMethodReturn(Properties.GetValueOfAllProperties()),
// VeDBusApi.GetText => msg.CreateMethodReturn(Properties.GetTextOfAllProperties()),
// _ => msg.CreateErrorReply("Unknown Member")
// };
// }
//
// var prop = Properties.Get(msg.ObjectPath.Value);
//
// if (prop.HasValue)
// {
// return msg.Member switch
// {
// VeDBusApi.GetValue => msg.CreateMethodReturn(prop.Value.Value),
// VeDBusApi.GetText => msg.CreateMethodReturn(prop.Value.Text),
// _ => msg.CreateErrorReply("Unknown Member")
// };
// }
//
// return msg.CreateErrorReply("Unknown ObjectPath");
// }
//
// public void Dispose() => DbusConnection.Dispose();
//
// }