using System; using System.Threading; using System.IO.Ports; using System.Text; using Microsoft.SPOT; using Microsoft.SPOT.Hardware; namespace simpleTerm { public class Program { //COM1 = Console COM2 = Optode (9600-N-8-1) COM3 = Elmo COM4 = SBE41 public static SerialPort terminalPort = new SerialPort("COM2", 9600, Parity.None, 8, StopBits.One); private static string wakeUp = "\r"; private static string getAll = "get all\r\n"; private static string doSample = "Do Sample\r\n"; private static byte[] txBytes = new byte[64]; public static void Main() { Debug.Print("\r\nStarting Program\r\n"); terminalPort.ReadTimeout = 10000; terminalPort.Open(); terminalPort.DiscardInBuffer(); terminalPort.DiscardOutBuffer(); terminalPort.DataReceived += new SerialDataReceivedEventHandler(terminalPortDataReceived); //txBytes = Encoding.UTF8.GetBytes("get all\r\n"); //terminalPort.Write(txBytes, 0, txBytes.Length); //while (true) //{ //} for (int i = 0; i < 5; i++) { switch (i) { case 0: Debug.Print("Sending Wake Up"); Array.Clear(txBytes, 0, txBytes.Length); txBytes = Encoding.UTF8.GetBytes(wakeUp); terminalPort.Write(txBytes, 0, wakeUp.Length); break; case 1: Debug.Print(" "); Debug.Print("Sending Get All"); Array.Clear(txBytes, 0, txBytes.Length); txBytes = Encoding.UTF8.GetBytes(getAll); terminalPort.Write(txBytes, 0, getAll.Length); break; case 2: Debug.Print(" "); Debug.Print("Sending Do Sample"); Array.Clear(txBytes, 0, txBytes.Length); txBytes = Encoding.UTF8.GetBytes(doSample); terminalPort.Write(txBytes, 0, doSample.Length); break; case 3: //Debug.Print(" "); //Debug.Print("Sending Do Sample"); Array.Clear(txBytes, 0, txBytes.Length); txBytes = Encoding.UTF8.GetBytes(doSample); terminalPort.Write(txBytes, 0, doSample.Length); break; case 4: //Debug.Print(" "); //Debug.Print("Sending Do Sample"); Array.Clear(txBytes, 0, txBytes.Length); txBytes = Encoding.UTF8.GetBytes(doSample); terminalPort.Write(txBytes, 0, doSample.Length); break; } Thread.Sleep(5000); } terminalPort.Close(); } private static StringBuilder inSB = new StringBuilder(4096); private static char[] inChars = new char[4096]; private static byte[] inBytes = new byte[4096]; private static void terminalPortDataReceived(object sender, SerialDataReceivedEventArgs e) { int inInt; inInt = terminalPort.ReadByte(); if ((inInt == 10) || (inInt == 13)) { } else { inBytes[0] = (byte)inInt; inChars = UTF8Encoding.UTF8.GetChars(inBytes, 0, 1); inSB.Append(inChars[0]); } if (inInt == 13) { Debug.Print(inSB.ToString()); inSB.Clear(); } } } }