title: Why is received data from the Serial Port Null?
body: <p>The code below builds with no errors, the connection to the device seems to work too although I do not get any feedback from the device. </p>
  
  <p>on V.S., I have placed a break point at the line<code>myReceivedLines = sp.ReadExisting();</code> and the variable <code>myReceivedLines</code> comes back null. </p>
  
  <p>On another similar program connecting to the same device, couple lines of feedback appear (see below), why is this variable null in my case?</p>
  
  <p><strong>Lines that appear on other program:</strong></p>
  
  <pre><code>Connecting...
  start
  Printer is now online.
  echo:Marlin: 1.0.0 RC2
  echo: Last Updated: 2012-05-22-1 | Author: eMAKER
  ...etc...
  </code></pre>
  
  <p><strong>Code:</strong></p>
  
  <pre><code> //Fields
      string myReceivedLines;
  
      //subscriber method for the port.DataReceived Event
      private void DataReceivedHandler(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
      {
          SerialPort sp = (SerialPort)sender;
          myReceivedLines = sp.ReadExisting();
      }
  
  
         protected override void SolveInstance(IGH_DataAccess DA)
        {
  
          List&lt;string&gt; gcode = new List&lt;string&gt;();
          DA.GetDataList(0, gcode);
          string selectedportname = default(string);
          DA.GetData(1, ref selectedportname);
          int selectedbaudrate = default(int);
          DA.GetData(2, ref selectedbaudrate);
          bool connecttodevice=default(bool);
          DA.GetData(3, ref connecttodevice);
          bool sendtoprint= default(bool);
          DA.GetData(4, ref sendtoprint);
  
          if (!DA.GetDataList(0, gcode)) return;
          if (!DA.GetData(1, ref selectedportname)) return;
          if (!DA.GetData(2, ref selectedbaudrate)) return;
          if (!DA.GetData(3, ref connecttodevice)) return;
          if (!DA.GetData(4, ref sendtoprint)) return;
  
  
          SerialPort port = new SerialPort(selectedportname, selectedbaudrate, Parity.None, 8, StopBits.One); //Create the serial port
          port.DtrEnable = true;   //enables the Data Terminal Ready (DTR) signal during serial communication (Handshaking)
          port.Open();             //Open the port
          port.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);
  
  
          if (gcode == null)
          {
              AddRuntimeMessage(GH_RuntimeMessageLevel.Warning, "Specify a valid GCode");
              return;
          }
  
          if (connecttodevice == true)
          {
              DA.SetDataList(0, myReceivedLines);
          }
          else
          {
              port.Close();
          }
  
              if (sendtoprint == true)
              {
                  foreach (String s in gcode)
                  {
                      port.WriteLine(s);
                  }
              }
  
                    }
  </code></pre>