Quantcast
Channel: .NET Framework Class Libraries forum
Viewing all articles
Browse latest Browse all 8156

.NET/C# program going to NOT RESPONDING

$
0
0
i have started my program in debug mode and its going NOT RESPONDING  but there are no anyEXCEPTION ,. why i can detect an error??or where program going NOT RESPONDING 
/??program using WCF service , SQL Compact DB, and connected withCOM- serial port, program going not responding when program sending  requiststo PORT
this is my repeatable code, that sends requists to COM port

 
  bool timerstarted = false;
        private void timer_Tick(object sender, EventArgs e)
        {
            try
            {
                labeltimer.Text = DateTime.Now.ToString();
                if (timerstarted == true)
                {
                    return;
                }
                timerstarted = true;
                _CARDCODE = 0;
                string error = "";
                bool hasbassed = false;
                if (this._Close == true)
                {
                    this.Close();
                }

                if (serialPort1.IsOpen)
                {
                    if (i < 8)
                    {
                        i++;
                    }
                    else
                    {
                        i = 0;
                    }
                    to[0] = (byte)(128 + i);
                    try
                    {
                        serialPort1.Write(to, 0, 1);
                    }
                    catch (System.Exception ex)
                    {
throw;
                        ListViewItem Lvi = new ListViewItem((++rowcount).ToString());
                        Lvi.SubItems.Add("");
                        Lvi.SubItems.Add("");
                        Lvi.SubItems.Add("Disconnected");
                        Lvi.SubItems.Add("");
                        listView.Items.Add(Lvi);
                        StartPort();
                    }


                    if (progressBar.Value >= 1500)
                        progressBar.Value = 0;
                    else
                        progressBar.Value += 10;

                    if (serialPort1.BytesToRead != 0)
                    {

                        byte[] data = new byte[serialPort1.BytesToRead];
                        from = new byte[3];
                        try
                        {
                            serialPort1.Read(data, 0, data.Length);
                        }
                        catch (System.Exception ex)
                        {
throw;
                            ListViewItem LVi = new ListViewItem((++rowcount).ToString());
                            LVi.SubItems.Add("");
                            LVi.SubItems.Add("");
                            LVi.SubItems.Add("Disconnected");
                            LVi.SubItems.Add("");
                            listView.Items.Add(LVi);
                            StartPort();
                        }
                        // data.Length == 4 by Button or HassPassed
                        if (data.Length == 4)
                        {
                            if (data[1] > 2)
                                DBS.AddButtonPass(data[0], data[1] / 4);
                            else
                            {
                                DBS.EditPass((int)data[0]);
                                timerstarted = false;
                                return;
                            }

                        }
                        else if ((data[data.Length - 1] != 255) || (data.Length < 4))
                        {
                            from[0] = data[0];
                            from[1] = 0;
                            from[2] = 0;
                            serialPort1.Write(from, 0, 3);
                            timerstarted = false;
                            return;
                        }

                        //RegistoringSubscriber_ID Add Subscriber Card
                        else if ((RegistoringSubscriber_ID > 0) && (RegisterCheckpoint != 0) && (data[0] == RegisterCheckpoint))
                        {
                            Registoring = false;
                            if (RegistorNewCard(Convert.ToInt32(data[2].ToString() + data[3].ToString() + data[4].ToString())) > 0)
                                FormBringPC.AnswerType = 1;
                            else
                                FormBringPC.AnswerType = 2;
                            RegistoringSubscriber_ID = 0;

                            error = "register card";
                        }
                        // RegistoringSubscriber_ID < 0 Add Bonus Card
                        else if ((RegistoringSubscriber_ID < 0) && (RegisterCheckpoint != 0) && (data[0] == RegisterCheckpoint))
                        {
                            Registoring = false;
                            if (RegistorBonusCard(Convert.ToInt32(data[2].ToString() + data[3].ToString() + data[4].ToString())) > 0)
                                FormBringPC.AnswerType = 1;
                            else
                                FormBringPC.AnswerType = 2;
                            RegistoringSubscriber_ID = 0;

                            error = "register Bonus card";
                        }
                        else if ((List_Checkpoint_ID.Contains(data[0]) && ((data[1] == 130) || (data[1] == 129))))
                        {
                           //     DBS.EditPass((int)data[0]);
                        }
                        else if ((List_Checkpoint_ID.Contains(data[0]) && (data.Length == 7)))
                        {
                            _CARDCODE = Convert.ToInt32(data[2].ToString() + data[3].ToString() + data[4].ToString());
                            GlobalTypes.InvalidPass pass = DBS.CheckPassStatus(_CARDCODE, (int)data[0], (int)data[1]);
                            if (pass == GlobalTypes.InvalidPass.Valid)
                            {
                                from[0] = data[0];
                                from[1] = 1;
                                from[2] = 1;
                                serialPort1.Write(from, 0, 3);
                                LBTitle.Text = DateTime.Now.ToLongTimeString();
                                hasbassed = true;
                            }
                            else
                            {
                                from[0] = data[0];
                                from[1] = 0;
                                from[2] = 0;
                                serialPort1.Write(from, 0, 3);
                                switch (pass)
                                {
                                   //some messegase
                                }
                            }
                        }
                        else if ((List_Checkpoint_ID.Contains(data[0]) && (data.Length > 0)))
                        {
                            try
                            {
                                byte[] ticket = new byte[data.Length - 6];

                                for (int ii = 0; ii < data.Length - 6; ii++)
                                {
                                    ticket[ii] = data[ii + 2];
                                }

                                _CARDCODE = Convert.ToInt32(Encoding.ASCII.GetString(ticket.ToArray()));
                                GlobalTypes.HasPass pass = DBS.CheckTicketPassStatus(_CARDCODE, (int)data[0], (int)data[1]);
                                if (pass == GlobalTypes.HasPass.TruePass)
                                {
                                    from[0] = data[0];
                                    from[1] = 1;
                                    from[2] = 1;
                                    serialPort1.Write(from, 0, 3);
                                    LBTitle.Text = DateTime.Now.ToLongTimeString();
                                    hasbassed = true;
                                }
                                else
                                {
                                    from[0] = data[0];
                                    from[1] = 0;
                                    from[2] = 0;
                                    serialPort1.Write(from, 0, 3);
                                    switch (pass)
                                    {
//some messegaes
                                    }
                                }
                            }
                            catch { throw; timerstarted = false; return; }
                        }
                        if (rowcount >= 10)
                        {
                            rowcount = 0;
                            listView.Items.Clear();
                        }
                        ListViewItem lvi = new ListViewItem((++rowcount).ToString());
                        lvi.SubItems.Add(data[0].ToString());
                        if (data.Length == 4)
                            hasbassed = true;
                        if (((data[1] == 2) || (data[1] == 8)) && ((data.Length == 4) || (Dictionary_Chekpoint[data[0]].CheckPointType == 2)))
                        {
                            lvi.SubItems.Add("Ելք");
                        }
                        else
                        {
                            lvi.SubItems.Add("Մուտք");
                        }
                        if (data.Length != 4)
                            lvi.SubItems.Add(_CARDCODE.ToString());
                        else
                            lvi.SubItems.Add("Հերթապահ");
                        lvi.SubItems.Add(error);
                        if (hasbassed == true)
                        {
                            lvi.BackColor = Color.LightGreen;
                        }
                        else
                        {
                            lvi.BackColor = Color.LightPink;
                        }
                        listView.Items.Add(lvi);
                    }
                }
                else MessageBox.Show("Serial port is closed!", "RS232 tester", MessageBoxButtons.OK, MessageBoxIcon.Error);
                timerstarted = false;
            }
            catch
            { throw;
                timerstarted = false;
                return;
            }
       }





 




 

Viewing all articles
Browse latest Browse all 8156

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>