C3DeviceController - Remove C3DeviceEvent, C3RTLogEventHandler. Add Event C3DeviceEvent. Add Method GetLogToReceiveNewCard

This commit is contained in:
DucDangAnh 2020-06-22 13:58:13 +07:00
parent 7880d5bced
commit 4df6d9f2d6

View File

@ -1,11 +1,12 @@
using System; using System;
using System.Runtime.InteropServices; using System.Runtime.InteropServices;
using System.Text; using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace AIParkingApplication namespace AIParkingApplication
{ {
public delegate void C3EventHandler(ActionResult actionResult); public delegate void C3DeviceEvent(int doorId, string cardNumber);
public delegate void C3RTLogEventHandler(ActionResult actionResult, int doorId, string cardNumber);
public class C3DeviceController public class C3DeviceController
{ {
@ -14,17 +15,10 @@ namespace AIParkingApplication
private IntPtr oneTimeConnectedParamHandler; private IntPtr oneTimeConnectedParamHandler;
private string connectionString; private string connectionString;
private bool isReconnected; private bool isReconnected;
public event C3EventHandler OnConnected;
public event C3EventHandler OnConnectFailed;
public event C3EventHandler OnReconnect;
public event C3EventHandler OnDoorOpenned;
public event C3EventHandler OnDoorOpenFailed;
public event C3EventHandler OnPingFailed;
public event C3EventHandler OnDisconnected;
public event C3RTLogEventHandler OnGetRTLog;
public event C3EventHandler OnGetRTLogFailed;
private int reconnectCounter; private int reconnectCounter;
public event C3DeviceEvent OnNewCardReceived;
public C3DeviceController(string ipAddress, int port = C3Constant.DEFAULT_C3_PORT) public C3DeviceController(string ipAddress, int port = C3Constant.DEFAULT_C3_PORT)
{ {
IPAddress = ipAddress; IPAddress = ipAddress;
@ -67,7 +61,6 @@ namespace AIParkingApplication
HasError = false, HasError = false,
Message = string.Format(C3Constant.CONNECTED_SUCCESSFULLY, DateTime.Now.ToString(AppConstant.DATETIME_FORMAT), IPAddress) Message = string.Format(C3Constant.CONNECTED_SUCCESSFULLY, DateTime.Now.ToString(AppConstant.DATETIME_FORMAT), IPAddress)
}; };
OnConnected?.Invoke(result);
return result; return result;
} }
else else
@ -77,7 +70,6 @@ namespace AIParkingApplication
HasError = true, HasError = true,
Message = string.Format(C3Constant.FAILED_TO_CONNECT, DateTime.Now.ToString(AppConstant.DATETIME_FORMAT), IPAddress, PullLastError()) Message = string.Format(C3Constant.FAILED_TO_CONNECT, DateTime.Now.ToString(AppConstant.DATETIME_FORMAT), IPAddress, PullLastError())
}; };
OnConnectFailed?.Invoke(result);
return result; return result;
} }
} }
@ -88,8 +80,6 @@ namespace AIParkingApplication
HasError = true, HasError = true,
Message = string.Format(C3Constant.FAILED_TO_PING, DateTime.Now.ToString(AppConstant.DATETIME_FORMAT), IPAddress) Message = string.Format(C3Constant.FAILED_TO_PING, DateTime.Now.ToString(AppConstant.DATETIME_FORMAT), IPAddress)
}; };
OnPingFailed?.Invoke(result);
OnConnectFailed?.Invoke(result);
return result; return result;
} }
} }
@ -106,7 +96,6 @@ namespace AIParkingApplication
HasError = false, HasError = false,
Message = string.Format(C3Constant.OPENNED_DOOR_SUCCESSFULLY, DateTime.Now.ToString(AppConstant.DATETIME_FORMAT), IPAddress) Message = string.Format(C3Constant.OPENNED_DOOR_SUCCESSFULLY, DateTime.Now.ToString(AppConstant.DATETIME_FORMAT), IPAddress)
}; };
OnDoorOpenned?.Invoke(result);
return result; return result;
} }
else else
@ -116,7 +105,6 @@ namespace AIParkingApplication
HasError = true, HasError = true,
Message = string.Format(C3Constant.FAILED_TO_OPEN_DOOR, DateTime.Now.ToString(AppConstant.DATETIME_FORMAT), IPAddress) Message = string.Format(C3Constant.FAILED_TO_OPEN_DOOR, DateTime.Now.ToString(AppConstant.DATETIME_FORMAT), IPAddress)
}; };
OnDoorOpenFailed?.Invoke(result);
return result; return result;
} }
} }
@ -127,11 +115,23 @@ namespace AIParkingApplication
HasError = true, HasError = true,
Message = string.Format(C3Constant.NOT_CONNECTTED, DateTime.Now.ToString(AppConstant.DATETIME_FORMAT), IPAddress) Message = string.Format(C3Constant.NOT_CONNECTTED, DateTime.Now.ToString(AppConstant.DATETIME_FORMAT), IPAddress)
}; };
OnDoorOpenFailed?.Invoke(result);
return result; return result;
} }
} }
public async Task GetLogToReceiveNewCard()
{
while (true)
{
await Task.Delay(1000);
ActionResult getRTLogResult = GetRTLog(out int doorId, out string cardNumber);
if (doorId != C3Constant.DEFAULT_DOOR_ID && cardNumber != C3Constant.DEFAULT_CARD_NUMBER)
{
OnNewCardReceived?.Invoke(doorId, cardNumber);
}
}
}
public ActionResult GetRTLog(out int doorId, out string cardNumber) public ActionResult GetRTLog(out int doorId, out string cardNumber)
{ {
doorId = C3Constant.DEFAULT_DOOR_ID; doorId = C3Constant.DEFAULT_DOOR_ID;
@ -145,7 +145,6 @@ namespace AIParkingApplication
HasError = true, HasError = true,
Message = string.Format(C3Constant.FAILED_TO_PING, DateTime.Now.ToString(AppConstant.DATETIME_FORMAT), IPAddress) Message = string.Format(C3Constant.FAILED_TO_PING, DateTime.Now.ToString(AppConstant.DATETIME_FORMAT), IPAddress)
}; };
OnPingFailed?.Invoke(result);
return result; return result;
} }
@ -167,7 +166,6 @@ namespace AIParkingApplication
{ {
HasError = false HasError = false
}; };
OnGetRTLog?.Invoke(result, doorId, cardNumber);
return result; return result;
} }
else else
@ -182,7 +180,6 @@ namespace AIParkingApplication
reconnectCounter = 0; reconnectCounter = 0;
reconnectResult.Message = string.Format(C3Constant.RECONNECTED_SUCCESSFULLY, DateTime.Now.ToString(AppConstant.DATETIME_FORMAT), IPAddress); reconnectResult.Message = string.Format(C3Constant.RECONNECTED_SUCCESSFULLY, DateTime.Now.ToString(AppConstant.DATETIME_FORMAT), IPAddress);
} }
OnReconnect?.Invoke(reconnectResult);
return reconnectResult; return reconnectResult;
} }
@ -191,7 +188,6 @@ namespace AIParkingApplication
HasError = true, HasError = true,
Message = string.Format(C3Constant.FAILED_TO_READ_LOG, DateTime.Now.ToString(AppConstant.DATETIME_FORMAT), IPAddress) Message = string.Format(C3Constant.FAILED_TO_READ_LOG, DateTime.Now.ToString(AppConstant.DATETIME_FORMAT), IPAddress)
}; };
OnGetRTLogFailed?.Invoke(result);
return result; return result;
} }
} }
@ -204,7 +200,6 @@ namespace AIParkingApplication
HasError = true, HasError = true,
Message = string.Format(C3Constant.WRONG_FORMAT_DATA, DateTime.Now.ToString(AppConstant.DATETIME_FORMAT), IPAddress, ex.Message) Message = string.Format(C3Constant.WRONG_FORMAT_DATA, DateTime.Now.ToString(AppConstant.DATETIME_FORMAT), IPAddress, ex.Message)
}; };
OnGetRTLogFailed?.Invoke(result);
return result; return result;
} }
} }
@ -218,7 +213,6 @@ namespace AIParkingApplication
HasError = false, HasError = false,
Message = string.Format(C3Constant.DISCONNECTED_SUCCESSFULLY, DateTime.Now.ToString(AppConstant.DATETIME_FORMAT), IPAddress) Message = string.Format(C3Constant.DISCONNECTED_SUCCESSFULLY, DateTime.Now.ToString(AppConstant.DATETIME_FORMAT), IPAddress)
}; };
OnDisconnected?.Invoke(result);
return result; return result;
} }
} }