Serial Port communication in C#
-
I am trying to start with serial port communication using C# for my project. So even though i am familiar with the C# language i am new into I/O Port communication and i seem to be having some problem with my code
using System;
using System.IO.Ports;class Program
{
public static void Main ()
{
string portName = @"\\.\COM10";
_serialPort = new SerialPort (portName);
_serialPort.Close ();
}
}i am getting an error :
Error 1 The name '_serialPort' does not exist in the current context c:\users\alfie\documents\visual studio 2012\Projects\serial\serial\Serial_port.cs
Someone pls help me get started with this. . Also i have tested with the following code and verified that the COM10 port is working and is of type "char"
class Program
{
static void Main (string[] args)
{
string portName = @"\\.\COM10";
IntPtr handle = CreateFile (portName, 0, 0, IntPtr.Zero, 3, 0x80, IntPtr.Zero);
if(handle == (IntPtr) (-1))
{
Console.WriteLine ("Could not open " + portName + ": " + new Win32Exception ().Message);
Console.ReadKey ();
return;
}FileType type = GetFileType (handle); Console.WriteLine ("File " + portName + " reports its type as: " + type); Console.ReadKey (); } \[DllImport ("kernel32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall, SetLastError = true)\] public static extern IntPtr CreateFile (string lpFileName, uint dwDesiredAccess, uint dwShareMode, IntPtr SecurityAttributes, uint dwCreationDisposition, uint dwFlagsAndAttributes, IntPtr hTemplateFile); \[DllImport ("kernel32.dll")\] static extern FileType GetFileType (IntPtr hFile); enum FileType : uint { UNKNOWN = 0x0000, DISK = 0x0001, CHAR = 0x0002, PIPE = 0x0003, REMOTE = 0x8000, }
}
-
I am trying to start with serial port communication using C# for my project. So even though i am familiar with the C# language i am new into I/O Port communication and i seem to be having some problem with my code
using System;
using System.IO.Ports;class Program
{
public static void Main ()
{
string portName = @"\\.\COM10";
_serialPort = new SerialPort (portName);
_serialPort.Close ();
}
}i am getting an error :
Error 1 The name '_serialPort' does not exist in the current context c:\users\alfie\documents\visual studio 2012\Projects\serial\serial\Serial_port.cs
Someone pls help me get started with this. . Also i have tested with the following code and verified that the COM10 port is working and is of type "char"
class Program
{
static void Main (string[] args)
{
string portName = @"\\.\COM10";
IntPtr handle = CreateFile (portName, 0, 0, IntPtr.Zero, 3, 0x80, IntPtr.Zero);
if(handle == (IntPtr) (-1))
{
Console.WriteLine ("Could not open " + portName + ": " + new Win32Exception ().Message);
Console.ReadKey ();
return;
}FileType type = GetFileType (handle); Console.WriteLine ("File " + portName + " reports its type as: " + type); Console.ReadKey (); } \[DllImport ("kernel32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall, SetLastError = true)\] public static extern IntPtr CreateFile (string lpFileName, uint dwDesiredAccess, uint dwShareMode, IntPtr SecurityAttributes, uint dwCreationDisposition, uint dwFlagsAndAttributes, IntPtr hTemplateFile); \[DllImport ("kernel32.dll")\] static extern FileType GetFileType (IntPtr hFile); enum FileType : uint { UNKNOWN = 0x0000, DISK = 0x0001, CHAR = 0x0002, PIPE = 0x0003, REMOTE = 0x8000, }
}
The error message you are getting is telling us that you are using a variable called "_serialPort" but it is never defined. There needs to be a definition of that variable somewhere. Something like:
SerialPort _serialPort;
BDF The internet makes dumb people dumber and clever people cleverer. -- PaulowniaK
-
I am trying to start with serial port communication using C# for my project. So even though i am familiar with the C# language i am new into I/O Port communication and i seem to be having some problem with my code
using System;
using System.IO.Ports;class Program
{
public static void Main ()
{
string portName = @"\\.\COM10";
_serialPort = new SerialPort (portName);
_serialPort.Close ();
}
}i am getting an error :
Error 1 The name '_serialPort' does not exist in the current context c:\users\alfie\documents\visual studio 2012\Projects\serial\serial\Serial_port.cs
Someone pls help me get started with this. . Also i have tested with the following code and verified that the COM10 port is working and is of type "char"
class Program
{
static void Main (string[] args)
{
string portName = @"\\.\COM10";
IntPtr handle = CreateFile (portName, 0, 0, IntPtr.Zero, 3, 0x80, IntPtr.Zero);
if(handle == (IntPtr) (-1))
{
Console.WriteLine ("Could not open " + portName + ": " + new Win32Exception ().Message);
Console.ReadKey ();
return;
}FileType type = GetFileType (handle); Console.WriteLine ("File " + portName + " reports its type as: " + type); Console.ReadKey (); } \[DllImport ("kernel32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall, SetLastError = true)\] public static extern IntPtr CreateFile (string lpFileName, uint dwDesiredAccess, uint dwShareMode, IntPtr SecurityAttributes, uint dwCreationDisposition, uint dwFlagsAndAttributes, IntPtr hTemplateFile); \[DllImport ("kernel32.dll")\] static extern FileType GetFileType (IntPtr hFile); enum FileType : uint { UNKNOWN = 0x0000, DISK = 0x0001, CHAR = 0x0002, PIPE = 0x0003, REMOTE = 0x8000, }
}
Well, you could start by declaring the variable...
using System;
using System.IO.Ports;class Program
{
private SerialPort _serialPort = null; // <<---ADD THIS LINE
public static void Main ()
{
string portName = @"\\.\COM10";
_serialPort = new SerialPort (portName);
_serialPort.Close ();
}
}The only instant messaging I do involves my middle finger.
-
The error message you are getting is telling us that you are using a variable called "_serialPort" but it is never defined. There needs to be a definition of that variable somewhere. Something like:
SerialPort _serialPort;
BDF The internet makes dumb people dumber and clever people cleverer. -- PaulowniaK
Thanx... :) That worked like a charm... Sorry for my silly question....
-
Well, you could start by declaring the variable...
using System;
using System.IO.Ports;class Program
{
private SerialPort _serialPort = null; // <<---ADD THIS LINE
public static void Main ()
{
string portName = @"\\.\COM10";
_serialPort = new SerialPort (portName);
_serialPort.Close ();
}
}The only instant messaging I do involves my middle finger.
OriginalGriff wrote:
using System; using System.IO.Ports; class Program { private SerialPort _serialPort = null; // <<---ADD THIS LINE public static void Main () { string portName = @"\\.\COM10"; _serialPort = new SerialPort (portName); _serialPort.Close (); } }
I tried this code... but i am getting this error...
An object reference is required for the non-static field, method, or property 'Program._serialPort'
-
OriginalGriff wrote:
using System; using System.IO.Ports; class Program { private SerialPort _serialPort = null; // <<---ADD THIS LINE public static void Main () { string portName = @"\\.\COM10"; _serialPort = new SerialPort (portName); _serialPort.Close (); } }
I tried this code... but i am getting this error...
An object reference is required for the non-static field, method, or property 'Program._serialPort'
:doh: Sorry, my bad! I forgot that Main is a
static
method! Add the word "static" between "private" and "SerialPort"The only instant messaging I do involves my middle finger.
-
:doh: Sorry, my bad! I forgot that Main is a
static
method! Add the word "static" between "private" and "SerialPort"The only instant messaging I do involves my middle finger.
thanx.... that did the trick...:)
-
thanx.... that did the trick...:)
You're welcome!
The only instant messaging I do involves my middle finger.
-
I am trying to start with serial port communication using C# for my project. So even though i am familiar with the C# language i am new into I/O Port communication and i seem to be having some problem with my code
using System;
using System.IO.Ports;class Program
{
public static void Main ()
{
string portName = @"\\.\COM10";
_serialPort = new SerialPort (portName);
_serialPort.Close ();
}
}i am getting an error :
Error 1 The name '_serialPort' does not exist in the current context c:\users\alfie\documents\visual studio 2012\Projects\serial\serial\Serial_port.cs
Someone pls help me get started with this. . Also i have tested with the following code and verified that the COM10 port is working and is of type "char"
class Program
{
static void Main (string[] args)
{
string portName = @"\\.\COM10";
IntPtr handle = CreateFile (portName, 0, 0, IntPtr.Zero, 3, 0x80, IntPtr.Zero);
if(handle == (IntPtr) (-1))
{
Console.WriteLine ("Could not open " + portName + ": " + new Win32Exception ().Message);
Console.ReadKey ();
return;
}FileType type = GetFileType (handle); Console.WriteLine ("File " + portName + " reports its type as: " + type); Console.ReadKey (); } \[DllImport ("kernel32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall, SetLastError = true)\] public static extern IntPtr CreateFile (string lpFileName, uint dwDesiredAccess, uint dwShareMode, IntPtr SecurityAttributes, uint dwCreationDisposition, uint dwFlagsAndAttributes, IntPtr hTemplateFile); \[DllImport ("kernel32.dll")\] static extern FileType GetFileType (IntPtr hFile); enum FileType : uint { UNKNOWN = 0x0000, DISK = 0x0001, CHAR = 0x0002, PIPE = 0x0003, REMOTE = 0x8000, }
}
I know your question was answered by others, but I was wondering why you are using CreateFile instead of using the SerialPort class contained in the .NET framework? http://msdn.microsoft.com/en-us/library/system.io.ports.serialport.aspx[^]
-
I know your question was answered by others, but I was wondering why you are using CreateFile instead of using the SerialPort class contained in the .NET framework? http://msdn.microsoft.com/en-us/library/system.io.ports.serialport.aspx[^]
If you look at the OP, there are two sections of code: the first using SerialPort is the one he has problems with, and the second is labeled as a test to prove the serial port works.
The only instant messaging I do involves my middle finger.