EyePoint S
==========

ПО для поиска неисправностей на печатных платах с использованием аналоговых сигнатурных анализаторов EyePoint IVM. Может работать как с одним, так и с двумя устройствами.

Возможности
-----------

* Непрерывное измерение ВАХ с возможностью быстрой перестройки параметров измерителя.
* Сравнение ВАХ в реальном времени с двух каналов.
* Создание плана тестирования – файла с набором эталонных ВАХ, снятых для различных точек с заданными параметрами.
* Тестирование с использованием ранее созданного плана тестирования (с автоматической установкой параметров измерителя).
* Сохранение ВАХ в виде изображений.

## Запуск релиза в Windows

1. Установите [MSVC 2013 redistributable](https://www.microsoft.com/en-us/download/details.aspx?id=40784) (разрядность должна совпадать с разрядностью Python).

2. Подключите устройства к ПК и с помощью диспетчера устройств Windows определите номера соответствующих COM-портов. Если Вы не видите в диспетчере устройств COM-порты, убедитесь, что Вы установили драйвер устройства EyePoint IVM (драйверы находятся в папке `driver`).

3. Запустите файл `launch.bat`:

   ```bash
   launch.bat
   ```

   Выберите устройства и нажмите "Далее".

4. Запустите скрипт `launch_command.bat`:

   ```bash
   launch_command.bat
   ```

   Чтобы запустить ПО с новыми устройствами, удалите файл `launch_command.bat` и повторите шаги 2-3.

## Запуск релиза в Linux

1. Перед первым запуском обычно нужно прописать в системе VID и PID устройства для драйвера виртуального COM-порта. В Ubuntu это можно сделать так:

   ```bash
   sudo sh -c 'echo 1CBC 0007 > /sys/bus/usb/drivers/cdc_acm/new_id'
   ```

2. Для корректной работы ПО с COM-портами пользователь должен находиться в группе `dialout`. Чтобы добавить пользователя в эту группу, выполните команду (здесь предполагается, что имя пользователя `username`):

   ```bash
   sudo adduser username dialout
   ```

3. Запустите файл `launch.sh`:

   ```bash
   bash launch.sh
   ```

   Выберите устройства и нажмите "Далее".

4. Запустите скрипт `launch_command.sh`:

   ```bash
   bash launch_command.sh
   ```

   Чтобы запустить ПО с новыми устройствами, удалите файл `launch_command.sh` и повторите шаги 3-4.

Если при открытии устройств возникают какие-то проблемы, попробуйте запустить ПО с правами `root`.

Если при запуске ПО возникает ошибка:

```bash
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found
```

выполните команды:

```bash
export QT_DEBUG_PLUGINS=1
sudo apt-get install --reinstall libxcb-xinerama0
```

## Запуск релиза на устройстве EyePoint S2

1. Подключитесь к устройству EyePoint S2 по ssh и для удобства переключитесь на bash:

   ```bash
   bash
   ```

2. Перемонтируйте файловую систему:

   ```bash
   sudo mount -o remount,rw /
   ```

3. При необходимости отключите ПО:

   ```bash
   sudo systemctl stop nodm
   ```

4. С помощью приложения [WinSCP](https://winscp.net/eng/download.php) скопируйте файлы из релиза в папку `/home/eyepoint/Develop/eyepoint-s1`.

5. Предоставьте права на выполнение бинарному файлу `eyepoint_s`:

   ```bash
   chmod ugo+x eyepoint_s
   ```

6. Замените файл `/home/eyepoint/Develop/start.sh` на файл из релиза `/home/eyepoint/Develop/eyepoint-s1/start.sh`.

7. Предоставьте права на выполнение скопированному файлу `start.sh`:

   ```bash
   chmod ugo+x start.sh
   ```

8. При необходимости обновите `HTML`-сервер на устройстве, заменив папку `home/eyepoint/Develop/html_page` на папку `home/eyepoint/Develop/eyepoint-s1/html_page` из релиза.

   ```bash
   rm -rf /home/eyepoint/Develop/html_page
   mv /home/eyepoint/Develop/eyepoint-s1/html_page /home/eyepoint/Develop/
   chmod ugo+x /home/eyepoint/Develop/eyepoint-s1/html_page/cgi/device_info.py
   ```

9. При необходимости обновите `revealer`-сервер на устройстве, заменив папку `home/eyepoint/Develop/revealer_server` на папку `/home/eyepoint/Develop/eyepoint-s1/revealer_server` из релиза.

   ```bash
   rm -rf /home/eyepoint/Develop/revealer_server
   mv /home/eyepoint/Develop/eyepoint-s1/revealer_server /home/eyepoint/Develop/
   ```

10. Перемонтируйте файловую систему:

    ```bash
    sudo mount -o remount,ro /
    ```

11. Проверьте, что обновленное ПО работает:

    ```bash
    sudo systemctl start nodm
    ```

12. Перезагрузите устройство EyePoint S2.

## Дополнительные опции при запуске ПО в Windows и Linux

Есть возможность запустить ПО с дополнительными опциями. Для этого нужно дописать дополнительные опции к строке запуска в файле `launch_command.bat` или `launch_command.sh`.

Дополнительные опции:

- `--debug` - включение режима отладки, в котором выводится дополнительная отладочная информация;
- `--en` - английская версия интерфейса;
- `--hide-cursor` - не отображать курсор в окне приложения;
- `--no-score` - отключение вычисления степени различия ВАХов тестового и опорного (эталонного) измерителей;
- `--no-sound` - отключение звука;
- `--screenshot-external-media-path` - указание фиксированного пути для сохранения файлов;
- `--window embedded` - запуск интерфейса, адаптированного под сенсорный экран;
- `--window pc` - запуск интерфейса, адаптированного под обычный ПК (режим по умолчанию).

Для сохранения скриншотов и эталонных плат нужно создать папку, которая будет содержать внутри себя ровно одну папку. Верхнюю папку нужно передать в качестве аргумента командной строки `--screenshot-external-media-path`. Например, создаём папку `С:\EyePoint\EyePoint_data`. Параметр задаём так:

```bash
--screenshot-external-media-path="С:\EyePoint"
```
