2015-07-21 1 views
0

У меня есть исполняемый файл, написанный на Visual Basic, который считывает данные из последовательного порта через DLL, созданную в Labview. Затем данные отображаются на графике в реальном времени.Монитор ОЗУ с последовательного порта; Labview DLL с изменением системного языка

После переустановки программного обеспечения с другим пакетом установщика последовательный порт, похоже, зависает при чтении или записи. Я остановил Портмона и снова запустил программное обеспечение; read работал очень хорошо, и запись также была отмечена как успешная, но на диаграмме не было данных, а аппаратное обеспечение, подключенное к последовательному порту, не возвращалось должным образом в свое местоположение после таймаута.

Эта проблема произошла только на компьютерах с французскими системными настройками, а не на английском, поэтому я изменил один из компьютеров на английские системные настройки в области «Язык» на панели управления, а затем переустановил программное обеспечение. Это сработало! Кто-нибудь знает, почему это так? Я пытаюсь выяснить, является ли виновником настройки формата, параметры программы, отличные от юникода, или просто язык и местоположение Windows. Являются ли драйверы labview разными между языками? Изменена ли настройка формата, как данные отображаются, что приводит к сбою? Любые предложения приветствуются. Если вам нужна дополнительная информация, я сделал сообщение в NI, прежде чем я проверил Portmon или настройки языка. HERE

ответ

2

Изменение системного языка и региональных настроек также изменяет разделители десятичных чисел и другие вещи. Я установил программное обеспечение, разработанное на C# на разных машинах, создавая разные результаты и просто не работая из-за этого факта.

Я не знаю, реальность программного обеспечения и аппаратных средств вы используете, но это может помочь, указывая в нужном направлении :)

+0

Похоже, что DLL отправляет значение с запятой вместо точки в качестве разделителя десятичных чисел или ожидает ответа в инструменте, когда системный язык установлен на французский. Попробуйте французский, но настройте десятичный разделитель. – nekomatic

+0

Я переключил язык на английский, снова проверив французский, и теперь он больше не работает. Я убедился, что настройки формата Windows были десятичной, а не запятой. Я попытался запустить исходную программу Labview локально на компьютере и получил ошибку - что-то о инициализации драйвера. К сожалению, у меня мало опыта работы с Labview. – 5unnyr4y3

0

Спасибо, тупые! Я просто хотел добавить дополнительную информацию:

Я протестировал различные настройки программного обеспечения, используя старый установщик, но изменив его конфигурационный файл, чтобы вытащить новые исполняемые файлы. Я не понял, что старый установщик установлен для файлов AppData/Roaming каждого пользователя; Я получил исполняемый файл для моего пользователя, но он не работал для других. Я вернусь к новому установщику (который сохраняет исполняемые файлы в ProgramData), изменил все языковые настройки на французский канадский и изменил разделитель на десятичные числа от «,» до «.». Теперь он работает для моего имени пользователя и теперь должен работать и для других.

Просто еще одна причина, по которой вы устанавливаете программу ProgramData, если установленные файлы не указаны для каждого пользователя!

+0

приветствуется :) – BlunT