Опять про терминал.

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

CASTOR
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 08.02.2006 (Ср) 23:20

Опять про терминал.

Сообщение CASTOR » 08.02.2006 (Ср) 23:35

Просмотрел я все сообщения по поводу модема, но ничего путного не нашел. Вот я и решил написать новую тему.
В программировании на VB я новенький. До этого совсем на нем не
программировал. Специализуруюсь на 1С. Но вот приперло.
Я кое что уже накрапал. Приложение дозванивается, коннектиться,
но когда я посылаю в порт файл для передачи, то на другом конце
обычный HyperTerminal принимает просто символы из этого файла.
Т.е. если посылаю текстовой файл, к примеру, то в НТ он просто печатает содержимое файла. И так с любым.
Использую вот что:

Friend Sub StartReceiveData()
Dim filename As String = "C:\Send\Какой-то файл"
Dim SendData() As Byte
Dim fs As New IO.BinaryReader(IO.File.Open(filename, IO.FileMode.Open))
Try
SendData = fs.ReadBytes(fs.BaseStream.Length)
com3.Write(SendData, 0, fs.BaseStream.Length)
Finally
fs.Close()
End Try
End Sub

Может быть что-то не так?
Может перед этим надо в порт какую-то команду послать, что сейчас начнется передача файла?
Помогите. Потом будет вопрос по принятию входных данных.

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 09.02.2006 (Чт) 0:18

com3.Write(SendData, 0, fs.SendData.Length)
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

CASTOR
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 08.02.2006 (Ср) 23:20

Сообщение CASTOR » 09.02.2006 (Чт) 14:31

Хорошо, спасибо.
А вот еще вопрос:
каким образом правильно опрашивать порт. Я делаю это достаточно коряво, по-моему.

Friend Sub ScanPort()
Dim answr As String = ""
Dim substranswr As String = ""
Do
answr = com3.ReadLine()
If answr = "" Or answr = vbCr Then
Continue Do
Else
substranswr = answr.Substring(0, 4)
End If

Loop While substranswr <> "CONN"
StartGetData()
End Sub


Помоему слишком грамоздко. Наверное есть какие-то функции.
И в некоторых случаях это работать не будет, точно. А потом, как
узнать, к примеру, что мне посылают файл? Что при этом должен
выдавать модем?

Grey_Brother
Новичок
Новичок
Аватара пользователя
 
Сообщения: 36
Зарегистрирован: 09.02.2006 (Чт) 10:36
Откуда: Санкт-Петербург

Сообщение Grey_Brother » 12.02.2006 (Вс) 20:42

Sebas писал(а):com3.Write(SendData, 0, fs.SendData.Length)


И что? правда работает?
И без ZModem'а ?
С уважением, GB.

CASTOR
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 08.02.2006 (Ср) 23:20

Сообщение CASTOR » 14.02.2006 (Вт) 22:01

Работает. Проверено.
На этой основе можно чат сделать.

Я смотрю, что больше никто не откликнулся.
Но я уже сам все решил и написал.

Grey_Brother
Новичок
Новичок
Аватара пользователя
 
Сообщения: 36
Зарегистрирован: 09.02.2006 (Чт) 10:36
Откуда: Санкт-Петербург

Сообщение Grey_Brother » 14.02.2006 (Вт) 22:52

Еще вопрос: com3 - это что?
Я просто даже не пытался в .net комы открывать...
в NET2005 есть контроь, а в младших как ?
С уважением, GB.

CASTOR
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 08.02.2006 (Ср) 23:20

Сообщение CASTOR » 15.02.2006 (Ср) 1:23

com3 - это переменная которой присваевается значение System.IO.Ports.SerialPort. А потом задаешь, какой именно порт 1-й, 2-й и т.д.
Я про младшие VB ничегошеньки не знаю. Это мой первый опыт.

Grey_Brother
Новичок
Новичок
Аватара пользователя
 
Сообщения: 36
Зарегистрирован: 09.02.2006 (Чт) 10:36
Откуда: Санкт-Петербург

Сообщение Grey_Brother » 15.02.2006 (Ср) 19:27

Все, вижу... Спасибо. в NET2003 System.IO.Ports.SerialPort просто отсутствует...
С уважением, GB.

CASTOR
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 08.02.2006 (Ср) 23:20

Сообщение CASTOR » 15.02.2006 (Ср) 21:33

В инете можно найти более удобные компоненты, в которых пересылка
файла превращается в написание всего нескольких строк.
К примеру, myPortController.SendFile(имя файла). Примерно так.
Можно поискать и облегчить себе жизнь. Ведь для этого и .NET, по-моему.

Grey_Brother
Новичок
Новичок
Аватара пользователя
 
Сообщения: 36
Зарегистрирован: 09.02.2006 (Чт) 10:36
Откуда: Санкт-Петербург

Сообщение Grey_Brother » 16.02.2006 (Чт) 16:27

Да, знаю я такие, типа MW6 (Mega что-то) ...
Беда в том, что они все триалки, и даеже если найти/купить серийник, у конечного пользователя этот контроль опять начнет просить регистрацию...
Если кто кинет сюда контроль free ZModem'a(они обычно(естественно) включают в себя всю работу с портом), я буду очень благодарен. Весь i-net перерыл в поисках такого... хотя исходник был бы более кстати...
С уважением, GB.

CASTOR
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 08.02.2006 (Ср) 23:20

Сообщение CASTOR » 16.02.2006 (Чт) 22:17

Есть такой. Он конечно триаловский, но..! То что уже сделано - твое
бесплатно! Только кидаешь dll-ку вместе со своим приложением.
Называется PortController.NET (.NET CLR 2.0). Не помню, где скачал.
Почитай у них на сайте по поводу использования.

Grey_Brother
Новичок
Новичок
Аватара пользователя
 
Сообщения: 36
Зарегистрирован: 09.02.2006 (Чт) 10:36
Откуда: Санкт-Петербург

Сообщение Grey_Brother » 16.02.2006 (Чт) 22:36

Вах! Спасибо большое, обязательно найду.
С уважением, GB.

Grey_Brother
Новичок
Новичок
Аватара пользователя
 
Сообщения: 36
Зарегистрирован: 09.02.2006 (Чт) 10:36
Откуда: Санкт-Петербург

Сообщение Grey_Brother » 16.02.2006 (Чт) 22:43

Нашел. Яндекс показал 15 сайтов, рамблер -15, апорт ничего не нашел... =)

Еще раз спасибо.
С уважением, GB.

CASTOR
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 08.02.2006 (Ср) 23:20

Сообщение CASTOR » 16.02.2006 (Чт) 23:57

Всегда пожалуйста! Any time! :D


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 64

    TopList