Вверх ↑
Этот топик читают: Гость
Ответов: 7
Рейтинг: 0
#1: 2010-05-20 12:14:58 ЛС | профиль | цитата
Извините за, возможно дилетантский, вопрос. Попробовал работать с конструктором и сразу возник вопрос. Как передать через СОМ порт единичный байт информации? Строка - да, отдельные символы - тоже, а байт в Integer или Hex никак! Но что то передается.
карма: 0

0
Разработчик
Ответов: 26305
Рейтинг: 2146
#2: 2010-05-20 13:04:40 ЛС | профиль | цитата
Использовать


Add(Convertor,368143,273,273)
{
Mode=6
}
для передачи байта и


Add(Convertor,368143,273,273)
{
Mode=5
}
для приема

Параметр HEX строковый, так что, передается через СОМ без проблем
карма: 22

0
Ответов: 7
Рейтинг: 0
#3: 2010-05-20 14:05:40 ЛС | профиль | цитата
Возможно что конвертер поможет-только куда его включать? Собрана простейшая конструкция- СОМ порт,две кнопки "открыть","закрыть" и на doWrite подаются данные или с кнопки, или с "Поля ввода", или с doData. На выходе индицируется количество переданных байт. Так получается, что количество переданных байт равно количеству знаков в передаваемом байте - т.е. 0А(h) передается за два байта, так же и10(Int).
карма: 0

0
Разработчик
Ответов: 26305
Рейтинг: 2146
#4: 2010-05-20 14:48:20 ЛС | профиль | цитата
genial писал(а):
0А(h) передается за два байта, так же и10(Int)

Еще раз повторюсь, что HEX -- текстовый формат и является текстовым представлением бинарных данных, но не самими исходными бинарными данными. Кстати, 10(int) занимает 4-е байта (32 bit). Возможно, имелось в виду -- передача именно исходных бинарных данных Так вот надо определиться, что конкретно передавать надо и для каких целей. Для хранения и обмена бинарными данными существует -- stream, что и означает -- непрерывный поток бинарных данных определенной длины
карма: 22

0
Ответов: 7
Рейтинг: 0
#5: 2010-05-20 15:20:01 ЛС | профиль | цитата
Я думал, что все изложил достаточно прозрачно. Для управления внешним устройством мне необходимо передать один байт информации, который затем дешифруется (демаскируется) прцессором и включает соответствующую функцию. Например, для пуска внешнего устройства я должен передать код 43h. Так вот я не могу его передать, разве что как string? А как другие коды до FFh?
карма: 0

0
Разработчик
Ответов: 26305
Рейтинг: 2146
#6: 2010-05-20 16:16:41 ЛС | профиль | цитата
genial писал(а):
разве что как string?

Символ -- тоже string, длиной в один символ.

genial писал(а):
я должен передать код 43h

И что мешает сделать вот так



Add(MainForm,2953706,203,119)
{
link(onCreate,1032931:doOpen,[])
}
Add(Edit,12455190,140,168)
{
Left=30
Top=15
Width=125
Text="43"
Alignment=1
}
Add(Convertor,4341694,140,224)
{
Mode=5
link(onResult,12619467:doConvert,[])
link(Data,12455190:Text,[])
}
Add(Convertor,12619467,196,224)
{
Mode=4
link(onResult,1032931:doWrite,[(257,230)(257,160)])
}
Add(COM,1032931,280,133)
{
link(onWrite,12723005:doText,[])
}
Add(Button,8348543,84,224)
{
Left=40
Top=45
link(onClick,4341694:doConvert,[])
}
Add(Edit,12723005,336,133)
{
Left=105
Top=45
Text=""
}

карма: 22

0
Ответов: 8961
Рейтинг: 824
#7: 2010-05-20 16:32:08 ЛС | профиль | цитата
genial, то же, но видно, что происходит code_18388.txt
карма: 19

0
файлы: 1code_18388.txt [1.7KB] [249]
Ответов: 7
Рейтинг: 0
#8: 2010-05-21 12:27:32 ЛС | профиль | цитата
Как говорится:"Дело было не в бобине-раздолбай сидел в кабине!" Все оказывается было в правильном преобразовании данных. Проверил-работает!
Ничего, кроме благодарности и уважения!
карма: 0

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