94 Commits

Author SHA1 Message Date
f1a7bcd8bc Support shared serial ports and optional verification in TMS flashing 2026-10-09 16:41:47 +03:00
86ece3ea90 Extract reusable byte work panel with configurable terminal addressing 2026-10-09 08:56:16 +03:00
fe9b5a246e Checkpoint EEPROM, firmware analysis and instrument protocol updates 2026-10-08 21:51:44 +03:00
b0c0c05cfa Add shared PySetTerminal with asynchronous cancellable macros 2026-10-08 18:34:41 +03:00
c011c2957b Track completed Single acquisitions and persist recent addresses 2026-10-07 12:32:29 +03:00
6047ceac89 Pause automatic waveform transfers on hardware Stop 2026-10-07 12:22:00 +03:00
79b0cde20e Add native QCustomPlot renderer and shared plot adapters 2026-10-07 11:33:14 +03:00
90046de7fd Добавить идентификацию прошивки и чтение EEPROM Бальзам-167 2026-10-05 17:48:23 +03:00
0e3d89e1ee Добавить протокол DEIF, диагностику CAN и сохранение сессий 2026-10-04 23:34:26 +03:00
6c08eece61 Улучшить две шкалы, навигацию и формулы графиков 2026-10-04 23:34:26 +03:00
c7294830f9 Add shared CAN monitor sessions, protocol selection and HEX/DEC display 2026-10-03 22:53:51 +03:00
427fc70100 docs: добавь поясняющие комментарии к модулям и инструментам 2026-10-02 16:46:19 +03:00
6cbce6c360 Согласовать демо логгера УМП с постинтервалом в десять процентов банка 2026-10-02 16:41:26 +03:00
3463e95eb3 Добавить общее перетаскивание графиков и независимые шкалы амплитуд 2026-10-02 16:41:26 +03:00
025a3fde28 Исправить порядок слов BALZAM CAN и добавить поддержку пульта МПУ 2026-10-02 16:41:25 +03:00
a63c1dd7d8 merge: объедини сервисы UMP и USB-загрузчики с актуальным API 2026-10-02 12:45:31 +03:00
083ab55cb6 merge: сохрани уже перенесённую историю графиков и NAND 2026-10-02 12:41:51 +03:00
d2578299d8 merge: сохрани историю графиков и bxCAN, уже включённых в main 2026-10-02 12:41:36 +03:00
fdfae8fa6c merge: включи доработки логгера и портов SETGUI 2026-10-02 12:40:48 +03:00
66fad32a81 merge: объедини локальные доработки templates в main 2026-10-02 12:40:34 +03:00
f7a6f767e1 feat(gas-logger): добавь непрерывный логгер и JSON-карту 2026-10-01 22:54:29 +03:00
675ce063f0 feat(qt-ports): унифицировать выбор последовательного порта 2026-10-01 22:40:20 +03:00
3d9174a124 fix(ump): поддержать индексное чтение записей ПМ67 2026-10-01 22:40:19 +03:00
46ecbe3210 docs: опиши работу с сабмодулями и добавь сборку Doxygen 2026-10-01 18:19:38 +03:00
6df5674996 feat(hdl): добавь двухтактовый буфер логического анализатора 2026-10-01 18:19:38 +03:00
196d083098 feat(tms2812): добавь общий протокол терминала и привязки Python и Android 2026-10-01 18:19:37 +03:00
c0ee7c46ea Support PM67 voltage fields in UMP logger v3 2026-10-01 16:00:25 +03:00
3457657979 Объединить протокол терминала TMS2812 для Python и Android 2026-10-01 15:41:43 +03:00
79411dbc26 Add shared emulator services, waveform generation and STM32 USB boot ports 2026-09-28 11:54:17 +03:00
5260186c16 Добавить протокол Altera Logic и общие клиенты прошивки 2026-09-19 07:12:09 +03:00
10bfa587c7 perf(ds18b20-ds2480): передавай байты в Data Mode 2026-09-15 22:45:07 +03:00
ac3025ee32 feat(ds18b20-ds2480): добавь порт F407 и асинхронную подтяжку 2026-09-15 22:32:30 +03:00
37508f058b merge: сохрани историю NAND, уже включённую в c/parallel-nand 2026-09-15 22:15:19 +03:00
3334f4cddd Merge remote-tracking branch 'origin/feature/konor-runtime-settings' 2026-09-15 22:15:07 +03:00
aedd5fc082 merge: объедини DS2480 и актуальный templates в main 2026-09-15 22:15:06 +03:00
9ba3742b29 feat(ds18b20-ds2480): добавь драйвер датчиков через UART-мост 2026-09-15 16:57:33 +03:00
4f23f48896 Объединить разработки CAN и STM32 в master 2026-09-15 15:57:48 +03:00
8e9fd144ca Сохранить текущие изменения NAND и LED перед объединением веток 2026-09-15 15:57:06 +03:00
49c65ea78d fix(set-protocol): сохрани совместимость порта с ARMCC 2026-09-07 08:42:02 +03:00
34f728cfaa fix(set-protocol): убери libc из порта DevBoard F407 2026-09-07 08:41:26 +03:00
72205216f5 feat(set-protocol): добавь порт F407 для DevBoard_V1 2026-09-07 08:32:02 +03:00
5d48ddf0b0 Добавить HTML-справочник CAN v1 и v2 2026-09-06 03:09:53 +03:00
245d486a63 Добавить HTML-справочник CAN v1 и v2 2026-09-06 03:03:59 +03:00
e262b0acdd Добавить порт SETProtocol v2 для TMS320F2812 2026-09-06 02:14:17 +03:00
ed92ec346e Расширить общий протокол CAN_Bal_2812 2026-09-06 01:06:30 +03:00
3d374e7777 Добавить общую модель конструктора ProtoCAN для Android 2026-09-06 00:11:25 +03:00
d03e039cb4 Merge remote-tracking branch 'origin/trend-display-scale' into HEAD 2026-09-05 11:43:08 +03:00
d002b14e4e Share PM67 upload protocol through C core 2026-09-05 11:37:03 +03:00
11007b0704 Добавить множитель и IQ в Python-тренды 2026-09-05 03:45:05 +03:00
821202b655 Добавить выпуск прошивок из Keil и CCS 2026-09-05 03:16:16 +03:00
8596918bf7 Добавить публикацию каталога прошивок 2026-09-05 03:05:17 +03:00
bada3bbe8d Сохранить совместимость ABI графиков 2026-09-05 02:44:08 +03:00
87f2f2f56b Дополнить общий контракт границ осей 2026-09-05 02:43:07 +03:00
5523f049ec Расширить общие API графиков и GAS обмена 2026-09-05 02:37:11 +03:00
b08ea02a5c Align Android parser statistics with C core 2026-09-04 21:10:02 +03:00
1b3a6318eb Move PM35 protocol into shared C core 2026-09-04 21:06:40 +03:00
57622ccd66 Добавить Android API протокола ПМ35 2026-09-04 20:39:04 +03:00
ba529f579c Merge pull request 'Расширить графики и общие протоколы CAN и Periph28335' (#4) from feature/plot-can-periph-updates into master
Reviewed-on: #4
2026-09-04 19:18:54 +03:00
4f788d39d6 Убрать лишнюю строку в Legacy CAN API 2026-09-04 19:17:27 +03:00
1799b00167 Добавить канал TMS в каталог прошивок 2026-09-04 19:15:48 +03:00
940d9ada76 Добавить общий протокол Periph28335 2026-09-04 19:15:48 +03:00
6eaa47d3a8 Добавить общий Python API старого CAN terminal 2026-09-04 19:15:47 +03:00
1f49ba49bb Добавить общий API старого CAN terminal 2026-09-04 19:15:47 +03:00
b7f00acb24 feat(plot): lock axes and calculate marker levels in dB 2026-09-04 19:15:47 +03:00
70b2ee3cad feat(plot): configure one or two marker pairs per axis 2026-09-04 19:15:47 +03:00
b3ec401318 Добавить канал TMS в каталог прошивок 2026-09-04 19:10:06 +03:00
666173b2f0 Добавить общий протокол Periph28335 2026-09-04 18:59:54 +03:00
17259f5e28 Добавить общий Python API старого CAN terminal 2026-09-04 18:52:36 +03:00
79ac0d52a7 Добавить общий API старого CAN terminal 2026-09-04 18:19:38 +03:00
52d687b5ae feat(plot): lock axes and calculate marker levels in dB 2026-09-04 13:50:20 +03:00
7897fe9f0d feat(plot): configure one or two marker pairs per axis 2026-09-04 12:56:16 +03:00
45582cda4a Merge pull request 'Добавить общие графики и драйвер parallel NAND' (#3) from feature/shared-plot-and-parallel-nand into master
Reviewed-on: #3
2026-09-04 12:39:12 +03:00
2bb9fea90a Убрать лишнюю строку в модели маркеров 2026-09-04 12:36:56 +03:00
6392d36741 Добавить общий Python-парсер каталога прошивок 2026-09-04 12:31:42 +03:00
0c635ce1be Добавить безопасный клиент каталога прошивок Android 2026-09-04 12:30:37 +03:00
5caca07ad4 Поддержать настройки трендов в Python 3.8 2026-09-04 12:23:07 +03:00
31a111ee46 Добавить переносимый драйвер parallel NAND 2026-09-04 12:22:21 +03:00
20f63bc389 Добавить общие графики, декодер KONOR и порт STM32 bxCAN 2026-09-04 12:22:17 +03:00
0a30c39e07 feat(plot): add eight markers and high-rate timestamps 2026-09-04 10:25:27 +03:00
e8490b3122 Merge K:/git_project/newProject/templates into codex/shared-plot-interaction 2026-09-03 16:02:26 +03:00
a14140f794 feat(gui): share plot interaction, trend and spectrum core across JNI and Python 2026-09-03 16:02:25 +03:00
261f2ca6f1 refactor(stm32-bxcan): перенеси SETCAN в порт templates
Сохрани API PROTOCAN и историю SETCAN вторым родителем коммита. Подключи pcan_id из общего ядра, обнови пути и инструкции. Отдельный репозиторий и вложенный сабмодуль больше не требуются.
2026-09-02 15:49:19 +03:00
c8eec55978 Подключить ProtoCAN из общего SETProtocol 2026-09-01 11:50:08 +03:00
ab60e58318 docs: consolidate documentation under doc 2026-08-30 06:12:49 +03:00
94fc8c5ef2 Добавить HTML-документацию 2026-08-30 03:44:47 +03:00
58da8aa2fe Добавить типы сообщений ProtoCAN Boot 2026-08-29 22:18:26 +03:00
bd8d22312e docs: document CAN bootloader protocol 2026-08-29 21:45:30 +03:00
01de7651e8 добавил ссылку на документ яндекс 2026-08-28 13:45:39 +03:00
34c46ec679 Merge branch 'master' of https://git.rd12.ru/Templates/SETCAN 2026-08-27 08:17:13 +03:00
23e37d1c4d test 2026-08-27 08:17:01 +03:00
aea2a79d2c Добавить таблицу протокола CAN и ОАП 2026-08-26 20:55:54 +03:00
bb7c94f1b7 Добавить пакеты SETTINGS для привязки датчиков 2026-08-26 20:13:06 +03:00
ce6c4327a4 Добавить документацию SETCAN 2026-08-25 18:55:43 +03:00
3cf85a278e init commit 2026-08-20 17:24:34 +03:00
560 changed files with 58346 additions and 148 deletions

27
Doxyfile Normal file
View File

@@ -0,0 +1,27 @@
PROJECT_NAME = "templates"
PROJECT_BRIEF = "Переносимые библиотеки и правила интеграции"
OUTPUT_DIRECTORY = .codex-build/doxygen
CREATE_SUBDIRS = NO
OUTPUT_LANGUAGE = Russian
INPUT = README.md NEW_PROJECT.md CONTRIBUTING.md doc/submodules.dox c python
FILE_PATTERNS = *.h *.c *.dox *.md
RECURSIVE = YES
USE_MDFILE_AS_MAINPAGE = README.md
MARKDOWN_SUPPORT = YES
AUTOLINK_SUPPORT = YES
EXTRACT_ALL = NO
EXTRACT_STATIC = NO
SOURCE_BROWSER = YES
INLINE_SOURCES = NO
STRIP_FROM_PATH = .
GENERATE_HTML = YES
HTML_OUTPUT = html
GENERATE_TREEVIEW = YES
DISABLE_INDEX = NO
GENERATE_LATEX = NO
QUIET = YES
WARNINGS = YES
WARN_IF_UNDOCUMENTED = NO
WARN_IF_DOC_ERROR = YES
WARN_AS_ERROR = FAIL_ON_WARNINGS
HAVE_DOT = NO

View File

@@ -120,3 +120,188 @@ USB gs_usb и конкретной разводки адаптера; перен
Так новый проект не является копией старого: он использует общие ядра одной
версии, а аппаратные отличия видны в одном небольшом каталоге `port/`.
## Слияние и обновление `templates` как Git submodule
### Что именно хранит основной проект
Основной проект не хранит содержимое `lib/templates` в своей истории. Вместо
этого он хранит **gitlink** — ссылку на один конкретный commit репозитория
`templates`. Поэтому при работе есть два независимых уровня истории:
1. изменения библиотек сливаются и публикуются в репозитории `templates`;
2. основной проект отдельным коммитом переводит gitlink на проверенную ревизию
`templates`.
Обычный `git merge` в основном проекте не переносит исходники между ветками
`templates` и не создаёт merge-коммит внутри сабмодуля. Он может только выбрать
одну из уже существующих ссылок на commit. Если ссылки разошлись, сначала нужно
получить общий commit в самом `templates`, а затем зафиксировать его в основном
проекте.
Текущую зафиксированную ревизию удобно смотреть из корня основного проекта:
```bash
git submodule status lib/templates
git diff --submodule=log
```
Символ `-` перед SHA в `git submodule status` означает, что сабмодуль ещё не
инициализирован; `+` — что рабочая копия сабмодуля находится не на том commit,
который записан в основном проекте; `U` — конфликт gitlink.
### Клонирование проекта и переключение его веток
Новый клон лучше сразу создавать вместе с сабмодулями:
```bash
git clone --recurse-submodules <url-основного-проекта>
cd <основной-проект>
```
Если проект уже клонирован:
```bash
git submodule update --init --recursive
```
После `git switch`, `git checkout`, `git pull` или завершения слияния основной
проект может начать ссылаться на другую ревизию `templates`. Рабочее дерево
сабмодуля следует явно привести к записанному состоянию:
```bash
git submodule update --init --recursive
```
Это нормальный и воспроизводимый режим: внутри `lib/templates` обычно будет
detached HEAD, потому что проект фиксирует commit, а не ветку. Не следует делать
там `git pull`, пока не выбрана рабочая ветка и не понятно, какую ревизию должен
получить основной проект.
### Обычное обновление проекта на новую версию `templates`
Сначала изменение должно быть проверено, закоммичено, отправлено и слито в
целевую ветку самого репозитория `templates`. После этого из корня основного
проекта выполняется:
```bash
git -C lib/templates fetch origin
git -C lib/templates switch --detach origin/master
git add lib/templates
git diff --cached --submodule=log
git commit -m "build(templates): обновить общие библиотеки"
```
Перед коммитом нужно собрать основной проект и прогнать его тесты: успешные
тесты в `templates` подтверждают работу библиотеки, но не проверяют конкретный
порт, настройки платы и интеграцию приложения.
Коммит основного проекта содержит только переход со старого SHA сабмодуля на
новый. Случайные незакоммиченные файлы внутри `lib/templates` в него не входят.
Проверить оба уровня перед фиксацией можно так:
```bash
git status
git -C lib/templates status
git diff --submodule=log
```
Не нужно обновлять сабмодуль на последний `master` автоматически при каждой
сборке. Зафиксированный SHA нужен именно для того, чтобы одна и та же версия
проекта всегда собиралась с одной и той же версией библиотек.
### Если библиотеку правят из рабочего дерева основного проекта
Нельзя коммитить изменение, оставаясь на detached HEAD: такой commit легко
потерять при следующем `git submodule update`. Сначала внутри сабмодуля создаётся
обычная ветка:
```bash
git -C lib/templates fetch origin
git -C lib/templates switch -c feat/<имя> origin/master
```
Затем изменения коммитятся и отправляются именно в репозиторий `templates`:
```bash
git -C lib/templates add <файлы>
git -C lib/templates commit -m "feat(<библиотека>): <описание>"
git -C lib/templates push -u origin feat/<имя>
```
После проверки ветка сливается в `master` репозитория `templates`. Только после
публикации итогового commit основной проект обновляет свой gitlink по процедуре
из предыдущего раздела. Не следует отправлять в общий основной проект ссылку на
commit сабмодуля, которого ещё нет на сервере: остальные разработчики и CI не
смогут его получить.
### Что происходит при слиянии веток основного проекта
Возможны три ситуации:
1. Gitlink изменён только в одной ветке. Git обычно принимает эту ревизию
автоматически. После merge нужно выполнить `git submodule update` и тесты.
2. Обе ветки указывают на разные commits, но один commit `templates` является
предком другого. Следует выбрать более новый проверенный commit, выполнить
`git add lib/templates` и продолжить merge.
3. Обе ветки указывают на расходящиеся commits `templates`. Это настоящий
конфликт истории сабмодуля: выбирать один SHA наугад нельзя, потому что так
потеряются изменения второй ветки.
При конфликте сначала смотрят, какие ссылки пришли с обеих сторон:
```bash
git ls-files -u lib/templates
git -C lib/templates fetch origin
git -C lib/templates log --oneline --graph --decorate --all
```
Затем в отдельной ветке **репозитория `templates`** объединяют оба commit,
устраняют конфликты исходников, запускают тесты и публикуют результат:
```bash
git -C lib/templates switch -c merge/<имя> <sha-одной-стороны>
git -C lib/templates merge <sha-другой-стороны>
# исправить конфликты и запустить тесты templates
git -C lib/templates add <исправленные-файлы>
git -C lib/templates commit
git -C lib/templates push -u origin merge/<имя>
```
Если общий merge-коммит уже существует в `origin/master`, создавать ещё один не
нужно: достаточно выбрать существующий SHA. После получения итогового commit
конфликт завершается на уровне основного проекта:
```bash
git -C lib/templates switch --detach <итоговый-sha>
git add lib/templates
git diff --cached --submodule=log
git merge --continue
git submodule update --init --recursive
```
`git add lib/templates` здесь отмечает разрешённым именно gitlink. Не нужно
удалять каталог, копировать библиотеку поверх него или разрешать конфликт как
обычный текстовый файл.
### Что должно попасть в merge request основного проекта
Перед отправкой результата следует проверить:
1. итоговый commit `templates` доступен в удалённом репозитории;
2. `git -C lib/templates status` не показывает локальных изменений;
3. `git submodule status` не начинается с `+`, `-` или `U`;
4. `git diff --submodule=log <целевая-ветка>...HEAD` показывает ожидаемый набор
commits библиотек;
5. тесты `templates`, сборка основного проекта и проверки на целевой плате
прошли;
6. в основном проекте закоммичены необходимые изменения адаптеров, конфигурации
и сам новый gitlink.
После получения ветки другой разработчик восстанавливает ровно выбранное
состояние одной командой:
```bash
git pull
git submodule update --init --recursive
```

View File

@@ -48,6 +48,10 @@ templates/
### Python
Экспериментальный [`c/gas-logger`](c/gas-logger/README.md): непрерывная запись
в два банка RAM, снимки через GAS/Modbus/ProtoCAN, JSON-карта имён и адресов,
проектный порт ПМ35 и MCU-порты C28x / STM32. Клиент в `set_devices.gas_logger`.
| Модуль | Что делает | Зависимости |
|---|---|---|
| [`python/setprotocol/firmware_database.py`](python/setprotocol/firmware_database.py) | база прошивок: HTTPS-каталог, скачивание с SHA-256 и кэшем, публикация в Gitea без SETGUI; [подключение и CLI](tools/firmware-publish/DATABASE.md) | stdlib, Python 3.10+ |
@@ -72,6 +76,11 @@ templates/
В ней отдельно описаны граница ядра, ABI, память, три wire format и состояние
портов Windows, Android, Linux и MCU.
Обзор всего репозитория, включая слияние при подключении через submodule:
[`doc/index.html`](doc/index.html). Справочник Doxygen собирается командой
`powershell -ExecutionPolicy Bypass -File doc/build-doxygen.ps1` в
`.codex-build/doxygen/html/index.html`.
## Как подключить к проекту
**Сабмодуль** — когда нужна одна конкретная версия и обновление по команде:
@@ -81,6 +90,10 @@ git submodule add https://git.rd12.ru/Andrey/templates.git lib/templates
git submodule update --init --recursive
```
Как обновлять зафиксированную ревизию, переносить изменения из проекта и
разрешать конфликт gitlink при слиянии веток, подробно описано в разделе
[`Слияние и обновление templates как Git submodule`](NEW_PROJECT.md#слияние-и-обновление-templates-как-git-submodule).
Дальше в сборку добавляются только нужные каталоги:
```

View File

@@ -1,3 +1,7 @@
# Сборка библиотеки can_sensor. Состав исходников и публичные include-пути задают подключение
# к проекту потребителя. Файл также собирает и регистрирует хостовые проверки; запускать их
# следует через CTest из каталога сборки.
cmake_minimum_required(VERSION 3.13)
project(can_sensor C)

View File

@@ -1,3 +1,9 @@
/*
* Обмен настройками датчиков DS18B20 через однокадровые сообщения SETCAN. ROM идентифицирует
* датчик независимо от его позиции; прикладное состояние и отправка CAN предоставляются через
* интерфейс библиотеки.
*/
/**
* @file can_sensor.c
* @brief Однокадровый транспорт SETCAN SETTINGS для локаций DS18B20.

View File

@@ -1,3 +1,9 @@
/*
* Обмен настройками датчиков DS18B20 через однокадровые сообщения SETCAN. ROM идентифицирует
* датчик независимо от его позиции; прикладное состояние и отправка CAN предоставляются через
* интерфейс библиотеки.
*/
/**
* @file can_sensor.h
* @brief Портируемый транспорт SETTINGS для привязки DS18B20 к локации.

View File

@@ -1,3 +1,9 @@
/*
* Прямой bxCAN-порт датчиков для STM32F1 без HAL. Регистры контроллера обеспечивают передачу и
* приём SETCAN, а конфигурация платы задаёт подключение шины; это аппаратная реализация
* интерфейса can_sensor.
*/
/**
* @file can_sensor_stm32f1.c
* @brief Опросный порт can-sensor на bxCAN STM32F1 без STM32 HAL.

View File

@@ -1,3 +1,9 @@
/*
* Прямой bxCAN-порт датчиков для STM32F1 без HAL. Регистры контроллера обеспечивают передачу и
* приём SETCAN, а конфигурация платы задаёт подключение шины; это аппаратная реализация
* интерфейса can_sensor.
*/
/**
* @file can_sensor_stm32f1.h
* @brief Опросный порт can-sensor на bxCAN микроконтроллеров STM32F1.

View File

@@ -1,3 +1,9 @@
/*
* Конфигурация can-sensor для порта stm32f1. Макросы задают параметры сборки и ограничения,
* используемые исходниками этого модуля. Это образец для проекта: значения выводов, размеров
* памяти и параметров устройства необходимо согласовать с целевой платой.
*/
/**
* @file can_sensor_stm32f1_config.f103.template.h
* @brief Шаблон выводов CAN1 для STM32F103 без ремапа.

View File

@@ -1,3 +1,9 @@
/*
* Проверки can_sensor: фиксируют ожидаемое поведение на воспроизводимых входных данных.
* Тестовые значения и подмены окружения относятся к проверке контракта; они не являются
* настройками рабочего устройства.
*/
#include "can_sensor.h"
#include <stdio.h>

View File

@@ -1,3 +1,7 @@
# Сборка библиотеки candle. Состав исходников и публичные include-пути задают подключение к
# проекту потребителя. Платформенные зависимости и условия сборки задаются здесь, а не в
# прикладных исходниках.
cmake_minimum_required(VERSION 3.15)
project(candle C)
if(NOT WIN32)

View File

@@ -19,6 +19,12 @@
*/
/*
* Доступ к CAN-адаптерам candleLight/gs_usb в Windows через WinUSB. Перечисление устройств,
* открытие канала и обмен кадрами образуют отдельный транспортный слой; он не интерпретирует
* прикладные регистры SETProtocol.
*/
#include "candle.h"
#include <stdarg.h>

View File

@@ -1,3 +1,7 @@
; Доступ к CAN-адаптерам candleLight/gs_usb в Windows через WinUSB. Перечисление устройств,
; открытие канала и обмен кадрами образуют отдельный транспортный слой; он не интерпретирует
; прикладные регистры SETProtocol.
EXPORTS
candle_list_scan
candle_list_free

View File

@@ -20,6 +20,12 @@
*/
/*
* Доступ к CAN-адаптерам candleLight/gs_usb в Windows через WinUSB. Перечисление устройств,
* открытие канала и обмен кадрами образуют отдельный транспортный слой; он не интерпретирует
* прикладные регистры SETProtocol.
*/
#pragma once
#include <stdint.h>
#include <stdbool.h>

View File

@@ -19,6 +19,11 @@
*/
/*
* Управляющие USB-запросы адаптера candleLight: конфигурация, временные параметры CAN и режим
* канала. Эти транзакции идут через control endpoint и отличаются от потока CAN-кадров.
*/
#include "candle_ctrl_req.h"
#include "ch_9.h"

View File

@@ -20,6 +20,11 @@
*/
/*
* Управляющие USB-запросы адаптера candleLight: конфигурация, временные параметры CAN и режим
* канала. Эти транзакции идут через control endpoint и отличаются от потока CAN-кадров.
*/
#pragma once
#include "candle_defs.h"

View File

@@ -20,6 +20,12 @@
*/
/*
* Двоичные структуры и константы gs_usb, общие для драйвера и USB-адаптера. Размеры полей и
* упаковка определяют совместимость с прошивкой: менять их как обычные внутренние структуры
* нельзя.
*/
#pragma once
#include <stdint.h>

View File

@@ -19,6 +19,11 @@
*/
/*
* Типы стандартных USB-дескрипторов и запросов из главы 9 спецификации USB. Драйвер использует
* их для описания устройства и конечных точек; это транспортные определения, а не формат CAN.
*/
#pragma once
#define USB_DIR_OUT 0 /* to device */

View File

@@ -1,3 +1,7 @@
# Сборка библиотеки ds18b20_ds2480. Состав исходников и публичные include-пути задают
# подключение к проекту потребителя. Файл также собирает и регистрирует хостовые проверки;
# запускать их следует через CTest из каталога сборки.
cmake_minimum_required(VERSION 3.13)
project(ds18b20_ds2480 C)
add_library(ds18b20_ds2480 STATIC ds2480.c ds18b20_ds2480.c)

View File

@@ -1,3 +1,9 @@
/*
* Команды DS18B20 поверх интерфейса DS2480B: адресация ROM, преобразование температуры и
* scratchpad. Транспортный статус следует проверять до использования результата; сырая
* температура сохраняет знаковое представление датчика.
*/
#include "ds18b20_ds2480.h"
#include <string.h>

View File

@@ -1,3 +1,9 @@
/*
* Команды DS18B20 поверх интерфейса DS2480B: адресация ROM, преобразование температуры и
* scratchpad. Транспортный статус следует проверять до использования результата; сырая
* температура сохраняет знаковое представление датчика.
*/
#ifndef DS18B20_DS2480_H
#define DS18B20_DS2480_H
#include "ds2480.h"

View File

@@ -1,3 +1,9 @@
/*
* UART-мост DS2480B для операций 1-Wire: сброс, обмен битами и байтами, поиск устройств и
* управление питанием. После ошибки связи состояние готовности сбрасывается, чтобы следующий
* обмен не продолжался в неизвестном режиме моста.
*/
#include "ds2480.h"
static ds2480_status fault(ds2480 *bus, ds2480_status status)

View File

@@ -1,3 +1,9 @@
/*
* UART-мост DS2480B для операций 1-Wire: сброс, обмен битами и байтами, поиск устройств и
* управление питанием. После ошибки связи состояние готовности сбрасывается, чтобы следующий
* обмен не продолжался в неизвестном режиме моста.
*/
#ifndef DS2480_H
#define DS2480_H

View File

@@ -1,3 +1,9 @@
/*
* Минимальный блокирующий пример: подготовить мост DS2480B, найти первый датчик, запустить
* преобразование и прочитать температуру. Обратные вызовы UART и задержек предоставляет плата;
* ожидание преобразования входит во время вызова.
*/
#include "ds18b20_ds2480.h"
/* board_port supplies the four callbacks documented in ds2480.h.

View File

@@ -1,3 +1,9 @@
/*
* UART-порт DS2480B для STM32F4. Подготовка линии и очистка ошибок USART отделены от команд
* датчика; после сбоя обмена мост должен пройти предусмотренное восстановление до продолжения
* работы с 1-Wire.
*/
#include "ds2480_stm32f4_hal.h"
#define RX_ERRORS (USART_SR_ORE | USART_SR_NE | USART_SR_FE | USART_SR_PE)

View File

@@ -1,3 +1,9 @@
/*
* UART-порт DS2480B для STM32F4. Подготовка линии и очистка ошибок USART отделены от команд
* датчика; после сбоя обмена мост должен пройти предусмотренное восстановление до продолжения
* работы с 1-Wire.
*/
#ifndef DS2480_STM32F4_HAL_H
#define DS2480_STM32F4_HAL_H

View File

@@ -1,3 +1,11 @@
/*
* Проверки stm32f4xx_hal: фиксируют ожидаемое поведение на воспроизводимых входных данных.
* Сценарии для навигации по файлу:
* test_clear
* Тестовые значения и подмены окружения относятся к проверке контракта; они не являются
* настройками рабочего устройства.
*/
/* Host-only HAL model, never add this directory to a firmware include path. */
#ifndef TEST_STM32F4_HAL_H
#define TEST_STM32F4_HAL_H

View File

@@ -1,3 +1,11 @@
/*
* Проверки port: фиксируют ожидаемое поведение на воспроизводимых входных данных.
* Сценарии для навигации по файлу:
* test_clear
* Тестовые значения и подмены окружения относятся к проверке контракта; они не являются
* настройками рабочего устройства.
*/
#include "ds2480_stm32f4_hal.h"
#include <assert.h>
#include <stdio.h>

View File

@@ -1,3 +1,9 @@
/*
* Проверки ds18b20_ds2480: фиксируют ожидаемое поведение на воспроизводимых входных данных.
* Тестовые значения и подмены окружения относятся к проверке контракта; они не являются
* настройками рабочего устройства.
*/
#include "ds18b20_ds2480.h"
#include <stdio.h>
#include <stdlib.h>

View File

@@ -1,3 +1,7 @@
# Сборка библиотеки ds18b20. Состав исходников и публичные include-пути задают подключение к
# проекту потребителя. Файл также собирает и регистрирует хостовые проверки; запускать их
# следует через CTest из каталога сборки.
cmake_minimum_required(VERSION 3.13)
project(ds18b20 C)

View File

@@ -1,3 +1,9 @@
/*
* Работа с термометрами DS18B20: поиск по ROM, запуск преобразования, чтение температуры и
* настройка scratchpad. ROM является адресом устройства на общей шине; результат чтения нельзя
* считать действительным до проверки статуса обмена и CRC.
*/
/**
* @file ds18b20.h
* @brief Драйвер термометров DS18B20 поверх шины 1-Wire.

View File

@@ -1,3 +1,9 @@
/*
* Общие операции 1-Wire и обход дерева 64-битных ROM. Поиск разрешает коллизии побитно,
* поэтому обнаружение нескольких устройств не сводится к чтению одного адреса. Электрические
* уровни и длительности импульсов задаёт порт.
*/
/**
* @file onewire.h
* @brief Программная шина 1-Wire на выводе с открытым стоком.

View File

@@ -1,3 +1,7 @@
# Сборка библиотеки ds18b20_instance. Состав исходников и публичные include-пути задают
# подключение к проекту потребителя. Файл также собирает и регистрирует хостовые проверки;
# запускать их следует через CTest из каталога сборки.
cmake_minimum_required(VERSION 3.13)
project(ds18b20_instance C)
add_library(ds18b20_instance STATIC Src/ds18b20.c)

View File

@@ -1,3 +1,9 @@
/*
* Работа с термометрами DS18B20: поиск по ROM, запуск преобразования, чтение температуры и
* настройка scratchpad. ROM является адресом устройства на общей шине; результат чтения нельзя
* считать действительным до проверки статуса обмена и CRC.
*/
#ifndef PORTABLE_DS18B20_H
#define PORTABLE_DS18B20_H

View File

@@ -1,3 +1,9 @@
/*
* Конфигурация ds18b20. Макросы задают параметры сборки и ограничения, используемые
* исходниками этого модуля. Смысл и единицы каждого параметра определяются местом его
* использования; размеры буферов должны быть согласованы у всех потребителей заголовка.
*/
#ifndef PORTABLE_DS18B20_CONFIG_H
#define PORTABLE_DS18B20_CONFIG_H
#define DS18B20_DEFAULT_TIMEOUT_MS 750U

View File

@@ -1,3 +1,9 @@
/*
* Работа с термометрами DS18B20: поиск по ROM, запуск преобразования, чтение температуры и
* настройка scratchpad. ROM является адресом устройства на общей шине; результат чтения нельзя
* считать действительным до проверки статуса обмена и CRC.
*/
#include "ds18b20.h"
#include "ds18b20_config.h"
#include <string.h>

View File

@@ -1,3 +1,7 @@
# Сборка и запуск хостовых проверок экземплярного DS18B20. Скрипт готовит исполняемые тесты
# для проверки поиска ROM и задержек EEPROM без платы; ошибка компиляции или проверки должна
# завершить прогон неуспешно.
$ErrorActionPreference = "Stop"
$out = Join-Path $env:TEMP "test_ds18b20_copy_delay.exe"
$test = Join-Path $PSScriptRoot "test_ds18b20_copy_delay.c"

View File

@@ -1,3 +1,10 @@
/*
* Проверки ds18b20_copy_delay: фиксируют ожидаемое поведение на воспроизводимых входных
* данных.
* Тестовые значения и подмены окружения относятся к проверке контракта; они не являются
* настройками рабочего устройства.
*/
#include "ds18b20.h"
#include <assert.h>

View File

@@ -1,3 +1,10 @@
/*
* Проверки ds18b20_incremental_search: фиксируют ожидаемое поведение на воспроизводимых
* входных данных.
* Тестовые значения и подмены окружения относятся к проверке контракта; они не являются
* настройками рабочего устройства.
*/
/* Model real SEARCH ROM participation: each branch filters the active slaves.
* Fault injection tests transport recovery, not analog cable characteristics. */
#include "ds18b20.h"

View File

@@ -1,3 +1,9 @@
/*
* Конфигурация ds18b20 для порта stm32f1. Макросы задают параметры сборки и ограничения,
* используемые исходниками этого модуля. Это образец для проекта: значения выводов, размеров
* памяти и параметров устройства необходимо согласовать с целевой платой.
*/
/**
* @file onewire_config.f103.template.h
* @brief Шаблон привязки шины 1-Wire для STM32F103 (порт stm32f1).

View File

@@ -1,3 +1,9 @@
/*
* Аппаратные временные слоты 1-Wire на STM32F1: управление линией, чтение уровня и
* микросекундные задержки. Конфигурация выбирает GPIO и таймер; общий алгоритм поиска ROM
* остаётся в onewire.c.
*/
/**
* @file onewire_stm32f1.c
* @brief Порт шины 1-Wire на STM32F1: тайминги, вывод и задержки.

View File

@@ -1,3 +1,9 @@
/*
* Конфигурация ds18b20 для порта stm32f4. Макросы задают параметры сборки и ограничения,
* используемые исходниками этого модуля. Это образец для проекта: значения выводов, размеров
* памяти и параметров устройства необходимо согласовать с целевой платой.
*/
/**
* @file onewire_config.f407.template.h
* @brief Шаблон привязки шины 1-Wire для STM32F407VET6 (порт stm32f4).

View File

@@ -1,3 +1,9 @@
/*
* Аппаратные временные слоты 1-Wire на STM32F4 с открытым стоком. Порт использует
* CMSIS-регистры и параметры onewire_config.h; частота таймера должна соответствовать расчёту
* задержек при обмене с датчиками.
*/
/**
* @file onewire_stm32f4.c
* @brief Порт шины 1-Wire на STM32F4: тайминги, вывод и задержки.

View File

@@ -1,3 +1,9 @@
/*
* Конфигурация ds18b20 для порта stm32g4. Макросы задают параметры сборки и ограничения,
* используемые исходниками этого модуля. Это образец для проекта: значения выводов, размеров
* памяти и параметров устройства необходимо согласовать с целевой платой.
*/
/**
* @file onewire_config.g431.template.h
* @brief Шаблон привязки шины 1-Wire для STM32G431 (порт stm32g4).

View File

@@ -1,3 +1,9 @@
/*
* Конфигурация ds18b20 для порта stm32g4. Макросы задают параметры сборки и ограничения,
* используемые исходниками этого модуля. Это образец для проекта: значения выводов, размеров
* памяти и параметров устройства необходимо согласовать с целевой платой.
*/
/**
* @file onewire_config.g474.template.h
* @brief Шаблон привязки шины 1-Wire для STM32G474 (порт stm32g4).

View File

@@ -1,3 +1,9 @@
/*
* Аппаратные временные слоты 1-Wire для STM32G431/G474. GPIO и таймер задаются конфигурацией
* проекта; чтение уровня выполняется с линии, поэтому паразитное питание и подтяжка относятся
* к схеме платы.
*/
/**
* @file onewire_stm32g4.c
* @brief Порт шины 1-Wire на STM32G4: тайминги, вывод и задержки.

View File

@@ -1,3 +1,9 @@
/*
* Работа с термометрами DS18B20: поиск по ROM, запуск преобразования, чтение температуры и
* настройка scratchpad. ROM является адресом устройства на общей шине; результат чтения нельзя
* считать действительным до проверки статуса обмена и CRC.
*/
/** test
* @file ds18b20.c
* @brief Реализация драйвера DS18B20: поиск, чтение и запись scratchpad.

View File

@@ -1,3 +1,9 @@
/*
* Общие операции 1-Wire и обход дерева 64-битных ROM. Поиск разрешает коллизии побитно,
* поэтому обнаружение нескольких устройств не сводится к чтению одного адреса. Электрические
* уровни и длительности импульсов задаёт порт.
*/
/**
* @file onewire.c
* @brief Переносимая часть шины 1-Wire: побайтовый обмен, CRC8 и поиск ROM.

View File

@@ -1,3 +1,9 @@
/*
* Проверки fake_onewire: фиксируют ожидаемое поведение на воспроизводимых входных данных.
* Тестовые значения и подмены окружения относятся к проверке контракта; они не являются
* настройками рабочего устройства.
*/
/**
* @file fake_onewire.c
* @brief Симулятор шины 1-Wire с виртуальными датчиками DS18B20.

View File

@@ -1,3 +1,9 @@
/*
* Проверки fake_onewire: фиксируют ожидаемое поведение на воспроизводимых входных данных.
* Тестовые значения и подмены окружения относятся к проверке контракта; они не являются
* настройками рабочего устройства.
*/
/**
* @file fake_onewire.h
* @brief Модель шины 1-Wire с виртуальными датчиками для host-тестов.

Some files were not shown because too many files have changed in this diff Show More