Ejemplo n.º 1
0
 /// <summary>Creates a new instance of the Tsort.PandA.PandaPacket class.</summary>
 /// <param name="packet">PandA Messsage data for encoding.</param>
 /// <exceptions cref="ApplicationException">Thrown for unexpected errors.</exceptions>
 public PandaPacket(PandaDS.PacketTableRow packet)
 {
     //Constructor
     try {
         if (packet != null)
         {
             this.mReceived            = packet.Received;
             this.mMessageLength       = packet.MessageLength;
             this.mMessageCode         = packet.MessageCode;
             this.mMessageNumber       = packet.MessageNumber;
             this.mOriginalMessageCode = packet.OriginalMessageCode;
             this.mMessageFlags        = packet.MessageFlags;
             this.mRecordIterator      = packet.RecordIterator;
             this.mMessageBody         = packet.MessageBody;
             this.mValid          = packet.Valid;
             this.mException      = new Exception(packet.Exception);
             this.mProcessingTime = packet.ProcessingTime;
             this.mClientID       = packet.ClientID;
             this.mPacket         = new byte[this.mMessageLength];
             byte[] bytes = makePacketBytes(this);
             Array.Copy(bytes, 0, this.mPacket, 0, bytes.Length);
             this.mMessage = new ASCIIEncoding().GetString(this.mPacket);
         }
     }
     catch (Exception ex) { throw new ApplicationException("Unexpected error while creating new PandaPacket instance.", ex); }
 }
Ejemplo n.º 2
0
        private void OnMenuClick(object sender, System.EventArgs e)
        {
            //Event hanlder for menu click events
            try {
                MenuItem mnu = (MenuItem)sender;
                switch (mnu.Text)
                {
                case "Open":
                    switch (this.tabMain.SelectedTab.Name)
                    {
                    case "tabCtns":         break;

                    case "tabMsgs":
                        OpenFileDialog dlgOpen = new OpenFileDialog();
                        dlgOpen.Filter      = "Text Files (*.xml) | *.xml";
                        dlgOpen.FilterIndex = 0;
                        if (dlgOpen.ShowDialog(this) == DialogResult.OK)
                        {
                            PandaDS packets = new PandaDS();
                            packets.ReadXml(dlgOpen.FileName, XmlReadMode.ReadSchema);
                            if (packets.PacketTable.Rows.Count == 0)
                            {
                                MessageBox.Show(this, "No PandA packets found in file " + dlgOpen.FileName + ".", "Open PandA Packets", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            }
                            else
                            {
                                for (int i = 0; i < packets.PacketTable.Rows.Count; i++)
                                {
                                    PandaDS.PacketTableRow packet = packets.PacketTable[i];
                                    this.lsvMsgs.Items.Add(new ListViewItem(new string[] { packet.ClientID, packet.Received.ToString("MM-dd-yyyy HH:mm:ss.fff"), packet.ProcessingTime.ToString(), packet.MessageLength.ToString(), packet.MessageCode.ToString(), packet.MessageNumber.ToString(), packet.OriginalMessageCode.ToString(), packet.MessageFlags.ToString(), packet.RecordIterator.ToString(), packet.MessageBody, packet.Valid.ToString(), packet.Exception }));
                                }
                            }
                        }
                        break;

                    case "tabTrace":        break;
                    }
                    break;

                case "Clear":
                    switch (this.tabMain.SelectedTab.Name)
                    {
                    case "tabCtns":         this.lsvCtns.Items.Clear(); break;

                    case "tabMsgs":         this.lsvMsgs.Items.Clear(); break;

                    case "tabTrace":        this.txtTrace.Clear(); break;
                    }
                    break;

                case "Save":
                    #region Save a view to file
                    SaveFileDialog dlgSave = new SaveFileDialog();
                    dlgSave.AddExtension    = true;
                    dlgSave.FilterIndex     = 0;
                    dlgSave.OverwritePrompt = true;
                    switch (this.tabMain.SelectedTab.Name)
                    {
                    case "tabCtns":
                        dlgSave.Filter   = "Text Files (*.xml) | *.xml";
                        dlgSave.Title    = "Save Cartons As...";
                        dlgSave.FileName = "cartons_" + DateTime.Today.ToString("yyyyMMdd") + ".xml";
                        if (dlgSave.ShowDialog(this) == DialogResult.OK)
                        {
                            PandaDS cartons = new PandaDS();
                            #region Populate dataset with all cartons that are in lsvCtns
                            for (int i = 0; i < this.lsvCtns.Items.Count; i++)
                            {
                                PandaDS.CartonTableRow carton = cartons.CartonTable.NewCartonTableRow();
                                carton.CartonID       = this.lsvCtns.Items[i].SubItems[0].Text;
                                carton.StatusCode     = int.Parse(this.lsvCtns.Items[i].SubItems[1].Text);
                                carton.LabelFormat    = this.lsvCtns.Items[i].SubItems[2].Text;
                                carton.LabelException = this.lsvCtns.Items[i].SubItems[3].Text;
                                carton.Verify         = this.lsvCtns.Items[i].SubItems[4].Text;
                                carton.SaveException  = this.lsvCtns.Items[i].SubItems[5].Text;
                                carton.Barcode1       = this.lsvCtns.Items[i].SubItems[6].Text;
                                carton.Barcode2       = this.lsvCtns.Items[i].SubItems[7].Text;
                                carton.Barcode3       = this.lsvCtns.Items[i].SubItems[8].Text;
                                carton.Barcode4       = this.lsvCtns.Items[i].SubItems[9].Text;
                                carton.Barcode5       = this.lsvCtns.Items[i].SubItems[10].Text;
                                carton.Barcode6       = this.lsvCtns.Items[i].SubItems[11].Text;
                                carton.ItemWeight     = decimal.Parse(this.lsvCtns.Items[i].SubItems[12].Text);
                                cartons.CartonTable.AddCartonTableRow(carton);
                            }
                            #endregion
                            cartons.WriteXml(dlgSave.FileName, XmlWriteMode.WriteSchema);
                        }
                        break;

                    case "tabMsgs":
                        dlgSave.Filter   = "Text Files (*.xml) | *.xml";
                        dlgSave.Title    = "Save Packets As...";
                        dlgSave.FileName = "packets_" + DateTime.Today.ToString("yyyyMMdd") + ".xml";
                        if (dlgSave.ShowDialog(this) == DialogResult.OK)
                        {
                            PandaDS packets = new PandaDS();
                            #region Populate dataset with all packets that are in lsvMsgs
                            for (int i = 0; i < this.lsvMsgs.Items.Count; i++)
                            {
                                PandaDS.PacketTableRow packet = packets.PacketTable.NewPacketTableRow();
                                packet.ClientID            = this.lsvMsgs.Items[i].SubItems[0].Text;
                                packet.Received            = DateTime.Parse(this.lsvMsgs.Items[i].SubItems[1].Text);
                                packet.ProcessingTime      = float.Parse(this.lsvMsgs.Items[i].SubItems[2].Text);
                                packet.MessageLength       = int.Parse(this.lsvMsgs.Items[i].SubItems[3].Text);
                                packet.MessageCode         = int.Parse(this.lsvMsgs.Items[i].SubItems[4].Text);
                                packet.MessageNumber       = int.Parse(this.lsvMsgs.Items[i].SubItems[5].Text);
                                packet.OriginalMessageCode = int.Parse(this.lsvMsgs.Items[i].SubItems[6].Text);
                                packet.MessageFlags        = int.Parse(this.lsvMsgs.Items[i].SubItems[7].Text);
                                packet.RecordIterator      = int.Parse(this.lsvMsgs.Items[i].SubItems[8].Text);
                                packet.MessageBody         = this.lsvMsgs.Items[i].SubItems[9].Text;
                                packet.Valid     = bool.Parse(this.lsvMsgs.Items[i].SubItems[10].Text);
                                packet.Exception = this.lsvMsgs.Items[i].SubItems[11].Text;
                                packets.PacketTable.AddPacketTableRow(packet);
                            }
                            #endregion
                            packets.WriteXml(dlgSave.FileName, XmlWriteMode.WriteSchema);
                        }
                        break;

                    case "tabTrace":
                        dlgSave.Filter   = "Text Files (*.txt) | *.txt";
                        dlgSave.Title    = "Save Trace Log As...";
                        dlgSave.FileName = "tracelog_" + DateTime.Today.ToString("yyyyMMdd") + ".txt";
                        if (dlgSave.ShowDialog(this) == DialogResult.OK)
                        {
                            this.txtTrace.SaveFile(dlgSave.FileName, RichTextBoxStreamType.PlainText);
                        }
                        break;
                    }
                    #endregion
                    break;

                case "Run":
                    switch (this.tabMain.SelectedTab.Name)
                    {
                    case "tabCtns":         break;

                    case "tabMsgs":
                        #region Populate datarow with all fields that are in lsvMsgs selected item
                        PandaDS packets = new PandaDS();
                        PandaDS.PacketTableRow packet = packets.PacketTable.NewPacketTableRow();
                        packet.ClientID            = this.lsvMsgs.SelectedItems[0].SubItems[0].Text;
                        packet.Received            = DateTime.Parse(this.lsvMsgs.SelectedItems[0].SubItems[1].Text);
                        packet.ProcessingTime      = float.Parse(this.lsvMsgs.SelectedItems[0].SubItems[2].Text);
                        packet.MessageLength       = int.Parse(this.lsvMsgs.SelectedItems[0].SubItems[3].Text);
                        packet.MessageCode         = int.Parse(this.lsvMsgs.SelectedItems[0].SubItems[4].Text);
                        packet.MessageNumber       = int.Parse(this.lsvMsgs.SelectedItems[0].SubItems[5].Text);
                        packet.OriginalMessageCode = int.Parse(this.lsvMsgs.SelectedItems[0].SubItems[6].Text);
                        packet.MessageFlags        = int.Parse(this.lsvMsgs.SelectedItems[0].SubItems[7].Text);
                        packet.RecordIterator      = int.Parse(this.lsvMsgs.SelectedItems[0].SubItems[8].Text);
                        packet.MessageBody         = this.lsvMsgs.SelectedItems[0].SubItems[9].Text;
                        packet.Valid     = bool.Parse(this.lsvMsgs.SelectedItems[0].SubItems[10].Text);
                        packet.Exception = this.lsvMsgs.SelectedItems[0].SubItems[11].Text;
                        #endregion
                        PandaPacket request = new PandaPacket(packet);
                        this.mPandaSvc.ProcessPandARequest("", request);
                        break;

                    case "tabTrace":        break;
                    }
                    break;
                }
            }
            catch (Exception ex) { reportError(ex); }
        }