Автор Тема: Разминка для программистов  (Прочитано 10382 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Рязанский

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 1036
  • Похвалили: 336 раз(а)
  • Димка
  • Откуда: Рязань
    • Сайт поддержки ДК
вот ни как не разберусь, как инкотексовские программисты упаковали числа.
вот табличка -
десятичное число - упакованное число - шестнадцатеричное распакованное число
0      00         00
1      01         01
2      02         02
...
80     50         50
90     5a         5a
100    64         64 
120    78
126    7e
127    7f         7f
128    0180       80
129    0181       81
252    01fc      fc
253    01fd       fd
254    01fe       fe
255    01ff       ff
256    0280     0100
258    0282     0102
500    03f4     01f4
511    03ff     01ff
512    0480     0200
1000   07e8     03e8
2000   0fd0     07d0
15000  7598     3a98
100000 068da0 0186a0
16777214 07fffffe    fffffe

как-то крутят с битами.
В числе закодировано и количество байт,  занимаемое числом.
А у нас в Рязани  - грибы с глазами,
Их едят, а они глядят.
Рязанский
 

Оффлайн drfaust

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 5277
  • Похвалили: 575 раз(а)
  • Я не Шариков, просто судьба располосовала мой лоб.
  • Откуда: РФ, Лангепас, MSK+2 (UTC+5)
    • faust.dlinkddns.com
Re: Разминка для программистов
« Ответ #1 : 29/09/2018 02:31:12 »
А если так:
0      00         
1      01         
2      02         
...
80     50       
90     5a       
100    64       
120    78
126    7e
127    7f       
7-бит закончились, ставим лишний байт в 1 и "обратный отсчёт"
128    01_80
129    01_81
252    01_fc
253    01_fd
254    01_fe
255    01_ff
тут непонятно - должны были пойти снова с 02_00
256    0280
258    0282

511    03ff 

512     0480

Скорее не байты закодировали, а 7битные блоки, но со знаковым не разберусь. Отрицательные(в десятичной) тут есть или нет? Чую логика простая как лом, но уловить не могу.
Не кассами одними жив ЦТО ;-)
 

Оффлайн chellenger

  • Модератор раздела
  • Эксперт
  • ****
  • Сообщений: 13756
  • Похвалили: 2515 раз(а)
  • Откуда: Питер, +79095794064 Пишите в WhatsApp и телегу, так быстрей.
    • Сампо-Сервис
Re: Разминка для программистов
« Ответ #2 : 29/09/2018 02:39:48 »
Интересно конечно самому разобраться, но увы нет времени. С удовольствием наблюдаю за поиском истины.
Возник вопрос -а какую смысловую нагрузку несёт кодированная инфа? Т.е. что это за структура?
С уважением, Александр.
www.sampokkm.ru
 
Это сообщение считают полезным: drfaust

Оффлайн chellenger

  • Модератор раздела
  • Эксперт
  • ****
  • Сообщений: 13756
  • Похвалили: 2515 раз(а)
  • Откуда: Питер, +79095794064 Пишите в WhatsApp и телегу, так быстрей.
    • Сампо-Сервис
Re: Разминка для программистов
« Ответ #3 : 29/09/2018 02:49:02 »
Ради интереса попросим Сергея Алексеевича не раскрывать карты раньше времени ::)
С уважением, Александр.
www.sampokkm.ru
 

Оффлайн Рязанский

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 1036
  • Похвалили: 336 раз(а)
  • Димка
  • Откуда: Рязань
    • Сайт поддержки ДК
Re: Разминка для программистов
« Ответ #4 : 29/09/2018 03:17:15 »
Так они кодируют цену и количество.
длина записи меняется. Вот только не понимаю смысла в таком сжатии. Протокол очень перегружен лишними данными и несколько байт никак не повлияли бы на скорость обмена с фр.
А так - получили ошибки в драйвере.
Я уж и по битам записывал эти числа. Только найдется какая-то закономерность - попадается какое-то число, которое не подходит под этот вариант.
Нужен свежий взгляд. Тут что-то простое.
А у нас в Рязани  - грибы с глазами,
Их едят, а они глядят.
Рязанский
 

