shtrih-m/fr_drv_ng

проблема с русским языком на разных ОС

SnakePliskin777 opened this issue · 6 comments

Приветствую.
Использую версию fr_drv_ng 1.6.0.589 x64.
У меня на разных ос (Astra Linux и Win10) тексты состояния ФР на разных языках. На Астре по-русски, на Вин 10 по-английски. Причем смотрел на двух разных машинах (Win10, русский основной), результат один. Менял принудительно культуру при запуске, не помогло. Может накосячил со сборкой библиотек? Или есть настройки в подключении или драйвере?
Подсобите, кто в курсе.

Лог с Астры:

[2023-12-12 11:28:13.481] [8697] [ci_0x5fd007aa1b80 ] [T] GetECRStatus()
[2023-12-12 11:28:13.481] [8697] [TcpSocketIO_0x5fd0065520e0 ] [D] -> 02 05 11 1E 00 00 00 0A
[2023-12-12 11:28:13.481] [8697] [TcpSocketIO_0x5fd0065520e0 ] [D] <- FF
[2023-12-12 11:28:13.481] [8697] [TcpSocketIO_0x5fd0065520e0 ] [D] <- 06
[2023-12-12 11:28:13.482] [8697] [TcpSocketIO_0x5fd0065520e0 ] [D] <- 02 30 11 00 1E 43 31 46 14 1D 04 13 01 CC 00 90 02 02 00 02 4E 41 00 00 01 01 10 0C 0C 17 0B 1C 0D 00 82 42 00 00 27 00 00 00 00 00 3C 1E D4 2C 01 00 64
[2023-12-12 11:28:13.482] [8697] [TcpSocketIO_0x5fd0065520e0 ] [D] -> 06
[2023-12-12 11:28:13.482] [8697] [ProtocolV1_0x5fd007b5e500 ] [D] command 11 return code: 0 execution took 0ms
[2023-12-12 11:28:13.482] [8697] [ProtocolV1_0x5fd007b5e500 ] [D] commands total: 10, succeed: 10, failed: 0, avg. exec time: 1ms
[2023-12-12 11:28:13.482] [8697] [ci_0x5fd007aa1b80 ] [T] GetECRStatus() ok
[2023-12-12 11:28:13.482] [8697] [ci_0x5fd007aa1b80 ] [T] Get_ResultCode()
[2023-12-12 11:28:13.482] [8697] [ci_0x5fd007aa1b80 ] [T] Get_ResultCode() -> 0
[2023-12-12 11:28:13.482] [8697] [ci_0x5fd007aa1b80 ] [T] Get_ECRModeDescription()
[2023-12-12 11:28:13.482] [8697] [ci_0x5fd007aa1b80 ] [T] Get_ECRModeDescription() -> Открытая смена; 24 часа не кончились
[2023-12-12 11:28:13.482] [8697] [ci_0x5fd007aa1b80 ] [T] Get_ECRModeDescription()
[2023-12-12 11:28:13.482] [8697] [ci_0x5fd007aa1b80 ] [T] Get_ECRModeDescription() -> Открытая смена; 24 часа не кончились
[2023-12-12 11:28:13.482] [8697] [ci_0x5fd007aa1b80 ] [T] Get_ECRAdvancedModeDescription()
[2023-12-12 11:28:13.482] [8697] [ci_0x5fd007aa1b80 ] [T] Get_ECRAdvancedModeDescription() -> Бумага есть

Лог с Win10:

