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