Здравствуйте, нужно написать программу на C++Builder, которая будет выполнять определённый перечень действий при размыкании 2-го и 3-го контакта com-порта (изначально предполагается что они замкнуты). Помогите пожалуйста кто чем может. Заранее спасибо!!!
Обычно порт открывается как обычный файл. Как только порт открыт, то в него можно записывать и считывать как из обычного файла. Конечно же прийдётся добавить различные проверки байтов при чтении и записи. Вот исходник для примера -
if (dwRC && lpMsgBuf) { sprintf(sMsg, "COM open failed: Port=%s Error=%d - %s", m_sComPort, dwError, lpMsgBuf); AfxMessageBox(sMsg); } else { sprintf(sMsg, "COM open failed: Port=%s Error=%d ", m_sComPort, dwError); AfxMessageBox(sMsg); } // end if if (dwRC && lpMsgBuf) { LocalFree( lpMsgBuf ); } // end if
} // end if
if (m_bPortReady) { m_bPortReady = SetupComm(m_hCom, 128, 128); // размер буфера if (!m_bPortReady) { dwError = GetLastError(); sprintf(sMsg, "SetupComm failed: Port=%s Error=%d", m_sComPort, dwError); AfxMessageBox(sMsg);
} // end if } // end if
if (m_bPortReady) { m_bPortReady = GetCommState(m_hCom, &m_dcb); if (!m_bPortReady) { dwError = GetLastError(); sprintf(sMsg, "GetCommState failed: Port=%s Error=%d", m_sComPort, dwError); AfxMessageBox(sMsg); } // end if } // end if
Рекомендую библиотеку Trainer'а(в гугле найдете) для работы с сом-портом. Пользую ее уже два с лишним года и очень доволен.Может читать и писать байты и массивы.В примерах есть пара очепяток. Если будут трудности помогу. Да полагаю что и автор не откажется проконсультировать по своей программе PS: А что замыкание 2 и 3 ноги предопределено? Фактически это означает, что сом порт прочтет то что сам послал. Вы из этого исходите?