293 lines
16 KiB
C#
293 lines
16 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.Linq;
|
|
using System.Runtime.InteropServices;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Forms;
|
|
using static JJMediSys.AlertForm;
|
|
using static JJMediSys.SystemSet;
|
|
using static JJMediSys.TubeLabelTool;
|
|
|
|
namespace JJMediSys
|
|
{
|
|
public partial class SensorStatus : Form
|
|
{
|
|
SystemSet fm1;
|
|
//public SensorStatus(SystemSet form1)
|
|
//{
|
|
// InitializeComponent();
|
|
// fm1 = form1;
|
|
//}
|
|
public SensorStatus()
|
|
{
|
|
InitializeComponent();
|
|
fm1 = SystemSet.systemSet;
|
|
}
|
|
|
|
private void label30_Click(object sender, EventArgs e)
|
|
{
|
|
|
|
}
|
|
|
|
private void label48_Click(object sender, EventArgs e)
|
|
{
|
|
|
|
}
|
|
|
|
private void SensorStatus_Load(object sender, EventArgs e)
|
|
{
|
|
PreseData();
|
|
}
|
|
|
|
private void button1_Click(object sender, EventArgs e)
|
|
{
|
|
fm1.GetDeviceStatus();
|
|
PreseData();
|
|
}
|
|
|
|
public void PreseData()
|
|
{
|
|
try
|
|
{
|
|
DEVSTATUS dEVSTATUS = new DEVSTATUS();
|
|
dEVSTATUS = SystemSet.mTubeLabelTool.stat;
|
|
LabCommand.Text = dEVSTATUS.Command.ToString("X2");
|
|
LabTubeState.Text = dEVSTATUS.TubeState.ToString("X2");
|
|
LabPrintState.Text = dEVSTATUS.PrintState.ToString("X2");
|
|
LabStickState.Text = dEVSTATUS.StickState.ToString("X2");
|
|
LabBackPrintState.Text = dEVSTATUS.BackPrintState.ToString("X2");
|
|
LabTubeBugCode.Text = dEVSTATUS.TubeBugCode.ToString("X2");
|
|
LabPrintBugCode.Text = dEVSTATUS.PrintBugCode.ToString("X2");
|
|
LabStickBugCode.Text = dEVSTATUS.StickBugCode.ToString("X2");
|
|
LabBackPrintBugCode.Text = dEVSTATUS.BackPrintBugCode.ToString("X2");
|
|
LabCarCommand.Text = dEVSTATUS.CarCommand.ToString("X2");
|
|
LabCarUnitState.Text = dEVSTATUS.CarUnitState.ToString("X2");
|
|
LabCarMotorState.Text = dEVSTATUS.CarMotorState.ToString("X2");
|
|
LabCarOriginalSensor.Text = dEVSTATUS.CarOriginalSensor.ToString("X2");
|
|
LabCarPositionSensor.Text = dEVSTATUS.CarPositionSensor.ToString("X2");
|
|
LabPreSaveTubeSensor.Text = BitConverter.ToString(dEVSTATUS.PreSaveTubeSensor).Replace("-", " ");
|
|
LabCarLeftSensor.Text = dEVSTATUS.CarLeftSensor.ToString("X2");
|
|
LabCarMidSensor.Text = dEVSTATUS.CarMidSensor.ToString("X2");
|
|
LabCarRightSensor.Text = dEVSTATUS.CarRightSensor.ToString("X2");
|
|
LabFrontMagSensor.Text = BitConverter.ToString(dEVSTATUS.FrontMagSensor).Replace("-", " ");
|
|
LabRearMagSensor.Text = BitConverter.ToString(dEVSTATUS.RearMagSensor).Replace("-", " ");
|
|
LabStickCommand.Text = dEVSTATUS.StickCommand.ToString("X2");
|
|
LabStickUnitState.Text = dEVSTATUS.StickUnitState.ToString("X2");
|
|
LabRotateMotorState.Text = dEVSTATUS.RotateMotorState.ToString("X2");
|
|
LabLeftWallMotorState.Text = dEVSTATUS.LeftWallMotorState.ToString("X2");
|
|
LabRightWallMotorState.Text = dEVSTATUS.RightWallMotorState.ToString("X2");
|
|
LabLiftMotorState.Text = dEVSTATUS.LiftMotorState.ToString("X2");
|
|
LabLeftWallSensor.Text = dEVSTATUS.LeftWallSensor.ToString("X2");
|
|
LabRightWallSensor.Text = dEVSTATUS.RightWallSensor.ToString("X2");
|
|
LabLiftSensor.Text = dEVSTATUS.LiftSensor.ToString("X2");
|
|
//LabStickLeftTubeSensor.Text = dEVSTATUS.StickLeftTubeSensor.ToString("X2");
|
|
LabStickLeftTubeSensor.Text = BitConverter.ToString(dEVSTATUS.StickLeftTubeSensor).Replace("-", " ");
|
|
//LabStickRightTubeSensor.Text = dEVSTATUS.StickRightTubeSensor.ToString("X2");
|
|
LabStickRightTubeSensor.Text = BitConverter.ToString(dEVSTATUS.StickRightTubeSensor).Replace("-", " ");
|
|
// LabStickUpTubeSensor.Text = dEVSTATUS.StickUpTubeSensor.ToString("X2");
|
|
LabStickUpTubeSensor.Text = BitConverter.ToString(dEVSTATUS.StickUpTubeSensor).Replace("-", " ");
|
|
//LabStickDownTubeSensor.Text = dEVSTATUS.StickDownTubeSensor.ToString("X2");
|
|
LabStickDownTubeSensor.Text = BitConverter.ToString(dEVSTATUS.StickDownTubeSensor).Replace("-", " ");
|
|
LabPrintCommand.Text = dEVSTATUS.PrintCommand.ToString("X2");
|
|
LabPrintUnitState.Text = dEVSTATUS.PrintUnitState.ToString("X2");
|
|
LabCarryMotorState.Text = dEVSTATUS.CarryMotorState.ToString("X2");
|
|
LabRollMotorState.Text = dEVSTATUS.RollMotorState.ToString("X2");
|
|
LabPaperGapSensor.Text = dEVSTATUS.PaperGapSensor.ToString("X2");
|
|
LabPaperLessSensor.Text = dEVSTATUS.PaperLessSensor.ToString("X2");
|
|
LabPrintTemperatureSensor.Text = dEVSTATUS.PrintTemperatureSensor.ToString("X2");
|
|
LabBackPrintCommand.Text = dEVSTATUS.BackPrintCommand.ToString("X2");
|
|
LabBackPrintUnitState.Text = dEVSTATUS.BackPrintUnitState.ToString("X2");
|
|
LabBackPaperGapSensor.Text = dEVSTATUS.BackPaperGapSensor.ToString("X2");
|
|
LabBackPaperLessSensor.Text = dEVSTATUS.BackPaperLessSensor.ToString("X2");
|
|
LabBackPrintTemperatureSensor.Text = dEVSTATUS.BackPrintTemperatureSensor.ToString("X2");
|
|
LabTubeTakeBoxSensorState.Text = dEVSTATUS.TubeTakeBoxSensorState.ToString("X2");
|
|
LabSensorlnit.Text = dEVSTATUS.Sensorlnit.ToString("X2");
|
|
LabParameterSet.Text = dEVSTATUS.ParameterSet.ToString("X2");
|
|
LabTubeTakeBoxColorState.Text = dEVSTATUS.TubeTakeBoxColorState.ToString("X2");
|
|
LabBackUp.Text = BitConverter.ToString(dEVSTATUS.BackUp).Replace("-", " ");
|
|
PreseStatus(dEVSTATUS);
|
|
|
|
}
|
|
catch(Exception e)
|
|
{
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public void PreseStatus(DEVSTATUS dEVSTATUS)
|
|
{
|
|
|
|
StatusDetail statusDetail = new StatusDetail();
|
|
statusDetail.TubeStat = new byte[7] { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
|
|
statusDetail.BackUpSensorStat = new byte[8] { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
|
|
statusDetail.TubeCar = fm1.TransCodemain(dEVSTATUS.TubeState.ToString("X2"));
|
|
statusDetail.MainPrinter = fm1.TransCodemain(dEVSTATUS.PrintState.ToString("X2"));
|
|
statusDetail.SecPrinter = fm1.TransCodemain(dEVSTATUS.BackPrintState.ToString("X2"));
|
|
statusDetail.Stick = fm1.TransCodemain(dEVSTATUS.StickState.ToString("X2"));
|
|
|
|
statusDetail.TubeCarErrorCode = dEVSTATUS.TubeBugCode.ToString("X2");
|
|
statusDetail.MainPrinterErrorCode = dEVSTATUS.PrintBugCode.ToString("X2");
|
|
statusDetail.SecPrinterErrorCode = dEVSTATUS.BackPrintBugCode.ToString("X2");
|
|
statusDetail.StickErrorCode = dEVSTATUS.StickBugCode.ToString("X2");
|
|
|
|
statusDetail.MainPrintPaper = dEVSTATUS.PaperLessSensor.ToString("X2") == "00" ? 0 : 1;
|
|
statusDetail.SecPrintPaper = dEVSTATUS.BackPaperLessSensor.ToString("X2") == "00" ? 0 : 1;
|
|
|
|
statusDetail.MainPrintHeard = dEVSTATUS.PrintUnitState.ToString("X2") == "01" ? 0 : 2;
|
|
statusDetail.SecPrintHeard = dEVSTATUS.BackPrintUnitState.ToString("X2") == "01" ? 0 : 2;
|
|
|
|
|
|
string ErrorInfo = "";
|
|
if (statusDetail.TubeCar == 1)
|
|
ErrorInfo = ErrorInfo + "选管单元忙\r\n";
|
|
else if (statusDetail.TubeCar == 2)
|
|
ErrorInfo = ErrorInfo + "选管单元故障\r\n";
|
|
|
|
if (statusDetail.MainPrinter == 1)
|
|
ErrorInfo = ErrorInfo + "主打印单元忙\r\n";
|
|
else if (statusDetail.MainPrinter == 2)
|
|
ErrorInfo = ErrorInfo + "主打印单元故障\r\n";
|
|
|
|
if (statusDetail.MainPrintHeard == 2)
|
|
ErrorInfo = ErrorInfo + "主打印单元,打印头未到位\r\n";
|
|
|
|
if (statusDetail.MainPrintPaper == 1)
|
|
ErrorInfo = ErrorInfo + "主打印单元,标签纸即将用完\r\n";
|
|
|
|
if (statusDetail.SecPrinter == 1)
|
|
ErrorInfo = ErrorInfo + "副打印单元忙\r\n";
|
|
else if (statusDetail.SecPrinter == 2)
|
|
ErrorInfo = ErrorInfo + "副打印单元故障\r\n";
|
|
if (statusDetail.SecPrintHeard == 2)
|
|
ErrorInfo = ErrorInfo + "副打印单元,打印头未到位\r\n";
|
|
if (statusDetail.SecPrintPaper == 1)
|
|
ErrorInfo = ErrorInfo + "副打印单元,标签纸即将用完\r\n";
|
|
|
|
if (statusDetail.Stick == 1)
|
|
ErrorInfo = ErrorInfo + "贴标单元忙\r\n";
|
|
else if (statusDetail.Stick == 2)
|
|
ErrorInfo = ErrorInfo + "贴标单元故障\r\n";
|
|
ErrorInfo = ErrorInfo + fm1.TranErrorCode("Car", statusDetail.TubeCarErrorCode);
|
|
ErrorInfo = ErrorInfo + fm1.TranErrorCode("MPrinter", statusDetail.MainPrinterErrorCode);
|
|
ErrorInfo = ErrorInfo + fm1.TranErrorCode("SPrinter", statusDetail.SecPrinterErrorCode);
|
|
ErrorInfo = ErrorInfo + fm1.TranErrorCode("Stick", statusDetail.StickErrorCode);
|
|
Buffer.BlockCopy(dEVSTATUS.PreSaveTubeSensor, 0, statusDetail.TubeStat, 0, 7);
|
|
if (statusDetail.TubeStat[0] == 0x00) { ErrorInfo = ErrorInfo + "1号管箱没有预存试管\r\n"; }
|
|
if (statusDetail.TubeStat[1] == 0x00) { ErrorInfo = ErrorInfo + "2号管箱没有预存试管\r\n"; }
|
|
if (statusDetail.TubeStat[2] == 0x00) { ErrorInfo = ErrorInfo + "3号管箱没有预存试管\r\n"; }
|
|
if (statusDetail.TubeStat[3] == 0x00) { ErrorInfo = ErrorInfo + "4号管箱没有预存试管\r\n"; }
|
|
if (statusDetail.TubeStat[4] == 0x00) { ErrorInfo = ErrorInfo + "5号管箱没有预存试管\r\n"; }
|
|
if (statusDetail.TubeStat[5] == 0x00) { ErrorInfo = ErrorInfo + "6号管箱没有预存试管\r\n"; }
|
|
if (statusDetail.TubeStat[6] == 0x00) { ErrorInfo = ErrorInfo + "7号管箱没有预存试管\r\n"; }
|
|
Buffer.BlockCopy(dEVSTATUS.BackUp, 0, statusDetail.BackUpSensorStat, 0, 8);
|
|
if (statusDetail.BackUpSensorStat[2] == 0x01)
|
|
{
|
|
ErrorInfo = ErrorInfo + "试管仓仓门打开\r\n";
|
|
}
|
|
if (statusDetail.BackUpSensorStat[3] == 0x01)
|
|
{
|
|
ErrorInfo = ErrorInfo + "标签打印仓门打开\r\n";
|
|
}
|
|
|
|
textErrorInfo.Text = ErrorInfo;
|
|
}
|
|
|
|
private void uiButton1_Click(object sender, EventArgs e)
|
|
{
|
|
fm1.GetDeviceStatus();
|
|
PreseData();
|
|
}
|
|
|
|
private void uiButton2_Click(object sender, EventArgs e)
|
|
{
|
|
string Input = TextStatStr.Text;
|
|
string[] hexValuesSplit = Input.Split(' ');
|
|
byte[] byteArray = new byte[hexValuesSplit.Length];
|
|
if (byteArray.Length != 74)
|
|
{
|
|
AlertForm.ShowAlert("数据非法 无法解析", AlertType.Error, 3);
|
|
return;
|
|
}
|
|
for (int i = 0; i < hexValuesSplit.Length; i++)
|
|
{
|
|
byteArray[i] = Convert.ToByte(hexValuesSplit[i], 16);
|
|
}
|
|
IntPtr ptr = Marshal.AllocHGlobal(100);//分配非托管内存空间
|
|
Marshal.Copy(byteArray, 3, ptr, byteArray.Length - 4);//将数组数组拷贝到非托管内存指针
|
|
DEVSTATUS dEVSTATUS = (DEVSTATUS)Marshal.PtrToStructure(ptr, typeof(DEVSTATUS));
|
|
Marshal.FreeHGlobal(ptr);//释放内存
|
|
|
|
LabCommand.Text = dEVSTATUS.Command.ToString("X2");
|
|
LabTubeState.Text = dEVSTATUS.TubeState.ToString("X2");
|
|
LabPrintState.Text = dEVSTATUS.PrintState.ToString("X2");
|
|
LabStickState.Text = dEVSTATUS.StickState.ToString("X2");
|
|
LabBackPrintState.Text = dEVSTATUS.BackPrintState.ToString("X2");
|
|
LabTubeBugCode.Text = dEVSTATUS.TubeBugCode.ToString("X2");
|
|
LabPrintBugCode.Text = dEVSTATUS.PrintBugCode.ToString("X2");
|
|
LabStickBugCode.Text = dEVSTATUS.StickBugCode.ToString("X2");
|
|
LabBackPrintBugCode.Text = dEVSTATUS.BackPrintBugCode.ToString("X2");
|
|
LabCarCommand.Text = dEVSTATUS.CarCommand.ToString("X2");
|
|
LabCarUnitState.Text = dEVSTATUS.CarUnitState.ToString("X2");
|
|
LabCarMotorState.Text = dEVSTATUS.CarMotorState.ToString("X2");
|
|
LabCarOriginalSensor.Text = dEVSTATUS.CarOriginalSensor.ToString("X2");
|
|
LabCarPositionSensor.Text = dEVSTATUS.CarPositionSensor.ToString("X2");
|
|
LabPreSaveTubeSensor.Text = BitConverter.ToString(dEVSTATUS.PreSaveTubeSensor).Replace("-", " ");
|
|
LabCarLeftSensor.Text = dEVSTATUS.CarLeftSensor.ToString("X2");
|
|
LabCarMidSensor.Text = dEVSTATUS.CarMidSensor.ToString("X2");
|
|
LabCarRightSensor.Text = dEVSTATUS.CarRightSensor.ToString("X2");
|
|
LabFrontMagSensor.Text = BitConverter.ToString(dEVSTATUS.FrontMagSensor).Replace("-", " ");
|
|
LabRearMagSensor.Text = BitConverter.ToString(dEVSTATUS.RearMagSensor).Replace("-", " ");
|
|
LabStickCommand.Text = dEVSTATUS.StickCommand.ToString("X2");
|
|
LabStickUnitState.Text = dEVSTATUS.StickUnitState.ToString("X2");
|
|
LabRotateMotorState.Text = dEVSTATUS.RotateMotorState.ToString("X2");
|
|
LabLeftWallMotorState.Text = dEVSTATUS.LeftWallMotorState.ToString("X2");
|
|
LabRightWallMotorState.Text = dEVSTATUS.RightWallMotorState.ToString("X2");
|
|
LabLiftMotorState.Text = dEVSTATUS.LiftMotorState.ToString("X2");
|
|
LabLeftWallSensor.Text = dEVSTATUS.LeftWallSensor.ToString("X2");
|
|
LabRightWallSensor.Text = dEVSTATUS.RightWallSensor.ToString("X2");
|
|
LabLiftSensor.Text = dEVSTATUS.LiftSensor.ToString("X2");
|
|
//LabStickLeftTubeSensor.Text = dEVSTATUS.StickLeftTubeSensor.ToString("X2");
|
|
LabStickLeftTubeSensor.Text = BitConverter.ToString(dEVSTATUS.StickLeftTubeSensor).Replace("-", " ");
|
|
//LabStickRightTubeSensor.Text = dEVSTATUS.StickRightTubeSensor.ToString("X2");
|
|
LabStickRightTubeSensor.Text = BitConverter.ToString(dEVSTATUS.StickRightTubeSensor).Replace("-", " ");
|
|
// LabStickUpTubeSensor.Text = dEVSTATUS.StickUpTubeSensor.ToString("X2");
|
|
LabStickUpTubeSensor.Text = BitConverter.ToString(dEVSTATUS.StickUpTubeSensor).Replace("-", " ");
|
|
//LabStickDownTubeSensor.Text = dEVSTATUS.StickDownTubeSensor.ToString("X2");
|
|
LabStickDownTubeSensor.Text = BitConverter.ToString(dEVSTATUS.StickDownTubeSensor).Replace("-", " ");
|
|
LabPrintCommand.Text = dEVSTATUS.PrintCommand.ToString("X2");
|
|
LabPrintUnitState.Text = dEVSTATUS.PrintUnitState.ToString("X2");
|
|
LabCarryMotorState.Text = dEVSTATUS.CarryMotorState.ToString("X2");
|
|
LabRollMotorState.Text = dEVSTATUS.RollMotorState.ToString("X2");
|
|
LabPaperGapSensor.Text = dEVSTATUS.PaperGapSensor.ToString("X2");
|
|
LabPaperLessSensor.Text = dEVSTATUS.PaperLessSensor.ToString("X2");
|
|
LabPrintTemperatureSensor.Text = dEVSTATUS.PrintTemperatureSensor.ToString("X2");
|
|
LabBackPrintCommand.Text = dEVSTATUS.BackPrintCommand.ToString("X2");
|
|
LabBackPrintUnitState.Text = dEVSTATUS.BackPrintUnitState.ToString("X2");
|
|
LabBackPaperGapSensor.Text = dEVSTATUS.BackPaperGapSensor.ToString("X2");
|
|
LabBackPaperLessSensor.Text = dEVSTATUS.BackPaperLessSensor.ToString("X2");
|
|
LabBackPrintTemperatureSensor.Text = dEVSTATUS.BackPrintTemperatureSensor.ToString("X2");
|
|
LabTubeTakeBoxSensorState.Text = dEVSTATUS.TubeTakeBoxSensorState.ToString("X2");
|
|
LabSensorlnit.Text = dEVSTATUS.Sensorlnit.ToString("X2");
|
|
LabParameterSet.Text = dEVSTATUS.ParameterSet.ToString("X2");
|
|
LabTubeTakeBoxColorState.Text = dEVSTATUS.TubeTakeBoxColorState.ToString("X2");
|
|
LabBackUp.Text = BitConverter.ToString(dEVSTATUS.BackUp).Replace("-", " ");
|
|
PreseStatus(dEVSTATUS);
|
|
}
|
|
|
|
private void PClose_Click(object sender, EventArgs e)
|
|
{
|
|
this.Close();
|
|
}
|
|
|
|
|
|
}
|
|
|
|
}
|