Оффлайн chellenger

  • Модератор раздела
  • Эксперт
  • ****
  • Сообщений: 13756
  • Похвалили: 2515 раз(а)
  • Откуда: Питер, +79095794064 Пишите в WhatsApp и телегу, так быстрей.
    • Сампо-Сервис
Re: Разминка для программистов
« Ответ #5 : 29/09/2018 03:19:14 »
Рязанский, я правильно понял что это кодировка из протакола обмена?
С уважением, Александр.
www.sampokkm.ru
 

Оффлайн chellenger

  • Модератор раздела
  • Эксперт
  • ****
  • Сообщений: 13756
  • Похвалили: 2515 раз(а)
  • Откуда: Питер, +79095794064 Пишите в WhatsApp и телегу, так быстрей.
    • Сампо-Сервис
Re: Разминка для программистов
« Ответ #6 : 29/09/2018 03:21:03 »
И если так то получается протакол закрыт. Верней этим кодированием и закрыли.
С уважением, Александр.
www.sampokkm.ru
 

Оффлайн Рязанский

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 1036
  • Похвалили: 336 раз(а)
  • Димка
  • Откуда: Рязань
    • Сайт поддержки ДК
Re: Разминка для программистов
« Ответ #7 : 29/09/2018 03:22:42 »
Чую логика простая как лом, но уловить не могу.
Вот и я пару часов на этом потерял...
Байты идут младшим вперёд. Очень похоже, что в последнем байте никогда не встречается старшего бита (что то вроде признака конец записи)
А у нас в Рязани  - грибы с глазами,
Их едят, а они глядят.
Рязанский
 

Оффлайн chellenger

  • Модератор раздела
  • Эксперт
  • ****
  • Сообщений: 13756
  • Похвалили: 2515 раз(а)
  • Откуда: Питер, +79095794064 Пишите в WhatsApp и телегу, так быстрей.
    • Сампо-Сервис
Re: Разминка для программистов
« Ответ #8 : 29/09/2018 03:23:32 »
Совсем глупая мысль. Не нужно искать мат. ответ там где его нет... Хотя думаю он есть.
С уважением, Александр.
www.sampokkm.ru
 

Оффлайн Рязанский

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 1036
  • Похвалили: 336 раз(а)
  • Димка
  • Откуда: Рязань
    • Сайт поддержки ДК
Re: Разминка для программистов
« Ответ #9 : 29/09/2018 03:44:26 »
Протокол не совсем закрыт, скорее, он не документирован. К тому же, он ещё меняется.
Например, по текущему протоколу невозможно узнать, напечатан чек или нет. Касса отвечает одинаково всегда. То же самое и с открытием-закрытием смены. Касса отвечает всегда сразу, до реальной печати чека.
А у нас в Рязани  - грибы с глазами,
Их едят, а они глядят.
Рязанский
 

Оффлайн SERZH

  • Активный форумчанин
  • Ветеран
  • **
  • Сообщений: 777
  • Похвалили: 81 раз(а)
  • Откуда: Волгоград
Re: Разминка для программистов
« Ответ #10 : 29/09/2018 11:25:39 »
252    01_fc
253    01_fd
254    01_fe
255    01_ff
тут непонятно - должны были пойти снова с 02_00
256    0280
258    0282
А если предположить что это не то что вы думаете а просто адрес числа тогда 7f+1=80  и так далее
« Последнее редактирование: 29/09/2018 21:11:42 от SERZH »
Как здорово что все мы здесь сегодня собрались
 

Оффлайн alcohelp

  • Наш человек
  • Старожил
  • ***
  • Сообщений: 273
  • Похвалили: 96 раз(а)
  • Откуда: Самара
Re: Разминка для программистов
« Ответ #11 : 29/09/2018 11:42:07 »
Упакованные 383, 384, 385 есть?
 

Оффлайн alcohelp

  • Наш человек
  • Старожил
  • ***
  • Сообщений: 273
  • Похвалили: 96 раз(а)
  • Откуда: Самара
Re: Разминка для программистов
« Ответ #12 : 29/09/2018 12:53:20 »
Если упакованное число перевести в bin, видим, что в 8 разряде просто проставляется 1 как разделитель разрядов (запятая) и разряды сдвигаются.
 

Оффлайн tridentxp

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 7516
  • Похвалили: 1107 раз(а)
  • Откуда: ARMвиль
Re: Разминка для программистов
« Ответ #13 : 29/09/2018 12:55:31 »
вплоть до 15000 срабатывает правило деления безнаковых на 128:
упакованное XXYY -> ((255 AND (XX-1))*128) + YY.
15000->7598(XXYY)->3a98
0x75 - 1
0x74*0x80 = 3A00 ->+0x98.
дальше какой то разрыв шаблона.
то, что дарвин и вы называете эволюцией, является лишь умыслом Отца.
 

Оффлайн alcohelp

  • Наш человек
  • Старожил
  • ***
  • Сообщений: 273
  • Похвалили: 96 раз(а)
  • Откуда: Самара
Re: Разминка для программистов
« Ответ #14 : 29/09/2018 13:11:44 »
Во всех разрядах кратных восьми вставляется разделитель - 1.
1000 - 1111101000 - 11111101000
15000 - 11101010011000 - 111010110011000
100000 - 11000011010100000 - 1101000110110100000





 

Оффлайн Рязанский

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 1036
  • Похвалили: 336 раз(а)
  • Димка
  • Откуда: Рязань
    • Сайт поддержки ДК
Re: Разминка для программистов
« Ответ #15 : 29/09/2018 13:13:50 »
Упакованные 383, 384, 385 есть?
Только в понедельник смогу получить.
Тут явно отсутствие старшего бита означает конец числа. А вот в остальных байтах он всегда установлен.
А у нас в Рязани  - грибы с глазами,
Их едят, а они глядят.
Рязанский
 

Оффлайн Рязанский

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 1036
  • Похвалили: 336 раз(а)
  • Димка
  • Откуда: Рязань
    • Сайт поддержки ДК
Re: Разминка для программистов
« Ответ #16 : 29/09/2018 13:18:14 »
7бит под значение и старший бит под флаг окончания числа.
Очень похоже. Нужно будет проверить.
А у нас в Рязани  - грибы с глазами,
Их едят, а они глядят.
Рязанский
 

Оффлайн alcohelp

  • Наш человек
  • Старожил
  • ***
  • Сообщений: 273
  • Похвалили: 96 раз(а)
  • Откуда: Самара
Re: Разминка для программистов
« Ответ #17 : 29/09/2018 13:20:40 »
Упакованные 383, 384, 385 есть?
Только в понедельник смогу получить.
Тут явно отсутствие старшего бита означает конец числа. А вот в остальных байтах он всегда установлен.
2FF, 380, 381
 

Оффлайн villain

  • Активный форумчанин
  • Постоялец
  • **
  • Сообщений: 176
  • Похвалили: 19 раз(а)
  • Откуда: Североуральск
Re: Разминка для программистов
« Ответ #18 : 29/09/2018 21:57:16 »
Ну и скажите мне,зачем,вам,это нужно?Честно, интерес. Или....Российские предприниматели. промолчу.Я еще понимааю.
 

Оффлайн GS

  • Похвалили: 257 раз(а)
  • Откуда: Томск -> Новосибирск
Re: Разминка для программистов
« Ответ #19 : 29/09/2018 22:34:44 »
villain, реально не понимаешь? программу пишет он свою под недокументированный протокол
 
Это сообщение считают полезным: Master X

Онлайн Master X

  • https://t.me/MasterX483
  • Глобальный модератор
  • Эксперт
  • ****
  • Сообщений: Я форумный маньяк!!
  • Похвалили: 1516 раз(а)
  • Для Спасибок:9+2!0№2;9!6%6(9)5_0
  • Откуда: г.Горький
    • АРХИВ_Профсоюза
Re: Разминка для программистов
« Ответ #20 : 29/09/2018 22:37:51 »
villain, реально не понимаешь? программу пишет он свою под недокументированный протокол
А если точнее чтоб за авторские не в......
Linux is working. The future is open(Ц)IBM
Если найдёте ошибки в форуме или чего нужно исправить пишите мне в личку
 

Оффлайн promah

  • Шил, шью, буду шить.
  • Резидент
  • Эксперт
  • ****
  • Сообщений: 4374
  • Похвалили: 732 раз(а)
  • Снимаю, порчу, лечу по фотографии
Re: Разминка для программистов
« Ответ #21 : 30/09/2018 01:51:11 »
А если точнее чтоб за авторские не в......
Авторские это да....
ээээ съсилько , бррр ... мне как-то прилетало , потом долго-больно челюсти было.
« Последнее редактирование: 01/10/2018 21:28:53 от Master X »
 

Оффлайн tridentxp

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 7516
  • Похвалили: 1107 раз(а)
  • Откуда: ARMвиль
Re: Разминка для программистов
« Ответ #22 : 30/09/2018 10:12:47 »
Ну и скажите мне,зачем,вам,это нужно?
шоб мосцк не застаивался. да и ваще во времена азэлка много чо интересного делали. . .
то, что дарвин и вы называете эволюцией, является лишь умыслом Отца.
 
Это сообщение считают полезным: alcohelp

Оффлайн Рязанский

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 1036
  • Похвалили: 336 раз(а)
  • Димка
  • Откуда: Рязань
    • Сайт поддержки ДК
Re: Разминка для программистов
« Ответ #23 : 01/10/2018 22:26:16 »
проверил, подтверждаю:
7бит под значение и старший бит под флаг окончания числа.

Сделал тест для меркурия.
Желающие могут потестить.

Как обычно, никакие драйвера производителя не требуются (только usb-com установить), работает напрямую по протоколу нижнего уровня.

Некоторые команды и параметры ФР просто игнорирует!

ps:Стоит отдельную тему заводить?
А у нас в Рязани  - грибы с глазами,
Их едят, а они глядят.
Рязанский
 
Это сообщение считают полезным: angre, svv, otter, Master X, procesor, pavel_net, 7SSS7, smarttech, ДОЛГОПОЛОВ, ravil1965.65, Вячеслав К

Оффлайн got10

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 2344
  • Похвалили: 596 раз(а)
Re: Разминка для программистов
« Ответ #24 : 30/04/2019 22:05:06 »
Подскажите неофиту, есть старые исходники созданные в delphi 6/7, чем их можно скомпилить в 2019 году? Хочется с минимальными изменениями. Видимо delphi 2006 (D10), в которой ещё не перешли на юникод? Код, чистый VCL и частично Win API, никаких сторонних компонентов.
Убито ФН=1, ATOL GRADE=D
 

Оффлайн tridentxp

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 7516
  • Похвалили: 1107 раз(а)
  • Откуда: ARMвиль
Re: Разминка для программистов
« Ответ #25 : 01/05/2019 02:04:41 »
got10, на си переходи. 6-ой билдер под 7-ку компилит. глядишь за армы в гавань кейлы или эклипсы заплывёшь.
то, что дарвин и вы называете эволюцией, является лишь умыслом Отца.
 

Оффлайн NewKid

  • Администратор
  • Эксперт
  • *******
  • Сообщений: 2107
  • Похвалили: 901 раз(а)
  • ЦТО - Центр творчества одаренных
  • Откуда: Чебоксары
Re: Разминка для программистов
« Ответ #26 : 01/05/2019 03:53:01 »
Подскажите неофиту, есть старые исходники созданные в delphi 6/7, чем их можно скомпилить в 2019 году? Хочется с минимальными изменениями. Видимо delphi 2006 (D10), в которой ещё не перешли на юникод? Код, чистый VCL и частично Win API, никаких сторонних компонентов.
Попробовать перегнать на lazarus?
 

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24