[2023-12-12 11:31:22.605] [17376] [ci_0x271b0c0f010 ] [T] GetECRStatus()
[2023-12-12 11:31:22.605] [17376] [TcpSocketIO_0x271ae166690 ] [D] -> 02 05 11 1E 00 00 00 0A
[2023-12-12 11:31:22.617] [17376] [TcpSocketIO_0x271ae166690 ] [D] <- FF
[2023-12-12 11:31:22.618] [17376] [TcpSocketIO_0x271ae166690 ] [D] <- 06
[2023-12-12 11:31:22.618] [17376] [TcpSocketIO_0x271ae166690 ] [D] <- 02 30 11 00 1E 43 31 46 14 1D 04 13 01 CC 00 90 02 02 00 02 4E 41 00 00 01 01 10 0C 0C 17 0B 1F 16 00 82 42 00 00 27 00 00 00 00 00 3C 1E D4 2C 01 00 7C
[2023-12-12 11:31:22.618] [17376] [TcpSocketIO_0x271ae166690 ] [D] -> 06
[2023-12-12 11:31:22.618] [17376] [ProtocolV1_0x271a83a5120 ] [D] command 11 return code: 0 execution took 12ms
[2023-12-12 11:31:22.618] [17376] [ProtocolV1_0x271a83a5120 ] [D] commands total: 10, succeed: 10, failed: 0, avg. exec time: 12ms
[2023-12-12 11:31:22.618] [17376] [ci_0x271b0c0f010 ] [T] GetECRStatus() ok
[2023-12-12 11:31:22.618] [17376] [ci_0x271b0c0f010 ] [T] Get_ResultCode()
[2023-12-12 11:31:22.618] [17376] [ci_0x271b0c0f010 ] [T] Get_ResultCode() -> 0
[2023-12-12 11:31:22.619] [17376] [ci_0x271b0c0f010 ] [T] Get_ECRModeDescription()
[2023-12-12 11:31:22.619] [17376] [ci_0x271b0c0f010 ] [T] Get_ECRModeDescription() -> Day opened, day not exeed 24 hours
[2023-12-12 11:31:22.625] [17376] [ci_0x271b0c0f010 ] [T] Get_ECRModeDescription()
[2023-12-12 11:31:22.625] [17376] [ci_0x271b0c0f010 ] [T] Get_ECRModeDescription() -> Day opened, day not exeed 24 hours
[2023-12-12 11:31:22.626] [17376] [ci_0x271b0c0f010 ] [T] Get_ECRAdvancedModeDescription()
[2023-12-12 11:31:22.626] [17376] [ci_0x271b0c0f010 ] [T] Get_ECRAdvancedModeDescription() -> Paper present

Заранее спасибо!

Привет, это зависит от текущей локали в системе.
Так же можно явно установить желаемую локаль через переменную окружения FR_DRV_LANG. Можно выставить ru или en.

Спасибо за ответ!
Да, за локаль я сразу подумал, но на обоих тачках под win10 все внешне ок:
get-winsystemlocale

LCID Name DisplayName


1049 ru-RU Русский (Россия)

вроде как придраться не к чему.

по поводу переменных сред, при en, действительно как и по умолчанию, английский:

[2023-12-13 11:30:22.869] [11172] [ci_0x1ded85ab110 ] [I] model: 43
[2023-12-13 11:30:22.869] [11172] [ci_0x1ded85ab110 ] [I] desciption: ЭЛВЕС-ФР-Ф
[2023-12-13 11:30:22.869] [11172] [ci_0x1ded85ab110 ] [I] fw_date: 2019-04-29 11:30:22
[2023-12-13 11:30:22.869] [11172] [ci_0x1ded85ab110 ] [T] Connect() ok
[2023-12-13 11:30:22.869] [11172] [ci_0x1ded85ab110 ] [T] Get_ResultCode()
[2023-12-13 11:30:22.869] [11172] [ci_0x1ded85ab110 ] [T] Get_ResultCode() -> 0
[2023-12-13 11:30:22.869] [11172] [ci_0x1ded85ab110 ] [T] Get_ResultCode()
[2023-12-13 11:30:22.869] [11172] [ci_0x1ded85ab110 ] [T] Get_ResultCode() -> 0
[2023-12-13 11:30:22.869] [11172] [ci_0x1ded85ab110 ] [T] Get_ResultCodeDescription()
[2023-12-13 11:30:22.869] [11172] [ci_0x1ded85ab110 ] [T] Get_ResultCodeDescription() -> No errors
[2023-12-13 11:30:22.870] [11172] [ci_0x1ded85ab110 ] [T] Get_Connected()
[2023-12-13 11:30:22.870] [11172] [ci_0x1ded85ab110 ] [T] Get_Connected() -> true
[2023-12-13 11:30:22.871] [11172] [ci_0x1ded85ab110 ] [T] GetECRStatus()
[2023-12-13 11:30:22.871] [11172] [TcpSocketIO_0x1dee0b850b0 ] [D] -> 02 05 11 1E 00 00 00 0A
[2023-12-13 11:30:22.882] [11172] [TcpSocketIO_0x1dee0b850b0 ] [D] <- FF
[2023-12-13 11:30:22.885] [11172] [TcpSocketIO_0x1dee0b850b0 ] [D] <- 06
[2023-12-13 11:30:22.885] [11172] [TcpSocketIO_0x1dee0b850b0 ] [D] <- 02 30 11 00 1E 43 31 46 14 1D 04 13 01 DF 00 90 02 04 00 02 4E 41 00 00 01

