Здравствуйте. Столкнулся с проблемой обмена данными между PC и dSpace.
К компьютеру подключен датчик по USB3.0, там же запущена C++ программа, которая обрабатывает данные от датчика и пишет результат (2 числа типа double) в dSpace посредством CLib. Проблема в том, что писать нужно очень быстро (любые задержки очень негативно влияют на алгоритм управления) и желательно одновременно. Всё, что предоставляет CLib -- это API в духе ds_write_XX. Измерения показали, что передача одного числа занимает ~0.5ms.
Собственно, вопрос: можно ли посредством CLib копировать с PC на dSpace объёмы памяти больше 8 байт за один вызов? Можно попытаться уменьшить точность, то есть упаковать 2 числа типа float (этой точности достаточно) в 8 байт памяти, но не понятно как в самой программе на Simulink распаковывать массив float'ов. Ну и третий вариант -- вместо CLib использовать что-нибудь другое. Альтернатив я не нашёл.
|