Посылка данных в com-порт
Цитата:
if(hCom != INVALID_HANDLE_VALUE)
{
OnClosePort();
Sleep(3000);
}
hCom = CreateFile("COM4", GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);
if(hCom == INVALID_HANDLE_VALUE)
{
m_edit.SetWindowText(CString("Невозможно открыть порт"));
}
else
{
m_edit.SetWindowText(CString("Порт успешно открыт"));
DCB dcb;
GetCommState(hCom, &dcb);
dcb.BaudRate = CBR_57600;
dcb.ByteSize = 8;
dcb.Parity = NOPARITY;
dcb.StopBits = ONESTOPBIT;
}
{
OnClosePort();
Sleep(3000);
}
hCom = CreateFile("COM4", GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);
if(hCom == INVALID_HANDLE_VALUE)
{
m_edit.SetWindowText(CString("Невозможно открыть порт"));
}
else
{
m_edit.SetWindowText(CString("Порт успешно открыт"));
DCB dcb;
GetCommState(hCom, &dcb);
dcb.BaudRate = CBR_57600;
dcb.ByteSize = 8;
dcb.Parity = NOPARITY;
dcb.StopBits = ONESTOPBIT;
}
Потом, насколько я понимаю можно прямо посылать AT-команды в com-порт, то есть для звонка достаточно послать ATDT
Цитата:
if(hCom == INVALID_HANDLE_VALUE)
{
m_edit.SetWindowText(CString("Откройте порт!"));
return;
}
StringData = "ATDTxxxxxxx";
if(StringData.GetLength() != 0)
{
StringData = StringData + '\r' + '\0';
DWORD iSize;
WriteFile(hCom, StringData, sizeof(StringData), &iSize, 0);
}
{
m_edit.SetWindowText(CString("Откройте порт!"));
return;
}
StringData = "ATDTxxxxxxx";
if(StringData.GetLength() != 0)
{
StringData = StringData + '\r' + '\0';
DWORD iSize;
WriteFile(hCom, StringData, sizeof(StringData), &iSize, 0);
}
Но тем не менее на конечном этапе, когда должна отправляться команда, ничего не происходит. Нужно ли модем ещё инициализировать другими AT-командами или дело в другом. Заранее спасибо