﻿Як запустити програму стенда

== Що в архіві

- StandDL24.exe — сама програма
- Diagnostika.exe — показує, чи бачить компʼютер прилади (потрібна, якщо щось не підхопилось)
- nalashtuvannya.json — налаштування
- ярлики .bat на кожен випадок: звичайний запуск, демо, діагностика,
  журнал, самоперевірка і віддалена допомога
- ця інструкція

Файла доступу до Google-таблиці google.json в архіві немає, я надсилаю
його окремо.

Версія збірки написана просто в заголовку вікна, поруч із назвою. За нею
видно, що у вас запущена саме та програма, яку я надіслав останньою.

== Перший запуск

1. Перед розпаковуванням клацніть правою кнопкою на архіві, «Властивості»,
   внизу поставте галочку «Розблокувати» і натисніть «OK». Тоді Windows не
   питатиме дозволу на кожен ярлик окремо.
2. Розпакуйте архів у будь-яку папку, наприклад C:\Stand. Папка має бути така,
   куди Windows дозволяє писати: програма тримає поруч базу результатів.
3. Підключіть прилади USB-кабелями і ввімкніть їх.
4. Запустіть StandDL24.exe або ярлик Запустити.bat.

Якщо Windows покаже синє вікно з попередженням, натисніть «Докладніше»,
а потім кнопку запуску внизу. Так Windows зустрічає кожну програму без
платного цифрового підпису.

Програма сама знайде прилади і розкладе їх по позиціях. Який прилад на якій
позиції стоїть, вона запамʼятає за його номером, тому наступного разу вони
стануть на свої місця самі.

Якщо прилади не знайшлись, запустіть Diagnostika.exe (ярлик
Діагностика.bat). Вона створить поруч файл dl24-diagnostika-....txt,
надішліть його мені, і я скажу, у чому річ.

== Позиції і серійні номери

При першому запуску вільні позиції займають знайдені прилади. Зіставте
серійні номери на екрані з фізичними позиціями перед початком тестування.
Потім привʼязка зберігається незалежно від гнізда USB-хаба.

Якщо старий прилад відʼєднали, його позиція залишається за ним. Новий прилад
не замінює його автоматично. Для заміни закрийте програму після підтвердження
OFF і змініть serial потрібної позиції у nalashtuvannya.json на номер із
діагностики. Не призначайте один номер двом позиціям. Після підключення
приладу, якого не було під час запуску, перезапустіть програму.

== Подивитись без приладів

Ярлик Демо без приладiв.bat піднімає два несправжні прилади просто в
програмі: видно позиції, показання, уставки, «Пуск» і «Стоп». Розряд там іде
у 120 разів швидше за справжній, тобто елемент «сідає» за кілька секунд, і
відразу видно, як рядок лягає в базу. Нічого підключати не треба.

Цифри в демо несправжні: там усередині найпростіша модель елемента, вона
потрібна тільки щоб показати хід роботи, відсічку і запис рядка. Справжню
ємність дадуть ваші прилади.

== Як іде тест

1. Зверху впишіть, хто працює, і номер стенда.
2. На позиції виставте струм і поріг відсічки. Типово стоїть 1 А і 2,8 В,
   струм піднімайте до потрібного самі.
3. Натисніть «Пуск».

Далі програма веде розряд сама: показує напругу, струм, набрану ємність і час,
а коли напруга падає до порога, вимикає навантаження. Поріг тримає саме
програма: прошивка приладу його запамʼятовує і показує на екрані, але сама за
ним не вимикає, це перевірено. Додатково в прилад пишеться його власний
таймер, тож якщо ноутбук зависне або програма закриється, прилад вимкне
навантаження сам.

Коли розряд завершився, рядок автоматично лягає в Google-таблицю: дата, час,
оператор, стенд, позиція, ID навантажувача (серійний номер приладу) і ємність
в Аг.

== Якщо хтось натискає кнопки на приладі

Під час тесту головна програма. Раз на кілька секунд вона перечитує в приладі
струм і поріг, і якщо їх змінили кнопками, повертає свої. Це видно в рядку
стану позиції і в примітці до тесту.

Обнулення лічильника на приладі тест не зупиняє і ємність не губить, про це
нижче, у розділі «Про ємність».

Якщо навантаження вимкнули кнопкою на приладі, тест зупиняється з помилкою і
рядок у таблицю не йде. Так само прилад вимикається від власного захисту чи
таймера, тому вмикати його назад наосліп програма не буде. Між тестами
навантаження, увімкнене на приладі в обхід програми, вона вимикає сама.

== Обмеження захисту

За наявним описом HID-прошивки V1.1.0 записаний поріг напруги сам прилад
не виконує. Його тримає програма. Апаратний таймер перевіряється перед ON
і обмежує тривалість роботи, але не гарантує вимкнення саме на 2,8 В
при зависанні ноутбука чи фізичному обриві USB.

При втраті відповідей програма намагається виконати OFF і повторює спроби,
не вважаючи прилад вимкненим без підтвердження. Якщо видно
«OFF НЕ ПІДТВЕРДЖЕНО», відключіть елемент вручну. Для гарантованої
незалежної від ноутбука відсічки потрібен окремий апаратний захист.
Перші випробування проводьте під наглядом за сценарієм приймання.

