![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
ANT team
Пользователь
Регистрация: 25.06.2009
Сообщений: 39
|
![]()
Добрый день!
Второй день пытаюсь разобраться, но никак не получается. В общем ситуация такая - сделал небольшую функцию, она пишет данные в последовательный порт. Пишет либо String, либо самостоятельно вбитый массив HEX значений. Так вот, мне необходимо в среднем отсылать в порт маленькие команды ( 5-6 байт) и большие файлы - от 50 кб до 30 мб. Все бы хорошо, вбить данные в массив килобайт на 50 можно, но не 30 же метров ![]() Почитал литературку - нашел варианты с потоками. Так же некоторые функции, типа block read и некоторые другие. Но не могу с ними разобраться. Пытался Попробовать разбить файл на строки, которые можно будет отсылать. Но нужно будет посчитать количество строк в файле, разбить их на меньшие, если строка больше чем 255, и все это дело от и до конца отсылать. Не осилил написание этого. С потоками все еще сложнее - не получается и все. В общем - в идеале бы сделать нечто, что могло бы пихать файл в поток - и затем отсылать их кусками. Как сделано у меня - Код:
пример использования Код:
В файле все данные являются нужными, то есть не нужно производить никакого поиска - тупо отослать от начала до конца. Пробовал переписать функцию посыла - но всегда получается все не так, как хотелось бы. Буду благодарен за любую помощь. Спасибо за внимание. |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 29.05.2009
Сообщений: 320
|
![]() Код:
Последний раз редактировалось BaronTreep; 18.07.2009 в 04:32. |
![]() |
![]() |
![]() |
#3 |
ANT team
Пользователь
Регистрация: 25.06.2009
Сообщений: 39
|
![]()
BaronTreep, Спасибо! пролили немного света на проблему! Но дело в том, что у меня своеобразный серийный порт ( на самом деле в виде ярлыка к USB устройству, в данном случае - Телефон SonyEricsson, подключенный к USB порту. Работаю не через модем, а через низкоуровневой интерфейс программирования), на самом деле я не смогу так отсылать поток.
Код:
Можно ли как-то присвоить переменной значение и выводить ее как строку в буффер переменной? Иначе моя функция не работает, а пример для ком-портов не пойдет. =( |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 29.05.2009
Сообщений: 320
|
![]()
Вы пишете последовательный порт = COM-порт:
http://ru.wikipedia.org/wiki/Последовательный_порт USB - http://ru.wikipedia.org/wiki/USB FStream.ReadBuffer(@Buffer, BufSize); - вы прочли кусок из файла (потока) в буфер, теперь у вас есть указатель. Вы можете написать его на порт. Читайте книжки Агурова по USB в Delphi. |
![]() |
![]() |
![]() |
#5 |
ANT team
Пользователь
Регистрация: 25.06.2009
Сообщений: 39
|
![]()
За книгу спасибо!
Считаю, что вопрос решен - ушел читать) |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Работа с файлами в С++ | ai\ekcah^p | Помощь студентам | 2 | 21.06.2009 16:16 |
Работа с файлами | Cpluser | Общие вопросы C/C++ | 2 | 16.02.2009 23:22 |
Работа с файлами | Скрунж | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 18.10.2008 15:19 |
Работа с файлами | Maksi | Фриланс | 4 | 07.06.2008 11:38 |
Работа с файлами | Yar | Помощь студентам | 2 | 02.06.2008 08:03 |