37 Commits
Author SHA1 Message Date
Andrey 83fb9b6fe8 Обнови спецификацию и таблицы единого Modbus 2026-10-23 16:15:37 +03:00
Andrey 41f5b879fc Объедини Modbus в один тип с функциями и количеством 1–4 2026-10-23 16:15:11 +03:00
Andrey f17c124f0e docs: Согласуй документацию ProtoCAN и инструментов сборки
Обнови спецификацию GAS 0x3/0x4, реестр устройств и описание загрузочных сервисов одновременно в Markdown, HTML и XLSX.

Свяжи новые аппаратные порты, глобальное время и сборку C2000/ПЛИС с корневыми инструкциями, чтобы проекты подключались по одному актуальному контракту.
2026-10-23 14:16:22 +03:00
Andrey 2da7e7b525 feat(global-time): Добавь общие часы и порт TMS320F28335
Вынеси программные часы, коррекцию по ProtoCAN RTCSETUP и атомарную метку логгера в переносимое ядро без глобального состояния.

Подключи eCAN-A и CPU Timer2 отдельным портом F28335; зафиксируй календарные границы, переполнение, задержку RX и защиту IRQ в хостовых тестах.
2026-10-23 14:16:21 +03:00
Andrey 62c0492bfd feat(firmware-build): Добавь сборку и паспорта проектов ПЛИС
Подключи ISE, Vivado и Quartus к общему итератору версии и HDL-паспорту. Проверяй новый bit/sof до создания manifest, SHA-256 и архива выпуска.

Добавь установку локальных команд ISE, инструкции переноса и регрессионные проверки успешных и прерванных сборок.
2026-10-23 14:16:21 +03:00
Andrey 5bf3167064 build(firmware-info): Объедини подготовку и выпуск образов C2000
Направь CCS precompile/postcompile в общий c2000_build, чтобы резервирование версии, проверка EEPROM, MAP, SCI8 и Flash выполнялись одним процессом перед экспортом.

Сохраняй варианты eeprom, flash, can и rs в одном проверенном комплекте с manifest и SHA-256. Ошибка проверки блокирует постоянный выпуск и копирование устаревших образов.
2026-10-23 14:16:20 +03:00
Andrey c6390ae1c9 feat(protocan-boot): Добавь порты MCU и сервисы загрузки
Обеспечь единый процесс обновления для STM32F103/F407/G474 и TMS320F2812/F28335: discovery, служебные ответы, BUSY, тайм-аут сессии и подтверждение приложения. Добавь самостоятельные проекты CCS, аппаратные хранилища и Python-клиент.

Совместимость: структуры конфигурации и порта расширены, поэтому потребители должны пересобраться и обнулить новые поля. Для C28x callbacks используют pcan_boot_byte_t; периодический pcan_boot_poll обслуживает discovery и настроенный тайм-аут.
2026-10-23 14:16:19 +03:00
Andrey 876b58517c feat(set-protocol): Раздели GAS и добавь пакетный сбор регистров
Сохрани адресацию отдельных регистров GAS 0x3 и выдели слотам тип 0x4 с маской Word0. Добавь единое C-ядро GAS_WATCH2, тонкие Python/JNI-порты и проверки общих эталонных байтов.

Совместимость: тип 0x4 больше не обслуживает Modbus Coil. Потребителям PCAN_MSG_MODBUS_COIL и ProtoCanMsgToModbusCoil нужно перейти на GAS_SLOT и отдельный API слотов; регистровый GAS остаётся на 0x3.
2026-10-23 14:14:48 +03:00
Andrey 6ecf057a86 feat(c2000-linker): Добавить помощник настройки линкера C2000
Добавить генерацию карт COFF для TMS320F28335 и TMS320F2812, проверку CMD/MAP и русскую инструкцию.

