c # — эмуляция аппаратного устройства

Мне поручили задачу подражать одному из аппаратных устройств моей компании.

Я должен использовать прошивку устройства, написанную на неуправляемом C ++. Не обязательно весь код, но такие вещи, как протоколы связи и тому подобное, отлично работают в устройстве, и я хотел бы повторно использовать этот код.

Я должен писать программное обеспечение в первую очередь на C # .NET 4.

Мне трудно взломать этот орех. По крайней мере, я хотел бы узнать, с чего начать эту задачу.

Я очень хорошо знаю C # и немного работал с C ++.

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

Во всяком случае, я бы с радостью увидел какой-то вклад в это. Также я не уверен, должен ли я написать симулятор или эмулятор.

Аппаратное обеспечение имеет различные интерфейсы, включая RS-232, пакеты данных GSM и BlueTooth.
Самое главное, чтобы RS-232 и GSM работали.

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

TLDNЯ должен копировать / симулировать / эмулировать поведение аппаратного устройства, но это кажется очень большим проектом, и я не уверен, с чего начать. Вклад очень ценится. Спасибо.

2

Решение

Моя мысль в основном состоит в том, чтобы разделить и извлечь логические слои устройства и подумать о том, чтобы собрать их в исполняемый файл в вашей среде эмуляции. Вам нужно будет выполнить аппаратную часть и часть связи, которые находятся на более высоких и более низких уровнях. Коммуникационная часть может быть простой, просто реализуйте интерфейс и позвольте вашему эмулятору взаимодействовать с имитируемым устройством. Для части эмуляции аппаратного устройства, если они общего назначения, вы можете рассмотреть возможность использования существующих моделей проектов, таких как устройства QEMU.

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

3

Другие решения

Это будет полностью зависит от проекта. Основная идея заключается в том, чтобы найти правильное место для рисования линий на каждом устройстве. Вы не хотите фактически имитировать фактические биты RS-232, а затем измерять их, чтобы получить данные обратно. Как правило, для всего, что вам нужно, используйте реальный код, где это возможно. Но любой код, который делает то, что вам просто нужно отменить, не используйте. Нарисуйте линию на чистых интерфейсах, если это возможно, а затем просто заново внедрите код (или аппаратное обеспечение) на «нижней» стороне линии.

2

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

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

Аппаратное обеспечение имеет различные интерфейсы, включая RS-232, данные GSM.
пакеты и BlueTooth. Наиболее важным является сделать RS-232 и
GSM работает.

Вы начинаете с создания приложения, которое может связываться по протоколам RS-232 и GSM. Как только вы это сделаете, вы можете использовать уже написанные библиотечные функции, чтобы получить ожидаемый результат.

Во всяком случае, я бы с радостью увидел какой-то вклад в это. Также я не уверен, если
Я должен написать симулятор или эмулятор.

Вы должны точно определить, чего хочет ваш босс. Мы не можем помочь вам принять это решение, основываясь на неопределенных требованиях, которые вы изложили для нас.

0
По вопросам рекламы [email protected]