|
Передать ASCI строку в COM объект | ☑ | ||
---|---|---|---|---|
0
Impuls20_03
02.05.18
✎
16:50
|
Такая тема. Использую MSCOM32 для работы с COM портами. На оборудование надо отправить команду: f8 55 ce 01 00 90 90 00
Не подозревая подвоха перевожу hex в dec, формирую строку: стр = Символ(248)+Символ(85)+Символ(206)+Символ(1)+Символ(0)+Символ(160)+Символ(160)+Символ(0)); На оборудовании получаю: 6f 55 49 01 00 a0 a0 00 Пишу такой код: Для пе=1 по 255 Цикл КомПорт.Output = Символ(пе); КонецЦикла; На оборудовании получаю: 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 ................ 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 ............... 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f 30 !"#$%&'()*+,-./0 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f 40 123456789:;<=>?@ 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f 50 ABCDEFGHIJKLMNOP 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f 60 QRSTUVWXYZ[\]^_` 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 abcdefghijklmnop 71 72 73 74 75 76 77 78 79 7a 7b 7c 7d 7e 7f 3f qrstuvwxyz{|}~? 3f 3f 3f 3f 3f 3f 3f 3f 3f 3f 3f 3f 3f 3f 3f 3f ???????????????? 3f 3f 3f 3f 3f 3f 3f 98 3f 3f 3f 3f 3f 3f 3f a0 ?????????????? 3f 3f 3f a4 3f a6 a7 3f a9 3f ab ac ad ae 3f b0 ???¤?¦§?©?«¬®?° b1 3f 3f 3f b5 b6 b7 3f 3f 3f bb 3f 3f 3f 3f 41 ±???µ¶·???»????A 41 41 41 41 41 3f 43 45 45 45 45 49 49 49 49 3f AAAAA?CEEEEIIII? 4e 4f 4f 4f 4f 4f 3f 4f 55 55 55 55 59 3f 3f 61 NOOOOO?OUUUUY??a 61 61 61 61 61 3f 63 65 65 65 65 69 69 69 69 3f aaaaa?ceeeeiiii? 6e 6f 6f 6f 6f 6f 3f 6f 75 75 75 75 79 3f 79 nooooo?ouuuuy?y Т.е. первые 127 символов нормально, а дальше как повезет. Тема то старая, но сам решить не могу. Пробовал отдавать массив - выдает ошибку. Подскажите куда можно копнуть? |
|||
1
Garykom
гуру
02.05.18
✎
16:55
|
||||
2
Impuls20_03
02.05.18
✎
17:08
|
(1) Это не совсем то. Она все равно будет отправлять строку. Строку я могу и mscom32 отправить. Как послать массив байтов?
|
|||
3
Garykom
гуру
02.05.18
✎
17:47
|
(2) Там есть исходники отправляй что хочешь.
|
|||
4
zwei
02.05.18
✎
17:53
|
Преобразуй через adodb.stream в ansi
|
|||
5
int32i
02.05.18
✎
18:52
|
У MSCOMM32 есть Property InputMode As InputModeConstants
Const comInputModeText = 0 Const comInputModeBinary = 1 покопай в этом направлении |
|||
6
Impuls20_03
03.05.18
✎
10:54
|
Всем спасибо. Решил проблему через вызов VBScript. Вот код:
Функция ВернутьСтр(Стр) sc = Новый COMОбъект("MSScriptControl.ScriptControl"); sc.language="VBscript"; Команда = ""; Для н = 1 По СтрДлина(Стр) Цикл Команда = Команда + sc.eval("Chr("""+КодСимвола(Стр, н)+""")"); КонецЦикла; Возврат Команда; КонецФункции |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |