#766

Скачанные файлы сначала ложатся в рабочую папку на компьютере (обычно C:\orders). Станки из неё обычно не читают: им нужна сетевая папка или подключённый диск. Копированием туда занимается синхронизация.

Когда она запускается

  • после каждой проверки заказов — то есть каждый цикл по расписанию;
  • после того как программа закончила конвертацию файлов;
  • вручную — кнопкой «Проверить сейчас» на вкладке «Главная», она прогоняет весь цикл целиком вместе с копированием.

Отдельной кнопки «только синхронизировать» нет.

Что именно копируется

Программа идёт по правилам из файла synchronize_folders.txt. Каждое правило — это пара «откуда» и «куда». Как она устроена, описано в статье Правила маршрутов: формат строки и два режима.

Внутри правила программа обходит папку-источник целиком, включая вложенные папки, и для каждого файла решает, копировать его или нет:

  • Файл без номера заказа в пути пропускается. Номер ищется в структуре папок; если его нет, файл считается посторонним и синхронизация его не трогает.
  • SVG, который ещё конвертируется, пропускается. Иначе на станок уехала бы заготовка вместо готового файла. Когда конвертация закончится, на диске останется уже EMF — его и скопирует следующий цикл.
  • Файл, который уже есть в назначении и того же размера, не копируется повторно. Поэтому обычный цикл проходит быстро даже на большой папке: заново перекладываются только новые и изменившиеся файлы.

Уборка устаревших SVG в назначении

Если в папке назначения рядом лежат имя.svg и имя.emf, SVG удаляется: он устарел, его заменил EMF. Это работает только для правил типа folder.

Если папка назначения недоступна

Программа пишет ошибку в журнал и переходит к следующему правилу. Скачивание заказов и конвертация при этом не останавливаются — файлы остаются в рабочей папке и уедут на станок, как только сетевая папка снова появится.

Заказы, которых нет в базе программы

Если в рабочей папке лежат файлы заказов, которые эта программа не скачивала (например, остались от прошлой установки), в журнале появится строка вида «orders skipped (not in database)» с номерами заказов и примером пути. Такие файлы не копируются и не удаляются сами — как освободить под них место, написано в статье Сколько заказов хранить и как чистить диск.

Обратная сторона

Программа помнит, какие файлы и куда она скопировала. Поэтому при удалении заказа она убирает не только рабочую папку, но и скопированные файлы в назначениях — см. Удалить заказ и закачать его заново.

Как проверить, что всё уехало

Для этого есть окно «Сверка папок»: оно показывает по каждому заказу, сколько файлов в источнике и сколько в назначении.