JD
unread,Oct 6, 2011, 4:46:19 PM10/6/11Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
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();
}
}