aboutsummaryrefslogtreecommitdiffstats
path: root/firmware/source/communication.hpp
blob: a4f818abeb483a37ed01df11e2b690834fa0f25b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
/**
 * @file communication.hpp
 * @brief Manages communication with the host computer.
 *
 * Copyright (C) 2023 Clyne Sullivan
 *
 * Distributed under the GNU GPL v3 or later. You should have received a copy of
 * the GNU General Public License along with this program.
 * If not, see <https://www.gnu.org/licenses/>.
 */

#ifndef STMDSP_COMMUNICATION_HPP
#define STMDSP_COMMUNICATION_HPP

#include <array>

class CommunicationManager
{
public:
    /**
     * Starts the communication manager thread (threadComm).
     */
    static void begin();

private:
    /**
     * Continuously polls the USB serial connection, handling received commands
     * as necessary.
     * Does not return.
     */
    static void threadComm(void *);

    static std::array<char, 4096> m_thread_stack;
};

#endif // STMDSP_COMMUNICATION_HPP