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"
Click="btnSoftResetError_Click"/>
<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Ụ"
x:Name="btnOpenEscrow"
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()
{
var cCmdRsp = AppData.cCmdRsp;
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_UNLOCK);
Thread.Sleep(1000);
//3. Lock with MODE IMPORTANT ERROR
var currentMode = cCmdRsp.GetLockParam().mode;
cCmdRsp.GetLockParam().mode = Mode.MODE_SECERROR;
cCmdRsp.SendLock();
Thread.Sleep(1000);
cCmdRsp.SendXXCmd((byte)Command.CMD_DE_SENSE);
var recvData = cCmdRsp.recv_dat;
recvData = cCmdRsp.recv_dat;
var SR2 = recvData.dat[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);
Thread.Sleep(2000);
for(int i=0;i<10;i++)
{
cCmdRsp.SendXXCmd((byte)Command.CMD_DE_SENSE);
Thread.Sleep(1000);
S2 = recvData.dat[recvData.leng - 1];
if (S2 == 0xE7)
break;
}
Thread.Sleep(1000);
cCmdRsp.SendXXCmd((byte)Command.CMD_DE_CNTSTART);
Thread.Sleep(1000);
+17 -1
View File
@@ -425,7 +425,7 @@ namespace SafeBagDE70
}
sensorTimer.IsEnabled = true;
}
int nTry2Reset = 0;
private void GetCDMStatus()
{
if (!AppData.IsInTransaction)
@@ -442,9 +442,25 @@ namespace SafeBagDE70
AppData.CDMSTATE.CDMStatus = "CDM: LỖI INITIALIZATION ERROR";
AppData.DeviceStatus.CDMStatus = (int)CDMStatusCode.ERROR;
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
{
nTry2Reset = 0;
AppData.DeviceStatus.CDMStatus = (int)CDMStatusCode.NORMAL;
AppData.DeviceStatus.Description = AppData.CDMSTATE.CDMStatus;
}