TECHNOLOGIES
FORUMS
JOBS
BOOKS
EVENTS
INTERVIEWS
Live
MORE
LEARN
Training
CAREER
MEMBERS
VIDEOS
NEWS
BLOGS
Sign Up
Login
No unread comment.
View All Comments
No unread message.
View All Messages
No unread notification.
View All Notifications
Answers
Post
An Article
A Blog
A News
A Video
An EBook
An Interview Question
Ask Question
Forums
Monthly Leaders
Forum guidelines
Crni Tigar
NA
1
1.6k
How to parse string in C#
Jul 30 2014 5:25 AM
Hello,
I am new in C# and I am trying to develop C# application for my relative humidity and temperature monitoring with SHT-11.
I found tutorials on net and I managed to make serial connection and to receive string. Now I would like to parse received string and to extract humidity and temperature values. I made following protocol
START byte ('*') + 5 bytes rel. hum + SEPARATOR (':') + 5 bytes temperature + STOP byte (';')
I know how to parse string in C for microcontrollers but I am not sure how to do that in C# (Microsoft Visual 2013).
Here is my code
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace RH_and_Temperaure_Monitoring
{
public partial class Form1 : Form
{
string RxString;
public Form1()
{
InitializeComponent();
}
private void buttonstart_Click(object sender, EventArgs e)
{
serialPort1.PortName = "COM12";
serialPort1.BaudRate = 9600;
serialPort1.Open();
if (serialPort1.IsOpen)
{
buttonstart.Enabled = false;
buttonstop.Enabled = true;
textBox1.ReadOnly = false;
}
}
private void buttonstop_Click(object sender, EventArgs e)
{
if (serialPort1.IsOpen)
{
serialPort1.Close();
buttonstart.Enabled = true;
buttonstop.Enabled = false;
textBox1.ReadOnly = true;
}
}
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
// If the port is closed, don't try to send a character.
if(!serialPort1.IsOpen) return;
// If the port is Open, declare a char[] array with one element.
char[] buff = new char[1];
// Load element 0 with the key character.
buff[0] = e.KeyChar;
// Send the one character buffer.
serialPort1.Write(buff, 0, 1);
// Set the KeyPress event as handled so the character won't
// display locally. If you want it to display, omit the next line.
e.Handled = true;
}
private void DisplayText(object sender, EventArgs e)
{
textBox1.AppendText(RxString);
}
private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
RxString = serialPort1.ReadExisting();
this.Invoke(new EventHandler(DisplayText));
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
if (serialPort1.IsOpen) serialPort1.Close();
}
}
}
And screenshot of Windows Form..
http://obrazki.elekt..._1406711404.jpg
Later I would like to add plots and presentation of measured values in separated text boxes for temperature and humidity.
Thanks.
Reply
Answers (
1
)
converting one hundred trillion (digits) to text
ocean level