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

== Що в архіві

- 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. Натисніть «Пуск».

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

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

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

== Якщо зник звʼязок із приладом

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

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

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

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

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

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

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

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

Опис HID-прошивки V1.1.0 каже, що записаний поріг сам прилад не виконує, але
на вашому стенді обидва прилади вимикаються на ньому самі. Тому без звʼязку
елемент захищає саме поріг у приладі, а програма тримає його незалежно. Якщо
прилад вимкне навантаження на порозі раніше за програму, тест завершується як
слід, а в примітці буде «навантаження вимкнув сам прилад». На іншій прошивці
поріг у приладі може не спрацювати: тоді без звʼязку лишається тільки таймер,
який обмежує тривалість, але не гарантує вимкнення саме на 2,8 В.

Програма не вважає прилад вимкненим без підтвердження. Якщо видно
«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, він потрібен так само
- прилад зник посеред тесту: тест іде далі, докладно в розділі «Якщо зник
  звʼязок із приладом»
- програма не бачить таблиці: результати лишаються в базі, у верхньому рядку
  видно, скільки рядків чекає відправки
- потрібно зупинити тест руками: кнопка «Стоп» на позиції, а весь стенд
  разом зупиняє кнопка «Стоп усім» зверху вікна. Якщо тести йдуть, програма
  перепитає, щоб випадковий клік не зірвав усі розряди. На 15–20 А прилад
  вимикається за секунду-дві, програма це чекає і пише «зупинено»
- однакові уставки на всі позиції: виставте струм, поріг і ємність на
  позиції 1 і натисніть «Копіювати налаштування усім». Позиції, де розряд уже
  йде, не змінюються. Запустити всі вільні позиції разом можна кнопкою
  «Старт усім», програма перед запуском перепитає
- віддалена допомога пише «Захист сайту не пропустив програму» або
  «Не вдалося зʼєднатися»: програма повторює спроби сама, рядок унизу показує,
  коли буде наступна. Якщо так і не підключилось, надішліть мені цей рядок
