Contribute
EN / USD
Log in / Join
32
of 76
TEP , The Engineering Projects , Image

syedzainnasir

TEP , The Engineering Projects , Rating 7.5 7.5 / 10
TEP , The Engineering Projects , Icon Level: Moderator
TEP , The Engineering Projects , Icon Joined: 20 Mar 2022
TEP , The Engineering Projects , Icon Last Active: 2:21 PM
TEP , The Engineering Projects , Icon Location: TEP , The Engineering Projects , Flag
TEP , The ENgineering Projects , Icon TEP , The ENgineering Projects , Icon TEP , The ENgineering Projects , Icon TEP , The ENgineering Projects , Icon
Plotting serial port data using zedgraph (data vs time)
TEP , The Engineering Projects , Calender Question: 14-Mar-2017
TEP , The Engineering Projects , Category In: Microsoft Visual Studio Projects
Hello,
I'm trying to plot the data read from a serial port using zedgraph. I'm still learing to code so I couldn't deduce why the plot does not work. Please have a look at the code and advice.
To open and read from a serial port, I use a combox and a couple of buttons (and then later I try to save it to a text file).
The plot does not function! I can't quite guess why. Please tell me if there's mistakes in my approach or the code. [code] //zedgraph namespace WindowsApplication2 { public partial class Form1 : Form { string t; SerialPort sp; Thread m_thread; bool m_running = false; ManualResetEvent m_event = new ManualResetEvent(true); bool m_pause = false; private GraphPane myPane; public Form1() { InitializeComponent(); Control.CheckForIllegalCrossThreadCalls = false; // User can already search for ports when the constructor of the FORM1 is calling // And let the user search ports again with a click // Searching for ports function SearchPorts(); CreateZedGraph(); //error : Severity Code Description Project File Line Suppression State //Error CS7036 There is no argument given that corresponds to the required formal parameter //'w' of 'Form1.DrawPoint(ZedGraphControl, int, PointPair)' } // start button private void btnStart_Click(object sender, EventArgs e) { if (m_thread == null || m_thread.IsAlive == false) { ClearGraph(); m_thread = new Thread(Process); m_thread.Start(); } } void Process() { PointPair point = new PointPair(); btnStart.Enabled = false; btnStop.Enabled = true; m_running = true; while (m_running == true) { m_event.WaitOne(); point.Y = Convert.ToDouble(serialPort1); point.X++; //time instance of measurement?? DrawPoint(zed1, point); ssData.Value = point.Y.ToString(); RefresheZedGraphs(zed1); Thread.Sleep(700); } btnStart.Enabled = true; } private void CreateZedGraph(object sender, SerialDataReceivedEventArgs e, ZedGraphControl zgc) { myPane = zgc.GraphPane; // axes stuff myPane.Title.Text = "FRDM-KW40z serial Test"; myPane.XAxis.Title.Text = "Time"; myPane.YAxis.Title.Text = "Voltage"; myPane.XAxis.MajorGrid.IsVisible = true; myPane.YAxis.MajorGrid.IsVisible = true; myPane.XAxis.MinorGrid.IsVisible = true; myPane.YAxis.MinorGrid.IsVisible = true; // data from serial port PointPairList list = new PointPairList(); zed1.GraphPane.AddCurve("Test", list, Color.Red); } //serial port data collection private void button2_Click(object sender, EventArgs e) { comboBox1.Items.Clear(); SearchPorts(); } void SearchPorts() { string[] ports = SerialPort.GetPortNames(); foreach (string port in ports) { comboBox1.Items.Add(port); } } private void button3_Click(object sender, EventArgs e) { // Catch exception if it will be thrown so the user will see it in a message box OpenCloseSerial(); } void OpenCloseSerial() { try { if (sp == null || sp.IsOpen == false) { t = comboBox1.Text.ToString(); sErial(t); button3.Text = "Close Serial port"; // button text } else { sp.Close(); button3.Text = "Connect and wait for inputs"; // button text } } catch (Exception err) // catching error message { MessageBox.Show(err.Message); // displaying error message } } void sErial(string Port_name) { try { sp = new SerialPort(Port_name, 115200, Parity.None, 8, StopBits.One); // serial port parameters sp.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler); sp.Open(); } catch (Exception err) { throw (new SystemException(err.Message)); } } private void DataReceivedHandler(object sender,SerialDataReceivedEventArgs e) { // This below line is not need , sp is global (belongs to the class!!) //SerialPort sp = (SerialPort)sender; if (e.EventType == SerialData.Chars) { if (sp.IsOpen) { string w = sp.ReadExisting(); if (w != String.Empty) { Invoke(new Action(() => Control.Update(w))); } } } } private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { if (sp == null || sp.IsOpen == false) { OpenCloseSerial(); } } [/code] I get an error at : Invoke(new Action(() => Control.Update(w))); when trying to update the graph so that I can save after that.

