public void SerializeObject(string filename, StartParameter objectToSerialize)
 {
     using(Stream stream = File.Open(filename, FileMode.OpenOrCreate, FileAccess.Write, FileShare.ReadWrite)) {
         BinaryFormatter bFormatter = new BinaryFormatter();
         bFormatter.Serialize(stream, objectToSerialize);
         stream.Close();
     }
 }
 /// <summary>
 /// Serialise the current config into a file to be used for the next start
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
 {
     try {
         if(slave != null)
             slave.Dispose();
         if(tcpListener != null)
             tcpListener.Stop();
         StartParameter s = new StartParameter(regValues, (byte)UnitIdBox.Value, (int)PortBox.Value, address);
         if(!File.Exists(InitValuesFileName)) {
             File.Create(InitValuesFileName);
         }
         SerializeObject(InitValuesFileName, s);
     }
     catch(Exception ex) {
         MessageBox.Show(ex.Message);
         log.Error("Error writing start parameters", ex);
     }
 }