2025-01-21 10:07:22 +00:00
|
|
|
|
using InnovEnergy.Lib.Devices.BatteryDeligreen;
|
|
|
|
|
|
2025-02-28 15:08:12 +00:00
|
|
|
|
namespace InnovEnergy.App.DeligreenBatteryCommunication;
|
|
|
|
|
|
2025-01-21 10:07:22 +00:00
|
|
|
|
internal static class Program
|
|
|
|
|
{
|
|
|
|
|
private static readonly TimeSpan UpdateInterval = TimeSpan.FromSeconds(2);
|
|
|
|
|
|
2025-02-28 15:08:12 +00:00
|
|
|
|
// private static readonly Channel? BatteriesChannel;
|
2025-01-21 10:07:22 +00:00
|
|
|
|
|
|
|
|
|
private const String Port = "/dev/ttyUSB0";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static Program()
|
|
|
|
|
{
|
|
|
|
|
Console.WriteLine("Hello, Deligreen World!");
|
|
|
|
|
|
2025-02-28 15:08:12 +00:00
|
|
|
|
// BatteriesChannel = new SerialPortChannel(Port, BaudRate, Parity, DataBits, StopBits);
|
2025-01-21 10:07:22 +00:00
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static async Task Main(string[] args)
|
|
|
|
|
{
|
2025-02-28 15:08:12 +00:00
|
|
|
|
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)
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
var batteryDevices = new BatteryDeligreenDevices(listOfBatteries);
|
2025-01-21 10:07:22 +00:00
|
|
|
|
|
2025-02-28 15:08:12 +00:00
|
|
|
|
Console.WriteLine("Starting Battery Communication");
|
|
|
|
|
|
2025-01-21 10:07:22 +00:00
|
|
|
|
while (true)
|
2025-02-28 15:08:12 +00:00
|
|
|
|
{
|
2025-01-21 10:07:22 +00:00
|
|
|
|
try
|
|
|
|
|
{
|
2025-02-28 15:08:12 +00:00
|
|
|
|
var startTime = DateTime.Now;
|
|
|
|
|
Console.WriteLine("***************************** Reading Battery Data *********************************************");
|
|
|
|
|
Console.WriteLine($"Start Reading all Batteries: {startTime}");
|
|
|
|
|
var batteriesRecord = batteryDevices.Read();
|
|
|
|
|
var stopTime = DateTime.Now;
|
|
|
|
|
Console.WriteLine($"Finish Reading all Batteries: {stopTime}");
|
|
|
|
|
|
|
|
|
|
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);
|
|
|
|
|
|
2025-01-21 10:07:22 +00:00
|
|
|
|
// Wait for 2 seconds before the next reading
|
|
|
|
|
await Task.Delay(2000); // Delay in milliseconds (2000ms = 2 seconds)
|
|
|
|
|
}
|
|
|
|
|
catch (Exception e)
|
|
|
|
|
{
|
|
|
|
|
// Handle exception and print the error
|
2025-02-28 15:08:12 +00:00
|
|
|
|
Console.WriteLine(e + " This the first try loop ");
|
2025-01-21 10:07:22 +00:00
|
|
|
|
await Task.Delay(2000); // Delay in milliseconds (2000ms = 2 seconds)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2025-02-28 15:08:12 +00:00
|
|
|
|
|
2025-01-21 10:07:22 +00:00
|
|
|
|
}
|