Opened 6 лет ago

Closed 6 лет ago

#138 closed баг (invalid)

баг кириллицы в наименовании скважины

Сообщил: Art_M Владелец: alx
Приоритет: средний Этап разработки: 2-я очередь
Ключевые слова: Копия: andrei

Описание

В r636 в процессе эксперимента был выявлен баг наименования папки с журналом контроллером при выставлении наименования скважины на кириллице
уставка наименования скважины в конкретном случае была "Ёж", название папки стало "Ёж-ABCD1234567" - см. аттач к #137.

Вложения (1)

1.png (76.8 KB ) - added by san 6 лет ago.

Download all attachments as: .zip

История изменений (24)

comment:1 by alx, 6 лет ago

Владелец: установлено в alx
Состояние: newaccepted

comment:2 by alx, 6 лет ago

Хм... Не получается воспроизвести. Что я делал:

  • Захожу в меню "Общие настройки" и устанавливаю настройку "Наименование скважины" в значение "Ёж";
  • Подключаю портативный носитель;
  • На вопрос "Копировать динамограммы?" отвечаю "Да";
  • После завершения копирования отключаю портативный носитель.

После этого подключаю портативный носитель к компьютеру и вижу там:

arial.ttf
ipk
RobotoMono-Regular.ttf
System Volume Information
TEK0000.JPG
TEK0001.JPG
verdana.ttf
Ёж-ABC123456

Может быть я упустил какой-то ключевой момент, какое-то еще действие?

Вот фрагмент кода, формирующий имя каталога:

    // каталог для копирования
    targetDir = fsRoot + "/" + std::string(mainConfig->wellName) + "-" + serialNumber;

где targetDir - создаваемый каталог, fsRoot - корневой каталог файловой системы, wellName - имя скважины, serialNumber - серийный номер контроллера. Не вижу ни одного места, где имя каталога могло бы "Испортиться"...

Я могу (чисто в плане гаданий) предположить два возможных варианта:

  1. Настройка "Имя скважины" по каким-то причинам испортилась уже после ее установки в значение "Ёж", но до сохранения динамограмм и журнала, поэтому при формировании имени каталога для сохранения в нем вместо "Ёж" оказалась какая-то ерунда. Это предположение можно проверить, снова открыв настройку "Имя скважины" - там все еще "Ёж", или уже какая-то ерунда?
  1. На самом деле имя каталога на носителе правильное, но по каким-то причинам его не может правильно отобразить программа, которой выполнялся последующий просмотр/чтение содержимого портативного носителя - например, установлена не-уникодовая локаль...

comment:3 by Art_M, 6 лет ago

"Ёж-ABCD1234567"

Очевидно:
"Ёж" - означает "Ёж"
"ABCD1234567" - серийный номер
что соответствует коду

"Ёж" продолжает храниться в наименовании скважины
"Ёж" отображает ПО ОС "windows 7"

При изменении наименования на "Ёж1/=':<|>1ик" при попытке скопировать на флэшку журнал,
контроллер зависает намертво, причем если этот попытка была выполнена в процессе хода вверх, то привод продолжает давить ЧРП на движение вверх плюя на датчики положения да и вообще на все...

при зависании:

  1. отображается "копирование динамограмм:" графика пустой полосы "ОТМ-прервать копирование"
  2. индикатор сработавшего датчика не тухнет при любом фактическом состоянии датчика
  3. индикатор несработавшего не загорается при реальном срабатывании
  4. ни одна кнопка не работает, включая переключаетль "руч/авт" остановить привод невозможно
  5. нажатие кнопки "отмена" не помогает ни при вставленной ни при отсутствующей флэшке.

in reply to:  3 ; comment:4 by alx, 6 лет ago

Replying to Art_M:

"Ёж" продолжает храниться в наименовании скважины

Тогда первое предположение отпадает...

При изменении наименования на "Ёж1/=':<|>1ик" при попытке скопировать на флэшку журнал,
контроллер зависает намертво,

По этому факту создан тикет #143.

in reply to:  4 comment:5 by alx, 6 лет ago

Replying to alx:

Тогда первое предположение отпадает...

Есть ли возможность для проверки второго предположения выложить дамп файловой системы флешки куда-нибудь в облако и прислать ссылку на него (только наверное из соображений безопасности лучше не сюда, а по e-mail)?

comment:6 by alx, 6 лет ago

Решение: не воспроизводится
Состояние: acceptedclosed

in reply to:  2 comment:7 by san, 6 лет ago

Replying to alx:

  1. На самом деле имя каталога на носителе правильное, но по каким-то причинам его не может правильно отобразить программа, которой выполнялся последующий просмотр/чтение содержимого портативного носителя - например, установлена не-уникодовая локаль...

Т.к. Артём пользуется виндоус, то не-юникодовая локаль очень вероятна.

comment:8 by san, 6 лет ago

Решение: не воспроизводится
Состояние: closedreopened

Повторил эксперимент Артёма.
В виндовс 10,8,7, и кажется в предыдущих, в русской локали имена файлов для FAT32 по умолчанию отображаются в CP866.


by san, 6 лет ago

Вложение: 1.png added

comment:9 by san, 6 лет ago

Копия: andrei added

comment:10 by san, 6 лет ago

Я бы предложил не морочиться древней проблемой несовпадения кодировок, а "оставить всё как есть" и рекомендовать пользователям Виндоус сохранять имена в латинице.

in reply to:  10 ; comment:11 by alx, 6 лет ago

Replying to san:

"оставить всё как есть".

Собственно, тут нечего оставлять. Как выяснилось, проблема не в станции, а в компьютере пользователя. При установке юникодовой локали все должно начать отображаться правильно.

Предлагаю закрыть тикет как invalid.

in reply to:  11 comment:12 by andrei, 6 лет ago

Как выяснилось, проблема не в станции, а в компьютере пользователя.

Ну да конечно, позиция отличная. Эдак можно было питание сделать не ~380В, а =12В и говорить что проблема у электриков, что они не могут обеспечить нужное напряжение с требуемой силой тока. Проблема есть, и решить ее можно как со стороны операционной системы (вообще-то абсолютно преобладающей по количеству), так и со стороны станции.
Давайте не забывать, что МЫ разрабатываем для пользователя.
К чему это я? А, да, поддерживаю предложение оставить как есть, и настоятельно рекомендовать пользователям, которые не "видят" кириллицу, вводить наименования латиницей или настроить ОС (мы готовы помочь). Артём тоже озвучивал этот вариант на первом месте в списке из трёх.

comment:13 by Art_M, 6 лет ago

Вариант 1. Удалить кириллицу из ввода в это поле. Это слишком банально!
Вариант 2. При копировании производить транслитерацию в наименовании файлов. Это уже интереснее
Вариант 3. При копировании производить изменение кодировки в наименовании файла на соответствующую Windows, как наиболее распространенной ОС. .

И еще один толстый гвоздь в лоб логике "проблема кодировки - проблема юзера а не контроллера" - не нужно забывать, что мы пользуемся флэшкой, что бы перенести файлы до ПО"Dinaomograph", который работает только в Windows!

Так что если расценивать в купе цели переноса динамограмм и распространения ОС, то в настоящий момент несовпадение кодировки - это скорее проблема контроллера, а не юзера. А то получается "один прапорщик идет "в ногу", а весь строй "не в ногу" :)

Согласно мировым рейтингам 9 из 10 девайсов имеют Windows, причем в РФ маки не распространены распространены, так что скорее всего 49 из 50 имеют Windows.

https://cdn.comss.net/img/012017/2018-09-03_12.02.15.png

in reply to:  13 comment:14 by alx, 6 лет ago

Replying to Art_M:

И еще один толстый гвоздь

Артем, твои рассуждения о распространенности разных ОС имели бы смысл, если бы каждая ОС имела какую-то свою фиксированную кодировку имен файлов файловой системы. Очевидно, что это не так: не думаешь же ты, что 90% пользователей компьютеров в мире используют кириллическую кодировку в именах файлов? То есть не могут назвать файл ни по-французски, ни по-чешски, ни по-китайски (большинство людей в мире - китайцы, раз уж ты любишь такого рода статистику)... Мне кажется очевидным, что это не так - китайцы могут именовать файлы по-китайски, японцы - по-японски. Следовательно, кодировка имен файлов в файловой системе настраивается под нужды пользователя. А раз так, то все рассуждения о том, какая ОС более распространенная, а какая - менее, не имеют к вопросу кодировок никакого отношения.

