Skip to content

khosta77/ServerForOscilloscope

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

113 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ServerForOscilloscope

Сервер для удаленного доступа к осциллографу, возможно подключать различные осциллографы, которые соответветствуют родительскому классу Oscilloscope из oscilloscopes.h. Необходимо задать свои IP адрес в сети и PORT, а так же указать префикс:

#include "../Ваш_осциллограф.h"
#include "Server.h"
#include "utils.h"


int main( int argc, char* argv[] )
{
    oscilloscopes::Ваш_осциллограф oscilloscope;
    auto arg = readArg( argc, argv );
    server::CommandDecoder cmdec( std::get<0>(arg), &oscilloscope );
    server::Server server( std::get<1>(arg), std::get<2>(arg), &cmdec );
    return server.run();
}

В качестве примера в проекте подключается осциллограф Hantek 6022BE eму посвещен отдельный репозиторий.

Архитектура

Архитектура декодера

В распакованном виде

Про тесты

Написанием тестов к каждому методу/функции в проекте я не занимался. Проводил испытания вызова методов и проверки на отказо устойчивость.

  • Протестировано с Hantek 6022BE на 10.000 итерациях, на Mac OS и Raspberry Pi проблем обнаружено не было.

  • Что касается кода, после запуска в нем максимальная защита через блок try {} catch( ... ) {}; такие ошибки отлавливаются.

Коды ошибки

Код ошибки Название макроса ошибки Расшифровка
1 OSCILLOSCOPE_ERROR_INVALID_PARAM Некорректный параметр на входе метода осциллографа
0 OSCILLOSCOPE_SUCCESS Все отработало штатно
-3 OSCILLOSCOPE_ERROR_ACCESS Ошибка доступа, может быть вызвана из за того, что вызов не из подsudo
-4 OSCILLOSCOPE_ERROR_NO_DEVICE Нет подключенного устройства
-7 OSCILLOSCOPE_ERROR_TIMEOUT Ошибка времени ожидания
-11 OSCILLOSCOPE_ERROR_NO_MEM Не выделена память
-21 ERROR_INFO_EXTRA При запросе информации произошло что-то экстро ординарное
-22 ERROR_PULSE_EXTRA
-23 ERROR_SAMPLE_EXTRA
-24 ERROR_VX_EXTRA
-25 ERROR_TRIG_EXTRA
-31 ERROR_RANGE_UNKHOWN_PARAMETR
-32 ERROR_CURRENT_UNKNOWN_PARAMETR
-33 ERROR_SET_UNKNOWN_NEW_LEVEL
-34 ERROR_SET_UNKNOWN_PARAMETR
-35 ERROR_GET_DELAY_UNKNOWN
-41 ERROR_RANGE_PROBLEM_GET
-42 ERROR_CURRENT_PROBLEM_GET
-43 ERROR_SET_PROBLEM_SET
-44 ERROR_GET_PROBLEM_GET
-51 ERROR_CURRENT_CHANNEL_NUMBER_UNKNOWN
-52 ERROR_SET_CHANNEL_NUMBER_UNKNOWN
-53 ERROR_GET_CHANNEL_NUMBER_UNKNOWN
-61 ERROR_RANGE_EMPTY
-62 ERROR_GET_MESSAGE_THROW
-94 ERROR_NO_PREFIX Выставлен не тот префикс, условно был osc, а надо hant
-95 ERROR_NO_OSC Не подключен осциллограф
-96 ERROR_NO_METHOD Некорректный метод осциллографа
-97 ERROR_UNKNOWN_MESSAGE Неизвестное сообщение, ошибка ввода команды
-98 ERROR_UNKNOWN_COMMAND Некорретная команда была введена
-99 OSCILLOSCOPE_ERROR_OTHER Внутрення ошибка осциллографа, что могло быть неизвестно

Сборка

  1. Скопировать репозиторий сразу с подкачкой submoduls
git clone --recurse-submodules git@github.com:khosta77/ServerForOscilloscope.git

или, если не планируется пушить код:

git clone --recurse-submodules https://github.com/khosta77/ServerForOscilloscope.git
  1. Переходим в директорию
cd ServerForOscilloscope
  1. На всякий случай убеждаемся, что все модули в ветке main.
git submodule foreach git pull origin main
  1. Собираем и компилируем проект.
cmake .
make
  1. Запуск. Для примера
./main

About

Сервер для осциллографа

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors