Я пытаюсь улучшить структуру встроенной программы, над которой я работаю.
В основном у меня есть программа на MBED, которая получает данные из IMU и приводит в движение некоторые двигатели (не вдаваясь в подробности того, что делает система).
На данный момент я пытаюсь улучшить структуру программы.
У меня есть основной класс, я устанавливаю оборудование (и контакты) в отдельный класс, называемый «Система», IMU в своем собственном классе «IMU», драйверы двигателей в своем собственном классе «MotorDrivers» и так далее для каждого датчика .
Другой инженер / программист сказал мне, что я должен настроить свою "систему", чтобы все статические функции выполнялись, например (под системой):
// system.cpp
MODSERIAL & pc()
{
static MODSERIAL pc(USBTX, USBRX);
return pc;
}
IMU & imu()
{
static IMU imu(p28, p27);
return imu;
}
//system.hpp
MODSERIAL & pc();
IMU & imu();
Это работает, но мне интересно, не буду ли я настолько кратким, эффективным или ясным, каким должен быть, когда, например, я хочу использовать последовательный порт в нескольких классах. Я думал, что нужно быть другом или унаследованным классом. Теперь я бы написал «pc (). Printf (« напечатать что-нибудь »);». чтобы принтер работал в классе, и мне пришлось бы включить системный заголовок в этот класс.