mirror of
https://github.com/fasteddy516/SimplySerial.git
synced 2024-11-24 10:04:35 +00:00
Merge pull request #25 from fasteddy516/unicode-support
Unicode support
This commit is contained in:
commit
0e1b4b6e8a
@ -1,8 +1,9 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||||
<DOCUMENT Type="Advanced Installer" CreateVersion="16.0" version="18.8.1" Modules="simple" RootPath="." Language="en" Id="{9BAEE6C8-7726-40BA-ADC1-9001E7BBCAF9}">
|
<DOCUMENT Type="Advanced Installer" CreateVersion="16.0" version="20.3.2" Modules="simple" RootPath="." Language="en" Id="{9BAEE6C8-7726-40BA-ADC1-9001E7BBCAF9}">
|
||||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiPropsComponent">
|
<COMPONENT cid="caphyon.advinst.msicomp.MsiPropsComponent">
|
||||||
<ROW Property="AI_BITMAP_DISPLAY_MODE" Value="0"/>
|
<ROW Property="AI_BITMAP_DISPLAY_MODE" Value="0"/>
|
||||||
<ROW Property="AI_CURRENT_YEAR" Value="2022" ValueLocId="-"/>
|
<ROW Property="AI_CURRENT_YEAR" Value="2023" ValueLocId="-"/>
|
||||||
|
<ROW Property="AI_PACKAGING_TOOL" Value="Advanced Installer 20.3.2 build 850835f9" ValueLocId="-"/>
|
||||||
<ROW Property="AI_PREDEF_LCONDS_PROPS" Value="AI_DETECTED_DOTNET_VERSION"/>
|
<ROW Property="AI_PREDEF_LCONDS_PROPS" Value="AI_DETECTED_DOTNET_VERSION"/>
|
||||||
<ROW Property="AI_PROPPATH_DIR_PERBUILD_Newtonsoft.Json.dll" Value="..\SimplySerial\packages\Newtonsoft.Json.13.0.1\lib\net45"/>
|
<ROW Property="AI_PROPPATH_DIR_PERBUILD_Newtonsoft.Json.dll" Value="..\SimplySerial\packages\Newtonsoft.Json.13.0.1\lib\net45"/>
|
||||||
<ROW Property="AI_PROPPATH_DIR_PERBUILD_boards.json_1" Value="..\SimplySerial\bin\Release"/>
|
<ROW Property="AI_PROPPATH_DIR_PERBUILD_boards.json_1" Value="..\SimplySerial\bin\Release"/>
|
||||||
@ -21,10 +22,10 @@
|
|||||||
<ROW Property="ARPURLINFOABOUT" Value="https://github.com/fasteddy516/SimplySerial"/>
|
<ROW Property="ARPURLINFOABOUT" Value="https://github.com/fasteddy516/SimplySerial"/>
|
||||||
<ROW Property="ARPURLUPDATEINFO" Value="https://github.com/fasteddy516/SimplySerial/releases"/>
|
<ROW Property="ARPURLUPDATEINFO" Value="https://github.com/fasteddy516/SimplySerial/releases"/>
|
||||||
<ROW Property="Manufacturer" Value="fasteddy516"/>
|
<ROW Property="Manufacturer" Value="fasteddy516"/>
|
||||||
<ROW Property="ProductCode" Value="1033:{9E648CE1-01C5-4E90-BFC7-05E709BB0F46} " Type="16"/>
|
<ROW Property="ProductCode" Value="1033:{0D848E26-A1D0-4E43-8332-8004B7867CC3} " Type="16"/>
|
||||||
<ROW Property="ProductLanguage" Value="1033"/>
|
<ROW Property="ProductLanguage" Value="1033"/>
|
||||||
<ROW Property="ProductName" Value="SimplySerial"/>
|
<ROW Property="ProductName" Value="SimplySerial"/>
|
||||||
<ROW Property="ProductVersion" Value="0.7.2" Type="32"/>
|
<ROW Property="ProductVersion" Value="0.7.3"/>
|
||||||
<ROW Property="SecureCustomProperties" Value="OLDPRODUCTS;AI_NEWERPRODUCTFOUND"/>
|
<ROW Property="SecureCustomProperties" Value="OLDPRODUCTS;AI_NEWERPRODUCTFOUND"/>
|
||||||
<ROW Property="UpgradeCode" Value="{6A3965D3-95B6-4145-8B3C-6F55E2A16C31}"/>
|
<ROW Property="UpgradeCode" Value="{6A3965D3-95B6-4145-8B3C-6F55E2A16C31}"/>
|
||||||
<ROW Property="WindowsType9X" MultiBuildValue="DefaultBuild:Windows 9x/ME" ValueLocId="-"/>
|
<ROW Property="WindowsType9X" MultiBuildValue="DefaultBuild:Windows 9x/ME" ValueLocId="-"/>
|
||||||
@ -89,6 +90,7 @@
|
|||||||
<ROW Fragment="SequenceDialogs.aip" Path="<AI_THEMES>classic\fragments\SequenceDialogs.aip"/>
|
<ROW Fragment="SequenceDialogs.aip" Path="<AI_THEMES>classic\fragments\SequenceDialogs.aip"/>
|
||||||
<ROW Fragment="Sequences.aip" Path="<AI_FRAGS>Sequences.aip"/>
|
<ROW Fragment="Sequences.aip" Path="<AI_FRAGS>Sequences.aip"/>
|
||||||
<ROW Fragment="StaticUIStrings.aip" Path="<AI_FRAGS>StaticUIStrings.aip"/>
|
<ROW Fragment="StaticUIStrings.aip" Path="<AI_FRAGS>StaticUIStrings.aip"/>
|
||||||
|
<ROW Fragment="Themes.aip" Path="<AI_FRAGS>Themes.aip"/>
|
||||||
<ROW Fragment="UI.aip" Path="<AI_THEMES>classic\fragments\UI.aip"/>
|
<ROW Fragment="UI.aip" Path="<AI_THEMES>classic\fragments\UI.aip"/>
|
||||||
<ROW Fragment="Validation.aip" Path="<AI_FRAGS>Validation.aip"/>
|
<ROW Fragment="Validation.aip" Path="<AI_FRAGS>Validation.aip"/>
|
||||||
<ROW Fragment="VerifyRemoveDlg.aip" Path="<AI_THEMES>classic\fragments\VerifyRemoveDlg.aip"/>
|
<ROW Fragment="VerifyRemoveDlg.aip" Path="<AI_THEMES>classic\fragments\VerifyRemoveDlg.aip"/>
|
||||||
@ -144,6 +146,7 @@
|
|||||||
<ROW Action="AI_EnableDebugLog" Type="321" Source="aicustact.dll" Target="EnableDebugLog"/>
|
<ROW Action="AI_EnableDebugLog" Type="321" Source="aicustact.dll" Target="EnableDebugLog"/>
|
||||||
<ROW Action="AI_InstallModeCheck" Type="1" Source="aicustact.dll" Target="UpdateInstallMode" WithoutSeq="true"/>
|
<ROW Action="AI_InstallModeCheck" Type="1" Source="aicustact.dll" Target="UpdateInstallMode" WithoutSeq="true"/>
|
||||||
<ROW Action="AI_PREPARE_UPGRADE" Type="65" Source="aicustact.dll" Target="PrepareUpgrade"/>
|
<ROW Action="AI_PREPARE_UPGRADE" Type="65" Source="aicustact.dll" Target="PrepareUpgrade"/>
|
||||||
|
<ROW Action="AI_PRESERVE_INSTALL_TYPE" Type="65" Source="aicustact.dll" Target="PreserveInstallType"/>
|
||||||
<ROW Action="AI_RESTORE_LOCATION" Type="65" Source="aicustact.dll" Target="RestoreLocation"/>
|
<ROW Action="AI_RESTORE_LOCATION" Type="65" Source="aicustact.dll" Target="RestoreLocation"/>
|
||||||
<ROW Action="AI_ResolveKnownFolders" Type="1" Source="aicustact.dll" Target="AI_ResolveKnownFolders"/>
|
<ROW Action="AI_ResolveKnownFolders" Type="1" Source="aicustact.dll" Target="AI_ResolveKnownFolders"/>
|
||||||
<ROW Action="AI_SHOW_LOG" Type="65" Source="aicustact.dll" Target="LaunchLogFile" WithoutSeq="true"/>
|
<ROW Action="AI_SHOW_LOG" Type="65" Source="aicustact.dll" Target="LaunchLogFile" WithoutSeq="true"/>
|
||||||
@ -176,6 +179,7 @@
|
|||||||
<ROW Action="AI_DpiContentScale" Sequence="52"/>
|
<ROW Action="AI_DpiContentScale" Sequence="52"/>
|
||||||
<ROW Action="AI_EnableDebugLog" Sequence="51"/>
|
<ROW Action="AI_EnableDebugLog" Sequence="51"/>
|
||||||
<ROW Action="AI_DetectSoftware" Sequence="101"/>
|
<ROW Action="AI_DetectSoftware" Sequence="101"/>
|
||||||
|
<ROW Action="AI_PRESERVE_INSTALL_TYPE" Sequence="199"/>
|
||||||
</COMPONENT>
|
</COMPONENT>
|
||||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiLaunchConditionsComponent">
|
<COMPONENT cid="caphyon.advinst.msicomp.MsiLaunchConditionsComponent">
|
||||||
<ROW Condition="( Version9X OR ( NOT VersionNT64 ) OR ( VersionNT64 AND ((VersionNT64 <> 600) OR (MsiNTProductType <> 1)) AND ((VersionNT64 <> 600) OR (MsiNTProductType = 1)) AND ((VersionNT64 <> 601) OR (MsiNTProductType = 1)) AND ((VersionNT64 <> 602) OR (MsiNTProductType = 1)) AND ((VersionNT64 <> 603) OR (MsiNTProductType = 1)) AND ((VersionNT64 <> 1000) OR (MsiNTProductType = 1)) ) )" Description="[ProductName] cannot be installed on the following Windows versions: [WindowsTypeNT64Display]." DescriptionLocId="AI.LaunchCondition.NoSpecificNT64" IsPredefined="true" Builds="DefaultBuild"/>
|
<ROW Condition="( Version9X OR ( NOT VersionNT64 ) OR ( VersionNT64 AND ((VersionNT64 <> 600) OR (MsiNTProductType <> 1)) AND ((VersionNT64 <> 600) OR (MsiNTProductType = 1)) AND ((VersionNT64 <> 601) OR (MsiNTProductType = 1)) AND ((VersionNT64 <> 602) OR (MsiNTProductType = 1)) AND ((VersionNT64 <> 603) OR (MsiNTProductType = 1)) AND ((VersionNT64 <> 1000) OR (MsiNTProductType = 1)) ) )" Description="[ProductName] cannot be installed on the following Windows versions: [WindowsTypeNT64Display]." DescriptionLocId="AI.LaunchCondition.NoSpecificNT64" IsPredefined="true" Builds="DefaultBuild"/>
|
||||||
@ -187,7 +191,10 @@
|
|||||||
<ROW Condition="VersionNT" Description="[ProductName] cannot be installed on [WindowsType9XDisplay]." DescriptionLocId="AI.LaunchCondition.No9X" IsPredefined="true" Builds="DefaultBuild"/>
|
<ROW Condition="VersionNT" Description="[ProductName] cannot be installed on [WindowsType9XDisplay]." DescriptionLocId="AI.LaunchCondition.No9X" IsPredefined="true" Builds="DefaultBuild"/>
|
||||||
</COMPONENT>
|
</COMPONENT>
|
||||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiRegsComponent">
|
<COMPONENT cid="caphyon.advinst.msicomp.MsiRegsComponent">
|
||||||
|
<ROW Registry="Manufacturer" Root="-1" Key="Software\[Manufacturer]" Name="\"/>
|
||||||
<ROW Registry="Path" Root="-1" Key="Software\[Manufacturer]\[ProductName]" Name="Path" Value="[APPDIR]" Component_="ProductInformation"/>
|
<ROW Registry="Path" Root="-1" Key="Software\[Manufacturer]\[ProductName]" Name="Path" Value="[APPDIR]" Component_="ProductInformation"/>
|
||||||
|
<ROW Registry="ProductName" Root="-1" Key="Software\[Manufacturer]\[ProductName]" Name="\"/>
|
||||||
|
<ROW Registry="Software" Root="-1" Key="Software" Name="\"/>
|
||||||
<ROW Registry="Version" Root="-1" Key="Software\[Manufacturer]\[ProductName]" Name="Version" Value="[ProductVersion]" Component_="ProductInformation"/>
|
<ROW Registry="Version" Root="-1" Key="Software\[Manufacturer]\[ProductName]" Name="Version" Value="[ProductVersion]" Component_="ProductInformation"/>
|
||||||
</COMPONENT>
|
</COMPONENT>
|
||||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiThemeComponent">
|
<COMPONENT cid="caphyon.advinst.msicomp.MsiThemeComponent">
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||||
<DOCUMENT Type="Advanced Installer" CreateVersion="16.0" version="18.8.1" Modules="simple" RootPath="." Language="en" Id="{813739C4-1EBF-4720-9196-4AC91588D7AC}">
|
<DOCUMENT Type="Advanced Installer" CreateVersion="16.0" version="20.3.2" Modules="simple" RootPath="." Language="en" Id="{813739C4-1EBF-4720-9196-4AC91588D7AC}">
|
||||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiPropsComponent">
|
<COMPONENT cid="caphyon.advinst.msicomp.MsiPropsComponent">
|
||||||
<ROW Property="AI_BITMAP_DISPLAY_MODE" Value="0"/>
|
<ROW Property="AI_BITMAP_DISPLAY_MODE" Value="0"/>
|
||||||
<ROW Property="AI_CURRENT_YEAR" Value="2022" ValueLocId="-"/>
|
<ROW Property="AI_CURRENT_YEAR" Value="2023" ValueLocId="-"/>
|
||||||
|
<ROW Property="AI_PACKAGING_TOOL" Value="Advanced Installer 20.3.2 build 850835f9" ValueLocId="-"/>
|
||||||
<ROW Property="AI_PREDEF_LCONDS_PROPS" Value="AI_DETECTED_DOTNET_VERSION"/>
|
<ROW Property="AI_PREDEF_LCONDS_PROPS" Value="AI_DETECTED_DOTNET_VERSION"/>
|
||||||
<ROW Property="AI_PROPPATH_DIR_PERBUILD_Newtonsoft.Json.dll" Value="..\SimplySerial\packages\Newtonsoft.Json.13.0.1\lib\net45"/>
|
<ROW Property="AI_PROPPATH_DIR_PERBUILD_Newtonsoft.Json.dll" Value="..\SimplySerial\packages\Newtonsoft.Json.13.0.1\lib\net45"/>
|
||||||
<ROW Property="AI_PROPPATH_DIR_PERBUILD_boards.json" Value="..\SimplySerial\bin\Release"/>
|
<ROW Property="AI_PROPPATH_DIR_PERBUILD_boards.json" Value="..\SimplySerial\bin\Release"/>
|
||||||
@ -21,10 +22,10 @@
|
|||||||
<ROW Property="ARPURLINFOABOUT" Value="https://github.com/fasteddy516/SimplySerial"/>
|
<ROW Property="ARPURLINFOABOUT" Value="https://github.com/fasteddy516/SimplySerial"/>
|
||||||
<ROW Property="ARPURLUPDATEINFO" Value="https://github.com/fasteddy516/SimplySerial/releases"/>
|
<ROW Property="ARPURLUPDATEINFO" Value="https://github.com/fasteddy516/SimplySerial/releases"/>
|
||||||
<ROW Property="Manufacturer" Value="fasteddy516"/>
|
<ROW Property="Manufacturer" Value="fasteddy516"/>
|
||||||
<ROW Property="ProductCode" Value="1033:{A7D68EA4-86D5-4918-9A4D-B5B7414184D4} " Type="16"/>
|
<ROW Property="ProductCode" Value="1033:{F6ED6598-FD70-489F-9805-64684160B29E} " Type="16"/>
|
||||||
<ROW Property="ProductLanguage" Value="1033"/>
|
<ROW Property="ProductLanguage" Value="1033"/>
|
||||||
<ROW Property="ProductName" Value="SimplySerial"/>
|
<ROW Property="ProductName" Value="SimplySerial"/>
|
||||||
<ROW Property="ProductVersion" Value="0.7.2" Type="32"/>
|
<ROW Property="ProductVersion" Value="0.7.3"/>
|
||||||
<ROW Property="REBOOT" MultiBuildValue="DefaultBuild:ReallySuppress"/>
|
<ROW Property="REBOOT" MultiBuildValue="DefaultBuild:ReallySuppress"/>
|
||||||
<ROW Property="SecureCustomProperties" Value="OLDPRODUCTS;AI_NEWERPRODUCTFOUND"/>
|
<ROW Property="SecureCustomProperties" Value="OLDPRODUCTS;AI_NEWERPRODUCTFOUND"/>
|
||||||
<ROW Property="UpgradeCode" Value="{64061592-EDD5-474E-B846-4CA070788BBE}"/>
|
<ROW Property="UpgradeCode" Value="{64061592-EDD5-474E-B846-4CA070788BBE}"/>
|
||||||
@ -90,6 +91,7 @@
|
|||||||
<ROW Fragment="SequenceDialogs.aip" Path="<AI_THEMES>classic\fragments\SequenceDialogs.aip"/>
|
<ROW Fragment="SequenceDialogs.aip" Path="<AI_THEMES>classic\fragments\SequenceDialogs.aip"/>
|
||||||
<ROW Fragment="Sequences.aip" Path="<AI_FRAGS>Sequences.aip"/>
|
<ROW Fragment="Sequences.aip" Path="<AI_FRAGS>Sequences.aip"/>
|
||||||
<ROW Fragment="StaticUIStrings.aip" Path="<AI_FRAGS>StaticUIStrings.aip"/>
|
<ROW Fragment="StaticUIStrings.aip" Path="<AI_FRAGS>StaticUIStrings.aip"/>
|
||||||
|
<ROW Fragment="Themes.aip" Path="<AI_FRAGS>Themes.aip"/>
|
||||||
<ROW Fragment="UI.aip" Path="<AI_THEMES>classic\fragments\UI.aip"/>
|
<ROW Fragment="UI.aip" Path="<AI_THEMES>classic\fragments\UI.aip"/>
|
||||||
<ROW Fragment="Validation.aip" Path="<AI_FRAGS>Validation.aip"/>
|
<ROW Fragment="Validation.aip" Path="<AI_FRAGS>Validation.aip"/>
|
||||||
<ROW Fragment="VerifyRemoveDlg.aip" Path="<AI_THEMES>classic\fragments\VerifyRemoveDlg.aip"/>
|
<ROW Fragment="VerifyRemoveDlg.aip" Path="<AI_THEMES>classic\fragments\VerifyRemoveDlg.aip"/>
|
||||||
@ -145,6 +147,7 @@
|
|||||||
<ROW Action="AI_EnableDebugLog" Type="321" Source="aicustact.dll" Target="EnableDebugLog"/>
|
<ROW Action="AI_EnableDebugLog" Type="321" Source="aicustact.dll" Target="EnableDebugLog"/>
|
||||||
<ROW Action="AI_InstallModeCheck" Type="1" Source="aicustact.dll" Target="UpdateInstallMode" WithoutSeq="true"/>
|
<ROW Action="AI_InstallModeCheck" Type="1" Source="aicustact.dll" Target="UpdateInstallMode" WithoutSeq="true"/>
|
||||||
<ROW Action="AI_PREPARE_UPGRADE" Type="65" Source="aicustact.dll" Target="PrepareUpgrade"/>
|
<ROW Action="AI_PREPARE_UPGRADE" Type="65" Source="aicustact.dll" Target="PrepareUpgrade"/>
|
||||||
|
<ROW Action="AI_PRESERVE_INSTALL_TYPE" Type="65" Source="aicustact.dll" Target="PreserveInstallType"/>
|
||||||
<ROW Action="AI_RESTORE_LOCATION" Type="65" Source="aicustact.dll" Target="RestoreLocation"/>
|
<ROW Action="AI_RESTORE_LOCATION" Type="65" Source="aicustact.dll" Target="RestoreLocation"/>
|
||||||
<ROW Action="AI_ResolveKnownFolders" Type="1" Source="aicustact.dll" Target="AI_ResolveKnownFolders"/>
|
<ROW Action="AI_ResolveKnownFolders" Type="1" Source="aicustact.dll" Target="AI_ResolveKnownFolders"/>
|
||||||
<ROW Action="AI_SHOW_LOG" Type="65" Source="aicustact.dll" Target="LaunchLogFile" WithoutSeq="true"/>
|
<ROW Action="AI_SHOW_LOG" Type="65" Source="aicustact.dll" Target="LaunchLogFile" WithoutSeq="true"/>
|
||||||
@ -177,6 +180,7 @@
|
|||||||
<ROW Action="AI_DpiContentScale" Sequence="52"/>
|
<ROW Action="AI_DpiContentScale" Sequence="52"/>
|
||||||
<ROW Action="AI_EnableDebugLog" Sequence="51"/>
|
<ROW Action="AI_EnableDebugLog" Sequence="51"/>
|
||||||
<ROW Action="AI_DetectSoftware" Sequence="101"/>
|
<ROW Action="AI_DetectSoftware" Sequence="101"/>
|
||||||
|
<ROW Action="AI_PRESERVE_INSTALL_TYPE" Sequence="199"/>
|
||||||
</COMPONENT>
|
</COMPONENT>
|
||||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiLaunchConditionsComponent">
|
<COMPONENT cid="caphyon.advinst.msicomp.MsiLaunchConditionsComponent">
|
||||||
<ROW Condition="( Version9X OR ( NOT VersionNT64 ) OR ( VersionNT64 AND ((VersionNT64 <> 600) OR (MsiNTProductType <> 1)) AND ((VersionNT64 <> 600) OR (MsiNTProductType = 1)) AND ((VersionNT64 <> 601) OR (MsiNTProductType = 1)) AND ((VersionNT64 <> 602) OR (MsiNTProductType = 1)) AND ((VersionNT64 <> 603) OR (MsiNTProductType = 1)) AND ((VersionNT64 <> 1000) OR (MsiNTProductType = 1)) ) )" Description="[ProductName] cannot be installed on the following Windows versions: [WindowsTypeNT64Display]." DescriptionLocId="AI.LaunchCondition.NoSpecificNT64" IsPredefined="true" Builds="DefaultBuild"/>
|
<ROW Condition="( Version9X OR ( NOT VersionNT64 ) OR ( VersionNT64 AND ((VersionNT64 <> 600) OR (MsiNTProductType <> 1)) AND ((VersionNT64 <> 600) OR (MsiNTProductType = 1)) AND ((VersionNT64 <> 601) OR (MsiNTProductType = 1)) AND ((VersionNT64 <> 602) OR (MsiNTProductType = 1)) AND ((VersionNT64 <> 603) OR (MsiNTProductType = 1)) AND ((VersionNT64 <> 1000) OR (MsiNTProductType = 1)) ) )" Description="[ProductName] cannot be installed on the following Windows versions: [WindowsTypeNT64Display]." DescriptionLocId="AI.LaunchCondition.NoSpecificNT64" IsPredefined="true" Builds="DefaultBuild"/>
|
||||||
@ -188,7 +192,10 @@
|
|||||||
<ROW Condition="VersionNT" Description="[ProductName] cannot be installed on [WindowsType9XDisplay]." DescriptionLocId="AI.LaunchCondition.No9X" IsPredefined="true" Builds="DefaultBuild"/>
|
<ROW Condition="VersionNT" Description="[ProductName] cannot be installed on [WindowsType9XDisplay]." DescriptionLocId="AI.LaunchCondition.No9X" IsPredefined="true" Builds="DefaultBuild"/>
|
||||||
</COMPONENT>
|
</COMPONENT>
|
||||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiRegsComponent">
|
<COMPONENT cid="caphyon.advinst.msicomp.MsiRegsComponent">
|
||||||
|
<ROW Registry="Manufacturer" Root="-1" Key="Software\[Manufacturer]" Name="\"/>
|
||||||
<ROW Registry="Path" Root="-1" Key="Software\[Manufacturer]\[ProductName]" Name="Path" Value="[APPDIR]" Component_="ProductInformation"/>
|
<ROW Registry="Path" Root="-1" Key="Software\[Manufacturer]\[ProductName]" Name="Path" Value="[APPDIR]" Component_="ProductInformation"/>
|
||||||
|
<ROW Registry="ProductName" Root="-1" Key="Software\[Manufacturer]\[ProductName]" Name="\"/>
|
||||||
|
<ROW Registry="Software" Root="-1" Key="Software" Name="\"/>
|
||||||
<ROW Registry="Version" Root="-1" Key="Software\[Manufacturer]\[ProductName]" Name="Version" Value="[ProductVersion]" Component_="ProductInformation"/>
|
<ROW Registry="Version" Root="-1" Key="Software\[Manufacturer]\[ProductName]" Name="Version" Value="[ProductVersion]" Component_="ProductInformation"/>
|
||||||
</COMPONENT>
|
</COMPONENT>
|
||||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiThemeComponent">
|
<COMPONENT cid="caphyon.advinst.msicomp.MsiThemeComponent">
|
||||||
|
14
README.md
14
README.md
@ -66,11 +66,19 @@ If you have multiple COM ports, multiple CircuitPython devices connected, or nee
|
|||||||
|
|
||||||
`-a, --autoconnect` sets the desired auto-(re)connect behaviour (ex. `a:NONE`, `--autoconnect:ANY`)
|
`-a, --autoconnect` sets the desired auto-(re)connect behaviour (ex. `a:NONE`, `--autoconnect:ANY`)
|
||||||
|
|
||||||
`-l, --log` Logs all output to the specified file. (ex. `-l:ss.log`, `-log:"C:\Users\My Name\my log.txt"`)
|
`-l, --log` logs all output to the specified file (ex. `-l:ss.log`, `-log:"C:\Users\My Name\my log.txt"`)
|
||||||
|
|
||||||
`--logmode` Instructs SimplySerial to either `APPEND` to an existing log file, or `OVERWRITE` an existing log file. In either case, if the specified log file does not exist, it will be created. If neither option is specified, `OVERWRITE` is assumed. (ex. `--logmode:APPEND`)
|
`--logmode` instructs SimplySerial to either `APPEND` to an existing log file, or `OVERWRITE` an existing log file. In either case, if the specified log file does not exist, it will be created. If neither option is specified, `OVERWRITE` is assumed. (ex. `--logmode:APPEND`)
|
||||||
|
|
||||||
`-q, --quiet` prevents any application messages (connection banner, error messages, etc.) from printing out to the console.
|
`-q, --quiet` prevents any application messages (connection banner, error messages, etc.) from printing out to the console
|
||||||
|
|
||||||
|
`-f, --forcenewline` replaces carriage returns with linefeeds in received data
|
||||||
|
|
||||||
|
`-e, --encoding` sets the encoding to use when outputting to the terminal and log files. Defaults to `UTF8`, can also be set to `ASCII` (the default in SimplySerial versions prior to 0.8.0) or `RAW`. In `RAW` mode, all non-printable characters are displayed as `[xx]` where `xx` is the hexadecimal byte value of the character.
|
||||||
|
|
||||||
|
`-noc --noclear` don't clear the terminal screen on connection
|
||||||
|
|
||||||
|
`-nos --nostatus` block status/title updates generated by virtual terminal sequences (such as the CircuitPython status bar introduced in CP version 8.0.0)
|
||||||
|
|
||||||
If you wanted to connect to a device on COM17 at 115200 baud, you would use the command `ss -c:17 -b:115200`, or if you really enjoy typing `ss --com:17 --baud:115200`.
|
If you wanted to connect to a device on COM17 at 115200 baud, you would use the command `ss -c:17 -b:115200`, or if you really enjoy typing `ss --com:17 --baud:115200`.
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@ using System.Runtime.InteropServices;
|
|||||||
[assembly: AssemblyConfiguration("")]
|
[assembly: AssemblyConfiguration("")]
|
||||||
[assembly: AssemblyCompany("fasteddy516")]
|
[assembly: AssemblyCompany("fasteddy516")]
|
||||||
[assembly: AssemblyProduct("SimplySerial")]
|
[assembly: AssemblyProduct("SimplySerial")]
|
||||||
[assembly: AssemblyCopyright("Copyright © 2019 Edward Wright (fasteddy516)")]
|
[assembly: AssemblyCopyright("Copyright © 2023 Edward Wright (fasteddy516)")]
|
||||||
[assembly: AssemblyTrademark("")]
|
[assembly: AssemblyTrademark("")]
|
||||||
[assembly: AssemblyCulture("")]
|
[assembly: AssemblyCulture("")]
|
||||||
|
|
||||||
|
@ -1,20 +1,20 @@
|
|||||||
using System;
|
using Newtonsoft.Json;
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.IO.Ports;
|
using System.IO.Ports;
|
||||||
using System.Text;
|
using System.Linq;
|
||||||
using System.Threading;
|
|
||||||
using System.Management;
|
using System.Management;
|
||||||
using System.Text.RegularExpressions;
|
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
using Newtonsoft.Json;
|
using System.Text;
|
||||||
|
using System.Text.RegularExpressions;
|
||||||
|
using System.Threading;
|
||||||
|
|
||||||
namespace SimplySerial
|
namespace SimplySerial
|
||||||
{
|
{
|
||||||
class SimplySerial
|
class SimplySerial
|
||||||
{
|
{
|
||||||
const string version = "0.8.0-alpha.2";
|
const string version = "0.8.0-beta.1";
|
||||||
|
|
||||||
private const int STD_OUTPUT_HANDLE = -11;
|
private const int STD_OUTPUT_HANDLE = -11;
|
||||||
private const uint ENABLE_VIRTUAL_TERMINAL_PROCESSING = 0x0004;
|
private const uint ENABLE_VIRTUAL_TERMINAL_PROCESSING = 0x0004;
|
||||||
@ -52,6 +52,10 @@ namespace SimplySerial
|
|||||||
static int bufferSize = 102400;
|
static int bufferSize = 102400;
|
||||||
static DateTime lastFlush = DateTime.Now;
|
static DateTime lastFlush = DateTime.Now;
|
||||||
static bool forceNewline = false;
|
static bool forceNewline = false;
|
||||||
|
static Encoding encoding = Encoding.UTF8;
|
||||||
|
static bool convertToPrintable = false;
|
||||||
|
static bool clearScreen = true;
|
||||||
|
static bool noStatus = false;
|
||||||
|
|
||||||
// dictionary of "special" keys with the corresponding string to send out when they are pressed
|
// dictionary of "special" keys with the corresponding string to send out when they are pressed
|
||||||
static Dictionary<ConsoleKey, String> specialKeys = new Dictionary<ConsoleKey, String>
|
static Dictionary<ConsoleKey, String> specialKeys = new Dictionary<ConsoleKey, String>
|
||||||
@ -82,7 +86,15 @@ namespace SimplySerial
|
|||||||
|
|
||||||
static void Main(string[] args)
|
static void Main(string[] args)
|
||||||
{
|
{
|
||||||
|
// load and parse data in boards.json
|
||||||
|
LoadBoards();
|
||||||
|
|
||||||
|
// process all command-line arguments
|
||||||
|
ProcessArguments(args);
|
||||||
|
|
||||||
// attempt to enable virtual terminal escape sequence processing
|
// attempt to enable virtual terminal escape sequence processing
|
||||||
|
if (!convertToPrintable)
|
||||||
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var iStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
|
var iStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
|
||||||
@ -94,12 +106,9 @@ namespace SimplySerial
|
|||||||
{
|
{
|
||||||
// if the above fails, it doesn't really matter - it just means escape sequences won't process nicely
|
// if the above fails, it doesn't really matter - it just means escape sequences won't process nicely
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// load and parse data in boards.json
|
Console.OutputEncoding = encoding;
|
||||||
LoadBoards();
|
|
||||||
|
|
||||||
// process all command-line arguments
|
|
||||||
ProcessArguments(args);
|
|
||||||
|
|
||||||
// verify log-related settings
|
// verify log-related settings
|
||||||
if (logging)
|
if (logging)
|
||||||
@ -107,7 +116,7 @@ namespace SimplySerial
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
FileStream stream = new FileStream(logFile, logMode, FileAccess.Write);
|
FileStream stream = new FileStream(logFile, logMode, FileAccess.Write);
|
||||||
using (StreamWriter writer = new StreamWriter(stream, Encoding.UTF8))
|
using (StreamWriter writer = new StreamWriter(stream, encoding))
|
||||||
{
|
{
|
||||||
writer.WriteLine($"\n----- LOGGING STARTED ({DateTime.Now}) ------------------------------------");
|
writer.WriteLine($"\n----- LOGGING STARTED ({DateTime.Now}) ------------------------------------");
|
||||||
}
|
}
|
||||||
@ -199,7 +208,8 @@ namespace SimplySerial
|
|||||||
ReadTimeout = 1, // minimal timeout - we don't want to wait forever for data that may not be coming!
|
ReadTimeout = 1, // minimal timeout - we don't want to wait forever for data that may not be coming!
|
||||||
WriteTimeout = 250, // small delay - if we go too small on this it causes System.IO semaphore timeout exceptions
|
WriteTimeout = 250, // small delay - if we go too small on this it causes System.IO semaphore timeout exceptions
|
||||||
DtrEnable = true, // without this we don't ever receive any data
|
DtrEnable = true, // without this we don't ever receive any data
|
||||||
RtsEnable = true // without this we don't ever receive any data
|
RtsEnable = true, // without this we don't ever receive any data
|
||||||
|
Encoding = encoding
|
||||||
};
|
};
|
||||||
|
|
||||||
// attempt to set the baud rate, fail if the specified value is not supported by the hardware
|
// attempt to set the baud rate, fail if the specified value is not supported by the hardware
|
||||||
@ -247,11 +257,20 @@ namespace SimplySerial
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Console.Title = $"{port.name}: {port.board.make} {port.board.model}";
|
||||||
|
|
||||||
// if we get this far, clear the screen and send the connection message if not in 'quiet' mode
|
// if we get this far, clear the screen and send the connection message if not in 'quiet' mode
|
||||||
|
if (clearScreen)
|
||||||
|
{
|
||||||
Console.Clear();
|
Console.Clear();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Output("");
|
||||||
|
}
|
||||||
Output(String.Format("<<< SimplySerial v{0} connected via {1} >>>\n" +
|
Output(String.Format("<<< SimplySerial v{0} connected via {1} >>>\n" +
|
||||||
"Settings : {2} baud, {3} parity, {4} data bits, {5} stop bit{6}, auto-connect {7}.\n" +
|
"Settings : {2} baud, {3} parity, {4} data bits, {5} stop bit{6}, {7} encoding, auto-connect {8}\n" +
|
||||||
"Device : {8} {9}{10}\n{11}" +
|
"Device : {9} {10}{11}\n{12}" +
|
||||||
"---\n\nUse CTRL-X to exit.\n",
|
"---\n\nUse CTRL-X to exit.\n",
|
||||||
version,
|
version,
|
||||||
port.name,
|
port.name,
|
||||||
@ -259,12 +278,13 @@ namespace SimplySerial
|
|||||||
(parity == Parity.None) ? "no" : (parity.ToString()).ToLower(),
|
(parity == Parity.None) ? "no" : (parity.ToString()).ToLower(),
|
||||||
dataBits,
|
dataBits,
|
||||||
(stopBits == StopBits.None) ? "0" : (stopBits == StopBits.One) ? "1" : (stopBits == StopBits.OnePointFive) ? "1.5" : "2", (stopBits == StopBits.One) ? "" : "s",
|
(stopBits == StopBits.None) ? "0" : (stopBits == StopBits.One) ? "1" : (stopBits == StopBits.OnePointFive) ? "1.5" : "2", (stopBits == StopBits.One) ? "" : "s",
|
||||||
|
(encoding.ToString() == "System.Text.UTF8Encoding") ? "UTF-8" : (convertToPrintable) ? "RAW" : "ASCII",
|
||||||
(autoConnect == AutoConnect.ONE) ? "on" : (autoConnect == AutoConnect.ANY) ? "any" : "off",
|
(autoConnect == AutoConnect.ONE) ? "on" : (autoConnect == AutoConnect.ANY) ? "any" : "off",
|
||||||
port.board.make,
|
port.board.make,
|
||||||
port.board.model,
|
port.board.model,
|
||||||
(port.isCircuitPython) ? " (CircuitPython-capable)" : "",
|
(port.isCircuitPython) ? " (CircuitPython-capable)" : "",
|
||||||
(logging == true) ? ($"Logfile : {logFile} (Mode = " + ((logMode == FileMode.Create) ? "OVERWRITE" : "APPEND") + ")\n") : ""
|
(logging == true) ? ($"Logfile : {logFile} (Mode = " + ((logMode == FileMode.Create) ? "OVERWRITE" : "APPEND") + ")\n") : ""
|
||||||
), flush: true);
|
), flush: true); ;
|
||||||
|
|
||||||
lastFlush = DateTime.Now;
|
lastFlush = DateTime.Now;
|
||||||
DateTime start = DateTime.Now;
|
DateTime start = DateTime.Now;
|
||||||
@ -304,6 +324,13 @@ namespace SimplySerial
|
|||||||
// if anything was received, process it
|
// if anything was received, process it
|
||||||
if (received.Length > 0)
|
if (received.Length > 0)
|
||||||
{
|
{
|
||||||
|
// if we're trying to filter out title/status updates in received data, try to ensure we've got the whole string
|
||||||
|
if (noStatus && received.Contains("\x1b"))
|
||||||
|
{
|
||||||
|
Thread.Sleep(100);
|
||||||
|
received += serialPort.ReadExisting();
|
||||||
|
}
|
||||||
|
|
||||||
if (forceNewline)
|
if (forceNewline)
|
||||||
received = received.Replace("\r", "\n");
|
received = received.Replace("\r", "\n");
|
||||||
|
|
||||||
@ -336,7 +363,10 @@ namespace SimplySerial
|
|||||||
if (autoConnect == AutoConnect.NONE)
|
if (autoConnect == AutoConnect.NONE)
|
||||||
ExitProgram((e.GetType() + " occurred while attempting to read/write to/from " + port.name + "."), exitCode: -1);
|
ExitProgram((e.GetType() + " occurred while attempting to read/write to/from " + port.name + "."), exitCode: -1);
|
||||||
else
|
else
|
||||||
|
{
|
||||||
|
Console.Title = $"{port.name}: (disconnected)";
|
||||||
Output("\n<<< Communications Interrupted >>>\n");
|
Output("\n<<< Communications Interrupted >>>\n");
|
||||||
|
}
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
serialPort.Dispose();
|
serialPort.Dispose();
|
||||||
@ -348,11 +378,13 @@ namespace SimplySerial
|
|||||||
Thread.Sleep(2000); // sort-of arbitrary delay - should be long enough to read the "interrupted" message
|
Thread.Sleep(2000); // sort-of arbitrary delay - should be long enough to read the "interrupted" message
|
||||||
if (autoConnect == AutoConnect.ANY)
|
if (autoConnect == AutoConnect.ANY)
|
||||||
{
|
{
|
||||||
|
Console.Title = "SimplySerial: Searching...";
|
||||||
port.name = String.Empty;
|
port.name = String.Empty;
|
||||||
Output("<<< Attemping to connect to any available COM port. Use CTRL-X to cancel >>>");
|
Output("<<< Attemping to connect to any available COM port. Use CTRL-X to cancel >>>");
|
||||||
}
|
}
|
||||||
else if (autoConnect == AutoConnect.ONE)
|
else if (autoConnect == AutoConnect.ONE)
|
||||||
{
|
{
|
||||||
|
Console.Title = $"{port.name}: Searching...";
|
||||||
Output("<<< Attempting to re-connect to " + port.name + ". Use CTRL-X to cancel >>>");
|
Output("<<< Attempting to re-connect to " + port.name + ". Use CTRL-X to cancel >>>");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -442,6 +474,18 @@ namespace SimplySerial
|
|||||||
forceNewline = true;
|
forceNewline = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// disable screen clearing
|
||||||
|
else if (argument[0].StartsWith("noc"))
|
||||||
|
{
|
||||||
|
clearScreen = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// disable status/title updates from virtual terminal sequences
|
||||||
|
else if (argument[0].StartsWith("nos"))
|
||||||
|
{
|
||||||
|
noStatus = true;
|
||||||
|
}
|
||||||
|
|
||||||
// the remainder of possible command-line arguments require two parameters, so let's enforce that now
|
// the remainder of possible command-line arguments require two parameters, so let's enforce that now
|
||||||
else if (argument.Count() < 2)
|
else if (argument.Count() < 2)
|
||||||
{
|
{
|
||||||
@ -545,6 +589,30 @@ namespace SimplySerial
|
|||||||
logFile = argument[1];
|
logFile = argument[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// specify encoding
|
||||||
|
else if (argument[0].StartsWith("e"))
|
||||||
|
{
|
||||||
|
argument[1] = argument[1].ToLower();
|
||||||
|
|
||||||
|
if (argument[1].StartsWith("a"))
|
||||||
|
{
|
||||||
|
encoding = Encoding.ASCII;
|
||||||
|
convertToPrintable = false;
|
||||||
|
}
|
||||||
|
else if (argument[1].StartsWith("r"))
|
||||||
|
{
|
||||||
|
encoding = Encoding.GetEncoding(1252);
|
||||||
|
convertToPrintable = true;
|
||||||
|
}
|
||||||
|
else if (argument[1].StartsWith("u"))
|
||||||
|
{
|
||||||
|
encoding = Encoding.UTF8;
|
||||||
|
convertToPrintable = false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
ExitProgram(("Invalid encoding specified <" + argument[1] + ">"), exitCode: -1);
|
||||||
|
}
|
||||||
|
|
||||||
// an invalid/incomplete argument was passed
|
// an invalid/incomplete argument was passed
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -552,19 +620,33 @@ namespace SimplySerial
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (clearScreen)
|
||||||
|
{
|
||||||
Console.Clear();
|
Console.Clear();
|
||||||
|
}
|
||||||
|
|
||||||
if (autoConnect == AutoConnect.ANY)
|
if (autoConnect == AutoConnect.ANY)
|
||||||
{
|
{
|
||||||
|
Console.Title = "SimplySerial: Searching...";
|
||||||
Output("<<< Attemping to connect to any available COM port. Use CTRL-X to cancel >>>");
|
Output("<<< Attemping to connect to any available COM port. Use CTRL-X to cancel >>>");
|
||||||
}
|
}
|
||||||
else if (autoConnect == AutoConnect.ONE)
|
else if (autoConnect == AutoConnect.ONE)
|
||||||
|
{
|
||||||
|
if (clearScreen)
|
||||||
{
|
{
|
||||||
Console.Clear();
|
Console.Clear();
|
||||||
|
}
|
||||||
if (port.name == String.Empty)
|
if (port.name == String.Empty)
|
||||||
|
{
|
||||||
|
Console.Title = "SimplySerial: Searching...";
|
||||||
Output("<<< Attempting to connect to first available COM port. Use CTRL-X to cancel >>>");
|
Output("<<< Attempting to connect to first available COM port. Use CTRL-X to cancel >>>");
|
||||||
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
|
Console.Title = $"{port.name}: Searching...";
|
||||||
Output("<<< Attempting to connect to " + port.name + ". Use CTRL-X to cancel >>>");
|
Output("<<< Attempting to connect to " + port.name + ". Use CTRL-X to cancel >>>");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// if we made it this far, everything has been processed and we're ready to proceed!
|
// if we made it this far, everything has been processed and we're ready to proceed!
|
||||||
}
|
}
|
||||||
@ -582,7 +664,27 @@ namespace SimplySerial
|
|||||||
message += "\n";
|
message += "\n";
|
||||||
|
|
||||||
if (message.Length > 0)
|
if (message.Length > 0)
|
||||||
|
{
|
||||||
|
if (noStatus)
|
||||||
|
{
|
||||||
|
Regex r = new Regex(@"\x1b\][02];.*\x1b\\");
|
||||||
|
message = r.Replace(message, string.Empty);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (convertToPrintable)
|
||||||
|
{
|
||||||
|
string newMessage = "";
|
||||||
|
foreach (byte c in message)
|
||||||
|
{
|
||||||
|
if ((c > 31 && c < 128) || (c == 8) || (c == 9) || (c == 10) || (c == 13))
|
||||||
|
newMessage += (char)c;
|
||||||
|
else
|
||||||
|
newMessage += $"[{c:X2}]";
|
||||||
|
}
|
||||||
|
message = newMessage;
|
||||||
|
}
|
||||||
Console.Write(message);
|
Console.Write(message);
|
||||||
|
}
|
||||||
|
|
||||||
if (logging)
|
if (logging)
|
||||||
{
|
{
|
||||||
@ -592,7 +694,7 @@ namespace SimplySerial
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
FileStream stream = new FileStream(logFile, FileMode.Append, FileAccess.Write);
|
FileStream stream = new FileStream(logFile, FileMode.Append, FileAccess.Write);
|
||||||
using (StreamWriter writer = new StreamWriter(stream, Encoding.UTF8))
|
using (StreamWriter writer = new StreamWriter(stream, encoding))
|
||||||
{
|
{
|
||||||
writer.Write(logData);
|
writer.Write(logData);
|
||||||
}
|
}
|
||||||
@ -637,6 +739,9 @@ namespace SimplySerial
|
|||||||
Console.WriteLine(" -logmode:MODE APPEND | OVERWRITE, default is OVERWRITE");
|
Console.WriteLine(" -logmode:MODE APPEND | OVERWRITE, default is OVERWRITE");
|
||||||
Console.WriteLine(" -quiet don't print any application messages/errors to console");
|
Console.WriteLine(" -quiet don't print any application messages/errors to console");
|
||||||
Console.WriteLine(" -forcenewline Force linefeeds (newline) in place of carriage returns in received data.");
|
Console.WriteLine(" -forcenewline Force linefeeds (newline) in place of carriage returns in received data.");
|
||||||
|
Console.WriteLine(" -encoding:ENC UTF8 | ASCII | RAW");
|
||||||
|
Console.WriteLine(" -noclear Don't clear the terminal screen on connection.");
|
||||||
|
Console.WriteLine(" -nostatus Block status/title updates from virtual terminal sequences.");
|
||||||
Console.WriteLine("\nPress CTRL-X to exit a running instance of SimplySerial.\n");
|
Console.WriteLine("\nPress CTRL-X to exit a running instance of SimplySerial.\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -113,6 +113,6 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<PostBuildEvent>"C:\Program Files\7-Zip\7z.exe" a "$(TargetDir)\SimplySerial_standalone.zip" "$(TargetDir)\ss.exe" "$(ProjectDir)\..\LICENSE" "$(ProjectDir)\..\README.md" "$(TargetDir)\boards.json" "$(TargetDir)\ss.exe.config" "$(TargetDir)\Newtonsoft.Json.dll"</PostBuildEvent>
|
<PostBuildEvent>powershell Compress-Archive -Path '$(TargetDir)\ss.exe', '$(ProjectDir)\..\LICENSE', '$(ProjectDir)\..\README.md', '$(TargetDir)\boards.json', '$(TargetDir)\ss.exe.config', '$(TargetDir)\Newtonsoft.Json.dll' -DestinationPath '$(TargetDir)\SimplySerial_standalone.zip' -Force</PostBuildEvent>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
</Project>
|
</Project>
|
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"version": "2022-08-22T10:16:04.484338",
|
"version": "2023-02-14T13:18:35.393375",
|
||||||
"vendors": [
|
"vendors": [
|
||||||
{
|
{
|
||||||
"vid": "04D8",
|
"vid": "04D8",
|
||||||
@ -67,6 +67,12 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"boards": [
|
"boards": [
|
||||||
|
{
|
||||||
|
"vid": "0483",
|
||||||
|
"pid": "572A",
|
||||||
|
"make": "STMicroelectronics",
|
||||||
|
"model": "NUCLEO-F446RE - CPy"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"vid": "04D8",
|
"vid": "04D8",
|
||||||
"pid": "E799",
|
"pid": "E799",
|
||||||
@ -205,6 +211,12 @@
|
|||||||
"make": "Targett",
|
"make": "Targett",
|
||||||
"model": "Targett Module Clip w/Wrover"
|
"model": "Targett Module Clip w/Wrover"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"vid": "1209",
|
||||||
|
"pid": "4203",
|
||||||
|
"make": "42. Keebs",
|
||||||
|
"model": "Frood"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"vid": "1209",
|
"vid": "1209",
|
||||||
"pid": "4D43",
|
"pid": "4D43",
|
||||||
@ -283,6 +295,12 @@
|
|||||||
"make": "takayoshiotake",
|
"make": "takayoshiotake",
|
||||||
"model": "Octave RP2040"
|
"model": "Octave RP2040"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"vid": "1209",
|
||||||
|
"pid": "9000",
|
||||||
|
"make": "Hack Club",
|
||||||
|
"model": "Sprig"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"vid": "1209",
|
"vid": "1209",
|
||||||
"pid": "A182",
|
"pid": "A182",
|
||||||
@ -337,6 +355,12 @@
|
|||||||
"make": "Betrusted",
|
"make": "Betrusted",
|
||||||
"model": "Simmel"
|
"model": "Simmel"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"vid": "1209",
|
||||||
|
"pid": "CB74",
|
||||||
|
"make": "0xCB",
|
||||||
|
"model": "Helios"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"vid": "1209",
|
"vid": "1209",
|
||||||
"pid": "D10D",
|
"pid": "D10D",
|
||||||
@ -355,6 +379,12 @@
|
|||||||
"make": "StackRduino",
|
"make": "StackRduino",
|
||||||
"model": "StackRduino M0 PRO"
|
"model": "StackRduino M0 PRO"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"vid": "1209",
|
||||||
|
"pid": "EF00",
|
||||||
|
"make": "2231puppy",
|
||||||
|
"model": "E-Fidget"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"vid": "1209",
|
"vid": "1209",
|
||||||
"pid": "F123",
|
"pid": "F123",
|
||||||
@ -391,6 +421,12 @@
|
|||||||
"make": "Pimoroni",
|
"make": "Pimoroni",
|
||||||
"model": "PicoSystem"
|
"model": "PicoSystem"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"vid": "16D0",
|
||||||
|
"pid": "10ED",
|
||||||
|
"make": "Mechwild",
|
||||||
|
"model": "PillBug"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"vid": "1915",
|
"vid": "1915",
|
||||||
"pid": "B001",
|
"pid": "B001",
|
||||||
@ -577,6 +613,12 @@
|
|||||||
"make": "WeAct Studio",
|
"make": "WeAct Studio",
|
||||||
"model": "Pico"
|
"model": "Pico"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"vid": "239A",
|
||||||
|
"pid": "2030",
|
||||||
|
"make": "Czech maker",
|
||||||
|
"model": "Maker badge"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"vid": "239A",
|
"vid": "239A",
|
||||||
"pid": "6005",
|
"pid": "6005",
|
||||||
@ -1211,7 +1253,7 @@
|
|||||||
"vid": "239A",
|
"vid": "239A",
|
||||||
"pid": "80EE",
|
"pid": "80EE",
|
||||||
"make": "Adafruit",
|
"make": "Adafruit",
|
||||||
"model": "Feather ESP32S2 TFT no PSRAM"
|
"model": "Feather ESP32-S2 Reverse TFT"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"vid": "239A",
|
"vid": "239A",
|
||||||
@ -1345,6 +1387,24 @@
|
|||||||
"make": "Adafruit",
|
"make": "Adafruit",
|
||||||
"model": "Feather ESP32-S3 TFT"
|
"model": "Feather ESP32-S3 TFT"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"vid": "239A",
|
||||||
|
"pid": "8120",
|
||||||
|
"make": "Raspberry Pi",
|
||||||
|
"model": "Pico W"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vid": "239A",
|
||||||
|
"pid": "8122",
|
||||||
|
"make": "Adafruit",
|
||||||
|
"model": "Feather RP2040 Scorpio"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vid": "239A",
|
||||||
|
"pid": "8124",
|
||||||
|
"make": "Adafruit",
|
||||||
|
"model": "Feather ESP32-S3 Reverse TFT"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"vid": "239A",
|
"vid": "239A",
|
||||||
"pid": "D1ED",
|
"pid": "D1ED",
|
||||||
@ -1585,6 +1645,42 @@
|
|||||||
"make": "WIZnet",
|
"make": "WIZnet",
|
||||||
"model": "W5500-EVB-Pico"
|
"model": "W5500-EVB-Pico"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"vid": "2E8A",
|
||||||
|
"pid": "102C",
|
||||||
|
"make": "Invector Labs",
|
||||||
|
"model": "Challenger RP2040 WiFi/BLE"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vid": "2E8A",
|
||||||
|
"pid": "102D",
|
||||||
|
"make": "Invector Labs",
|
||||||
|
"model": "Challenger RP2040 SD/RTC"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vid": "2E8A",
|
||||||
|
"pid": "102E",
|
||||||
|
"make": "VCC-GND Studio",
|
||||||
|
"model": "YD-RP2040"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vid": "2E8A",
|
||||||
|
"pid": "1032",
|
||||||
|
"make": "Invector Labs",
|
||||||
|
"model": "Challenger RP2040 SubGHz"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vid": "2E8A",
|
||||||
|
"pid": "1039",
|
||||||
|
"make": "Waveshare Electronics",
|
||||||
|
"model": "Waveshare RP2040-LCD-1.28"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vid": "2E8A",
|
||||||
|
"pid": "1048",
|
||||||
|
"make": "nullbits",
|
||||||
|
"model": "Bit-C PRO"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"vid": "303A",
|
"vid": "303A",
|
||||||
"pid": "7001",
|
"pid": "7001",
|
||||||
@ -1595,7 +1691,7 @@
|
|||||||
"vid": "303A",
|
"vid": "303A",
|
||||||
"pid": "7003",
|
"pid": "7003",
|
||||||
"make": "Espressif",
|
"make": "Espressif",
|
||||||
"model": "ESP32-S3-DevKitC-1-N8"
|
"model": "ESP32-S3-DevKitC-1-N32R8"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"vid": "303A",
|
"vid": "303A",
|
||||||
@ -1717,6 +1813,12 @@
|
|||||||
"make": "Lolin",
|
"make": "Lolin",
|
||||||
"model": "S2 Pico"
|
"model": "S2 Pico"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"vid": "303A",
|
||||||
|
"pid": "80C8",
|
||||||
|
"make": "BrainBoardz",
|
||||||
|
"model": "Neuron"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"vid": "303A",
|
"vid": "303A",
|
||||||
"pid": "80D1",
|
"pid": "80D1",
|
||||||
@ -1741,6 +1843,18 @@
|
|||||||
"make": "FutureKeys",
|
"make": "FutureKeys",
|
||||||
"model": "HexKy_S2"
|
"model": "HexKy_S2"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"vid": "303A",
|
||||||
|
"pid": "80E0",
|
||||||
|
"make": "BananaPi",
|
||||||
|
"model": "BPI-Leaf-S3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vid": "303A",
|
||||||
|
"pid": "80E6",
|
||||||
|
"make": "BananaPi",
|
||||||
|
"model": "BPI-Bit-S2"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"vid": "303A",
|
"vid": "303A",
|
||||||
"pid": "80E8",
|
"pid": "80E8",
|
||||||
@ -1801,6 +1915,18 @@
|
|||||||
"make": "Smart Bee Designs",
|
"make": "Smart Bee Designs",
|
||||||
"model": "Bee-Motion-S3"
|
"model": "Bee-Motion-S3"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"vid": "303A",
|
||||||
|
"pid": "8117",
|
||||||
|
"make": "WEMOS",
|
||||||
|
"model": "LOLIN S3 16MB Flash 8MB PSRAM"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vid": "303A",
|
||||||
|
"pid": "812C",
|
||||||
|
"make": "BananaPi",
|
||||||
|
"model": "BPI-PicoW-S3"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"vid": "30A4",
|
"vid": "30A4",
|
||||||
"pid": "0002",
|
"pid": "0002",
|
||||||
|
Loading…
Reference in New Issue
Block a user