cập nhật trạng thái máy in

cập nhật trạng thái DE70
This commit is contained in:
Nguyen Dinh Thuan
2024-09-17 21:59:55 +07:00
parent 47d2bc19c9
commit 2275b51a3f
4 changed files with 91 additions and 50 deletions
+4 -3
View File
@@ -148,8 +148,8 @@ namespace SafeBagDE70
}
return bInitUser;
}
public static CDMSTATE? CDMSTATE = null;
public static ADMINDEVICESTATUS? ADMINDEVICESTATUS = null;
public static CDMSTATE CDMSTATE;
public static ADMINDEVICESTATUS ADMINDEVICESTATUS;
private static DateTime CutOffTime = new DateTime(1, 1, 1, 11, 0, 0); // 11:00 a.m as cut-off time
public static string GetNumberPartFromMerchantCode(string merchantCode)
@@ -609,7 +609,8 @@ namespace SafeBagDE70
{
NORMAL = 0,
NEARPAPEROUT = 1,
PAPEROUT=2
PAPEROUT=2,
ERROR=3
}
public enum SensorStatusCode
{
+16 -3
View File
@@ -8,6 +8,7 @@
using System.IO.Ports;
using System.Text;
using System.Linq;
using SafeBagDE70.API;
public class CCmdRsp
{
@@ -15,6 +16,7 @@
public static int mDenominationCount;
public static string mSelectedCurrency;
public static int miSelectedCurrency;
private SerialPort serialPort = null;
private int m_all_sendsize;
private int m_all_recvsize;
@@ -1577,6 +1579,7 @@
public class Com232C
{
SerialPort serialPort = null;
public static int prevState = 0;
public Com232C(SerialPort _serialPort)
{
this.serialPort = _serialPort;
@@ -1584,13 +1587,18 @@
public byte send_dat(byte[] buf, int size)
{
//Debug.WriteLine(DE70_CMD.ByteArrayToString(buf, 0, size));
AppData.DeviceStatus.CDMStatus = (int)CDMStatusCode.NORMAL;
AppData.CDMSTATE.CDMStatus = "DE: OK";
byte bResult = 0;
try
{
serialPort.Write(buf, 0, size);
return Constants.E_OK;
bResult= Constants.E_OK;
}
catch (Exception e)
{
AppData.DeviceStatus.CDMStatus = (int)CDMStatusCode.DISCONNECT_SERIALPORT;
AppData.CDMSTATE.CDMStatus = "DE: LỖI";
try
{
Log.Fatal(e, "DE70_send_dat");
@@ -1602,11 +1610,16 @@
{
Log.Fatal(e2,"DE70_send_dat2");
}
}
if(AppData.DeviceStatus.CDMStatus!=prevState)
{
APIModels.SendEvent(AppData.DeviceStatus);
prevState = AppData.DeviceStatus.CDMStatus;
}
// Implement serial communication send function
return Constants.E_NG;
bResult= Constants.E_NG;
return bResult;
}
public int rcv_dat(byte[] buf, int pos, int size)
+58 -38
View File
@@ -393,43 +393,13 @@ namespace SafeBagDE70
if (countSensorTimer % 10 == 0)
{
var status = printerManager.GetStatus();
var strPrinterMessage = "";
if(status!=null)
{
if (status.StsNOPAPER)
{
AppData.DeviceStatus.PrinterStatus = (int)PrinterStatusCode.PAPEROUT;
StopTimers();
strPrinterMessage = "MÁY IN HẾT GIẤY! ĐỀ NGHỊ THAY GIẤY";
ShowError(strPrinterMessage);
AppData.ADMINDEVICESTATUS.PrinterStatus = strPrinterMessage;
}
else if (status.StsNEARENDPAP)
{
strPrinterMessage = "MÁY IN GẦN HẾT GIẤY";
AppData.DeviceStatus.PrinterStatus = (int)PrinterStatusCode.NEARPAPEROUT;
AppData.ADMINDEVICESTATUS.PrinterStatus = strPrinterMessage;
}
else
{
AppData.ADMINDEVICESTATUS.PrinterStatus = "MÁY IN OK";
GetPrinterStatus();
}
if (AppData.DeviceStatus.PrinterStatus != prevPrinterStatus)
{
AppData.DeviceStatus.Description = strPrinterMessage;
APIModels.SendEvent(AppData.DeviceStatus);
prevPrinterStatus = AppData.DeviceStatus.PrinterStatus;
}
}
AppData.DeviceStatus.Description = AppData.CDMSTATE.CDMStatus;
AppData.DeviceStatus.DeviceTime = DateTime.Now;
APIModels.SendHealthCheck(AppData.DeviceStatus);
}
if(countSensorTimer%5==0)
if (countSensorTimer%5==0)
{
AppData.ADMINDEVICESTATUS.DeviceStatus = AppData.IsInternetOk == false ? "Kết nối Internet: Không" : "Kết nối Internet: OK";
}
@@ -448,6 +418,54 @@ namespace SafeBagDE70
}
sensorTimer.IsEnabled = true;
}
private void GetPrinterStatus()
{
var status = printerManager.GetStatus();
var strPrinterMessage = "";
if (status != null)
{
if (status.StsNOPAPER)
{
AppData.DeviceStatus.PrinterStatus = (int)PrinterStatusCode.PAPEROUT;
StopTimers();
strPrinterMessage = "MÁY IN: HẾT GIẤY! ĐỀ NGHỊ THAY GIẤY";
ShowError(strPrinterMessage);
AppData.ADMINDEVICESTATUS.PrinterStatus = strPrinterMessage;
}
else if (status.StsNEARENDPAP)
{
strPrinterMessage = "MÁY IN: GẦN HẾT GIẤY";
AppData.DeviceStatus.PrinterStatus = (int)PrinterStatusCode.NEARPAPEROUT;
AppData.ADMINDEVICESTATUS.PrinterStatus = strPrinterMessage;
}
else if (status.StsPAPERJAM || status.StsCUTERROR || status.StsOVERTEMP)
{
strPrinterMessage = "MÁY IN: LỖI";
AppData.DeviceStatus.PrinterStatus = (int)PrinterStatusCode.ERROR;
AppData.ADMINDEVICESTATUS.PrinterStatus = strPrinterMessage;
}
else
{
strPrinterMessage = "MÁY IN: OK";
AppData.DeviceStatus.PrinterStatus = (int)PrinterStatusCode.NORMAL;
AppData.ADMINDEVICESTATUS.PrinterStatus = strPrinterMessage;
}
}
else
{
strPrinterMessage = "MÁY IN: LỖI";
AppData.DeviceStatus.PrinterStatus = (int)PrinterStatusCode.ERROR;
AppData.ADMINDEVICESTATUS.PrinterStatus = strPrinterMessage;
}
if (AppData.DeviceStatus.PrinterStatus != prevPrinterStatus)
{
AppData.DeviceStatus.Description = strPrinterMessage;
APIModels.SendEvent(AppData.DeviceStatus);
prevPrinterStatus = AppData.DeviceStatus.PrinterStatus;
}
}
Stopwatch watch = new Stopwatch();
private void GetSensorValue()
{
@@ -535,12 +553,14 @@ namespace SafeBagDE70
}
catch (Exception ex)
{
Log.Fatal(ex,"GetSensorValue");
if(serialPortSensor.IsOpen)
serialPortSensor.Close();
serialPortSensor.Open();
serialPortSensor.DiscardInBuffer();
serialPortSensor.DiscardOutBuffer();
//Log.Fatal(ex,"GetSensorValue");
//if(serialPortSensor.IsOpen)
// serialPortSensor.Close();
//serialPortSensor.Open();
//serialPortSensor.DiscardInBuffer();
//serialPortSensor.DiscardOutBuffer();
InitSerialPortSensor();
}
}
private void DoMaintaince()
+13 -6
View File
@@ -1,5 +1,6 @@
using Custom.CuCustomWndAPI;
using HandyControl.Data;
using Microsoft.IdentityModel.Abstractions;
using SafeBagDE70.API;
using Serilog;
using System;
@@ -28,9 +29,9 @@ namespace SafeBagDE70.Services
}
catch (Exception ex)
{
Log.Information("[PRINTER] Không thể khởi tạo máy in");
Log.Fatal(ex,"[PRINTER] Không thể khởi tạo máy in");
AppData.DeviceStatus.PrinterStatus = 3;
AppData.DeviceStatus.PrinterStatus = (int)PrinterStatusCode.ERROR;
AppData.DeviceStatus.Description = "[PRINTER] Không thể khởi tạo máy in";
APIModels.SendEvent(AppData.DeviceStatus);
}
@@ -38,13 +39,19 @@ namespace SafeBagDE70.Services
public PrinterStatus? GetStatus()
{
if(dev!=null)
try
{
var status = dev.GetPrinterFullStatus();
return status;
if (dev != null)
{
var status = dev.GetPrinterFullStatus();
return status;
}
}
catch(Exception ex)
{
Log.Fatal(ex, "Get Printer Status");
}
return null;
}
public bool IsNearPaperOut()
{