Вверх ↑
Этот топик читают: Гость
Ответов: 16884
Рейтинг: 1239
#91: 2008-08-12 10:41:47 ЛС | профиль | цитата
nesco писал(а):
Я, пока, на такое не нарывался


nesco,смотри
1. Открываю новый проект
2. Ставлю MultiElement или MultiElementEX
3. При попытке перейти в Редактор Форм -
Access violation at address 00570E82 in module 'Hiasm.exe'. Read of address 00000076.
У тебя такое есть ?
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26214
Рейтинг: 2138
#92: 2008-08-12 10:54:16 ЛС | профиль | цитата
Да, есть такой баг, подтверждаю
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#93: 2008-08-12 11:00:30 ЛС | профиль | цитата
nesco, спасибо !
Я уже думал, что что-то не обновил.
На душе полегчало...
------------ Дoбавленo:

Получилось из серии - Добре що і в сусіда корова здохла.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26214
Рейтинг: 2138
#94: 2008-08-12 11:03:44 ЛС | профиль | цитата
Tad писал(а):
Я уже думал, что что-то не обновил

Мдя.. Я вот только что обновился, но баг остался
карма: 22

0
Ответов: 125
Рейтинг: 0
#95: 2008-08-12 13:48:31 ЛС | профиль | цитата
Не могу разобраться с чтением СОМ порта. Запись без проблем- кинул данные в порт и все ОК! Смотрел вариант Nesco - почему так много промежуточных компонентов? Почему не получается так же просто записать принятую с СОМ порта строку байт скажем в мемо? Извините, но прежде чем спросить пол дня мучался - сам не могу понять.
карма: 1

0
Разработчик
Ответов: 26214
Рейтинг: 2138
#96: 2008-08-12 13:59:52 ЛС | профиль | цитата
bestsponsor писал(а):
принятую с СОМ порта строку байт скажем в мемо

А потому, что принятый байт (или байты) выдают одно событие, после которого, тот же Memo, переводит строку -- у тебя получатся данные не в линию, а в столбик, а еще -- не надо забывать о ненужном потоке пустых символов, идущих в перерывах между потоками данных
карма: 22

1
Голосовали:bestsponsor
Ответов: 125
Рейтинг: 0
#97: 2008-08-12 14:00:59 ЛС | профиль | цитата
iarspider писал(а):
bestsponsor, или воспользуйся компонентом ComEx (ищи в разделе Upload)
Все обходил - не нашел я его там.
карма: 1

0
Разработчик
Ответов: 26214
Рейтинг: 2138
#98: 2008-08-12 14:03:22 ЛС | профиль | цитата
Вообще-то вся схема приемника сводится вот к такой упрощенной схеме


Add(MainForm,2953706,189,245)
{
}
Add(COM,5708819,350,301)
{
Port=3
link(onRead,12632153:doCase,[])
}
Add(CharArray,1014726,469,308)
{
link(onGetStr,10656416:doCase,[])
}
Add(Case,12632153,399,308)
{
Value=String()
link(onNextCase,3571593:doAdd,[(450,314)(450,391)])
link(onTrue,1014726:doGetStr,[])
}
Add(Case,10656416,518,315)
{
Value=String()
link(onNextCase,8036954:doWork,[])
}
Add(ArrayRW,3571593,469,371)
{
Point(Count)
link(Array,1014726:Array,[])
}
Add(Timer,11901500,252,329)
{
Interval=10
Enable=1
link(onTimer,16112240:doData,[])
}
Add(DoData,16112240,301,329)
{
Data=Integer(1)
link(onEventData,5708819:doRead,[])
}
Add(Hub,15962356,189,294)
{
OutCount=3
link(onEvent2,5708819:doOpen,[])
link(onEvent3,11901500:doTimer,[(237,314)(237,335)])
}
Add(Check,8036954,581,315)
{
Caption="Out"
}
Add(Check,9419350,133,294)
{
Caption="Start"
link(onEvent,15962356:doEvent1,[])
}
Add(Check,14669078,385,350)
{
Caption="Clear"
link(onEvent,1014726:doClear,[(455,356)(455,328)])
}


------------ Дoбавленo:


bestsponsor писал(а):
Все обходил - не нашел я его там

Я бы не рекомендовал его использовать -- размер большой, да еще и глючит регулярно

Схему подправил, тк забыл указать очистку, которую обязательно надо производить после обработки строки
карма: 22

1
Голосовали:bestsponsor
Ответов: 125
Рейтинг: 0
#99: 2008-08-12 14:13:55 ЛС | профиль | цитата
Спасибо! Почему событие OnTimer не может напрямую воздействовать на метод doRead?
карма: 1

0
Разработчик
Ответов: 26214
Рейтинг: 2138
#100: 2008-08-12 14:16:49 ЛС | профиль | цитата
bestsponsor писал(а):
Почему событие OnTimer не может напрямую воздействовать на метод doRead?

Потому, что на точку doRead в потоке надо подать количество считываемых байт за один заход (<= 256)
карма: 22

1
Голосовали:bestsponsor
Ответов: 125
Рейтинг: 0
#101: 2008-08-12 14:31:26 ЛС | профиль | цитата
А размер буфера СОМ порта контролировать можно в HiAsm?
------------ Дoбавленo:

Еще вопрос: время ожидания СОМ порта - это время хранения данных в приемном буфере?
карма: 1

0
Разработчик
Ответов: 26214
Рейтинг: 2138
#102: 2008-08-12 15:33:36 ЛС | профиль | цитата
bestsponsor писал(а):
время ожидания СОМ порта - это время хранения данных в приемном буфере?

Нет, это время, после которого считается, что данные потеряли непрерывность и буфер полностью или частично заполнен и готов на чтение. Здесь надо учитывать момент, когда считывается по-байтно полный буфер, то считаться он должен быстрее, чем придет следующая партия данных на Com-порт, иначе, будет потеря данных
карма: 22

1
Голосовали:bestsponsor
Ответов: 125
Рейтинг: 0
#103: 2008-08-12 16:33:57 ЛС | профиль | цитата
А как установить или узнать хотя-бы размер буфера?
------------ Дoбавленo:

nesco писал(а):
Нет, это время, после которого считается, что данные потеряли непрерывность
Я понимаю так, что это применимо например в таком случае: ожидается прием строки 40 байт, но в течении времени ожидания получено меньше, в результате генерируется событие "прием неполного пакета" или что-то подобное. Проясните пожалуйста.
карма: 1

0
Разработчик
Ответов: 26214
Рейтинг: 2138
#104: 2008-08-12 16:45:45 ЛС | профиль | цитата
bestsponsor писал(а):
А как установить или узнать хотя-бы размер буфера?

В этом компоненте тебе доступны максимум 256 байт за сессию.

bestsponsor писал(а):
ожидается прием строки 40 байт

Не совсем -- ты запрашиваешь 40 байт, они есть в буфере USART, он тебе их отдаст и ждать ничего не будет, если буфер пуст, то подождет и выдаст "пусто". Заполнение буфера происходит вне зависимости от твоего запроса к нему.
карма: 22

1
Голосовали:bestsponsor
Ответов: 125
Рейтинг: 0
#105: 2008-08-12 17:01:07 ЛС | профиль | цитата
nesco писал(а):
он тебе их отдаст и ждать ничего не будет, если буфер пуст, то выдаст "пусто" и тоже сразу
А время ожидания зачем тогда? Что он ожидает? И что произойдет, если не дождется ?
------------ Дoбавленo:

Если эта инфа есть где-то, то направьте меня пожалуйста, чтобы я Ваше время не отнимал.
карма: 1

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)