C# Part (No Write Just Read)

0 views
Skip to first unread message

JD

unread,
Oct 6, 2011, 4:46:19 PM10/6/11
to 3K04 project grp
using System;
using System.IO.Ports;

public class SerialComm
{
const int k_sync = 0x16;
static byte[] input_buffer = new byte[2];
static byte[] output_buffer = new byte[2];
static byte[] message_buffer = new byte[16];
static int message_buffer_count = 0;
static byte[] message = new byte[16];
static int message_count = 0;
static bool message_done = true;
static bool syncd = false;

static SerialPort _serial_port;

public static void Main()
{
_serial_port = new SerialPort();
_serial_port.PortName = "COM11";
_serial_port.BaudRate = 57600;
_serial_port.Parity = Parity.None;
_serial_port.DataBits = 8;
_serial_port.StopBits = StopBits.One;
_serial_port.Handshake = Handshake.None;
_serial_port.ReadTimeout = 500;
_serial_port.WriteTimeout = 500;
_serial_port.ReceivedBytesThreshold = 16;
//_serial_port.DataReceived += new
SerialDataReceivedEventHandler(data_received_handler);

_serial_port.Open();
while (true)
{
input_buffer = new byte[2];
output_buffer = new byte[2];

try
{
_serial_port.Read(input_buffer, 0, 2);
Console.WriteLine("INPUT Received: {0} - {1}",
input_buffer[0], input_buffer[1]);
for (int i = 0; i < input_buffer.Length; i++)
{
Console.WriteLine("Received data {0}",
input_buffer[i]);
if (input_buffer[i] == k_sync)
{
syncd = true;
Console.WriteLine("SYNC received... starting
message.");
continue;
}
if (syncd != true)
{
continue;
}
try
{
message[message_count] = input_buffer[i];
message_count += 1;
Console.WriteLine("message[{0}] = {1}",
message_count - 1, input_buffer[i]);
}
catch (System.Exception)
{
// we are done filling the message
syncd = false;
message_done = true;
message_count = 0;
message_buffer_count = 0;
Console.WriteLine("Message done, syncd set
false. We now have a full message we can check and use.");
try
{
message_buffer[message_buffer_count] =
input_buffer[i];
message_buffer_count += 1;
}
catch (System.Exception)
{
//our overflow buffer overflowed fail
}
}

}
// TODO: WRITE ECHO BACK
message_done = false;
}
catch (System.Exception)
{
//Console.WriteLine(e);
}
};
_serial_port.Close();
}
}
Reply all
Reply to author
Forward
0 new messages