Airmar SS510 Configuration

Sorry for the late response.
There is a bug with the sound speed because the transducer uses tenths of meter per second and the terminal sends the command with m/s (1350 - 1650).
If i ever find the source code I’ll fix that, for now you can use this:

$PAMTC,OPTION,SET,SOSTW,16000

Looking at the last screenshot it seems that the depth offset was set for 5000

SOSTW from the manual:

I want to update the Echo Envelope Control also and want to fix this bug also and some additions as required I would be much obliged for the source code

I got some de-compiling done
Please help me further how to proceed to assembe it after some modification

// Decompiled with JetBrains decompiler
// Type: Terminal.TermWindow
// Assembly: SS510-Term, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
// MVID: F58FEFA6-A0CA-4DA0-BCFB-A15D810424BC
// Assembly location: C:\Users\imtia\OneDrive\Desktop\SS510\SS510-Term.exe

using System;
using System.ComponentModel;
using System.Configuration;
using System.Drawing;
using System.IO.Ports;
using System.Runtime.ExceptionServices;
using System.Runtime.InteropServices;
using System.Windows.Forms;

#nullable disable
namespace Terminal
{
public class TermWindow : Form
{
private Button btn_Clear;
private Button btn_set;
private TextBox Term_box;
private ComboBox combo_coms;
private ComboBox combo_baud;
private Button btn_connect;
private NumericUpDown new_pings_1;
private NumericUpDown new_pulses_1;
private NumericUpDown new_sv;
private Button btn_pause;
private SerialPort serialPort1;
private Label label4;
private Label label5;
private Button btn_Query;
private ComboBox new_mode;
private Label label6;
private Label label7;
private Label label8;
private Label label9;
private Label label10;
private Label label11;
private Label label12;
private Label label13;
private Label label14;
private Label label15;
private TextBox box_mode;
private TextBox box_sv;
private TextBox box_t_off;
private TextBox box_d_off;
private TextBox box_d_filt;
private TextBox box_pulse;
private TextBox box_ping;
private TextBox box_range;
private TextBox box_s_filt;
private Label label1;
private Label label2;
private Label label3;
private Label label16;
private Label label17;
private Label label18;
private Label label19;
private Label label20;
private ComboBox new_range;
private NumericUpDown new_d_off;
private NumericUpDown new_t_off;
private NumericUpDown new_s_filt;
private NumericUpDown new_d_filt;
private NumericUpDown new_pulses_2;
private NumericUpDown new_pulses_4;
private NumericUpDown new_pulses_3;
private NumericUpDown new_pings_2;
private NumericUpDown new_pings_4;
private NumericUpDown new_pings_3;
private Label label21;
private TextBox box_depth;
private Label label22;
private Label label23;
private Label label24;
private Label label25;
private Button btn_reset;
private StatusStrip statusStrip1;
private ToolStripProgressBar indicator;
private ToolStripStatusLabel Status_box;
private IContainer components;
private static System.Configuration.Configuration configFile = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
public string RX_com = “”;
public string TX_com = “”;
public bool DEBUG_flag = true;
public int count = 0;
public string sAttr;
public static string Query_str = new string[9];
public static string Set_str;
public readonly TermWindow.database DataB = new TermWindow.database();
public readonly TermWindow.control flags = new TermWindow.control();

public TermWindow()
{
  // ISSUE: fault handler
  try
  {
    this.InitializeComponent();
    this.findPorts();
    this.getSettings();
  }
  __fault
  {
    base.Dispose(true);
  }
}

private void \u007ETermWindow()
{
  this.setSettings();
  this.components?.Dispose();
}

private void InitializeComponent()
{
  this.components = (IContainer) new System.ComponentModel.Container();
  ComponentResourceManager componentResourceManager = new ComponentResourceManager(typeof (TermWindow));
  this.btn_set = new Button();
  this.Term_box = new TextBox();
  this.combo_coms = new ComboBox();
  this.combo_baud = new ComboBox();
  this.btn_connect = new Button();
  this.new_pings_1 = new NumericUpDown();
  this.new_pulses_1 = new NumericUpDown();
  this.new_sv = new NumericUpDown();
  this.btn_pause = new Button();
  TermWindow termWindow = this;
  termWindow.serialPort1 = new SerialPort(termWindow.components);
  this.label4 = new Label();
  this.label5 = new Label();
  this.btn_Query = new Button();
  this.new_mode = new ComboBox();
  this.label6 = new Label();
  this.label7 = new Label();
  this.label8 = new Label();
  this.label9 = new Label();
  this.label10 = new Label();
  this.label11 = new Label();
  this.label12 = new Label();
  this.label13 = new Label();
  this.label14 = new Label();
  this.label15 = new Label();
  this.box_mode = new TextBox();
  this.box_sv = new TextBox();
  this.box_t_off = new TextBox();
  this.box_d_off = new TextBox();
  this.box_d_filt = new TextBox();
  this.box_pulse = new TextBox();
  this.box_ping = new TextBox();
  this.box_range = new TextBox();
  this.box_s_filt = new TextBox();
  this.label1 = new Label();
  this.label2 = new Label();
  this.label3 = new Label();
  this.label16 = new Label();
  this.label17 = new Label();
  this.label18 = new Label();
  this.label19 = new Label();
  this.label20 = new Label();
  this.new_range = new ComboBox();
  this.new_d_off = new NumericUpDown();
  this.new_t_off = new NumericUpDown();
  this.new_s_filt = new NumericUpDown();
  this.new_d_filt = new NumericUpDown();
  this.new_pulses_2 = new NumericUpDown();
  this.new_pulses_4 = new NumericUpDown();
  this.new_pulses_3 = new NumericUpDown();
  this.new_pings_2 = new NumericUpDown();
  this.new_pings_4 = new NumericUpDown();
  this.new_pings_3 = new NumericUpDown();
  this.btn_Clear = new Button();
  this.label21 = new Label();
  this.box_depth = new TextBox();
  this.label22 = new Label();
  this.label23 = new Label();
  this.label24 = new Label();
  this.label25 = new Label();
  this.btn_reset = new Button();
  this.statusStrip1 = new StatusStrip();
  this.indicator = new ToolStripProgressBar();
  this.Status_box = new ToolStripStatusLabel();
  this.new_pings_1.BeginInit();
  this.new_pulses_1.BeginInit();
  this.new_sv.BeginInit();
  this.new_d_off.BeginInit();
  this.new_t_off.BeginInit();
  this.new_s_filt.BeginInit();
  this.new_d_filt.BeginInit();
  this.new_pulses_2.BeginInit();
  this.new_pulses_4.BeginInit();
  this.new_pulses_3.BeginInit();
  this.new_pings_2.BeginInit();
  this.new_pings_4.BeginInit();
  this.new_pings_3.BeginInit();
  this.statusStrip1.SuspendLayout();
  this.SuspendLayout();
  this.btn_set.Location = new Point(899, 478);
  this.btn_set.Name = "btn_set";
  this.btn_set.Size = new Size(56, 26);
  this.btn_set.TabIndex = 0;
  this.btn_set.Text = "Set";
  this.btn_set.UseVisualStyleBackColor = true;
  this.btn_set.Click += new EventHandler(this.Btn_set_Click);
  this.Term_box.BackColor = SystemColors.Control;
  this.Term_box.HideSelection = false;
  this.Term_box.Location = new Point(12, 75);
  this.Term_box.Multiline = true;
  this.Term_box.Name = "Term_box";
  this.Term_box.ReadOnly = true;
  this.Term_box.ScrollBars = ScrollBars.Vertical;
  this.Term_box.Size = new Size(758, 305);
  this.Term_box.TabIndex = 1;
  this.combo_coms.DropDownStyle = ComboBoxStyle.DropDownList;
  this.combo_coms.FormattingEnabled = true;
  this.combo_coms.Location = new Point(84, 11);
  this.combo_coms.Name = "combo_coms";
  this.combo_coms.Size = new Size(121, 21);
  this.combo_coms.Sorted = true;
  this.combo_coms.TabIndex = 2;
  this.combo_baud.DropDownStyle = ComboBoxStyle.DropDownList;
  this.combo_baud.FormattingEnabled = true;
  this.combo_baud.Items.AddRange(new object[6]
  {
    (object) "4800",
    (object) "9600",
    (object) "19200",
    (object) "38400",
    (object) "57600",
    (object) "115200"
  });
  this.combo_baud.Location = new Point(84, 38);
  this.combo_baud.Name = "combo_baud";
  this.combo_baud.Size = new Size(121, 21);
  this.combo_baud.TabIndex = 3;
  this.btn_connect.Font = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Bold, GraphicsUnit.Point, (byte) 177);
  this.btn_connect.Location = new Point(211, 11);
  this.btn_connect.Name = "btn_connect";
  this.btn_connect.Size = new Size(75, 48);
  this.btn_connect.TabIndex = 4;
  this.btn_connect.Text = "Connect";
  this.btn_connect.UseVisualStyleBackColor = true;
  this.btn_connect.Click += new EventHandler(this.Btn_connect_Click);
  this.new_pings_1.Location = new Point(312, 443);
  this.new_pings_1.Maximum = new Decimal(new int[4]
  {
    8,
    0,
    0,
    0
  });
  this.new_pings_1.Minimum = new Decimal(new int[4]
  {
    1,
    0,
    0,
    0
  });
  this.new_pings_1.Name = "new_pings_1";
  this.new_pings_1.Size = new Size(40, 20);
  this.new_pings_1.TabIndex = 5;
  this.new_pings_1.Value = new Decimal(new int[4]
  {
    5,
    0,
    0,
    0
  });
  this.new_pings_1.ValueChanged += new EventHandler(this.Updade);
  this.new_pulses_1.Location = new Point(312, 475);
  this.new_pulses_1.Maximum = new Decimal(new int[4]
  {
    180,
    0,
    0,
    0
  });
  this.new_pulses_1.Minimum = new Decimal(new int[4]
  {
    1,
    0,
    0,
    0
  });
  this.new_pulses_1.Name = "new_pulses_1";
  this.new_pulses_1.Size = new Size(40, 20);
  this.new_pulses_1.TabIndex = 7;
  this.new_pulses_1.Value = new Decimal(new int[4]
  {
    5,
    0,
    0,
    0
  });
  this.new_pulses_1.ValueChanged += new EventHandler(this.Updade);
  this.new_sv.Location = new Point(312, 390);
  this.new_sv.Maximum = new Decimal(new int[4]
  {
    1650,
    0,
    0,
    0
  });
  this.new_sv.Minimum = new Decimal(new int[4]
  {
    1300,
    0,
    0,
    0
  });
  this.new_sv.Name = "new_sv";
  this.new_sv.Size = new Size(63, 20);
  this.new_sv.TabIndex = 8;
  this.new_sv.Value = new Decimal(new int[4]
  {
    1500,
    0,
    0,
    0
  });
  this.new_sv.ValueChanged += new EventHandler(this.Updade);
  this.btn_pause.Location = new Point(15, 478);
  this.btn_pause.Name = "btn_pause";
  this.btn_pause.Size = new Size(64, 32);
  this.btn_pause.TabIndex = 11;
  this.btn_pause.Text = "Pause";
  this.btn_pause.UseVisualStyleBackColor = true;
  this.btn_pause.Click += new EventHandler(this.Btn_pause_Click);
  this.serialPort1.DataReceived += new SerialDataReceivedEventHandler(this.SerialPort1_DataReceived);
  this.label4.AutoSize = true;
  this.label4.Location = new Point(12, 14);
  this.label4.Name = "label4";
  this.label4.Size = new Size(53, 13);
  this.label4.TabIndex = 12;
  this.label4.Text = "Com Port:";
  this.label5.AutoSize = true;
  this.label5.Location = new Point(12, 41);
  this.label5.Name = "label5";
  this.label5.Size = new Size(66, 13);
  this.label5.TabIndex = 13;
  this.label5.Text = "BAUD Rate:";
  this.btn_Query.Location = new Point(899, 438);
  this.btn_Query.Name = "btn_Query";
  this.btn_Query.Size = new Size(56, 26);
  this.btn_Query.TabIndex = 14;
  this.btn_Query.Text = "Query";
  this.btn_Query.UseVisualStyleBackColor = true;
  this.btn_Query.Click += new EventHandler(this.Btn_Query_Click);
  this.new_mode.DropDownStyle = ComboBoxStyle.DropDownList;
  this.new_mode.FormattingEnabled = true;
  this.new_mode.Items.AddRange(new object[2]
  {
    (object) "INTERVAL",
    (object) "PING"
  });
  this.new_mode.Location = new Point(98, 390);
  this.new_mode.Name = "new_mode";
  this.new_mode.Size = new Size(97, 21);
  this.new_mode.TabIndex = 15;
  this.new_mode.SelectedIndexChanged += new EventHandler(this.Updade);
  this.label6.AutoSize = true;
  this.label6.Location = new Point(776, 78);
  this.label6.Name = "label6";
  this.label6.Size = new Size(37, 13);
  this.label6.TabIndex = 16;
  this.label6.Text = "Mode:";
  this.label7.AutoSize = true;
  this.label7.Location = new Point(776, 130);
  this.label7.Name = "label7";
  this.label7.Size = new Size(81, 13);
  this.label7.TabIndex = 17;
  this.label7.Text = "Sound Velocity:";
  this.label8.AutoSize = true;
  this.label8.Location = new Point(776, 208);
  this.label8.Name = "label8";
  this.label8.Size = new Size(70, 13);
  this.label8.TabIndex = 18;
  this.label8.Text = "Depth Offset:";
  this.label9.AutoSize = true;
  this.label9.Location = new Point(776, 234);
  this.label9.Name = "label9";
  this.label9.Size = new Size(68, 13);
  this.label9.TabIndex = 19;
  this.label9.Text = "Temp Offset:";
  this.label10.AutoSize = true;
  this.label10.Location = new Point(776, 104);
  this.label10.Name = "label10";
  this.label10.Size = new Size(42, 13);
  this.label10.TabIndex = 20;
  this.label10.Text = "Range:";
  this.label11.AutoSize = true;
  this.label11.Location = new Point(776, 156);
  this.label11.Name = "label11";
  this.label11.Size = new Size(62, 13);
  this.label11.TabIndex = 21;
  this.label11.Text = "Pings [sec]:";
  this.label12.AutoSize = true;
  this.label12.Location = new Point(776, 182);
  this.label12.Name = "label12";
  this.label12.Size = new Size(70, 13);
  this.label12.TabIndex = 22;
  this.label12.Text = "Pulses [ping]:";
  this.label13.AutoSize = true;
  this.label13.Location = new Point(776, 260);
  this.label13.Name = "label13";
  this.label13.Size = new Size(61, 13);
  this.label13.TabIndex = 23;
  this.label13.Text = "Depth filter:";
  this.label14.AutoSize = true;
  this.label14.Location = new Point(776, 286);
  this.label14.Name = "label14";
  this.label14.Size = new Size(67, 13);
  this.label14.TabIndex = 24;
  this.label14.Text = "Sample filter:";
  this.label15.AutoSize = true;
  this.label15.Location = new Point(12, 393);
  this.label15.Name = "label15";
  this.label15.Size = new Size(37, 13);
  this.label15.TabIndex = 25;
  this.label15.Text = "Mode:";
  this.box_mode.Location = new Point(855, 75);
  this.box_mode.Name = "box_mode";
  this.box_mode.ReadOnly = true;
  this.box_mode.Size = new Size(100, 20);
  this.box_mode.TabIndex = 26;
  this.box_mode.TextAlign = HorizontalAlignment.Right;
  this.box_sv.Location = new Point(855, (int) sbyte.MaxValue);
  this.box_sv.Name = "box_sv";
  this.box_sv.ReadOnly = true;
  this.box_sv.Size = new Size(100, 20);
  this.box_sv.TabIndex = 27;
  this.box_sv.TextAlign = HorizontalAlignment.Right;
  this.box_t_off.Location = new Point(855, 231);
  this.box_t_off.Name = "box_t_off";
  this.box_t_off.ReadOnly = true;
  this.box_t_off.Size = new Size(100, 20);
  this.box_t_off.TabIndex = 29;
  this.box_t_off.TextAlign = HorizontalAlignment.Right;
  this.box_d_off.Location = new Point(855, 205);
  this.box_d_off.Name = "box_d_off";
  this.box_d_off.ReadOnly = true;
  this.box_d_off.Size = new Size(100, 20);
  this.box_d_off.TabIndex = 28;
  this.box_d_off.TextAlign = HorizontalAlignment.Right;
  this.box_d_filt.Location = new Point(855, 257);
  this.box_d_filt.Name = "box_d_filt";
  this.box_d_filt.ReadOnly = true;
  this.box_d_filt.Size = new Size(100, 20);
  this.box_d_filt.TabIndex = 33;
  this.box_d_filt.TextAlign = HorizontalAlignment.Right;
  this.box_pulse.Location = new Point(855, 179);
  this.box_pulse.Name = "box_pulse";
  this.box_pulse.ReadOnly = true;
  this.box_pulse.Size = new Size(100, 20);
  this.box_pulse.TabIndex = 32;
  this.box_pulse.TextAlign = HorizontalAlignment.Right;
  this.box_ping.Location = new Point(855, 153);
  this.box_ping.Name = "box_ping";
  this.box_ping.ReadOnly = true;
  this.box_ping.Size = new Size(100, 20);
  this.box_ping.TabIndex = 31;
  this.box_ping.TextAlign = HorizontalAlignment.Right;
  this.box_range.Location = new Point(855, 101);
  this.box_range.Name = "box_range";
  this.box_range.ReadOnly = true;
  this.box_range.Size = new Size(100, 20);
  this.box_range.TabIndex = 30;
  this.box_range.TextAlign = HorizontalAlignment.Right;
  this.box_s_filt.Location = new Point(855, 283);
  this.box_s_filt.Name = "box_s_filt";
  this.box_s_filt.ReadOnly = true;
  this.box_s_filt.Size = new Size(100, 20);
  this.box_s_filt.TabIndex = 34;
  this.box_s_filt.TextAlign = HorizontalAlignment.Right;
  this.label1.AutoSize = true;
  this.label1.Location = new Point(521, 476);
  this.label1.Name = "label1";
  this.label1.Size = new Size(67, 13);
  this.label1.TabIndex = 42;
  this.label1.Text = "Sample filter:";
  this.label2.AutoSize = true;
  this.label2.Location = new Point(520, 450);
  this.label2.Name = "label2";
  this.label2.Size = new Size(61, 13);
  this.label2.TabIndex = 41;
  this.label2.Text = "Depth filter:";
  this.label3.AutoSize = true;
  this.label3.Location = new Point(224, 477);
  this.label3.Name = "label3";
  this.label3.Size = new Size(70, 13);
  this.label3.TabIndex = 40;
  this.label3.Text = "Pulses [ping]:";
  this.label16.AutoSize = true;
  this.label16.Location = new Point(224, 445);
  this.label16.Name = "label16";
  this.label16.Size = new Size(62, 13);
  this.label16.TabIndex = 39;
  this.label16.Text = "Pings [sec]:";
  this.label17.AutoSize = true;
  this.label17.Location = new Point(12, 424);
  this.label17.Name = "label17";
  this.label17.Size = new Size(42, 13);
  this.label17.TabIndex = 38;
  this.label17.Text = "Range:";
  this.label18.AutoSize = true;
  this.label18.Location = new Point(520, 424);
  this.label18.Name = "label18";
  this.label18.Size = new Size(92, 13);
  this.label18.TabIndex = 37;
  this.label18.Text = "Temp Offset [mC]:";
  this.label19.AutoSize = true;
  this.label19.Location = new Point(520, 393);
  this.label19.Name = "label19";
  this.label19.Size = new Size(95, 13);
  this.label19.TabIndex = 36;
  this.label19.Text = "Depth Offset [mm]:";
  this.label20.AutoSize = true;
  this.label20.Location = new Point(224, 393);
  this.label20.Name = "label20";
  this.label20.Size = new Size(81, 13);
  this.label20.TabIndex = 35;
  this.label20.Text = "Sound Velocity:";
  this.new_range.DropDownStyle = ComboBoxStyle.DropDownList;
  this.new_range.FormattingEnabled = true;
  this.new_range.Items.AddRange(new object[5]
  {
    (object) "SHORT",
    (object) "MEDIUM",
    (object) "LONG",
    (object) "VERY LONG",
    (object) "AUTO"
  });
  this.new_range.Location = new Point(98, 421);
  this.new_range.Name = "new_range";
  this.new_range.Size = new Size(97, 21);
  this.new_range.TabIndex = 43;
  this.new_range.SelectedIndexChanged += new EventHandler(this.Updade);
  this.new_d_off.Location = new Point(621, 391);
  this.new_d_off.Maximum = new Decimal(new int[4]
  {
    32764,
    0,
    0,
    0
  });
  this.new_d_off.Minimum = new Decimal(new int[4]
  {
    32764,
    0,
    0,
    int.MinValue
  });
  this.new_d_off.Name = "new_d_off";
  this.new_d_off.Size = new Size(63, 20);
  this.new_d_off.TabIndex = 44;
  this.new_d_off.ValueChanged += new EventHandler(this.Updade);
  this.new_t_off.Location = new Point(621, 422);
  this.new_t_off.Maximum = new Decimal(new int[4]
  {
    9999,
    0,
    0,
    0
  });
  this.new_t_off.Minimum = new Decimal(new int[4]
  {
    9999,
    0,
    0,
    int.MinValue
  });
  this.new_t_off.Name = "new_t_off";
  this.new_t_off.Size = new Size(63, 20);
  this.new_t_off.TabIndex = 45;
  this.new_t_off.ValueChanged += new EventHandler(this.Updade);
  this.new_s_filt.Increment = new Decimal(new int[4]
  {
    2,
    0,
    0,
    0
  });
  this.new_s_filt.Location = new Point(653, 474);
  this.new_s_filt.Maximum = new Decimal(new int[4]
  {
    8,
    0,
    0,
    0
  });
  this.new_s_filt.Name = "new_s_filt";
  this.new_s_filt.Size = new Size(32, 20);
  this.new_s_filt.TabIndex = 47;
  this.new_s_filt.ValueChanged += new EventHandler(this.Updade);
  this.new_d_filt.Increment = new Decimal(new int[4]
  {
    2,
    0,
    0,
    0
  });
  this.new_d_filt.Location = new Point(653, 448);
  this.new_d_filt.Maximum = new Decimal(new int[4]
  {
    4,
    0,
    0,
    0
  });
  this.new_d_filt.Name = "new_d_filt";
  this.new_d_filt.Size = new Size(32, 20);
  this.new_d_filt.TabIndex = 46;
  this.new_d_filt.ValueChanged += new EventHandler(this.Updade);
  this.new_pulses_2.Location = new Point(358, 475);
  this.new_pulses_2.Maximum = new Decimal(new int[4]
  {
    180,
    0,
    0,
    0
  });
  this.new_pulses_2.Minimum = new Decimal(new int[4]
  {
    1,
    0,
    0,
    0
  });
  this.new_pulses_2.Name = "new_pulses_2";
  this.new_pulses_2.Size = new Size(40, 20);
  this.new_pulses_2.TabIndex = 48;
  this.new_pulses_2.Value = new Decimal(new int[4]
  {
    20,
    0,
    0,
    0
  });
  this.new_pulses_2.ValueChanged += new EventHandler(this.Updade);
  this.new_pulses_4.Location = new Point(450, 475);
  this.new_pulses_4.Maximum = new Decimal(new int[4]
  {
    180,
    0,
    0,
    0
  });
  this.new_pulses_4.Minimum = new Decimal(new int[4]
  {
    1,
    0,
    0,
    0
  });
  this.new_pulses_4.Name = "new_pulses_4";
  this.new_pulses_4.Size = new Size(40, 20);
  this.new_pulses_4.TabIndex = 50;
  this.new_pulses_4.Value = new Decimal(new int[4]
  {
    60,
    0,
    0,
    0
  });
  this.new_pulses_4.ValueChanged += new EventHandler(this.Updade);
  this.new_pulses_3.Location = new Point(404, 475);
  this.new_pulses_3.Maximum = new Decimal(new int[4]
  {
    180,
    0,
    0,
    0
  });
  this.new_pulses_3.Minimum = new Decimal(new int[4]
  {
    1,
    0,
    0,
    0
  });
  this.new_pulses_3.Name = "new_pulses_3";
  this.new_pulses_3.Size = new Size(40, 20);
  this.new_pulses_3.TabIndex = 49;
  this.new_pulses_3.Value = new Decimal(new int[4]
  {
    40,
    0,
    0,
    0
  });
  this.new_pulses_3.ValueChanged += new EventHandler(this.Updade);
  this.new_pings_2.Location = new Point(358, 443);
  this.new_pings_2.Maximum = new Decimal(new int[4]
  {
    8,
    0,
    0,
    0
  });
  this.new_pings_2.Minimum = new Decimal(new int[4]
  {
    1,
    0,
    0,
    0
  });
  this.new_pings_2.Name = "new_pings_2";
  this.new_pings_2.Size = new Size(40, 20);
  this.new_pings_2.TabIndex = 51;
  this.new_pings_2.Value = new Decimal(new int[4]
  {
    5,
    0,
    0,
    0
  });
  this.new_pings_2.ValueChanged += new EventHandler(this.Updade);
  this.new_pings_4.Location = new Point(450, 443);
  this.new_pings_4.Maximum = new Decimal(new int[4]
  {
    4,
    0,
    0,
    0
  });
  this.new_pings_4.Minimum = new Decimal(new int[4]
  {
    1,
    0,
    0,
    0
  });
  this.new_pings_4.Name = "new_pings_4";
  this.new_pings_4.Size = new Size(40, 20);
  this.new_pings_4.TabIndex = 53;
  this.new_pings_4.Value = new Decimal(new int[4]
  {
    3,
    0,
    0,
    0
  });
  this.new_pings_4.ValueChanged += new EventHandler(this.Updade);
  this.new_pings_3.Location = new Point(404, 443);
  this.new_pings_3.Maximum = new Decimal(new int[4]
  {
    4,
    0,
    0,
    0
  });
  this.new_pings_3.Minimum = new Decimal(new int[4]
  {
    1,
    0,
    0,
    0
  });
  this.new_pings_3.Name = "new_pings_3";
  this.new_pings_3.Size = new Size(40, 20);
  this.new_pings_3.TabIndex = 52;
  this.new_pings_3.Value = new Decimal(new int[4]
  {
    3,
    0,
    0,
    0
  });
  this.new_pings_3.ValueChanged += new EventHandler(this.Updade);
  this.btn_Clear.Location = new Point(98, 478);
  this.btn_Clear.Name = "btn_Clear";
  this.btn_Clear.Size = new Size(64, 32);
  this.btn_Clear.TabIndex = 54;
  this.btn_Clear.Text = "Clear";
  this.btn_Clear.UseVisualStyleBackColor = true;
  this.btn_Clear.Click += new EventHandler(this.Btn_Clear_Click);
  this.label21.AutoSize = true;
  this.label21.Location = new Point(776, 327);
  this.label21.Name = "label21";
  this.label21.Size = new Size(39, 13);
  this.label21.TabIndex = 55;
  this.label21.Text = "Depth:";
  this.box_depth.Font = new Font("Microsoft Sans Serif", 24f, FontStyle.Bold, GraphicsUnit.Point, (byte) 177);
  this.box_depth.ForeColor = Color.Red;
  this.box_depth.Location = new Point(855, 309);
  this.box_depth.Name = "box_depth";
  this.box_depth.Size = new Size(100, 44);
  this.box_depth.TabIndex = 56;
  this.box_depth.TextAlign = HorizontalAlignment.Center;
  this.label22.AutoSize = true;
  this.label22.Location = new Point(316, 424);
  this.label22.Name = "label22";
  this.label22.Size = new Size(32, 13);
  this.label22.TabIndex = 57;
  this.label22.Text = "Short";
  this.label22.TextAlign = ContentAlignment.MiddleCenter;
  this.label23.AutoSize = true;
  this.label23.Location = new Point(356, 424);
  this.label23.Name = "label23";
  this.label23.Size = new Size(44, 13);
  this.label23.TabIndex = 58;
  this.label23.Text = "Medium";
  this.label23.TextAlign = ContentAlignment.MiddleCenter;
  this.label24.AutoSize = true;
  this.label24.Location = new Point(443, 424);
  this.label24.Name = "label24";
  this.label24.Size = new Size(55, 13);
  this.label24.TabIndex = 60;
  this.label24.Text = "Very Long";
  this.label24.TextAlign = ContentAlignment.MiddleCenter;
  this.label25.AutoSize = true;
  this.label25.Location = new Point(409, 424);
  this.label25.Name = "label25";
  this.label25.Size = new Size(31, 13);
  this.label25.TabIndex = 59;
  this.label25.Text = "Long";
  this.label25.TextAlign = ContentAlignment.MiddleCenter;
  this.btn_reset.Location = new Point(877, 22);
  this.btn_reset.Name = "btn_reset";
  this.btn_reset.Size = new Size(56, 26);
  this.btn_reset.TabIndex = 61;
  this.btn_reset.Text = "RESET";
  this.btn_reset.UseVisualStyleBackColor = true;
  this.btn_reset.Click += new EventHandler(this.Btn_reset_Click);
  this.statusStrip1.Items.AddRange(new ToolStripItem[2]
  {
    (ToolStripItem) this.indicator,
    (ToolStripItem) this.Status_box
  });
  this.statusStrip1.Location = new Point(0, 517);
  this.statusStrip1.Name = "statusStrip1";
  this.statusStrip1.Size = new Size(967, 22);
  this.statusStrip1.TabIndex = 63;
  this.statusStrip1.Text = "statusStrip1";
  this.indicator.AutoSize = false;
  this.indicator.Margin = new Padding(3);
  this.indicator.Name = "indicator";
  this.indicator.Size = new Size(16, 16);
  this.indicator.Style = ProgressBarStyle.Continuous;
  this.Status_box.AutoSize = false;
  this.Status_box.BorderSides = ToolStripStatusLabelBorderSides.All;
  this.Status_box.BorderStyle = Border3DStyle.SunkenInner;
  this.Status_box.Name = "Status_box";
  this.Status_box.Size = new Size(900, 17);
  this.Status_box.TextAlign = ContentAlignment.MiddleLeft;
  this.AutoScaleDimensions = new SizeF(6f, 13f);
  this.AutoScaleMode = AutoScaleMode.Font;
  this.ClientSize = new Size(967, 539);
  this.Controls.Add((Control) this.statusStrip1);
  this.Controls.Add((Control) this.btn_reset);
  this.Controls.Add((Control) this.label24);
  this.Controls.Add((Control) this.label25);
  this.Controls.Add((Control) this.label23);
  this.Controls.Add((Control) this.label22);
  this.Controls.Add((Control) this.box_depth);
  this.Controls.Add((Control) this.label21);
  this.Controls.Add((Control) this.btn_Clear);
  this.Controls.Add((Control) this.new_pings_4);
  this.Controls.Add((Control) this.new_pings_3);
  this.Controls.Add((Control) this.new_pings_2);
  this.Controls.Add((Control) this.new_pulses_4);
  this.Controls.Add((Control) this.new_pulses_3);
  this.Controls.Add((Control) this.new_pulses_2);
  this.Controls.Add((Control) this.new_s_filt);
  this.Controls.Add((Control) this.new_d_filt);
  this.Controls.Add((Control) this.new_t_off);
  this.Controls.Add((Control) this.new_d_off);
  this.Controls.Add((Control) this.new_range);
  this.Controls.Add((Control) this.label1);
  this.Controls.Add((Control) this.label2);
  this.Controls.Add((Control) this.label3);
  this.Controls.Add((Control) this.label16);
  this.Controls.Add((Control) this.label17);
  this.Controls.Add((Control) this.label18);
  this.Controls.Add((Control) this.label19);
  this.Controls.Add((Control) this.label20);
  this.Controls.Add((Control) this.box_s_filt);
  this.Controls.Add((Control) this.box_d_filt);
  this.Controls.Add((Control) this.box_pulse);
  this.Controls.Add((Control) this.box_ping);
  this.Controls.Add((Control) this.box_range);
  this.Controls.Add((Control) this.box_t_off);
  this.Controls.Add((Control) this.box_d_off);
  this.Controls.Add((Control) this.box_sv);
  this.Controls.Add((Control) this.box_mode);
  this.Controls.Add((Control) this.label15);
  this.Controls.Add((Control) this.label14);
  this.Controls.Add((Control) this.label13);
  this.Controls.Add((Control) this.label12);
  this.Controls.Add((Control) this.label11);
  this.Controls.Add((Control) this.label10);
  this.Controls.Add((Control) this.label9);
  this.Controls.Add((Control) this.label8);
  this.Controls.Add((Control) this.label7);
  this.Controls.Add((Control) this.label6);
  this.Controls.Add((Control) this.new_mode);
  this.Controls.Add((Control) this.btn_Query);
  this.Controls.Add((Control) this.label5);
  this.Controls.Add((Control) this.label4);
  this.Controls.Add((Control) this.btn_pause);
  this.Controls.Add((Control) this.new_sv);
  this.Controls.Add((Control) this.new_pulses_1);
  this.Controls.Add((Control) this.new_pings_1);
  this.Controls.Add((Control) this.btn_connect);
  this.Controls.Add((Control) this.combo_baud);
  this.Controls.Add((Control) this.combo_coms);
  this.Controls.Add((Control) this.Term_box);
  this.Controls.Add((Control) this.btn_set);
  this.Icon = Icon.ExtractAssociatedIcon("sb.ico");
  this.Name = nameof (TermWindow);
  this.Text = nameof (TermWindow);
  this.new_pings_1.EndInit();
  this.new_pulses_1.EndInit();
  this.new_sv.EndInit();
  this.new_d_off.EndInit();
  this.new_t_off.EndInit();
  this.new_s_filt.EndInit();
  this.new_d_filt.EndInit();
  this.new_pulses_2.EndInit();
  this.new_pulses_4.EndInit();
  this.new_pulses_3.EndInit();
  this.new_pings_2.EndInit();
  this.new_pings_4.EndInit();
  this.new_pings_3.EndInit();
  this.statusStrip1.ResumeLayout(false);
  this.statusStrip1.PerformLayout();
  this.ResumeLayout(false);
  this.PerformLayout();
}

private void findPorts()
{
  this.combo_coms.Items.AddRange((object[]) SerialPort.GetPortNames());
}

private void getSettings()
{
  this.combo_coms.Text = TermWindow.configFile.AppSettings.Settings["COM_PORT"].Value;
  this.combo_baud.Text = TermWindow.configFile.AppSettings.Settings["BAUD_RATE"].Value;
}

private void setSettings()
{
  try
  {
    TermWindow.configFile.AppSettings.Settings["COM_PORT"].Value = this.combo_coms.Text;
    TermWindow.configFile.AppSettings.Settings["BAUD_RATE"].Value = this.combo_baud.Text;
    TermWindow.configFile.Save(ConfigurationSaveMode.Modified);
    ConfigurationManager.RefreshSection(TermWindow.configFile.AppSettings.SectionInformation.Name);
  }
  catch (ConfigurationErrorsException ex)
  {
    this.Status_box.Text = "Error writing app settings" + ex.Message.ToString();
  }
}

private void Btn_connect_Click(object sender, EventArgs e)
{
  this.Status_box.Text = string.Empty;
  if (!(this.combo_coms.Text == string.Empty))
  {
    if (!(this.combo_baud.Text == string.Empty))
    {
      try
      {
        if (!this.serialPort1.IsOpen)
        {
          this.serialPort1.PortName = this.combo_coms.Text;
          this.serialPort1.BaudRate = int.Parse(this.combo_baud.Text);
          this.serialPort1.Open();
          this.indicator.Value = 100;
          this.btn_connect.Text = "Disconnect";
          return;
        }
        if (!this.serialPort1.IsOpen)
          return;
        this.serialPort1.DiscardInBuffer();
        this.serialPort1.DiscardOutBuffer();
        this.serialPort1.Close();
        this.indicator.Value = 0;
        this.btn_connect.Text = "Connect";
        return;
      }
      catch (UnauthorizedAccessException ex)
      {
        this.Status_box.Text = "Unable to open COM Port";
        return;
      }
    }
  }
  this.Status_box.Text = "Please Select Port Settings";
}

private unsafe void Btn_set_Click(object sender, EventArgs e)
{
  // ISSUE: untyped stack allocation
  int num1 = (int) __untypedstackalloc(\u003CModule\u003E.__CxxQueryExceptionSize());
  try
  {
    this.DataB.mode = this.new_mode.Text;
    this.DataB.range = this.new_range.SelectedIndex.ToString();
    this.DataB.range_s = this.new_range.Text;
    this.DataB.sostw = this.new_sv.Value.ToString();
    this.DataB.pings[0] = this.new_pings_1.Value.ToString();
    this.DataB.pings[1] = this.new_pings_2.Value.ToString();
    this.DataB.pings[2] = this.new_pings_3.Value.ToString();
    this.DataB.pings[3] = this.new_pings_4.Value.ToString();
    this.DataB.pulses[0] = this.new_pulses_1.Value.ToString();
    this.DataB.pulses[1] = this.new_pulses_2.Value.ToString();
    this.DataB.pulses[2] = this.new_pulses_3.Value.ToString();
    this.DataB.pulses[3] = this.new_pulses_4.Value.ToString();
    this.DataB.depth_off = this.new_d_off.Value.ToString();
    this.DataB.temp_off = this.new_t_off.Value.ToString();
    this.DataB.depth_filt = this.new_d_filt.Value.ToString();
    this.DataB.sample_filt = this.new_s_filt.Value.ToString();
  }
  catch (Exception ex1) when (
  {
    // ISSUE: unable to correctly present filter
    uint exceptionCode = (uint) Marshal.GetExceptionCode();
    if (\u003CModule\u003E.__CxxExceptionFilter((void*) Marshal.GetExceptionPointers(), (void*) 0, 0, (void*) 0) != 0)
    {
      SuccessfulFiltering;
    }
    else
      throw;
  }
  )
  {
    uint num2 = 0;
    \u003CModule\u003E.__CxxRegisterExceptionObject((void*) Marshal.GetExceptionPointers(), (void*) num1);
    try
    {
      try
      {
      }
      catch (Exception ex2) when (
      {
        // ISSUE: unable to correctly present filter
        num2 = (uint) \u003CModule\u003E.__CxxDetectRethrow((void*) Marshal.GetExceptionPointers());
        if (num2 != 0U)
        {
          SuccessfulFiltering;
        }
        else
          throw;
      }
      )
      {
      }
      goto label_10;
      if (num2 != 0U)
        throw;
    }
    finally
    {
      \u003CModule\u003E.__CxxUnregisterExceptionObject((void*) num1, (int) num2);
    }
  }

label_10:
if (this.serialPort1.IsOpen)
{
if (!this.flags.is_paused)
{
TermWindow termWindow = this;
termWindow.Invoke((Delegate) new EventHandler(termWindow.Btn_pause_Click));
}
this.serialPort1.WriteLine(TermWindow.Set_str[0] + “,” + this.DataB.mode + “\r\n”);
this.serialPort1.WriteLine(TermWindow.Set_str[1] + “,” + this.DataB.range + “\r\n”);
this.serialPort1.WriteLine(TermWindow.Set_str[2] + “,” + this.DataB.sostw + “\r\n”);
this.serialPort1.WriteLine(TermWindow.Set_str[3] + “,” + string.Join(“,”, this.DataB.pings) + “\r\n”);
this.serialPort1.WriteLine(TermWindow.Set_str[4] + “,” + string.Join(“,”, this.DataB.pulses) + “\r\n”);
this.serialPort1.WriteLine(TermWindow.Set_str[5] + “,” + this.DataB.depth_off + “\r\n”);
this.serialPort1.WriteLine(TermWindow.Set_str[6] + “,” + this.DataB.temp_off + “\r\n”);
this.serialPort1.WriteLine(TermWindow.Set_str[7] + “,” + this.DataB.depth_filt + “\r\n”);
this.serialPort1.WriteLine(TermWindow.Set_str[8] + “,” + this.DataB.sample_filt + “\r\n”);
this.serialPort1.WriteLine(“$PAMTC,EN,S\r\n”);
TermWindow termWindow1 = this;
termWindow1.Invoke((Delegate) new EventHandler(termWindow1.Btn_Query_Click));
}
else
this.Status_box.Text = “Please connect to device”;
}

private void Btn_pause_Click(object sender, EventArgs e)
{
  if (!this.serialPort1.IsOpen)
    return;
  TermWindow.control flags = this.flags;
  int num = !flags.is_paused ? 1 : 0;
  flags.is_paused = num != 0;
  switch (this.flags.is_paused)
  {
    case false:
      this.btn_pause.Text = "Pause";
      this.serialPort1.WriteLine("$PAMTX,1\r\n");
      break;
    case true:
      this.btn_pause.Text = "Resume";
      this.serialPort1.WriteLine("$PAMTX,0\r\n");
      break;
  }
}

private void Btn_Query_Click(object sender, EventArgs e)
{
  this.flags.query_start = true;
  this.flags.query_done = false;
  this.flags.enable_update = false;
  if (this.serialPort1.IsOpen)
  {
    if (!this.flags.is_paused)
    {
      TermWindow termWindow = this;
      termWindow.Invoke((Delegate) new EventHandler(termWindow.Btn_pause_Click));
    }
    if (this.count >= TermWindow.Query_str.Length)
      this.count = 0;
    TermWindow termWindow1 = this;
    termWindow1.Invoke((Delegate) new EventHandler(termWindow1.Send_Query));
  }
  else
    this.Status_box.Text = "Please connect to device";
}

private void Send_Query(object sender, EventArgs e)
{
  int length = TermWindow.Query_str.Length;
  int count = this.count;
  if (count >= length)
    return;
  TermWindow.control flags = this.flags;
  if (flags.is_parsing || !flags.query_start)
    return;
  this.serialPort1.WriteLine(TermWindow.Query_str[count]);
  ++this.count;
}

private void ParseData(object sender, EventArgs e)
{
  this.flags.is_parsing = true;
  if (this.RX_com.Contains("INTERVAL*"))
    this.DataB.mode = "INTERVAL";
  else if (this.RX_com.Contains("PING*"))
    this.DataB.mode = "PING";
  if (this.RX_com.Contains("RANGEDEFAULT"))
  {
    this.DataB.range = this.RX_com.Split(',', ' ', '*', '(')[3];
    switch (int.Parse(this.DataB.range))
    {
      case 0:
        this.DataB.range_s = "SHORT";
        break;
      case 1:
        this.DataB.range_s = "MEDIUM";
        break;
      case 2:
        this.DataB.range_s = "LONG";
        break;
      case 3:
        this.DataB.range_s = "VERY LONG";
        break;
      case 4:
        this.DataB.range_s = "AUTO";
        break;
    }
  }
  if (this.RX_com.Contains("SOSTW"))
    this.DataB.sostw = this.RX_com.Split(',', ' ', '*', '(')[3].Remove(4);
  if (this.RX_com.Contains("PINGSPS"))
  {
    string[] strArray = this.RX_com.Split(',', ' ', '*', '(');
    this.DataB.pings[0] = strArray[3];
    this.DataB.pings[1] = strArray[4];
    this.DataB.pings[2] = strArray[5];
    this.DataB.pings[3] = strArray[6];
  }
  if (this.RX_com.Contains("PULSESPP"))
  {
    string[] strArray = this.RX_com.Split(',', ' ', '*', '(');
    this.DataB.pulses[0] = strArray[3];
    this.DataB.pulses[1] = strArray[4];
    this.DataB.pulses[2] = strArray[5];
    this.DataB.pulses[3] = strArray[6];
  }
  if (this.RX_com.Contains("DOFFSET"))
    this.DataB.depth_off = this.RX_com.Split(',', ' ', '*', '(')[3];
  if (this.RX_com.Contains("TOFFSET"))
    this.DataB.temp_off = this.RX_com.Split(',', ' ', '*', '(')[3];
  if (this.RX_com.Contains("DFILTER"))
    this.DataB.depth_filt = this.RX_com.Split(',', ' ', '*', '(')[3];
  if (this.RX_com.Contains("SFILTER"))
  {
    this.DataB.sample_filt = this.RX_com.Split(',', ' ', '*', '(')[3];
    this.flags.query_done = true;
  }
  if (this.RX_com.Contains("SDDBT"))
  {
    string[] strArray = this.RX_com.Split(',', ' ', '*', '(');
    this.DataB.depth = !(strArray[3] == "") ? strArray[3] : "NA";
    this.box_depth.Text = this.DataB.depth;
  }
  this.flags.is_parsing = false;
  if (!this.flags.query_done)
  {
    TermWindow termWindow = this;
    termWindow.Invoke((Delegate) new EventHandler(termWindow.Send_Query));
  }
  if (!this.flags.query_done)
    return;
  this.box_mode.Text = this.DataB.mode;
  this.box_range.Text = this.DataB.range_s;
  this.box_sv.Text = this.DataB.sostw;
  this.box_ping.Text = string.Join(",", this.DataB.pings);
  this.box_pulse.Text = string.Join(",", this.DataB.pulses);
  this.box_d_off.Text = this.DataB.depth_off;
  this.box_t_off.Text = this.DataB.temp_off;
  this.box_d_filt.Text = this.DataB.depth_filt;
  this.box_s_filt.Text = this.DataB.sample_filt;
  this.new_mode.Text = this.DataB.mode;
  this.new_range.SelectedIndex = (int) short.Parse(this.DataB.range);
  this.new_sv.Value = Decimal.Parse(this.DataB.sostw);
  this.new_pings_1.Value = Decimal.Parse(this.DataB.pings[0]);
  this.new_pings_2.Value = Decimal.Parse(this.DataB.pings[1]);
  this.new_pings_3.Value = Decimal.Parse(this.DataB.pings[2]);
  this.new_pings_4.Value = Decimal.Parse(this.DataB.pings[3]);
  this.new_pulses_1.Value = Decimal.Parse(this.DataB.pulses[0]);
  this.new_pulses_2.Value = Decimal.Parse(this.DataB.pulses[1]);
  this.new_pulses_3.Value = Decimal.Parse(this.DataB.pulses[2]);
  this.new_pulses_4.Value = Decimal.Parse(this.DataB.pulses[3]);
  this.new_d_off.Value = Decimal.Parse(this.DataB.depth_off);
  this.new_t_off.Value = Decimal.Parse(this.DataB.temp_off);
  this.new_d_filt.Value = Decimal.Parse(this.DataB.depth_filt);
  this.new_s_filt.Value = Decimal.Parse(this.DataB.sample_filt);
  this.flags.enable_update = true;
}

private void Updade(object sender, EventArgs e)
{
  if (!this.flags.enable_update)
    return;
  this.DataB.mode = this.new_mode.Text;
  this.DataB.range = this.new_range.SelectedIndex.ToString();
  this.DataB.range_s = this.new_range.Text;
  this.DataB.sostw = this.new_sv.Value.ToString();
  this.DataB.pings[0] = this.new_pings_1.Value.ToString();
  this.DataB.pings[1] = this.new_pings_2.Value.ToString();
  this.DataB.pings[2] = this.new_pings_3.Value.ToString();
  this.DataB.pings[3] = this.new_pings_4.Value.ToString();
  this.DataB.pulses[0] = this.new_pulses_1.Value.ToString();
  this.DataB.pulses[1] = this.new_pulses_2.Value.ToString();
  this.DataB.pulses[2] = this.new_pulses_3.Value.ToString();
  this.DataB.pulses[3] = this.new_pulses_4.Value.ToString();
  this.DataB.depth_off = this.new_d_off.Value.ToString();
  this.DataB.temp_off = this.new_t_off.Value.ToString();
  this.DataB.depth_filt = this.new_d_filt.Value.ToString();
  this.DataB.sample_filt = this.new_s_filt.Value.ToString();
}

private unsafe void SerialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
  // ISSUE: untyped stack allocation
  int num1 = (int) __untypedstackalloc(\u003CModule\u003E.__CxxQueryExceptionSize());
  try
  {
    TermWindow termWindow = this;
    termWindow.RX_com = termWindow.serialPort1.ReadLine();
  }
  catch (Exception ex1) when (
  {
    // ISSUE: unable to correctly present filter
    uint exceptionCode = (uint) Marshal.GetExceptionCode();
    if (\u003CModule\u003E.__CxxExceptionFilter((void*) Marshal.GetExceptionPointers(), (void*) 0, 0, (void*) 0) != 0)
    {
      SuccessfulFiltering;
    }
    else
      throw;
  }
  )
  {
    uint num2 = 0;
    \u003CModule\u003E.__CxxRegisterExceptionObject((void*) Marshal.GetExceptionPointers(), (void*) num1);
    try
    {
      try
      {
      }
      catch (Exception ex2) when (
      {
        // ISSUE: unable to correctly present filter
        num2 = (uint) \u003CModule\u003E.__CxxDetectRethrow((void*) Marshal.GetExceptionPointers());
        if (num2 != 0U)
        {
          SuccessfulFiltering;
        }
        else
          throw;
      }
      )
      {
      }
      goto label_10;
      if (num2 != 0U)
        throw;
    }
    finally
    {
      \u003CModule\u003E.__CxxUnregisterExceptionObject((void*) num1, (int) num2);
    }
  }

label_10:
TermWindow termWindow1 = this;
termWindow1.Invoke((Delegate) new EventHandler(termWindow1.ParseData));
TermWindow termWindow2 = this;
termWindow2.Invoke((Delegate) new EventHandler(termWindow2.ShowData));
}

