File Dialog Express VI ошибка 43, но не 43

Обсуждение, связанное с разработкой ПО верхнего уровня

File Dialog Express VI ошибка 43, но не 43

Postby Artem.spb on 19 May 2019, 01:14

Большая программа, поэтому всю выложить не могу.
Есть File Dialog Express VI, который рекомендуется вместо того VI, который запрятан внутрь этого Express VI, не суть.

В общем, проблема такая.
Программе иногда надо спросить у пользователя файл (что открыть, куда сохранить и пр.). Использую этот Express VI. И всё хорошо, пока не случится что-то странное.
Окно выбора перестаёт появляться, а функция сразу выдаёт ошибку 43 ("пользователь нажал отмену"). Но пользователь ничего не нажимал, потому что окно не появлялось.
Более того, с этого момента окно больше не появится до перезагрузки LV/exe. Вот как это выглядит:


И ещё до кучи: с этого момента выбор файла соверешенно не работает: попытался сделать этот снипет, окно тоже не выскочило.
ExpressVI.png


Кто-нибудь сталкивался? знаете как чинить или обойти?
LV15, менять крайне нежелательно.
Artem.spb
expert
expert
 
Posts: 1585
Joined: 31 Jul 2011, 23:05
Medals: 2
Activity (1) Автор (1)
LabVIEW Version: 12,14,15
Karma: 254
CLD hardware I/O VIP freelance

Re: File Dialog Express VI ошибка 43, но не 43

Postby Blackman on 19 May 2019, 13:15

Если для создания путей файлов используются функции форматирования строк, проверяйте сформированные строки на зарезервированные символы (коды символов) и запрещенные первый и последний символы в имени файла. Так же убедитесь, что не используются зарезервированные слова (строки), например CON :haha: .

filename limitations
https://en.wikipedia.org/wiki/Filename
Naming Conventions
https://docs.microsoft.com/ru-ru/window ... onventions
Blackman
leader
leader
 
Posts: 861
Joined: 17 Jan 2016, 15:02
Medals: 1
Activity (1)
LabVIEW Version: 6.1,8.5,20
Karma: 256
VIP

Re: File Dialog Express VI ошибка 43, но не 43

Postby Artem.spb on 19 May 2019, 14:04

Всё корректное.
Конкретно в этом примере, в базе лежит путь по которому файл лежал раньше. Если прога его не находит (файл перенесли), она спрашивает, где он. Все имена корректные.
Более того, вот такой код
save2.png

Часто становится первенцем, уже на нём выдаёт 43 и после этого ничего не работает. Это разные режимы работы программы, совершенно разные участки кода.
Artem.spb
expert
expert
 
Posts: 1585
Joined: 31 Jul 2011, 23:05
Medals: 2
Activity (1) Автор (1)
LabVIEW Version: 12,14,15
Karma: 254
CLD hardware I/O VIP freelance

Re: File Dialog Express VI ошибка 43, но не 43

Postby Kosist on 19 May 2019, 22:25

Попробуйте отдебажить эту експресс- :vi: как обычную :vi:-ку (конвертируйте, и посмотрите что там происходит). Т.к. сейчас мне не верится, что путь действительно правильный - ведь задается лишь имя файла. А дефолтная директория для файла правильная? Как Вы проверили абсолютный путь к файлу, который обрабатывает функция?
На видео видно, что, например, диалоговое окно для автоматической обработки ошибки - кастомное. Это ведь Вы его переделали? Может, "зацепили" что-то еще, и тепер какую-то встроенную функцию "глючит"?
Мы делили апельсин - много наших полегло...
User avatar
Kosist
leader
leader
 
Posts: 937
Joined: 21 Feb 2011, 23:44
Medals: 2
Activity (1) Gold (1)
LabVIEW Version: 2013-2017
Karma: 259
CLAD I/O VIP students

Re: File Dialog Express VI ошибка 43, но не 43

Postby Artem.spb on 19 May 2019, 23:43

Kosist wrote:На видео видно, что, например, диалоговое окно для автоматической обработки ошибки - кастомное. Это ведь Вы его переделали? Может, "зацепили" что-то еще, и тепер какую-то встроенную функцию "глючит"?


оно не кастомное, оно более чем стандартное (обычный dialog с двумя кнопками). Если в итоге работы этой функции всё же случается баг, то программа просто сообщает пользователю, что всё пропало.

а логер сейчас делаю для тотальной слежки за функцией.
Artem.spb
expert
expert
 
Posts: 1585
Joined: 31 Jul 2011, 23:05
Medals: 2
Activity (1) Автор (1)
LabVIEW Version: 12,14,15
Karma: 254
CLD hardware I/O VIP freelance

Re: File Dialog Express VI ошибка 43, но не 43

Postby Artem.spb on 20 May 2019, 00:52

Вынул нутро express VI, сдела vi, который полностью отчитывается о проделанной работе. Вот две последние записи.

Code: Select all
0:42:16 20.05.2019; prompt: ; selMode: new or existing file; path: <Not A Path>; defname: ; errIn: FALSE; code: 0; sourse : ; selPath: C:\Users\User\Desktop\22.png; cancel: FALSE; pattern: *.png; Plabel: ; errOut: FALSE; code: 0; sourse : ; chain: file_dialog.vi -> save_control_image.vi -> data_analise_trecks3D.vi -> data_analise_trecks3D.vi.ACBRProxyCaller.E7E00116
; dt: 3,29

0:42:50 20.05.2019; prompt: Программа не нашла файл "camera1[2018-10-09(13-28-20)_2018-10-09(13-46-20)].avi".
Укажите, где он сейчас располагается; selMode: existing file; path: <Not A Path>; defname: camera1[2018-10-09(13-28-20)_2018-10-09(13-46-20)].avi; errIn: FALSE; code: 0; sourse : ; selPath: <Not A Path>; cancel: TRUE; pattern: ; Plabel: ; errOut: TRUE; code: 43; sourse : file_dialog.vi->correct_check_and_ask_file.vi->corrects.vi->corrects.vi.ACBRProxyCaller.E8C0010E
.ACBRProxyCaller.E8C0010E; chain: file_dialog.vi -> correct_check_and_ask_file.vi -> corrects.vi -> corrects.vi.ACBRProxyCaller.E8C0010E
; dt: 0,01


1) пользователь (я) выбрал для экспорта файл C:\Users\User\Desktop\22.png, заняло это 3,2с
2) программа не нашла файл camera1[2018-10-09(13-28-20)_2018-10-09(13-46-20)].avi и "спросила", где он. И за 0,01с пользователь как бы отказался выбирать.

возможно дело в связке с vision, потому что воспроизвести подобный глюк вне полной проги я не могу. Например, снипет из моего первого поста сам пос себе работает без проблем, как бы я над ним ни изголялся с неправильными именами и отменами выбора. Оно всё равно выскакивает.
Artem.spb
expert
expert
 
Posts: 1585
Joined: 31 Jul 2011, 23:05
Medals: 2
Activity (1) Автор (1)
LabVIEW Version: 12,14,15
Karma: 254
CLD hardware I/O VIP freelance

Re: File Dialog Express VI ошибка 43, но не 43

Postby Kosist on 20 May 2019, 11:17

Artem.spb wrote:оно не кастомное, оно более чем стандартное (обычный dialog с двумя кнопками). Если в итоге работы этой функции всё же случается баг, то программа просто сообщает пользователю, что всё пропало.

А, я не заметил, что окно появляется в самом конце, что это не автоматическая обработка ошибок...
Мы делили апельсин - много наших полегло...
User avatar
Kosist
leader
leader
 
Posts: 937
Joined: 21 Feb 2011, 23:44
Medals: 2
Activity (1) Gold (1)
LabVIEW Version: 2013-2017
Karma: 259
CLAD I/O VIP students

Re: File Dialog Express VI ошибка 43, но не 43

Postby Kosist on 20 May 2019, 11:52

Я бы изменил алгоритм. Вначале проверяйте, существует ли файл (Check if File or Folder Exists.vi), и не пустой ли путь - а уже потом открывайте окно для выбора файла. Может, так можно будет избежать этот "глюк".
Мы делили апельсин - много наших полегло...
User avatar
Kosist
leader
leader
 
Posts: 937
Joined: 21 Feb 2011, 23:44
Medals: 2
Activity (1) Gold (1)
LabVIEW Version: 2013-2017
Karma: 259
CLAD I/O VIP students

Re: File Dialog Express VI ошибка 43, но не 43

Postby Artem.spb on 20 May 2019, 16:07

Я именно так и делаю.
Если нужно открыть файл. проверяю его наличие. Если файла нет, то спрашиваю, где он. Если есть, то открываю сразу.
Если же нужно что-то сохранить, то сразу спрашиваю, куда.

И пустой путь не мешает - много раз вызывал этот диалог со всеми пустыми входами.

Есть какая-то мелочь, которую я упускаю.
Artem.spb
expert
expert
 
Posts: 1585
Joined: 31 Jul 2011, 23:05
Medals: 2
Activity (1) Автор (1)
LabVIEW Version: 12,14,15
Karma: 254
CLD hardware I/O VIP freelance

Re: File Dialog Express VI ошибка 43, но не 43

Postby Vitekkz88 on 21 May 2019, 05:02

И пустой путь не мешает - много раз вызывал этот диалог со всеми пустыми входами.

Вы пробовали собирать логику без использования Express.vi?
Могу предложить попробовать в явном виде достать блок File Dialog.vi и проверить работу на нём, либо собрать логику из обычных блоков по работе с файлами. Возможно попробовать использовать отличный от текущего Select Mode. У Вас там было что-то про использование Vision. Пробуйте скрыть Vision-блоки в общей программе и проверять. Express dialog у вас запрятан в несколько subVI, вложенность 3. Попробуйте поднять его выше и так же проверить. Это всё фокусы, но и сама ситуация странная. Ну и константу на путь создайте. Диалог откроется в любом случае, а нам -1 из вариантов возможных проблем.
Attachments
Test.png
Инженер - это открыто светящийся интеллект, свободный и не обидный юмор, это легкость и широта мысли...Это воспитанность, тонкость вкусов, хорошая речь, плавно согласованная и без сорных словечек...
-А. И. Солженицын
User avatar
Vitekkz88
expert
expert
 
Posts: 1075
Joined: 21 Jan 2014, 15:45
Location: Томск
Medals: 3
Activity (1) Silver (1) Автор (1)
LabVIEW Version: 12,13,14
Karma: 301
hardware I/O VIP

Re: File Dialog Express VI ошибка 43, но не 43

Postby Artem.spb on 21 May 2019, 22:53

Продолжаю развлекаться

Вы пробовали собирать логику без использования Express.vi?
Могу предложить попробовать в явном виде достать блок File Dialog.vi и проверить работу на нём, либо собрать логику из обычных блоков по работе с файлами.

один из первых тестов. Вытащил самое нутро (которым типа нельзя пользоваться). Не помогло.

Возможно попробовать использовать отличный от текущего Select Mode.

мне нужно или новый файл для экспорта результатов, или существующий для открытия видео. Другие режимы не пойдут.

У Вас там было что-то про использование Vision. Пробуйте скрыть Vision-блоки в общей программе и проверять.

пошёл в обратную сторону. Работает без проблем. Если быть точным, ошибка не появилась в пределах времени "кликал пока не надоело".
fd2.png


Express dialog у вас запрятан в несколько subVI, вложенность 3. Попробуйте поднять его выше и так же проверить. Это всё фокусы, но и сама ситуация странная.

тяжко. Он гораздо дальше чем на 3 уровня. После проверки Vision (видимо, отпало), начал грешить на subpanel. Потестил. Тоже не виноваты.

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

Добавил проверку. Если путь кривой, подаю c:. Не помогло.
Artem.spb
expert
expert
 
