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(); } } }