Skip to content

mikkokiviniemi/Control-software

Repository files navigation

Control software

The purpose of the Control Software is to control the production line automatically or based on commands from the UI. The goal was to run the production line without breaking the hardware and optimize output. We use shared memory to communicate with the simulated hardware and MQTT to communicate with the UI.

Content

Technologies

  • Control software is written in C++
  • The program receives data from the conveyor via shared memory, which is used in automation and sent to the UI
  • Messages to and from the UI is parsed as JSON using nlohmann's JSON library
  • MQTT is used as the communications protocol with the UI
  • Eclipse Paho C++ MQTT library is used
  • Project is built with CMake
  • Unit testing provided by doctest
  • Version control (Git) and project management (GitHub Projects)

Build and Prerequisites

Install prerequisites for Paho

sudo apt-get install build-essential gcc make cmake cmake-gui  cmake-curses-gui libssl-dev

Build and install Paho C library using cmake (anywhere on computer)

git clone https://github.com/eclipse/paho.mqtt.c.git
cd paho.mqtt.c
git checkout v1.3.8
cmake -Bbuild -H. -DPAHO_ENABLE_TESTING=OFF -DPAHO_BUILD_STATIC=ON -DPAHO_WITH_SSL=ON -DPAHO_HIGH_PERFORMANCE=ON
sudo cmake --build build/ --target install
sudo ldconfig

Build and install Paho C++ library using cmake (anywhere on computer)

git clone https://github.com/eclipse/paho.mqtt.cpp
cd paho.mqtt.cpp
cmake -Bbuild -H. -DPAHO_BUILD_STATIC=ON
sudo cmake --build build/ --target install
sudo ldconfig

Run Locally

Clone the project

git clone git@github.com:mikkokiviniemi/Control-software.git
cd Control-software
cmake -S . -B build
make -C build

Run

build/main

Contributors

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages