![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
IntToHex
led © (2003-07-10 13:35:00)
Мастера, кто подскажет?
Нужно послать в порт команду: 02h 32h 55h 42h
Верно ли я делаю (перевел команду из 16 в 10):
inttohex (2,2) +" "+inttohex(50,2) +" "+inttohex(85,2) +" "+inttohex(66,2), то есть получаю из десятичной системы HEX?
И нужно ли разделители ставить +" "+ ?
Anatoly Podgoretsky (2003-07-11 19:34:00) [1]
WarLord © (11.07.03 13:13)
А так и понимай, именно послать код $44, как:
$44
68
"D"
чтобы значение было 68 в десятичном исчислении, оно же 01000100 в двоичном.
А вот что бы все это понять как раз и нужны уроки ЮЗ, тогда не будешь плавать между исчисления и представлениями.
Nucl (2003-07-11 16:28:00) [2]
ё, да шли и так и так, в одном из слючает весы тебе ответят ;)
DieHard (2003-07-11 15:49:00) [3]
2 pasha676:
и чем же эти вещи отличаются?
WarLord (2003-07-11 13:13:00) [4]
2pasha676
Цитирую инструкцию: "код команды (в двоичной системе) 01000100"
вот и понимай как хочешь...
2Германн
Надо, конечно, сходить, не спорю.
pasha676 (2003-07-11 09:53:00) [5]
2WarLord
> По инструкции мне надо было посылать команды типа 44h -
> сработало CHR($44)
ну так прочти наконец инструкцию. Что там написано. Послать байт 44h или послать символ с кодом 44h. Суть вещи разные.
Германн (2003-07-11 02:17:00) [6]
2 WarLord © (10.07.03 22:46)
Очень похоже на шаманство. :(((
Ребята! Led и WarLordа может быть стоит пойти на уроки Ю.Зотова. Тогда бы не было фраз, типа сработало. А были бы фразы, типа надо делать так.
WarLord (2003-07-10 22:46:00) [7]
По инструкции мне надо было посылать команды типа 44h - сработало CHR($44)
Также и тебе: 02h 32h 55h 42h - это будет
ComPort.WriteStr(Chr($02)+Chr($32)+Chr($55)+Chr($42))
pasha676 (2003-07-10 17:28:00) [8]
Хватить народ веселить. Посылать надо число в хексе. А inttohex(85,2) тебе даст строку. Ты понимаешь разницу между строкой и хексом? Если нет то отойди от весов, сломаешь нафиг. Млин, насчет знака пробела тоже сильно :)
Digitman (2003-07-10 15:08:00) [9]
> пока не придумал ..., а так вроде
> пойдет
ну дерзай)
MBo (2003-07-10 15:00:00) [10]
;)
led (2003-07-10 14:50:00) [11]
просто пока не придумал как запустить на порт команду, а так вроде пойдет
Digitman (2003-07-10 14:46:00) [12]
> led
нет, ну а почему ты решил, что весы ожидают команду именно в строковом представлении ?
led (2003-07-10 14:40:00) [13]Спасибо, ребята, что откликнулись!
В этом и проблема, что нет никакой информации. Знаю только команду, которая записывается в порт, иммулируется нажатие Энтер и через ComPort.ReadStr должна возвращать то, что на табло.
Это строка:=#2#$32#$55#$42 + #13(перевод каретки);
( строка)Спасибо, ребята, что откликнулись!
В этом и проблема, что нет никакой информации. Знаю только команду, которая записывается в порт, иммулируется нажатие Энтер и через ComPort.ReadStr должна возвращать то, что на табло.
Это строка:=#2#$32#$55#$42 + #13(перевод каретки);
ComPort.WriteStr (строка);
Это знак пробела # ?Сегодня устрою проверку.
Digitman (2003-07-10 14:25:00) [14]
> led
и что ? документации на программный интерфейс контроллера весов у тебя нет ?
MBo (2003-07-10 14:19:00) [15]
скорее всего, так пойдет -
строка:=#2#$32#$55#$42;
ComPort.WriteStr (строка);
led (2003-07-10 14:16:00) [16]
А если я отошлю так, как я написал ComPort.WriteStr (строка), где строка собственно сам 16-ный код: 02h 32h 55h 42h или нужно
$2 $32 $55 $42 ?
К сожелению, сейчас нет под рукой весов,что бы сразу попробывать.
MBo (2003-07-10 13:59:00) [17]
большинству устройств нужно посылать последовательность байт
writebyte($02);
writebyte($32);
и т.д.
или разом
ByteArr[0]:=2;
ByteArr[1]:=$32;
WriteBuf(Bytearr, DataLength);
Есть такие, которым нужно именно строковое представление типа
writestring("RDCHNL 1"#10);
но к твоему случаю, это, видимо, не относится.
led (2003-07-10 13:55:00) [18]
Устройство контролер весов, на табло -вес и его надо считать в прогу, послав команду 02h 32h 55h 42h
Посылаю строку, потому что использую компонент ComPortLibrary:
ComPort.WriteStr(здесь строка);
Digitman (2003-07-10 13:47:00) [19]
> Нужно послать в порт команду
что за устройство ?
почему именно в строковом формате ?