Вверх ↑
Этот топик читают: Гость
Разработчик
Ответов: 26155
Рейтинг: 2127
#91: 2011-11-27 14:21:04 ЛС | профиль | цитата
Tomset91 писал(а):
только чего "валенок" илб Кб

"валенок"
карма: 22

0
Ответов: 3889
Рейтинг: 362
#92: 2011-11-27 14:25:04 ЛС | профиль | цитата
Это один из вопиющих примеров идиотской организации интерфейса с пользователем, характерный для коммерческой продукции, ориентированной на широкую аудиторию. Если профессионал пишет для таких же, как он, не считая их глупее себя, то он даёт полный контроль или хотя бы общепринятое представление информации, а коммерческий ширпотреб такую терминологию использует и такое выдаёт порою...
карма: 1

0
Ответов: 51
Рейтинг: 3
#93: 2011-11-27 14:25:11 ЛС | профиль | цитата
Tomset91 писал(а):
но случайно закрыл панель "элементы" как её снова вывести? уже даже не знаю куда и тыкать?

карма: 0

0
Ответов: 3889
Рейтинг: 362
#94: 2011-11-27 14:30:38 ЛС | профиль | цитата
Tomset91, Вид - Палитра элементов
карма: 1

0
Ответов: 51
Рейтинг: 3
#95: 2011-11-27 14:44:46 ЛС | профиль | цитата
1nd1g0 писал(а):
Tomset91, Вид - Палитра элементов
Ок, спасиб нашёл А можно как нить сделать что бы при смене скорость порт сам инициализировался?
карма: 0

0
Ответов: 3889
Рейтинг: 362
#96: 2011-11-27 14:51:04 ЛС | профиль | цитата
Tomset91 писал(а):
сделать что бы при смене скорость порт сам инициализировался?

Это ВАША задача, кто тут у нас программу пишет? Это буквально один элемент добавить.
карма: 1

0
Ответов: 51
Рейтинг: 3
#97: 2011-11-27 15:00:13 ЛС | профиль | цитата
1nd1g0 писал(а):
Это ВАША задача, кто тут у нас программу пишет? Это буквально один элемент добавить.
Да только хаб добавить
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#98: 2011-11-27 18:34:32 ЛС | профиль | цитата
code_25989.txt
Хотя в чем проблема, так и не понимаю.
comport1.rar
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 2code_25989.txt [1.8KB] [160], comport1.rar [773B] [107]
Ответов: 51
Рейтинг: 3
#99: 2011-12-09 08:37:35 ЛС | профиль | цитата
С компонентом порта разобрался, теперь хочу делать программу для взаимодейсвия с ПК... Сегодня решил сделать такое: нужно вывести 7 числовых значений в разных полях на форме... Допустим контроллер отравляет строку ReadUARTStart, получив эту строку "программа ПК" понимает что после неё нужно считать 7 байт из порта и разложить каждый байт в своё поле на форме в десятичном формате (0-255). Я так понимаю что с порта нужно циклически читать по 20 байт, и только есть 13 первых байт соответствуют строке "ReadUARTStart" то 7 последующих выводим, так будет правильней? Это лишь пример алгоритма, можете предложить свой более рациональный и я опробую его в железе. Цель понять как это сделать в HiAsm...
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#100: 2011-12-09 09:42:36 ЛС | профиль | цитата
Tomset91 писал(а):
С компонентом порта разобрался
опытом поделись
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 8926
Рейтинг: 823
#101: 2011-12-09 12:02:13 ЛС | профиль | цитата
Tomset91 писал(а):
с порта нужно циклически читать по 20 байт, и только есть 13 первых байт
Полагаю, что надо читать порт в соответствии с установленной скоростью, полученные строковые данные склеивать с предыдущими, искать Вашу стартовую строку, по нахождении -- извлекать данные и удалять из склеенной строки обработанное.
карма: 19

0
Разработчик
Ответов: 26155
Рейтинг: 2127
#102: 2011-12-09 12:14:06 ЛС | профиль | цитата
Леонид писал(а):
Полагаю, что надо читать порт в соответствии с установленной скоростью

И вот объясни -- на кой хрен это делать, если данные идут не непрерывным потоком, а, скорее всего, так оно и есть
На мой взгляд делается все проще -- постоянно читаем 13 байт, если не соответстуют нашей команде, чистим буфер и читаем дальше, если команда совпала, дочитываем остаток в 7 байт, можно не меня установку в 13 байт, все рано прочитает, но с небольшой задержкой.
Можно и 20 байт читать постоянно, будут маленькие задержки у порта на чтение, но это несущественно, тогда еще проще -- считал строку обрезал по 13 байтам, проверил на соответствие команде, совпала -- отправил остаток на обработку, не совпала -- оставил все "как есть" до следующей порции данных, следующая обработка все запишет поверх предыдущих.
Точно по такому же принципу у меня работает система уже четвертый год -- ловятся данные и затем уже парсятся и проверяются на соответствие, и, причем, не один канал, а несколько.
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#103: 2011-12-09 14:26:11 ЛС | профиль | цитата
А я бы применил такую систему:
@ReadUARTStart=ХХХХХХХ# - где ХХХХХХХ - данные, а "@" - знак начала команды (стартовый), "#" - знак конца команды (стоповый) и читал бы по одному знаку. Стартовые и стоповые знаки можно выбрать любые, какие понравятся.
При таком подходе, команды и данные могут быть переменного размера.

Это не моё изобретение - на таком принципе делают дистанционное управление трансиверами Kenwood с клавиатуры по COM-порту.
Правда там в качестве стартового применяют комбинацию <Ctrl+C> (код 03), а в качестве стопового <CTRL+D> (код 04)

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26155
Рейтинг: 2127
#104: 2011-12-09 14:50:23 ЛС | профиль | цитата
Tad писал(а):
При таком подходе, команды и данные могут быть переменного размера

Все правильно, а если длина постоянная, то смысла читать по одному байту я совсем не вижу. Однобайтовое чтение хорошо работает с контроллерами, но в буферизированной системе смысла в этом никакого нет. К тому же, чтение строки целиком происходит быстрее, чем побайтное чтение той же строки. Я проверл разные режимы чтения, но все же остановился на фиксированном чтении определенной длины, отличной от 1 байта
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#105: 2011-12-09 15:39:37 ЛС | профиль | цитата
nesco, ты меня извини, но подгонять все команды под 13 знаков, а данные под 7 - это идиотизм (другого слова нет).
И
nesco писал(а):
фиксированном чтении определенной длины
- это "рванное" чтение.


карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)