Posts: 1585
Joined: 31 Jul 2011, 23:05
Medals: 2
Activity (1) Автор (1)
LabVIEW Version: 12,14,15
Karma: 254
CLD hardware I/O VIP freelance

Re: File Dialog Express VI ошибка 43, но не 43

Postby Kosist on 22 May 2019, 00:19

А у Вас есть возможность сбросить пример в связке с Vision?
Также, а если собрать екзешник - проблема присутствует?
Мы делили апельсин - много наших полегло...
User avatar
Kosist
leader
leader
 
Posts: 937
Joined: 21 Feb 2011, 23:44
Medals: 2
Activity (1) Gold (1)
LabVIEW Version: 2013-2017
Karma: 259
CLAD I/O VIP students

Re: File Dialog Express VI ошибка 43, но не 43

Postby Artem.spb on 22 May 2019, 00:29

Kosist wrote:А у Вас есть возможность сбросить пример в связке с Vision?

это и есть он.
fd2.png

Есть ещё предположение, что именно индикатор vision всё портит, но нет времени проверять.
Сейчас просто делаю так, чтобы файлы сами знали, куда сохраняться. Иначе тяжело работать пользователям. Эксперименты продолжу позже

Весь проект ~300 функций, раскрывать не готов. А выделять тестовый кусок опять же долго.

Также, а если собрать екзешник - проблема присутствует?

она в exe быстрее проявляется. 2-3 диалога и всё. Я при отладке в 2-3 раза дольше жду, когда появится. Иногда даже начинаю думать, что наконец-то, починил.
Artem.spb
expert
expert
 
Posts: 1585
Joined: 31 Jul 2011, 23:05
Medals: 2
Activity (1) Автор (1)
LabVIEW Version: 12,14,15
Karma: 254
CLD hardware I/O VIP freelance

Re: File Dialog Express VI ошибка 43, но не 43

Postby Kosist on 22 May 2019, 10:40

Ваш пример у меня работает без проблем...
Любопытная деталь. Тестировал свой код, совсем другой функционал чем у Вас. Но, внутри одной из виайки тоже используется File Dialog виайка. И когда я запустил код на cRIO, то тоже получил на выходе этой функции ошибку 43. Т.к. на cRIO диалоговые окна не поддерживаются (узлы свойств и методы, и т.д.). Т.е. виайка не могла открыть диалоговое окно, и выбросила ошибку 43... Но такое поведение происходит потом всегда, а в Вашем же случае - время от времени... Плюс ко всему, Ваша программа исполняется на Windows, проблем по идее не должно было бы быть...
Мы делили апельсин - много наших полегло...
User avatar
Kosist
leader
leader
 
Posts: 937
Joined: 21 Feb 2011, 23:44
Medals: 2
Activity (1) Gold (1)
LabVIEW Version: 2013-2017
Karma: 259
CLAD I/O VIP students

Re: File Dialog Express VI ошибка 43, но не 43

Postby dadreamer on 22 May 2019, 15:54

Artem.spb wrote:один из первых тестов. Вытащил самое нутро (которым типа нельзя пользоваться). Не помогло.

Если нативный File Dialog выдаёт ошибку, можно попробовать спуститься ещё ниже и проверить на вот такой встроенной функции:
Untitled 1.vi
ExtFileDialog
lv15
(6.63 KiB) Downloaded 13 times
ExtFileDialog, как и жёлтый File Dialog, использует безымянную встроенную функцию, которая чрезвычайно капризна к параметрам и вообще, похоже, не менялась больше десятилетия, а только обрастала обёртками. Вполне возможны баги в работе функции на современных осях в связи с переходом на Common Item Dialog API. В качестве альтернативы можно попробовать арсенал Винды: https://stackoverflow.com/questions/416 ... filedialog
User avatar
dadreamer
professor
professor
 
Posts: 3274
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2019
Karma: 822
I/O VIP vision internet

Next

Return to Лицевая панель

Who is online

Users browsing this forum: No registered users and 2 guests

cron