Проверки: 14 тестов, включая четыре реальные линковки TI для RAM и Flash.
2026-10-19 16:33:40 +03:00
Andrey d42f2e1622 Перенести итератор версии прошивки в общий генератор
Увеличивать версию при прямом подключении precompile из CCS и Keil.
Сохранять счётчик атомарно и оставлять ручной режим без включённого флага.
Добавить проверки итератора и обновить примеры подключения.
2026-10-19 12:02:07 +03:00
Andrey 0c4eab4615 Добавить общий конструктор CAN-кадров для Qt 2026-10-17 14:43:13 +03:00
Andrey 5af8a8e9c8 Добавить общую Qt-консоль с фильтрами и экспортом 2026-10-17 14:43:12 +03:00
Andrey f613101124 Перезапускать импульс светодиода при каждом приёме пакета 2026-10-17 14:43:12 +03:00
Andrey cf65439400 Добавить выпуск и экспорт Flash-образов C2000 2026-10-17 14:43:11 +03:00
Andrey 32e2fbedc0 Поддержать компактные записи логгера УМП v4
Разрешить 12-словные записи в запросах RTU и CAN. Распознавать статус v4 и декодировать оставшиеся сигналы с сохранением поддержки архивов v2/v3.
2026-10-12 12:25:52 +03:00
Andrey 226c2ca599 chore(merge): объедини pysetterminal с main
Сохрани актуальный генератор firmware identity с экспортом всей папки сборки и временем UTC+3 при объединении веток.
2026-10-09 11:04:32 +03:00
Andrey f2956b54cd merge(deif): объедини Android-компоненты с main 2026-10-09 10:55:08 +03:00
Andrey 86ece3ea90 Extract reusable byte work panel with configurable terminal addressing 2026-10-09 08:56:16 +03:00
Andrey fe9b5a246e Checkpoint EEPROM, firmware analysis and instrument protocol updates 2026-10-08 21:51:44 +03:00
Andrey b0c0c05cfa Add shared PySetTerminal with asynchronous cancellable macros 2026-10-08 18:34:41 +03:00
Andrey eab8dc5e0a fix(firmware-build): support CCS artifact paths and bootstrap identity config 2026-10-08 17:57:04 +03:00
Andrey 131f306131 fix(firmware-info): используй UTC+3 в именах папок
Переведи только время имени архива в UTC+3, сохрани UTC в метаданных и заголовке. Проверь переход на следующий день и копирование текущей папки.
2026-10-08 17:05:04 +03:00
Andrey 4fc0ad4e14 feat(firmware-info): копируй папку текущей сборки целиком
Добавь каталог назначения последним аргументом postcompile CCS и Keil. Копируй только архив текущего запуска с сохранением имени папки, всех файлов и проверкой SHA-256. Обнови MD-команды и проверки выбора папки, вложенных файлов и ошибок экспорта.
2026-10-08 16:26:21 +03:00
Andrey da055c2787 feat(firmware-info): архивируй сборки по хешу и дате
Создай в postcompile CCS и Keil папку по commit исходников и UTC-времени precompile. Сохрани точные образы, manifest, SHA-256 и метаданные, сохраняя прежние выходные файлы. Опиши копирование каталогов в SETGUI и проверь разные даты, целостность и Git-метаданные.
2026-10-08 15:31:13 +03:00
Andrey 8fc2e1b5cf fix(firmware-info): подключи Keil к JSON-схеме версии
Добавь prepare/seal для Keil через общий identity.py, образец конфигурации и команды Before/After Build. Для новой схемы не требуется отдельная release-конфигурация CMD или SETGUI. Проверь HEX/BIN, SHA-256, аргументы и пути с пробелами.
2026-10-08 15:13:34 +03:00
Andrey b5b2d1ae37 feat(firmware-info): добавь pre/post-build для CCS и Keil
Подключи общий генератор версии и SCI8-конвертацию через templates. Сохрани метаданные и SHA-256 готового BIN, совместимость с Python 3.8 и прежний SETGUI preflight. Опиши настройку CCS и локальное копирование результатов.
2026-10-08 14:58:27 +03:00
Andrey c011c2957b Track completed Single acquisitions and persist recent addresses 2026-10-07 12:32:29 +03:00
Andrey 6047ceac89 Pause automatic waveform transfers on hardware Stop 2026-10-07 12:22:00 +03:00
Andrey 79b0cde20e Add native QCustomPlot renderer and shared plot adapters 2026-10-07 11:33:14 +03:00
Andrey 90046de7fd Добавить идентификацию прошивки и чтение EEPROM Бальзам-167 2026-10-05 17:48:23 +03:00
Andrey 0e3d89e1ee Добавить протокол DEIF, диагностику CAN и сохранение сессий 2026-10-04 23:34:26 +03:00
Andrey 6c08eece61 Улучшить две шкалы, навигацию и формулы графиков 2026-10-04 23:34:26 +03:00
Andrey c7294830f9 Add shared CAN monitor sessions, protocol selection and HEX/DEC display 2026-10-03 22:53:51 +03:00
Andrey 427fc70100 docs: добавь поясняющие комментарии к модулям и инструментам 2026-10-02 16:46:19 +03:00
Andrey 6cbce6c360 Согласовать демо логгера УМП с постинтервалом в десять процентов банка 2026-10-02 16:41:26 +03:00
Andrey 3463e95eb3 Добавить общее перетаскивание графиков и независимые шкалы амплитуд 2026-10-02 16:41:26 +03:00
Andrey 025a3fde28 Исправить порядок слов BALZAM CAN и добавить поддержку пульта МПУ 2026-10-02 16:41:25 +03:00
785 changed files with 103843 additions and 995 deletions
+1 -1
View File
@@ -84,7 +84,7 @@ STM32F103RC, STM32F103ZE и STM32G474CE объявляют поддержку з
возвращают `PNAND_ERROR_WRITE_PROTECTED`, пока плата и порт не доработаны.
Рабочий пример полноценного G474-порта находится в соседнем проекте
`candleLight_fw`: `src/device/device_g4.c` отвечает за clock/GPIO,
`CANdle_stm32` (candleLight): `src/device/device_g4.c` отвечает за clock/GPIO,
`src/can/m_can.c` — за FDCAN, а `include/config.h` — за привязку платы
STM32G474VET6. Эти файлы остаются в прошивке, поскольку зависят от STM32 HAL,
USB gs_usb и конкретной разводки адаптера; переносимая логика протоколов
+4 -2
View File
@@ -40,9 +40,10 @@ templates/
| [`c/set-protocol/ports/stm32f407-devboard-v1`](c/set-protocol/ports/stm32f407-devboard-v1) | доступ SETGUI к Modbus-регистрам F407 через CAN485 DevBoard_V1 | `pcan_modbus_server`, STM32 HAL CAN | bxCAN FIFO0 и callbacks карты регистров |
| [`c/set-protocol/ports/stm32-bxcan`](c/set-protocol/ports/stm32-bxcan) | порт прикладного ProtoCAN для STM32, бывший SETCAN; сохранён API `PROTOCAN_*` | STM32 HAL CAN/RTC/TIM + общее ядро `pcan_id` | classic bxCAN; настройки платы предоставляет прошивка |
| [`c/set-protocol/ports/tms320f2812`](c/set-protocol/ports/tms320f2812) | SETProtocol v2 firmware service по segmented classic CAN | `set_protocol`, `set_can`, `set_firmware` | CAN TX, Flash erase/write/read, optional signature policy и reboot |
| [`c/protocan-boot`](c/protocan-boot) | адресная прошивка по ProtoCAN: A/B-слоты, сессия, CRC32, verify и rollback-контракт | C99 | CAN TX, erase/write Flash, boot metadata, проверка образа и reboot |
| [`c/protocan-boot`](c/protocan-boot) | адресная прошивка по ProtoCAN: A/B-слоты, сессия, CRC32, verify и rollback-контракт | C99 | **STM32F103C8/F407VE/G474VE и TMS320F2812/F28335-порты в комплекте**; проекты STM32 подключены через templates, есть boot main и вход из приложения |
| [`c/rs485-boot`](c/rs485-boot) | прошивка по RS-485 в формате SETGUI v1: потоковый parser, CRC32 и resume | C99 | UART TX/RX, DE, Flash — **порты STM32F103 и STM32G474VET в комплекте** |
| [`c/rtc-service`](c/rtc-service) | RTC с резервированным backup-томом | `stdint.h` | доступ к RTC и backup-памяти — **порт K1921VK028 в комплекте** |
| [`c/global-time`](c/global-time) | программные часы 1 мс, ProtoCAN RTCSETUP, готовность платы и атомарная метка логгера | C99 | IRQ lock, CAN TX, такт 1 мс — **порт TMS320F28335 eCAN-A / CPU Timer2 в комплекте** |
| [`c/firmware-info`](c/firmware-info) | SemVer, build stamp и git build ID работающего образа | C99 | config-порты STM32F1/F4/G4 и К1921ВК028; упаковка для Modbus/SETGUI |
| [`c/parallel-nand`](c/parallel-nand) | parallel NAND x8: raw read/program/erase, профили Micron MT29F1G08 и Hynix HY27UF084G2M, bad-block marker и банковое окно GAS для SETGUI | C99, опционально `set-protocol/pcan_gas` | **порты TMS320F2812, STM32F103RC/ZE, STM32F407VE и STM32G474CEU6; запись требует управляемого WP#** |
@@ -64,6 +65,7 @@ templates/
| Инструмент | Что делает |
|---|---|
| [`tools/firmware-build/fpga`](tools/firmware-build/fpga/README.md) | общий итератор версии и HDL-паспорт для Xilinx ISE, Vivado и Altera/Intel Quartus; контроль `.bit`/`.sof`, manifest, SHA-256 и архив |
| [`tools/firmware-publish`](tools/firmware-publish) | единый BAT и конфигурации для проверки и публикации `.hex` Keil / `.bin` CCS 12 в каталоге SETGUI |
Общие тренды для Android GUI и SETGUI: [формат JSON, C99-ядро и адаптеры](c/set-protocol/docs/GUI_TRENDS.md).
@@ -118,7 +120,7 @@ git subtree pull --prefix lib/templates https://git.rd12.ru/Andrey/templates.git
| `KONOR_ds18b20` | st7789, keypad, menu, eeprom-ft24c256, can-sensor, ds18b20, firmware-info |
| `OpticalTester` | st7789, keypad, menu, eeprom-ft24c256 |
| `CAN_to_RS485` | set-protocol legacy transport, python/protocan |
| `candleLight_fw` | эталон разделения общей логики и G431/G474 FDCAN-порта; общий ProtoCAN Boot переносится по контракту `protocan-boot` |
| `CANdle_stm32` (candleLight) | G431/G474 FDCAN board-support; CAN/UART-загрузчик G474 и вход из приложения подключены к `protocan-boot/ports/stm32g474` через templates |
| `SETGUI` | python/protocan |
| `SETGUI`, Android GUI и новые устройства SET | set-protocol |
| `k1921vk028` | rtc-service |
+4
View File
@@ -1,3 +1,7 @@
# Сборка библиотеки can_sensor. Состав исходников и публичные include-пути задают подключение
# к проекту потребителя. Файл также собирает и регистрирует хостовые проверки; запускать их
# следует через CTest из каталога сборки.
cmake_minimum_required(VERSION 3.13)
project(can_sensor C)
+6
View File
@@ -1,3 +1,9 @@
/*
* Обмен настройками датчиков DS18B20 через однокадровые сообщения SETCAN. ROM идентифицирует
* датчик независимо от его позиции; прикладное состояние и отправка CAN предоставляются через
* интерфейс библиотеки.
*/
/**
* @file can_sensor.c
* @brief Однокадровый транспорт SETCAN SETTINGS для локаций DS18B20.
+6
View File
@@ -1,3 +1,9 @@
/*
* Обмен настройками датчиков DS18B20 через однокадровые сообщения SETCAN. ROM идентифицирует
* датчик независимо от его позиции; прикладное состояние и отправка CAN предоставляются через
* интерфейс библиотеки.
*/
/**
* @file can_sensor.h
* @brief Портируемый транспорт SETTINGS для привязки DS18B20 к локации.
@@ -1,3 +1,9 @@
/*
* Прямой bxCAN-порт датчиков для STM32F1 без HAL. Регистры контроллера обеспечивают передачу и
* приём SETCAN, а конфигурация платы задаёт подключение шины; это аппаратная реализация
* интерфейса can_sensor.
*/
/**
* @file can_sensor_stm32f1.c
* @brief Опросный порт can-sensor на bxCAN STM32F1 без STM32 HAL.
@@ -1,3 +1,9 @@
/*
* Прямой bxCAN-порт датчиков для STM32F1 без HAL. Регистры контроллера обеспечивают передачу и
* приём SETCAN, а конфигурация платы задаёт подключение шины; это аппаратная реализация
* интерфейса can_sensor.
*/
/**
* @file can_sensor_stm32f1.h
* @brief Опросный порт can-sensor на bxCAN микроконтроллеров STM32F1.
@@ -1,3 +1,9 @@
/*
* Конфигурация can-sensor для порта stm32f1. Макросы задают параметры сборки и ограничения,
* используемые исходниками этого модуля. Это образец для проекта: значения выводов, размеров
* памяти и параметров устройства необходимо согласовать с целевой платой.
*/
/**
* @file can_sensor_stm32f1_config.f103.template.h
* @brief Шаблон выводов CAN1 для STM32F103 без ремапа.
+6
View File
@@ -1,3 +1,9 @@
/*
* Проверки can_sensor: фиксируют ожидаемое поведение на воспроизводимых входных данных.
* Тестовые значения и подмены окружения относятся к проверке контракта; они не являются
* настройками рабочего устройства.
*/
#include "can_sensor.h"
#include <stdio.h>
+4
View File
@@ -1,3 +1,7 @@
# Сборка библиотеки candle. Состав исходников и публичные include-пути задают подключение к
# проекту потребителя. Платформенные зависимости и условия сборки задаются здесь, а не в
# прикладных исходниках.
cmake_minimum_required(VERSION 3.15)
project(candle C)
if(NOT WIN32)
+6
View File
@@ -19,6 +19,12 @@
*/
/*
* Доступ к CAN-адаптерам candleLight/gs_usb в Windows через WinUSB. Перечисление устройств,
* открытие канала и обмен кадрами образуют отдельный транспортный слой; он не интерпретирует
* прикладные регистры SETProtocol.
*/
#include "candle.h"
#include <stdarg.h>
+4
View File
@@ -1,3 +1,7 @@
; Доступ к CAN-адаптерам candleLight/gs_usb в Windows через WinUSB. Перечисление устройств,
; открытие канала и обмен кадрами образуют отдельный транспортный слой; он не интерпретирует
; прикладные регистры SETProtocol.
EXPORTS
candle_list_scan
candle_list_free
+6
View File
@@ -20,6 +20,12 @@
*/
/*
* Доступ к CAN-адаптерам candleLight/gs_usb в Windows через WinUSB. Перечисление устройств,
* открытие канала и обмен кадрами образуют отдельный транспортный слой; он не интерпретирует
* прикладные регистры SETProtocol.
*/
#pragma once
#include <stdint.h>
#include <stdbool.h>
+5
View File
@@ -19,6 +19,11 @@
*/
/*
* Управляющие USB-запросы адаптера candleLight: конфигурация, временные параметры CAN и режим
* канала. Эти транзакции идут через control endpoint и отличаются от потока CAN-кадров.
*/
#include "candle_ctrl_req.h"
#include "ch_9.h"
+5
View File
@@ -20,6 +20,11 @@
*/
/*
* Управляющие USB-запросы адаптера candleLight: конфигурация, временные параметры CAN и режим
* канала. Эти транзакции идут через control endpoint и отличаются от потока CAN-кадров.
*/
#pragma once
#include "candle_defs.h"
+6
View File
@@ -20,6 +20,12 @@
*/
/*
* Двоичные структуры и константы gs_usb, общие для драйвера и USB-адаптера. Размеры полей и
* упаковка определяют совместимость с прошивкой: менять их как обычные внутренние структуры
* нельзя.
*/
#pragma once
#include <stdint.h>
+5
View File
@@ -19,6 +19,11 @@
*/
/*
* Типы стандартных USB-дескрипторов и запросов из главы 9 спецификации USB. Драйвер использует
* их для описания устройства и конечных точек; это транспортные определения, а не формат CAN.
*/
#pragma once
#define USB_DIR_OUT 0 /* to device */
+4
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)
+6
View File
@@ -1,3 +1,9 @@
/*
* Команды DS18B20 поверх интерфейса DS2480B: адресация ROM, преобразование температуры и
* scratchpad. Транспортный статус следует проверять до использования результата; сырая
* температура сохраняет знаковое представление датчика.
*/
#include "ds18b20_ds2480.h"
#include <string.h>
+6
View File
@@ -1,3 +1,9 @@
/*
* Команды DS18B20 поверх интерфейса DS2480B: адресация ROM, преобразование температуры и
* scratchpad. Транспортный статус следует проверять до использования результата; сырая
* температура сохраняет знаковое представление датчика.
*/
#ifndef DS18B20_DS2480_H
#define DS18B20_DS2480_H
#include "ds2480.h"
+6
View File
@@ -1,3 +1,9 @@
/*
* UART-мост DS2480B для операций 1-Wire: сброс, обмен битами и байтами, поиск устройств и
* управление питанием. После ошибки связи состояние готовности сбрасывается, чтобы следующий
* обмен не продолжался в неизвестном режиме моста.
*/
#include "ds2480.h"
static ds2480_status fault(ds2480 *bus, ds2480_status status)
+6
View File
@@ -1,3 +1,9 @@
/*
* UART-мост DS2480B для операций 1-Wire: сброс, обмен битами и байтами, поиск устройств и
* управление питанием. После ошибки связи состояние готовности сбрасывается, чтобы следующий
* обмен не продолжался в неизвестном режиме моста.
*/
#ifndef DS2480_H
#define DS2480_H
+6
View File
@@ -1,3 +1,9 @@
/*
* Минимальный блокирующий пример: подготовить мост DS2480B, найти первый датчик, запустить
* преобразование и прочитать температуру. Обратные вызовы UART и задержек предоставляет плата;
* ожидание преобразования входит во время вызова.
*/
#include "ds18b20_ds2480.h"
/* board_port supplies the four callbacks documented in ds2480.h.
@@ -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)
@@ -1,3 +1,9 @@
/*
* UART-порт DS2480B для STM32F4. Подготовка линии и очистка ошибок USART отделены от команд
* датчика; после сбоя обмена мост должен пройти предусмотренное восстановление до продолжения
* работы с 1-Wire.
*/
#ifndef DS2480_STM32F4_HAL_H
#define DS2480_STM32F4_HAL_H
@@ -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
@@ -1,3 +1,11 @@
/*
* Проверки port: фиксируют ожидаемое поведение на воспроизводимых входных данных.
* Сценарии для навигации по файлу:
* test_clear
* Тестовые значения и подмены окружения относятся к проверке контракта; они не являются
* настройками рабочего устройства.
*/
#include "ds2480_stm32f4_hal.h"
#include <assert.h>
#include <stdio.h>
@@ -1,3 +1,9 @@
/*
* Проверки ds18b20_ds2480: фиксируют ожидаемое поведение на воспроизводимых входных данных.
* Тестовые значения и подмены окружения относятся к проверке контракта; они не являются
* настройками рабочего устройства.
*/
#include "ds18b20_ds2480.h"
#include <stdio.h>
#include <stdlib.h>
+4
View File
@@ -1,3 +1,7 @@
# Сборка библиотеки ds18b20. Состав исходников и публичные include-пути задают подключение к
# проекту потребителя. Файл также собирает и регистрирует хостовые проверки; запускать их
# следует через CTest из каталога сборки.
cmake_minimum_required(VERSION 3.13)
project(ds18b20 C)
+6
View File
@@ -1,3 +1,9 @@
/*
* Работа с термометрами DS18B20: поиск по ROM, запуск преобразования, чтение температуры и
* настройка scratchpad. ROM является адресом устройства на общей шине; результат чтения нельзя
* считать действительным до проверки статуса обмена и CRC.
*/
/**
* @file ds18b20.h
* @brief Драйвер термометров DS18B20 поверх шины 1-Wire.
+6
View File
@@ -1,3 +1,9 @@
/*
* Общие операции 1-Wire и обход дерева 64-битных ROM. Поиск разрешает коллизии побитно,
* поэтому обнаружение нескольких устройств не сводится к чтению одного адреса. Электрические
* уровни и длительности импульсов задаёт порт.
*/
/**
* @file onewire.h
* @brief Программная шина 1-Wire на выводе с открытым стоком.
+4
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)
+6
View File
@@ -1,3 +1,9 @@
/*
* Работа с термометрами DS18B20: поиск по ROM, запуск преобразования, чтение температуры и
* настройка scratchpad. ROM является адресом устройства на общей шине; результат чтения нельзя
* считать действительным до проверки статуса обмена и CRC.
*/
#ifndef PORTABLE_DS18B20_H
#define PORTABLE_DS18B20_H
+6
View File
@@ -1,3 +1,9 @@
/*
* Конфигурация ds18b20. Макросы задают параметры сборки и ограничения, используемые
* исходниками этого модуля. Смысл и единицы каждого параметра определяются местом его
* использования; размеры буферов должны быть согласованы у всех потребителей заголовка.
*/
#ifndef PORTABLE_DS18B20_CONFIG_H
#define PORTABLE_DS18B20_CONFIG_H
#define DS18B20_DEFAULT_TIMEOUT_MS 750U
+6
View File
@@ -1,3 +1,9 @@
/*
* Работа с термометрами DS18B20: поиск по ROM, запуск преобразования, чтение температуры и
* настройка scratchpad. ROM является адресом устройства на общей шине; результат чтения нельзя
* считать действительным до проверки статуса обмена и CRC.
*/
#include "ds18b20.h"
#include "ds18b20_config.h"
#include <string.h>
@@ -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"
@@ -1,3 +1,10 @@
/*
* Проверки ds18b20_copy_delay: фиксируют ожидаемое поведение на воспроизводимых входных
* данных.
* Тестовые значения и подмены окружения относятся к проверке контракта; они не являются
* настройками рабочего устройства.
*/
#include "ds18b20.h"
#include <assert.h>
@@ -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"
@@ -1,3 +1,9 @@
/*
* Конфигурация ds18b20 для порта stm32f1. Макросы задают параметры сборки и ограничения,
* используемые исходниками этого модуля. Это образец для проекта: значения выводов, размеров
* памяти и параметров устройства необходимо согласовать с целевой платой.
*/
/**
* @file onewire_config.f103.template.h
* @brief Шаблон привязки шины 1-Wire для STM32F103 (порт stm32f1).
@@ -1,3 +1,9 @@
/*
* Аппаратные временные слоты 1-Wire на STM32F1: управление линией, чтение уровня и
* микросекундные задержки. Конфигурация выбирает GPIO и таймер; общий алгоритм поиска ROM
* остаётся в onewire.c.
*/
/**
* @file onewire_stm32f1.c
* @brief Порт шины 1-Wire на STM32F1: тайминги, вывод и задержки.
@@ -1,3 +1,9 @@
/*
* Конфигурация ds18b20 для порта stm32f4. Макросы задают параметры сборки и ограничения,
* используемые исходниками этого модуля. Это образец для проекта: значения выводов, размеров
* памяти и параметров устройства необходимо согласовать с целевой платой.
*/
/**
* @file onewire_config.f407.template.h
* @brief Шаблон привязки шины 1-Wire для STM32F407VET6 (порт stm32f4).
@@ -1,3 +1,9 @@
/*
* Аппаратные временные слоты 1-Wire на STM32F4 с открытым стоком. Порт использует
* CMSIS-регистры и параметры onewire_config.h; частота таймера должна соответствовать расчёту
* задержек при обмене с датчиками.
*/
/**
* @file onewire_stm32f4.c
* @brief Порт шины 1-Wire на STM32F4: тайминги, вывод и задержки.
@@ -1,3 +1,9 @@
/*
* Конфигурация ds18b20 для порта stm32g4. Макросы задают параметры сборки и ограничения,
* используемые исходниками этого модуля. Это образец для проекта: значения выводов, размеров
* памяти и параметров устройства необходимо согласовать с целевой платой.
*/
/**
* @file onewire_config.g431.template.h
* @brief Шаблон привязки шины 1-Wire для STM32G431 (порт stm32g4).
@@ -1,3 +1,9 @@
/*
* Конфигурация ds18b20 для порта stm32g4. Макросы задают параметры сборки и ограничения,
* используемые исходниками этого модуля. Это образец для проекта: значения выводов, размеров
* памяти и параметров устройства необходимо согласовать с целевой платой.
*/
/**
* @file onewire_config.g474.template.h
* @brief Шаблон привязки шины 1-Wire для STM32G474 (порт stm32g4).
@@ -1,3 +1,9 @@
/*
* Аппаратные временные слоты 1-Wire для STM32G431/G474. GPIO и таймер задаются конфигурацией
* проекта; чтение уровня выполняется с линии, поэтому паразитное питание и подтяжка относятся
* к схеме платы.
*/
/**
* @file onewire_stm32g4.c
* @brief Порт шины 1-Wire на STM32G4: тайминги, вывод и задержки.
+6
View File
@@ -1,3 +1,9 @@
/*
* Работа с термометрами DS18B20: поиск по ROM, запуск преобразования, чтение температуры и
* настройка scratchpad. ROM является адресом устройства на общей шине; результат чтения нельзя
* считать действительным до проверки статуса обмена и CRC.
*/
/** test
* @file ds18b20.c
* @brief Реализация драйвера DS18B20: поиск, чтение и запись scratchpad.
+6
View File
@@ -1,3 +1,9 @@
/*
* Общие операции 1-Wire и обход дерева 64-битных ROM. Поиск разрешает коллизии побитно,
* поэтому обнаружение нескольких устройств не сводится к чтению одного адреса. Электрические
* уровни и длительности импульсов задаёт порт.
*/
/**
* @file onewire.c
* @brief Переносимая часть шины 1-Wire: побайтовый обмен, CRC8 и поиск ROM.
+6
View File
@@ -1,3 +1,9 @@
/*
* Проверки fake_onewire: фиксируют ожидаемое поведение на воспроизводимых входных данных.
* Тестовые значения и подмены окружения относятся к проверке контракта; они не являются
* настройками рабочего устройства.
*/
/**
* @file fake_onewire.c
* @brief Симулятор шины 1-Wire с виртуальными датчиками DS18B20.
+6
View File
@@ -1,3 +1,9 @@
/*
* Проверки fake_onewire: фиксируют ожидаемое поведение на воспроизводимых входных данных.
* Тестовые значения и подмены окружения относятся к проверке контракта; они не являются
* настройками рабочего устройства.
*/
/**
* @file fake_onewire.h
* @brief Модель шины 1-Wire с виртуальными датчиками для host-тестов.
+16
View File
@@ -1,3 +1,19 @@
/*
* Проверки ds18b20: фиксируют ожидаемое поведение на воспроизводимых входных данных.
* Сценарии для навигации по файлу:
* test_crc8
* test_search_finds_all
* test_search_on_empty_bus
* test_search_single_device
* test_scan_filters_family
* test_read_all
* test_crc_error_does_not_stop_the_poll
* test_missing_device_is_reported
* Остальные сценарии продолжают эти проверки ниже в том же файле.
* Тестовые значения и подмены окружения относятся к проверке контракта; они не являются
* настройками рабочего устройства.
*/
/**
* Тесты драйвера DS18B20 и переносимой части 1-Wire на симуляторе шины.
*

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