TabZhang Ответов: 2

Передача проблемы экземпляра последовательного порта


Дорогой

Я совсем новичок в C#, мне нужна помощь со следующими вопросами.

Я планирую построить одну адаптируемую тестовую платформу с C# для достижения следующих функций, она точно такая же, как NI-Teststand, но вполне поддерживает .Только Сеть.

Это фиктивное тестовое дерево, каждый шаг будет использовать вызов отражения .Net-Сборки

=====================
Последовательный порт микроконтроллера инициализации (последовательный порт экземпляра )
Init NI-Visa (экземпляр порта visa)
Отправить команду на микроконтроллер и проверить результат
Отправить GPIB cmmand в DUT
....
Закрыть последовательный порт микроконтроллера
Близко ни-виза
=====================

Библиотека DLL сборки может менять форму проекта на проект,может быть, каждый шаг библиотеки dll отличается.

Теперь мой вопрос заключается в том, как передать экземпляр последовательного порта и экземпляр visa следующим шагам, чтобы следующие шаги могли использовать его без создания нового экземпляра для повышения эффективности.

Что я уже пробовал:

Я пытался сериализоваться с помощью XML, но у меня нет идеи продолжать...

Graeme_Grant

Я вижу здесь два разных вопроса:
1. Использование отражения для передачи экземпляров
2. сериализация экземпляра с помощью XML

Я не понимаю 1. в чем ваша проблема; 2.чего вы пытаетесь достичь. Понимаете ли вы, что вы пытаетесь сделать?

Пожалуйста, нажмите на виджет" улучшить вопрос " и обновите его с четкой спецификой и четко определенным отдельным вопросом.

TabZhang

Дорогой Грэм

Спасибо за ваш ответ!

Просто вопрос один: я хочу, чтобы экземпляры pass pass были между ними .Net-Сборки.

Сериализация экземпляра с помощью XML - это то, что я пытаюсь сделать для этого вопроса.

Что я хочу сделать, так это создать одно программное обеспечение для управления тестами, такое как Qualcomm QSPR и NI-Teststand.Но все гораздо проще.

Это программное обеспечение для управления тестами без каких-либо фактических шагов тестирования внутри.

Различные проекты используют дерево тестов (XML-файл), чтобы определить фактические шаги тестирования.

каждый шаг теста-это вызов одного mothod и передача некоторых необходимых параметров, все вызываемые методы независимы друг от друга и распределены по разным библиотекам DLL.

Но я не знаю, как передать экземпляр между ними, спасибо!

2 Ответов

Рейтинг:
1

CPallini

Цитата:
это без создания нового экземпляра для повышения эффективности.
Ты действительно думаешь, что тебе это нужно?
Я сильно сомневаюсь, что вы собираетесь наблюдать улучшение производительности.


TabZhang

Спасибо!

Да, гибкость и конфигурируемость - вот мои главные заботы.
Производительность должна быть на втором месте.

Рейтинг:
0

Graeme_Grant

XML не самый эффективный способ передачи данных между двумя процессами. Вместо того чтобы указывать только один способ сделать это, вот поиск в Google, который даст вам несколько различных решений: передача c# между процессами - поиск Google[^]


TabZhang

Спасибо! На самом деле у меня есть одна основная программа (exe) и много сборок (dll), и exe вызывает сборку один за другим, то, что я хочу сделать, это передать данные между сборками (dll), возможно, xml-не лучший способ сделать это, но я знаю, что есть две известные компании (NI, Qualcomm), которые используют его сейчас.

Graeme_Grant

Если библиотека DLL находится в том же процессе, что и приложение, на что она похожа, то вы просто вызываете ее по имени метода и передаете класс точно так же, как и в вашем приложении, без необходимости сериализации.

Pawel Wzietek

"каждый шаг теста-это вызов одного mothod и передача некоторых необходимых параметров, все методы, которые вызываются, независимы друг от друга и распределены по разным библиотекам DLL."

Я совсем не уверен, что понимаю проблему, но, может быть, вам просто нужен общий абстрактный класс с разной реализацией для каждой библиотеки dll? Например, это то, что я использую в своей библиотеке для единообразного обращения к различным интерфейсам: Многопоточная связь для gpib/Visa / последовательных интерфейсов[^]

Павел