а вот с ru не айс c кодировкой. еще и лог прерывается:

[2023-12-13 11:22:16.750] [10020] [ci_0x28ecb4bdf90 ] [I] model: 43
[2023-12-13 11:22:16.750] [10020] [ci_0x28ecb4bdf90 ] [I] desciption: ЭЛВЕС-ФР-Ф
[2023-12-13 11:22:16.750] [10020] [ci_0x28ecb4bdf90 ] [I] fw_date: 2019-04-29 11:22:16
[2023-12-13 11:22:16.750] [10020] [ci_0x28ecb4bdf90 ] [T] Connect() ok
[2023-12-13 11:22:16.750] [10020] [ci_0x28ecb4bdf90 ] [T] Get_ResultCode()
[2023-12-13 11:22:16.750] [10020] [ci_0x28ecb4bdf90 ] [T] Get_ResultCode() -> 0
[2023-12-13 11:22:16.750] [10020] [ci_0x28ecb4bdf90 ] [T] Get_ResultCode()
[2023-12-13 11:22:16.750] [10020] [ci_0x28ecb4bdf90 ] [T] Get_ResultCode() -> 0
[2023-12-13 11:22:16.750] [10020] [ci_0x28ecb4bdf90 ] [T] Get_ResultCodeDescription()
[2023-12-13 11:22:16.750] [10020] [ci_0x28ecb4bdf90 ] [T] Get_ResultCodeDescription() -> Ошибок нет
[2023-12-13 11:22:16.751] [10020] [ci_0x28ecb4bdf90 ] [T] Get_Connected()
[2023-12-13 11:22:16.751] [10020] [ci_0x28ecb4bdf90 ] [T] Get_Connected() -> true
[2023-12-13 11:22:16.752] [10020] [ci_0x28ecb4bdf90 ] [T] GetECRStatus()
[2023-12-13 11:22:16.753] [10020] [TcpSoc

по win10 смотрел на двух тачках, причем не много отличных, одна давно не обновлялась.

p.s. наступили наконец-то те времена когда под linux работает как надо сразу, в отличие от винды )

вот этот лог с кривой кодировкой он откуда? если из консоли то проблема скорее всего в том что кодировка консоли кривая, попробуйте записать в файл

кодировка сообщений всегда utf8, другой взяться неоткуда

лог брал из файла fr_drv_ng.log. весь его не стал прикреплять - жирный больно, но если надо, сделаем маленьким.

разобрался почему лог такой, ибо юзал старый добрый блокнот. он почему-то по дефолту отображает в ASCII. черная магия.
так что FR_DRV_LANG это выход для win10, правда для гуя на заметку надо конвертировать win1251 в utf8 (и обратно для печати бсо).
спасибо за ответы.