Change UdpListener to private
add null check on the config file.
This commit is contained in:
parent
4e17ce2420
commit
22c82ae521
|
@ -4,12 +4,12 @@ using System.Net.Sockets;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Text.Json;
|
using System.Text.Json;
|
||||||
using InnovEnergy.App.SaliMax.DataTypes;
|
using InnovEnergy.App.SaliMax.DataTypes;
|
||||||
using InnovEnergy.App.SaliMax.Ess;
|
|
||||||
namespace InnovEnergy.App.SaliMax.MiddlewareClasses;
|
namespace InnovEnergy.App.SaliMax.MiddlewareClasses;
|
||||||
|
|
||||||
public static class MiddlewareAgent
|
public static class MiddlewareAgent
|
||||||
{
|
{
|
||||||
public static UdpClient UdpListener = null!;
|
private static UdpClient _udpListener = null!;
|
||||||
private static IPAddress? _controllerIpAddress;
|
private static IPAddress? _controllerIpAddress;
|
||||||
private static EndPoint? _endPoint;
|
private static EndPoint? _endPoint;
|
||||||
|
|
||||||
|
@ -24,9 +24,9 @@ public static class MiddlewareAgent
|
||||||
const Int32 udpPort = 9000;
|
const Int32 udpPort = 9000;
|
||||||
_endPoint = new IPEndPoint(_controllerIpAddress, udpPort);
|
_endPoint = new IPEndPoint(_controllerIpAddress, udpPort);
|
||||||
|
|
||||||
UdpListener = new UdpClient();
|
_udpListener = new UdpClient();
|
||||||
UdpListener.Client.Blocking = false;
|
_udpListener.Client.Blocking = false;
|
||||||
UdpListener.Client.Bind(_endPoint);
|
_udpListener.Client.Bind(_endPoint);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static IPAddress FindVpnIp()
|
private static IPAddress FindVpnIp()
|
||||||
|
@ -53,7 +53,7 @@ public static class MiddlewareAgent
|
||||||
|
|
||||||
public static Configuration? SetConfigurationFile()
|
public static Configuration? SetConfigurationFile()
|
||||||
{
|
{
|
||||||
if (UdpListener.Available > 0)
|
if (_udpListener.Available > 0)
|
||||||
{
|
{
|
||||||
|
|
||||||
IPEndPoint? serverEndpoint = null;
|
IPEndPoint? serverEndpoint = null;
|
||||||
|
@ -61,20 +61,26 @@ public static class MiddlewareAgent
|
||||||
var replyMessage = "ACK";
|
var replyMessage = "ACK";
|
||||||
var replyData = Encoding.UTF8.GetBytes(replyMessage);
|
var replyData = Encoding.UTF8.GetBytes(replyMessage);
|
||||||
|
|
||||||
var udpMessage = UdpListener.Receive(ref serverEndpoint);
|
var udpMessage = _udpListener.Receive(ref serverEndpoint);
|
||||||
var message = Encoding.UTF8.GetString(udpMessage);
|
var message = Encoding.UTF8.GetString(udpMessage);
|
||||||
|
|
||||||
Configuration? config = JsonSerializer.Deserialize<Configuration>(message);
|
var config = JsonSerializer.Deserialize<Configuration>(message);
|
||||||
|
|
||||||
Console.WriteLine($"Received a configuration message: GridSetPoint is " + config.GridSetPoint + ", MinimumSoC is " + config.MinimumSoC + " and ForceCalibrationCharge is " + config.CalibrationChargeState+ " and CalibrationChargeDate is " + config.CalibrationChargeDate);
|
if (config != null)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"Received a configuration message: GridSetPoint is " + config.GridSetPoint +
|
||||||
|
", MinimumSoC is " + config.MinimumSoC + " and ForceCalibrationCharge is " +
|
||||||
|
config.CalibrationChargeState + " and CalibrationChargeDate is " +
|
||||||
|
config.CalibrationChargeDate);
|
||||||
|
|
||||||
// Send the reply to the sender's endpoint
|
// Send the reply to the sender's endpoint
|
||||||
UdpListener.Send(replyData, replyData.Length, serverEndpoint);
|
_udpListener.Send(replyData, replyData.Length, serverEndpoint);
|
||||||
Console.WriteLine($"Replied to {serverEndpoint}: {replyMessage}");
|
Console.WriteLine($"Replied to {serverEndpoint}: {replyMessage}");
|
||||||
return config;
|
return config;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (!_endPoint.Equals((IPEndPoint)UdpListener.Client.LocalEndPoint))
|
if (_endPoint != null && !_endPoint.Equals(_udpListener.Client.LocalEndPoint as IPEndPoint))
|
||||||
{
|
{
|
||||||
Console.WriteLine("UDP address has changed, rebinding...");
|
Console.WriteLine("UDP address has changed, rebinding...");
|
||||||
InitializeCommunicationToMiddleware();
|
InitializeCommunicationToMiddleware();
|
||||||
|
|
Loading…
Reference in New Issue