public void WriteRFIDTag(RFHead rfHead, BolaTagData tag, bool checkTrayIDBeforeWrite = true) { bool enterMonitor = false; if (_simulation) { return; } try { Monitor.Enter(this); enterMonitor = true; ((BolaTagData)_rfidHw.TagData).Clone(tag); _rfidHw.WriteTag(rfHead, checkTrayIDBeforeWrite); } catch { _rfidHw.DestroyTag(); throw; } finally { if (enterMonitor) { Monitor.Exit(this); } if (WriteDone != null) { WriteDone(null, null); } } }
/// <summary> /// Creates a new BolaTagData that is a copy of the current instance. /// </summary> /// <returns>A new BolaTagData that is a copy of this instance.</returns> public BolaTagData Clone() { var newTag = new BolaTagData(); newTag.Copy(this); return(newTag); }
// Methods ------------------------------------------------------------- public BolaTagData ReadRFIDTag(RFHead head) { BolaTagData bolaTag = null; ReadRFIDTag(head, ref bolaTag); return(bolaTag); }
public void ReadRFIDTag(RFHead rfHead, ref BolaTagData tag) { if (_simulation) { return; } try { Monitor.Enter(this); if (tag == null) { tag = new BolaTagData(); } _rfidHw.ReadTag(rfHead); tag.Clone((BolaTagData)_rfidHw.TagData); } catch (ExceptionRFID ex) // If fail check sum try to read it. { if (ex.ErrorCodeRFID == ErrorCodeRFID.CHECKSUM_ERR) { tag.Clone((BolaTagData)_rfidHw.TagData); } else { _rfidHw.DestroyTag(); tag.Clear(); } throw; } catch { _rfidHw.DestroyTag(); tag.Clear(); throw; } finally { Monitor.Exit(this); if (ReadDone != null) { ReadDone(null, null); } } }
/// <summary> /// Performs Deep Copy /// </summary> public void Copy(BolaTagData tagSource) { if (tagSource == null) { return; } _workOrder = tagSource.WorkOrder; _workOrderVersion = tagSource.WorkOrderVersion; _checkSum = tagSource.CheckSum; _checkSumCalculate = tagSource.CheckSumCalculate; _lastStep = tagSource.LastStep; _vendorCode = tagSource.VendorCode; _partNumber = tagSource.PartNumber; _tab = tagSource.Tab; _trayID = tagSource.TrayID; _trayType = tagSource.TrayType; for (int slot = 0; slot < _hgasInTray.Length; slot++) { SetHGAData(slot, tagSource[slot].HgaSN, tagSource[slot].Status); } }
public void Clone(BolaTagData tagSource) { Copy(tagSource); }
// Methods ------------------------------------------------------------- public void DisplayTagData(BolaTagData tag) { txtWorkorder.Text = tag.WorkOrder; txtVersion.Text = tag.WorkOrderVersion.ToString(); txtLaststep.Text = tag.LastStep.ToString(); lblChecksum.Text = string.Format("0x{0:X2}", tag.CheckSum); txtPartnumber.Text = tag.PartNumber; txtTrayID.Text = tag.TrayID; if (tag.Tab == 'D') { cboTabupdown.SelectedIndex = 0; } else if (tag.Tab == 'U') { cboTabupdown.SelectedIndex = 1; } else { cboTabupdown.SelectedIndex = -1; } cboVendorsite.SelectedIndex = -1; for (int i = 0; i < cboVendorsite.Items.Count; i++) { string vendor = cboVendorsite.Items[i].ToString(); int sep = vendor.IndexOf(' '); string code = vendor.Substring(0, sep); if (code.Equals(tag.VendorCode.ToString())) { cboVendorsite.SelectedIndex = i; break; } } if (tag.TrayType < 0) { cboTrayType.SelectedIndex = -1; } else { if (tag.TrayType >= cboTrayType.Items.Count) { int startAddNo = cboTrayType.Items.Count; for (int i = startAddNo; i <= tag.TrayType; i++) { cboTrayType.Items.Add(string.Format("{0}:", i)); } } cboTrayType.SelectedIndex = tag.TrayType; } txtHeadsn1.Text = tag[0].HgaSN; txtHeadsn2.Text = tag[1].HgaSN; txtHeadsn3.Text = tag[2].HgaSN; txtHeadsn4.Text = tag[3].HgaSN; txtHeadsn5.Text = tag[4].HgaSN; txtHeadsn6.Text = tag[5].HgaSN; txtHeadsn7.Text = tag[6].HgaSN; txtHeadsn8.Text = tag[7].HgaSN; txtHeadsn9.Text = tag[8].HgaSN; txtHeadsn10.Text = tag[9].HgaSN; txtHeadsn11.Text = tag[10].HgaSN; txtHeadsn12.Text = tag[11].HgaSN; txtHeadsn13.Text = tag[12].HgaSN; txtHeadsn14.Text = tag[13].HgaSN; txtHeadsn15.Text = tag[14].HgaSN; txtHeadsn16.Text = tag[15].HgaSN; txtHeadsn17.Text = tag[16].HgaSN; txtHeadsn18.Text = tag[17].HgaSN; txtHeadsn19.Text = tag[18].HgaSN; txtHeadsn20.Text = tag[19].HgaSN; txtHeadstatus1.Text = tag[0].Status.ToString(); txtHeadstatus2.Text = tag[1].Status.ToString(); txtHeadstatus3.Text = tag[2].Status.ToString(); txtHeadstatus4.Text = tag[3].Status.ToString(); txtHeadstatus5.Text = tag[4].Status.ToString(); txtHeadstatus6.Text = tag[5].Status.ToString(); txtHeadstatus7.Text = tag[6].Status.ToString(); txtHeadstatus8.Text = tag[7].Status.ToString(); txtHeadstatus9.Text = tag[8].Status.ToString(); txtHeadstatus10.Text = tag[9].Status.ToString(); txtHeadstatus11.Text = tag[10].Status.ToString(); txtHeadstatus12.Text = tag[11].Status.ToString(); txtHeadstatus13.Text = tag[12].Status.ToString(); txtHeadstatus14.Text = tag[13].Status.ToString(); txtHeadstatus15.Text = tag[14].Status.ToString(); txtHeadstatus16.Text = tag[15].Status.ToString(); txtHeadstatus17.Text = tag[16].Status.ToString(); txtHeadstatus18.Text = tag[17].Status.ToString(); txtHeadstatus19.Text = tag[18].Status.ToString(); txtHeadstatus20.Text = tag[19].Status.ToString(); }
/// <summary> /// Clear tag data and update UI panel /// </summary> /// <param name="tag"></param> public void ClearTag(BolaTagData tag) { tag.Clear(); DisplayTagData(tag); }
public void UpdateTag(BolaTagData tag) { tag.WorkOrder = txtWorkorder.Text.Trim(); tag.WorkOrderVersion = Convert.ToChar(txtVersion.Text.Trim()); tag.LastStep = int.Parse(txtLaststep.Text.Trim()); tag.PartNumber = txtPartnumber.Text.Trim(); tag.TrayID = txtTrayID.Text; if (cboTabupdown.SelectedIndex >= 0) { tag.Tab = cboTabupdown.Text[0]; } else { tag.Tab = ' '; } if (cboVendorsite.SelectedIndex >= 0) { int sep = cboVendorsite.Text.IndexOf('-'); string code = cboVendorsite.Text.Substring(0, sep).Trim(); tag.VendorCode = int.Parse(code); } else { tag.VendorCode = 0; } if (cboTrayType.SelectedIndex >= 0) { int sep = cboTrayType.Text.IndexOf(':'); string typeNo = cboTrayType.Text.Substring(0, sep).Trim(); tag.TrayType = int.Parse(typeNo); } else { tag.TrayType = 0; } //serial numbers tag[0].HgaSN = txtHeadsn1.Text; tag[1].HgaSN = txtHeadsn2.Text; tag[2].HgaSN = txtHeadsn3.Text; tag[3].HgaSN = txtHeadsn4.Text; tag[4].HgaSN = txtHeadsn5.Text; tag[5].HgaSN = txtHeadsn6.Text; tag[6].HgaSN = txtHeadsn7.Text; tag[7].HgaSN = txtHeadsn8.Text; tag[8].HgaSN = txtHeadsn9.Text; tag[9].HgaSN = txtHeadsn10.Text; tag[10].HgaSN = txtHeadsn11.Text; tag[11].HgaSN = txtHeadsn12.Text; tag[12].HgaSN = txtHeadsn13.Text; tag[13].HgaSN = txtHeadsn14.Text; tag[14].HgaSN = txtHeadsn15.Text; tag[15].HgaSN = txtHeadsn16.Text; tag[16].HgaSN = txtHeadsn17.Text; tag[17].HgaSN = txtHeadsn18.Text; tag[18].HgaSN = txtHeadsn19.Text; tag[19].HgaSN = txtHeadsn20.Text; tag[0].Status = txtHeadstatus1.Text == "" ? ' ' : txtHeadstatus1.Text[0]; tag[1].Status = txtHeadstatus2.Text == "" ? ' ' : txtHeadstatus2.Text[0]; tag[2].Status = txtHeadstatus3.Text == "" ? ' ' : txtHeadstatus3.Text[0]; tag[3].Status = txtHeadstatus4.Text == "" ? ' ' : txtHeadstatus4.Text[0]; tag[4].Status = txtHeadstatus5.Text == "" ? ' ' : txtHeadstatus5.Text[0]; tag[5].Status = txtHeadstatus6.Text == "" ? ' ' : txtHeadstatus6.Text[0]; tag[6].Status = txtHeadstatus7.Text == "" ? ' ' : txtHeadstatus7.Text[0]; tag[7].Status = txtHeadstatus8.Text == "" ? ' ' : txtHeadstatus8.Text[0]; tag[8].Status = txtHeadstatus9.Text == "" ? ' ' : txtHeadstatus9.Text[0]; tag[9].Status = txtHeadstatus10.Text == "" ? ' ' : txtHeadstatus10.Text[0]; tag[10].Status = txtHeadstatus11.Text == "" ? ' ' : txtHeadstatus11.Text[0]; tag[11].Status = txtHeadstatus12.Text == "" ? ' ' : txtHeadstatus12.Text[0]; tag[12].Status = txtHeadstatus13.Text == "" ? ' ' : txtHeadstatus13.Text[0]; tag[13].Status = txtHeadstatus14.Text == "" ? ' ' : txtHeadstatus14.Text[0]; tag[14].Status = txtHeadstatus15.Text == "" ? ' ' : txtHeadstatus15.Text[0]; tag[15].Status = txtHeadstatus16.Text == "" ? ' ' : txtHeadstatus16.Text[0]; tag[16].Status = txtHeadstatus17.Text == "" ? ' ' : txtHeadstatus17.Text[0]; tag[17].Status = txtHeadstatus18.Text == "" ? ' ' : txtHeadstatus18.Text[0]; tag[18].Status = txtHeadstatus19.Text == "" ? ' ' : txtHeadstatus19.Text[0]; tag[19].Status = txtHeadstatus20.Text == "" ? ' ' : txtHeadstatus20.Text[0]; }