Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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]


> Нужно послать в порт команду


что за устройство ?
почему именно в строковом формате ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо