|
@@ -669,29 +669,7 @@ namespace parkMonitor.server.CoreThread
|
|
|
{
|
|
|
bool displayed = false;
|
|
|
//等待获取缓冲位资源
|
|
|
- while (pb == null && !MyTimer.restart)
|
|
|
- {
|
|
|
- pb = ParkingBufferManager.ins.MallocParkingBuffer(queueCmd.id);
|
|
|
- if (pb != null)
|
|
|
- {
|
|
|
- Log.WriteLog(LogType.NOT_DATABASE, LogFile.INFO, queueCmd.LicenseNum + "分配缓冲位:" + pb.bufferID);
|
|
|
- break;
|
|
|
- }
|
|
|
- else if (!displayed)
|
|
|
- {
|
|
|
- UILogServer.ins.error(queueCmd.LicenseNum + "缓冲位已满");
|
|
|
- Log.WriteLog(LogType.NOT_DATABASE, LogFile.WARNING, queueCmd.LicenseNum + "缓冲位分配失败");
|
|
|
- displayed = true;
|
|
|
- }
|
|
|
- Thread.Sleep(2000);
|
|
|
- }
|
|
|
- if (pb == null)
|
|
|
- {
|
|
|
- UILogServer.ins.error("缓冲位分配失败,流程已回滚");
|
|
|
- Log.WriteLog(LogType.NOT_DATABASE, LogFile.ERROR, "缓冲位分配失败,流程已回滚");
|
|
|
- Rollback(queueCmd, 0, false, true, lmToBeReleased);
|
|
|
- return;
|
|
|
- }
|
|
|
+
|
|
|
|
|
|
//获取车位资源
|
|
|
ppp = WaitForParkingSpaceResource(queueCmd, out freeSpaceCount);
|
|
@@ -739,9 +717,35 @@ namespace parkMonitor.server.CoreThread
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
+ while (pb == null && !MyTimer.restart)
|
|
|
+ {
|
|
|
+ //pb = ParkingBufferManager.ins.MallocParkingBuffer(queueCmd.id);
|
|
|
+ pb = new ParkingBuffer(ppp.parkingSpaceX, true);
|
|
|
+ ParkingBufferManager.ins.SetParkingBuffer(ppp.parkingSpaceX, true);
|
|
|
+ if (pb != null)
|
|
|
+ {
|
|
|
+ Log.WriteLog(LogType.NOT_DATABASE, LogFile.INFO, queueCmd.LicenseNum + "分配缓冲位:" + pb.bufferID);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ else if (!displayed)
|
|
|
+ {
|
|
|
+ UILogServer.ins.error(queueCmd.LicenseNum + "缓冲位已满");
|
|
|
+ Log.WriteLog(LogType.NOT_DATABASE, LogFile.WARNING, queueCmd.LicenseNum + "缓冲位分配失败");
|
|
|
+ displayed = true;
|
|
|
+ }
|
|
|
+ Thread.Sleep(2000);
|
|
|
+ }
|
|
|
+ if (pb == null)
|
|
|
+ {
|
|
|
+ UILogServer.ins.error("缓冲位分配失败,流程已回滚");
|
|
|
+ Log.WriteLog(LogType.NOT_DATABASE, LogFile.ERROR, "缓冲位分配失败,流程已回滚");
|
|
|
+ Rollback(queueCmd, 0, false, true, lmToBeReleased);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
//车位赋值与写数据库
|
|
|
if (!queueCmd.manual)
|
|
|
- {
|
|
|
+ {
|
|
|
}
|
|
|
else
|
|
|
{
|
|
@@ -798,8 +802,8 @@ namespace parkMonitor.server.CoreThread
|
|
|
//分配的车位数据
|
|
|
cm.parkingSpaceID = Convert.ToString(ppp.parkingSpaceID);
|
|
|
//!!!之前把停车位X坐标当做缓冲位ID,现修改为被管理的缓冲位ID,之后PLC地址需调整!!!
|
|
|
- //cm.parkingSpaceX = Convert.ToString(ppp.parkingSpaceX);
|
|
|
- cm.parkingSpaceX = Convert.ToString(pb.bufferID);
|
|
|
+ cm.parkingSpaceX = Convert.ToString(ppp.parkingSpaceX);
|
|
|
+ //cm.parkingSpaceX = Convert.ToString(pb.bufferID);
|
|
|
cm.parkingSpaceY = Convert.ToString(ppp.parkingSpaceY);
|
|
|
cm.parkingSpaceZ = Convert.ToString(ppp.parkingSpaceZ);
|
|
|
PLC.SetMessage(cm);
|
|
@@ -841,7 +845,7 @@ namespace parkMonitor.server.CoreThread
|
|
|
Robot.robot1.waitCount -= 1;
|
|
|
//自动化测试用
|
|
|
//ManualParkingSimul.ins.Update(Int32.Parse(queueCmd.LicenseNum.Substring(2, 1)));
|
|
|
- ParkingSimul.ins.Update(Int32.Parse(queueCmd.LicenseNum.Substring(2, 1)));
|
|
|
+ //ParkingSimul.ins.Update(Int32.Parse(queueCmd.LicenseNum.Substring(2, 1)));
|
|
|
//根据号牌查找车型
|
|
|
//int vehicleTypeID = oper.getVehicleTypeID(numberPlate);
|
|
|
//判断测量数据是否准确
|
|
@@ -871,6 +875,7 @@ namespace parkMonitor.server.CoreThread
|
|
|
//using (MySqlConnection conn = new MySqlConnection(DBConnection.remoteConf))
|
|
|
{
|
|
|
Operation.TryOpen(conn);
|
|
|
+ //string insertRecordSql = "insert into parkingrecords(userID,numberPlate,parkingSpaceID,garageID,parkingRecordsState,realParkTime) values('" + userID + "','" + queueCmd.LicenseNum + "','" + ppp.parkingSpaceID + "','" + garageID + "',3,'" + realParkTime + "')";
|
|
|
string insertRecordSql = "insert into parkingrecords(userID,numberPlate,parkingSpaceID,garageID,parkingRecordsState,realParkTime) values('" + userID + "','" + queueCmd.LicenseNum + "','" + ppp.parkingSpaceID + "','" + garageID + "',3,'" + realParkTime + "')";
|
|
|
if (!Operation.MyTransaction(conn, insertRecordSql, out parkingRecordsID))
|
|
|
{
|
|
@@ -1121,7 +1126,7 @@ namespace parkMonitor.server.CoreThread
|
|
|
|
|
|
//自动化测试用
|
|
|
//ManualParkingSimul.ins.Update(Int32.Parse(queueCmd.LicenseNum.Substring(2, 1)));
|
|
|
- ParkingSimul.ins.Update(Int32.Parse(queueCmd.LicenseNum.Substring(2, 1)));
|
|
|
+ //ParkingSimul.ins.Update(Int32.Parse(queueCmd.LicenseNum.Substring(2, 1)));
|
|
|
|
|
|
int freeSpaceCount = ParkingSpaceManager.ins.GetFreeSpaceCount();
|
|
|
//数据库更新
|