Telnet - увидеть данные в двоичном коде. или не telnet )
#1
Отправлено 21 ноября 2016 - 11:06
#2
Отправлено 21 ноября 2016 - 11:15
Надо написать программу работающую с сокетами. Простейший вариант на php.
Или возможно
#3
Отправлено 21 ноября 2016 - 11:27
P.S. использую mswinsck.ocx.
#5
Отправлено 21 ноября 2016 - 11:33
Win-1251, koi-8 типа того.
Байты они не читаемы.
#6
Отправлено 21 ноября 2016 - 11:36
Описание протокола: приходит 5 байт.
Компонента говорит, что приходит 5 байт.
Показывает строку "Ђ› "
Получаю коды символов: 1026 4 8250 0 0
Перевожу их в двоичный вид: 10000000010 00000100 10000000111010 00000000 00000000
Ну и какие же это байты? Длина должна быть 40 бит.
Кстати, в строке не все символы отобразились как есть, браузер, похоже, не умеет.
Сообщение отредактировал FreeLSD: 21 ноября 2016 - 11:42
#7
Отправлено 21 ноября 2016 - 11:49
Я понимаю, что проблема именно в этом. Но я не могу заставить 1С читать коды символов в чем-то кроме юникода. И вообще не представляю, как их выдает компонента. Поэтому мне бы избежать всяких преобразований вообще. Понятно, что можно взять и наваять что-то самому. Но зачем изобретать велосипед, наверняка же такая задача возникала уже в истории человечества
#8
Отправлено 21 ноября 2016 - 12:01
Цитата
Т.е. устройство сетевое и у нее есть какой-то открытый порт ?
Я детей вообще то боюсь, милостивый мой государь, - шумливы, жестоки и себялюбивы, а коли дети правят державой? ©Юлиан Семёнов
Ничего не делается к лучшему © Борис Раушенбах
Люди, люди — это самое главное. Люди дороже даже денег. © Ф.М. Достоевский
#9
Отправлено 21 ноября 2016 - 12:09
Хорошо заданный вопрос уже 50% ответа
#10
Отправлено 21 ноября 2016 - 12:43
1. Устройство (весы). Имеет IP-адрес, слушает на определенном порту. Принимает запрос и возвращает 5 байт.
2. В этих байтах имеют значение отдельные биты (так организован протокол), к тому же часть данных передается в обратном порядке (сначала второй байт, потом первый).
3. Компонента mswinsck.ocx, получив эти 5 байт, выдает их в виде строки (т.е. байты уже преобразованы в символы). Попытка преобразовать и обратно хотя бы в 16ричный код дает иногда нормальный, иногда странный результат. Putty видит все как надо, хоть и в 16ричном, а не двоичном виде.
Так что проблема все-таки в преобразовании значения в символ.
Вывод: с используемой компонентой вряд ли можно добиться нормального результата, хотя бы потому, что принципы "озвучивания" ею байтов не ясны.
#11
Отправлено 21 ноября 2016 - 12:55
Вот пример - видим в телнет 4 символа, а в реальности их 7.
Я детей вообще то боюсь, милостивый мой государь, - шумливы, жестоки и себялюбивы, а коли дети правят державой? ©Юлиан Семёнов
Ничего не делается к лучшему © Борис Раушенбах
Люди, люди — это самое главное. Люди дороже даже денег. © Ф.М. Достоевский
#12
Отправлено 21 ноября 2016 - 14:10
#13
Отправлено 21 ноября 2016 - 14:19
Я детей вообще то боюсь, милостивый мой государь, - шумливы, жестоки и себялюбивы, а коли дети правят державой? ©Юлиан Семёнов
Ничего не делается к лучшему © Борис Раушенбах
Люди, люди — это самое главное. Люди дороже даже денег. © Ф.М. Достоевский
#14
Отправлено 21 ноября 2016 - 14:30
#15
Отправлено 21 ноября 2016 - 15:24
Пример: Putty показывает байт A8. mswinsck передает в 1С его в виде буквы "Ё". 1С определяет, что код этого символа - 1025 (десятичный). Но это не соответствует шестнадцатиричному! Вот и возникает проблема.
#16
Отправлено 21 ноября 2016 - 15:40
Как выглядит запрос?
#18
Отправлено 21 ноября 2016 - 16:00
Это ActiveX бибилиотека, часть Visual Studio, насколько я знаю. Файл mswinsck.ocx. 1Сники часто его используют, посколльсу стандартный, легкодоступный и легкоприменяемый.
К 1С подключается как обычный ActiveX компонент.
До сих пор проблем с ней не было, это первый случай. Да и то не факт, что именно с ней проблема, возможно, проблема в разных таблицах символов.
На что заменить, не знаю, вот и ищу.
1С поддерживает кучу способов обмена, вот только TCP/IP среди них почему-то и нет. Почему и приходится рассчитывать на внешние компоненты.
#19
Отправлено 21 ноября 2016 - 16:03
Набираю ALT+168, получаю "¨". Почему-то компонента передает "Ё"
#20
Отправлено 21 ноября 2016 - 17:12
В Юникоде символ с кодом A8 - это
Можно ли как-то быстро определить, в какой существующей таблице этот код соответствует символу