<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to 9: Add Custom Port Name String as Command Line Argument</title><link>https://sourceforge.net/p/serial-port-monitor/tickets/9/</link><description>Recent changes to 9: Add Custom Port Name String as Command Line Argument</description><atom:link href="https://sourceforge.net/p/serial-port-monitor/tickets/9/feed.rss" rel="self"/><language>en</language><lastBuildDate>Wed, 14 Aug 2024 03:39:44 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/serial-port-monitor/tickets/9/feed.rss" rel="self" type="application/rss+xml"/><item><title>#9 Add Custom Port Name String as Command Line Argument</title><link>https://sourceforge.net/p/serial-port-monitor/tickets/9/?limit=25#0f18</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;I tested below and is working well :)  When I launch my kitty client from Serial Port Notifier, the window title is renamed with the COM# and Custom Port Name defined in Serial Port Notifier.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Code Changes:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Launcher.vb: Public Class Launcher&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;  Public Sub Launch(serialPort As String, Optional customPortName As String = "")
    Try
      Process.Start(Executable, GetCommandLine(serialPort, customPortName))
    Catch ex As Exception
      MessageBox.Show(String.Format("Failed to start launcher: {0}", ex.Message), "Launcher", MessageBoxButtons.OK, MessageBoxIcon.Error)
    End Try
  End Sub

  Public Function GetCommandLine(serialPort As String, customPortName As String) As String
    Return CommandLine.Replace("%1", serialPort) &lt;span class="ge"&gt;_&lt;/span&gt;
&lt;span class="ge"&gt;                      .Replace("%2", GetPortNumber(serialPort).ToString()) _&lt;/span&gt;
                      .Replace("%3", If(String.IsNullOrEmpty(customPortName), serialPort, customPortName))
  End Function

  Public Overrides Function ToString() As String
    Dim CommandLine As String = GetCommandLine("COM15", "")
    Return String.Format("{0} ({1}{2})", Label, Path.GetFileName(Executable), IIf(CommandLine = "", "", " " + CommandLine))
  End Function
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;LauncherDialog.Designer.vb&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;    Me.Label8.Text = "Command Line Options:" &amp;amp; vbCrLf &amp;amp;
                         "%1 - COM port name (e.g. COM15)" &amp;amp; vbCrLf &amp;amp;
                         "%2 - COM port number (e.g. 15)" &amp;amp; vbCrLf &amp;amp;
                         "%3 - COM port renamed label (e.g. USB TTL)"
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;LauncherDialog.vb:     UpdatePreview()&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;        lblPreview.Text = String.Format("Preview: {0} {1}", Path.GetFileName(launcher.Executable), launcher.GetCommandLine("COM15", "COM15"))
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Main.vb: BuildMenu()&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="k"&gt;If&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;SerialPorts&lt;/span&gt;.&lt;span class="nv"&gt;Count&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;Then&lt;/span&gt;
&lt;span class="w"&gt;          &lt;/span&gt;&lt;span class="k"&gt;For&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;i&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;As&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Integer&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;SerialPorts&lt;/span&gt;.&lt;span class="nv"&gt;Count&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;To&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Step&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;
&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="nv"&gt;Dim&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;portName&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;As&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;String&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;SerialPorts&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;i&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;
&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="nv"&gt;Dim&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;customPortName&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;As&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;String&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;If&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;CustomPortNames&lt;/span&gt;.&lt;span class="nv"&gt;ContainsKey&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;portName&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;,&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;CustomPortNames&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;portName&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;,&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;portName&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;
&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="nv"&gt;Dim&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;port&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;New&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;ToolStripMenuItem&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;GetCustomPortNames&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;portName&lt;/span&gt;&lt;span class="ss"&gt;))&lt;/span&gt;
&lt;span class="w"&gt;            &lt;/span&gt;.&lt;span class="nv"&gt;Add&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;port&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;
&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="err"&gt;' Now add the launchers&lt;/span&gt;
&lt;span class="err"&gt;            If ProgramLaunchers.Count &amp;gt; 0 Then&lt;/span&gt;
&lt;span class="err"&gt;              For Each l In ProgramLaunchers&lt;/span&gt;
&lt;span class="err"&gt;                port.DropDownItems.Add(l.Label, Nothing, New EventHandler(Sub()&lt;/span&gt;
&lt;span class="err"&gt;                                                                            l.Launch(portName, customPortName)&lt;/span&gt;
&lt;span class="err"&gt;                                                                          End Sub))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dustin Westaby</dc:creator><pubDate>Wed, 14 Aug 2024 03:39:44 -0000</pubDate><guid>https://sourceforge.net233dc33c7c344504b07f812d9da0705ede8cb8bd</guid></item><item><title>Add Custom Port Name String as Command Line Argument</title><link>https://sourceforge.net/p/serial-port-monitor/tickets/9/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;I use KiTTY as an alternative to PuTTY, and I find it extremely helpful, especially when connecting to multiple devices simultaneously via serial connections. One of the features I greatly appreciate is the ability to rename the client's window title bar with the COM port number, which makes it easier to manage multiple open sessions.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Feature Request:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I would like to request the addition of a Custom Port Name string as a command line argument. This would take the existing Custom Port Name string and make it available to the command line when launching an application.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Use Case:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This feature would be particularly useful in scenarios where multiple serial connections are in use. For example, if a user has multiple port adapters connected, each could be identified with a more descriptive name (e.g., "Device A - USB TTL" instead of just "COM15"). This would make it easier to manage and identify the connections in a client interface.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mockup Example:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I have attached a mockup image to illustrate how this feature could be implemented in the launcher settings.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Command Line Argument Proposal:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;%1 - COM port name (e.g., COM15)&lt;br/&gt;
%2 - COM port number (e.g., 15)&lt;br/&gt;
%3 - COM port renamed label (e.g., USB TTL)&lt;/p&gt;
&lt;p&gt;This additional command line argument %3 would allow the custom label to be passed and displayed in the window's title bar.&lt;/p&gt;
&lt;p&gt;Thank you for considering this feature request.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dustin Westaby</dc:creator><pubDate>Tue, 13 Aug 2024 18:02:28 -0000</pubDate><guid>https://sourceforge.netc7918cef4f05e3d1ce2def5cf05391e04701545d</guid></item></channel></rss>