private void ShowData(object sender, EventArgs e)
{
  this.Term_box.Text += this.RX_com + "\n";
  this.Term_box.SelectionStart = this.Term_box.Text.Length;
  this.Term_box.ScrollToCaret();
}

private void Btn_Clear_Click(object sender, EventArgs e) => this.Term_box.Text = "";

private void Btn_reset_Click(object sender, EventArgs e)
{
  if (!this.serialPort1.IsOpen)
    return;
  this.serialPort1.WriteLine("$PAMTC,RESET\r\n");
}

private void ToolStripStatusLabel1_Click(object sender, EventArgs e)
{
}

[HandleProcessCorruptedStateExceptions]
protected override void Dispose([MarshalAs(UnmanagedType.U1)] bool A_0)
{
  if (A_0)
  {
    try
    {
      this.\u007ETermWindow();
    }
    finally
    {
      base.Dispose(true);
    }
  }
  else
    base.Dispose(false);
}

static TermWindow()
{
  string str1 = "$PAMTC,OPTION,Q,OUTPUTMC\r\n";
  TermWindow.Query_str[0] = str1;
  string str2 = "$PAMTC,OPTION,Q,RANGEDEFAULT\r\n";
  TermWindow.Query_str[1] = str2;
  string str3 = "$PAMTC,OPTION,Q,SOSTW\r\n";
  TermWindow.Query_str[2] = str3;
  string str4 = "$PAMTC,OPTION,Q,PINGSPS\r\n";
  TermWindow.Query_str[3] = str4;
  string str5 = "$PAMTC,OPTION,Q,PULSESPP\r\n";
  TermWindow.Query_str[4] = str5;
  string str6 = "$PAMTC,OPTION,Q,DOFFSET\r\n";
  TermWindow.Query_str[5] = str6;
  string str7 = "$PAMTC,OPTION,Q,TOFFSET\r\n";
  TermWindow.Query_str[6] = str7;
  string str8 = "$PAMTC,OPTION,Q,DFILTER\r\n";
  TermWindow.Query_str[7] = str8;
  string str9 = "$PAMTC,OPTION,Q,SFILTER\r\n";
  TermWindow.Query_str[8] = str9;
  TermWindow.Set_str = new string[9];
  string str10 = "$PAMTC,OPTION,SET,OUTPUTMC";
  TermWindow.Set_str[0] = str10;
  string str11 = "$PAMTC,OPTION,SET,RANGEDEFAULT";
  TermWindow.Set_str[1] = str11;
  string str12 = "$PAMTC,OPTION,SET,SOSTW";
  TermWindow.Set_str[2] = str12;
  string str13 = "$PAMTC,OPTION,SET,PINGSPS";
  TermWindow.Set_str[3] = str13;
  string str14 = "$PAMTC,OPTION,SET,PULSESPP";
  TermWindow.Set_str[4] = str14;
  string str15 = "$PAMTC,OPTION,SET,DOFFSET";
  TermWindow.Set_str[5] = str15;
  string str16 = "$PAMTC,OPTION,SET,TOFFSET";
  TermWindow.Set_str[6] = str16;
  string str17 = "$PAMTC,OPTION,SET,DFILTER";
  TermWindow.Set_str[7] = str17;
  string str18 = "$PAMTC,OPTION,SET,SFILTER";
  TermWindow.Set_str[8] = str18;
}

public class database
{
  public string depth;
  public string mode;
  public string range_s;
  public string range;
  public string sostw;
  public string[] pings = new string[4];
  public string[] pulses = new string[4];
  public string depth_off;
  public string temp_off;
  public string depth_filt;
  public string sample_filt;
}

public class control
{
  public bool is_parsing = false;
  public bool parse_done = false;
  public bool query_done = false;
  public bool query_start = false;
  public bool enable_update = false;
  public bool is_paused = false;
}

}
}

I had similar connectivity issues. I wired the SS510 as RS232 and could get the NMEA strings over serial. However, setting/configuring the transducer would not work. I tried various takes on the wiring using a DTECH 422/232 converter. I ended up with a working solution with wiring the SS510 wires a shown in the diagram below. In this configuration, the ground is shared with the transducer 12v ground. I am able to send commands via a terminal (I used Hercules.) to modify the baud rate and the ping rate, etc. I hope this helps.

I tried what you mentioned earlier, and it worked without any issues. I used the DTECH with the connection you mentioned, and to send the messages, I am using a software called YAT. It is worth noting that the message does not require a checksum.

Thank you very much!

That’s the same wiring I use on my device, just note wire pin 5 goes BLACK / WHITE