It looks like the problem is in the CPS
Please can you download and install Visual Studio Community Edition
https://visualstudio.microsoft.com/vs/community/
Then download the CPS sources
https://github.com/rogerclarkmelbourne/ ... master.zip
Unzip the source.
Double click on the file OpenGD77CPS.sln
This will run Visual Studio and open the CPS source
In the Extras folder, open the "OpenGD77Form"
and look for the code at lines 1574, which handle finding the COM port
Code: Select all
private SerialPort commPort
{
get
{
if (_port == null)
{
try
{
String gd77CommPort = null;
gd77CommPort = SetupDiWrap.ComPortNameFromFriendlyNamePrefix("OpenGD77");
if (gd77CommPort == null)
{
CommPortSelector cps = new CommPortSelector();
if (DialogResult.OK == cps.ShowDialog())
{
gd77CommPort = SetupDiWrap.ComPortNameFromFriendlyNamePrefix(cps.SelectedPort);
IniFileUtils.WriteProfileString("Setup", "LastCommPort", gd77CommPort);// assume they selected something useful !
}
else
{
//this.Close();
return null;
}
}
if (gd77CommPort == null)
{
MessageBox.Show("Please connect the GD-77 running OpenGD77 firmware, and try again.", "OpenGD77 radio not detected.");
}
else
{
_port = new SerialPort(gd77CommPort, 115200, Parity.None, 8, StopBits.One);
commPort.ReadTimeout = 1000;
}
}
catch (Exception)
{
_port = null;
System.Media.SystemSounds.Hand.Play();
MessageBox.Show("Failed to open comm port", "Error");
IniFileUtils.WriteProfileString("Setup", "LastCommPort", "");// clear any port they may have saved
return null;
}
return _port;
}
else
{
return _port;
}
}
Put a break where it calls
Code: Select all
ComPortNameFromFriendlyNamePrefix(string friendlyNamePrefix)
And then run and then step into that function and see if you can find why its not finding the OpenGD77 port
Its possible that perhaps the function call to GetClassGUIDs() looking for items with the className = "Ports" does not work on some languages, perhaps perhaps "Ports" needs to be translated
Code: Select all
public class SetupDiWrap
{
static public string ComPortNameFromFriendlyNamePrefix(string friendlyNamePrefix)
{
const string className = "Ports";
Guid[] guids = GetClassGUIDs(className);
Anyway, if you step through that area of the code, you should be able to find where the code is failing to find the OpenGD77 device