comment:15 by san, 6 лет ago

Артём порвал мой экран своей картинкой:) , если не сложно поправьте пожалуйста, у меня тут нет прав редактировать чужой коммент, думаю ссылки на картинку было бы достаточно.

  1. Я думаю что пользователи пережили бы использование латиницы при наименовании скважин.
  2. Настраивать кодировку отображения имени файлов на Виндовс-ах пользователя я считаю не вариант, я вчера не смог разобраться как это настроить у себя и задача тут не тривиальная. А смысл? все остальные файлы с кириллическими именами у пользователя в CP866, а динамограммы на флэшке в utf-8, как-то не удобно...
  3. Транслитерация сохраняемых файлов решает только часть проблемы, т.к. отображать кириллические имена директорий и файлов пользователя на флэшке мы будем всё-равно кракозябрами.
  4. Если п.1. не устраивает, то на мой взгляд, самый логичный вариант сделать настройку кодировки имён файлов в контроллере, чтобы пользователь мог выбрать кодировку для сохранения и отображения имён файлов из вариантов utf-8/cp866. И я считаю что настройка должна касаться именно имён файлов и не больше, т.е. с текстовыми файлами мы продолжаем работать в utf-8.

comment:16 by andrei, 6 лет ago

Ну и кто запилит голосовалку?

in reply to:  16 comment:17 by alx, 6 лет ago

Replying to andrei:

Ну и кто запилит голосовалку?

Голосовалку по какому вопросу? Где предмет голосования?

in reply to:  15 comment:18 by alx, 6 лет ago

Replying to san:

я вчера не смог разобраться как это настроить у себя и задача тут не тривиальная.

Насколько я понял, ты вчера пытался сделать немного не это. "Нетрививальность" тут ИМХО только в незнании, где и как выполняется данная настройка. Я вчера нашел в интернете, как менять кодировку локали, и по-моему даже показывал тебе картинку.

все остальные файлы с кириллическими именами у пользователя в CP866,

Если этот пользователь - ты. :) У разных пользователей кодировка локали может быть разная.

а динамограммы на флэшке в utf-8, как-то не удобно...

В чем состоит неудобство?

comment:19 by san, 6 лет ago

Я вчера нашел в интернете, как менять кодировку локали

Насколько я понял настройка "кодировка для программ не использущих UTF-8" не окажет влияния на отображение имён файлов в проводнике, к тому-же в Win10 я её не нашёл.
Могу тебе дать ноутбук с Виндоус для экспериментов :)

У разных пользователей кодировка локали может быть разная

Я про тех 90% рускоязычных пользователей, о которых говорил Артём.

В чем состоит неудобство?

Неудобство в том что нужно переключать кодировку чтобы посмотреть одни или другие файлы.
Либо пользователю придётся перекодировать имена при копировании с флэшки

in reply to:  19 comment:20 by alx, 6 лет ago

Replying to san:

Неудобство в том что нужно переключать кодировку чтобы посмотреть одни или другие файлы.

Тогда я вынужден уточнить: не "динамограммы на флэшке в utf-8 - неудобно", а "динамограммы на флэшке в кодировке, отличной от кодировки локали пользователя - неудобно"! Ибо если у пользователя локаль в UTF-8, то именно кодированные в UTF-8 имена файлов у него отобразятся правильно, а кодрованные по-другому - неправильно. Точно так же можно сказать о любой другой кодировке.

comment:21 by san, 6 лет ago

Мои эксперименты с виндовс ни привели ни к чему, меняя разные настройки по советам интернета я не смог добиться чтобы имена файлов отображались в utf-8, никакой подробной информации на эту тему я не нашел, бросаю эту затею...

comment:22 by san, 6 лет ago

На последнем совещании с Артёмом и директором пришили к решению:

сделать настройку кодировки имён файлов в контроллере, чтобы пользователь мог выбрать кодировку для сохранения и отображения имён файлов из вариантов utf-8/cp866.

comment:23 by alx, 6 лет ago

Решение: invalid
Состояние: reopenedclosed

Так как других предложений нет, создан тикет #180.

Note: See TracTickets for help on using tickets.