[an error occurred while processing this directive]
|
Интерфейсную часть для симулятора пишите отдельно, для железа отдельно. Не суйте в код где ни попадя вызовы CSLевской муры. Я пишу на с++, поэтому это просто - часть классов работает с симулятором и сосет тестовые данные из файлов. При компиляции на боевом железе
#ifdef simulator
typedef ADCIf MyADCFromFile
#else
typedef ADCIf MyADCFromADC:-)
#endif
Оба класса имеют метод get_data, поэтому основной код при цеплянии симулятора не меняется . Он как был
CFrame* frame_p = ADCIf.get_data();
process_it(frame_p);
так и остается. Можно использовать защищенное наследование и наследовать реализацию интерфейсов с железом от разных классов при симуляции и работе на железе.
Еще один плюс - обработку может писать Петя, интерфейсы на симуляторе - Вася, а железо отлаживать Коля :-)
E-mail: info@telesys.ru