PSO C Соединения портов в C# - PullRequest
       52

PSO C Соединения портов в C#

0 голосов
/ 03 августа 2020

У меня проблемы с использованием интерфейсов портов в dll PP_COM_Wrapper, которую предоставляет Cypress 'PSO C Programmer. Я использую комплект для прототипирования CY8CKIT-0529 PSO C 5LP. Я смог успешно открыть порт для платы и убедился, что могу писать на него, используя мост USB-I2 C, который предоставляет PSO C. Однако, когда я go закрываю порт или проверяю, открыт ли порт, команды возвращают, что порт закрыт. для команды closeport () возвращается -1 и «Порт не открыт!» Для команды IsPortOpen () он возвращает 0, что означает, что порт закрыт, и нет сообщения об ошибке. Я все еще могу писать на плату через I2 C после выполнения обеих команд. Я прикрепил код, который я использую, для подключения, отключения и проверки состояния ниже. Будем признательны за любые отзывы о том, почему я не могу закрыть порт и почему программа считает, что порт закрыт. Мне не хватает использования этой команды?

PP_COM_Wrapper Api: Документация Api от Cypress

Использование PP_COM_Wrapper: PP_COM_Wrapper.PSoCProgrammerCOM_ObjectClass pp = new PSoCProgrammerCOM_ObjectClass();

Открытый порт:

private void dbgConnect_Click(object sender, EventArgs e)
{
    string err;
    string[] array = i2c.GetPorts();
    int hr = i2c.OpenPort(array[0]);
    err = i2c.GetLastError();
    if (!err.Equals(""))
    {
        MessageBox.Show(err, "Connection Error", MessageBoxButtons.OK);
    }

    pp.IsPortOpen(out hr, out err);
    if (!err.Equals(""))
    {
        MessageBox.Show(err, "Connection Error", MessageBoxButtons.OK);
    }
}

Открыт ли порт:

private void button2_Click(object sender, EventArgs e)
{
    int hr;
    string err;
    pp.IsPortOpen(out hr, out err);
    if (!err.Equals(""))
    {
        MessageBox.Show(err, "Connection Status", MessageBoxButtons.OK);
    }
    else
    {
        MessageBox.Show("Connected", "Connection Status", MessageBoxButtons.OK);
    }
}

Порт отключения:

private void dbgDisconnect_Click(object sender, EventArgs e)
{
    string err;
    int hr = pp.ClosePort(out err);
    if (!err.Equals(""))
    {
        MessageBox.Show(err, "Connection Status", MessageBoxButtons.OK);
    }
    if (hr >= 0)
    {
        dbgStatus.BackColor = Color.Red;
    }
}

1 Ответ

0 голосов
/ 03 августа 2020

В моем коде я использовал смесь вызовов pp и вызовов моего файла i2 c. Мой приведенный выше код открывал порт в экземпляре i2 c и использовал его для чтения / записи. Мое отключение и проверка открытых вызовов использовались экземпляром pp и не видели открытый порт, потому что он использовался вызовом i2 c.

...