update Deligreen stand alone application
This commit is contained in:
parent
5fc72a4f39
commit
37a8831585
|
|
@ -1,4 +1,8 @@
|
|||
using InnovEnergy.Lib.Devices.BatteryDeligreen;
|
||||
using System.Net;
|
||||
using InnovEnergy.Lib.Devices.BatteryDeligreen;
|
||||
using InnovEnergy.Lib.Protocols.Modbus.Channels;
|
||||
using InnovEnergy.Lib.Utils;
|
||||
using InnovEnergy.Lib.Utils.Net;
|
||||
|
||||
namespace InnovEnergy.App.DeligreenBatteryCommunication;
|
||||
|
||||
|
|
@ -6,7 +10,7 @@ internal static class Program
|
|||
{
|
||||
private static readonly TimeSpan UpdateInterval = TimeSpan.FromSeconds(2);
|
||||
|
||||
// private static readonly Channel? BatteriesChannel;
|
||||
private static Channel _relaysChannel;
|
||||
|
||||
private const String Port = "/dev/ttyUSB0";
|
||||
|
||||
|
|
@ -19,18 +23,21 @@ internal static class Program
|
|||
|
||||
}
|
||||
|
||||
public static async Task Main(string[] args)
|
||||
public static async Task Main(String[] args)
|
||||
{
|
||||
var listOfBatteries = new List<BatteryDeligreenDevice>
|
||||
var device1 = new SalimaxDevice { Host = "10.0.1.3" , Port = 502, DeviceState = DeviceState.Measured };
|
||||
|
||||
_relaysChannel = CreateChannel(device1);
|
||||
|
||||
var saliMaxRelaysDevice = new RelaysDeviceAmax(_relaysChannel);
|
||||
|
||||
/* var listOfBatteries = new List<BatteryDeligreenDevice>
|
||||
{
|
||||
new BatteryDeligreenDevice(Port, 0),
|
||||
new BatteryDeligreenDevice(Port, 1),
|
||||
new BatteryDeligreenDevice(Port, 2),
|
||||
new BatteryDeligreenDevice(Port, 3),
|
||||
new BatteryDeligreenDevice(Port, 4)
|
||||
new BatteryDeligreenDevice(Port, 1)
|
||||
};
|
||||
|
||||
var batteryDevices = new BatteryDeligreenDevices(listOfBatteries);
|
||||
var batteryDevices = new BatteryDeligreenDevices(listOfBatteries);*/
|
||||
|
||||
Console.WriteLine("Starting Battery Communication");
|
||||
|
||||
|
|
@ -40,21 +47,65 @@ internal static class Program
|
|||
{
|
||||
var startTime = DateTime.Now;
|
||||
Console.WriteLine("***************************** Reading Battery Data *********************************************");
|
||||
Console.WriteLine($"Start Reading all Batteries: {startTime}");
|
||||
var batteriesRecord = batteryDevices.Read();
|
||||
// Console.WriteLine($"Start Reading all Batteries: {startTime}");
|
||||
//var batteriesRecord = batteryDevices.Read();
|
||||
var stopTime = DateTime.Now;
|
||||
Console.WriteLine($"Finish Reading all Batteries: {stopTime}");
|
||||
//Console.WriteLine($"Finish Reading all Batteries: {stopTime}");
|
||||
var relays = saliMaxRelaysDevice.Read();
|
||||
|
||||
Console.WriteLine("***************************** Writing register 27 to true Amax *********************************************");
|
||||
|
||||
relays.K0 = true;
|
||||
relays.K1 = true;
|
||||
relays.R0 = true;
|
||||
relays.R1 = true;
|
||||
relays.R2 = true;
|
||||
relays.R3 = true;
|
||||
// relays.K0Input.WriteLine(" : K0input");
|
||||
saliMaxRelaysDevice.Write(relays);
|
||||
|
||||
Console.WriteLine("***************************** Reading Amax *********************************************");
|
||||
|
||||
|
||||
// relays.K1GridBusIsConnectedToGrid.WriteLine(" : K1");
|
||||
|
||||
await Task.Delay(2000);
|
||||
|
||||
Console.WriteLine("***************************** Writing register 27 to false Amax *********************************************");
|
||||
relays.K0 = false;
|
||||
relays.K1 = false;
|
||||
relays.R0 = false;
|
||||
relays.R1 = false;
|
||||
relays.R2 = false;
|
||||
relays.R3 = false;
|
||||
// relays.K0Input.WriteLine(" : K0input");
|
||||
|
||||
saliMaxRelaysDevice.Write(relays);
|
||||
|
||||
Console.WriteLine("***************************** Reading Amax *********************************************");
|
||||
|
||||
|
||||
/*
|
||||
|
||||
|
||||
Console.WriteLine("Time used for reading all batteries:" + (stopTime - startTime));
|
||||
|
||||
Console.WriteLine("Average SOC " + batteriesRecord?.Soc);
|
||||
Console.WriteLine("SOC Battery 0 : " + batteriesRecord?.Devices[0].BatteryDeligreenDataRecord.Soc);
|
||||
Console.WriteLine("SOC Battery 1 : " + batteriesRecord?.Devices[1].BatteryDeligreenDataRecord.Soc);
|
||||
Console.WriteLine("SOC Battery 2 : " + batteriesRecord?.Devices[2].BatteryDeligreenDataRecord.Soc);
|
||||
Console.WriteLine("SOC Battery 3 : " + batteriesRecord?.Devices[3].BatteryDeligreenDataRecord.Soc);
|
||||
Console.WriteLine("SOC Battery 4 : " + batteriesRecord?.Devices[4].BatteryDeligreenDataRecord.Soc);
|
||||
Console.WriteLine("Min Soc " + batteriesRecord?.CurrentMinSoc);
|
||||
Console.WriteLine("count " + batteriesRecord?.Devices.Count);
|
||||
Console.WriteLine("Cell Alarm 1 : " + batteriesRecord?.Devices[0].BatteryDeligreenAlarmRecord.CellAlarmList[0]);
|
||||
Console.WriteLine("Cell Alarm 2 : " + batteriesRecord?.Devices[0].BatteryDeligreenAlarmRecord.CellAlarmList[1]);
|
||||
|
||||
Console.WriteLine("Cell Temperature Alarm 1 : " + batteriesRecord?.Devices[0].BatteryDeligreenAlarmRecord.CellTemperatureAlarm[0]);
|
||||
Console.WriteLine("Cell Temperature Alarm 2 : " + batteriesRecord?.Devices[0].BatteryDeligreenAlarmRecord.CellTemperatureAlarm[1]);
|
||||
|
||||
Console.WriteLine("Battery 1 EnviTemp Alarm: " + batteriesRecord?.Devices[0].BatteryDeligreenAlarmRecord.EnviTempAlarm);
|
||||
Console.WriteLine("Battery 1 Current Alarm : " + batteriesRecord?.Devices[0].BatteryDeligreenAlarmRecord.CurrentAlarm);
|
||||
|
||||
Console.WriteLine("Battery 2 EnviTemp Alarm: " + batteriesRecord?.Devices[1].BatteryDeligreenAlarmRecord.EnviTempAlarm);
|
||||
Console.WriteLine("Battery 2 Current Alarm : " + batteriesRecord?.Devices[1].BatteryDeligreenAlarmRecord.CurrentAlarm);
|
||||
|
||||
Console.WriteLine("TotalVoltage Alarm : " + batteriesRecord?.Devices[0].BatteryDeligreenAlarmRecord.TotalVoltageAlarm);
|
||||
Console.WriteLine("PowerTemp Alarm : " + batteriesRecord?.Devices[0].BatteryDeligreenAlarmRecord.PowerTempAlarm);*/
|
||||
|
||||
|
||||
// Wait for 2 seconds before the next reading
|
||||
await Task.Delay(2000); // Delay in milliseconds (2000ms = 2 seconds)
|
||||
|
|
@ -66,6 +117,8 @@ internal static class Program
|
|||
await Task.Delay(2000); // Delay in milliseconds (2000ms = 2 seconds)
|
||||
}
|
||||
}
|
||||
|
||||
Channel CreateChannel(SalimaxDevice device) => new TcpChannel(device);
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue