auto reset nếu lỗi

This commit is contained in:
Nguyen Dinh Thuan
2024-10-21 17:29:28 +07:00
parent 09e489ee42
commit d31c530392
4 changed files with 62 additions and 8 deletions
+7
View File
@@ -24,6 +24,13 @@
Margin="10" Margin="10"
Click="btnSoftResetError_Click"/> Click="btnSoftResetError_Click"/>
<Button <Button
Content="RESET LỖI (ABNORMAL STORAGE)"
x:Name="btnSoftImportantError"
HorizontalAlignment="Stretch"
Height="40"
Margin="10"
Click="btnSoftImportantError_Click"/>
<Button
Content="MỞ NGĂN PHỤ" Content="MỞ NGĂN PHỤ"
x:Name="btnOpenEscrow" x:Name="btnOpenEscrow"
HorizontalAlignment="Stretch" HorizontalAlignment="Stretch"
+5
View File
@@ -96,6 +96,11 @@ namespace SafeBagDE70.Admin
} }
}
private void btnSoftImportantError_Click(object sender, RoutedEventArgs e)
{
} }
} }
} }
+31 -5
View File
@@ -694,30 +694,56 @@ namespace SafeBagDE70
} }
public static bool ResetAbnormalStorage605() public static bool ResetAbnormalStorage605()
{ {
var cCmdRsp = AppData.cCmdRsp; var cCmdRsp = AppData.cCmdRsp;
bool bSuccess = false; bool bSuccess = false;
if (cCmdRsp != null && cCmdRsp.recv_dat != null)
if (cCmdRsp != null)
{ {
if (cCmdRsp.recv_dat.dat[1] == 0x1C && cCmdRsp.recv_dat.dat[2] == 0x4A) cCmdRsp.SendXXCmd((byte)Command.CMD_DE_SENSE);
if (cCmdRsp.recv_dat != null &&(cCmdRsp.recv_dat.dat[1] == 0x1C && cCmdRsp.recv_dat.dat[2] == 0x4C))
{ {
//0. Check notes in escrow or not?
//1. Event Fix
var recvData = cCmdRsp.recv_dat;
if (recvData.dat[14] == recvData.dat[16])
{
cCmdRsp.SendLock();
}
else
{
cCmdRsp.SendEventFix(recvData.dat[16]);
}
//2. UnLock
// cCmdRsp.SendXXCmd((byte)Command.CMD_DE_SENSE); // cCmdRsp.SendXXCmd((byte)Command.CMD_DE_SENSE);
cCmdRsp.SendXXCmd((byte)Command.CMD_DE_UNLOCK); cCmdRsp.SendXXCmd((byte)Command.CMD_DE_UNLOCK);
Thread.Sleep(1000); Thread.Sleep(1000);
//3. Lock with MODE IMPORTANT ERROR
var currentMode = cCmdRsp.GetLockParam().mode; var currentMode = cCmdRsp.GetLockParam().mode;
cCmdRsp.GetLockParam().mode = Mode.MODE_SECERROR; cCmdRsp.GetLockParam().mode = Mode.MODE_SECERROR;
cCmdRsp.SendLock(); cCmdRsp.SendLock();
Thread.Sleep(1000); Thread.Sleep(1000);
cCmdRsp.SendXXCmd((byte)Command.CMD_DE_SENSE); cCmdRsp.SendXXCmd((byte)Command.CMD_DE_SENSE);
var recvData = cCmdRsp.recv_dat; recvData = cCmdRsp.recv_dat;
var SR2 = recvData.dat[1]; var SR2 = recvData.dat[1];
var S2 = recvData.dat[recvData.leng - 1]; var S2 = recvData.dat[recvData.leng - 1];
if (recvData.dat[1] == 0x1C && (S2==0xE2 || S2==0xE4))
if (SR2 == 0x1C && (S2==0xE2 || S2==0xE4))
{ {
cCmdRsp.SendXXCmd((byte)Command.CMD_DE_RESET); cCmdRsp.SendXXCmd((byte)Command.CMD_DE_RESET);
Thread.Sleep(2000); for(int i=0;i<10;i++)
{
cCmdRsp.SendXXCmd((byte)Command.CMD_DE_SENSE); cCmdRsp.SendXXCmd((byte)Command.CMD_DE_SENSE);
Thread.Sleep(1000);
S2 = recvData.dat[recvData.leng - 1];
if (S2 == 0xE7)
break;
}
Thread.Sleep(1000); Thread.Sleep(1000);
cCmdRsp.SendXXCmd((byte)Command.CMD_DE_CNTSTART); cCmdRsp.SendXXCmd((byte)Command.CMD_DE_CNTSTART);
Thread.Sleep(1000); Thread.Sleep(1000);
+17 -1
View File
@@ -425,7 +425,7 @@ namespace SafeBagDE70
} }
sensorTimer.IsEnabled = true; sensorTimer.IsEnabled = true;
} }
int nTry2Reset = 0;
private void GetCDMStatus() private void GetCDMStatus()
{ {
if (!AppData.IsInTransaction) if (!AppData.IsInTransaction)
@@ -442,9 +442,25 @@ namespace SafeBagDE70
AppData.CDMSTATE.CDMStatus = "CDM: LỖI INITIALIZATION ERROR"; AppData.CDMSTATE.CDMStatus = "CDM: LỖI INITIALIZATION ERROR";
AppData.DeviceStatus.CDMStatus = (int)CDMStatusCode.ERROR; AppData.DeviceStatus.CDMStatus = (int)CDMStatusCode.ERROR;
AppData.DeviceStatus.Description = AppData.CDMSTATE.CDMStatus; AppData.DeviceStatus.Description = AppData.CDMSTATE.CDMStatus;
if(nTry2Reset<2)
{
AppData.ResetCDMError();
nTry2Reset++;
AppData.GetCDMState();
var SR1 = AppData.cCmdRsp.recv_dat.dat[1];
if ((SR1 == 0x07) || (SR1 == 0x04))
{
AppData.CDMSTATE.CDMStatus = "CDM: LỖI INITIALIZATION ERROR --> RESET THÀNH CÔNG";
}
else
AppData.CDMSTATE.CDMStatus = "CDM: LỖI INITIALIZATION ERROR --> RESET KHÔNG THÀNH CÔNG";
}
} }
else else
{ {
nTry2Reset = 0;
AppData.DeviceStatus.CDMStatus = (int)CDMStatusCode.NORMAL; AppData.DeviceStatus.CDMStatus = (int)CDMStatusCode.NORMAL;
AppData.DeviceStatus.Description = AppData.CDMSTATE.CDMStatus; AppData.DeviceStatus.Description = AppData.CDMSTATE.CDMStatus;
} }