Начал разбирается с элементом ком порта. Оказывается он может принимать только после отправки. А можно как-то организовать прием без отправки? тоесть если устройство начинает передачу то программа срабатывала и высылала в поток принятые данные?
Этот топик читают: Гость
Ответов: 316
Рейтинг: 21
|
|||
карма: 1 |
|
Разработчик
Ответов: 26113
Рейтинг: 2126
|
|||
LastLeader писал(а): Оказывается он может принимать только после отправки. А можно как-то организовать прием без отправки?Это как Насколько мне известно, то передатчик и приемник не зависят друг от друга, и никогда не зависили. Если устройство работает только по запросу, то как можно что-то принять, если устройство не отвечает и ждет запроса |
|||
карма: 22 |
|
Ответов: 316
Рейтинг: 21
|
|||
У меня устройство само формирует пакеты. Вот я нажал кнопку))) Это данные))) Просто распределенка и этим все сказано... И что мне в таком случае делать)))? нет заданного мастер - слейв...
|
|||
карма: 1 |
|
Разработчик
Ответов: 26113
Рейтинг: 2126
|
|||
LastLeader писал(а): У меня устройство само формирует пакетыИ что, нельзя поймать эти пакеты, в чем проблема, можно объяснить нормальным языком |
|||
карма: 22 |
|
Ответов: 316
Рейтинг: 21
|
|||
В том что чтоб прочитать нужно дергнуть - прочитать данные из порта. Они сами должны выскочит
------------ Дoбавленo в 01.19: Как например в сервере и клиенте TCI отправляешь данные на клиенте там ж не нужно дергать лапку принять данные из порта))) |
|||
карма: 1 |
|
Разработчик
Ответов: 26113
Рейтинг: 2126
|
|||
LastLeader писал(а): В том что чтоб прочитать нужно дергнуть - прочитать данные из порта. Они сами должны выскочитУ нас так COM-порт не работает, на точку doRead надо с регулярным интервалом подавать в потоке количество байт, которое необходимо прочитать из буфера порта, если буфер пуст, то на точке onRead будет пустая строка, эта пустая строка и есть синхроимпульс |
|||
карма: 22 |
|
Ответов: 316
Рейтинг: 21
|
|||
А если пакет плавает от 4 до 16 байт, что мне подавать на DuRead? Ну еще у меня на линии не одно устройство, 485 шина. Таким способом можно пропустить не один пакет.
Синхро импульс как таковой мне и не нужен. |
|||
карма: 1 |
|
Разработчик
Ответов: 26113
Рейтинг: 2126
|
|||
LastLeader писал(а): Ну еще у меня на линии не одно устройство, 485 шинаБез преобразователя этот порт не работает с COM-портом напрямую. И все данные буферизируются, так что, пропустить ты ничего не сможешь. Если я не ошибаюся, то в посылке должен быть идентификатор устройства Попробуй использовать асинхроный порт, ищи в компонентах |
|||
карма: 22 |
|
Ответов: 84
Рейтинг: 1
|
|||
LastLeader
А как у вас реализуется физическое подключение к RS-485? Напрямую к COM порту ведь не подключить, только через преобразователь 485-232. А если есть преобразователь - можно послушать порт другим софтом, а потом, зная формат прикрутить это на HiAsm. |
|||
карма: 1 |
|
Ответов: 316
Рейтинг: 21
|
|||
nesco писал(а): Без преобразователя этот порт не работает с COM-портом напрямую------------ Дoбавленo в 17.03: nesco писал(а): Если я не ошибаюся, то в посылке должен быть идентификатор устройства |
|||
карма: 1 |
|
Ответов: 5227
Рейтинг: 587
|
|||
асинхронный можно и на скрипте сделать, пример-mscommcontrol.sha
|
|||
карма: 4 |
| ||
файлы: 1 | mscommcontrol.sha [5.7KB] [402] | ||
Голосовали: | nesco |
Ответов: 16884
Рейтинг: 1239
|
|||
а почему у меня
pcom.png |
|||
карма: 25 |
| ||
файлы: 1 | pcom.png [26.7KB] [762] |
Разработчик
Ответов: 26113
Рейтинг: 2126
|
|||
Tad писал(а): а почему у меняУ меня, кстати, тоже Но я поставил плюс за сам скрипт, в дальнейшем может пригодиться |
|||
карма: 22 |
|
Ответов: 5227
Рейтинг: 587
|
|||
Tad, возможно у тебя нет либо не зарегистрирован этот ActiveX, хотя в winXP он есть и в win98 помоему тоже присутствовал.
|
|||
карма: 4 |
|
Разработчик
Ответов: 26113
Рейтинг: 2126
|
|||
andrestudio писал(а): возможно у тебя нет либо не зарегистрирован этот ActiveXУ нас, с Tad-ом, Семерки |
|||
карма: 22 |
|