Как мне создать свое встроенное программное обеспечение? Я использую MBED для управления несколькими датчиками / двигателями - PullRequest
0 голосов
/ 05 января 2019

Я пытаюсь улучшить структуру встроенной программы, над которой я работаю.

В основном у меня есть программа на 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 (« напечатать что-нибудь »);». чтобы принтер работал в классе, и мне пришлось бы включить системный заголовок в этот класс.

...