public byte[] Encode(object o) { ManuOffsetGain ManuOffsetGain = myBatis.QueryManuOffsetGain("QueryManuOffsetGain"); byte[] bytes = new byte[12]; bytes[0] = 0x02; bytes[1] = 0x27; bytes[2] = (byte)('0' + ManuOffsetGain.WaveLength); int[] d = MachineControlProtocol.HDecConverToHex(ManuOffsetGain.OffSet); bytes[3] = (byte)d[0]; bytes[4] = (byte)d[1]; bytes[5] = (byte)d[2]; d = MachineControlProtocol.HDecConverToHex(ManuOffsetGain.Gain); bytes[6] = (byte)d[0]; bytes[7] = (byte)d[1]; bytes[8] = (byte)d[2]; bytes[9] = 0x03; bytes[10] = 0x00; bytes[11] = 0x00; byte[] checksum = MachineControlProtocol.CheckSum(bytes); bytes[10] = checksum[0]; bytes[11] = checksum[1]; return(bytes); }
byte[] TaskEncode(TASK t, int wn) { List <byte> Listbyte = new List <byte>(); if (t.V == 0) { Listbyte.Add(0x02); Listbyte.Add(0x07); Listbyte.Add(0x30); Listbyte.Add(0x30); Listbyte.Add(0x31); int[] bytes = MachineControlProtocol.HDecConverToHex(wn); Listbyte.Add((byte)bytes[0]); Listbyte.Add((byte)bytes[1]); Listbyte.Add((byte)bytes[2]); Listbyte.Add((byte)('0' + MachineInfo.GetWaveLengthIndex(t.PW))); Listbyte.Add((byte)('0' + MachineInfo.GetWaveLengthIndex(t.SW))); //急诊和常规都在样本位取样,急诊意思就是队列优先 if (t.PT == 1) { t.PT = 0; } Listbyte.Add((byte)('0' + t.PT)); Listbyte.Add(0x31); bytes = MachineControlProtocol.DecConverToHex(int.Parse(t.SMPPOS.TrimStart('B', 'S', 'C', 'E'))); Listbyte.Add((byte)bytes[0]); Listbyte.Add((byte)bytes[1]); bytes = MachineControlProtocol.HDecConverToHex(t.PV); Listbyte.Add((byte)bytes[0]); Listbyte.Add((byte)bytes[1]); Listbyte.Add((byte)bytes[2]); Listbyte.Add((byte)('0' + t.CT)); bytes = MachineControlProtocol.DecConverToHex(t.R1POS); Listbyte.Add((byte)bytes[0]); Listbyte.Add((byte)bytes[1]); bytes = MachineControlProtocol.HDecConverToHex(t.R1VOL); Listbyte.Add((byte)bytes[0]); Listbyte.Add((byte)bytes[1]); Listbyte.Add((byte)bytes[2]); bytes = MachineControlProtocol.DecConverToHex(t.R2POS); Listbyte.Add((byte)bytes[0]); Listbyte.Add((byte)bytes[1]); bytes = MachineControlProtocol.HDecConverToHex(t.R2VOL); Listbyte.Add((byte)bytes[0]); Listbyte.Add((byte)bytes[1]); Listbyte.Add((byte)bytes[2]); Listbyte.Add(0x03); } else { Listbyte.Add(0x02); Listbyte.Add(0x07); Listbyte.Add(0x30); Listbyte.Add(0x30); Listbyte.Add(0x32); int[] bytes = MachineControlProtocol.HDecConverToHex(wn); Listbyte.Add((byte)bytes[0]); Listbyte.Add((byte)bytes[1]); Listbyte.Add((byte)bytes[2]); Listbyte.Add((byte)('0' + MachineInfo.GetWaveLengthIndex(t.PW))); Listbyte.Add((byte)('0' + MachineInfo.GetWaveLengthIndex(t.SW))); //急诊和常规都在样本位取样,急诊意思就是队列优先 if (t.PT == 1) { t.PT = 0; } Listbyte.Add((byte)('0' + t.PT)); Listbyte.Add(0x31); bytes = MachineControlProtocol.DecConverToHex(int.Parse(t.SMPPOS.TrimStart('B', 'S', 'C', 'E'))); Listbyte.Add((byte)bytes[0]); Listbyte.Add((byte)bytes[1]); bytes = MachineControlProtocol.HDecConverToHex(t.PV); Listbyte.Add((byte)bytes[0]); Listbyte.Add((byte)bytes[1]); Listbyte.Add((byte)bytes[2]); Listbyte.Add((byte)('0' + t.CT)); bytes = MachineControlProtocol.DecConverToHex(t.DPOS); Listbyte.Add((byte)bytes[0]); Listbyte.Add((byte)bytes[1]); bytes = MachineControlProtocol.HDecConverToHex(t.DV); Listbyte.Add((byte)bytes[0]); Listbyte.Add((byte)bytes[1]); Listbyte.Add((byte)bytes[2]); bytes = MachineControlProtocol.DecConverToHex(t.R2POS); Listbyte.Add((byte)bytes[0]); Listbyte.Add((byte)bytes[1]); bytes = MachineControlProtocol.HDecConverToHex(t.R2VOL); Listbyte.Add((byte)bytes[0]); Listbyte.Add((byte)bytes[1]); Listbyte.Add((byte)bytes[2]); //--------------------------------------------------------------- bytes = MachineControlProtocol.HDecConverToHex(wn); Listbyte.Add((byte)bytes[0]); Listbyte.Add((byte)bytes[1]); Listbyte.Add((byte)bytes[2]); Listbyte.Add((byte)('0' + MachineInfo.GetWaveLengthIndex(t.PW))); Listbyte.Add((byte)('0' + MachineInfo.GetWaveLengthIndex(t.SW))); Listbyte.Add(0x0A); Listbyte.Add(0x31); bytes = MachineControlProtocol.DecConverToHex(int.Parse(t.SMPPOS.TrimStart('B', 'S', 'C', 'E'))); Listbyte.Add((byte)bytes[0]); Listbyte.Add((byte)bytes[1]); bytes = MachineControlProtocol.HDecConverToHex(t.V); Listbyte.Add((byte)bytes[0]); Listbyte.Add((byte)bytes[1]); Listbyte.Add((byte)bytes[2]); Listbyte.Add(0x01); bytes = MachineControlProtocol.DecConverToHex(t.R1POS); Listbyte.Add((byte)bytes[0]); Listbyte.Add((byte)bytes[1]); bytes = MachineControlProtocol.HDecConverToHex(t.R1VOL); Listbyte.Add((byte)bytes[0]); Listbyte.Add((byte)bytes[1]); Listbyte.Add((byte)bytes[2]); bytes = MachineControlProtocol.DecConverToHex(t.R2POS); Listbyte.Add((byte)bytes[0]); Listbyte.Add((byte)bytes[1]); bytes = MachineControlProtocol.HDecConverToHex(t.R2VOL); Listbyte.Add((byte)bytes[0]); Listbyte.Add((byte)bytes[1]); Listbyte.Add((byte)bytes[2]); Listbyte.Add(0x03); } long sum = 0; byte[] Tbytes = new byte[Listbyte.Count + 2]; for (int i = 0; i < Listbyte.Count; i++) { Tbytes[i] = Listbyte.ElementAt(i); sum += (int)Listbyte.ElementAt(i); } byte[] Tchecksum = MachineControlProtocol.CheckSum(sum); Tbytes[Tbytes.Length - 2] = Tchecksum[0]; Tbytes[Tbytes.Length - 1] = Tchecksum[1]; return(Tbytes); }
byte[] TaskEncode(TASK t, int wn) { List <byte> Listbyte = new List <byte>(); if (t.V == 0) { Listbyte.Add(0x02); Listbyte.Add(0x07); //普通测试包 //if (t.ASSAYTYPE == "ISE") //{ // if (t.SMPTYPE == "U") // { // Listbyte.Add(0x31); // Listbyte.Add(0x32); // Listbyte.Add(0x31); // } // else // { // Listbyte.Add(0x31); // Listbyte.Add(0x31); // Listbyte.Add(0x31); // } //} //else //{ Listbyte.Add(0x30); Listbyte.Add(0x30); Listbyte.Add(0x31); //} int[] bytes = MachineControlProtocol.HDecConverToHex(wn); Listbyte.Add((byte)bytes[0]); Listbyte.Add((byte)bytes[1]); Listbyte.Add((byte)bytes[2]); Listbyte.Add((byte)('0' + GetWaveLengthIndex(t.PW))); Listbyte.Add((byte)('0' + GetWaveLengthIndex(t.SW))); bytes = MachineControlProtocol.DecConverToHex(t.PPNO); Listbyte.Add((byte)bytes[0]); Listbyte.Add((byte)bytes[1]); //急诊和常规都在样本位取样,急诊意思就是队列优先 if (t.PT == 1) { t.PT = 0; } Listbyte.Add((byte)('0' + t.PT)); Listbyte.Add(0x31); bytes = MachineControlProtocol.DecConverToHex(int.Parse(t.SMPPOS.TrimStart('B', 'S', 'C', 'E'))); Listbyte.Add((byte)bytes[0]); Listbyte.Add((byte)bytes[1]); bytes = MachineControlProtocol.HDecConverToHex(t.PV); Listbyte.Add((byte)bytes[0]); Listbyte.Add((byte)bytes[1]); Listbyte.Add((byte)bytes[2]); Listbyte.Add((byte)('0' + t.CT)); //int rgttype = new RunService().GetRgtPanelType(); //if (rgttype == 2) //{ // t.R1POS += 45; //} bytes = MachineControlProtocol.DecConverToHex(t.R1POS); Listbyte.Add((byte)bytes[0]); Listbyte.Add((byte)bytes[1]); bytes = MachineControlProtocol.HDecConverToHex(t.R1VOL); Listbyte.Add((byte)bytes[0]); Listbyte.Add((byte)bytes[1]); Listbyte.Add((byte)bytes[2]); Listbyte.Add((byte)('0' + t.SF1)); bytes = MachineControlProtocol.DecConverToHex(t.R2POS); Listbyte.Add((byte)bytes[0]); Listbyte.Add((byte)bytes[1]); if (t.R2POS == 0) { bytes = MachineControlProtocol.HDecConverToHex(0); Listbyte.Add((byte)bytes[0]); Listbyte.Add((byte)bytes[1]); Listbyte.Add((byte)bytes[2]); Listbyte.Add((byte)('0' + 0)); } else { bytes = MachineControlProtocol.HDecConverToHex(t.R2VOL); Listbyte.Add((byte)bytes[0]); Listbyte.Add((byte)bytes[1]); Listbyte.Add((byte)bytes[2]); Listbyte.Add((byte)('0' + t.SF2)); } Listbyte.Add(0x03); } else { Listbyte.Add(0x02); Listbyte.Add(0x07); //稀释测试包 Listbyte.Add(0x30); Listbyte.Add(0x30); Listbyte.Add(0x32); int[] bytes = MachineControlProtocol.HDecConverToHex(wn); Listbyte.Add((byte)bytes[0]); Listbyte.Add((byte)bytes[1]); Listbyte.Add((byte)bytes[2]); Listbyte.Add((byte)('0' + GetWaveLengthIndex(t.PW))); Listbyte.Add((byte)('0' + GetWaveLengthIndex(t.SW))); bytes = MachineControlProtocol.DecConverToHex(t.PPNO); Listbyte.Add((byte)bytes[0]); Listbyte.Add((byte)bytes[1]); //急诊和常规都在样本位取样,急诊意思就是队列优先 if (t.PT == 1) { t.PT = 0; } Listbyte.Add((byte)('0' + t.PT)); Listbyte.Add(0x31); bytes = MachineControlProtocol.DecConverToHex(int.Parse(t.SMPPOS.TrimStart('B', 'S', 'C', 'E'))); Listbyte.Add((byte)bytes[0]); Listbyte.Add((byte)bytes[1]); bytes = MachineControlProtocol.HDecConverToHex(t.PV); Listbyte.Add((byte)bytes[0]); Listbyte.Add((byte)bytes[1]); Listbyte.Add((byte)bytes[2]); Listbyte.Add((byte)('0' + t.CT)); bytes = MachineControlProtocol.DecConverToHex(t.DPOS); Listbyte.Add((byte)bytes[0]); Listbyte.Add((byte)bytes[1]); bytes = MachineControlProtocol.HDecConverToHex(t.DV); Listbyte.Add((byte)bytes[0]); Listbyte.Add((byte)bytes[1]); Listbyte.Add((byte)bytes[2]); Listbyte.Add((byte)('0' + t.SF1)); bytes = MachineControlProtocol.DecConverToHex(0); Listbyte.Add((byte)bytes[0]); Listbyte.Add((byte)bytes[1]); bytes = MachineControlProtocol.HDecConverToHex(0); Listbyte.Add((byte)bytes[0]); Listbyte.Add((byte)bytes[1]); Listbyte.Add((byte)bytes[2]); Listbyte.Add((byte)('0' + t.SF2)); //--------------------------------------------------------------- bytes = MachineControlProtocol.HDecConverToHex(wn); Listbyte.Add((byte)bytes[0]); Listbyte.Add((byte)bytes[1]); Listbyte.Add((byte)bytes[2]); Listbyte.Add((byte)('0' + GetWaveLengthIndex(t.PW))); Listbyte.Add((byte)('0' + GetWaveLengthIndex(t.SW))); bytes = MachineControlProtocol.DecConverToHex(t.PPNO); Listbyte.Add((byte)bytes[0]); Listbyte.Add((byte)bytes[1]); Listbyte.Add(0x3A); Listbyte.Add(0x31); bytes = MachineControlProtocol.DecConverToHex(int.Parse(t.SMPPOS.TrimStart('B', 'S', 'C', 'E'))); Listbyte.Add((byte)bytes[0]); Listbyte.Add((byte)bytes[1]); bytes = MachineControlProtocol.HDecConverToHex(t.V); Listbyte.Add((byte)bytes[0]); Listbyte.Add((byte)bytes[1]); Listbyte.Add((byte)bytes[2]); Listbyte.Add(0x31); //int rgttype = new RunService().GetRgtPanelType(); //if (rgttype == 2) //{ // t.R1POS += 45; //} bytes = MachineControlProtocol.DecConverToHex(t.R1POS); Listbyte.Add((byte)bytes[0]); Listbyte.Add((byte)bytes[1]); bytes = MachineControlProtocol.HDecConverToHex(t.R1VOL); Listbyte.Add((byte)bytes[0]); Listbyte.Add((byte)bytes[1]); Listbyte.Add((byte)bytes[2]); Listbyte.Add((byte)('0' + t.SF1)); bytes = MachineControlProtocol.DecConverToHex(t.R2POS); Listbyte.Add((byte)bytes[0]); Listbyte.Add((byte)bytes[1]); bytes = MachineControlProtocol.HDecConverToHex(t.R2VOL); Listbyte.Add((byte)bytes[0]); Listbyte.Add((byte)bytes[1]); Listbyte.Add((byte)bytes[2]); Listbyte.Add((byte)('0' + t.SF2)); Listbyte.Add(0x03); } long sum = 0; byte[] Tbytes = new byte[Listbyte.Count + 2]; for (int i = 0; i < Listbyte.Count; i++) { Tbytes[i] = Listbyte.ElementAt(i); sum += (int)Listbyte.ElementAt(i); } byte[] Tchecksum = MachineControlProtocol.CheckSum(sum); Tbytes[Tbytes.Length - 2] = Tchecksum[0]; Tbytes[Tbytes.Length - 1] = Tchecksum[1]; return(Tbytes); }
public byte[] Encode(object o) { string str = o as string; WashSettingData d = (WashSettingData)XmlUtilit.Deserialize(typeof(WashSettingData), str); if (d == null) { return(null); } List <byte> Listbyte = new List <byte>(); Listbyte.Add(0x02); Listbyte.Add(0x90); Listbyte.Add((byte)('0' + d.ACount)); Listbyte.Add((byte)('0' + d.BCount)); Listbyte.Add((byte)('0' + 0)); //CC int[] bytes = MachineControlProtocol.DecConverToHex(d.ASMPPosition); //DD EE Listbyte.Add((byte)bytes[0]); Listbyte.Add((byte)bytes[1]); bytes = MachineControlProtocol.HDecConverToHex((int)d.ASMPVolume * 10);//FF GG II Listbyte.Add((byte)bytes[0]); Listbyte.Add((byte)bytes[1]); Listbyte.Add((byte)bytes[2]); int ct = (new SMPContainerTypeService().Get(d.SampleContainerType) as SMPContainerType).Code;//JJ Listbyte.Add((byte)('0' + ct)); bytes = MachineControlProtocol.DecConverToHex(d.ARGTPosition1);//KK LL Listbyte.Add((byte)bytes[0]); Listbyte.Add((byte)bytes[1]); bytes = MachineControlProtocol.HDecConverToHex(d.ARGTVolume1);//MM NN OO Listbyte.Add((byte)bytes[0]); Listbyte.Add((byte)bytes[1]); Listbyte.Add((byte)bytes[2]); bytes = MachineControlProtocol.DecConverToHex(d.ARGTPosition2);//PP QQ Listbyte.Add((byte)bytes[0]); Listbyte.Add((byte)bytes[1]); bytes = MachineControlProtocol.HDecConverToHex(d.ARGTVolume2);//RR SS TT UU Listbyte.Add((byte)bytes[0]); Listbyte.Add((byte)bytes[1]); Listbyte.Add((byte)bytes[2]); Listbyte.Add((byte)('0' + 0)); //CC bytes = MachineControlProtocol.DecConverToHex(d.BSMPPosition); //DD EE Listbyte.Add((byte)bytes[0]); Listbyte.Add((byte)bytes[1]); bytes = MachineControlProtocol.HDecConverToHex((int)d.BSMPVolume * 10);//FF GG II Listbyte.Add((byte)bytes[0]); Listbyte.Add((byte)bytes[1]); Listbyte.Add((byte)bytes[2]); ct = (new SMPContainerTypeService().Get(d.SampleContainerType) as SMPContainerType).Code; //JJ Listbyte.Add((byte)('0' + ct)); bytes = MachineControlProtocol.DecConverToHex(d.BRGTPosition1); //KK LL Listbyte.Add((byte)bytes[0]); Listbyte.Add((byte)bytes[1]); bytes = MachineControlProtocol.HDecConverToHex(d.BRGTVolume1);//MM NN OO Listbyte.Add((byte)bytes[0]); Listbyte.Add((byte)bytes[1]); Listbyte.Add((byte)bytes[2]); bytes = MachineControlProtocol.DecConverToHex(d.BRGTPosition2);//PP QQ Listbyte.Add((byte)bytes[0]); Listbyte.Add((byte)bytes[1]); bytes = MachineControlProtocol.HDecConverToHex(d.BRGTVolume2);//RR SS TT UU Listbyte.Add((byte)bytes[0]); Listbyte.Add((byte)bytes[1]); Listbyte.Add((byte)bytes[2]); Listbyte.Add(0x03); long sum = 0; byte[] Tbytes = new byte[Listbyte.Count + 2]; for (int i = 0; i < Listbyte.Count; i++) { Tbytes[i] = Listbyte.ElementAt(i); sum += (int)Listbyte.ElementAt(i); } byte[] Tchecksum = MachineControlProtocol.CheckSum(sum); Tbytes[Tbytes.Length - 2] = Tchecksum[0]; Tbytes[Tbytes.Length - 1] = Tchecksum[1]; return(Tbytes); }