![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| gray_k |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1015 Регистрация: 9.1.2003 Где: Москва Репутация: нет Всего: 22 |
Народ, нет ли у кого-нибудь примера передачи данных через модем с помощью AT-команд. RAS не подходит. Напрямую работать через COM-порт тоже нельзя.
-------------------- С уважением. Gray. |
|||
|
||||
| Олег М |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 436 Регистрация: 10.6.2004 Где: Москва Репутация: 7 Всего: 7 |
А что означает напрямую? Через CreateFile, WriteFile? Разве эти команды не через СОМ-порт подаются? С помощью WriteFile. |
|||
|
||||
| gray_k |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1015 Регистрация: 9.1.2003 Где: Москва Репутация: нет Всего: 22 |
В том то и дело, что нельзя. Если модем установлен в системе, то напрямую к порту обращаться нельзя. А модем должен быть установлен. -------------------- С уважением. Gray. |
|||
|
||||
| Олег М |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 436 Регистрация: 10.6.2004 Где: Москва Репутация: 7 Всего: 7 |
Всё-таки наверное можно. Я вот в МСДН пример нашёл на Бейсике Dim bModemCommand(256) As Byte, ModemCommand As String Dim OpenPort As Long Dim RetVal As Long, RetBytes as Long, i as integer Dim StartTime ' Ask the user to pick up the phone. Msg = "Please pickup the phone and choose OK to dial " _ & PhoneNumber MsgBoxType = MB_ICONINFORMATION + MB_OKCANCEL MsgBoxTitle = "Dial Number" If MsgBox(Msg, MsgBoxType, MsgBoxTitle) = ID_CANCEL Then Exit Function End If ' Open the communications port for read/write (&HC0000000). ' Must specify existing file (3). OpenPort = CreateFile(CommPort, &HC0000000, 0, 0, 3, 0, 0) If OpenPort = -1 Then Msg = "Unable to open communication port " & CommPort GoTo Err_DialNumber End If ' Send the telephone number to the modem. ModemCommand = "ATDT" & PhoneNumber & vbCrLf ' Pack the string in a Byte array. For i = 0 To Len(ModemCommand) - 1 bModemCommand(i) = Asc(Mid(ModemCommand, i + 1, 1)) Next ' Write the string to the Com port. RetVal = WriteFile(OpenPort, bModemCommand(0), _ Len(ModemCommand), RetBytes, 0) If RetVal = 0 Then Msg = "Unable to dial number " & PhoneNumber GoTo Err_DialNumber End If ' Flush the buffer to make sure it actually wrote RetVal = FlushFileBuffers(OpenPort) ' Wait WAITSECONDS seconds for the phone to dial. StartTime = Timer While Timer < StartTime + WAITSECONDS DoEvents Wend ' Reset the modem and take it off line. ModemCommand = "ATH0" & vbCrLf ' Pack the byte array again. For i = 0 To Len(ModemCommand) - 1 bModemCommand (i) = Asc(Mid(ModemCommand, i + 1, 1)) Next RetVal = WriteFile(OpenPort, bModemCommand(0), _ Len(ModemCommand), RetBytes, 0) 'Flush the buffer again. RetVal = FlushFileBuffers(OpenPort) ' Close the communications port. RetVal = CloseHandle(OpenPort) Exit Function Err_DialNumber: 'This is not an On Error routine. Msg = Msg & vbCr & vbCr & _ "Make sure no other devices are using Com port " & CommPort MsgBoxType = MB_ICONSTOP MsgBoxTitle = "Dial Number Error" MsgBox Msg, MsgBoxType, MsgBoxTitle End Function |
|||
|
||||
| gray_k |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1015 Регистрация: 9.1.2003 Где: Москва Репутация: нет Всего: 22 |
Дело в том, что в этом случае необходимо самому организовывать проверки подтверждения пакетов, невозможно организовать докачку.
-------------------- С уважением. Gray. |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 16 Всего: 98 |
может я чего-то не понимаю но AT-оманды исспользуют только для правления модемом
для передачи данных нужно использовать что-то типа z-modem протокола ( HyperTerminal ) как пример могу посоветовать исходники mgetty или minicom ( но это Linux ) -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |