try catch Init printer

Đảo thử tự InitUsers
Kiểm tra đầu đọc QR
This commit is contained in:
Nguyen Dinh Thuan
2024-09-16 15:08:10 +07:00
parent 409d942352
commit 2b4a509e3a
4 changed files with 105 additions and 72 deletions
+34 -13
View File
@@ -1,5 +1,6 @@
using DE70_CMDv2; using DE70_CMDv2;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using SafeBagDE70.API;
using SafeBagDE70.Model; using SafeBagDE70.Model;
using Serilog; using Serilog;
using System; using System;
@@ -39,7 +40,6 @@ namespace SafeBagDE70
{ {
try try
{ {
InitUsers();
CDMSTATE = new CDMSTATE(); CDMSTATE = new CDMSTATE();
DeviceStatus = new DeviceStatus DeviceStatus = new DeviceStatus
{ {
@@ -52,33 +52,54 @@ namespace SafeBagDE70
Notes = "", Notes = "",
OtherError = 0, OtherError = 0,
}; };
InitUsers();
} }
catch (Exception ex) catch (Exception ex)
{ {
Log.Fatal(ex, "AppInit: "+ex.Message); Log.Fatal(ex, "AppInit: "+ex.Message);
if(DeviceStatus != null)
{
DeviceStatus.Description = "Exception in AppInit: "+ex.Message;
APIModels.SendEvent(DeviceStatus);
}
} }
} }
private static void InitUsers() private static void InitUsers()
{ {
customerAccounts = new List<CustomerAccount>(); try
using (var context = new CDMDbContext())
{ {
var customers = context.Customers; customerAccounts = new List<CustomerAccount>();
foreach (var customer in customers) using (var context = new CDMDbContext())
{ {
var ca = new CustomerAccount var customers = context.Customers;
foreach (var customer in customers)
{ {
Name = customer.TenantName, var ca = new CustomerAccount
CustomerId = customer.AccountNumber, {
QRCode = customer.AccountNumber, Name = customer.TenantName,
PINCode = customer.PinCode CustomerId = customer.AccountNumber,
}; QRCode = customer.AccountNumber,
customerAccounts.Add(ca); PINCode = customer.PinCode
};
customerAccounts.Add(ca);
}
}
CurrentCustomerAccount = customerAccounts[0];
}
catch(Exception ex)
{
Log.Fatal(ex, "InitUsers: " + ex.Message);
if (DeviceStatus != null)
{
DeviceStatus.Description = "Exception in InitUsers: " + ex.Message;
APIModels.SendEvent(DeviceStatus);
} }
} }
CurrentCustomerAccount = customerAccounts[0];
} }
public static CDMSTATE? CDMSTATE = null; public static CDMSTATE? CDMSTATE = null;
+30 -21
View File
@@ -75,7 +75,7 @@ namespace SafeBagDE70
int countTimer = 0; int countTimer = 0;
CCmdRsp cCmdRsp = null; CCmdRsp cCmdRsp = null;
bool bInitialized = false; bool bInitialized = false;
bool bOpenPort = true; bool bOpenPort = false;
bool bIsMaintain = false; bool bIsMaintain = false;
MainWindow mainWindow = null; MainWindow mainWindow = null;
Thread thread = null; Thread thread = null;
@@ -117,6 +117,7 @@ namespace SafeBagDE70
AppData.IsInTransaction = true; AppData.IsInTransaction = true;
ResetButtons(); ResetButtons();
btnStart.IsEnabled = true; btnStart.IsEnabled = true;
btnLogout.IsEnabled = true;
ResetTimers(); ResetTimers();
var state=GetCDMState(); var state=GetCDMState();
if(state.GetSR2()==0x1C) if(state.GetSR2()==0x1C)
@@ -135,10 +136,14 @@ namespace SafeBagDE70
} }
catch (Exception ex) catch (Exception ex)
{ {
AppData.DeviceStatus.CDMStatus = (int)CDMStatusCode.DISCONNECT_SERIALPORT; if(AppData.DeviceStatus!=null)
APIModels.SendEvent(AppData.DeviceStatus); {
Log.Fatal(ex, "LỖI CỔNG KẾT NỐI"); AppData.DeviceStatus.CDMStatus = (int)CDMStatusCode.DISCONNECT_SERIALPORT;
ShowError("LỖI CỔNG KẾT NỐI, VUI LÒNG KIỂM TRA LẠI CỔNG KẾT NỐI"); APIModels.SendEvent(AppData.DeviceStatus);
Log.Fatal(ex, "LỖI CỔNG KẾT NỐI");
ShowError("LỖI CỔNG KẾT NỐI, VUI LÒNG KIỂM TRA LẠI CỔNG KẾT NỐI");
}
} }
} }
@@ -361,24 +366,28 @@ namespace SafeBagDE70
var status = printerManager.GetStatus(); var status = printerManager.GetStatus();
var strPrinterMessage = ""; var strPrinterMessage = "";
if(status.StsNOPAPER) if(status!=null)
{ {
AppData.DeviceStatus.PrinterStatus = (int)PrinterStatusCode.PAPEROUT; if (status.StsNOPAPER)
StopTimers(); {
strPrinterMessage = "MÁY IN HẾT GIẤY! ĐỀ NGHỊ THAY GIẤY"; AppData.DeviceStatus.PrinterStatus = (int)PrinterStatusCode.PAPEROUT;
ShowError(strPrinterMessage); StopTimers();
} strPrinterMessage = "MÁY IN HẾT GIẤY! ĐỀ NGHỊ THAY GIẤY";
else if(status.StsNEARENDPAP) ShowError(strPrinterMessage);
{ }
strPrinterMessage = "MÁY IN GẦN HẾT GIẤY"; else if (status.StsNEARENDPAP)
AppData.DeviceStatus.PrinterStatus = (int)PrinterStatusCode.NEARPAPEROUT; {
} strPrinterMessage = "MÁY IN GẦN HẾT GIẤY";
if(AppData.DeviceStatus.PrinterStatus!= prevPrinterStatus) AppData.DeviceStatus.PrinterStatus = (int)PrinterStatusCode.NEARPAPEROUT;
{ }
AppData.DeviceStatus.Description = strPrinterMessage; if (AppData.DeviceStatus.PrinterStatus != prevPrinterStatus)
APIModels.SendEvent(AppData.DeviceStatus); {
prevPrinterStatus = AppData.DeviceStatus.PrinterStatus; AppData.DeviceStatus.Description = strPrinterMessage;
APIModels.SendEvent(AppData.DeviceStatus);
prevPrinterStatus = AppData.DeviceStatus.PrinterStatus;
}
} }
AppData.DeviceStatus.Description = AppData.CDMSTATE.CDMStatus; AppData.DeviceStatus.Description = AppData.CDMSTATE.CDMStatus;
AppData.DeviceStatus.DeviceTime = DateTime.Now; AppData.DeviceStatus.DeviceTime = DateTime.Now;
APIModels.SendHealthCheck(AppData.DeviceStatus); APIModels.SendHealthCheck(AppData.DeviceStatus);
+14 -4
View File
@@ -1,5 +1,6 @@
using Custom.CuCustomWndAPI; using Custom.CuCustomWndAPI;
using HandyControl.Data; using HandyControl.Data;
using SafeBagDE70.API;
using Serilog; using Serilog;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
@@ -23,18 +24,27 @@ namespace SafeBagDE70.Services
customWndAPIWrap.InitLibrary(); customWndAPIWrap.InitLibrary();
USBDevice[] usbArray = customWndAPIWrap.EnumUSBDevices(); USBDevice[] usbArray = customWndAPIWrap.EnumUSBDevices();
dev = customWndAPIWrap.OpenPrinterUSB(usbArray[0]); dev = customWndAPIWrap.OpenPrinterUSB(usbArray[0]);
Log.Information("[PRINTER] Init Printer Successfully"); Log.Information("[PRINTER] Khởi tạo thành công");
} }
catch (Exception ex) catch (Exception ex)
{ {
// System.Windows.MessageBox.Show(ex.ToString()); Log.Information("[PRINTER] Không thể khởi tạo máy in");
AppData.DeviceStatus.PrinterStatus = 3;
AppData.DeviceStatus.Description = "[PRINTER] Không thể khởi tạo máy in";
APIModels.SendEvent(AppData.DeviceStatus);
} }
} }
public PrinterStatus? GetStatus() public PrinterStatus? GetStatus()
{ {
var status = dev.GetPrinterFullStatus(); if(dev!=null)
return status; {
var status = dev.GetPrinterFullStatus();
return status;
}
return null;
} }
public bool IsNearPaperOut() public bool IsNearPaperOut()
{ {
+27 -34
View File
@@ -1,4 +1,6 @@
using CoreScanner; using CoreScanner;
using SafeBagDE70.API;
using Serilog;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Diagnostics; using System.Diagnostics;
@@ -16,6 +18,7 @@ using System.Windows.Media;
using System.Windows.Media.Imaging; using System.Windows.Media.Imaging;
using System.Windows.Shapes; using System.Windows.Shapes;
using System.Xml; using System.Xml;
using System.Xml.Linq;
namespace SafeBagDE70 namespace SafeBagDE70
{ {
@@ -103,31 +106,11 @@ namespace SafeBagDE70
} }
private async void PinCodeButton_Click(object sender, RoutedEventArgs e) private async void PinCodeButton_Click(object sender, RoutedEventArgs e)
{ {
//var onScreenKeyboardProcess = new ProcessStartInfo("osk.exe")
//{
// UseShellExecute = true
//};
try try
{ {
//var progFiles = @"C:\Program Files\Common Files\Microsoft Shared\ink";
//var keyboardPath = System.IO.Path.Combine(progFiles, "TabTip.exe");
//Process.Start(keyboardPath);
// AutomationElement.FromHandle(-1);
// string keyboardPath = @"C:\Program Files\Common Files\Microsoft Shared\ink\TabTip.exe";
// Process.Start(keyboardPath);
//await Launcher.LaunchUriAsync(new Uri("ms-inputapp://"));
//var onScreenKeyboardProcess = new ProcessStartInfo(@"C:\Program Files\Common Files\Microsoft Shared\ink\TabTip.exe")
//{
// UseShellExecute = true
//};
//Process.Start(onScreenKeyboardProcess);
QrCodePanel.Visibility = Visibility.Collapsed; QrCodePanel.Visibility = Visibility.Collapsed;
PinCodePanel.Visibility = Visibility.Visible; PinCodePanel.Visibility = Visibility.Visible;
cCoreScannerClass.BarcodeEvent -= new _ICoreScannerEvents_BarcodeEventEventHandler(OnBarcodeEvent); cCoreScannerClass.BarcodeEvent -= new _ICoreScannerEvents_BarcodeEventEventHandler(OnBarcodeEvent);
} }
catch { catch {
@@ -157,21 +140,31 @@ namespace SafeBagDE70
int status; // Extended API return code int status; // Extended API return code
cCoreScannerClass.Open(0, scannerTypes, numberOfScannerTypes, out status); cCoreScannerClass.Open(0, scannerTypes, numberOfScannerTypes, out status);
short numberOfScanners; // Number of scanners expect to be used
int[] connectedScannerIDList = new int[255]; // List of scanner IDs to be returned
string outXML;
cCoreScannerClass.GetScanners(out numberOfScanners, connectedScannerIDList, out outXML, out status);
if (numberOfScanners > 0)
{
// Let's subscribe for events
int opcode = 1001; // Method for Subscribe events
//string outXML; // XML Output
string inXML = "<inArgs>" +
"<cmdArgs>" +
"<arg-int>1</arg-int>" + // Number of events you want to subscribe
"<arg-int>1</arg-int>" + // Comma separated event IDs
"</cmdArgs>" +
"</inArgs>";
// Subscribe for barcode events in cCoreScannerClass cCoreScannerClass.ExecCommand(opcode, ref inXML, out outXML, out status);
}
else
// Let's subscribe for events {
int opcode = 1001; // Method for Subscribe events Log.Information("Không tìm thấy đầu đọc QR");
string outXML; // XML Output AppData.DeviceStatus.OtherError = 1;
string inXML = "<inArgs>" + AppData.DeviceStatus.Description = "Không tìm thấy đầu đọc QR";
"<cmdArgs>" + APIModels.SendEvent(AppData.DeviceStatus);
"<arg-int>1</arg-int>" + // Number of events you want to subscribe }
"<arg-int>1</arg-int>" + // Comma separated event IDs
"</cmdArgs>" +
"</inArgs>";
cCoreScannerClass.ExecCommand(opcode, ref inXML, out outXML, out status);
} }
catch (Exception exp) catch (Exception exp)
{ {