к примеру раньше принимал 6 байт ,а если надо будет принять 40 байт ,то это возможно ? просто нет возможности сейчас попробовать это сделать в HIASM , а пишу для микроконтроллера HEX .
Этот топик читают: Гость
Ответов: 128
Рейтинг: 1
|
|||
карма: 0 |
|
Разработчик
Ответов: 26156
Рейтинг: 2127
|
|||
deman писал(а): принять 40 байт ,то это возможноДо 256 за один цикл чтения |
|||
карма: 22 |
|
Ответов: 128
Рейтинг: 1
|
|||
спасибо !!!
|
|||
карма: 0 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
nesco писал(а): До 256 за один цикл чтения com-port.gif |
|||
карма: 25 |
| ||
файлы: 1 | com-port.gif [31KB] [281] |
Разработчик
Ответов: 26156
Рейтинг: 2127
|
|||
Tad писал(а): прокомментируй картинкуА причем здесь длина переданных данных и читаемое количество Там точно прочиталось больше 256 символов По идее, не должно читать больше 256, длина буфера же ограничена при запросе функции чтения, а вот передавать можно без ограничений
|
|||
карма: 22 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
И не хочешь в компонент COM ввести выбор скорости ?
Если захочешь, то прилагаю список скоростей
Вот выкладываю нашу license.txt com-port2.gif |
|||
карма: 25 |
| ||
файлы: 1 | com-port2.gif [28KB] [280] |
Разработчик
Ответов: 26156
Рейтинг: 2127
|
|||
Tad писал(а): И не хочешь в компонент COM ввести выбор скорости ?А надо ли это И не придется ли отказаться от нестандартных скоростей (не у всех они используются, но используются -- у меня, к примеру) ------------ Дoбавленo в 14.16: Tad писал(а): Вот выкладываю нашу license.txtПопробуй на разных портах пробросить, а не эхом |
|||
карма: 22 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
nesco, посмотри выше. Добавил ещё картинку с нашим license.txt
Правда всего 2761 байт, но всё равно за один раз. ------------ Дoбавленo в 14.20: nesco писал(а): Попробуй на разных портах Где-то я встречал, что вроде Com-драйвер винды имеет буфер 4кб. |
|||
карма: 25 |
|
Разработчик
Ответов: 26156
Рейтинг: 2127
|
|||
Tad писал(а): Правда всего 2761 байт, но всё равно за один раз.Да ХЗ, как оно поведет себя, если использовать не эхо-передачу ------------ Дoбавленo в 14.22: Tad писал(а): Просто закротил 2 с 3А где у тебя в схеме порты переключаются, че-то я не догнал |
|||
карма: 22 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
один порт и на передачу и на приём
У кого два порта и кабель есть ! проверьте !!!
Наверное только Леонид нас спсет. |
|||
карма: 25 |
|
Разработчик
Ответов: 26156
Рейтинг: 2127
|
|||
Tad писал(а): один порт и на передачу и на приёмА мне че-то показалось, что это порты 2 и 3, а это пины оказалось. Не исключено, что функция ReadFile игнорирует установленную длину буфера, и ее нужен только указатель на этот буфер |
|||
карма: 22 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
nesco, насчет первой картинки: ты был прав - обрезало.
Обрезало до размера 4110 байт. Значит размер буфера приёма драйвера COM - 4кб ------------ Дoбавленo в 15.02: nesco писал(а): Не исключено, что функция ReadFile игнорирует установленную длину буфераСкорее всего отрабатывает на увеличение вторая
Нужно исправить в SetLength(Buffer,256); 256 на 4096 |
|||
карма: 25 |
|
Разработчик
Ответов: 26156
Рейтинг: 2127
|
|||
Tad писал(а): Скорее всего отрабатывает на увеличение втораяНо данные же уже в этом буфере есть, и записаны они сверх ранее установленных 256, значит функции по веникам установленная длина, и ей нужен только указатель ------------ Дoбавленo в 15.19: Tad писал(а): Нужно исправить в SetLength(Buffer,256); 256 на 4096А ты попробуй выкинуть SetLength(Buffer,256) вообще, тогда и проверим -- нужна ли функции длина |
|||
карма: 22 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
nesco писал(а): А ты попробуй выкинуть SetLength(Buffer,256) вообще------------ Дoбавленo в 17.58: nesco, попробовал.Без этой строки не работает. Поставил
------------ Дoбавленo в 20.31: И сделал себе выбор из стандартного списка. com-scor.gif ------------ Дoбавленo в 20.42: Леонид,[flood] Леонид писал(а): Add(Replace,5357029,217,161)
{ SubStr="10" DestStr="1013" } Запоминаем, как азбуку: в Windows DestStr="1310" LF (ASCII 0x0A) используется в Multics, UNIX, UNIX-подобных операционных системах (GNU/Linux, AIX, Xenix, Mac OS X, FreeBSD и др.), BeOS, Amiga UNIX, RISC OS и других; CR (ASCII 0x0D) используется в 8-битовых машинах Commodore, машинах TRS-80, Apple II, системах Mac OS до версии 9 и OS-9; CR+LF (ASCII 0x0D 0x0A) используется в DEC RT-11 и большинстве других ранних не-UNIX- и не-IBM-систем, а также в CP/M, MP/M (англ.), MS-DOS, OS/2, Microsoft Windows, Symbian OS, протоколах Интернет. [/flood] |
|||
карма: 25 |
| ||
файлы: 1 | com-scor.gif [11.9KB] [290] |
Разработчик
Ответов: 26156
Рейтинг: 2127
|
|||
Tad писал(а): а в каких случаях нужна нестандартная скорость ?Когда тебе пихают устройство, имеющее нестандартную скорость, а ты ничего поделать не можешь. Прикинь, у меня есть устройство, работаюшее на скорости 333 бод. И нужны ли такие новшества, когда прекрасно работало все хрен знает сколько. Номер порта проще переделать, там индекс списка отличается на 1 от номера, а вот со скоростью, увы -- косяк |
|||
карма: 22 |
|