Після перезапуску програма спочатку намагається вимкнути знайдені прилади.
Перервані тести позначаються помилкою, зберігаються останні локальні точки;
автоматичного продовження розряду немає. Елемент треба перевірити повторно.

== Про ємність

Команди обнулення лічильників для цієї ревізії приладу немає, тому лічильник
на екрані приладу так і продовжує рости від тесту до тесту. Це не заважає:
програма запамʼятовує значення на старті і в таблицю пише різницю, тобто
ємність саме цього елемента. Паралельно вона рахує ємність сама, за струмом і
часом, і якщо дві цифри розійдуться більше ніж на 5%, це буде видно в журналі.

Якщо лічильник обнулити кнопками на приладі посеред тесту, програма це
помітить, перенесе вже набране і рахуватиме далі. У таблицю ляже повна
ємність елемента, а в примітці до тесту буде видно, що лічильник обнуляли.
Якщо ж лічильник стрибне так, як фізично не буває, тест зупиниться з
помилкою, щоб хибна цифра не потрапила в таблицю.

Команда апаратного RESET для цієї ревізії не підтверджена, і програма не
перебирає невідомі команди приладу: таким перебором можна зачепити його
калібрування і захисти.

== Google-таблиця

Поки таблицю не підключено, програма працює як є: результати лягають у
локальну базу stand.db поруч із програмою.

Щоб рядки йшли в Google-таблицю:

1. Файл доступу google.json, який я надсилаю окремо, покладіть у папку з
   програмою, поруч із StandDL24.exe.
2. Відкрийте свою таблицю, натисніть «Поділитися» і додайте адресу
   stand-dl24-sheets@stand-dl24-1029.iam.gserviceaccount.com
   з правами редактора. З правами лише на перегляд Google запис не пропустить.
3. Відкрийте nalashtuvannya.json Блокнотом і впишіть посилання на таблицю
   в рядок spreadsheet, у лапках, наприклад:
   "spreadsheet": "https://docs.google.com/spreadsheets/d/.../edit",
   Збережіть файл і перезапустіть програму.

Стан таблиці видно у верхньому рядку вікна. «Таблиця на звʼязку» означає,
що все налаштовано. Якщо прав немає, там буде написано, якій адресі їх дати,
і цю адресу можна виділити мишкою та скопіювати.

Програма сама створить у таблиці аркуш «Результати» з шапкою: дата, час,
оператор, стенд, позиція, ID навантажувача, ємність в Аг. Інші аркуші вона
не чіпає. Восьмий стовпчик цього аркуша прихований: за ним програма впізнає свої рядки, щоб не
записати їх двічі, тому не видаляйте його.

Якщо інтернету немає, нічого не губиться: результати лежать у базі і поїдуть
у таблицю, щойно звʼязок зʼявиться. Кнопка «Надіслати в таблицю» робить це
вручну.

== Віддалена допомога

Якщо щось не зрозуміло або поводиться дивно, можна показати мені програму
вживу, нічого не встановлюючи додатково.

1. Запустіть ярлик Віддалена допомога.bat.
2. Внизу вікна зʼявиться рядок «Міст: … · Код: …».
3. Надішліть мені цей код у переписку.

Поки я підключений, мені видно показання позицій, журнал програми і знімок
вашого вікна. Кнопка «Вимкнути доступ» поруч із кодом обриває звʼязок будь-якої
миті, закриття програми так само.

На живих приладах звідти можна тільки дивитися і натиснути «Стоп». Пуск
розряду і зміна уставок самі не виконуються: у вашому вікні зʼявиться запит
«Віддалена допомога просить …», і поки ви не натиснете «Дозволити», нічого не
відбувається. Без відповіді запит зникає сам через три хвилини. Так зроблено
навмисно: при 20 А на елементі біля стенда має бути людина.

Код діє 15 хвилин і спрацьовує один раз. Програма сама стукає назовні, тобто
відкривати порти або щось налаштовувати в мережі не треба. Подивитись, як це
виглядає, без приладів можна ярликом Віддалена допомога (демо).bat.

== Якщо щось пішло не так

- програма не відкривається або зникає відразу: запустіть ярлик
  Запуск з журналом.bat, поруч зʼявиться файл zhurnal.txt із причиною,
  надішліть його мені. Якщо вікно не встигло навіть відкритися, поруч
  залишиться startup-error.txt, він потрібен так само
- прилад зник посеред тесту: програма вимкне навантаження і позначить тест
  як помилку, щоб його було видно
- програма не бачить таблиці: результати лишаються в базі, у верхньому рядку
  видно, скільки рядків чекає відправки
- потрібно зупинити тест руками: кнопка «Стоп» на позиції
- віддалена допомога пише «Захист сайту не пропустив програму» або
  «Не вдалося зʼєднатися»: програма повторює спроби сама, рядок унизу показує,
  коли буде наступна. Якщо так і не підключилось, надішліть мені цей рядок