I again have an error at: DrawPoint(zed1, point);

I think zedgraph is too much for me right now. I'm thinking of replacing it with charts if I still struggle. But I'd love to hear your advise.
Thank you all for your time. Good day.

Cheers,
Ram.
TEP , The Engineering Projects , Icon Answer: 5 TEP , The Engineering Projects , Icon Views: 150 TEP , The Engineering Projects , Icon Followers: 85
Small Bio
TEP , The Engineering Projects , Image

adiono

TEP , The Engineering Projects , Rating 7.5 7.5 / 10
TEP , The Engineering Projects , Icon Level: Moderator
TEP , The Engineering Projects , Icon Joined: 20 Mar 2022
TEP , The Engineering Projects , Icon Last Active: 2:21 PM
TEP , The Engineering Projects , Icon Location: TEP , The Engineering Projects , Flag
TEP , The ENgineering Projects , Icon TEP , The ENgineering Projects , Icon TEP , The ENgineering Projects , Icon TEP , The ENgineering Projects , Icon

RE:

Plotting serial port data using zedgraph (data vs time)
TEP , The Engineering Projects , Calender Comment: 16-Mar-2017
TEP , The Engineering Projects , Category In: Microsoft Visual Studio Projects
@theenggprojects thank you for the reply. I did not realize that I was trying to plot the strings! I'm shifting my interest to chart now. This is really good advise. I will post the progress. Good day :)
TEP , The Engineering Projects , Tick Correct Answer
Comment Bio
TEP , The Engineering Projects , Image

adiono

TEP , The Engineering Projects , Rating 7.5 7.5 / 10
TEP , The Engineering Projects , Icon Level: Moderator
TEP , The Engineering Projects , Icon Joined: 20 Mar 2022
TEP , The Engineering Projects , Icon Last Active: 2:21 PM
TEP , The Engineering Projects , Icon Location: TEP , The Engineering Projects , Flag
TEP , The ENgineering Projects , Icon TEP , The ENgineering Projects , Icon TEP , The ENgineering Projects , Icon TEP , The ENgineering Projects , Icon

RE:

Plotting serial port data using zedgraph (data vs time)
TEP , The Engineering Projects , Calender Comment: 17-Mar-2017
TEP , The Engineering Projects , Category In: Microsoft Visual Studio Projects
Yeah it happens :D
Let me know whats the outcome of chart ....
TEP , The Engineering Projects , Tick Correct Answer
Comment Bio
TEP , The Engineering Projects , Image

adiono

TEP , The Engineering Projects , Rating 7.5 7.5 / 10
TEP , The Engineering Projects , Icon Level: Moderator
TEP , The Engineering Projects , Icon Joined: 20 Mar 2022
TEP , The Engineering Projects , Icon Last Active: 2:21 PM
TEP , The Engineering Projects , Icon Location: TEP , The Engineering Projects , Flag
TEP , The ENgineering Projects , Icon TEP , The ENgineering Projects , Icon TEP , The ENgineering Projects , Icon TEP , The ENgineering Projects , Icon

RE:

Plotting serial port data using zedgraph (data vs time)
TEP , The Engineering Projects , Calender Comment: 18-Mar-2017
TEP , The Engineering Projects , Category In: Microsoft Visual Studio Projects
Hi @theenggprojects, this is quite the challenge! I've been trying that for sometime in these past few days, but upto no progress! I still haven't managed to connect the serial port to the chart. Does this forum have a chat or message box? Let me know, or I will post the progress here today evening. Good day :)
TEP , The Engineering Projects , Tick Correct Answer
Comment Bio
TEP , The Engineering Projects , Image

adiono

TEP , The Engineering Projects , Rating 7.5 7.5 / 10
TEP , The Engineering Projects , Icon Level: Moderator
TEP , The Engineering Projects , Icon Joined: 20 Mar 2022
TEP , The Engineering Projects , Icon Last Active: 2:21 PM
TEP , The Engineering Projects , Icon Location: TEP , The Engineering Projects , Flag
TEP , The ENgineering Projects , Icon TEP , The ENgineering Projects , Icon TEP , The ENgineering Projects , Icon TEP , The ENgineering Projects , Icon

RE:

Plotting serial port data using zedgraph (data vs time)
TEP , The Engineering Projects , Calender Comment: 20-Mar-2017
TEP , The Engineering Projects , Category In: Microsoft Visual Studio Projects
[quote=ramv post_id=718 time=1489852303 user_id=116] Hi @theenggprojects, this is quite the challenge! I've been trying that for sometime in these past few days, but upto no progress! I still haven't managed to connect the serial port to the chart. Does this forum have a chat or message box? Let me know, or I will post the progress here today evening. Good day :) [/quote] Hey dear,

Yes we have the chat system please check mChat page to start chatting :)
Have a good day :)
TEP , The Engineering Projects , Tick Correct Answer
Comment Bio
TEP , The Engineering Projects , Image

adiono

TEP , The Engineering Projects , Rating 7.5 7.5 / 10
TEP , The Engineering Projects , Icon Level: Moderator
TEP , The Engineering Projects , Icon Joined: 20 Mar 2022
TEP , The Engineering Projects , Icon Last Active: 2:21 PM
TEP , The Engineering Projects , Icon Location: TEP , The Engineering Projects , Flag
TEP , The ENgineering Projects , Icon TEP , The ENgineering Projects , Icon TEP , The ENgineering Projects , Icon TEP , The ENgineering Projects , Icon

RE:

Plotting serial port data using zedgraph (data vs time)
TEP , The Engineering Projects , Calender Comment: 14-Mar-2017
TEP , The Engineering Projects , Category In: Microsoft Visual Studio Projects
I think the problem here is that you are trying to plot the string. Instead you should first convert your string into integer and then plot it.

Moreover, if you ask me then I would suggest you to use simple Charts.
[list]
  • First of all, receive the complete string from your Serial Port and then also make sure that you have received the complete data. If you are having problem in serial communication then you should read [url=http://www.theengineeringprojects.com/2012/10/microsoft-visual-basic-2010-com-port.html]How to use Serial Port in VB 2010[/url]
  • [/list]
    [list]
  • Once you got the data from Serial Port then you need to convert it into int which is quite simple, you can use strtoInt() and finally plot it on your Chart.
  • [/list]
    Let me know if you still have issues.
    TEP , The Engineering Projects , Tick Correct Answer
    Comment Bio
    TEP , The Engineering Projects , Tags
    PLC
    Robot
    STM32
    Arduino
    AI
    ESP32
    Ladder Logic
    PLC Projects
    Programming
    Communicates STM32
    PLC Projects
    Communicates PLC
    Font Style
    Alignment
    Indenting and Lists
    Insert Media
    Insert Items

    Want to leave an answer!

    Word Count :0 Draft Saved at 12:42 am.